<?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>70335</bug_id>
          
          <creation_ts>2011-10-18 10:14:43 -0700</creation_ts>
          <short_desc>Web Inspector: Enable caseSensitive search / Regex support in advanced search.</short_desc>
          <delta_ts>2011-10-19 05:36:51 -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>0</everconfirmed>
          <reporter name="Vsevolod Vlasov">vsevik</reporter>
          <assigned_to name="Vsevolod Vlasov">vsevik</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>486131</commentid>
    <comment_count>0</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-10-18 10:14:43 -0700</bug_when>
    <thetext>Enable caseSensitive search / Regex support in advanced search.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>486137</commentid>
    <comment_count>1</comment_count>
      <attachid>111462</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-10-18 10:21:11 -0700</bug_when>
    <thetext>Created attachment 111462
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>486142</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-18 10:23:34 -0700</bug_when>
    <thetext>Attachment 111462 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/InspectorDebuggerAgent.cpp:324:  The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]
Source/WebCore/inspector/InspectorPageAgent.cpp:487:  The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]
Source/WebCore/inspector/InspectorPageAgent.h:100:  The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]
Source/WebCore/inspector/InspectorDebuggerAgent.h:84:  The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]
Total errors found: 4 in 21 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>486157</commentid>
    <comment_count>3</comment_count>
      <attachid>111466</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-10-18 10:41:24 -0700</bug_when>
    <thetext>Created attachment 111466
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>486161</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-18 10:44:37 -0700</bug_when>
    <thetext>Attachment 111466 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/InspectorPageAgent.h:100:  The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]
Source/WebCore/inspector/InspectorDebuggerAgent.cpp:324:  The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]
Source/WebCore/inspector/InspectorPageAgent.cpp:487:  The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]
Source/WebCore/inspector/InspectorDebuggerAgent.h:84:  The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]
Total errors found: 4 in 26 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>486647</commentid>
    <comment_count>5</comment_count>
      <attachid>111466</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-10-19 02:59:53 -0700</bug_when>
    <thetext>Comment on attachment 111466
Patch

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

&gt; Source/WebCore/inspector/InspectorDebuggerAgent.cpp:328
&gt; +        *results = ContentSearchUtils::searchInTextByLines(it-&gt;second.source, query, *caseSensitive, *isRegex);

What boolean value is written in the address 0?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>486703</commentid>
    <comment_count>6</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-10-19 05:36:51 -0700</bug_when>
    <thetext>Committed r97851: &lt;http://trac.webkit.org/changeset/97851&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111462</attachid>
            <date>2011-10-18 10:21:11 -0700</date>
            <delta_ts>2011-10-18 10:41:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70335-20111018212106.patch</filename>
            <type>text/plain</type>
            <size>37549</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTc3NDYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4ZjVkN2UxOTNmZTJiOTEw
M2JkZmNjZThjMmI3YzRlMzdmZmI2NGQ5Li5kZmEzMjYyNTI5NjQ4YjgwMGRkY2ExYzU0OGNkNWYx
OTU5N2FmYmQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDkgQEAKKzIwMTEtMTAtMTggIFZzZXZv
bG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogRW5hYmxlIGNhc2VTZW5zaXRpdmUgc2VhcmNoIC8gUmVnZXggc3VwcG9ydCBpbiBhZHZhbmNl
ZCBzZWFyY2guCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD03MDMzNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogaW5zcGVjdG9yL0NvbnRlbnRTZWFyY2hVdGlscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
b250ZW50U2VhcmNoVXRpbHM6OmNyZWF0ZVNlYXJjaFJlZ2V4KToKKyAgICAgICAgKFdlYkNvcmU6
OkNvbnRlbnRTZWFyY2hVdGlsczo6c2VhcmNoSW5UZXh0QnlMaW5lcyk6CisgICAgICAgICogaW5z
cGVjdG9yL0NvbnRlbnRTZWFyY2hVdGlscy5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0
b3IuanNvbjoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpzZWFyY2hJbkNvbnRl
bnQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50Lmg6CisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JQYWdlQWdlbnQ6OnNlYXJjaEluUmVzb3VyY2UpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5k
L0FkdmFuY2VkU2VhcmNoQ29udHJvbGxlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TZWFy
Y2hWaWV3KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TZWFyY2hWaWV3LnByb3RvdHlwZS5nZXQg
c2VhcmNoQ29uZmlnKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5GaWxlQmFzZWRTZWFyY2hSZXN1
bHRzUGFuZS5wcm90b3R5cGUuX2NyZWF0ZVNlYXJjaFJlZ2V4KToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5GaWxlQmFzZWRTZWFyY2hSZXN1bHRzUGFuZS5wcm90b3R5cGUuYWRkU2VhcmNoUmVzdWx0
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5GaWxlQmFzZWRTZWFyY2hSZXN1bHRzUGFuZS5TZWFy
Y2hSZXN1bHQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQ29udGVudFByb3ZpZGVy
cy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRDb250ZW50UHJvdmlkZXIucHJvdG90
eXBlLnNlYXJjaEluQ29udGVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uY2F0ZW5hdGVk
U2NyaXB0c0NvbnRlbnRQcm92aWRlci5wcm90b3R5cGUuc2VhcmNoSW5Db250ZW50LnNlYXJjaENh
bGxiYWNrKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db25jYXRlbmF0ZWRTY3JpcHRzQ29udGVu
dFByb3ZpZGVyLnByb3RvdHlwZS5zZWFyY2hJbkNvbnRlbnQpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlJlc291cmNlQ29udGVudFByb3ZpZGVyLnByb3RvdHlwZS5zZWFyY2hJbkNvbnRlbnQpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbXBpbGVyU291cmNlTWFwcGluZ0NvbnRlbnRQcm92aWRl
ci5wcm90b3R5cGUuc2VhcmNoSW5Db250ZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TdGF0
aWNDb250ZW50UHJvdmlkZXIucHJvdG90eXBlLnNlYXJjaEluQ29udGVudCk6CisgICAgICAgICog
aW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5S
ZXNvdXJjZS5wcm90b3R5cGUuc2VhcmNoSW5Db250ZW50KToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZnJvbnQtZW5kL1NjcmlwdC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHQucHJvdG90
eXBlLnNlYXJjaEluQ29udGVudCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TY3Jp
cHRzU2VhcmNoU2NvcGUuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1NlYXJjaFNj
b3BlLnByb3RvdHlwZS5wZXJmb3JtU2VhcmNoLnNlYXJjaENhbGxiYWNrV3JhcHBlcik6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1NlYXJjaFNjb3BlLnByb3RvdHlwZS5wZXJmb3JtU2Vh
cmNoKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1VJU291cmNlQ29kZS5qczoKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUucHJvdG90eXBlLnNlYXJjaEluQ29udGVu
dCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29udGVudFByb3ZpZGVyLnByb3RvdHlwZS5zZWFy
Y2hJbkNvbnRlbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmNz
czoKKyAgICAgICAgKC5zZWFyY2gtdmlldyAuc2VhcmNoLXBhbmVsIGlucHV0W3R5cGU9InNlYXJj
aCJdLnNlYXJjaC1jb25maWctc2VhcmNoKToKKyAgICAgICAgKC5zZWFyY2gtdmlldyAuc2VhcmNo
LXBhbmVsIGxhYmVsLnNlYXJjaC1jb25maWctbGFiZWwpOgorICAgICAgICAoLnNlYXJjaC12aWV3
IC5zZWFyY2gtcGFuZWwgaW5wdXRbdHlwZT0iY2hlY2tib3giXS5zZWFyY2gtY29uZmlnLWNoZWNr
Ym94KToKKwogMjAxMS0xMC0xOCAgWmFuIERvYmVyc2VrICA8emFuZG9iZXJzZWtAZ21haWwuY29t
PgogCiAgICAgICAgIFtHdGtdIFN1cHBvcnQgZm9yIGNsaWVudC1iYXNlZCBnZW9sb2NhdGlvbgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0NvbnRlbnRTZWFyY2hVdGlscy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29udGVudFNlYXJjaFV0aWxzLmNwcAppbmRl
eCAyYzljN2M0OTdkYmFhMDMwMDcwY2EzOTg3NjQ1YTljNDYxMWIyZWQxLi5hMGUwZjQwZmJlOWFk
Mzk2MWJmMjFjMDE5M2Y1YjlmMTEyMDRjM2UxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvQ29udGVudFNlYXJjaFV0aWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvQ29udGVudFNlYXJjaFV0aWxzLmNwcApAQCAtOTcsOSArOTcsOSBAQCBzdGF0aWMgUGFz
c1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGJ1aWxkT2JqZWN0Rm9yU2VhcmNoTWF0Y2goaW50IGxp
bmVOdW1iZXIsIFN0cgogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLVJlZ3VsYXJFeHByZXNzaW9u
IGNyZWF0ZVNlYXJjaFJlZ2V4KGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBjYXNlU2Vuc2l0aXZl
LCBib29sIGlzUmVnZXgpCitSZWd1bGFyRXhwcmVzc2lvbiBjcmVhdGVTZWFyY2hSZWdleChjb25z
dCBTdHJpbmcmIHF1ZXJ5LCBib29sIGNhc2VTZW5zaXRpdmUsIGJvb2wgaXNSZWdleCkKIHsKLSAg
ICBTdHJpbmcgcmVnZXhTb3VyY2UgPSBpc1JlZ2V4ID8gdGV4dCA6IGNyZWF0ZVNlYXJjaFJlZ2V4
U291cmNlKHRleHQpOworICAgIFN0cmluZyByZWdleFNvdXJjZSA9IGlzUmVnZXggPyBxdWVyeSA6
IGNyZWF0ZVNlYXJjaFJlZ2V4U291cmNlKHF1ZXJ5KTsKICAgICByZXR1cm4gUmVndWxhckV4cHJl
c3Npb24ocmVnZXhTb3VyY2UsIGNhc2VTZW5zaXRpdmUgPyBUZXh0Q2FzZVNlbnNpdGl2ZSA6IFRl
eHRDYXNlSW5zZW5zaXRpdmUpOwogfQogCkBAIC0xMTksMTEgKzExOSwxMSBAQCBpbnQgY291bnRS
ZWd1bGFyRXhwcmVzc2lvbk1hdGNoZXMoY29uc3QgUmVndWxhckV4cHJlc3Npb24mIHJlZ2V4LCBj
b25zdCBTdHJpbmcmCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotUGFzc1JlZlB0cjxJbnNwZWN0
b3JBcnJheT4gc2VhcmNoSW5UZXh0QnlMaW5lcyhjb25zdCBTdHJpbmcmIHF1ZXJ5LCBjb25zdCBT
dHJpbmcmIHRleHQpCitQYXNzUmVmUHRyPEluc3BlY3RvckFycmF5PiBzZWFyY2hJblRleHRCeUxp
bmVzKGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiBxdWVyeSwgY29uc3QgYm9vbCBj
YXNlU2Vuc2l0aXZlLCBjb25zdCBib29sIGlzUmVnZXgpCiB7CiAgICAgUmVmUHRyPEluc3BlY3Rv
ckFycmF5PiByZXN1bHQgPSBJbnNwZWN0b3JBcnJheTo6Y3JlYXRlKCk7CiAKLSAgICBSZWd1bGFy
RXhwcmVzc2lvbiByZWdleCA9IENvbnRlbnRTZWFyY2hVdGlsczo6Y3JlYXRlU2VhcmNoUmVnZXgo
cXVlcnksIGZhbHNlLCBmYWxzZSk7CisgICAgUmVndWxhckV4cHJlc3Npb24gcmVnZXggPSBDb250
ZW50U2VhcmNoVXRpbHM6OmNyZWF0ZVNlYXJjaFJlZ2V4KHF1ZXJ5LCBjYXNlU2Vuc2l0aXZlLCBp
c1JlZ2V4KTsKICAgICBWZWN0b3I8cGFpcjxpbnQsIFN0cmluZz4gPiBtYXRjaGVzID0gZ2V0UmVn
dWxhckV4cHJlc3Npb25NYXRjaGVzQnlMaW5lcyhyZWdleCwgdGV4dCk7CiAKICAgICBmb3IgKFZl
Y3RvcjxwYWlyPGludCwgU3RyaW5nPiA+Ojpjb25zdF9pdGVyYXRvciBpdCA9IG1hdGNoZXMuYmVn
aW4oKTsgaXQgIT0gbWF0Y2hlcy5lbmQoKTsgKytpdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9Db250ZW50U2VhcmNoVXRpbHMuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9Db250ZW50U2VhcmNoVXRpbHMuaAppbmRleCAzM2U2OTJlOWM0MzBhZDk1MzM2MDU5ZmJi
ZDFkMmUxNGFkODcwMzZjLi44OTUyM2M1M2U2OWViZDIzOTFkZmNlZDQxNjY3MjRjN2IwNjBkMzhj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29udGVudFNlYXJjaFV0aWxz
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0NvbnRlbnRTZWFyY2hVdGlscy5oCkBA
IC00MCw5ICs0MCw5IEBAIGNsYXNzIFJlZ3VsYXJFeHByZXNzaW9uOwogCiBuYW1lc3BhY2UgQ29u
dGVudFNlYXJjaFV0aWxzIHsKIAotUmVndWxhckV4cHJlc3Npb24gY3JlYXRlU2VhcmNoUmVnZXgo
Y29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIGNhc2VTZW5zaXRpdmUsIGJvb2wgaXNSZWdleCk7CitS
ZWd1bGFyRXhwcmVzc2lvbiBjcmVhdGVTZWFyY2hSZWdleChjb25zdCBTdHJpbmcmIHF1ZXJ5LCBi
b29sIGNhc2VTZW5zaXRpdmUsIGJvb2wgaXNSZWdleCk7CiBpbnQgY291bnRSZWd1bGFyRXhwcmVz
c2lvbk1hdGNoZXMoY29uc3QgUmVndWxhckV4cHJlc3Npb24mLCBjb25zdCBTdHJpbmcmKTsKLVBh
c3NSZWZQdHI8SW5zcGVjdG9yQXJyYXk+IHNlYXJjaEluVGV4dEJ5TGluZXMoY29uc3QgU3RyaW5n
JiBxdWVyeSwgY29uc3QgU3RyaW5nJiB0ZXh0KTsKK1Bhc3NSZWZQdHI8SW5zcGVjdG9yQXJyYXk+
IHNlYXJjaEluVGV4dEJ5TGluZXMoY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIHF1
ZXJ5LCBjb25zdCBib29sIGNhc2VTZW5zaXRpdmUsIGNvbnN0IGJvb2wgaXNSZWdleCk7CiAKIH0g
Ly8gbmFtZXNwYWNlIENvbnRlbnRTZWFyY2hVdGlscwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCmluZGV4IDU0ZDJmZTJjZDA1NTY2
Y2ZmNzI4MGI5YTZjNDgyYTM2ZGZhMTFkMTkuLjA3MDVmNjAxZjg1YTk5MTY4NTA3YWE2ZGMxNGVk
MWM1ZTQ0MTMxZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3IuanNvbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KQEAg
LTIyMyw3ICsyMjMsOSBAQAogICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwogICAgICAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogImZyYW1lSWQiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVz
Y3JpcHRpb24iOiAiRnJhbWUgaWQgZm9yIHJlc291cmNlIHRvIHNlYXJjaCBpbi4iIH0sCiAgICAg
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidXJsIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2Ny
aXB0aW9uIjogIlVSTCBvZiB0aGUgcmVzb3VyY2UgdG8gc2VhcmNoIGluLiIgfSwKLSAgICAgICAg
ICAgICAgICAgICAgeyAibmFtZSI6ICJxdWVyeSIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlw
dGlvbiI6ICJTdHJpbmcgdG8gc2VhcmNoIGZvci4iICB9CisgICAgICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAicXVlcnkiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiU3RyaW5n
IHRvIHNlYXJjaCBmb3IuIiAgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjYXNl
U2Vuc2l0aXZlIiwgInR5cGUiOiAiYm9vbGVhbiIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlw
dGlvbiI6ICJJZiB0cnVlLCBzZWFyY2ggaXMgY2FzZSBzZW5zaXRpdmUuIiB9LAorICAgICAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogImlzUmVnZXgiLCAidHlwZSI6ICJib29sZWFuIiwgIm9wdGlv
bmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIklmIHRydWUsIHRyZWF0cyBzdHJpbmcgcGFyYW1l
dGVyIGFzIHJlZ2V4LiIgfQogICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgInJl
dHVybnMiOiBbCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicmVzdWx0IiwgInR5cGUi
OiAiYXJyYXkiLCAiaXRlbXMiOiB7ICIkcmVmIjogIlNlYXJjaE1hdGNoIiB9LCAiZGVzY3JpcHRp
b24iOiAiTGlzdCBvZiBzZWFyY2ggbWF0Y2hlcy4iIH0KQEAgLTE3NzUsNyArMTc3Nyw5IEBACiAg
ICAgICAgICAgICAgICAgIm5hbWUiOiAic2VhcmNoSW5Db250ZW50IiwKICAgICAgICAgICAgICAg
ICAicGFyYW1ldGVycyI6IFsKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzY3JpcHRJ
ZCIsICIkcmVmIjogIlNjcmlwdElkIiwgImRlc2NyaXB0aW9uIjogIklkIG9mIHRoZSBzY3JpcHQg
dG8gc2VhcmNoIGluLiIgfSwKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJxdWVyeSIs
ICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJTdHJpbmcgdG8gc2VhcmNoIGZvci4i
ICB9CisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicXVlcnkiLCAidHlwZSI6ICJzdHJp
bmciLCAiZGVzY3JpcHRpb24iOiAiU3RyaW5nIHRvIHNlYXJjaCBmb3IuIiAgfSwKKyAgICAgICAg
ICAgICAgICAgICAgeyAibmFtZSI6ICJjYXNlU2Vuc2l0aXZlIiwgInR5cGUiOiAiYm9vbGVhbiIs
ICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJJZiB0cnVlLCBzZWFyY2ggaXMgY2Fz
ZSBzZW5zaXRpdmUuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImlzUmVnZXgi
LCAidHlwZSI6ICJib29sZWFuIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIklm
IHRydWUsIHRyZWF0cyBzdHJpbmcgcGFyYW1ldGVyIGFzIHJlZ2V4LiIgfQogICAgICAgICAgICAg
ICAgIF0sCiAgICAgICAgICAgICAgICAgInJldHVybnMiOiBbCiAgICAgICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAicmVzdWx0IiwgInR5cGUiOiAiYXJyYXkiLCAiaXRlbXMiOiB7ICIkcmVmIjog
IlBhZ2UuU2VhcmNoTWF0Y2giIH0sICJkZXNjcmlwdGlvbiI6ICJMaXN0IG9mIHNlYXJjaCBtYXRj
aGVzLiIgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRl
YnVnZ2VyQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVn
Z2VyQWdlbnQuY3BwCmluZGV4IDNkNzEyMGE1NTg1NjY4YzhiZGNiZTBlMTZhN2M5NGJjMmQxYjRm
YjcuLjY3MGQ5ZjJmMTBmN2FmN2M4NDc0NzBkMmJhZTgxZTFmYTFmZTZkNmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAKQEAg
LTMyMSwxMSArMzIxLDExIEBAIHN0YXRpYyBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gc2Ny
aXB0VG9JbnNwZWN0b3JPYmplY3QoU2NyaXB0T2JqZWN0IHNjcmlwdE9iCiAgICAgcmV0dXJuIHZh
bHVlLT5hc09iamVjdCgpOwogfQogCi12b2lkIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OnNlYXJj
aEluQ29udGVudChFcnJvclN0cmluZyogZXJyb3IsIGNvbnN0IFN0cmluZyYgc2NyaXB0SWQsIGNv
bnN0IFN0cmluZyYgcXVlcnksIFJlZlB0cjxJbnNwZWN0b3JBcnJheT4qIHJlc3VsdHMpCit2b2lk
IEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OnNlYXJjaEluQ29udGVudChFcnJvclN0cmluZyogZXJy
b3IsIGNvbnN0IFN0cmluZyYgc2NyaXB0SWQsIGNvbnN0IFN0cmluZyYgcXVlcnksIGJvb2wqIGNh
c2VTZW5zaXRpdmUsIGJvb2wqIGlzUmVnZXgsIFJlZlB0cjxJbnNwZWN0b3JBcnJheT4qIHJlc3Vs
dHMpCiB7CiAgICAgU2NyaXB0c01hcDo6aXRlcmF0b3IgaXQgPSBtX3NjcmlwdHMuZmluZChzY3Jp
cHRJZCk7CiAgICAgaWYgKGl0ICE9IG1fc2NyaXB0cy5lbmQoKSkKLSAgICAgICAgKnJlc3VsdHMg
PSBDb250ZW50U2VhcmNoVXRpbHM6OnNlYXJjaEluVGV4dEJ5TGluZXMocXVlcnksIGl0LT5zZWNv
bmQuc291cmNlKTsKKyAgICAgICAgKnJlc3VsdHMgPSBDb250ZW50U2VhcmNoVXRpbHM6OnNlYXJj
aEluVGV4dEJ5TGluZXMoaXQtPnNlY29uZC5zb3VyY2UsIHF1ZXJ5LCAqY2FzZVNlbnNpdGl2ZSwg
KmlzUmVnZXgpOwogICAgIGVsc2UKICAgICAgICAgKmVycm9yID0gIk5vIHNjcmlwdCBmb3IgaWQ6
ICIgKyBzY3JpcHRJZDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JEZWJ1Z2dlckFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yRGVidWdnZXJBZ2VudC5oCmluZGV4IDczYjI3NTRlMjhhMzE3ZDllNmE5ZDNhNGRlMzc0NzY3
ZDEwZjhjMjcuLjE5MzlkYzg3MDRjYjY1YWVjOWJhY2NlNTI0MWE2YWVkYTc2OTUzOGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuaApA
QCAtODEsNyArODEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCByZW1vdmVCcmVha3BvaW50KEVycm9y
U3RyaW5nKiwgY29uc3QgU3RyaW5nJiBicmVha3BvaW50SWQpOwogICAgIHZvaWQgY29udGludWVU
b0xvY2F0aW9uKEVycm9yU3RyaW5nKiwgUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGxvY2F0
aW9uKTsKIAotICAgIHZvaWQgc2VhcmNoSW5Db250ZW50KEVycm9yU3RyaW5nKiwgY29uc3QgU3Ry
aW5nJiBzY3JpcHRJZCwgY29uc3QgU3RyaW5nJiBxdWVyeSwgUmVmUHRyPEluc3BlY3RvckFycmF5
PiopOworICAgIHZvaWQgc2VhcmNoSW5Db250ZW50KEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5n
JiBzY3JpcHRJZCwgY29uc3QgU3RyaW5nJiBxdWVyeSwgYm9vbCogY2FzZVNlbnNpdGl2ZSwgYm9v
bCogaXNSZWdleCwgUmVmUHRyPEluc3BlY3RvckFycmF5PiopOwogICAgIHZvaWQgc2V0U2NyaXB0
U291cmNlKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBzY3JpcHRJZCwgY29uc3QgU3RyaW5n
JiBuZXdDb250ZW50LCBjb25zdCBib29sKiBjb25zdCBwcmV2aWV3LCBSZWZQdHI8SW5zcGVjdG9y
QXJyYXk+KiBuZXdDYWxsRnJhbWVzLCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiogcmVzdWx0KTsK
ICAgICB2b2lkIGdldFNjcmlwdFNvdXJjZShFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgc2Ny
aXB0SWQsIFN0cmluZyogc2NyaXB0U291cmNlKTsKICAgICB2b2lkIHNjaGVkdWxlUGF1c2VPbk5l
eHRTdGF0ZW1lbnQoY29uc3QgU3RyaW5nJiBicmVha1JlYXNvbiwgUGFzc1JlZlB0cjxJbnNwZWN0
b3JPYmplY3Q+IGRhdGEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvclBhZ2VBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
UGFnZUFnZW50LmNwcAppbmRleCBiNzgxYjIxYTRkYzAyNDdmZTViZTZkZmY4MmFlYmM0MzY0MDcy
NWI3Li4yZTkzYjI5MjAyNDBiNWQ3ZDIzMjJiMjUxMmUwNDMzYTViYmJkZDI4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcApAQCAtNDg0LDcg
KzQ4NCw3IEBAIHN0YXRpYyBib29sIHRleHRDb250ZW50Rm9yQ2FjaGVkUmVzb3VyY2UoQ2FjaGVk
UmVzb3VyY2UqIGNhY2hlZFJlc291cmNlLCBTdHJpbmcqCiAgICAgcmV0dXJuIGZhbHNlOwogfQog
Ci12b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6c2VhcmNoSW5SZXNvdXJjZShFcnJvclN0cmluZyos
IGNvbnN0IFN0cmluZyYgZnJhbWVJZCwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYg
cXVlcnksIFJlZlB0cjxJbnNwZWN0b3JBcnJheT4qIHJlc3VsdHMpCit2b2lkIEluc3BlY3RvclBh
Z2VBZ2VudDo6c2VhcmNoSW5SZXNvdXJjZShFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgZnJh
bWVJZCwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgcXVlcnksIGJvb2wqIGNhc2VT
ZW5zaXRpdmUsIGJvb2wqIGlzUmVnZXgsIFJlZlB0cjxJbnNwZWN0b3JBcnJheT4qIHJlc3VsdHMp
CiB7CiAgICAgKnJlc3VsdHMgPSBJbnNwZWN0b3JBcnJheTo6Y3JlYXRlKCk7CiAKQEAgLTUxMCw3
ICs1MTAsNyBAQCB2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6c2VhcmNoSW5SZXNvdXJjZShFcnJv
clN0cmluZyosIGNvbnN0IFN0cmluZyYgZnJhbWVJZCwgYwogICAgIGlmICghc3VjY2VzcykKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgKnJlc3VsdHMgPSBDb250ZW50U2VhcmNoVXRpbHM6OnNlYXJj
aEluVGV4dEJ5TGluZXMocXVlcnksIGNvbnRlbnQpOworICAgICpyZXN1bHRzID0gQ29udGVudFNl
YXJjaFV0aWxzOjpzZWFyY2hJblRleHRCeUxpbmVzKGNvbnRlbnQsIHF1ZXJ5LCAqY2FzZVNlbnNp
dGl2ZSwgKmlzUmVnZXgpOwogfQogCiBzdGF0aWMgUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+
IGJ1aWxkT2JqZWN0Rm9yU2VhcmNoUmVzdWx0KGNvbnN0IFN0cmluZyYgZnJhbWVJZCwgY29uc3Qg
U3RyaW5nJiB1cmwsIGludCBtYXRjaGVzQ291bnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yUGFnZUFnZW50LmgKaW5kZXggOTEzMGM1MDZhNjczMmFkY2NiODhjMTdjNDVk
MTM5YjA3MDMzM2IzYi4uNmVhMjhkMzc5MjIxODY1Y2NlOGVjMjEwNjI3NzBlZGZjZDAwNjZhMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuaApAQCAt
OTcsNyArOTcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkZWxldGVDb29raWUoRXJyb3JTdHJpbmcq
LCBjb25zdCBTdHJpbmcmIGNvb2tpZU5hbWUsIGNvbnN0IFN0cmluZyYgZG9tYWluKTsKICAgICB2
b2lkIGdldFJlc291cmNlVHJlZShFcnJvclN0cmluZyosIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+
Kik7CiAgICAgdm9pZCBnZXRSZXNvdXJjZUNvbnRlbnQoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJp
bmcmIGZyYW1lSWQsIGNvbnN0IFN0cmluZyYgdXJsLCBTdHJpbmcqIGNvbnRlbnQsIGJvb2wqIGJh
c2U2NEVuY29kZWQpOwotICAgIHZvaWQgc2VhcmNoSW5SZXNvdXJjZShFcnJvclN0cmluZyosIGNv
bnN0IFN0cmluZyYgZnJhbWVJZCwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYsIFJl
ZlB0cjxJbnNwZWN0b3JBcnJheT4qKTsKKyAgICB2b2lkIHNlYXJjaEluUmVzb3VyY2UoRXJyb3JT
dHJpbmcqLCBjb25zdCBTdHJpbmcmIGZyYW1lSWQsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBT
dHJpbmcmIHF1ZXJ5LCBib29sKiBjYXNlU2Vuc2l0aXZlLCBib29sKiBpc1JlZ2V4LCBSZWZQdHI8
SW5zcGVjdG9yQXJyYXk+Kik7CiAgICAgdm9pZCBzZWFyY2hJblJlc291cmNlcyhFcnJvclN0cmlu
ZyosIGNvbnN0IFN0cmluZyYsIGNvbnN0IGJvb2wqIGNvbnN0IGNhc2VTZW5zaXRpdmUsIGNvbnN0
IGJvb2wqIGNvbnN0IGlzUmVnZXgsIFJlZlB0cjxJbnNwZWN0b3JBcnJheT4qKTsKIAogICAgIC8v
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbiBBUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvQWR2YW5jZWRTZWFyY2hDb250cm9sbGVyLmpzIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BZHZhbmNlZFNlYXJjaENvbnRyb2xsZXIuanMK
aW5kZXggZjdiNmM5MjM2ZGJiNDUwNzQxMzQ3NjNkMWVmOGQ2M2YwMDBhYjhkYy4uNjdiZDg1M2Q2
YTExYzgwMjQwMDM1YTEwM2QyZTkxZTNkMGYxNGY4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BZHZhbmNlZFNlYXJjaENvbnRyb2xsZXIuanMKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BZHZhbmNlZFNlYXJjaENvbnRyb2xs
ZXIuanMKQEAgLTE1MSw5ICsxNTEsMjUgQEAgV2ViSW5zcGVjdG9yLlNlYXJjaFZpZXcgPSBmdW5j
dGlvbihjb250cm9sbGVyKQogICAgIAogICAgIHRoaXMuX3NlYXJjaCA9IHRoaXMuX3NlYXJjaFBh
bmVsRWxlbWVudC5jcmVhdGVDaGlsZCgiaW5wdXQiKTsKICAgICB0aGlzLl9zZWFyY2guc2V0QXR0
cmlidXRlKCJ0eXBlIiwgInNlYXJjaCIpOworICAgIHRoaXMuX3NlYXJjaC5hZGRTdHlsZUNsYXNz
KCJzZWFyY2gtY29uZmlnLXNlYXJjaCIpOwogICAgIHRoaXMuX3NlYXJjaC5zZXRBdHRyaWJ1dGUo
InJlc3VsdHMiLCAiMCIpOwogICAgIHRoaXMuX3NlYXJjaC5zZXRBdHRyaWJ1dGUoInNpemUiLCAy
MCk7CiAKKyAgICB0aGlzLl9pZ25vcmVDYXNlTGFiZWwgPSB0aGlzLl9zZWFyY2hQYW5lbEVsZW1l
bnQuY3JlYXRlQ2hpbGQoImxhYmVsIik7CisgICAgdGhpcy5faWdub3JlQ2FzZUxhYmVsLmFkZFN0
eWxlQ2xhc3MoInNlYXJjaC1jb25maWctbGFiZWwiKTsKKyAgICB0aGlzLl9pZ25vcmVDYXNlQ2hl
Y2tib3ggPSB0aGlzLl9pZ25vcmVDYXNlTGFiZWwuY3JlYXRlQ2hpbGQoImlucHV0Iik7CisgICAg
dGhpcy5faWdub3JlQ2FzZUNoZWNrYm94LnNldEF0dHJpYnV0ZSgidHlwZSIsICJjaGVja2JveCIp
OworICAgIHRoaXMuX2lnbm9yZUNhc2VDaGVja2JveC5hZGRTdHlsZUNsYXNzKCJzZWFyY2gtY29u
ZmlnLWNoZWNrYm94Iik7CisgICAgdGhpcy5faWdub3JlQ2FzZUxhYmVsLmFwcGVuZENoaWxkKGRv
Y3VtZW50LmNyZWF0ZVRleHROb2RlKFdlYkluc3BlY3Rvci5VSVN0cmluZygiSWdub3JlIGNhc2Ui
KSkpOworICAgIAorCisgICAgdGhpcy5fcmVnZXhMYWJlbCA9IHRoaXMuX3NlYXJjaFBhbmVsRWxl
bWVudC5jcmVhdGVDaGlsZCgibGFiZWwiKTsKKyAgICB0aGlzLl9yZWdleExhYmVsLmFkZFN0eWxl
Q2xhc3MoInNlYXJjaC1jb25maWctbGFiZWwiKTsKKyAgICB0aGlzLl9yZWdleENoZWNrYm94ID0g
dGhpcy5fcmVnZXhMYWJlbC5jcmVhdGVDaGlsZCgiaW5wdXQiKTsKKyAgICB0aGlzLl9yZWdleENo
ZWNrYm94LnNldEF0dHJpYnV0ZSgidHlwZSIsICJjaGVja2JveCIpOworICAgIHRoaXMuX3JlZ2V4
Q2hlY2tib3guYWRkU3R5bGVDbGFzcygic2VhcmNoLWNvbmZpZy1jaGVja2JveCIpOworICAgIHRo
aXMuX3JlZ2V4TGFiZWwuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoV2ViSW5z
cGVjdG9yLlVJU3RyaW5nKCJSZWd1bGFyIGV4cHJlc3Npb24iKSkpOworICAgIAogICAgIHRoaXMu
X2xvYWQoKTsKIH0KIApAQCAtMTY4LDYgKzE4NCw4IEBAIFdlYkluc3BlY3Rvci5TZWFyY2hWaWV3
LnByb3RvdHlwZSA9IHsKICAgICB7CiAgICAgICAgIHZhciBzZWFyY2hDb25maWcgPSB7fTsKICAg
ICAgICAgc2VhcmNoQ29uZmlnLnF1ZXJ5ID0gdGhpcy5fc2VhcmNoLnZhbHVlOworICAgICAgICBz
ZWFyY2hDb25maWcuaWdub3JlQ2FzZSA9IHRoaXMuX2lnbm9yZUNhc2VDaGVja2JveC5jaGVja2Vk
OworICAgICAgICBzZWFyY2hDb25maWcuaXNSZWdleCA9IHRoaXMuX3JlZ2V4Q2hlY2tib3guY2hl
Y2tlZDsKICAgICAgICAgcmV0dXJuIHNlYXJjaENvbmZpZzsKICAgICB9LAogICAgIApAQCAtMjM2
LDYgKzI1NCw4IEBAIFdlYkluc3BlY3Rvci5TZWFyY2hWaWV3LnByb3RvdHlwZSA9IHsKICAgICB7
CiAgICAgICAgIHZhciBzZWFyY2hDb25maWcgPSBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MuYWR2YW5j
ZWRTZWFyY2hDb25maWcuZ2V0KCk7CiAgICAgICAgIHRoaXMuX3NlYXJjaC52YWx1ZSA9IHNlYXJj
aENvbmZpZy5xdWVyeTsKKyAgICAgICAgdGhpcy5faWdub3JlQ2FzZUNoZWNrYm94LmNoZWNrZWQg
PSBzZWFyY2hDb25maWcuaWdub3JlQ2FzZTsKKyAgICAgICAgdGhpcy5fcmVnZXhDaGVja2JveC5j
aGVja2VkID0gc2VhcmNoQ29uZmlnLmlzUmVnZXg7CiAgICAgfSwKICAgICAKICAgICBfb25BY3Rp
b246IGZ1bmN0aW9uKCkKQEAgLTM0MCw2ICszNjAsMjUgQEAgV2ViSW5zcGVjdG9yLkZpbGVCYXNl
ZFNlYXJjaFJlc3VsdHNQYW5lLnByb3RvdHlwZSA9IHsKICAgICBmaWxlTmFtZTogZnVuY3Rpb24o
ZmlsZSkgeyB9LAogICAgIAogICAgIC8qKgorICAgICAqIEByZXR1cm4ge1JlZ0V4cH0KKyAgICAg
Ki8KKyAgICBfY3JlYXRlU2VhcmNoUmVnZXg6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHZh
ciByZWdleEZsYWdzID0gdGhpcy5fc2VhcmNoQ29uZmlnLmlnbm9yZUNhc2UgPyAiZ2kiIDogImci
OworICAgICAgICB2YXIgcmVnZXhPYmplY3Q7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBy
ZWdleE9iamVjdCA9IG5ldyBSZWdFeHAodGhpcy5fc2VhcmNoQ29uZmlnLnF1ZXJ5LCByZWdleEZs
YWdzKTsKKyAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICAgICAgLy8gU2lsZW50IGNhdGNo
LgorICAgICAgICB9CisKKyAgICAgICAgaWYgKCFyZWdleE9iamVjdCkKKyAgICAgICAgICAgIHJl
Z2V4T2JqZWN0ID0gY3JlYXRlU2VhcmNoUmVnZXgodGhpcy5fc2VhcmNoQ29uZmlnLnF1ZXJ5LCBy
ZWdleEZsYWdzKTsKKyAgICAgICAgCisgICAgICAgIHJldHVybiByZWdleE9iamVjdDsKKyAgICB9
LAorICAgIAorICAgIC8qKgogICAgICAqIEBwYXJhbSB7T2JqZWN0fSBzZWFyY2hSZXN1bHQKICAg
ICAgKi8KICAgICBhZGRTZWFyY2hSZXN1bHQ6IGZ1bmN0aW9uKHNlYXJjaFJlc3VsdCkKQEAgLTM1
Miw3ICszOTEsNyBAQCBXZWJJbnNwZWN0b3IuRmlsZUJhc2VkU2VhcmNoUmVzdWx0c1BhbmUucHJv
dG90eXBlID0gewogICAgICAgICAvLyBFeHBhbmQgZmlyc3QgZmlsZSB3aXRoIG1hdGNoZXMgb25s
eS4KICAgICAgICAgdmFyIGZpbGVUcmVlRWxlbWVudCA9IHRoaXMuX2FkZEZpbGVUcmVlRWxlbWVu
dChmaWxlTmFtZSwgc2VhcmNoTWF0Y2hlcy5sZW5ndGgsIHRoaXMuX3NlYXJjaFJlc3VsdHMubGVu
Z3RoID09PSAxKTsKICAgICAgICAgCi0gICAgICAgIHZhciByZWdleE9iamVjdCA9IGNyZWF0ZVNl
YXJjaFJlZ2V4KHRoaXMuX3NlYXJjaENvbmZpZy5xdWVyeSwgImciKTsgIAorICAgICAgICB2YXIg
cmVnZXhPYmplY3QgPSB0aGlzLl9jcmVhdGVTZWFyY2hSZWdleCgpOwogICAgICAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IHNlYXJjaE1hdGNoZXMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgIHZh
ciBsaW5lTnVtYmVyID0gc2VhcmNoTWF0Y2hlc1tpXS5saW5lTnVtYmVyOwogICAgICAgICAgICAg
CkBAIC00MzIsMyArNDcxLDEzIEBAIFdlYkluc3BlY3Rvci5GaWxlQmFzZWRTZWFyY2hSZXN1bHRz
UGFuZS5wcm90b3R5cGUgPSB7CiB9CiAKIFdlYkluc3BlY3Rvci5GaWxlQmFzZWRTZWFyY2hSZXN1
bHRzUGFuZS5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLlNlYXJjaFJlc3VsdHNQ
YW5lLnByb3RvdHlwZTsKKworLyoqCisgKiBAY29uc3RydWN0b3IKKyAqIEBwYXJhbSB7T2JqZWN0
fSBmaWxlCisgKiBAcGFyYW0ge0FycmF5LjxPYmplY3Q+fSBzZWFyY2hNYXRjaGVzCisgKi8KK1dl
Ykluc3BlY3Rvci5GaWxlQmFzZWRTZWFyY2hSZXN1bHRzUGFuZS5TZWFyY2hSZXN1bHQgPSBmdW5j
dGlvbihmaWxlLCBzZWFyY2hNYXRjaGVzKSB7CisgICAgdGhpcy5maWxlID0gZmlsZTsKKyAgICB0
aGlzLnNlYXJjaE1hdGNoZXMgPSBzZWFyY2hNYXRjaGVzOworfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db250ZW50UHJvdmlkZXJzLmpzIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db250ZW50UHJvdmlkZXJzLmpzCmluZGV4IGYy
ZTI2OWUyMTZhZTczYmVmZjEzZmNlZTA3YTQ4MWY4MjBiN2ZjZWYuLmVhMDM4YWNjMDEzZmQ0YTBh
MjNmNjIyNTFkYTkxM2UxYjNkOGFjMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvQ29udGVudFByb3ZpZGVycy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0NvbnRlbnRQcm92aWRlcnMuanMKQEAgLTM5LDYgKzM5LDkgQEAg
V2ViSW5zcGVjdG9yLlNjcmlwdENvbnRlbnRQcm92aWRlciA9IGZ1bmN0aW9uKHNjcmlwdCkKIH07
CiAKIFdlYkluc3BlY3Rvci5TY3JpcHRDb250ZW50UHJvdmlkZXIucHJvdG90eXBlID0geworICAg
IC8qKgorICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24oc3RyaW5nLHN0cmluZyl9IGNhbGxiYWNrCisg
ICAgICovCiAgICAgcmVxdWVzdENvbnRlbnQ6IGZ1bmN0aW9uKGNhbGxiYWNrKQogICAgIHsKICAg
ICAgICAgZnVuY3Rpb24gZGlkUmVxdWVzdFNvdXJjZShzb3VyY2UpCkBAIC00OCw5ICs1MSwxNSBA
QCBXZWJJbnNwZWN0b3IuU2NyaXB0Q29udGVudFByb3ZpZGVyLnByb3RvdHlwZSA9IHsKICAgICAg
ICAgdGhpcy5fc2NyaXB0LnJlcXVlc3RTb3VyY2UoZGlkUmVxdWVzdFNvdXJjZS5iaW5kKHRoaXMp
KTsKICAgICB9LAogCi0gICAgc2VhcmNoSW5Db250ZW50OiBmdW5jdGlvbihxdWVyeSwgY2FsbGJh
Y2spCisgICAgLyoqCisgICAgICogQHBhcmFtIHtzdHJpbmd9IHF1ZXJ5CisgICAgICogQHBhcmFt
IHtib29sZWFufSBjYXNlU2Vuc2l0aXZlCisgICAgICogQHBhcmFtIHtib29sZWFufSBpc1JlZ2V4
CisgICAgICogQHBhcmFtIHtmdW5jdGlvbihBcnJheS48V2ViSW5zcGVjdG9yLkNvbnRlbnRQcm92
aWRlci5TZWFyY2hNYXRjaD4pfSBjYWxsYmFjaworICAgICAqLworICAgIHNlYXJjaEluQ29udGVu
dDogZnVuY3Rpb24ocXVlcnksIGNhc2VTZW5zaXRpdmUsIGlzUmVnZXgsIGNhbGxiYWNrKQogICAg
IHsKLSAgICAgICAgdGhpcy5fc2NyaXB0LnNlYXJjaEluQ29udGVudChxdWVyeSwgY2FsbGJhY2sp
OworICAgICAgICB0aGlzLl9zY3JpcHQuc2VhcmNoSW5Db250ZW50KHF1ZXJ5LCBjYXNlU2Vuc2l0
aXZlLCBpc1JlZ2V4LCBjYWxsYmFjayk7CiAgICAgfQogfQogCkBAIC03MCw2ICs3OSw5IEBAIFdl
Ykluc3BlY3Rvci5Db25jYXRlbmF0ZWRTY3JpcHRzQ29udGVudFByb3ZpZGVyLnNjcmlwdE9wZW5U
YWcgPSAiPHNjcmlwdD4iOwogV2ViSW5zcGVjdG9yLkNvbmNhdGVuYXRlZFNjcmlwdHNDb250ZW50
UHJvdmlkZXIuc2NyaXB0Q2xvc2VUYWcgPSAiPC9zY3JpcHQ+IjsKIAogV2ViSW5zcGVjdG9yLkNv
bmNhdGVuYXRlZFNjcmlwdHNDb250ZW50UHJvdmlkZXIucHJvdG90eXBlID0geworICAgIC8qKgor
ICAgICAqIEByZXR1cm4ge0FycmF5LjxXZWJJbnNwZWN0b3IuU2NyaXB0Pn0KKyAgICAgKi8KICAg
ICBfc29ydGVkU2NyaXB0czogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgaWYgKHRoaXMuX3Nv
cnRlZFNjcmlwdHNBcnJheSkKQEAgLTk2LDYgKzEwOCw5IEBAIFdlYkluc3BlY3Rvci5Db25jYXRl
bmF0ZWRTY3JpcHRzQ29udGVudFByb3ZpZGVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0dXJu
IHRoaXMuX3NvcnRlZFNjcmlwdHNBcnJheTsKICAgICB9LAogCisgICAgLyoqCisgICAgICogQHBh
cmFtIHtmdW5jdGlvbihzdHJpbmcsc3RyaW5nKX0gY2FsbGJhY2sKKyAgICAgKi8KICAgICByZXF1
ZXN0Q29udGVudDogZnVuY3Rpb24oY2FsbGJhY2spCiAgICAgewogICAgICAgICB2YXIgc2NyaXB0
cyA9IHRoaXMuX3NvcnRlZFNjcmlwdHMoKTsKQEAgLTExMCw3ICsxMjUsMTMgQEAgV2ViSW5zcGVj
dG9yLkNvbmNhdGVuYXRlZFNjcmlwdHNDb250ZW50UHJvdmlkZXIucHJvdG90eXBlID0gewogICAg
ICAgICAgICAgc2NyaXB0c1tpXS5yZXF1ZXN0U291cmNlKGRpZFJlcXVlc3RTb3VyY2UuYmluZCh0
aGlzKSk7CiAgICAgfSwKIAotICAgIHNlYXJjaEluQ29udGVudDogZnVuY3Rpb24ocXVlcnksIGNh
bGxiYWNrKQorICAgIC8qKgorICAgICAqIEBwYXJhbSB7c3RyaW5nfSBxdWVyeQorICAgICAqIEBw
YXJhbSB7Ym9vbGVhbn0gY2FzZVNlbnNpdGl2ZQorICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gaXNS
ZWdleAorICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24oQXJyYXkuPFdlYkluc3BlY3Rvci5Db250ZW50
UHJvdmlkZXIuU2VhcmNoTWF0Y2g+KX0gY2FsbGJhY2sKKyAgICAgKi8KKyAgICBzZWFyY2hJbkNv
bnRlbnQ6IGZ1bmN0aW9uKHF1ZXJ5LCBjYXNlU2Vuc2l0aXZlLCBpc1JlZ2V4LCBjYWxsYmFjaykK
ICAgICB7CiAgICAgICAgIHZhciByZXN1bHRzID0ge307CiAgICAgICAgIHZhciBzY3JpcHRzID0g
dGhpcy5fc29ydGVkU2NyaXB0cygpOwpAQCAtMTI3LDEzICsxNDgsMTUgQEAgV2ViSW5zcGVjdG9y
LkNvbmNhdGVuYXRlZFNjcmlwdHNDb250ZW50UHJvdmlkZXIucHJvdG90eXBlID0gewogICAgICAg
ICAgICAgY2FsbGJhY2socmVzdWx0KTsKICAgICAgICAgfQogCisgICAgICAgIC8qKgorICAgICAg
ICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5TY3JpcHR9IHNjcmlwdAorICAgICAgICAgKiBAcGFy
YW0ge0FycmF5LjxQYWdlQWdlbnQuU2VhcmNoTWF0Y2g+fSBzZWFyY2hNYXRjaGVzCisgICAgICAg
ICAqLwogICAgICAgICBmdW5jdGlvbiBzZWFyY2hDYWxsYmFjayhzY3JpcHQsIHNlYXJjaE1hdGNo
ZXMpCiAgICAgICAgIHsKICAgICAgICAgICAgIHJlc3VsdHNbc2NyaXB0LnNjcmlwdElkXSA9IFtd
OwogICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzZWFyY2hNYXRjaGVzLmxlbmd0aDsg
KytpKSB7Ci0gICAgICAgICAgICAgICAgdmFyIHNlYXJjaE1hdGNoID0ge307Ci0gICAgICAgICAg
ICAgICAgc2VhcmNoTWF0Y2gubGluZU51bWJlciA9IHNlYXJjaE1hdGNoZXNbaV0ubGluZU51bWJl
ciArIHNjcmlwdC5saW5lT2Zmc2V0OwotICAgICAgICAgICAgICAgIHNlYXJjaE1hdGNoLmxpbmVD
b250ZW50ID0gc2VhcmNoTWF0Y2hlc1tpXS5saW5lQ29udGVudDsKKyAgICAgICAgICAgICAgICB2
YXIgc2VhcmNoTWF0Y2ggPSBuZXcgV2ViSW5zcGVjdG9yLkNvbnRlbnRQcm92aWRlci5TZWFyY2hN
YXRjaChzZWFyY2hNYXRjaGVzW2ldLmxpbmVOdW1iZXIgKyBzY3JpcHQubGluZU9mZnNldCwgc2Vh
cmNoTWF0Y2hlc1tpXS5saW5lQ29udGVudCk7CiAgICAgICAgICAgICAgICAgcmVzdWx0c1tzY3Jp
cHQuc2NyaXB0SWRdLnB1c2goc2VhcmNoTWF0Y2gpOwogICAgICAgICAgICAgfQogICAgICAgICAg
ICAgc2NyaXB0c0xlZnQtLTsKQEAgLTE0Miw5ICsxNjUsMTIgQEAgV2ViSW5zcGVjdG9yLkNvbmNh
dGVuYXRlZFNjcmlwdHNDb250ZW50UHJvdmlkZXIucHJvdG90eXBlID0gewogCiAgICAgICAgIG1h
eWJlQ2FsbGJhY2soKTsKICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzY3JpcHRzLmxlbmd0
aDsgKytpKQotICAgICAgICAgICAgc2NyaXB0c1tpXS5zZWFyY2hJbkNvbnRlbnQocXVlcnksIHNl
YXJjaENhbGxiYWNrLmJpbmQodGhpcywgc2NyaXB0c1tpXSkpOworICAgICAgICAgICAgc2NyaXB0
c1tpXS5zZWFyY2hJbkNvbnRlbnQocXVlcnksIGNhc2VTZW5zaXRpdmUsIGlzUmVnZXgsIHNlYXJj
aENhbGxiYWNrLmJpbmQodGhpcywgc2NyaXB0c1tpXSkpOwogICAgIH0sCiAKKyAgICAvKioKKyAg
ICAgKiBAcmV0dXJuIHtzdHJpbmd9CisgICAgICovCiAgICAgX2NvbmNhdGVuYXRlU2NyaXB0c0Nv
bnRlbnQ6IGZ1bmN0aW9uKHNjcmlwdHMsIHNvdXJjZXMpCiAgICAgewogICAgICAgICB2YXIgY29u
dGVudCA9ICIiOwpAQCAtMTg3LDYgKzIxMyw5IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZUNvbnRl
bnRQcm92aWRlciA9IGZ1bmN0aW9uKHJlc291cmNlKQogfTsKIAogV2ViSW5zcGVjdG9yLlJlc291
cmNlQ29udGVudFByb3ZpZGVyLnByb3RvdHlwZSA9IHsKKyAgICAvKioKKyAgICAgKiBAcGFyYW0g
e2Z1bmN0aW9uKHN0cmluZyxzdHJpbmcpfSBjYWxsYmFjaworICAgICAqLwogICAgIHJlcXVlc3RD
b250ZW50OiBmdW5jdGlvbihjYWxsYmFjaykKICAgICB7CiAgICAgICAgIGZ1bmN0aW9uIGRpZFJl
cXVlc3RDb250ZW50KGNvbnRlbnQpCkBAIC0xOTYsOSArMjI1LDE1IEBAIFdlYkluc3BlY3Rvci5S
ZXNvdXJjZUNvbnRlbnRQcm92aWRlci5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX3Jlc291
cmNlLnJlcXVlc3RDb250ZW50KGRpZFJlcXVlc3RDb250ZW50LmJpbmQodGhpcykpOwogICAgIH0s
CiAKLSAgICBzZWFyY2hJbkNvbnRlbnQ6IGZ1bmN0aW9uKHF1ZXJ5LCBjYWxsYmFjaykKKyAgICAv
KioKKyAgICAgKiBAcGFyYW0ge3N0cmluZ30gcXVlcnkKKyAgICAgKiBAcGFyYW0ge2Jvb2xlYW59
IGNhc2VTZW5zaXRpdmUKKyAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGlzUmVnZXgKKyAgICAgKiBA
cGFyYW0ge2Z1bmN0aW9uKEFycmF5LjxXZWJJbnNwZWN0b3IuQ29udGVudFByb3ZpZGVyLlNlYXJj
aE1hdGNoPil9IGNhbGxiYWNrCisgICAgICovCisgICAgc2VhcmNoSW5Db250ZW50OiBmdW5jdGlv
bihxdWVyeSwgY2FzZVNlbnNpdGl2ZSwgaXNSZWdleCwgY2FsbGJhY2spCiAgICAgewotICAgICAg
ICB0aGlzLl9yZXNvdXJjZS5zZWFyY2hJbkNvbnRlbnQocXVlcnksIGNhbGxiYWNrKTsKKyAgICAg
ICAgdGhpcy5fcmVzb3VyY2Uuc2VhcmNoSW5Db250ZW50KHF1ZXJ5LCBjYXNlU2Vuc2l0aXZlLCBp
c1JlZ2V4LCBjYWxsYmFjayk7CiAgICAgfQogfQogCkBAIC0yMTYsNiArMjUxLDkgQEAgV2ViSW5z
cGVjdG9yLkNvbXBpbGVyU291cmNlTWFwcGluZ0NvbnRlbnRQcm92aWRlciA9IGZ1bmN0aW9uKHNv
dXJjZVVSTCwgY29tcGlsZXIKIH07CiAKIFdlYkluc3BlY3Rvci5Db21waWxlclNvdXJjZU1hcHBp
bmdDb250ZW50UHJvdmlkZXIucHJvdG90eXBlID0geworICAgIC8qKgorICAgICAqIEBwYXJhbSB7
ZnVuY3Rpb24oc3RyaW5nLHN0cmluZyl9IGNhbGxiYWNrCisgICAgICovCiAgICAgcmVxdWVzdENv
bnRlbnQ6IGZ1bmN0aW9uKGNhbGxiYWNrKQogICAgIHsKICAgICAgICAgZnVuY3Rpb24gZGlkTG9h
ZFNvdXJjZUNvZGUoc291cmNlQ29kZSkKQEAgLTIyNSw3ICsyNjMsMTMgQEAgV2ViSW5zcGVjdG9y
LkNvbXBpbGVyU291cmNlTWFwcGluZ0NvbnRlbnRQcm92aWRlci5wcm90b3R5cGUgPSB7CiAgICAg
ICAgIHRoaXMuX2NvbXBpbGVyU291cmNlTWFwcGluZ1Byb3ZpZGVyLmxvYWRTb3VyY2VDb2RlKHRo
aXMuX3NvdXJjZVVSTCwgZGlkTG9hZFNvdXJjZUNvZGUuYmluZCh0aGlzKSk7CiAgICAgfSwKIAot
ICAgIHNlYXJjaEluQ29udGVudDogZnVuY3Rpb24ocXVlcnksIGNhbGxiYWNrKQorICAgIC8qKgor
ICAgICAqIEBwYXJhbSB7c3RyaW5nfSBxdWVyeQorICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gY2Fz
ZVNlbnNpdGl2ZQorICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gaXNSZWdleAorICAgICAqIEBwYXJh
bSB7ZnVuY3Rpb24oQXJyYXkuPFdlYkluc3BlY3Rvci5Db250ZW50UHJvdmlkZXIuU2VhcmNoTWF0
Y2g+KX0gY2FsbGJhY2sKKyAgICAgKi8KKyAgICBzZWFyY2hJbkNvbnRlbnQ6IGZ1bmN0aW9uKHF1
ZXJ5LCBjYXNlU2Vuc2l0aXZlLCBpc1JlZ2V4LCBjYWxsYmFjaykKICAgICB7CiAgICAgICAgIGNh
bGxiYWNrKFtdKTsKICAgICB9CkBAIC0yNDQsMTIgKzI4OCwyMSBAQCBXZWJJbnNwZWN0b3IuU3Rh
dGljQ29udGVudFByb3ZpZGVyID0gZnVuY3Rpb24obWltZVR5cGUsIGNvbnRlbnQpCiB9OwogCiBX
ZWJJbnNwZWN0b3IuU3RhdGljQ29udGVudFByb3ZpZGVyLnByb3RvdHlwZSA9IHsKKyAgICAvKioK
KyAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKHN0cmluZyxzdHJpbmcpfSBjYWxsYmFjaworICAgICAq
LwogICAgIHJlcXVlc3RDb250ZW50OiBmdW5jdGlvbihjYWxsYmFjaykKICAgICB7CiAgICAgICAg
IGNhbGxiYWNrKHRoaXMuX21pbWVUeXBlLCB0aGlzLl9jb250ZW50KTsKICAgICB9LAogCi0gICAg
c2VhcmNoSW5Db250ZW50OiBmdW5jdGlvbihxdWVyeSwgY2FsbGJhY2spCisgICAgLyoqCisgICAg
ICogQHBhcmFtIHtzdHJpbmd9IHF1ZXJ5CisgICAgICogQHBhcmFtIHtib29sZWFufSBjYXNlU2Vu
c2l0aXZlCisgICAgICogQHBhcmFtIHtib29sZWFufSBpc1JlZ2V4CisgICAgICogQHBhcmFtIHtm
dW5jdGlvbihBcnJheS48V2ViSW5zcGVjdG9yLkNvbnRlbnRQcm92aWRlci5TZWFyY2hNYXRjaD4p
fSBjYWxsYmFjaworICAgICAqLworICAgIHNlYXJjaEluQ29udGVudDogZnVuY3Rpb24ocXVlcnks
IGNhc2VTZW5zaXRpdmUsIGlzUmVnZXgsIGNhbGxiYWNrKQogICAgIHsKICAgICAgICAgY2FsbGJh
Y2soW10pOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvUmVzb3VyY2UuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jl
c291cmNlLmpzCmluZGV4IDZmYmI5ODMxOGNlODVhM2JiNzAwMjlmOGY1YTJiOTZiODRiNTU2Nzcu
LmUwZDc1NDEyMjk1N2JhMTg4NWJlODQ5MmI0MDZlY2Q4OTI4MTEwODQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2UuanMKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZS5qcwpAQCAtODgzLDcgKzg4Myw3
IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZS5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICB0aGlz
Ll9pbm5lclJlcXVlc3RDb250ZW50KCk7CiAgICAgfSwKIAotICAgIHNlYXJjaEluQ29udGVudDog
ZnVuY3Rpb24ocXVlcnksIGNhbGxiYWNrKQorICAgIHNlYXJjaEluQ29udGVudDogZnVuY3Rpb24o
cXVlcnksIGNhc2VTZW5zaXRpdmUsIGlzUmVnZXgsIGNhbGxiYWNrKQogICAgIHsKICAgICAgICAg
ZnVuY3Rpb24gY2FsbGJhY2tXcmFwcGVyKGVycm9yLCBzZWFyY2hNYXRjaGVzKQogICAgICAgICB7
CkBAIC04OTEsNyArODkxLDcgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlLnByb3RvdHlwZSA9IHsK
ICAgICAgICAgfQogCiAgICAgICAgIGlmICh0aGlzLmZyYW1lSWQpCi0gICAgICAgICAgICBQYWdl
QWdlbnQuc2VhcmNoSW5SZXNvdXJjZSh0aGlzLmZyYW1lSWQsIHRoaXMudXJsLCBxdWVyeSwgY2Fs
bGJhY2tXcmFwcGVyKTsKKyAgICAgICAgICAgIFBhZ2VBZ2VudC5zZWFyY2hJblJlc291cmNlKHRo
aXMuZnJhbWVJZCwgdGhpcy51cmwsIHF1ZXJ5LCBjYXNlU2Vuc2l0aXZlLCBpc1JlZ2V4LCBjYWxs
YmFja1dyYXBwZXIpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBjYWxsYmFjayhbXSk7CiAg
ICAgfSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2Ny
aXB0LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHQuanMKaW5k
ZXggOTNhZDg4MTI4ODQ1N2ZjN2NhNjdlMmI3ODBiYTY3YTVkNjc0NGUxNC4uMGIyN2NiMjg1NGIx
ODQ1MWRmZTE5OGEyOGNlZjRkYTE4YjFkOTFmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHQuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9TY3JpcHQuanMKQEAgLTc0LDkgKzc0LDExIEBAIFdlYkluc3BlY3Rvci5T
Y3JpcHQucHJvdG90eXBlID0gewogCiAgICAgLyoqCiAgICAgICogQHBhcmFtIHtzdHJpbmd9IHF1
ZXJ5CisgICAgICogQHBhcmFtIHtib29sZWFufSBjYXNlU2Vuc2l0aXZlCisgICAgICogQHBhcmFt
IHtib29sZWFufSBpc1JlZ2V4CiAgICAgICogQHBhcmFtIHtmdW5jdGlvbihBcnJheS48UGFnZUFn
ZW50LlNlYXJjaE1hdGNoPil9IGNhbGxiYWNrCiAgICAgICovCi0gICAgc2VhcmNoSW5Db250ZW50
OiBmdW5jdGlvbihxdWVyeSwgY2FsbGJhY2spCisgICAgc2VhcmNoSW5Db250ZW50OiBmdW5jdGlv
bihxdWVyeSwgY2FzZVNlbnNpdGl2ZSwgaXNSZWdleCwgY2FsbGJhY2spCiAgICAgewogICAgICAg
ICAvKioKICAgICAgICAgICogQHRoaXMge1dlYkluc3BlY3Rvci5TY3JpcHR9CkBAIC04NywxMiAr
ODksMTcgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHsKICAg
ICAgICAgICAgIGlmIChlcnJvcikKICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycm9y
KTsKLSAgICAgICAgICAgIGNhbGxiYWNrKHNlYXJjaE1hdGNoZXMgfHwgW10pOworICAgICAgICAg
ICAgdmFyIHJlc3VsdCA9IFtdOworICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzZWFy
Y2hNYXRjaGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgdmFyIHNlYXJjaE1hdGNo
ID0gbmV3IFdlYkluc3BlY3Rvci5Db250ZW50UHJvdmlkZXIuU2VhcmNoTWF0Y2goc2VhcmNoTWF0
Y2hlc1tpXS5saW5lTnVtYmVyLCBzZWFyY2hNYXRjaGVzW2ldLmxpbmVDb250ZW50KTsKKyAgICAg
ICAgICAgICAgICByZXN1bHQucHVzaChzZWFyY2hNYXRjaCk7CisgICAgICAgICAgICB9CisgICAg
ICAgICAgICBjYWxsYmFjayhyZXN1bHQgfHwgW10pOwogICAgICAgICB9CiAgICAgICAgIAogICAg
ICAgICBpZiAodGhpcy5zY3JpcHRJZCkgewogICAgICAgICAgICAgLy8gU2NyaXB0IGZhaWxlZCB0
byBwYXJzZS4KLSAgICAgICAgICAgIERlYnVnZ2VyQWdlbnQuc2VhcmNoSW5Db250ZW50KHRoaXMu
c2NyaXB0SWQsIHF1ZXJ5LCBpbm5lckNhbGxiYWNrLmJpbmQodGhpcykpOworICAgICAgICAgICAg
RGVidWdnZXJBZ2VudC5zZWFyY2hJbkNvbnRlbnQodGhpcy5zY3JpcHRJZCwgcXVlcnksIGNhc2VT
ZW5zaXRpdmUsIGlzUmVnZXgsIGlubmVyQ2FsbGJhY2suYmluZCh0aGlzKSk7CiAgICAgICAgIH0g
ZWxzZQogICAgICAgICAgICAgY2FsbGJhY2soW10pOwogICAgIH0sCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNTZWFyY2hTY29wZS5qcyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1NlYXJjaFNjb3BlLmpzCmlu
ZGV4IDAxODFiYzY0MmU4NDRlYjkwZjU3NGQ0MDUzZTBmMjk5NDVjYTM0MDEuLjkzZTk2NTdmNGVj
NzhiNDhmYTg3NTM4YTU3NTYyNGZlYzg3MGYxNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1NlYXJjaFNjb3BlLmpzCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1NlYXJjaFNjb3BlLmpzCkBAIC01NSw3
ICs1NSw3IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzU2VhcmNoU2NvcGUucHJvdG90eXBlID0gewog
ICAgICAgICBmdW5jdGlvbiBzZWFyY2hDYWxsYmFja1dyYXBwZXIodWlTb3VyY2VDb2RlLCBzZWFy
Y2hNYXRjaGVzKQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAoc2VhcmNoTWF0Y2hlcy5sZW5n
dGgpIHsKLSAgICAgICAgICAgICAgICB2YXIgc2VhcmNoUmVzdWx0ID0ge2ZpbGU6IHVpU291cmNl
Q29kZSwgc2VhcmNoTWF0Y2hlczogc2VhcmNoTWF0Y2hlc307CisgICAgICAgICAgICAgICAgdmFy
IHNlYXJjaFJlc3VsdCA9IG5ldyBXZWJJbnNwZWN0b3IuRmlsZUJhc2VkU2VhcmNoUmVzdWx0c1Bh
bmUuU2VhcmNoUmVzdWx0KHVpU291cmNlQ29kZSwgc2VhcmNoTWF0Y2hlcyk7CiAgICAgICAgICAg
ICAgICAgc2VhcmNoUmVzdWx0Q2FsbGJhY2soc2VhcmNoUmVzdWx0KTsKICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIC0tY2FsbGJhY2tzTGVmdDsKQEAgLTcyLDcgKzcyLDcgQEAgV2ViSW5zcGVj
dG9yLlNjcmlwdHNTZWFyY2hTY29wZS5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgLy8g
SW5jcmVhc2UgY2FsbGJhY2tzTGVmdCBmaXJzdCBiZWNhdXNlIHNlYXJjaEluQ29udGVudCBjYWxs
IGNvdWxkIGJlIHN5bmNocm9ub3VzLgogICAgICAgICAgICAgICAgIGNhbGxiYWNrc0xlZnQrKzsK
ICAgICAgICAgICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIG5vdCByZXF1ZXN0IG5leHQgc2Vh
cmNoSW5Db250ZW50IHVubGVzcyBwcmV2aW91cyBvbmUgaXMgYWxyZWFkeSBmaW5pc2hlZC4gIAot
ICAgICAgICAgICAgICAgIHVpU291cmNlQ29kZS5zZWFyY2hJbkNvbnRlbnQoc2VhcmNoQ29uZmln
LnF1ZXJ5LCBzZWFyY2hDYWxsYmFja1dyYXBwZXIuYmluZCh0aGlzLCB1aVNvdXJjZUNvZGUpKTsK
KyAgICAgICAgICAgICAgICB1aVNvdXJjZUNvZGUuc2VhcmNoSW5Db250ZW50KHNlYXJjaENvbmZp
Zy5xdWVyeSwgIXNlYXJjaENvbmZpZy5pZ25vcmVDYXNlLCBzZWFyY2hDb25maWcuaXNSZWdleCwg
c2VhcmNoQ2FsbGJhY2tXcmFwcGVyLmJpbmQodGhpcywgdWlTb3VyY2VDb2RlKSk7CiAgICAgICAg
ICAgICB9CiAgICAgICAgIH0KICAgICAgICAgbWF5YmVTZWFyY2hGaW5pc2hlZCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9VSVNvdXJjZUNvZGUuanMg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1VJU291cmNlQ29kZS5qcwppbmRl
eCAyZmJmZTMzZTk5MmYyZDM5YTYxNDBiODg0Y2Y4MGQ4MzZmNTQ0OTdmLi42Y2M1NDUzNjYxMGU4
ZGNjZjQ1Nzk3YTlkNjIyYjZkYjBkYzkwYmMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1VJU291cmNlQ29kZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1VJU291cmNlQ29kZS5qcwpAQCAtMTE0LDExICsxMTQsMTMgQEAg
V2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZS5wcm90b3R5cGUgPSB7CiAKICAgICAvKioKICAgICAg
KiBAcGFyYW0ge3N0cmluZ30gcXVlcnkKLSAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKEFycmF5LjxP
YmplY3Q+KX0gY2FsbGJhY2sKKyAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGNhc2VTZW5zaXRpdmUK
KyAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGlzUmVnZXgKKyAgICAgKiBAcGFyYW0ge2Z1bmN0aW9u
KEFycmF5LjxXZWJJbnNwZWN0b3IuQ29udGVudFByb3ZpZGVyLlNlYXJjaE1hdGNoPil9IGNhbGxi
YWNrCiAgICAgICovCi0gICAgc2VhcmNoSW5Db250ZW50OiBmdW5jdGlvbihxdWVyeSwgY2FsbGJh
Y2spCisgICAgc2VhcmNoSW5Db250ZW50OiBmdW5jdGlvbihxdWVyeSwgY2FzZVNlbnNpdGl2ZSwg
aXNSZWdleCwgY2FsbGJhY2spCiAgICAgewotICAgICAgICB0aGlzLl9jb250ZW50UHJvdmlkZXIu
c2VhcmNoSW5Db250ZW50KHF1ZXJ5LCBjYWxsYmFjayk7CisgICAgICAgIHRoaXMuX2NvbnRlbnRQ
cm92aWRlci5zZWFyY2hJbkNvbnRlbnQocXVlcnksIGNhc2VTZW5zaXRpdmUsIGlzUmVnZXgsIGNh
bGxiYWNrKTsKICAgICB9LAogCiAgICAgLyoqCkBAIC0xNTAsOSArMTUyLDExIEBAIFdlYkluc3Bl
Y3Rvci5Db250ZW50UHJvdmlkZXIucHJvdG90eXBlID0gewogCiAgICAgLyoqCiAgICAgICogQHBh
cmFtIHtzdHJpbmd9IHF1ZXJ5CisgICAgICogQHBhcmFtIHtib29sZWFufSBjYXNlU2Vuc2l0aXZl
CisgICAgICogQHBhcmFtIHtib29sZWFufSBpc1JlZ2V4CiAgICAgICogQHBhcmFtIHtmdW5jdGlv
bihBcnJheS48V2ViSW5zcGVjdG9yLkNvbnRlbnRQcm92aWRlci5TZWFyY2hNYXRjaD4pfSBjYWxs
YmFjawogICAgICAqLwotICAgIHNlYXJjaEluQ29udGVudDogZnVuY3Rpb24ocXVlcnksIGNhbGxi
YWNrKSB7IH0KKyAgICBzZWFyY2hJbkNvbnRlbnQ6IGZ1bmN0aW9uKHF1ZXJ5LCBjYXNlU2Vuc2l0
aXZlLCBpc1JlZ2V4LCBjYWxsYmFjaykgeyB9CiB9CiAKIC8qKgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuY3NzIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuY3NzCmluZGV4IGYyY2M1ZWQ3MTUyMzYw
MzkwN2EyZjNmNzkzNDdkZWIwY2MxNWU2Y2UuLmY2NzhhM2Q3OGQxZmZjMzcxMjlhYTZhNjUyZGM2
OGQ1ZDQ2NGEwN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvaW5zcGVjdG9yLmNzcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L2luc3BlY3Rvci5jc3MKQEAgLTQxMzYsNiArNDEzNiwyMSBAQCBhLndvcmtlci1pdGVtOmhvdmVy
IHsKICAgICBmb250LXNpemU6IDExcHg7CiB9CiAKKy5zZWFyY2gtdmlldyAuc2VhcmNoLXBhbmVs
IGlucHV0W3R5cGU9InNlYXJjaCJdLnNlYXJjaC1jb25maWctc2VhcmNoIHsKKyAgICBtYXJnaW4t
cmlnaHQ6IDhweDsKKyAgICBjb2xvcjogIzMwMzAzMDsKK30KKworLnNlYXJjaC12aWV3IC5zZWFy
Y2gtcGFuZWwgbGFiZWwuc2VhcmNoLWNvbmZpZy1sYWJlbCB7CisgICAgbWFyZ2luLXJpZ2h0OiA4
cHg7CisgICAgY29sb3I6ICMzMDMwMzA7Cit9CisKKy5zZWFyY2gtdmlldyAuc2VhcmNoLXBhbmVs
IGlucHV0W3R5cGU9ImNoZWNrYm94Il0uc2VhcmNoLWNvbmZpZy1jaGVja2JveCB7CisgICAgdmVy
dGljYWwtYWxpZ246IGJvdHRvbTsKKyAgICBtYXJnaW4tYm90dG9tOiA2cHg7Cit9CisKIC5zZWFy
Y2gtdmlldyAuc2VhcmNoLXJlc3VsdHMgewogICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICB0
b3A6IDM1cHg7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggMDQ3YWI0ZjViOGRiZjQ5M2QyODk2YWE5NThjYzk0ZTZhZWE4YTI4
NC4uMjBiM2NmMzQxMDYxZjg1MWQ5Y2EwNWU2YmM4MDllYmRjMjJiY2FkZCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE2IEBACisyMDExLTEwLTE4ICBWc2V2b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IEVuYWJsZSBjYXNlU2Vuc2l0aXZlIHNlYXJj
aCAvIFJlZ2V4IHN1cHBvcnQgaW4gYWR2YW5jZWQgc2VhcmNoLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAzMzUKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL3NlYXJj
aC9zZWFyY2gtaW4tY29uY2F0ZW5hdGVkLXNjcmlwdC5odG1sOgorICAgICAgICAqIGh0dHAvdGVz
dHMvaW5zcGVjdG9yL3NlYXJjaC9zZWFyY2gtaW4tcmVzb3VyY2UtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL3NlYXJjaC9zZWFyY2gtaW4tcmVzb3VyY2UuaHRt
bDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9zZWFyY2gvc2VhcmNoLWluLXNjcmlw
dC1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3Ivc2VhcmNoL3Nl
YXJjaC1pbi1zY3JpcHQuaHRtbDoKKwogMjAxMS0xMC0xOCAgWmFuIERvYmVyc2VrICA8emFuZG9i
ZXJzZWtAZ21haWwuY29tPgogCiAgICAgICAgIFtHdGtdIFN1cHBvcnQgZm9yIGNsaWVudC1iYXNl
ZCBnZW9sb2NhdGlvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3Ivc2VhcmNoL3NlYXJjaC1pbi1jb25jYXRlbmF0ZWQtc2NyaXB0Lmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9zZWFyY2gvc2VhcmNoLWluLWNvbmNhdGVuYXRlZC1zY3Jp
cHQuaHRtbAppbmRleCA4MWEwYTM3OTc2YWRkOTlhYzIzNDFhYTlmY2VhOWJkZjVjNWRjYjRiLi43
NjQ4ZjMwZTExOTNmODMzNWJhYWFkZmZiNDkwZmJiNTlkMGRkZmUzIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9zZWFyY2gvc2VhcmNoLWluLWNvbmNhdGVuYXRl
ZC1zY3JpcHQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9zZWFy
Y2gvc2VhcmNoLWluLWNvbmNhdGVuYXRlZC1zY3JpcHQuaHRtbApAQCAtMjcsNyArMjcsNyBAQCBm
dW5jdGlvbiB0ZXN0KCkKICAgICAgICAgdmFyIHNjcmlwdHMgPSBXZWJJbnNwZWN0b3IuZGVidWdn
ZXJNb2RlbC5zY3JpcHRzRm9yVVJMKHVybCk7CiAgICAgICAgIHZhciBjb250ZW50UHJvdmlkZXIg
PSBuZXcgV2ViSW5zcGVjdG9yLkNvbmNhdGVuYXRlZFNjcmlwdHNDb250ZW50UHJvdmlkZXIoc2Ny
aXB0cyk7CiAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KHVybCk7Ci0gICAgICAgIGNv
bnRlbnRQcm92aWRlci5zZWFyY2hJbkNvbnRlbnQodGV4dCwgc3RlcDQpOworICAgICAgICBjb250
ZW50UHJvdmlkZXIuc2VhcmNoSW5Db250ZW50KHRleHQsIGZhbHNlLCBmYWxzZSwgc3RlcDQpOwog
ICAgIH0KIAogICAgIGZ1bmN0aW9uIHN0ZXA0KHNlYXJjaE1hdGNoZXMpCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9zZWFyY2gvc2VhcmNoLWluLXJlc291cmNl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3NlYXJjaC9z
ZWFyY2gtaW4tcmVzb3VyY2UtZXhwZWN0ZWQudHh0CmluZGV4IDg0OGY0YjZjZWQyMGQ4Njc3ZGNm
Yzk5ZWU5NzNkZGFlOTkyZTIyYjguLmFiNTgwY2U4NmZjZjk5MTVhMzAzNzI5OTVhNjMzNzExYjE3
NzBhYTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3NlYXJj
aC9zZWFyY2gtaW4tcmVzb3VyY2UtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL3NlYXJjaC9zZWFyY2gtaW4tcmVzb3VyY2UtZXhwZWN0ZWQudHh0CkBA
IC04LDQgKzgsMjAgQEAgbGluZU51bWJlcjogMywgbGluZTogJyAgICAvLyBzZWFyY2hUZXN0VW5p
cXVlU3RyaW5nIHR3byBvY2N1cmVuY2VzIG9uIHRoZSBzYW1lIGwKIGxpbmVOdW1iZXI6IDksIGxp
bmU6ICcgICAgc2VhcmNoVGVzdFVuaXF1ZVN0cmluZygpOycKIGxpbmVOdW1iZXI6IDEwLCBsaW5l
OiAnICAgIC8vIFNFQVJDSFRlc3RVbmlxdWVTdHJpbmcoKTsnCiAKK1NlYXJjaCBtYXRjaGVzOiAK
K2xpbmVOdW1iZXI6IDAsIGxpbmU6ICdmdW5jdGlvbiBzZWFyY2hUZXN0VW5pcXVlU3RyaW5nKCkn
CitsaW5lTnVtYmVyOiAzLCBsaW5lOiAnICAgIC8vIHNlYXJjaFRlc3RVbmlxdWVTdHJpbmcgdHdv
IG9jY3VyZW5jZXMgb24gdGhlIHNhbWUgbGluZSBzZWFyY2hUZXN0VW5pcXVlU3RyaW5nJworbGlu
ZU51bWJlcjogOSwgbGluZTogJyAgICBzZWFyY2hUZXN0VW5pcXVlU3RyaW5nKCk7JworCitTZWFy
Y2ggbWF0Y2hlczogCitsaW5lTnVtYmVyOiAwLCBsaW5lOiAnZnVuY3Rpb24gc2VhcmNoVGVzdFVu
aXF1ZVN0cmluZygpJworbGluZU51bWJlcjogMywgbGluZTogJyAgICAvLyBzZWFyY2hUZXN0VW5p
cXVlU3RyaW5nIHR3byBvY2N1cmVuY2VzIG9uIHRoZSBzYW1lIGxpbmUgc2VhcmNoVGVzdFVuaXF1
ZVN0cmluZycKK2xpbmVOdW1iZXI6IDksIGxpbmU6ICcgICAgc2VhcmNoVGVzdFVuaXF1ZVN0cmlu
ZygpOycKK2xpbmVOdW1iZXI6IDEwLCBsaW5lOiAnICAgIC8vIFNFQVJDSFRlc3RVbmlxdWVTdHJp
bmcoKTsnCisKK1NlYXJjaCBtYXRjaGVzOiAKK2xpbmVOdW1iZXI6IDAsIGxpbmU6ICdmdW5jdGlv
biBzZWFyY2hUZXN0VW5pcXVlU3RyaW5nKCknCitsaW5lTnVtYmVyOiAzLCBsaW5lOiAnICAgIC8v
IHNlYXJjaFRlc3RVbmlxdWVTdHJpbmcgdHdvIG9jY3VyZW5jZXMgb24gdGhlIHNhbWUgbGluZSBz
ZWFyY2hUZXN0VW5pcXVlU3RyaW5nJworbGluZU51bWJlcjogOSwgbGluZTogJyAgICBzZWFyY2hU
ZXN0VW5pcXVlU3RyaW5nKCk7JworCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL3NlYXJjaC9zZWFyY2gtaW4tcmVzb3VyY2UuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL3NlYXJjaC9zZWFyY2gtaW4tcmVzb3VyY2UuaHRtbAppbmRl
eCA2NGMxYWJkMzVlMWFlNDI0NDAzOTRmOWFhN2Q3NTYxMmY5MjZhMjhhLi5lZjMzNTFkYThmZGFj
YTI0Yjg5ODUwMDE5YmUwYjE0MTZmNjhiMDE4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci9zZWFyY2gvc2VhcmNoLWluLXJlc291cmNlLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Ivc2VhcmNoL3NlYXJjaC1pbi1yZXNvdXJjZS5o
dG1sCkBAIC02LDIwICs2LDQ4IEBACiA8c2NyaXB0PgogZnVuY3Rpb24gdGVzdCgpCiB7Ci0gICAg
Ly8gVGhpcyBmaWxlIHNob3VsZCBub3QgbWF0Y2ggc2VhcmNoIHF1ZXJ5LgotICAgIHZhciB0ZXh0
ID0gInNlYXJjaFRlc3QiICsgIlVuaXF1ZVN0cmluZyI7CiAgICAgSW5zcGVjdG9yVGVzdC5ydW5B
ZnRlclJlc291cmNlc0FyZUZpbmlzaGVkKFsic2VhcmNoLmpzIl0sIHN0ZXAyKTsKKyAgICB2YXIg
cmVzb3VyY2U7CiAKICAgICBmdW5jdGlvbiBzdGVwMigpCiAgICAgewotICAgICAgICB2YXIgcmVz
b3VyY2UgPSBXZWJJbnNwZWN0b3IucmVzb3VyY2VGb3JVUkwoImh0dHA6Ly8xMjcuMC4wLjE6ODAw
MC9pbnNwZWN0b3Ivc2VhcmNoL3Jlc291cmNlcy9zZWFyY2guanMiKTsKKyAgICAgICAgcmVzb3Vy
Y2UgPSBXZWJJbnNwZWN0b3IucmVzb3VyY2VGb3JVUkwoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9p
bnNwZWN0b3Ivc2VhcmNoL3Jlc291cmNlcy9zZWFyY2guanMiKTsKICAgICAgICAgSW5zcGVjdG9y
VGVzdC5hZGRSZXN1bHQocmVzb3VyY2UudXJsKTsKLSAgICAgICAgcmVzb3VyY2Uuc2VhcmNoSW5D
b250ZW50KHRleHQsIHN0ZXAzKTsKKworICAgICAgICAvLyBUaGlzIGZpbGUgc2hvdWxkIG5vdCBt
YXRjaCBzZWFyY2ggcXVlcnkuCisgICAgICAgIHZhciB0ZXh0ID0gInNlYXJjaFRlc3QiICsgIlVu
aXF1ZVN0cmluZyI7CisgICAgICAgIHJlc291cmNlLnNlYXJjaEluQ29udGVudCh0ZXh0LCBmYWxz
ZSwgZmFsc2UsIHN0ZXAzKTsKICAgICB9CiAKICAgICBmdW5jdGlvbiBzdGVwMyhzZWFyY2hNYXRj
aGVzKQogICAgIHsKICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU2VhcmNoTWF0Y2hlcyhzZWFy
Y2hNYXRjaGVzKTsKKworICAgICAgICAvLyBUaGlzIGZpbGUgc2hvdWxkIG5vdCBtYXRjaCBzZWFy
Y2ggcXVlcnkuCisgICAgICAgIHZhciB0ZXh0ID0gInNlYXJjaFRlc3QiICsgIlVuaXF1ZVN0cmlu
ZyI7CisgICAgICAgIHJlc291cmNlLnNlYXJjaEluQ29udGVudCh0ZXh0LCB0cnVlLCBmYWxzZSwg
c3RlcDQpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHN0ZXA0KHNlYXJjaE1hdGNoZXMpCisgICAg
eworICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBTZWFyY2hNYXRjaGVzKHNlYXJjaE1hdGNoZXMp
OworCisgICAgICAgIHZhciB0ZXh0ID0gIlthLXpdZWFyY2hUZXN0VW5pcXVlU3RyaW5nIjsKKyAg
ICAgICAgcmVzb3VyY2Uuc2VhcmNoSW5Db250ZW50KHRleHQsIGZhbHNlLCB0cnVlLCBzdGVwNSk7
CisgICAgfQorCisgICAgZnVuY3Rpb24gc3RlcDUoc2VhcmNoTWF0Y2hlcykKKyAgICB7CisgICAg
ICAgIEluc3BlY3RvclRlc3QuZHVtcFNlYXJjaE1hdGNoZXMoc2VhcmNoTWF0Y2hlcyk7CisKKyAg
ICAgICAgdmFyIHRleHQgPSAiW2Etel1lYXJjaFRlc3RVbmlxdWVTdHJpbmciOworICAgICAgICBy
ZXNvdXJjZS5zZWFyY2hJbkNvbnRlbnQodGV4dCwgdHJ1ZSwgdHJ1ZSwgc3RlcDYpOworICAgIH0K
KworICAgIGZ1bmN0aW9uIHN0ZXA2KHNlYXJjaE1hdGNoZXMpCisgICAgeworICAgICAgICBJbnNw
ZWN0b3JUZXN0LmR1bXBTZWFyY2hNYXRjaGVzKHNlYXJjaE1hdGNoZXMpOworCiAgICAgICAgIElu
c3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Ivc2VhcmNoL3NlYXJjaC1pbi1zY3JpcHQtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Ivc2VhcmNoL3NlYXJjaC1p
bi1zY3JpcHQtZXhwZWN0ZWQudHh0CmluZGV4IDU3NTE3Y2U2Zjg5ZTk1MGI3YzQzZDRmYjYyNWVk
YjE2ZGQ4OTljZjMuLjczN2Q2N2UyNzNmM2VkNmNjYjAyNjNiNWNjOTJlMTcxYmE1NTU0MzkgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3NlYXJjaC9zZWFyY2gt
aW4tc2NyaXB0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9zZWFyY2gvc2VhcmNoLWluLXNjcmlwdC1leHBlY3RlZC50eHQKQEAgLTksNSArOSwyMSBA
QCBsaW5lTnVtYmVyOiAzLCBsaW5lOiAnICAgIC8vIHNlYXJjaFRlc3RVbmlxdWVTdHJpbmcgdHdv
IG9jY3VyZW5jZXMgb24gdGhlIHNhbWUgbAogbGluZU51bWJlcjogOSwgbGluZTogJyAgICBzZWFy
Y2hUZXN0VW5pcXVlU3RyaW5nKCk7JwogbGluZU51bWJlcjogMTAsIGxpbmU6ICcgICAgLy8gU0VB
UkNIVGVzdFVuaXF1ZVN0cmluZygpOycKIAorU2VhcmNoIG1hdGNoZXM6IAorbGluZU51bWJlcjog
MCwgbGluZTogJ2Z1bmN0aW9uIHNlYXJjaFRlc3RVbmlxdWVTdHJpbmcoKScKK2xpbmVOdW1iZXI6
IDMsIGxpbmU6ICcgICAgLy8gc2VhcmNoVGVzdFVuaXF1ZVN0cmluZyB0d28gb2NjdXJlbmNlcyBv
biB0aGUgc2FtZSBsaW5lIHNlYXJjaFRlc3RVbmlxdWVTdHJpbmcnCitsaW5lTnVtYmVyOiA5LCBs
aW5lOiAnICAgIHNlYXJjaFRlc3RVbmlxdWVTdHJpbmcoKTsnCisKK1NlYXJjaCBtYXRjaGVzOiAK
K2xpbmVOdW1iZXI6IDAsIGxpbmU6ICdmdW5jdGlvbiBzZWFyY2hUZXN0VW5pcXVlU3RyaW5nKCkn
CitsaW5lTnVtYmVyOiAzLCBsaW5lOiAnICAgIC8vIHNlYXJjaFRlc3RVbmlxdWVTdHJpbmcgdHdv
IG9jY3VyZW5jZXMgb24gdGhlIHNhbWUgbGluZSBzZWFyY2hUZXN0VW5pcXVlU3RyaW5nJworbGlu
ZU51bWJlcjogOSwgbGluZTogJyAgICBzZWFyY2hUZXN0VW5pcXVlU3RyaW5nKCk7JworbGluZU51
bWJlcjogMTAsIGxpbmU6ICcgICAgLy8gU0VBUkNIVGVzdFVuaXF1ZVN0cmluZygpOycKKworU2Vh
cmNoIG1hdGNoZXM6IAorbGluZU51bWJlcjogMCwgbGluZTogJ2Z1bmN0aW9uIHNlYXJjaFRlc3RV
bmlxdWVTdHJpbmcoKScKK2xpbmVOdW1iZXI6IDMsIGxpbmU6ICcgICAgLy8gc2VhcmNoVGVzdFVu
aXF1ZVN0cmluZyB0d28gb2NjdXJlbmNlcyBvbiB0aGUgc2FtZSBsaW5lIHNlYXJjaFRlc3RVbmlx
dWVTdHJpbmcnCitsaW5lTnVtYmVyOiA5LCBsaW5lOiAnICAgIHNlYXJjaFRlc3RVbmlxdWVTdHJp
bmcoKTsnCisKIERlYnVnZ2VyIHdhcyBkaXNhYmxlZC4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Ivc2VhcmNoL3NlYXJjaC1pbi1zY3JpcHQuaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3NlYXJjaC9zZWFyY2gtaW4tc2NyaXB0Lmh0
bWwKaW5kZXggOTc1ZjU2ZmIxMTI3ZmIxNmZiY2FjYzkyMjAyZDZkYjQ5NzFkMzIwMi4uNTliMjJh
MjZiNTliZjIxZDk2MDhjZWNhNDIxOTZlNzk1MGJjMjlmNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Ivc2VhcmNoL3NlYXJjaC1pbi1zY3JpcHQuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9zZWFyY2gvc2VhcmNoLWluLXNjcmlw
dC5odG1sCkBAIC03LDkgKzcsOCBAQAogPHNjcmlwdD4KIGZ1bmN0aW9uIHRlc3QoKQogewotICAg
IC8vIFRoaXMgZmlsZSBzaG91bGQgbm90IG1hdGNoIHNlYXJjaCBxdWVyeS4KLSAgICB2YXIgdGV4
dCA9ICJzZWFyY2hUZXN0IiArICJVbmlxdWVTdHJpbmciOwogICAgIEluc3BlY3RvclRlc3Quc3Rh
cnREZWJ1Z2dlclRlc3Qoc3RlcDEpOworICAgIHZhciBzY3JpcHQ7CiAKICAgICBmdW5jdGlvbiBz
dGVwMSgpCiAgICAgewpAQCAtMjQsMTQgKzIzLDQzIEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIGZ1
bmN0aW9uIHN0ZXAzKCkKICAgICB7CiAgICAgICAgIHZhciBzY3JpcHRzID0gV2ViSW5zcGVjdG9y
LmRlYnVnZ2VyTW9kZWwuc2NyaXB0c0ZvclVSTCgiaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3Bl
Y3Rvci9zZWFyY2gvcmVzb3VyY2VzL3NlYXJjaC5qcyIpOwotICAgICAgICB2YXIgc2NyaXB0ID0g
c2NyaXB0c1swXTsKKyAgICAgICAgc2NyaXB0ID0gc2NyaXB0c1swXTsKICAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRSZXN1bHQoc2NyaXB0LnNvdXJjZVVSTCk7Ci0gICAgICAgIHNjcmlwdC5zZWFy
Y2hJbkNvbnRlbnQodGV4dCwgc3RlcDQpOworCisgICAgICAgIC8vIFRoaXMgZmlsZSBzaG91bGQg
bm90IG1hdGNoIHNlYXJjaCBxdWVyeS4KKyAgICAgICAgdmFyIHRleHQgPSAic2VhcmNoVGVzdCIg
KyAiVW5pcXVlU3RyaW5nIjsKKyAgICAgICAgc2NyaXB0LnNlYXJjaEluQ29udGVudCh0ZXh0LCBm
YWxzZSwgZmFsc2UsIHN0ZXA0KTsKICAgICB9CiAKICAgICBmdW5jdGlvbiBzdGVwNChzZWFyY2hN
YXRjaGVzKQogICAgIHsKICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU2VhcmNoTWF0Y2hlcyhz
ZWFyY2hNYXRjaGVzKTsKKworICAgICAgICAvLyBUaGlzIGZpbGUgc2hvdWxkIG5vdCBtYXRjaCBz
ZWFyY2ggcXVlcnkuCisgICAgICAgIHZhciB0ZXh0ID0gInNlYXJjaFRlc3QiICsgIlVuaXF1ZVN0
cmluZyI7CisgICAgICAgIHNjcmlwdC5zZWFyY2hJbkNvbnRlbnQodGV4dCwgdHJ1ZSwgZmFsc2Us
IHN0ZXA1KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzdGVwNShzZWFyY2hNYXRjaGVzKQorICAg
IHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU2VhcmNoTWF0Y2hlcyhzZWFyY2hNYXRjaGVz
KTsKKworICAgICAgICB2YXIgdGV4dCA9ICJbYS16XWVhcmNoVGVzdFVuaXF1ZVN0cmluZyI7Cisg
ICAgICAgIHNjcmlwdC5zZWFyY2hJbkNvbnRlbnQodGV4dCwgZmFsc2UsIHRydWUsIHN0ZXA2KTsK
KyAgICB9CisKKyAgICBmdW5jdGlvbiBzdGVwNihzZWFyY2hNYXRjaGVzKQorICAgIHsKKyAgICAg
ICAgSW5zcGVjdG9yVGVzdC5kdW1wU2VhcmNoTWF0Y2hlcyhzZWFyY2hNYXRjaGVzKTsKKworICAg
ICAgICB2YXIgdGV4dCA9ICJbYS16XWVhcmNoVGVzdFVuaXF1ZVN0cmluZyI7CisgICAgICAgIHNj
cmlwdC5zZWFyY2hJbkNvbnRlbnQodGV4dCwgdHJ1ZSwgdHJ1ZSwgc3RlcDcpOworICAgIH0KKwor
ICAgIGZ1bmN0aW9uIHN0ZXA3KHNlYXJjaE1hdGNoZXMpCisgICAgeworICAgICAgICBJbnNwZWN0
b3JUZXN0LmR1bXBTZWFyY2hNYXRjaGVzKHNlYXJjaE1hdGNoZXMpOworCiAgICAgICAgIEluc3Bl
Y3RvclRlc3QuY29tcGxldGVEZWJ1Z2dlclRlc3QoKTsKICAgICB9CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111466</attachid>
            <date>2011-10-18 10:41:24 -0700</date>
            <delta_ts>2011-10-19 02:59:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70335-20111018214121.patch</filename>
            <type>text/plain</type>
            <size>41638</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTc3NDYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4ZjVkN2UxOTNmZTJiOTEw
M2JkZmNjZThjMmI3YzRlMzdmZmI2NGQ5Li40Nzg3NDBlMTEzOTc0ZDJhNTZjOGM3YTlmNzM2ZmJh
MjRhNzYwNjA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTkgQEAKKzIwMTEtMTAtMTggIFZzZXZv
bG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogRW5hYmxlIGNhc2VTZW5zaXRpdmUgc2VhcmNoIC8gUmVnZXggc3VwcG9ydCBpbiBhZHZhbmNl
ZCBzZWFyY2guCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD03MDMzNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogaW5zcGVjdG9yL0NvbnRlbnRTZWFyY2hVdGlscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
b250ZW50U2VhcmNoVXRpbHM6OmNyZWF0ZVNlYXJjaFJlZ2V4KToKKyAgICAgICAgKFdlYkNvcmU6
OkNvbnRlbnRTZWFyY2hVdGlsczo6c2VhcmNoSW5UZXh0QnlMaW5lcyk6CisgICAgICAgICogaW5z
cGVjdG9yL0NvbnRlbnRTZWFyY2hVdGlscy5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0
b3IuanNvbjoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpzZWFyY2hJbkNvbnRl
bnQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50Lmg6CisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JQYWdlQWdlbnQ6OnNlYXJjaEluUmVzb3VyY2UpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5k
L0FkdmFuY2VkU2VhcmNoQ29udHJvbGxlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TZWFy
Y2hWaWV3KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TZWFyY2hWaWV3LnByb3RvdHlwZS5nZXQg
c2VhcmNoQ29uZmlnKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5GaWxlQmFzZWRTZWFyY2hSZXN1
bHRzUGFuZS5wcm90b3R5cGUuX2NyZWF0ZVNlYXJjaFJlZ2V4KToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5GaWxlQmFzZWRTZWFyY2hSZXN1bHRzUGFuZS5wcm90b3R5cGUuYWRkU2VhcmNoUmVzdWx0
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5GaWxlQmFzZWRTZWFyY2hSZXN1bHRzUGFuZS5TZWFy
Y2hSZXN1bHQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVBhbmVsLmpz
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVQYW5lbC5wcm90b3R5cGUucGVyZm9ybVNl
YXJjaCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Db250ZW50UHJvdmlkZXJzLmpz
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdENvbnRlbnRQcm92aWRlci5wcm90b3R5cGUu
c2VhcmNoSW5Db250ZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db25jYXRlbmF0ZWRTY3Jp
cHRzQ29udGVudFByb3ZpZGVyLnByb3RvdHlwZS5zZWFyY2hJbkNvbnRlbnQuc2VhcmNoQ2FsbGJh
Y2spOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbmNhdGVuYXRlZFNjcmlwdHNDb250ZW50UHJv
dmlkZXIucHJvdG90eXBlLnNlYXJjaEluQ29udGVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
UmVzb3VyY2VDb250ZW50UHJvdmlkZXIucHJvdG90eXBlLnNlYXJjaEluQ29udGVudCk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuQ29tcGlsZXJTb3VyY2VNYXBwaW5nQ29udGVudFByb3ZpZGVyLnBy
b3RvdHlwZS5zZWFyY2hJbkNvbnRlbnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlN0YXRpY0Nv
bnRlbnRQcm92aWRlci5wcm90b3R5cGUuc2VhcmNoSW5Db250ZW50KToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzVHJlZU91dGxpbmUuanM6CisgICAgICAgICgpOgorICAg
ICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya1BhbmVsLmpzOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLk5ldHdvcmtMb2dWaWV3LnByb3RvdHlwZS5wZXJmb3JtU2VhcmNoKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlLmpzOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlJlc291cmNlLnByb3RvdHlwZS5zZWFyY2hJbkNvbnRlbnQpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9mcm9udC1lbmQvU2NyaXB0LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdC5w
cm90b3R5cGUuc2VhcmNoSW5Db250ZW50KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5k
L1NjcmlwdHNTZWFyY2hTY29wZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzU2Vh
cmNoU2NvcGUucHJvdG90eXBlLnBlcmZvcm1TZWFyY2guc2VhcmNoQ2FsbGJhY2tXcmFwcGVyKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzU2VhcmNoU2NvcGUucHJvdG90eXBlLnBlcmZv
cm1TZWFyY2gpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU291cmNlRnJhbWUuanM6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUuY3JlYXRlU2VhcmNoUmVnZXgpOgor
ICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvVUlTb3VyY2VDb2RlLmpzOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZS5wcm90b3R5cGUuc2VhcmNoSW5Db250ZW50KToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5Db250ZW50UHJvdmlkZXIucHJvdG90eXBlLnNlYXJjaEluQ29u
dGVudCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuY3NzOgorICAg
ICAgICAoLnNlYXJjaC12aWV3IC5zZWFyY2gtcGFuZWwgaW5wdXRbdHlwZT0ic2VhcmNoIl0uc2Vh
cmNoLWNvbmZpZy1zZWFyY2gpOgorICAgICAgICAoLnNlYXJjaC12aWV3IC5zZWFyY2gtcGFuZWwg
bGFiZWwuc2VhcmNoLWNvbmZpZy1sYWJlbCk6CisgICAgICAgICguc2VhcmNoLXZpZXcgLnNlYXJj
aC1wYW5lbCBpbnB1dFt0eXBlPSJjaGVja2JveCJdLnNlYXJjaC1jb25maWctY2hlY2tib3gpOgor
ICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvdXRpbGl0aWVzLmpzOgorICAgICAgICAoKToK
KwogMjAxMS0xMC0xOCAgWmFuIERvYmVyc2VrICA8emFuZG9iZXJzZWtAZ21haWwuY29tPgogCiAg
ICAgICAgIFtHdGtdIFN1cHBvcnQgZm9yIGNsaWVudC1iYXNlZCBnZW9sb2NhdGlvbgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0NvbnRlbnRTZWFyY2hVdGlscy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29udGVudFNlYXJjaFV0aWxzLmNwcAppbmRleCAyYzlj
N2M0OTdkYmFhMDMwMDcwY2EzOTg3NjQ1YTljNDYxMWIyZWQxLi5hMGUwZjQwZmJlOWFkMzk2MWJm
MjFjMDE5M2Y1YjlmMTEyMDRjM2UxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvQ29udGVudFNlYXJjaFV0aWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
Q29udGVudFNlYXJjaFV0aWxzLmNwcApAQCAtOTcsOSArOTcsOSBAQCBzdGF0aWMgUGFzc1JlZlB0
cjxJbnNwZWN0b3JPYmplY3Q+IGJ1aWxkT2JqZWN0Rm9yU2VhcmNoTWF0Y2goaW50IGxpbmVOdW1i
ZXIsIFN0cgogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLVJlZ3VsYXJFeHByZXNzaW9uIGNyZWF0
ZVNlYXJjaFJlZ2V4KGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBjYXNlU2Vuc2l0aXZlLCBib29s
IGlzUmVnZXgpCitSZWd1bGFyRXhwcmVzc2lvbiBjcmVhdGVTZWFyY2hSZWdleChjb25zdCBTdHJp
bmcmIHF1ZXJ5LCBib29sIGNhc2VTZW5zaXRpdmUsIGJvb2wgaXNSZWdleCkKIHsKLSAgICBTdHJp
bmcgcmVnZXhTb3VyY2UgPSBpc1JlZ2V4ID8gdGV4dCA6IGNyZWF0ZVNlYXJjaFJlZ2V4U291cmNl
KHRleHQpOworICAgIFN0cmluZyByZWdleFNvdXJjZSA9IGlzUmVnZXggPyBxdWVyeSA6IGNyZWF0
ZVNlYXJjaFJlZ2V4U291cmNlKHF1ZXJ5KTsKICAgICByZXR1cm4gUmVndWxhckV4cHJlc3Npb24o
cmVnZXhTb3VyY2UsIGNhc2VTZW5zaXRpdmUgPyBUZXh0Q2FzZVNlbnNpdGl2ZSA6IFRleHRDYXNl
SW5zZW5zaXRpdmUpOwogfQogCkBAIC0xMTksMTEgKzExOSwxMSBAQCBpbnQgY291bnRSZWd1bGFy
RXhwcmVzc2lvbk1hdGNoZXMoY29uc3QgUmVndWxhckV4cHJlc3Npb24mIHJlZ2V4LCBjb25zdCBT
dHJpbmcmCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotUGFzc1JlZlB0cjxJbnNwZWN0b3JBcnJh
eT4gc2VhcmNoSW5UZXh0QnlMaW5lcyhjb25zdCBTdHJpbmcmIHF1ZXJ5LCBjb25zdCBTdHJpbmcm
IHRleHQpCitQYXNzUmVmUHRyPEluc3BlY3RvckFycmF5PiBzZWFyY2hJblRleHRCeUxpbmVzKGNv
bnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiBxdWVyeSwgY29uc3QgYm9vbCBjYXNlU2Vu
c2l0aXZlLCBjb25zdCBib29sIGlzUmVnZXgpCiB7CiAgICAgUmVmUHRyPEluc3BlY3RvckFycmF5
PiByZXN1bHQgPSBJbnNwZWN0b3JBcnJheTo6Y3JlYXRlKCk7CiAKLSAgICBSZWd1bGFyRXhwcmVz
c2lvbiByZWdleCA9IENvbnRlbnRTZWFyY2hVdGlsczo6Y3JlYXRlU2VhcmNoUmVnZXgocXVlcnks
IGZhbHNlLCBmYWxzZSk7CisgICAgUmVndWxhckV4cHJlc3Npb24gcmVnZXggPSBDb250ZW50U2Vh
cmNoVXRpbHM6OmNyZWF0ZVNlYXJjaFJlZ2V4KHF1ZXJ5LCBjYXNlU2Vuc2l0aXZlLCBpc1JlZ2V4
KTsKICAgICBWZWN0b3I8cGFpcjxpbnQsIFN0cmluZz4gPiBtYXRjaGVzID0gZ2V0UmVndWxhckV4
cHJlc3Npb25NYXRjaGVzQnlMaW5lcyhyZWdleCwgdGV4dCk7CiAKICAgICBmb3IgKFZlY3Rvcjxw
YWlyPGludCwgU3RyaW5nPiA+Ojpjb25zdF9pdGVyYXRvciBpdCA9IG1hdGNoZXMuYmVnaW4oKTsg
aXQgIT0gbWF0Y2hlcy5lbmQoKTsgKytpdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9Db250ZW50U2VhcmNoVXRpbHMuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9D
b250ZW50U2VhcmNoVXRpbHMuaAppbmRleCAzM2U2OTJlOWM0MzBhZDk1MzM2MDU5ZmJiZDFkMmUx
NGFkODcwMzZjLi44OTUyM2M1M2U2OWViZDIzOTFkZmNlZDQxNjY3MjRjN2IwNjBkMzhjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29udGVudFNlYXJjaFV0aWxzLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0NvbnRlbnRTZWFyY2hVdGlscy5oCkBAIC00MCw5
ICs0MCw5IEBAIGNsYXNzIFJlZ3VsYXJFeHByZXNzaW9uOwogCiBuYW1lc3BhY2UgQ29udGVudFNl
YXJjaFV0aWxzIHsKIAotUmVndWxhckV4cHJlc3Npb24gY3JlYXRlU2VhcmNoUmVnZXgoY29uc3Qg
U3RyaW5nJiB0ZXh0LCBib29sIGNhc2VTZW5zaXRpdmUsIGJvb2wgaXNSZWdleCk7CitSZWd1bGFy
RXhwcmVzc2lvbiBjcmVhdGVTZWFyY2hSZWdleChjb25zdCBTdHJpbmcmIHF1ZXJ5LCBib29sIGNh
c2VTZW5zaXRpdmUsIGJvb2wgaXNSZWdleCk7CiBpbnQgY291bnRSZWd1bGFyRXhwcmVzc2lvbk1h
dGNoZXMoY29uc3QgUmVndWxhckV4cHJlc3Npb24mLCBjb25zdCBTdHJpbmcmKTsKLVBhc3NSZWZQ
dHI8SW5zcGVjdG9yQXJyYXk+IHNlYXJjaEluVGV4dEJ5TGluZXMoY29uc3QgU3RyaW5nJiBxdWVy
eSwgY29uc3QgU3RyaW5nJiB0ZXh0KTsKK1Bhc3NSZWZQdHI8SW5zcGVjdG9yQXJyYXk+IHNlYXJj
aEluVGV4dEJ5TGluZXMoY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIHF1ZXJ5LCBj
b25zdCBib29sIGNhc2VTZW5zaXRpdmUsIGNvbnN0IGJvb2wgaXNSZWdleCk7CiAKIH0gLy8gbmFt
ZXNwYWNlIENvbnRlbnRTZWFyY2hVdGlscwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCmluZGV4IDU0ZDJmZTJjZDA1NTY2Y2ZmNzI4
MGI5YTZjNDgyYTM2ZGZhMTFkMTkuLjA3MDVmNjAxZjg1YTk5MTY4NTA3YWE2ZGMxNGVkMWM1ZTQ0
MTMxZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNv
bgorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KQEAgLTIyMyw3
ICsyMjMsOSBAQAogICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwogICAgICAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogImZyYW1lSWQiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRp
b24iOiAiRnJhbWUgaWQgZm9yIHJlc291cmNlIHRvIHNlYXJjaCBpbi4iIH0sCiAgICAgICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAidXJsIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9u
IjogIlVSTCBvZiB0aGUgcmVzb3VyY2UgdG8gc2VhcmNoIGluLiIgfSwKLSAgICAgICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJxdWVyeSIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6
ICJTdHJpbmcgdG8gc2VhcmNoIGZvci4iICB9CisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUi
OiAicXVlcnkiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiU3RyaW5nIHRvIHNl
YXJjaCBmb3IuIiAgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjYXNlU2Vuc2l0
aXZlIiwgInR5cGUiOiAiYm9vbGVhbiIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6
ICJJZiB0cnVlLCBzZWFyY2ggaXMgY2FzZSBzZW5zaXRpdmUuIiB9LAorICAgICAgICAgICAgICAg
ICAgICB7ICJuYW1lIjogImlzUmVnZXgiLCAidHlwZSI6ICJib29sZWFuIiwgIm9wdGlvbmFsIjog
dHJ1ZSwgImRlc2NyaXB0aW9uIjogIklmIHRydWUsIHRyZWF0cyBzdHJpbmcgcGFyYW1ldGVyIGFz
IHJlZ2V4LiIgfQogICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgInJldHVybnMi
OiBbCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicmVzdWx0IiwgInR5cGUiOiAiYXJy
YXkiLCAiaXRlbXMiOiB7ICIkcmVmIjogIlNlYXJjaE1hdGNoIiB9LCAiZGVzY3JpcHRpb24iOiAi
TGlzdCBvZiBzZWFyY2ggbWF0Y2hlcy4iIH0KQEAgLTE3NzUsNyArMTc3Nyw5IEBACiAgICAgICAg
ICAgICAgICAgIm5hbWUiOiAic2VhcmNoSW5Db250ZW50IiwKICAgICAgICAgICAgICAgICAicGFy
YW1ldGVycyI6IFsKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzY3JpcHRJZCIsICIk
cmVmIjogIlNjcmlwdElkIiwgImRlc2NyaXB0aW9uIjogIklkIG9mIHRoZSBzY3JpcHQgdG8gc2Vh
cmNoIGluLiIgfSwKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJxdWVyeSIsICJ0eXBl
IjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJTdHJpbmcgdG8gc2VhcmNoIGZvci4iICB9Cisg
ICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicXVlcnkiLCAidHlwZSI6ICJzdHJpbmciLCAi
ZGVzY3JpcHRpb24iOiAiU3RyaW5nIHRvIHNlYXJjaCBmb3IuIiAgfSwKKyAgICAgICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJjYXNlU2Vuc2l0aXZlIiwgInR5cGUiOiAiYm9vbGVhbiIsICJvcHRp
b25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJJZiB0cnVlLCBzZWFyY2ggaXMgY2FzZSBzZW5z
aXRpdmUuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImlzUmVnZXgiLCAidHlw
ZSI6ICJib29sZWFuIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIklmIHRydWUs
IHRyZWF0cyBzdHJpbmcgcGFyYW1ldGVyIGFzIHJlZ2V4LiIgfQogICAgICAgICAgICAgICAgIF0s
CiAgICAgICAgICAgICAgICAgInJldHVybnMiOiBbCiAgICAgICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAicmVzdWx0IiwgInR5cGUiOiAiYXJyYXkiLCAiaXRlbXMiOiB7ICIkcmVmIjogIlBhZ2Uu
U2VhcmNoTWF0Y2giIH0sICJkZXNjcmlwdGlvbiI6ICJMaXN0IG9mIHNlYXJjaCBtYXRjaGVzLiIg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2Vy
QWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdl
bnQuY3BwCmluZGV4IDNkNzEyMGE1NTg1NjY4YzhiZGNiZTBlMTZhN2M5NGJjMmQxYjRmYjcuLjY3
MGQ5ZjJmMTBmN2FmN2M4NDc0NzBkMmJhZTgxZTFmYTFmZTZkNmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAKQEAgLTMyMSwx
MSArMzIxLDExIEBAIHN0YXRpYyBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gc2NyaXB0VG9J
bnNwZWN0b3JPYmplY3QoU2NyaXB0T2JqZWN0IHNjcmlwdE9iCiAgICAgcmV0dXJuIHZhbHVlLT5h
c09iamVjdCgpOwogfQogCi12b2lkIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OnNlYXJjaEluQ29u
dGVudChFcnJvclN0cmluZyogZXJyb3IsIGNvbnN0IFN0cmluZyYgc2NyaXB0SWQsIGNvbnN0IFN0
cmluZyYgcXVlcnksIFJlZlB0cjxJbnNwZWN0b3JBcnJheT4qIHJlc3VsdHMpCit2b2lkIEluc3Bl
Y3RvckRlYnVnZ2VyQWdlbnQ6OnNlYXJjaEluQ29udGVudChFcnJvclN0cmluZyogZXJyb3IsIGNv
bnN0IFN0cmluZyYgc2NyaXB0SWQsIGNvbnN0IFN0cmluZyYgcXVlcnksIGJvb2wqIGNhc2VTZW5z
aXRpdmUsIGJvb2wqIGlzUmVnZXgsIFJlZlB0cjxJbnNwZWN0b3JBcnJheT4qIHJlc3VsdHMpCiB7
CiAgICAgU2NyaXB0c01hcDo6aXRlcmF0b3IgaXQgPSBtX3NjcmlwdHMuZmluZChzY3JpcHRJZCk7
CiAgICAgaWYgKGl0ICE9IG1fc2NyaXB0cy5lbmQoKSkKLSAgICAgICAgKnJlc3VsdHMgPSBDb250
ZW50U2VhcmNoVXRpbHM6OnNlYXJjaEluVGV4dEJ5TGluZXMocXVlcnksIGl0LT5zZWNvbmQuc291
cmNlKTsKKyAgICAgICAgKnJlc3VsdHMgPSBDb250ZW50U2VhcmNoVXRpbHM6OnNlYXJjaEluVGV4
dEJ5TGluZXMoaXQtPnNlY29uZC5zb3VyY2UsIHF1ZXJ5LCAqY2FzZVNlbnNpdGl2ZSwgKmlzUmVn
ZXgpOwogICAgIGVsc2UKICAgICAgICAgKmVycm9yID0gIk5vIHNjcmlwdCBmb3IgaWQ6ICIgKyBz
Y3JpcHRJZDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JEZWJ1Z2dlckFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGVi
dWdnZXJBZ2VudC5oCmluZGV4IDczYjI3NTRlMjhhMzE3ZDllNmE5ZDNhNGRlMzc0NzY3ZDEwZjhj
MjcuLjE5MzlkYzg3MDRjYjY1YWVjOWJhY2NlNTI0MWE2YWVkYTc2OTUzOGUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuaApAQCAtODEs
NyArODEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCByZW1vdmVCcmVha3BvaW50KEVycm9yU3RyaW5n
KiwgY29uc3QgU3RyaW5nJiBicmVha3BvaW50SWQpOwogICAgIHZvaWQgY29udGludWVUb0xvY2F0
aW9uKEVycm9yU3RyaW5nKiwgUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGxvY2F0aW9uKTsK
IAotICAgIHZvaWQgc2VhcmNoSW5Db250ZW50KEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBz
Y3JpcHRJZCwgY29uc3QgU3RyaW5nJiBxdWVyeSwgUmVmUHRyPEluc3BlY3RvckFycmF5PiopOwor
ICAgIHZvaWQgc2VhcmNoSW5Db250ZW50KEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBzY3Jp
cHRJZCwgY29uc3QgU3RyaW5nJiBxdWVyeSwgYm9vbCogY2FzZVNlbnNpdGl2ZSwgYm9vbCogaXNS
ZWdleCwgUmVmUHRyPEluc3BlY3RvckFycmF5PiopOwogICAgIHZvaWQgc2V0U2NyaXB0U291cmNl
KEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBzY3JpcHRJZCwgY29uc3QgU3RyaW5nJiBuZXdD
b250ZW50LCBjb25zdCBib29sKiBjb25zdCBwcmV2aWV3LCBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+
KiBuZXdDYWxsRnJhbWVzLCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiogcmVzdWx0KTsKICAgICB2
b2lkIGdldFNjcmlwdFNvdXJjZShFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgc2NyaXB0SWQs
IFN0cmluZyogc2NyaXB0U291cmNlKTsKICAgICB2b2lkIHNjaGVkdWxlUGF1c2VPbk5leHRTdGF0
ZW1lbnQoY29uc3QgU3RyaW5nJiBicmVha1JlYXNvbiwgUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmpl
Y3Q+IGRhdGEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clBhZ2VBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFn
ZW50LmNwcAppbmRleCBiNzgxYjIxYTRkYzAyNDdmZTViZTZkZmY4MmFlYmM0MzY0MDcyNWI3Li4y
ZTkzYjI5MjAyNDBiNWQ3ZDIzMjJiMjUxMmUwNDMzYTViYmJkZDI4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcApAQCAtNDg0LDcgKzQ4NCw3
IEBAIHN0YXRpYyBib29sIHRleHRDb250ZW50Rm9yQ2FjaGVkUmVzb3VyY2UoQ2FjaGVkUmVzb3Vy
Y2UqIGNhY2hlZFJlc291cmNlLCBTdHJpbmcqCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lk
IEluc3BlY3RvclBhZ2VBZ2VudDo6c2VhcmNoSW5SZXNvdXJjZShFcnJvclN0cmluZyosIGNvbnN0
IFN0cmluZyYgZnJhbWVJZCwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgcXVlcnks
IFJlZlB0cjxJbnNwZWN0b3JBcnJheT4qIHJlc3VsdHMpCit2b2lkIEluc3BlY3RvclBhZ2VBZ2Vu
dDo6c2VhcmNoSW5SZXNvdXJjZShFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgZnJhbWVJZCwg
Y29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgcXVlcnksIGJvb2wqIGNhc2VTZW5zaXRp
dmUsIGJvb2wqIGlzUmVnZXgsIFJlZlB0cjxJbnNwZWN0b3JBcnJheT4qIHJlc3VsdHMpCiB7CiAg
ICAgKnJlc3VsdHMgPSBJbnNwZWN0b3JBcnJheTo6Y3JlYXRlKCk7CiAKQEAgLTUxMCw3ICs1MTAs
NyBAQCB2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6c2VhcmNoSW5SZXNvdXJjZShFcnJvclN0cmlu
ZyosIGNvbnN0IFN0cmluZyYgZnJhbWVJZCwgYwogICAgIGlmICghc3VjY2VzcykKICAgICAgICAg
cmV0dXJuOwogCi0gICAgKnJlc3VsdHMgPSBDb250ZW50U2VhcmNoVXRpbHM6OnNlYXJjaEluVGV4
dEJ5TGluZXMocXVlcnksIGNvbnRlbnQpOworICAgICpyZXN1bHRzID0gQ29udGVudFNlYXJjaFV0
aWxzOjpzZWFyY2hJblRleHRCeUxpbmVzKGNvbnRlbnQsIHF1ZXJ5LCAqY2FzZVNlbnNpdGl2ZSwg
KmlzUmVnZXgpOwogfQogCiBzdGF0aWMgUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGJ1aWxk
T2JqZWN0Rm9yU2VhcmNoUmVzdWx0KGNvbnN0IFN0cmluZyYgZnJhbWVJZCwgY29uc3QgU3RyaW5n
JiB1cmwsIGludCBtYXRjaGVzQ291bnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yUGFnZUFnZW50LmgKaW5kZXggOTEzMGM1MDZhNjczMmFkY2NiODhjMTdjNDVkMTM5YjA3
MDMzM2IzYi4uNmVhMjhkMzc5MjIxODY1Y2NlOGVjMjEwNjI3NzBlZGZjZDAwNjZhMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuaApAQCAtOTcsNyAr
OTcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkZWxldGVDb29raWUoRXJyb3JTdHJpbmcqLCBjb25z
dCBTdHJpbmcmIGNvb2tpZU5hbWUsIGNvbnN0IFN0cmluZyYgZG9tYWluKTsKICAgICB2b2lkIGdl
dFJlc291cmNlVHJlZShFcnJvclN0cmluZyosIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+Kik7CiAg
ICAgdm9pZCBnZXRSZXNvdXJjZUNvbnRlbnQoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIGZy
YW1lSWQsIGNvbnN0IFN0cmluZyYgdXJsLCBTdHJpbmcqIGNvbnRlbnQsIGJvb2wqIGJhc2U2NEVu
Y29kZWQpOwotICAgIHZvaWQgc2VhcmNoSW5SZXNvdXJjZShFcnJvclN0cmluZyosIGNvbnN0IFN0
cmluZyYgZnJhbWVJZCwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYsIFJlZlB0cjxJ
bnNwZWN0b3JBcnJheT4qKTsKKyAgICB2b2lkIHNlYXJjaEluUmVzb3VyY2UoRXJyb3JTdHJpbmcq
LCBjb25zdCBTdHJpbmcmIGZyYW1lSWQsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcm
IHF1ZXJ5LCBib29sKiBjYXNlU2Vuc2l0aXZlLCBib29sKiBpc1JlZ2V4LCBSZWZQdHI8SW5zcGVj
dG9yQXJyYXk+Kik7CiAgICAgdm9pZCBzZWFyY2hJblJlc291cmNlcyhFcnJvclN0cmluZyosIGNv
bnN0IFN0cmluZyYsIGNvbnN0IGJvb2wqIGNvbnN0IGNhc2VTZW5zaXRpdmUsIGNvbnN0IGJvb2wq
IGNvbnN0IGlzUmVnZXgsIFJlZlB0cjxJbnNwZWN0b3JBcnJheT4qKTsKIAogICAgIC8vIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbiBBUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvQWR2YW5jZWRTZWFyY2hDb250cm9sbGVyLmpzIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BZHZhbmNlZFNlYXJjaENvbnRyb2xsZXIuanMKaW5kZXgg
ZjdiNmM5MjM2ZGJiNDUwNzQxMzQ3NjNkMWVmOGQ2M2YwMDBhYjhkYy4uNjdiZDg1M2Q2YTExYzgw
MjQwMDM1YTEwM2QyZTkxZTNkMGYxNGY4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9BZHZhbmNlZFNlYXJjaENvbnRyb2xsZXIuanMKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BZHZhbmNlZFNlYXJjaENvbnRyb2xsZXIuanMK
QEAgLTE1MSw5ICsxNTEsMjUgQEAgV2ViSW5zcGVjdG9yLlNlYXJjaFZpZXcgPSBmdW5jdGlvbihj
b250cm9sbGVyKQogICAgIAogICAgIHRoaXMuX3NlYXJjaCA9IHRoaXMuX3NlYXJjaFBhbmVsRWxl
bWVudC5jcmVhdGVDaGlsZCgiaW5wdXQiKTsKICAgICB0aGlzLl9zZWFyY2guc2V0QXR0cmlidXRl
KCJ0eXBlIiwgInNlYXJjaCIpOworICAgIHRoaXMuX3NlYXJjaC5hZGRTdHlsZUNsYXNzKCJzZWFy
Y2gtY29uZmlnLXNlYXJjaCIpOwogICAgIHRoaXMuX3NlYXJjaC5zZXRBdHRyaWJ1dGUoInJlc3Vs
dHMiLCAiMCIpOwogICAgIHRoaXMuX3NlYXJjaC5zZXRBdHRyaWJ1dGUoInNpemUiLCAyMCk7CiAK
KyAgICB0aGlzLl9pZ25vcmVDYXNlTGFiZWwgPSB0aGlzLl9zZWFyY2hQYW5lbEVsZW1lbnQuY3Jl
YXRlQ2hpbGQoImxhYmVsIik7CisgICAgdGhpcy5faWdub3JlQ2FzZUxhYmVsLmFkZFN0eWxlQ2xh
c3MoInNlYXJjaC1jb25maWctbGFiZWwiKTsKKyAgICB0aGlzLl9pZ25vcmVDYXNlQ2hlY2tib3gg
PSB0aGlzLl9pZ25vcmVDYXNlTGFiZWwuY3JlYXRlQ2hpbGQoImlucHV0Iik7CisgICAgdGhpcy5f
aWdub3JlQ2FzZUNoZWNrYm94LnNldEF0dHJpYnV0ZSgidHlwZSIsICJjaGVja2JveCIpOworICAg
IHRoaXMuX2lnbm9yZUNhc2VDaGVja2JveC5hZGRTdHlsZUNsYXNzKCJzZWFyY2gtY29uZmlnLWNo
ZWNrYm94Iik7CisgICAgdGhpcy5faWdub3JlQ2FzZUxhYmVsLmFwcGVuZENoaWxkKGRvY3VtZW50
LmNyZWF0ZVRleHROb2RlKFdlYkluc3BlY3Rvci5VSVN0cmluZygiSWdub3JlIGNhc2UiKSkpOwor
ICAgIAorCisgICAgdGhpcy5fcmVnZXhMYWJlbCA9IHRoaXMuX3NlYXJjaFBhbmVsRWxlbWVudC5j
cmVhdGVDaGlsZCgibGFiZWwiKTsKKyAgICB0aGlzLl9yZWdleExhYmVsLmFkZFN0eWxlQ2xhc3Mo
InNlYXJjaC1jb25maWctbGFiZWwiKTsKKyAgICB0aGlzLl9yZWdleENoZWNrYm94ID0gdGhpcy5f
cmVnZXhMYWJlbC5jcmVhdGVDaGlsZCgiaW5wdXQiKTsKKyAgICB0aGlzLl9yZWdleENoZWNrYm94
LnNldEF0dHJpYnV0ZSgidHlwZSIsICJjaGVja2JveCIpOworICAgIHRoaXMuX3JlZ2V4Q2hlY2ti
b3guYWRkU3R5bGVDbGFzcygic2VhcmNoLWNvbmZpZy1jaGVja2JveCIpOworICAgIHRoaXMuX3Jl
Z2V4TGFiZWwuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoV2ViSW5zcGVjdG9y
LlVJU3RyaW5nKCJSZWd1bGFyIGV4cHJlc3Npb24iKSkpOworICAgIAogICAgIHRoaXMuX2xvYWQo
KTsKIH0KIApAQCAtMTY4LDYgKzE4NCw4IEBAIFdlYkluc3BlY3Rvci5TZWFyY2hWaWV3LnByb3Rv
dHlwZSA9IHsKICAgICB7CiAgICAgICAgIHZhciBzZWFyY2hDb25maWcgPSB7fTsKICAgICAgICAg
c2VhcmNoQ29uZmlnLnF1ZXJ5ID0gdGhpcy5fc2VhcmNoLnZhbHVlOworICAgICAgICBzZWFyY2hD
b25maWcuaWdub3JlQ2FzZSA9IHRoaXMuX2lnbm9yZUNhc2VDaGVja2JveC5jaGVja2VkOworICAg
ICAgICBzZWFyY2hDb25maWcuaXNSZWdleCA9IHRoaXMuX3JlZ2V4Q2hlY2tib3guY2hlY2tlZDsK
ICAgICAgICAgcmV0dXJuIHNlYXJjaENvbmZpZzsKICAgICB9LAogICAgIApAQCAtMjM2LDYgKzI1
NCw4IEBAIFdlYkluc3BlY3Rvci5TZWFyY2hWaWV3LnByb3RvdHlwZSA9IHsKICAgICB7CiAgICAg
ICAgIHZhciBzZWFyY2hDb25maWcgPSBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MuYWR2YW5jZWRTZWFy
Y2hDb25maWcuZ2V0KCk7CiAgICAgICAgIHRoaXMuX3NlYXJjaC52YWx1ZSA9IHNlYXJjaENvbmZp
Zy5xdWVyeTsKKyAgICAgICAgdGhpcy5faWdub3JlQ2FzZUNoZWNrYm94LmNoZWNrZWQgPSBzZWFy
Y2hDb25maWcuaWdub3JlQ2FzZTsKKyAgICAgICAgdGhpcy5fcmVnZXhDaGVja2JveC5jaGVja2Vk
ID0gc2VhcmNoQ29uZmlnLmlzUmVnZXg7CiAgICAgfSwKICAgICAKICAgICBfb25BY3Rpb246IGZ1
bmN0aW9uKCkKQEAgLTM0MCw2ICszNjAsMjUgQEAgV2ViSW5zcGVjdG9yLkZpbGVCYXNlZFNlYXJj
aFJlc3VsdHNQYW5lLnByb3RvdHlwZSA9IHsKICAgICBmaWxlTmFtZTogZnVuY3Rpb24oZmlsZSkg
eyB9LAogICAgIAogICAgIC8qKgorICAgICAqIEByZXR1cm4ge1JlZ0V4cH0KKyAgICAgKi8KKyAg
ICBfY3JlYXRlU2VhcmNoUmVnZXg6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHZhciByZWdl
eEZsYWdzID0gdGhpcy5fc2VhcmNoQ29uZmlnLmlnbm9yZUNhc2UgPyAiZ2kiIDogImciOworICAg
ICAgICB2YXIgcmVnZXhPYmplY3Q7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZWdleE9i
amVjdCA9IG5ldyBSZWdFeHAodGhpcy5fc2VhcmNoQ29uZmlnLnF1ZXJ5LCByZWdleEZsYWdzKTsK
KyAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICAgICAgLy8gU2lsZW50IGNhdGNoLgorICAg
ICAgICB9CisKKyAgICAgICAgaWYgKCFyZWdleE9iamVjdCkKKyAgICAgICAgICAgIHJlZ2V4T2Jq
ZWN0ID0gY3JlYXRlU2VhcmNoUmVnZXgodGhpcy5fc2VhcmNoQ29uZmlnLnF1ZXJ5LCByZWdleEZs
YWdzKTsKKyAgICAgICAgCisgICAgICAgIHJldHVybiByZWdleE9iamVjdDsKKyAgICB9LAorICAg
IAorICAgIC8qKgogICAgICAqIEBwYXJhbSB7T2JqZWN0fSBzZWFyY2hSZXN1bHQKICAgICAgKi8K
ICAgICBhZGRTZWFyY2hSZXN1bHQ6IGZ1bmN0aW9uKHNlYXJjaFJlc3VsdCkKQEAgLTM1Miw3ICsz
OTEsNyBAQCBXZWJJbnNwZWN0b3IuRmlsZUJhc2VkU2VhcmNoUmVzdWx0c1BhbmUucHJvdG90eXBl
ID0gewogICAgICAgICAvLyBFeHBhbmQgZmlyc3QgZmlsZSB3aXRoIG1hdGNoZXMgb25seS4KICAg
ICAgICAgdmFyIGZpbGVUcmVlRWxlbWVudCA9IHRoaXMuX2FkZEZpbGVUcmVlRWxlbWVudChmaWxl
TmFtZSwgc2VhcmNoTWF0Y2hlcy5sZW5ndGgsIHRoaXMuX3NlYXJjaFJlc3VsdHMubGVuZ3RoID09
PSAxKTsKICAgICAgICAgCi0gICAgICAgIHZhciByZWdleE9iamVjdCA9IGNyZWF0ZVNlYXJjaFJl
Z2V4KHRoaXMuX3NlYXJjaENvbmZpZy5xdWVyeSwgImciKTsgIAorICAgICAgICB2YXIgcmVnZXhP
YmplY3QgPSB0aGlzLl9jcmVhdGVTZWFyY2hSZWdleCgpOwogICAgICAgICBmb3IgKHZhciBpID0g
MDsgaSA8IHNlYXJjaE1hdGNoZXMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgIHZhciBsaW5l
TnVtYmVyID0gc2VhcmNoTWF0Y2hlc1tpXS5saW5lTnVtYmVyOwogICAgICAgICAgICAgCkBAIC00
MzIsMyArNDcxLDEzIEBAIFdlYkluc3BlY3Rvci5GaWxlQmFzZWRTZWFyY2hSZXN1bHRzUGFuZS5w
cm90b3R5cGUgPSB7CiB9CiAKIFdlYkluc3BlY3Rvci5GaWxlQmFzZWRTZWFyY2hSZXN1bHRzUGFu
ZS5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLlNlYXJjaFJlc3VsdHNQYW5lLnBy
b3RvdHlwZTsKKworLyoqCisgKiBAY29uc3RydWN0b3IKKyAqIEBwYXJhbSB7T2JqZWN0fSBmaWxl
CisgKiBAcGFyYW0ge0FycmF5LjxPYmplY3Q+fSBzZWFyY2hNYXRjaGVzCisgKi8KK1dlYkluc3Bl
Y3Rvci5GaWxlQmFzZWRTZWFyY2hSZXN1bHRzUGFuZS5TZWFyY2hSZXN1bHQgPSBmdW5jdGlvbihm
aWxlLCBzZWFyY2hNYXRjaGVzKSB7CisgICAgdGhpcy5maWxlID0gZmlsZTsKKyAgICB0aGlzLnNl
YXJjaE1hdGNoZXMgPSBzZWFyY2hNYXRjaGVzOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlUGFuZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVQYW5lbC5qcwppbmRleCAxMTA2MTUwMTYwNTBiNjNk
MDNkYjI1NmE2MTUzNzFiMDk2OGFkYzI2Li5iMGQ5NDc2ODJhNWFmM2VmMTA5MzQ1ZDljNTVmMDlk
MWU0N2E3YmRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L0NvbnNvbGVQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L0NvbnNvbGVQYW5lbC5qcwpAQCAtODIsNyArODIsNyBAQCBXZWJJbnNwZWN0b3IuQ29uc29sZVBh
bmVsLnByb3RvdHlwZSA9IHsKICAgICB7CiAgICAgICAgIFdlYkluc3BlY3Rvci5zZWFyY2hDb250
cm9sbGVyLnVwZGF0ZVNlYXJjaE1hdGNoZXNDb3VudCgwLCB0aGlzKTsKICAgICAgICAgdGhpcy5z
ZWFyY2hDYW5jZWxlZCgpOwotICAgICAgICB0aGlzLl9zZWFyY2hSZWdleCA9IGNyZWF0ZVNlYXJj
aFJlZ2V4KHF1ZXJ5LCAiZyIpOworICAgICAgICB0aGlzLl9zZWFyY2hSZWdleCA9IGNyZWF0ZVNl
YXJjaFJlZ2V4KHF1ZXJ5LCAiZ2kiKTsKIAogICAgICAgICB0aGlzLl9zZWFyY2hSZXN1bHRzID0g
W107CiAgICAgICAgIHZhciBtZXNzYWdlcyA9IFdlYkluc3BlY3Rvci5jb25zb2xlVmlldy5tZXNz
YWdlczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29u
dGVudFByb3ZpZGVycy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29u
dGVudFByb3ZpZGVycy5qcwppbmRleCBmMmUyNjllMjE2YWU3M2JlZmYxM2ZjZWUwN2E0ODFmODIw
YjdmY2VmLi5lYTAzOGFjYzAxM2ZkNGEwYTIzZjYyMjUxZGE5MTNlMWIzZDhhYzBmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnRlbnRQcm92aWRlcnMu
anMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db250ZW50UHJvdmlk
ZXJzLmpzCkBAIC0zOSw2ICszOSw5IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRDb250ZW50UHJvdmlk
ZXIgPSBmdW5jdGlvbihzY3JpcHQpCiB9OwogCiBXZWJJbnNwZWN0b3IuU2NyaXB0Q29udGVudFBy
b3ZpZGVyLnByb3RvdHlwZSA9IHsKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKHN0
cmluZyxzdHJpbmcpfSBjYWxsYmFjaworICAgICAqLwogICAgIHJlcXVlc3RDb250ZW50OiBmdW5j
dGlvbihjYWxsYmFjaykKICAgICB7CiAgICAgICAgIGZ1bmN0aW9uIGRpZFJlcXVlc3RTb3VyY2Uo
c291cmNlKQpAQCAtNDgsOSArNTEsMTUgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdENvbnRlbnRQcm92
aWRlci5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX3NjcmlwdC5yZXF1ZXN0U291cmNlKGRp
ZFJlcXVlc3RTb3VyY2UuYmluZCh0aGlzKSk7CiAgICAgfSwKIAotICAgIHNlYXJjaEluQ29udGVu
dDogZnVuY3Rpb24ocXVlcnksIGNhbGxiYWNrKQorICAgIC8qKgorICAgICAqIEBwYXJhbSB7c3Ry
aW5nfSBxdWVyeQorICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gY2FzZVNlbnNpdGl2ZQorICAgICAq
IEBwYXJhbSB7Ym9vbGVhbn0gaXNSZWdleAorICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24oQXJyYXku
PFdlYkluc3BlY3Rvci5Db250ZW50UHJvdmlkZXIuU2VhcmNoTWF0Y2g+KX0gY2FsbGJhY2sKKyAg
ICAgKi8KKyAgICBzZWFyY2hJbkNvbnRlbnQ6IGZ1bmN0aW9uKHF1ZXJ5LCBjYXNlU2Vuc2l0aXZl
LCBpc1JlZ2V4LCBjYWxsYmFjaykKICAgICB7Ci0gICAgICAgIHRoaXMuX3NjcmlwdC5zZWFyY2hJ
bkNvbnRlbnQocXVlcnksIGNhbGxiYWNrKTsKKyAgICAgICAgdGhpcy5fc2NyaXB0LnNlYXJjaElu
Q29udGVudChxdWVyeSwgY2FzZVNlbnNpdGl2ZSwgaXNSZWdleCwgY2FsbGJhY2spOwogICAgIH0K
IH0KIApAQCAtNzAsNiArNzksOSBAQCBXZWJJbnNwZWN0b3IuQ29uY2F0ZW5hdGVkU2NyaXB0c0Nv
bnRlbnRQcm92aWRlci5zY3JpcHRPcGVuVGFnID0gIjxzY3JpcHQ+IjsKIFdlYkluc3BlY3Rvci5D
b25jYXRlbmF0ZWRTY3JpcHRzQ29udGVudFByb3ZpZGVyLnNjcmlwdENsb3NlVGFnID0gIjwvc2Ny
aXB0PiI7CiAKIFdlYkluc3BlY3Rvci5Db25jYXRlbmF0ZWRTY3JpcHRzQ29udGVudFByb3ZpZGVy
LnByb3RvdHlwZSA9IHsKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIHtBcnJheS48V2ViSW5zcGVj
dG9yLlNjcmlwdD59CisgICAgICovCiAgICAgX3NvcnRlZFNjcmlwdHM6IGZ1bmN0aW9uKCkKICAg
ICB7CiAgICAgICAgIGlmICh0aGlzLl9zb3J0ZWRTY3JpcHRzQXJyYXkpCkBAIC05Niw2ICsxMDgs
OSBAQCBXZWJJbnNwZWN0b3IuQ29uY2F0ZW5hdGVkU2NyaXB0c0NvbnRlbnRQcm92aWRlci5wcm90
b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiB0aGlzLl9zb3J0ZWRTY3JpcHRzQXJyYXk7CiAgICAg
fSwKIAorICAgIC8qKgorICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24oc3RyaW5nLHN0cmluZyl9IGNh
bGxiYWNrCisgICAgICovCiAgICAgcmVxdWVzdENvbnRlbnQ6IGZ1bmN0aW9uKGNhbGxiYWNrKQog
ICAgIHsKICAgICAgICAgdmFyIHNjcmlwdHMgPSB0aGlzLl9zb3J0ZWRTY3JpcHRzKCk7CkBAIC0x
MTAsNyArMTI1LDEzIEBAIFdlYkluc3BlY3Rvci5Db25jYXRlbmF0ZWRTY3JpcHRzQ29udGVudFBy
b3ZpZGVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHNjcmlwdHNbaV0ucmVxdWVzdFNvdXJj
ZShkaWRSZXF1ZXN0U291cmNlLmJpbmQodGhpcykpOwogICAgIH0sCiAKLSAgICBzZWFyY2hJbkNv
bnRlbnQ6IGZ1bmN0aW9uKHF1ZXJ5LCBjYWxsYmFjaykKKyAgICAvKioKKyAgICAgKiBAcGFyYW0g
e3N0cmluZ30gcXVlcnkKKyAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGNhc2VTZW5zaXRpdmUKKyAg
ICAgKiBAcGFyYW0ge2Jvb2xlYW59IGlzUmVnZXgKKyAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKEFy
cmF5LjxXZWJJbnNwZWN0b3IuQ29udGVudFByb3ZpZGVyLlNlYXJjaE1hdGNoPil9IGNhbGxiYWNr
CisgICAgICovCisgICAgc2VhcmNoSW5Db250ZW50OiBmdW5jdGlvbihxdWVyeSwgY2FzZVNlbnNp
dGl2ZSwgaXNSZWdleCwgY2FsbGJhY2spCiAgICAgewogICAgICAgICB2YXIgcmVzdWx0cyA9IHt9
OwogICAgICAgICB2YXIgc2NyaXB0cyA9IHRoaXMuX3NvcnRlZFNjcmlwdHMoKTsKQEAgLTEyNywx
MyArMTQ4LDE1IEBAIFdlYkluc3BlY3Rvci5Db25jYXRlbmF0ZWRTY3JpcHRzQ29udGVudFByb3Zp
ZGVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIGNhbGxiYWNrKHJlc3VsdCk7CiAgICAgICAg
IH0KIAorICAgICAgICAvKioKKyAgICAgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuU2NyaXB0
fSBzY3JpcHQKKyAgICAgICAgICogQHBhcmFtIHtBcnJheS48UGFnZUFnZW50LlNlYXJjaE1hdGNo
Pn0gc2VhcmNoTWF0Y2hlcworICAgICAgICAgKi8KICAgICAgICAgZnVuY3Rpb24gc2VhcmNoQ2Fs
bGJhY2soc2NyaXB0LCBzZWFyY2hNYXRjaGVzKQogICAgICAgICB7CiAgICAgICAgICAgICByZXN1
bHRzW3NjcmlwdC5zY3JpcHRJZF0gPSBbXTsKICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgc2VhcmNoTWF0Y2hlcy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgICAgIHZhciBzZWFy
Y2hNYXRjaCA9IHt9OwotICAgICAgICAgICAgICAgIHNlYXJjaE1hdGNoLmxpbmVOdW1iZXIgPSBz
ZWFyY2hNYXRjaGVzW2ldLmxpbmVOdW1iZXIgKyBzY3JpcHQubGluZU9mZnNldDsKLSAgICAgICAg
ICAgICAgICBzZWFyY2hNYXRjaC5saW5lQ29udGVudCA9IHNlYXJjaE1hdGNoZXNbaV0ubGluZUNv
bnRlbnQ7CisgICAgICAgICAgICAgICAgdmFyIHNlYXJjaE1hdGNoID0gbmV3IFdlYkluc3BlY3Rv
ci5Db250ZW50UHJvdmlkZXIuU2VhcmNoTWF0Y2goc2VhcmNoTWF0Y2hlc1tpXS5saW5lTnVtYmVy
ICsgc2NyaXB0LmxpbmVPZmZzZXQsIHNlYXJjaE1hdGNoZXNbaV0ubGluZUNvbnRlbnQpOwogICAg
ICAgICAgICAgICAgIHJlc3VsdHNbc2NyaXB0LnNjcmlwdElkXS5wdXNoKHNlYXJjaE1hdGNoKTsK
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHNjcmlwdHNMZWZ0LS07CkBAIC0xNDIsOSArMTY1
LDEyIEBAIFdlYkluc3BlY3Rvci5Db25jYXRlbmF0ZWRTY3JpcHRzQ29udGVudFByb3ZpZGVyLnBy
b3RvdHlwZSA9IHsKIAogICAgICAgICBtYXliZUNhbGxiYWNrKCk7CiAgICAgICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgc2NyaXB0cy5sZW5ndGg7ICsraSkKLSAgICAgICAgICAgIHNjcmlwdHNbaV0u
c2VhcmNoSW5Db250ZW50KHF1ZXJ5LCBzZWFyY2hDYWxsYmFjay5iaW5kKHRoaXMsIHNjcmlwdHNb
aV0pKTsKKyAgICAgICAgICAgIHNjcmlwdHNbaV0uc2VhcmNoSW5Db250ZW50KHF1ZXJ5LCBjYXNl
U2Vuc2l0aXZlLCBpc1JlZ2V4LCBzZWFyY2hDYWxsYmFjay5iaW5kKHRoaXMsIHNjcmlwdHNbaV0p
KTsKICAgICB9LAogCisgICAgLyoqCisgICAgICogQHJldHVybiB7c3RyaW5nfQorICAgICAqLwog
ICAgIF9jb25jYXRlbmF0ZVNjcmlwdHNDb250ZW50OiBmdW5jdGlvbihzY3JpcHRzLCBzb3VyY2Vz
KQogICAgIHsKICAgICAgICAgdmFyIGNvbnRlbnQgPSAiIjsKQEAgLTE4Nyw2ICsyMTMsOSBAQCBX
ZWJJbnNwZWN0b3IuUmVzb3VyY2VDb250ZW50UHJvdmlkZXIgPSBmdW5jdGlvbihyZXNvdXJjZSkK
IH07CiAKIFdlYkluc3BlY3Rvci5SZXNvdXJjZUNvbnRlbnRQcm92aWRlci5wcm90b3R5cGUgPSB7
CisgICAgLyoqCisgICAgICogQHBhcmFtIHtmdW5jdGlvbihzdHJpbmcsc3RyaW5nKX0gY2FsbGJh
Y2sKKyAgICAgKi8KICAgICByZXF1ZXN0Q29udGVudDogZnVuY3Rpb24oY2FsbGJhY2spCiAgICAg
ewogICAgICAgICBmdW5jdGlvbiBkaWRSZXF1ZXN0Q29udGVudChjb250ZW50KQpAQCAtMTk2LDkg
KzIyNSwxNSBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VDb250ZW50UHJvdmlkZXIucHJvdG90eXBl
ID0gewogICAgICAgICB0aGlzLl9yZXNvdXJjZS5yZXF1ZXN0Q29udGVudChkaWRSZXF1ZXN0Q29u
dGVudC5iaW5kKHRoaXMpKTsKICAgICB9LAogCi0gICAgc2VhcmNoSW5Db250ZW50OiBmdW5jdGlv
bihxdWVyeSwgY2FsbGJhY2spCisgICAgLyoqCisgICAgICogQHBhcmFtIHtzdHJpbmd9IHF1ZXJ5
CisgICAgICogQHBhcmFtIHtib29sZWFufSBjYXNlU2Vuc2l0aXZlCisgICAgICogQHBhcmFtIHti
b29sZWFufSBpc1JlZ2V4CisgICAgICogQHBhcmFtIHtmdW5jdGlvbihBcnJheS48V2ViSW5zcGVj
dG9yLkNvbnRlbnRQcm92aWRlci5TZWFyY2hNYXRjaD4pfSBjYWxsYmFjaworICAgICAqLworICAg
IHNlYXJjaEluQ29udGVudDogZnVuY3Rpb24ocXVlcnksIGNhc2VTZW5zaXRpdmUsIGlzUmVnZXgs
IGNhbGxiYWNrKQogICAgIHsKLSAgICAgICAgdGhpcy5fcmVzb3VyY2Uuc2VhcmNoSW5Db250ZW50
KHF1ZXJ5LCBjYWxsYmFjayk7CisgICAgICAgIHRoaXMuX3Jlc291cmNlLnNlYXJjaEluQ29udGVu
dChxdWVyeSwgY2FzZVNlbnNpdGl2ZSwgaXNSZWdleCwgY2FsbGJhY2spOwogICAgIH0KIH0KIApA
QCAtMjE2LDYgKzI1MSw5IEBAIFdlYkluc3BlY3Rvci5Db21waWxlclNvdXJjZU1hcHBpbmdDb250
ZW50UHJvdmlkZXIgPSBmdW5jdGlvbihzb3VyY2VVUkwsIGNvbXBpbGVyCiB9OwogCiBXZWJJbnNw
ZWN0b3IuQ29tcGlsZXJTb3VyY2VNYXBwaW5nQ29udGVudFByb3ZpZGVyLnByb3RvdHlwZSA9IHsK
KyAgICAvKioKKyAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKHN0cmluZyxzdHJpbmcpfSBjYWxsYmFj
aworICAgICAqLwogICAgIHJlcXVlc3RDb250ZW50OiBmdW5jdGlvbihjYWxsYmFjaykKICAgICB7
CiAgICAgICAgIGZ1bmN0aW9uIGRpZExvYWRTb3VyY2VDb2RlKHNvdXJjZUNvZGUpCkBAIC0yMjUs
NyArMjYzLDEzIEBAIFdlYkluc3BlY3Rvci5Db21waWxlclNvdXJjZU1hcHBpbmdDb250ZW50UHJv
dmlkZXIucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9jb21waWxlclNvdXJjZU1hcHBpbmdQ
cm92aWRlci5sb2FkU291cmNlQ29kZSh0aGlzLl9zb3VyY2VVUkwsIGRpZExvYWRTb3VyY2VDb2Rl
LmJpbmQodGhpcykpOwogICAgIH0sCiAKLSAgICBzZWFyY2hJbkNvbnRlbnQ6IGZ1bmN0aW9uKHF1
ZXJ5LCBjYWxsYmFjaykKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge3N0cmluZ30gcXVlcnkKKyAg
ICAgKiBAcGFyYW0ge2Jvb2xlYW59IGNhc2VTZW5zaXRpdmUKKyAgICAgKiBAcGFyYW0ge2Jvb2xl
YW59IGlzUmVnZXgKKyAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKEFycmF5LjxXZWJJbnNwZWN0b3Iu
Q29udGVudFByb3ZpZGVyLlNlYXJjaE1hdGNoPil9IGNhbGxiYWNrCisgICAgICovCisgICAgc2Vh
cmNoSW5Db250ZW50OiBmdW5jdGlvbihxdWVyeSwgY2FzZVNlbnNpdGl2ZSwgaXNSZWdleCwgY2Fs
bGJhY2spCiAgICAgewogICAgICAgICBjYWxsYmFjayhbXSk7CiAgICAgfQpAQCAtMjQ0LDEyICsy
ODgsMjEgQEAgV2ViSW5zcGVjdG9yLlN0YXRpY0NvbnRlbnRQcm92aWRlciA9IGZ1bmN0aW9uKG1p
bWVUeXBlLCBjb250ZW50KQogfTsKIAogV2ViSW5zcGVjdG9yLlN0YXRpY0NvbnRlbnRQcm92aWRl
ci5wcm90b3R5cGUgPSB7CisgICAgLyoqCisgICAgICogQHBhcmFtIHtmdW5jdGlvbihzdHJpbmcs
c3RyaW5nKX0gY2FsbGJhY2sKKyAgICAgKi8KICAgICByZXF1ZXN0Q29udGVudDogZnVuY3Rpb24o
Y2FsbGJhY2spCiAgICAgewogICAgICAgICBjYWxsYmFjayh0aGlzLl9taW1lVHlwZSwgdGhpcy5f
Y29udGVudCk7CiAgICAgfSwKIAotICAgIHNlYXJjaEluQ29udGVudDogZnVuY3Rpb24ocXVlcnks
IGNhbGxiYWNrKQorICAgIC8qKgorICAgICAqIEBwYXJhbSB7c3RyaW5nfSBxdWVyeQorICAgICAq
IEBwYXJhbSB7Ym9vbGVhbn0gY2FzZVNlbnNpdGl2ZQorICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0g
aXNSZWdleAorICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24oQXJyYXkuPFdlYkluc3BlY3Rvci5Db250
ZW50UHJvdmlkZXIuU2VhcmNoTWF0Y2g+KX0gY2FsbGJhY2sKKyAgICAgKi8KKyAgICBzZWFyY2hJ
bkNvbnRlbnQ6IGZ1bmN0aW9uKHF1ZXJ5LCBjYXNlU2Vuc2l0aXZlLCBpc1JlZ2V4LCBjYWxsYmFj
aykKICAgICB7CiAgICAgICAgIGNhbGxiYWNrKFtdKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzVHJlZU91dGxpbmUuanMgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzVHJlZU91dGxpbmUuanMK
aW5kZXggYWE2NGQ0NzNkOWU0YWVmODYyNzJlODk3NTBjNmRjNWNhMzE3NzkxYi4uMzgzNjM5NWY3
NWFkNzQ5NTcxYWUzYjkzMjE1YjUxMzA5ZGQ2MDEwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1RyZWVPdXRsaW5lLmpzCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNUcmVlT3V0bGluZS5qcwpAQCAt
MTY4OSw3ICsxNjg5LDcgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90
eXBlID0gewogICAgICAgICB9CiAKICAgICAgICAgdmFyIHRleHQgPSB0aGlzLmxpc3RJdGVtRWxl
bWVudC50ZXh0Q29udGVudDsKLSAgICAgICAgdmFyIHJlZ2V4T2JqZWN0ID0gY3JlYXRlU2VhcmNo
UmVnZXgodGhpcy5fc2VhcmNoUXVlcnksICJnIik7CisgICAgICAgIHZhciByZWdleE9iamVjdCA9
IGNyZWF0ZVNlYXJjaFJlZ2V4KHRoaXMuX3NlYXJjaFF1ZXJ5LCAiZ2kiKTsKIAogICAgICAgICB2
YXIgb2Zmc2V0ID0gMDsKICAgICAgICAgdmFyIG1hdGNoID0gcmVnZXhPYmplY3QuZXhlYyh0ZXh0
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29y
a1BhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrUGFu
ZWwuanMKaW5kZXggMWJkNGNjMzU1ZWYzZjE1NzEwNjc4YmRjNzY2YzFjZDc1NWU1Mzk3NC4uMjlh
NzlmNTZmMmU5NjE1NGRlNDhkNDAyZGQ1MTEzOGQ5YjYyZWNiYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrUGFuZWwuanMKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrUGFuZWwuanMKQEAgLTExMzgsNyAr
MTEzOCw3IEBAIFdlYkluc3BlY3Rvci5OZXR3b3JrTG9nVmlldy5wcm90b3R5cGUgPSB7CiAgICAg
ICAgICAgICBjdXJyZW50TWF0Y2hlZFJlcXVlc3RJZCA9IHRoaXMuX21hdGNoZWRSZXNvdXJjZXNb
dGhpcy5fY3VycmVudE1hdGNoZWRSZXNvdXJjZUluZGV4XTsKIAogICAgICAgICBpZiAoIXNvcnRP
ckZpbHRlckFwcGxpZWQpCi0gICAgICAgICAgICB0aGlzLl9zZWFyY2hSZWdFeHAgPSBjcmVhdGVT
ZWFyY2hSZWdleChzZWFyY2hRdWVyeSk7CisgICAgICAgICAgICB0aGlzLl9zZWFyY2hSZWdFeHAg
PSBjcmVhdGVTZWFyY2hSZWdleChzZWFyY2hRdWVyeSwgImkiKTsKIAogICAgICAgICB0aGlzLl9j
bGVhclNlYXJjaE1hdGNoZWRMaXN0KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2UuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1Jlc291cmNlLmpzCmluZGV4IDZmYmI5ODMxOGNlODVhM2JiNzAwMjlmOGY1YTJi
OTZiODRiNTU2NzcuLmUwZDc1NDEyMjk1N2JhMTg4NWJlODQ5MmI0MDZlY2Q4OTI4MTEwODQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2UuanMK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZS5qcwpAQCAt
ODgzLDcgKzg4Myw3IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZS5wcm90b3R5cGUgPSB7CiAgICAg
ICAgICAgICB0aGlzLl9pbm5lclJlcXVlc3RDb250ZW50KCk7CiAgICAgfSwKIAotICAgIHNlYXJj
aEluQ29udGVudDogZnVuY3Rpb24ocXVlcnksIGNhbGxiYWNrKQorICAgIHNlYXJjaEluQ29udGVu
dDogZnVuY3Rpb24ocXVlcnksIGNhc2VTZW5zaXRpdmUsIGlzUmVnZXgsIGNhbGxiYWNrKQogICAg
IHsKICAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tXcmFwcGVyKGVycm9yLCBzZWFyY2hNYXRjaGVz
KQogICAgICAgICB7CkBAIC04OTEsNyArODkxLDcgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlLnBy
b3RvdHlwZSA9IHsKICAgICAgICAgfQogCiAgICAgICAgIGlmICh0aGlzLmZyYW1lSWQpCi0gICAg
ICAgICAgICBQYWdlQWdlbnQuc2VhcmNoSW5SZXNvdXJjZSh0aGlzLmZyYW1lSWQsIHRoaXMudXJs
LCBxdWVyeSwgY2FsbGJhY2tXcmFwcGVyKTsKKyAgICAgICAgICAgIFBhZ2VBZ2VudC5zZWFyY2hJ
blJlc291cmNlKHRoaXMuZnJhbWVJZCwgdGhpcy51cmwsIHF1ZXJ5LCBjYXNlU2Vuc2l0aXZlLCBp
c1JlZ2V4LCBjYWxsYmFja1dyYXBwZXIpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBjYWxs
YmFjayhbXSk7CiAgICAgfSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvU2NyaXB0LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9T
Y3JpcHQuanMKaW5kZXggOTNhZDg4MTI4ODQ1N2ZjN2NhNjdlMmI3ODBiYTY3YTVkNjc0NGUxNC4u
MGIyN2NiMjg1NGIxODQ1MWRmZTE5OGEyOGNlZjRkYTE4YjFkOTFmZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHQuanMKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHQuanMKQEAgLTc0LDkgKzc0LDExIEBAIFdl
Ykluc3BlY3Rvci5TY3JpcHQucHJvdG90eXBlID0gewogCiAgICAgLyoqCiAgICAgICogQHBhcmFt
IHtzdHJpbmd9IHF1ZXJ5CisgICAgICogQHBhcmFtIHtib29sZWFufSBjYXNlU2Vuc2l0aXZlCisg
ICAgICogQHBhcmFtIHtib29sZWFufSBpc1JlZ2V4CiAgICAgICogQHBhcmFtIHtmdW5jdGlvbihB
cnJheS48UGFnZUFnZW50LlNlYXJjaE1hdGNoPil9IGNhbGxiYWNrCiAgICAgICovCi0gICAgc2Vh
cmNoSW5Db250ZW50OiBmdW5jdGlvbihxdWVyeSwgY2FsbGJhY2spCisgICAgc2VhcmNoSW5Db250
ZW50OiBmdW5jdGlvbihxdWVyeSwgY2FzZVNlbnNpdGl2ZSwgaXNSZWdleCwgY2FsbGJhY2spCiAg
ICAgewogICAgICAgICAvKioKICAgICAgICAgICogQHRoaXMge1dlYkluc3BlY3Rvci5TY3JpcHR9
CkBAIC04NywxMiArODksMTcgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdC5wcm90b3R5cGUgPSB7CiAg
ICAgICAgIHsKICAgICAgICAgICAgIGlmIChlcnJvcikKICAgICAgICAgICAgICAgICBjb25zb2xl
LmVycm9yKGVycm9yKTsKLSAgICAgICAgICAgIGNhbGxiYWNrKHNlYXJjaE1hdGNoZXMgfHwgW10p
OworICAgICAgICAgICAgdmFyIHJlc3VsdCA9IFtdOworICAgICAgICAgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCBzZWFyY2hNYXRjaGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgdmFy
IHNlYXJjaE1hdGNoID0gbmV3IFdlYkluc3BlY3Rvci5Db250ZW50UHJvdmlkZXIuU2VhcmNoTWF0
Y2goc2VhcmNoTWF0Y2hlc1tpXS5saW5lTnVtYmVyLCBzZWFyY2hNYXRjaGVzW2ldLmxpbmVDb250
ZW50KTsKKyAgICAgICAgICAgICAgICByZXN1bHQucHVzaChzZWFyY2hNYXRjaCk7CisgICAgICAg
ICAgICB9CisgICAgICAgICAgICBjYWxsYmFjayhyZXN1bHQgfHwgW10pOwogICAgICAgICB9CiAg
ICAgICAgIAogICAgICAgICBpZiAodGhpcy5zY3JpcHRJZCkgewogICAgICAgICAgICAgLy8gU2Ny
aXB0IGZhaWxlZCB0byBwYXJzZS4KLSAgICAgICAgICAgIERlYnVnZ2VyQWdlbnQuc2VhcmNoSW5D
b250ZW50KHRoaXMuc2NyaXB0SWQsIHF1ZXJ5LCBpbm5lckNhbGxiYWNrLmJpbmQodGhpcykpOwor
ICAgICAgICAgICAgRGVidWdnZXJBZ2VudC5zZWFyY2hJbkNvbnRlbnQodGhpcy5zY3JpcHRJZCwg
cXVlcnksIGNhc2VTZW5zaXRpdmUsIGlzUmVnZXgsIGlubmVyQ2FsbGJhY2suYmluZCh0aGlzKSk7
CiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgY2FsbGJhY2soW10pOwogICAgIH0sCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNTZWFyY2hT
Y29wZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1NlYXJj
aFNjb3BlLmpzCmluZGV4IDAxODFiYzY0MmU4NDRlYjkwZjU3NGQ0MDUzZTBmMjk5NDVjYTM0MDEu
LjkzZTk2NTdmNGVjNzhiNDhmYTg3NTM4YTU3NTYyNGZlYzg3MGYxNDQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1NlYXJjaFNjb3BlLmpzCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1NlYXJjaFNjb3Bl
LmpzCkBAIC01NSw3ICs1NSw3IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzU2VhcmNoU2NvcGUucHJv
dG90eXBlID0gewogICAgICAgICBmdW5jdGlvbiBzZWFyY2hDYWxsYmFja1dyYXBwZXIodWlTb3Vy
Y2VDb2RlLCBzZWFyY2hNYXRjaGVzKQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAoc2VhcmNo
TWF0Y2hlcy5sZW5ndGgpIHsKLSAgICAgICAgICAgICAgICB2YXIgc2VhcmNoUmVzdWx0ID0ge2Zp
bGU6IHVpU291cmNlQ29kZSwgc2VhcmNoTWF0Y2hlczogc2VhcmNoTWF0Y2hlc307CisgICAgICAg
ICAgICAgICAgdmFyIHNlYXJjaFJlc3VsdCA9IG5ldyBXZWJJbnNwZWN0b3IuRmlsZUJhc2VkU2Vh
cmNoUmVzdWx0c1BhbmUuU2VhcmNoUmVzdWx0KHVpU291cmNlQ29kZSwgc2VhcmNoTWF0Y2hlcyk7
CiAgICAgICAgICAgICAgICAgc2VhcmNoUmVzdWx0Q2FsbGJhY2soc2VhcmNoUmVzdWx0KTsKICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIC0tY2FsbGJhY2tzTGVmdDsKQEAgLTcyLDcgKzcyLDcg
QEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNTZWFyY2hTY29wZS5wcm90b3R5cGUgPSB7CiAgICAgICAg
ICAgICAgICAgLy8gSW5jcmVhc2UgY2FsbGJhY2tzTGVmdCBmaXJzdCBiZWNhdXNlIHNlYXJjaElu
Q29udGVudCBjYWxsIGNvdWxkIGJlIHN5bmNocm9ub3VzLgogICAgICAgICAgICAgICAgIGNhbGxi
YWNrc0xlZnQrKzsKICAgICAgICAgICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIG5vdCByZXF1
ZXN0IG5leHQgc2VhcmNoSW5Db250ZW50IHVubGVzcyBwcmV2aW91cyBvbmUgaXMgYWxyZWFkeSBm
aW5pc2hlZC4gIAotICAgICAgICAgICAgICAgIHVpU291cmNlQ29kZS5zZWFyY2hJbkNvbnRlbnQo
c2VhcmNoQ29uZmlnLnF1ZXJ5LCBzZWFyY2hDYWxsYmFja1dyYXBwZXIuYmluZCh0aGlzLCB1aVNv
dXJjZUNvZGUpKTsKKyAgICAgICAgICAgICAgICB1aVNvdXJjZUNvZGUuc2VhcmNoSW5Db250ZW50
KHNlYXJjaENvbmZpZy5xdWVyeSwgIXNlYXJjaENvbmZpZy5pZ25vcmVDYXNlLCBzZWFyY2hDb25m
aWcuaXNSZWdleCwgc2VhcmNoQ2FsbGJhY2tXcmFwcGVyLmJpbmQodGhpcywgdWlTb3VyY2VDb2Rl
KSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgbWF5YmVTZWFyY2hGaW5pc2hl
ZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3Vy
Y2VGcmFtZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlRnJh
bWUuanMKaW5kZXggNzk2MDhlYTNmMjVjMTg0YWEyMjFlMmM3MzIyNWMxYmQ1YWJiMDdmMy4uNzUz
M2QxMTY3ZDM1YWIwOTFhOWU2MDJiNDA0Y2JhZDBlMzQ0YjgxYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VGcmFtZS5qcworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZyYW1lLmpzCkBAIC03OCw3ICs3OCw3
IEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5jcmVhdGVTZWFyY2hSZWdleCA9IGZ1bmN0aW9u
KHF1ZXJ5KQogCiAgICAgLy8gT3RoZXJ3aXNlIGp1c3QgZG8gY2FzZS1pbnNlbnNpdGl2ZSBzZWFy
Y2guCiAgICAgaWYgKCFyZWdleCkKLSAgICAgICAgcmVnZXggPSBjcmVhdGVTZWFyY2hSZWdleChx
dWVyeSk7CisgICAgICAgIHJlZ2V4ID0gY3JlYXRlU2VhcmNoUmVnZXgocXVlcnksICJpIik7CiAK
ICAgICByZXR1cm4gcmVnZXg7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1VJU291cmNlQ29kZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvVUlTb3VyY2VDb2RlLmpzCmluZGV4IDJmYmZlMzNlOTkyZjJkMzlhNjE0MGI4ODRj
ZjgwZDgzNmY1NDQ5N2YuLjZjYzU0NTM2NjEwZThkY2NmNDU3OTdhOWQ2MjJiNmRiMGRjOTBiYzMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVUlTb3VyY2VD
b2RlLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVUlTb3VyY2VD
b2RlLmpzCkBAIC0xMTQsMTEgKzExNCwxMyBAQCBXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlLnBy
b3RvdHlwZSA9IHsKIAogICAgIC8qKgogICAgICAqIEBwYXJhbSB7c3RyaW5nfSBxdWVyeQotICAg
ICAqIEBwYXJhbSB7ZnVuY3Rpb24oQXJyYXkuPE9iamVjdD4pfSBjYWxsYmFjaworICAgICAqIEBw
YXJhbSB7Ym9vbGVhbn0gY2FzZVNlbnNpdGl2ZQorICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gaXNS
ZWdleAorICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24oQXJyYXkuPFdlYkluc3BlY3Rvci5Db250ZW50
UHJvdmlkZXIuU2VhcmNoTWF0Y2g+KX0gY2FsbGJhY2sKICAgICAgKi8KLSAgICBzZWFyY2hJbkNv
bnRlbnQ6IGZ1bmN0aW9uKHF1ZXJ5LCBjYWxsYmFjaykKKyAgICBzZWFyY2hJbkNvbnRlbnQ6IGZ1
bmN0aW9uKHF1ZXJ5LCBjYXNlU2Vuc2l0aXZlLCBpc1JlZ2V4LCBjYWxsYmFjaykKICAgICB7Ci0g
ICAgICAgIHRoaXMuX2NvbnRlbnRQcm92aWRlci5zZWFyY2hJbkNvbnRlbnQocXVlcnksIGNhbGxi
YWNrKTsKKyAgICAgICAgdGhpcy5fY29udGVudFByb3ZpZGVyLnNlYXJjaEluQ29udGVudChxdWVy
eSwgY2FzZVNlbnNpdGl2ZSwgaXNSZWdleCwgY2FsbGJhY2spOwogICAgIH0sCiAKICAgICAvKioK
QEAgLTE1MCw5ICsxNTIsMTEgQEAgV2ViSW5zcGVjdG9yLkNvbnRlbnRQcm92aWRlci5wcm90b3R5
cGUgPSB7CiAKICAgICAvKioKICAgICAgKiBAcGFyYW0ge3N0cmluZ30gcXVlcnkKKyAgICAgKiBA
cGFyYW0ge2Jvb2xlYW59IGNhc2VTZW5zaXRpdmUKKyAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGlz
UmVnZXgKICAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKEFycmF5LjxXZWJJbnNwZWN0b3IuQ29udGVu
dFByb3ZpZGVyLlNlYXJjaE1hdGNoPil9IGNhbGxiYWNrCiAgICAgICovCi0gICAgc2VhcmNoSW5D
b250ZW50OiBmdW5jdGlvbihxdWVyeSwgY2FsbGJhY2spIHsgfQorICAgIHNlYXJjaEluQ29udGVu
dDogZnVuY3Rpb24ocXVlcnksIGNhc2VTZW5zaXRpdmUsIGlzUmVnZXgsIGNhbGxiYWNrKSB7IH0K
IH0KIAogLyoqCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L2luc3BlY3Rvci5jc3MgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3Bl
Y3Rvci5jc3MKaW5kZXggZjJjYzVlZDcxNTIzNjAzOTA3YTJmM2Y3OTM0N2RlYjBjYzE1ZTZjZS4u
ZjY3OGEzZDc4ZDFmZmMzNzEyOWFhNmE2NTJkYzY4ZDVkNDY0YTA3YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuY3NzCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmNzcwpAQCAtNDEzNiw2ICs0
MTM2LDIxIEBAIGEud29ya2VyLWl0ZW06aG92ZXIgewogICAgIGZvbnQtc2l6ZTogMTFweDsKIH0K
IAorLnNlYXJjaC12aWV3IC5zZWFyY2gtcGFuZWwgaW5wdXRbdHlwZT0ic2VhcmNoIl0uc2VhcmNo
LWNvbmZpZy1zZWFyY2ggeworICAgIG1hcmdpbi1yaWdodDogOHB4OworICAgIGNvbG9yOiAjMzAz
MDMwOworfQorCisuc2VhcmNoLXZpZXcgLnNlYXJjaC1wYW5lbCBsYWJlbC5zZWFyY2gtY29uZmln
LWxhYmVsIHsKKyAgICBtYXJnaW4tcmlnaHQ6IDhweDsKKyAgICBjb2xvcjogIzMwMzAzMDsKK30K
KworLnNlYXJjaC12aWV3IC5zZWFyY2gtcGFuZWwgaW5wdXRbdHlwZT0iY2hlY2tib3giXS5zZWFy
Y2gtY29uZmlnLWNoZWNrYm94IHsKKyAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tOworICAgIG1h
cmdpbi1ib3R0b206IDZweDsKK30KKwogLnNlYXJjaC12aWV3IC5zZWFyY2gtcmVzdWx0cyB7CiAg
ICAgcG9zaXRpb246IGFic29sdXRlOwogICAgIHRvcDogMzVweDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvdXRpbGl0aWVzLmpzIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC91dGlsaXRpZXMuanMKaW5kZXggOWUxMTgxNDc3NjVkYTk2
OTVkNDhmOTU0MzgyYmE1ZmRjNDZiZWI0MS4uYzJiNDMxMmM2YzRmZDNmYjdiMmE4NDk3YzE0ZjY1
NzJkNGQ1MGZiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC91dGlsaXRpZXMuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC91
dGlsaXRpZXMuanMKQEAgLTk3NiwxMCArOTc2LDEwIEBAIGZ1bmN0aW9uIHJldmVydERvbUNoYW5n
ZXMoZG9tQ2hhbmdlcykKIH0KIAogLyoqCi0gKiBAcGFyYW0ge3N0cmluZz19IGV4dHJhRmxhZ3MK
KyAqIEBwYXJhbSB7c3RyaW5nPX0gZmxhZ3MKICAqIEByZXR1cm4ge1JlZ0V4cH0KICAqLwotZnVu
Y3Rpb24gY3JlYXRlU2VhcmNoUmVnZXgocXVlcnksIGV4dHJhRmxhZ3MpCitmdW5jdGlvbiBjcmVh
dGVTZWFyY2hSZWdleChxdWVyeSwgZmxhZ3MpCiB7CiAgICAgLy8gVGhpcyBzaG91bGQgYmUga2Vw
dCB0aGUgc2FtZSBhcyB0aGUgb25lIGluIENvbnRlbnRTZWFyY2hVdGlscy5jcHAuCiAgICAgdmFy
IHJlZ2V4U3BlY2lhbENoYXJhY3RlcnMgPSAiW10oKXt9Ky0qLiw/XFxeJHwiOwpAQCAtOTkwLDcg
Kzk5MCw3IEBAIGZ1bmN0aW9uIGNyZWF0ZVNlYXJjaFJlZ2V4KHF1ZXJ5LCBleHRyYUZsYWdzKQog
ICAgICAgICAgICAgcmVnZXggKz0gIlxcIjsKICAgICAgICAgcmVnZXggKz0gYzsKICAgICB9Ci0g
ICAgcmV0dXJuIG5ldyBSZWdFeHAocmVnZXgsICJpIiArIChleHRyYUZsYWdzIHx8ICIiKSk7Cisg
ICAgcmV0dXJuIG5ldyBSZWdFeHAocmVnZXgsIGZsYWdzIHx8ICIiKTsKIH0KIAogLyoqCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggMDQ3YWI0ZjViOGRiZjQ5M2QyODk2YWE5NThjYzk0ZTZhZWE4YTI4NC4uMjBiM2NmMzQxMDYx
Zjg1MWQ5Y2EwNWU2YmM4MDllYmRjMjJiY2FkZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEx
LTEwLTE4ICBWc2V2b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFdlYiBJbnNwZWN0b3I6IEVuYWJsZSBjYXNlU2Vuc2l0aXZlIHNlYXJjaCAvIFJlZ2V4IHN1cHBv
cnQgaW4gYWR2YW5jZWQgc2VhcmNoLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NzAzMzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL3NlYXJjaC9zZWFyY2gtaW4tY29u
Y2F0ZW5hdGVkLXNjcmlwdC5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL3Nl
YXJjaC9zZWFyY2gtaW4tcmVzb3VyY2UtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVz
dHMvaW5zcGVjdG9yL3NlYXJjaC9zZWFyY2gtaW4tcmVzb3VyY2UuaHRtbDoKKyAgICAgICAgKiBo
dHRwL3Rlc3RzL2luc3BlY3Rvci9zZWFyY2gvc2VhcmNoLWluLXNjcmlwdC1leHBlY3RlZC50eHQ6
CisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3Ivc2VhcmNoL3NlYXJjaC1pbi1zY3JpcHQu
aHRtbDoKKwogMjAxMS0xMC0xOCAgWmFuIERvYmVyc2VrICA8emFuZG9iZXJzZWtAZ21haWwuY29t
PgogCiAgICAgICAgIFtHdGtdIFN1cHBvcnQgZm9yIGNsaWVudC1iYXNlZCBnZW9sb2NhdGlvbgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Ivc2VhcmNoL3NlYXJj
aC1pbi1jb25jYXRlbmF0ZWQtc2NyaXB0Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9zZWFyY2gvc2VhcmNoLWluLWNvbmNhdGVuYXRlZC1zY3JpcHQuaHRtbAppbmRleCA4
MWEwYTM3OTc2YWRkOTlhYzIzNDFhYTlmY2VhOWJkZjVjNWRjYjRiLi43NjQ4ZjMwZTExOTNmODMz
NWJhYWFkZmZiNDkwZmJiNTlkMGRkZmUzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2luc3BlY3Rvci9zZWFyY2gvc2VhcmNoLWluLWNvbmNhdGVuYXRlZC1zY3JpcHQuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9zZWFyY2gvc2VhcmNoLWluLWNv
bmNhdGVuYXRlZC1zY3JpcHQuaHRtbApAQCAtMjcsNyArMjcsNyBAQCBmdW5jdGlvbiB0ZXN0KCkK
ICAgICAgICAgdmFyIHNjcmlwdHMgPSBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5zY3JpcHRz
Rm9yVVJMKHVybCk7CiAgICAgICAgIHZhciBjb250ZW50UHJvdmlkZXIgPSBuZXcgV2ViSW5zcGVj
dG9yLkNvbmNhdGVuYXRlZFNjcmlwdHNDb250ZW50UHJvdmlkZXIoc2NyaXB0cyk7CiAgICAgICAg
IEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KHVybCk7Ci0gICAgICAgIGNvbnRlbnRQcm92aWRlci5z
ZWFyY2hJbkNvbnRlbnQodGV4dCwgc3RlcDQpOworICAgICAgICBjb250ZW50UHJvdmlkZXIuc2Vh
cmNoSW5Db250ZW50KHRleHQsIGZhbHNlLCBmYWxzZSwgc3RlcDQpOwogICAgIH0KIAogICAgIGZ1
bmN0aW9uIHN0ZXA0KHNlYXJjaE1hdGNoZXMpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci9zZWFyY2gvc2VhcmNoLWluLXJlc291cmNlLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3NlYXJjaC9zZWFyY2gtaW4tcmVzb3Vy
Y2UtZXhwZWN0ZWQudHh0CmluZGV4IDg0OGY0YjZjZWQyMGQ4Njc3ZGNmYzk5ZWU5NzNkZGFlOTky
ZTIyYjguLmFiNTgwY2U4NmZjZjk5MTVhMzAzNzI5OTVhNjMzNzExYjE3NzBhYTMgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3NlYXJjaC9zZWFyY2gtaW4tcmVz
b3VyY2UtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L3NlYXJjaC9zZWFyY2gtaW4tcmVzb3VyY2UtZXhwZWN0ZWQudHh0CkBAIC04LDQgKzgsMjAgQEAg
bGluZU51bWJlcjogMywgbGluZTogJyAgICAvLyBzZWFyY2hUZXN0VW5pcXVlU3RyaW5nIHR3byBv
Y2N1cmVuY2VzIG9uIHRoZSBzYW1lIGwKIGxpbmVOdW1iZXI6IDksIGxpbmU6ICcgICAgc2VhcmNo
VGVzdFVuaXF1ZVN0cmluZygpOycKIGxpbmVOdW1iZXI6IDEwLCBsaW5lOiAnICAgIC8vIFNFQVJD
SFRlc3RVbmlxdWVTdHJpbmcoKTsnCiAKK1NlYXJjaCBtYXRjaGVzOiAKK2xpbmVOdW1iZXI6IDAs
IGxpbmU6ICdmdW5jdGlvbiBzZWFyY2hUZXN0VW5pcXVlU3RyaW5nKCknCitsaW5lTnVtYmVyOiAz
LCBsaW5lOiAnICAgIC8vIHNlYXJjaFRlc3RVbmlxdWVTdHJpbmcgdHdvIG9jY3VyZW5jZXMgb24g
dGhlIHNhbWUgbGluZSBzZWFyY2hUZXN0VW5pcXVlU3RyaW5nJworbGluZU51bWJlcjogOSwgbGlu
ZTogJyAgICBzZWFyY2hUZXN0VW5pcXVlU3RyaW5nKCk7JworCitTZWFyY2ggbWF0Y2hlczogCits
aW5lTnVtYmVyOiAwLCBsaW5lOiAnZnVuY3Rpb24gc2VhcmNoVGVzdFVuaXF1ZVN0cmluZygpJwor
bGluZU51bWJlcjogMywgbGluZTogJyAgICAvLyBzZWFyY2hUZXN0VW5pcXVlU3RyaW5nIHR3byBv
Y2N1cmVuY2VzIG9uIHRoZSBzYW1lIGxpbmUgc2VhcmNoVGVzdFVuaXF1ZVN0cmluZycKK2xpbmVO
dW1iZXI6IDksIGxpbmU6ICcgICAgc2VhcmNoVGVzdFVuaXF1ZVN0cmluZygpOycKK2xpbmVOdW1i
ZXI6IDEwLCBsaW5lOiAnICAgIC8vIFNFQVJDSFRlc3RVbmlxdWVTdHJpbmcoKTsnCisKK1NlYXJj
aCBtYXRjaGVzOiAKK2xpbmVOdW1iZXI6IDAsIGxpbmU6ICdmdW5jdGlvbiBzZWFyY2hUZXN0VW5p
cXVlU3RyaW5nKCknCitsaW5lTnVtYmVyOiAzLCBsaW5lOiAnICAgIC8vIHNlYXJjaFRlc3RVbmlx
dWVTdHJpbmcgdHdvIG9jY3VyZW5jZXMgb24gdGhlIHNhbWUgbGluZSBzZWFyY2hUZXN0VW5pcXVl
U3RyaW5nJworbGluZU51bWJlcjogOSwgbGluZTogJyAgICBzZWFyY2hUZXN0VW5pcXVlU3RyaW5n
KCk7JworCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Nl
YXJjaC9zZWFyY2gtaW4tcmVzb3VyY2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL3NlYXJjaC9zZWFyY2gtaW4tcmVzb3VyY2UuaHRtbAppbmRleCA2NGMxYWJkMzVlMWFl
NDI0NDAzOTRmOWFhN2Q3NTYxMmY5MjZhMjhhLi5lZjMzNTFkYThmZGFjYTI0Yjg5ODUwMDE5YmUw
YjE0MTZmNjhiMDE4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9zZWFyY2gvc2VhcmNoLWluLXJlc291cmNlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9pbnNwZWN0b3Ivc2VhcmNoL3NlYXJjaC1pbi1yZXNvdXJjZS5odG1sCkBAIC02LDIwICs2
LDQ4IEBACiA8c2NyaXB0PgogZnVuY3Rpb24gdGVzdCgpCiB7Ci0gICAgLy8gVGhpcyBmaWxlIHNo
b3VsZCBub3QgbWF0Y2ggc2VhcmNoIHF1ZXJ5LgotICAgIHZhciB0ZXh0ID0gInNlYXJjaFRlc3Qi
ICsgIlVuaXF1ZVN0cmluZyI7CiAgICAgSW5zcGVjdG9yVGVzdC5ydW5BZnRlclJlc291cmNlc0Fy
ZUZpbmlzaGVkKFsic2VhcmNoLmpzIl0sIHN0ZXAyKTsKKyAgICB2YXIgcmVzb3VyY2U7CiAKICAg
ICBmdW5jdGlvbiBzdGVwMigpCiAgICAgewotICAgICAgICB2YXIgcmVzb3VyY2UgPSBXZWJJbnNw
ZWN0b3IucmVzb3VyY2VGb3JVUkwoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3Ivc2Vh
cmNoL3Jlc291cmNlcy9zZWFyY2guanMiKTsKKyAgICAgICAgcmVzb3VyY2UgPSBXZWJJbnNwZWN0
b3IucmVzb3VyY2VGb3JVUkwoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3Ivc2VhcmNo
L3Jlc291cmNlcy9zZWFyY2guanMiKTsKICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQo
cmVzb3VyY2UudXJsKTsKLSAgICAgICAgcmVzb3VyY2Uuc2VhcmNoSW5Db250ZW50KHRleHQsIHN0
ZXAzKTsKKworICAgICAgICAvLyBUaGlzIGZpbGUgc2hvdWxkIG5vdCBtYXRjaCBzZWFyY2ggcXVl
cnkuCisgICAgICAgIHZhciB0ZXh0ID0gInNlYXJjaFRlc3QiICsgIlVuaXF1ZVN0cmluZyI7Cisg
ICAgICAgIHJlc291cmNlLnNlYXJjaEluQ29udGVudCh0ZXh0LCBmYWxzZSwgZmFsc2UsIHN0ZXAz
KTsKICAgICB9CiAKICAgICBmdW5jdGlvbiBzdGVwMyhzZWFyY2hNYXRjaGVzKQogICAgIHsKICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU2VhcmNoTWF0Y2hlcyhzZWFyY2hNYXRjaGVzKTsKKwor
ICAgICAgICAvLyBUaGlzIGZpbGUgc2hvdWxkIG5vdCBtYXRjaCBzZWFyY2ggcXVlcnkuCisgICAg
ICAgIHZhciB0ZXh0ID0gInNlYXJjaFRlc3QiICsgIlVuaXF1ZVN0cmluZyI7CisgICAgICAgIHJl
c291cmNlLnNlYXJjaEluQ29udGVudCh0ZXh0LCB0cnVlLCBmYWxzZSwgc3RlcDQpOworICAgIH0K
KworICAgIGZ1bmN0aW9uIHN0ZXA0KHNlYXJjaE1hdGNoZXMpCisgICAgeworICAgICAgICBJbnNw
ZWN0b3JUZXN0LmR1bXBTZWFyY2hNYXRjaGVzKHNlYXJjaE1hdGNoZXMpOworCisgICAgICAgIHZh
ciB0ZXh0ID0gIlthLXpdZWFyY2hUZXN0VW5pcXVlU3RyaW5nIjsKKyAgICAgICAgcmVzb3VyY2Uu
c2VhcmNoSW5Db250ZW50KHRleHQsIGZhbHNlLCB0cnVlLCBzdGVwNSk7CisgICAgfQorCisgICAg
ZnVuY3Rpb24gc3RlcDUoc2VhcmNoTWF0Y2hlcykKKyAgICB7CisgICAgICAgIEluc3BlY3RvclRl
c3QuZHVtcFNlYXJjaE1hdGNoZXMoc2VhcmNoTWF0Y2hlcyk7CisKKyAgICAgICAgdmFyIHRleHQg
PSAiW2Etel1lYXJjaFRlc3RVbmlxdWVTdHJpbmciOworICAgICAgICByZXNvdXJjZS5zZWFyY2hJ
bkNvbnRlbnQodGV4dCwgdHJ1ZSwgdHJ1ZSwgc3RlcDYpOworICAgIH0KKworICAgIGZ1bmN0aW9u
IHN0ZXA2KHNlYXJjaE1hdGNoZXMpCisgICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBT
ZWFyY2hNYXRjaGVzKHNlYXJjaE1hdGNoZXMpOworCiAgICAgICAgIEluc3BlY3RvclRlc3QuY29t
cGxldGVUZXN0KCk7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9pbnNwZWN0b3Ivc2VhcmNoL3NlYXJjaC1pbi1zY3JpcHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Ivc2VhcmNoL3NlYXJjaC1pbi1zY3JpcHQtZXhwZWN0
ZWQudHh0CmluZGV4IDU3NTE3Y2U2Zjg5ZTk1MGI3YzQzZDRmYjYyNWVkYjE2ZGQ4OTljZjMuLjcz
N2Q2N2UyNzNmM2VkNmNjYjAyNjNiNWNjOTJlMTcxYmE1NTU0MzkgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3NlYXJjaC9zZWFyY2gtaW4tc2NyaXB0LWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9zZWFyY2gvc2Vh
cmNoLWluLXNjcmlwdC1leHBlY3RlZC50eHQKQEAgLTksNSArOSwyMSBAQCBsaW5lTnVtYmVyOiAz
LCBsaW5lOiAnICAgIC8vIHNlYXJjaFRlc3RVbmlxdWVTdHJpbmcgdHdvIG9jY3VyZW5jZXMgb24g
dGhlIHNhbWUgbAogbGluZU51bWJlcjogOSwgbGluZTogJyAgICBzZWFyY2hUZXN0VW5pcXVlU3Ry
aW5nKCk7JwogbGluZU51bWJlcjogMTAsIGxpbmU6ICcgICAgLy8gU0VBUkNIVGVzdFVuaXF1ZVN0
cmluZygpOycKIAorU2VhcmNoIG1hdGNoZXM6IAorbGluZU51bWJlcjogMCwgbGluZTogJ2Z1bmN0
aW9uIHNlYXJjaFRlc3RVbmlxdWVTdHJpbmcoKScKK2xpbmVOdW1iZXI6IDMsIGxpbmU6ICcgICAg
Ly8gc2VhcmNoVGVzdFVuaXF1ZVN0cmluZyB0d28gb2NjdXJlbmNlcyBvbiB0aGUgc2FtZSBsaW5l
IHNlYXJjaFRlc3RVbmlxdWVTdHJpbmcnCitsaW5lTnVtYmVyOiA5LCBsaW5lOiAnICAgIHNlYXJj
aFRlc3RVbmlxdWVTdHJpbmcoKTsnCisKK1NlYXJjaCBtYXRjaGVzOiAKK2xpbmVOdW1iZXI6IDAs
IGxpbmU6ICdmdW5jdGlvbiBzZWFyY2hUZXN0VW5pcXVlU3RyaW5nKCknCitsaW5lTnVtYmVyOiAz
LCBsaW5lOiAnICAgIC8vIHNlYXJjaFRlc3RVbmlxdWVTdHJpbmcgdHdvIG9jY3VyZW5jZXMgb24g
dGhlIHNhbWUgbGluZSBzZWFyY2hUZXN0VW5pcXVlU3RyaW5nJworbGluZU51bWJlcjogOSwgbGlu
ZTogJyAgICBzZWFyY2hUZXN0VW5pcXVlU3RyaW5nKCk7JworbGluZU51bWJlcjogMTAsIGxpbmU6
ICcgICAgLy8gU0VBUkNIVGVzdFVuaXF1ZVN0cmluZygpOycKKworU2VhcmNoIG1hdGNoZXM6IAor
bGluZU51bWJlcjogMCwgbGluZTogJ2Z1bmN0aW9uIHNlYXJjaFRlc3RVbmlxdWVTdHJpbmcoKScK
K2xpbmVOdW1iZXI6IDMsIGxpbmU6ICcgICAgLy8gc2VhcmNoVGVzdFVuaXF1ZVN0cmluZyB0d28g
b2NjdXJlbmNlcyBvbiB0aGUgc2FtZSBsaW5lIHNlYXJjaFRlc3RVbmlxdWVTdHJpbmcnCitsaW5l
TnVtYmVyOiA5LCBsaW5lOiAnICAgIHNlYXJjaFRlc3RVbmlxdWVTdHJpbmcoKTsnCisKIERlYnVn
Z2VyIHdhcyBkaXNhYmxlZC4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9p
bnNwZWN0b3Ivc2VhcmNoL3NlYXJjaC1pbi1zY3JpcHQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL3NlYXJjaC9zZWFyY2gtaW4tc2NyaXB0Lmh0bWwKaW5kZXggOTc1ZjU2
ZmIxMTI3ZmIxNmZiY2FjYzkyMjAyZDZkYjQ5NzFkMzIwMi4uNTliMjJhMjZiNTliZjIxZDk2MDhj
ZWNhNDIxOTZlNzk1MGJjMjlmNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9p
bnNwZWN0b3Ivc2VhcmNoL3NlYXJjaC1pbi1zY3JpcHQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9zZWFyY2gvc2VhcmNoLWluLXNjcmlwdC5odG1sCkBAIC03LDkg
KzcsOCBAQAogPHNjcmlwdD4KIGZ1bmN0aW9uIHRlc3QoKQogewotICAgIC8vIFRoaXMgZmlsZSBz
aG91bGQgbm90IG1hdGNoIHNlYXJjaCBxdWVyeS4KLSAgICB2YXIgdGV4dCA9ICJzZWFyY2hUZXN0
IiArICJVbmlxdWVTdHJpbmciOwogICAgIEluc3BlY3RvclRlc3Quc3RhcnREZWJ1Z2dlclRlc3Qo
c3RlcDEpOworICAgIHZhciBzY3JpcHQ7CiAKICAgICBmdW5jdGlvbiBzdGVwMSgpCiAgICAgewpA
QCAtMjQsMTQgKzIzLDQzIEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIGZ1bmN0aW9uIHN0ZXAzKCkK
ICAgICB7CiAgICAgICAgIHZhciBzY3JpcHRzID0gV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwu
c2NyaXB0c0ZvclVSTCgiaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9zZWFyY2gvcmVz
b3VyY2VzL3NlYXJjaC5qcyIpOwotICAgICAgICB2YXIgc2NyaXB0ID0gc2NyaXB0c1swXTsKKyAg
ICAgICAgc2NyaXB0ID0gc2NyaXB0c1swXTsKICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQoc2NyaXB0LnNvdXJjZVVSTCk7Ci0gICAgICAgIHNjcmlwdC5zZWFyY2hJbkNvbnRlbnQodGV4
dCwgc3RlcDQpOworCisgICAgICAgIC8vIFRoaXMgZmlsZSBzaG91bGQgbm90IG1hdGNoIHNlYXJj
aCBxdWVyeS4KKyAgICAgICAgdmFyIHRleHQgPSAic2VhcmNoVGVzdCIgKyAiVW5pcXVlU3RyaW5n
IjsKKyAgICAgICAgc2NyaXB0LnNlYXJjaEluQ29udGVudCh0ZXh0LCBmYWxzZSwgZmFsc2UsIHN0
ZXA0KTsKICAgICB9CiAKICAgICBmdW5jdGlvbiBzdGVwNChzZWFyY2hNYXRjaGVzKQogICAgIHsK
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU2VhcmNoTWF0Y2hlcyhzZWFyY2hNYXRjaGVzKTsK
KworICAgICAgICAvLyBUaGlzIGZpbGUgc2hvdWxkIG5vdCBtYXRjaCBzZWFyY2ggcXVlcnkuCisg
ICAgICAgIHZhciB0ZXh0ID0gInNlYXJjaFRlc3QiICsgIlVuaXF1ZVN0cmluZyI7CisgICAgICAg
IHNjcmlwdC5zZWFyY2hJbkNvbnRlbnQodGV4dCwgdHJ1ZSwgZmFsc2UsIHN0ZXA1KTsKKyAgICB9
CisKKyAgICBmdW5jdGlvbiBzdGVwNShzZWFyY2hNYXRjaGVzKQorICAgIHsKKyAgICAgICAgSW5z
cGVjdG9yVGVzdC5kdW1wU2VhcmNoTWF0Y2hlcyhzZWFyY2hNYXRjaGVzKTsKKworICAgICAgICB2
YXIgdGV4dCA9ICJbYS16XWVhcmNoVGVzdFVuaXF1ZVN0cmluZyI7CisgICAgICAgIHNjcmlwdC5z
ZWFyY2hJbkNvbnRlbnQodGV4dCwgZmFsc2UsIHRydWUsIHN0ZXA2KTsKKyAgICB9CisKKyAgICBm
dW5jdGlvbiBzdGVwNihzZWFyY2hNYXRjaGVzKQorICAgIHsKKyAgICAgICAgSW5zcGVjdG9yVGVz
dC5kdW1wU2VhcmNoTWF0Y2hlcyhzZWFyY2hNYXRjaGVzKTsKKworICAgICAgICB2YXIgdGV4dCA9
ICJbYS16XWVhcmNoVGVzdFVuaXF1ZVN0cmluZyI7CisgICAgICAgIHNjcmlwdC5zZWFyY2hJbkNv
bnRlbnQodGV4dCwgdHJ1ZSwgdHJ1ZSwgc3RlcDcpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHN0
ZXA3KHNlYXJjaE1hdGNoZXMpCisgICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBTZWFy
Y2hNYXRjaGVzKHNlYXJjaE1hdGNoZXMpOworCiAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxl
dGVEZWJ1Z2dlclRlc3QoKTsKICAgICB9CiB9Cg==
</data>
<flag name="review"
          id="109308"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>