<?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>32488</bug_id>
          
          <creation_ts>2009-12-13 04:19:31 -0800</creation_ts>
          <short_desc>Web Inspector: Console dumps strings in escaped form.</short_desc>
          <delta_ts>2009-12-24 02:40:07 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Pavel Feldman">pfeldman</reporter>
          <assigned_to name="Pavel Feldman">pfeldman</assigned_to>
          <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>171195</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2009-12-13 04:19:31 -0800</bug_when>
    <thetext>Type: &quot;a\&quot;b&quot; in console

Expected output:
&quot;a&quot;b&quot;

Actual output:
&quot;a\&quot;b&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172743</commentid>
    <comment_count>1</comment_count>
      <attachid>45061</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2009-12-17 06:47:24 -0800</bug_when>
    <thetext>Created attachment 45061
[PATCH] Proposed fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172744</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-17 06:50:58 -0800</bug_when>
    <thetext>style-queue ran check-webkit-style on attachment 45061 without any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172791</commentid>
    <comment_count>3</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2009-12-17 08:33:06 -0800</bug_when>
    <thetext>You expected the output to be &quot;a&quot;b&quot;? That is not copy + paste-able. Could you explain a little about why you expected to see that? My thoughts are that, for primitives, the output is copy+paste-able values. Much like JSON.stringify(...).

In your case I can think of other solutions that might appease us both:
  - make the quotes on the edges different to denote they are not part of the output.
  - remove the artificially added quotes, and output values in color so it is immediately obvious that it is a string. (We already have styles for JavaScript and CSS, we might be able to carry over the same styles).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172806</commentid>
    <comment_count>4</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2009-12-17 09:16:33 -0800</bug_when>
    <thetext>Couple weak arguments that make me think it is worth committing:

1) Messages are for humans, not for pasting them somewhere.
2) I like when console acts in a feature &amp; bug-compatible way with Firebug. It might be based on the feedback in their case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172807</commentid>
    <comment_count>5</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2009-12-17 09:18:17 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; You expected the output to be &quot;a&quot;b&quot;? That is not copy + paste-able. Could you
&gt; explain a little about why you expected to see that? My thoughts are that, for
&gt; primitives, the output is copy+paste-able values. Much like
&gt; JSON.stringify(...).
&gt; 
&gt; In your case I can think of other solutions that might appease us both:
&gt;   - make the quotes on the edges different to denote they are not part of the
&gt; output.
&gt;   - remove the artificially added quotes, and output values in color so it is
&gt; immediately obvious that it is a string. (We already have styles for JavaScript
&gt; and CSS, we might be able to carry over the same styles).

Now that I&apos;ve read it to the end, I agree that we should do either of these :) Let me play with it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>174563</commentid>
    <comment_count>6</comment_count>
      <attachid>45429</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2009-12-23 03:48:22 -0800</bug_when>
    <thetext>Created attachment 45429
[IMAGE] Added some color to the console.

Patch will follow shortly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>174579</commentid>
    <comment_count>7</comment_count>
      <attachid>45434</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2009-12-23 06:16:38 -0800</bug_when>
    <thetext>Created attachment 45434
[PATCH] Proposed fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>174580</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-23 06:17:25 -0800</bug_when>
    <thetext>style-queue ran check-webkit-style on attachment 45434 without any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>174749</commentid>
    <comment_count>9</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2009-12-24 02:40:07 -0800</bug_when>
    <thetext>Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	LayoutTests/ChangeLog
	M	LayoutTests/inspector/console-format-expected.txt
	M	LayoutTests/inspector/console-format.html
	M	WebCore/ChangeLog
	M	WebCore/inspector/InspectorController.cpp
	M	WebCore/inspector/front-end/ConsoleView.js
	M	WebCore/inspector/front-end/InjectedScript.js
	M	WebCore/inspector/front-end/ObjectPropertiesSection.js
	M	WebCore/inspector/front-end/ObjectProxy.js
	M	WebCore/inspector/front-end/inspector.css
Committed r52544</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>45061</attachid>
            <date>2009-12-17 06:47:24 -0800</date>
            <delta_ts>2009-12-23 03:48:22 -0800</delta_ts>
            <desc>[PATCH] Proposed fix</desc>
            <filename>console_string</filename>
            <type>text/plain</type>
            <size>4987</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3OGZlYWNhLi4xMjRhMGEyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMDktMTIt
MTcgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogQ29uc29s
ZSBkdW1wcyBzdHJpbmdzIGluIGVzY2FwZWQgZm9ybS4KKworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzI0ODgKKworICAgICAgICAqIGluc3BlY3Rvci9j
b25zb2xlLWZvcm1hdC1leHBlY3RlZC50eHQ6CisKIDIwMDktMTItMTYgIERpcmsgU2NodWx6ZSAg
PGtyaXRAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlLWZvcm1hdC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS1mb3JtYXQtZXhwZWN0ZWQudHh0Cmlu
ZGV4IGQ0OGM5NjYuLmYyZmQwMjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9j
b25zb2xlLWZvcm1hdC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nv
bnNvbGUtZm9ybWF0LWV4cGVjdGVkLnR4dApAQCAtOCw2ICs4LDggQEAgQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDQ5OiAvZm9vXFxiYXJcc2Jhei9pCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgNTA6IC9m
b29cXGJhclxzYmF6L2kKIENPTlNPTEUgTUVTU0FHRTogbGluZSA0OTogdGVzdAogQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDUwOiB0ZXN0CitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNDk6IHRlc3QgbmFt
ZWQgInRlc3QiCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNTA6IHRlc3QgbmFtZWQgInRlc3QiCiBD
T05TT0xFIE1FU1NBR0U6IGxpbmUgNDk6IEVycm9yOiBVbmtub3duIGVycm9yCiBDT05TT0xFIE1F
U1NBR0U6IGxpbmUgNTA6IEVycm9yOiBVbmtub3duIGVycm9yCiBDT05TT0xFIE1FU1NBR0U6IGxp
bmUgNDk6IFtvYmplY3QgSFRNTEJvZHlFbGVtZW50XQpAQCAtMzYsMTMgKzM4LDE2IEBAIGNvbnNv
bGUtZm9ybWF0Lmh0bWw6MTRPYmplY3QgT2JqZWN0CiBjb25zb2xlLWZvcm1hdC5odG1sOjE5WyJ0
ZXN0IiwgInRlc3QyIiwgdW5kZWZpbmVkLCB1bmRlZmluZWQsICJ0ZXN0NCJdCiBjb25zb2xlLWZv
cm1hdC5odG1sOjQ5L151cmxcKFxzKig/Oig/OiIoPzpbXlxcXCJdfCg/OlxcW1xkYS1mXXsxLDZ9
XHM/fFwuKSkqInwnKD86W15cXFwnXXwoPzpcXFtcZGEtZl17MSw2fVxzP3xcLikpKicpfCg/Olsh
IyQlJiotflx3XXwoPzpcXFtcZGEtZl17MSw2fVxzP3xcLikpKilccypcKS9pCiBjb25zb2xlLWZv
cm1hdC5odG1sOjUwWy9edXJsXChccyooPzooPzoiKD86W15cXFwiXXwoPzpcXFtcZGEtZl17MSw2
fVxzP3xcLikpKiJ8Jyg/OlteXFxcJ118KD86XFxbXGRhLWZdezEsNn1ccz98XC4pKSonKXwoPzpb
ISMkJSYqLX5cd118KD86XFxbXGRhLWZdezEsNn1ccz98XC4pKSopXHMqXCkvaV0KLSIvXnVybFwo
XHMqKD86KD86XCIoPzpbXlxcXFwiXXwoPzpcXFtcZGEtZl17MSw2fVxzP3xcLikpKlwifCcoPzpb
XlxcXCddfCg/OlxcW1xkYS1mXXsxLDZ9XHM/fFwuKSkqJyl8KD86WyEjJCUmKi1+XHddfCg/Olxc
W1xkYS1mXXsxLDZ9XHM/fFwuKSkqKVxzKlwpL2kiCisiL151cmxcKFxzKig/Oig/OiIoPzpbXlxc
XCJdfCg/OlxcW1xkYS1mXXsxLDZ9XHM/fFwuKSkqInwnKD86W15cXFwnXXwoPzpcXFtcZGEtZl17
MSw2fVxzP3xcLikpKicpfCg/OlshIyQlJiotflx3XXwoPzpcXFtcZGEtZl17MSw2fVxzP3xcLikp
KilccypcKS9pIgogY29uc29sZS1mb3JtYXQuaHRtbDo0OS9mb29cXGJhclxzYmF6L2kKIGNvbnNv
bGUtZm9ybWF0Lmh0bWw6NTBbL2Zvb1xcYmFyXHNiYXovaV0KICIvZm9vXFxiYXJcc2Jhei9pIgog
Y29uc29sZS1mb3JtYXQuaHRtbDo0OXRlc3QKIGNvbnNvbGUtZm9ybWF0Lmh0bWw6NTBbInRlc3Qi
XQogInRlc3QiCitjb25zb2xlLWZvcm1hdC5odG1sOjQ5dGVzdCBuYW1lZCAidGVzdCIKK2NvbnNv
bGUtZm9ybWF0Lmh0bWw6NTBbInRlc3QgbmFtZWQgInRlc3QiIl0KKyJ0ZXN0IG5hbWVkICJ0ZXN0
IiIKIGNvbnNvbGUtZm9ybWF0Lmh0bWw6NDlFcnJvcjogVW5rbm93biBlcnJvcgogY29uc29sZS1m
b3JtYXQuaHRtbDo1MFtFcnJvcjogVW5rbm93biBlcnJvcl0KIEVycm9yOiBVbmtub3duIGVycm9y
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS1mb3JtYXQuaHRtbCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlLWZvcm1hdC5odG1sCmluZGV4IGRiNjBhOGIu
LjVlMjVlMWIgMTAwNzU1Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlLWZvcm1h
dC5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlLWZvcm1hdC5odG1sCkBA
IC0yMiw2ICsyMiw3IEBAIGZ1bmN0aW9uIGRvaXQoKQogICAgIHZhciByZWdleDEgPSAvXnVybFwo
XHMqKD86KD86Iig/OlteXFxcIl18KD86XFxbXGRhLWZdezEsNn1ccz98XC4pKSoifCcoPzpbXlxc
XCddfCg/OlxcW1xkYS1mXXsxLDZ9XHM/fFwuKSkqJyl8KD86WyEjJCUmKi1+XHddfCg/OlxcW1xk
YS1mXXsxLDZ9XHM/fFwuKSkqKVxzKlwpL2k7CiAgICAgdmFyIHJlZ2V4MiA9IG5ldyBSZWdFeHAo
ImZvb1xcXFxiYXJcXHNiYXoiLCAiaSIpOwogICAgIHZhciBzdHIgPSAidGVzdCI7CisgICAgdmFy
IHN0cjIgPSAidGVzdCBuYW1lZCBcInRlc3RcIiI7CiAgICAgdmFyIGVycm9yID0gbmV3IEVycm9y
OwogICAgIHZhciBub2RlID0gZG9jdW1lbnQuYm9keTsKICAgICB2YXIgZnVuYyA9IGZ1bmN0aW9u
KCkgeyByZXR1cm4gMTsgfTsKQEAgLTMxLDcgKzMyLDcgQEAgZnVuY3Rpb24gZG9pdCgpCiAgICAg
dmFyIG51bSA9IDEuMmUtMTsKICAgICB2YXIgbGlua2lmeSA9ICJodHRwOi8vd2Via2l0Lm9yZy8i
OwogCi0gICAgZ2xvYmFscyA9IFtyZWdleDEsIHJlZ2V4Miwgc3RyLCBlcnJvciwgbm9kZSwgZnVu
YywgbXVsdGlsaW5lZnVuYywgbnVtLCBsaW5raWZ5LCBudWxsLCB1bmRlZmluZWRdOworICAgIGds
b2JhbHMgPSBbcmVnZXgxLCByZWdleDIsIHN0ciwgc3RyMiwgZXJyb3IsIG5vZGUsIGZ1bmMsIG11
bHRpbGluZWZ1bmMsIG51bSwgbGlua2lmeSwgbnVsbCwgdW5kZWZpbmVkXTsKICAgICBsb29wT3Zl
ckdsb2JhbHMoMCk7CiB9CiAKQEAgLTQ1LDcgKzQ2LDYgQEAgZnVuY3Rpb24gbG9vcE92ZXJHbG9i
YWxzKGN1cnJlbnQpCiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIGxvb3BPdmVyR2xvYmFscyhu
ZXh0KTsKICAgICB9Ci0KICAgICBjb25zb2xlLmxvZyhnbG9iYWxzW2N1cnJlbnRdKTsKICAgICBj
b25zb2xlLmxvZyhbZ2xvYmFsc1tjdXJyZW50XV0pOwogICAgIGV2YWx1YXRlSW5XZWJJbnNwZWN0
b3IoImZyb250ZW5kX2V2YWx1YXRlR2xvYmFsIiwgYWR2YW5jZSk7CmRpZmYgLS1naXQgYS9XZWJD
b3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDRiZDY5OWEuLmMzM2IzYzgg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTQgQEAKKzIwMDktMTItMTcgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgV2ViIEluc3BlY3RvcjogQ29uc29sZSBkdW1wcyBzdHJpbmdzIGluIGVzY2FwZWQgZm9ybS4K
KworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzI0ODgK
KworICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVZpZXcuanM6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UucHJvdG90eXBlLl9mb3JtYXRJbmRpdmlkdWFs
VmFsdWUpOgorCiAyMDA5LTEyLTE2ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzIGIvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzCmluZGV4IDUwMWI5YWMuLmFkOWFiMjIgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlVmlldy5qcworKysg
Yi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVZpZXcuanMKQEAgLTY2NCw3ICs2
NjQsNyBAQCBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UucHJvdG90eXBlID0gewogICAgIHsK
ICAgICAgICAgaWYgKE9iamVjdC5wcm94eVR5cGUocGFyYW0pID09PSAic3RyaW5nIikgewogICAg
ICAgICAgICAgaWYgKHRoaXMub3JpZ2luYXRpbmdDb21tYW5kICYmIHRoaXMubGV2ZWwgPT09IFdl
Ykluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlTGV2ZWwuTG9nKSB7Ci0gICAgICAgICAg
ICAgICAgdmFyIHF1b3RlZFN0cmluZyA9ICJcIiIgKyBwYXJhbS5kZXNjcmlwdGlvbi5yZXBsYWNl
KC8iL2csICJcXFwiIikgKyAiXCIiOworICAgICAgICAgICAgICAgIHZhciBxdW90ZWRTdHJpbmcg
PSAiXCIiICsgcGFyYW0uZGVzY3JpcHRpb24gKyAiXCIiOwogICAgICAgICAgICAgICAgIGZvcm1h
dHRlZFJlc3VsdC5hcHBlbmRDaGlsZChXZWJJbnNwZWN0b3IubGlua2lmeVN0cmluZ0FzRnJhZ21l
bnQocXVvdGVkU3RyaW5nKSk7CiAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICBm
b3JtYXR0ZWRSZXN1bHQuYXBwZW5kQ2hpbGQoV2ViSW5zcGVjdG9yLmxpbmtpZnlTdHJpbmdBc0Zy
YWdtZW50KHBhcmFtLmRlc2NyaXB0aW9uKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>45429</attachid>
            <date>2009-12-23 03:48:22 -0800</date>
            <delta_ts>2009-12-23 03:48:22 -0800</delta_ts>
            <desc>[IMAGE] Added some color to the console.</desc>
            <filename>Picture 55.png</filename>
            <type>image/png</type>
            <size>10384</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">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
AABJRU5ErkJggg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>45434</attachid>
            <date>2009-12-23 06:16:38 -0800</date>
            <delta_ts>2009-12-23 13:10:06 -0800</delta_ts>
            <desc>[PATCH] Proposed fix.</desc>
            <filename>console_colors</filename>
            <type>text/plain</type>
            <size>18895</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0OGQwZmQ0Li41NTFiZWQ4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMDktMTIt
MTcgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogQ29uc29s
ZSBkdW1wcyBzdHJpbmdzIGluIGVzY2FwZWQgZm9ybS4KKworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzI0ODgKKworICAgICAgICAqIGluc3BlY3Rvci9j
b25zb2xlLWZvcm1hdC1leHBlY3RlZC50eHQ6CisKIDIwMDktMTItMjIgIEtlbm5ldGggUnVzc2Vs
bCAgPGtickBnb29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtZm9ybWF0LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlLWZvcm1hdC1leHBlY3RlZC50eHQK
aW5kZXggZDQ4Yzk2Ni4uNjMzM2IzZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2NvbnNvbGUtZm9ybWF0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
Y29uc29sZS1mb3JtYXQtZXhwZWN0ZWQudHh0CkBAIC0xLDcwICsxLDc5IEBACiBDT05TT0xFIE1F
U1NBR0U6IGxpbmUgMTI6IE1lc3NhZ2UgZm9ybWF0IG51bWJlciAlaSwgJWQgYW5kICVmCiBDT05T
T0xFIE1FU1NBR0U6IGxpbmUgMTM6IE1lc3NhZ2UgJXMgZm9yICVzCiBDT05TT0xFIE1FU1NBR0U6
IGxpbmUgMTQ6IE9iamVjdCAlbwotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE5OiB0ZXN0LHRlc3Qy
LCwsdGVzdDQKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA0OTogL151cmxcKFxzKig/Oig/OiIoPzpb
XlxcXCJdfCg/OlxcW1xkYS1mXXsxLDZ9XHM/fFwuKSkqInwnKD86W15cXFwnXXwoPzpcXFtcZGEt
Zl17MSw2fVxzP3xcLikpKicpfCg/OlshIyQlJiotflx3XXwoPzpcXFtcZGEtZl17MSw2fVxzP3xc
LikpKilccypcKS9pCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNTA6IC9edXJsXChccyooPzooPzoi
KD86W15cXFwiXXwoPzpcXFtcZGEtZl17MSw2fVxzP3xcLikpKiJ8Jyg/OlteXFxcJ118KD86XFxb
XGRhLWZdezEsNn1ccz98XC4pKSonKXwoPzpbISMkJSYqLX5cd118KD86XFxbXGRhLWZdezEsNn1c
cz98XC4pKSopXHMqXCkvaQotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDQ5OiAvZm9vXFxiYXJcc2Jh
ei9pCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNTA6IC9mb29cXGJhclxzYmF6L2kKLUNPTlNPTEUg
TUVTU0FHRTogbGluZSA0OTogdGVzdAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDUwOiB0ZXN0Ci1D
T05TT0xFIE1FU1NBR0U6IGxpbmUgNDk6IEVycm9yOiBVbmtub3duIGVycm9yCi1DT05TT0xFIE1F
U1NBR0U6IGxpbmUgNTA6IEVycm9yOiBVbmtub3duIGVycm9yCi1DT05TT0xFIE1FU1NBR0U6IGxp
bmUgNDk6IFtvYmplY3QgSFRNTEJvZHlFbGVtZW50XQotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDUw
OiBbb2JqZWN0IEhUTUxCb2R5RWxlbWVudF0KLUNPTlNPTEUgTUVTU0FHRTogbGluZSA0OTogZnVu
Y3Rpb24gKCkgeyByZXR1cm4gMTsgfQotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDUwOiBmdW5jdGlv
biAoKSB7IHJldHVybiAxOyB9Ci1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNDk6IGZ1bmN0aW9uICgp
IHsKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAyMDogdGVzdCx0ZXN0MiwsLHRlc3Q0CitDT05TT0xF
IE1FU1NBR0U6IGxpbmUgMjE6ICVvCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMjI6ICVPCitDT05T
T0xFIE1FU1NBR0U6IGxpbmUgNTI6IC9edXJsXChccyooPzooPzoiKD86W15cXFwiXXwoPzpcXFtc
ZGEtZl17MSw2fVxzP3xcLikpKiJ8Jyg/OlteXFxcJ118KD86XFxbXGRhLWZdezEsNn1ccz98XC4p
KSonKXwoPzpbISMkJSYqLX5cd118KD86XFxbXGRhLWZdezEsNn1ccz98XC4pKSopXHMqXCkvaQor
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDUzOiAvXnVybFwoXHMqKD86KD86Iig/OlteXFxcIl18KD86
XFxbXGRhLWZdezEsNn1ccz98XC4pKSoifCcoPzpbXlxcXCddfCg/OlxcW1xkYS1mXXsxLDZ9XHM/
fFwuKSkqJyl8KD86WyEjJCUmKi1+XHddfCg/OlxcW1xkYS1mXXsxLDZ9XHM/fFwuKSkqKVxzKlwp
L2kKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA1MjogL2Zvb1xcYmFyXHNiYXovaQorQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDUzOiAvZm9vXFxiYXJcc2Jhei9pCitDT05TT0xFIE1FU1NBR0U6IGxpbmUg
NTI6IHRlc3QKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA1MzogdGVzdAorQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDUyOiB0ZXN0IG5hbWVkICJ0ZXN0IgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDUzOiB0
ZXN0IG5hbWVkICJ0ZXN0IgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDUyOiBFcnJvcjogVW5rbm93
biBlcnJvcgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDUzOiBFcnJvcjogVW5rbm93biBlcnJvcgor
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDUyOiBbb2JqZWN0IEhUTUxCb2R5RWxlbWVudF0KK0NPTlNP
TEUgTUVTU0FHRTogbGluZSA1MzogW29iamVjdCBIVE1MQm9keUVsZW1lbnRdCitDT05TT0xFIE1F
U1NBR0U6IGxpbmUgNTI6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIDE7IH0KK0NPTlNPTEUgTUVTU0FH
RTogbGluZSA1MzogZnVuY3Rpb24gKCkgeyByZXR1cm4gMTsgfQorQ09OU09MRSBNRVNTQUdFOiBs
aW5lIDUyOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiAyOwogICAgIH0KLUNPTlNPTEUg
TUVTU0FHRTogbGluZSA1MDogZnVuY3Rpb24gKCkgeworQ09OU09MRSBNRVNTQUdFOiBsaW5lIDUz
OiBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiAyOwogICAgIH0KLUNPTlNPTEUgTUVTU0FH
RTogbGluZSA0OTogMC4xMgotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDUwOiAwLjEyCi1DT05TT0xF
IE1FU1NBR0U6IGxpbmUgNDk6IGh0dHA6Ly93ZWJraXQub3JnLwotQ09OU09MRSBNRVNTQUdFOiBs
aW5lIDUwOiBodHRwOi8vd2Via2l0Lm9yZy8KLUNPTlNPTEUgTUVTU0FHRTogbGluZSA0OTogbnVs
bAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDUwOiAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA0OTog
dW5kZWZpbmVkCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNTA6IAorQ09OU09MRSBNRVNTQUdFOiBs
aW5lIDUyOiAwLjEyCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNTM6IDAuMTIKK0NPTlNPTEUgTUVT
U0FHRTogbGluZSA1MjogaHR0cDovL3dlYmtpdC5vcmcvCitDT05TT0xFIE1FU1NBR0U6IGxpbmUg
NTM6IGh0dHA6Ly93ZWJraXQub3JnLworQ09OU09MRSBNRVNTQUdFOiBsaW5lIDUyOiBudWxsCitD
T05TT0xFIE1FU1NBR0U6IGxpbmUgNTM6IAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDUyOiB1bmRl
ZmluZWQKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA1MzogCiBUZXN0cyB0aGF0IGNvbnNvbGUgbG9n
Z2luZyBkdW1wcyBwcm9wZXIgbWVzc2FnZXMuCiAKIGNvbnNvbGUtZm9ybWF0Lmh0bWw6MTJNZXNz
YWdlIGZvcm1hdCBudW1iZXIgMSwgMiBhbmQgMy41CiBjb25zb2xlLWZvcm1hdC5odG1sOjEzTWVz
c2FnZSBmb3JtYXQgZm9yIHN0cmluZwogY29uc29sZS1mb3JtYXQuaHRtbDoxNE9iamVjdCBPYmpl
Y3QKLWNvbnNvbGUtZm9ybWF0Lmh0bWw6MTlbInRlc3QiLCAidGVzdDIiLCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCwgInRlc3Q0Il0KLWNvbnNvbGUtZm9ybWF0Lmh0bWw6NDkvXnVybFwoXHMqKD86KD86
Iig/OlteXFxcIl18KD86XFxbXGRhLWZdezEsNn1ccz98XC4pKSoifCcoPzpbXlxcXCddfCg/Olxc
W1xkYS1mXXsxLDZ9XHM/fFwuKSkqJyl8KD86WyEjJCUmKi1+XHddfCg/OlxcW1xkYS1mXXsxLDZ9
XHM/fFwuKSkqKVxzKlwpL2kKLWNvbnNvbGUtZm9ybWF0Lmh0bWw6NTBbL151cmxcKFxzKig/Oig/
OiIoPzpbXlxcXCJdfCg/OlxcW1xkYS1mXXsxLDZ9XHM/fFwuKSkqInwnKD86W15cXFwnXXwoPzpc
XFtcZGEtZl17MSw2fVxzP3xcLikpKicpfCg/OlshIyQlJiotflx3XXwoPzpcXFtcZGEtZl17MSw2
fVxzP3xcLikpKilccypcKS9pXQotIi9edXJsXChccyooPzooPzpcIig/OlteXFxcXCJdfCg/Olxc
W1xkYS1mXXsxLDZ9XHM/fFwuKSkqXCJ8Jyg/OlteXFxcJ118KD86XFxbXGRhLWZdezEsNn1ccz98
XC4pKSonKXwoPzpbISMkJSYqLX5cd118KD86XFxbXGRhLWZdezEsNn1ccz98XC4pKSopXHMqXCkv
aSIKLWNvbnNvbGUtZm9ybWF0Lmh0bWw6NDkvZm9vXFxiYXJcc2Jhei9pCi1jb25zb2xlLWZvcm1h
dC5odG1sOjUwWy9mb29cXGJhclxzYmF6L2ldCitjb25zb2xlLWZvcm1hdC5odG1sOjIwWyJ0ZXN0
IiwgInRlc3QyIiwgdW5kZWZpbmVkLCB1bmRlZmluZWQsICJ0ZXN0NCJdCitjb25zb2xlLWZvcm1h
dC5odG1sOjIxWyJ0ZXN0IiwgInRlc3QyIiwgdW5kZWZpbmVkLCB1bmRlZmluZWQsICJ0ZXN0NCJd
Citjb25zb2xlLWZvcm1hdC5odG1sOjIyQXJyYXkKK2NvbnNvbGUtZm9ybWF0Lmh0bWw6NTIvXnVy
bFwoXHMqKD86KD86Iig/OlteXFxcIl18KD86XFxbXGRhLWZdezEsNn1ccz98XC4pKSoifCcoPzpb
XlxcXCddfCg/OlxcW1xkYS1mXXsxLDZ9XHM/fFwuKSkqJyl8KD86WyEjJCUmKi1+XHddfCg/Olxc
W1xkYS1mXXsxLDZ9XHM/fFwuKSkqKVxzKlwpL2kKK2NvbnNvbGUtZm9ybWF0Lmh0bWw6NTNbL151
cmxcKFxzKig/Oig/OiIoPzpbXlxcXCJdfCg/OlxcW1xkYS1mXXsxLDZ9XHM/fFwuKSkqInwnKD86
W15cXFwnXXwoPzpcXFtcZGEtZl17MSw2fVxzP3xcLikpKicpfCg/OlshIyQlJiotflx3XXwoPzpc
XFtcZGEtZl17MSw2fVxzP3xcLikpKilccypcKS9pXQorIi9edXJsXChccyooPzooPzoiKD86W15c
XFwiXXwoPzpcXFtcZGEtZl17MSw2fVxzP3xcLikpKiJ8Jyg/OlteXFxcJ118KD86XFxbXGRhLWZd
ezEsNn1ccz98XC4pKSonKXwoPzpbISMkJSYqLX5cd118KD86XFxbXGRhLWZdezEsNn1ccz98XC4p
KSopXHMqXCkvaSIKK2NvbnNvbGUtZm9ybWF0Lmh0bWw6NTIvZm9vXFxiYXJcc2Jhei9pCitjb25z
b2xlLWZvcm1hdC5odG1sOjUzWy9mb29cXGJhclxzYmF6L2ldCiAiL2Zvb1xcYmFyXHNiYXovaSIK
LWNvbnNvbGUtZm9ybWF0Lmh0bWw6NDl0ZXN0Ci1jb25zb2xlLWZvcm1hdC5odG1sOjUwWyJ0ZXN0
Il0KK2NvbnNvbGUtZm9ybWF0Lmh0bWw6NTJ0ZXN0Citjb25zb2xlLWZvcm1hdC5odG1sOjUzWyJ0
ZXN0Il0KICJ0ZXN0IgotY29uc29sZS1mb3JtYXQuaHRtbDo0OUVycm9yOiBVbmtub3duIGVycm9y
Ci1jb25zb2xlLWZvcm1hdC5odG1sOjUwW0Vycm9yOiBVbmtub3duIGVycm9yXQorY29uc29sZS1m
b3JtYXQuaHRtbDo1MnRlc3QgbmFtZWQgInRlc3QiCitjb25zb2xlLWZvcm1hdC5odG1sOjUzWyJ0
ZXN0IG5hbWVkICJ0ZXN0IiJdCisidGVzdCBuYW1lZCAidGVzdCIiCitjb25zb2xlLWZvcm1hdC5o
dG1sOjUyRXJyb3I6IFVua25vd24gZXJyb3IKK2NvbnNvbGUtZm9ybWF0Lmh0bWw6NTNbRXJyb3I6
IFVua25vd24gZXJyb3JdCiBFcnJvcjogVW5rbm93biBlcnJvcgotY29uc29sZS1mb3JtYXQuaHRt
bDo0OTxib2R5IG9ubG9hZD0ib25sb2FkKCkiPgotY29uc29sZS1mb3JtYXQuaHRtbDo1MFs8Ym9k
eSBvbmxvYWQ9Im9ubG9hZCgpIj5dCitjb25zb2xlLWZvcm1hdC5odG1sOjUyPGJvZHkgb25sb2Fk
PSJvbmxvYWQoKSI+Citjb25zb2xlLWZvcm1hdC5odG1sOjUzWzxib2R5IG9ubG9hZD0ib25sb2Fk
KCkiPl0KICJIVE1MQm9keUVsZW1lbnQiCi1jb25zb2xlLWZvcm1hdC5odG1sOjQ5ZnVuY3Rpb24g
KCkgeyByZXR1cm4gMTsgfQotY29uc29sZS1mb3JtYXQuaHRtbDo1MFtmdW5jdGlvbiAoKSB7IHJl
dHVybiAxOyB9XQorY29uc29sZS1mb3JtYXQuaHRtbDo1MmZ1bmN0aW9uICgpIHsgcmV0dXJuIDE7
IH0KK2NvbnNvbGUtZm9ybWF0Lmh0bWw6NTNbZnVuY3Rpb24gKCkgeyByZXR1cm4gMTsgfV0KICJm
dW5jdGlvbiAoKSB7IHJldHVybiAxOyB9IgotY29uc29sZS1mb3JtYXQuaHRtbDo0OWZ1bmN0aW9u
ICgpIHsgcmV0dXJuIDI7IH0KLWNvbnNvbGUtZm9ybWF0Lmh0bWw6NTBbZnVuY3Rpb24gKCkge10K
K2NvbnNvbGUtZm9ybWF0Lmh0bWw6NTJmdW5jdGlvbiAoKSB7IHJldHVybiAyOyB9Citjb25zb2xl
LWZvcm1hdC5odG1sOjUzW2Z1bmN0aW9uICgpIHsgcmV0dXJuIDI7IH1dCiAiZnVuY3Rpb24gKCkg
ezxicj4gcmV0dXJuIDI7PGJyPiB9IgotY29uc29sZS1mb3JtYXQuaHRtbDo0OTAuMTIKLWNvbnNv
bGUtZm9ybWF0Lmh0bWw6NTBbMC4xMl0KK2NvbnNvbGUtZm9ybWF0Lmh0bWw6NTIwLjEyCitjb25z
b2xlLWZvcm1hdC5odG1sOjUzWzAuMTJdCiAiMC4xMiIKLWNvbnNvbGUtZm9ybWF0Lmh0bWw6NDlo
dHRwOi8vd2Via2l0Lm9yZy8KLWNvbnNvbGUtZm9ybWF0Lmh0bWw6NTBbImh0dHA6Ly93ZWJraXQu
b3JnLyJdCitjb25zb2xlLWZvcm1hdC5odG1sOjUyaHR0cDovL3dlYmtpdC5vcmcvCitjb25zb2xl
LWZvcm1hdC5odG1sOjUzWyJodHRwOi8vd2Via2l0Lm9yZy8iXQogImh0dHA6Ly93ZWJraXQub3Jn
LyIKLWNvbnNvbGUtZm9ybWF0Lmh0bWw6NDludWxsCi1jb25zb2xlLWZvcm1hdC5odG1sOjUwW251
bGxdCitjb25zb2xlLWZvcm1hdC5odG1sOjUybnVsbAorY29uc29sZS1mb3JtYXQuaHRtbDo1M1tu
dWxsXQogIm51bGwiCi1jb25zb2xlLWZvcm1hdC5odG1sOjQ5dW5kZWZpbmVkCi1jb25zb2xlLWZv
cm1hdC5odG1sOjUwW3VuZGVmaW5lZF0KK2NvbnNvbGUtZm9ybWF0Lmh0bWw6NTJ1bmRlZmluZWQK
K2NvbnNvbGUtZm9ybWF0Lmh0bWw6NTNbdW5kZWZpbmVkXQogInVuZGVmaW5lZCIKIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtZm9ybWF0Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvY29uc29sZS1mb3JtYXQuaHRtbAppbmRleCBkYjYwYThiLi4wYmJkYmU3
IDEwMDc1NQotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS1mb3JtYXQuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS1mb3JtYXQuaHRtbApAQCAtMTQsMTQg
KzE0LDE4IEBAIGZ1bmN0aW9uIGRvaXQoKQogICAgIGNvbnNvbGUubG9nKCdPYmplY3QgJW8nLCB7
J2ZvbycgOiAnYmFyJyB9KTsKIAogICAgIHZhciBhcnJheSA9IFsidGVzdCIsICJ0ZXN0MiJdOwot
ICAgIGFycmF5LmZvbyA9ICJiYXIiOworICAgIGFycmF5LmZvbyA9ICJiYXIiOyAKICAgICBhcnJh
eVs0XSA9ICJ0ZXN0NCI7CisKICAgICBjb25zb2xlLmxvZyhhcnJheSk7CisgICAgY29uc29sZS5s
b2coIiVvIiwgYXJyYXkpOworICAgIGNvbnNvbGUubG9nKCIlTyIsIGFycmF5KTsKIAogICAgIC8v
IFBvcHVsYXRlIEdsb2JhbHMKICAgICB2YXIgcmVnZXgxID0gL151cmxcKFxzKig/Oig/OiIoPzpb
XlxcXCJdfCg/OlxcW1xkYS1mXXsxLDZ9XHM/fFwuKSkqInwnKD86W15cXFwnXXwoPzpcXFtcZGEt
Zl17MSw2fVxzP3xcLikpKicpfCg/OlshIyQlJiotflx3XXwoPzpcXFtcZGEtZl17MSw2fVxzP3xc
LikpKilccypcKS9pOwogICAgIHZhciByZWdleDIgPSBuZXcgUmVnRXhwKCJmb29cXFxcYmFyXFxz
YmF6IiwgImkiKTsKICAgICB2YXIgc3RyID0gInRlc3QiOworICAgIHZhciBzdHIyID0gInRlc3Qg
bmFtZWQgXCJ0ZXN0XCIiOwogICAgIHZhciBlcnJvciA9IG5ldyBFcnJvcjsKICAgICB2YXIgbm9k
ZSA9IGRvY3VtZW50LmJvZHk7CiAgICAgdmFyIGZ1bmMgPSBmdW5jdGlvbigpIHsgcmV0dXJuIDE7
IH07CkBAIC0zMSw3ICszNSw3IEBAIGZ1bmN0aW9uIGRvaXQoKQogICAgIHZhciBudW0gPSAxLjJl
LTE7CiAgICAgdmFyIGxpbmtpZnkgPSAiaHR0cDovL3dlYmtpdC5vcmcvIjsKIAotICAgIGdsb2Jh
bHMgPSBbcmVnZXgxLCByZWdleDIsIHN0ciwgZXJyb3IsIG5vZGUsIGZ1bmMsIG11bHRpbGluZWZ1
bmMsIG51bSwgbGlua2lmeSwgbnVsbCwgdW5kZWZpbmVkXTsKKyAgICBnbG9iYWxzID0gW3JlZ2V4
MSwgcmVnZXgyLCBzdHIsIHN0cjIsIGVycm9yLCBub2RlLCBmdW5jLCBtdWx0aWxpbmVmdW5jLCBu
dW0sIGxpbmtpZnksIG51bGwsIHVuZGVmaW5lZF07CiAgICAgbG9vcE92ZXJHbG9iYWxzKDApOwog
fQogCkBAIC00NSw3ICs0OSw2IEBAIGZ1bmN0aW9uIGxvb3BPdmVyR2xvYmFscyhjdXJyZW50KQog
ICAgICAgICBlbHNlCiAgICAgICAgICAgICBsb29wT3Zlckdsb2JhbHMobmV4dCk7CiAgICAgfQot
CiAgICAgY29uc29sZS5sb2coZ2xvYmFsc1tjdXJyZW50XSk7CiAgICAgY29uc29sZS5sb2coW2ds
b2JhbHNbY3VycmVudF1dKTsKICAgICBldmFsdWF0ZUluV2ViSW5zcGVjdG9yKCJmcm9udGVuZF9l
dmFsdWF0ZUdsb2JhbCIsIGFkdmFuY2UpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cg
Yi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA1ZTA4ZDdmLi5kODBiYTQyIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBA
CisyMDA5LTEyLTE3ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IENvbnNvbGUgZHVtcHMgc3RyaW5ncyBpbiBlc2NhcGVkIGZvcm0uCisKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMyNDg4CisKKyAgICAgICAgKiBp
bnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkNvbnNvbGVNZXNzYWdlLnByb3RvdHlwZS5fZm9ybWF0SW5kaXZpZHVhbFZhbHVlKToKKwogMjAw
OS0xMi0yMiAgRGFuaWVsIEJhdGVzICA8ZGJhdGVzQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvQ29uc29sZVZpZXcuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29s
ZVZpZXcuanMKaW5kZXggMGNmNGE3NS4uMTRiZTI1NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9Db25zb2xlVmlldy5qcwpAQCAtMTA5LDcgKzEwOSw4IEBAIFdlYkluc3BlY3Rvci5D
b25zb2xlVmlldyA9IGZ1bmN0aW9uKGRyYXdlcikKICAgICB0aGlzLl9jdXN0b21Gb3JtYXR0ZXJz
ID0gewogICAgICAgICAib2JqZWN0IjogdGhpcy5fZm9ybWF0b2JqZWN0LAogICAgICAgICAiYXJy
YXkiOiAgdGhpcy5fZm9ybWF0YXJyYXksCi0gICAgICAgICJub2RlIjogICB0aGlzLl9mb3JtYXRu
b2RlCisgICAgICAgICJub2RlIjogICB0aGlzLl9mb3JtYXRub2RlLAorICAgICAgICAic3RyaW5n
IjogdGhpcy5fZm9ybWF0c3RyaW5nCiAgICAgfTsKIH0KIApAQCAtNDk2LDcgKzQ5Nyw2IEBAIFdl
Ykluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgIGlmICghZm9ybWF0
dGVyIHx8ICFpc1Byb3h5KSB7CiAgICAgICAgICAgICBmb3JtYXR0ZXIgPSB0aGlzLl9mb3JtYXR2
YWx1ZTsKICAgICAgICAgICAgIG91dHB1dCA9IG91dHB1dC5kZXNjcmlwdGlvbiB8fCBvdXRwdXQ7
Ci0gICAgICAgICAgICB0eXBlID0gInVuZGVjb3JhdGVkIjsKICAgICAgICAgfQogCiAgICAgICAg
IHZhciBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOwpAQCAtNTM1LDcgKzUz
NSwyMCBAQCBXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcucHJvdG90eXBlID0gewogCiAgICAgX2Zv
cm1hdGFycmF5OiBmdW5jdGlvbihhcnIsIGVsZW0pCiAgICAgewotICAgICAgICBJbmplY3RlZFNj
cmlwdEFjY2Vzcy5nZXRQcm9wZXJ0aWVzKGFyciwgZmFsc2UsIHRoaXMuX3ByaW50QXJyYXkuYmlu
ZCh0aGlzLCBlbGVtKSk7CisgICAgICAgIEluamVjdGVkU2NyaXB0QWNjZXNzLmdldFByb3BlcnRp
ZXMoYXJyLCBmYWxzZSwgZmFsc2UsIHRoaXMuX3ByaW50QXJyYXkuYmluZCh0aGlzLCBlbGVtKSk7
CisgICAgfSwKKworICAgIF9mb3JtYXRzdHJpbmc6IGZ1bmN0aW9uKG91dHB1dCwgZWxlbSkKKyAg
ICB7CisgICAgICAgIHZhciBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOwor
ICAgICAgICBzcGFuLmNsYXNzTmFtZSA9ICJjb25zb2xlLWZvcm1hdHRlZC1zdHJpbmcgc291cmNl
LWNvZGUiOworICAgICAgICBzcGFuLmFwcGVuZENoaWxkKFdlYkluc3BlY3Rvci5saW5raWZ5U3Ry
aW5nQXNGcmFnbWVudChvdXRwdXQuZGVzY3JpcHRpb24pKTsKKworICAgICAgICAvLyBNYWtlIGJs
YWNrIHF1b3Rlcy4KKyAgICAgICAgZWxlbS5yZW1vdmVTdHlsZUNsYXNzKCJjb25zb2xlLWZvcm1h
dHRlZC1zdHJpbmciKTsKKyAgICAgICAgZWxlbS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVU
ZXh0Tm9kZSgiXCIiKSk7CisgICAgICAgIGVsZW0uYXBwZW5kQ2hpbGQoc3Bhbik7CisgICAgICAg
IGVsZW0uYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIlwiIikpOwogICAgIH0s
CiAKICAgICBfcHJpbnRBcnJheTogZnVuY3Rpb24oZWxlbSwgcHJvcGVydGllcykKQEAgLTYyNiw5
ICs2MzksMTMgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLnByb3RvdHlwZSA9IHsKICAg
ICAgICAgICAgIGlmICh0eXBlb2YgcGFyYW1ldGVyc1tpXSAhPT0gIm9iamVjdCIgJiYgdHlwZW9m
IHBhcmFtZXRlcnNbaV0gIT09ICJmdW5jdGlvbiIpCiAgICAgICAgICAgICAgICAgcGFyYW1ldGVy
c1tpXSA9IFdlYkluc3BlY3Rvci5PYmplY3RQcm94eS53cmFwUHJpbWl0aXZlVmFsdWUocGFyYW1l
dGVyc1tpXSk7CiAKKyAgICAgICAgLy8gVGhlcmUgY2FuIGJlIHN0cmluZyBsb2cgYW5kIHN0cmlu
ZyBldmFsIHJlc3VsdC4gV2UgZGlzdGluZ3Vpc2ggYmV0d2VlbiB0aGVtIGJhc2VkIG9uIG1lc3Nh
Z2UgdHlwZS4KKyAgICAgICAgdmFyIHNob3VsZEZvcm1hdE1lc3NhZ2UgPSBPYmplY3QucHJveHlU
eXBlKHBhcmFtZXRlcnNbMF0pID09PSAic3RyaW5nIiAmJiB0aGlzLnR5cGUgIT09IFdlYkluc3Bl
Y3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlVHlwZS5SZXN1bHQ7CisKICAgICAgICAgLy8gTXVs
dGlwbGUgcGFyYW1ldGVycyB3aXRoIHRoZSBmaXJzdCBiZWluZyBhIGZvcm1hdCBzdHJpbmcuIFNh
dmUgdW51c2VkIHN1YnN0aXR1dGlvbnMuCi0gICAgICAgIGlmIChwYXJhbWV0ZXJzLmxlbmd0aCA+
IDEgJiYgT2JqZWN0LnByb3h5VHlwZShwYXJhbWV0ZXJzWzBdKSA9PT0gInN0cmluZyIpIHsKLSAg
ICAgICAgICAgIHZhciByZXN1bHQgPSB0aGlzLl9mb3JtYXRXaXRoU3Vic3RpdHV0aW9uU3RyaW5n
KHBhcmFtZXRlcnMsIGZvcm1hdHRlZFJlc3VsdCkKKyAgICAgICAgaWYgKHNob3VsZEZvcm1hdE1l
c3NhZ2UpIHsKKyAgICAgICAgICAgIC8vIE11bHRpcGxlIHBhcmFtZXRlcnMgd2l0aCB0aGUgZmly
c3QgYmVpbmcgYSBmb3JtYXQgc3RyaW5nLiBTYXZlIHVudXNlZCBzdWJzdGl0dXRpb25zLgorICAg
ICAgICAgICAgdmFyIHJlc3VsdCA9IHRoaXMuX2Zvcm1hdFdpdGhTdWJzdGl0dXRpb25TdHJpbmco
cGFyYW1ldGVycywgZm9ybWF0dGVkUmVzdWx0KTsKICAgICAgICAgICAgIHBhcmFtZXRlcnMgPSBy
ZXN1bHQudW51c2VkU3Vic3RpdHV0aW9uczsKICAgICAgICAgICAgIGlmIChwYXJhbWV0ZXJzLmxl
bmd0aCkKICAgICAgICAgICAgICAgICBmb3JtYXR0ZWRSZXN1bHQuYXBwZW5kQ2hpbGQoZG9jdW1l
bnQuY3JlYXRlVGV4dE5vZGUoIiAiKSk7CkBAIC02MzYsMTEgKzY1MywxNCBAQCBXZWJJbnNwZWN0
b3IuQ29uc29sZU1lc3NhZ2UucHJvdG90eXBlID0gewogCiAgICAgICAgIC8vIFNpbmdsZSBwYXJh
bWV0ZXIsIG9yIHVudXNlZCBzdWJzdGl0dXRpb25zIGZyb20gYWJvdmUuCiAgICAgICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgcGFyYW1ldGVycy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgdGhp
cy5fZm9ybWF0SW5kaXZpZHVhbFZhbHVlKHBhcmFtZXRlcnNbaV0sIGZvcm1hdHRlZFJlc3VsdCk7
CisgICAgICAgICAgICAvLyBJbmxpbmUgc3RyaW5ncyB3aGVuIGZvcm1hdHRpbmcuCisgICAgICAg
ICAgICBpZiAoc2hvdWxkRm9ybWF0TWVzc2FnZSAmJiBwYXJhbWV0ZXJzW2ldLnR5cGUgPT09ICJz
dHJpbmciKQorICAgICAgICAgICAgICAgIGZvcm1hdHRlZFJlc3VsdC5hcHBlbmRDaGlsZChkb2N1
bWVudC5jcmVhdGVUZXh0Tm9kZShwYXJhbWV0ZXJzW2ldLmRlc2NyaXB0aW9uKSk7CisgICAgICAg
ICAgICBlbHNlCisgICAgICAgICAgICAgICAgZm9ybWF0dGVkUmVzdWx0LmFwcGVuZENoaWxkKFdl
Ykluc3BlY3Rvci5jb25zb2xlLl9mb3JtYXQocGFyYW1ldGVyc1tpXSkpOwogICAgICAgICAgICAg
aWYgKGkgPCBwYXJhbWV0ZXJzLmxlbmd0aCAtIDEpCiAgICAgICAgICAgICAgICAgZm9ybWF0dGVk
UmVzdWx0LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCIgIikpOwogICAgICAg
ICB9Ci0KICAgICAgICAgcmV0dXJuIGZvcm1hdHRlZFJlc3VsdDsKICAgICB9LAogCkBAIC02Nzcs
MTggKzY5Nyw2IEBAIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5wcm90b3R5cGUgPSB7CiAg
ICAgICAgIHJldHVybiBTdHJpbmcuZm9ybWF0KHBhcmFtZXRlcnNbMF0uZGVzY3JpcHRpb24sIHBh
cmFtZXRlcnMuc2xpY2UoMSksIGZvcm1hdHRlcnMsIGZvcm1hdHRlZFJlc3VsdCwgYXBwZW5kKTsK
ICAgICB9LAogCi0gICAgX2Zvcm1hdEluZGl2aWR1YWxWYWx1ZTogZnVuY3Rpb24ocGFyYW0sIGZv
cm1hdHRlZFJlc3VsdCkKLSAgICB7Ci0gICAgICAgIGlmIChPYmplY3QucHJveHlUeXBlKHBhcmFt
KSA9PT0gInN0cmluZyIpIHsKLSAgICAgICAgICAgIGlmICh0aGlzLm9yaWdpbmF0aW5nQ29tbWFu
ZCAmJiB0aGlzLmxldmVsID09PSBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZUxl
dmVsLkxvZykgewotICAgICAgICAgICAgICAgIHZhciBxdW90ZWRTdHJpbmcgPSAiXCIiICsgcGFy
YW0uZGVzY3JpcHRpb24ucmVwbGFjZSgvIi9nLCAiXFxcIiIpICsgIlwiIjsKLSAgICAgICAgICAg
ICAgICBmb3JtYXR0ZWRSZXN1bHQuYXBwZW5kQ2hpbGQoV2ViSW5zcGVjdG9yLmxpbmtpZnlTdHJp
bmdBc0ZyYWdtZW50KHF1b3RlZFN0cmluZykpOwotICAgICAgICAgICAgfSBlbHNlCi0gICAgICAg
ICAgICAgICAgZm9ybWF0dGVkUmVzdWx0LmFwcGVuZENoaWxkKFdlYkluc3BlY3Rvci5saW5raWZ5
U3RyaW5nQXNGcmFnbWVudChwYXJhbS5kZXNjcmlwdGlvbikpOwotICAgICAgICB9IGVsc2UKLSAg
ICAgICAgICAgIGZvcm1hdHRlZFJlc3VsdC5hcHBlbmRDaGlsZChXZWJJbnNwZWN0b3IuY29uc29s
ZS5fZm9ybWF0KHBhcmFtKSk7Ci0gICAgfSwKLQogICAgIHRvTWVzc2FnZUVsZW1lbnQ6IGZ1bmN0
aW9uKCkKICAgICB7CiAgICAgICAgIGlmICh0aGlzLl9lbGVtZW50KQpAQCAtODMzLDYgKzg0MSw5
IEBAIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5wcm90b3R5cGUgPSB7CiAgICAgICAgICAg
ICBjYXNlIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlVHlwZS5Bc3NlcnQ6CiAg
ICAgICAgICAgICAgICAgdHlwZVN0cmluZyA9ICJBc3NlcnQiOwogICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2Fn
ZVR5cGUuUmVzdWx0OgorICAgICAgICAgICAgICAgIHR5cGVTdHJpbmcgPSAiUmVzdWx0IjsKKyAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgdmFyIGxl
dmVsU3RyaW5nOwpAQCAtODg5LDcgKzkwMCw4IEBAIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2Fn
ZS5NZXNzYWdlVHlwZSA9IHsKICAgICBUcmFjZTogMiwKICAgICBTdGFydEdyb3VwOiAzLAogICAg
IEVuZEdyb3VwOiA0LAotICAgIEFzc2VydDogNQorICAgIEFzc2VydDogNSwKKyAgICBSZXN1bHQ6
IDYKIH0KIAogV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VMZXZlbCA9IHsKQEAg
LTkzMywxMiArOTQ1LDE3IEBAIFdlYkluc3BlY3Rvci5Db25zb2xlQ29tbWFuZFJlc3VsdCA9IGZ1
bmN0aW9uKHJlc3VsdCwgZXhjZXB0aW9uLCBvcmlnaW5hdGluZ0NvbW1hCiB7CiAgICAgdmFyIGxl
dmVsID0gKGV4Y2VwdGlvbiA/IFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlTGV2
ZWwuRXJyb3IgOiBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZUxldmVsLkxvZyk7
CiAgICAgdmFyIG1lc3NhZ2UgPSByZXN1bHQ7CisgICAgaWYgKGV4Y2VwdGlvbikgeworICAgICAg
ICAvLyBEaXN0aW5ndWlzaCBiZXR3ZWVuIHN0cmluZ3MgYW5kIGVycm9ycyAobm8gbmVlZCB0byBx
dW90ZSBsYXR0ZXIpLgorICAgICAgICBtZXNzYWdlID0gV2ViSW5zcGVjdG9yLk9iamVjdFByb3h5
LndyYXBQcmltaXRpdmVWYWx1ZShyZXN1bHQpOworICAgICAgICBtZXNzYWdlLnR5cGUgPSAiZXJy
b3IiOworICAgIH0KICAgICB2YXIgbGluZSA9IChleGNlcHRpb24gPyByZXN1bHQubGluZSA6IC0x
KTsKICAgICB2YXIgdXJsID0gKGV4Y2VwdGlvbiA/IHJlc3VsdC5zb3VyY2VVUkwgOiBudWxsKTsK
IAogICAgIHRoaXMub3JpZ2luYXRpbmdDb21tYW5kID0gb3JpZ2luYXRpbmdDb21tYW5kOwogCi0g
ICAgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLmNhbGwodGhpcywgV2ViSW5zcGVjdG9yLkNv
bnNvbGVNZXNzYWdlLk1lc3NhZ2VTb3VyY2UuSlMsIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2Fn
ZS5NZXNzYWdlVHlwZS5Mb2csIGxldmVsLCBsaW5lLCB1cmwsIG51bGwsIDEsIG1lc3NhZ2UpOwor
ICAgIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5jYWxsKHRoaXMsIFdlYkluc3BlY3Rvci5D
b25zb2xlTWVzc2FnZS5NZXNzYWdlU291cmNlLkpTLCBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3Nh
Z2UuTWVzc2FnZVR5cGUuUmVzdWx0LCBsZXZlbCwgbGluZSwgdXJsLCBudWxsLCAxLCBtZXNzYWdl
KTsKIH0KIAogV2ViSW5zcGVjdG9yLkNvbnNvbGVDb21tYW5kUmVzdWx0LnByb3RvdHlwZSA9IHsK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9JbmplY3RlZFNjcmlwdC5q
cyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9JbmplY3RlZFNjcmlwdC5qcwppbmRleCA0
ZjQxNjhiLi42YWQzMjg5IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
SW5qZWN0ZWRTY3JpcHQuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0luamVj
dGVkU2NyaXB0LmpzCkBAIC00NDIsNyArNDQyLDcgQEAgSW5qZWN0ZWRTY3JpcHQuZ2V0UHJvdG90
eXBlcyA9IGZ1bmN0aW9uKG5vZGVJZCkKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1JbmplY3Rl
ZFNjcmlwdC5nZXRQcm9wZXJ0aWVzID0gZnVuY3Rpb24ob2JqZWN0UHJveHksIGlnbm9yZUhhc093
blByb3BlcnR5KQorSW5qZWN0ZWRTY3JpcHQuZ2V0UHJvcGVydGllcyA9IGZ1bmN0aW9uKG9iamVj
dFByb3h5LCBpZ25vcmVIYXNPd25Qcm9wZXJ0eSwgYWJicmV2aWF0ZSkKIHsKICAgICB2YXIgb2Jq
ZWN0ID0gSW5qZWN0ZWRTY3JpcHQuX3Jlc29sdmVPYmplY3Qob2JqZWN0UHJveHkpOwogICAgIGlm
ICghb2JqZWN0KQpAQCAtNDYxLDcgKzQ2MSw3IEBAIEluamVjdGVkU2NyaXB0LmdldFByb3BlcnRp
ZXMgPSBmdW5jdGlvbihvYmplY3RQcm94eSwgaWdub3JlSGFzT3duUHJvcGVydHkpCiAgICAgICAg
IHZhciBpc0dldHRlciA9IG9iamVjdFsiX19sb29rdXBHZXR0ZXJfXyJdICYmIG9iamVjdC5fX2xv
b2t1cEdldHRlcl9fKHByb3BlcnR5TmFtZSk7CiAgICAgICAgIGlmICghcHJvcGVydHkuaXNHZXR0
ZXIpIHsKICAgICAgICAgICAgIHZhciBjaGlsZE9iamVjdCA9IG9iamVjdFtwcm9wZXJ0eU5hbWVd
OwotICAgICAgICAgICAgdmFyIGNoaWxkT2JqZWN0UHJveHkgPSBuZXcgSW5qZWN0ZWRTY3JpcHQu
Y3JlYXRlUHJveHlPYmplY3QoY2hpbGRPYmplY3QsIG9iamVjdFByb3h5Lm9iamVjdElkLCB0cnVl
KTsKKyAgICAgICAgICAgIHZhciBjaGlsZE9iamVjdFByb3h5ID0gbmV3IEluamVjdGVkU2NyaXB0
LmNyZWF0ZVByb3h5T2JqZWN0KGNoaWxkT2JqZWN0LCBvYmplY3RQcm94eS5vYmplY3RJZCwgYWJi
cmV2aWF0ZSk7CiAgICAgICAgICAgICBjaGlsZE9iamVjdFByb3h5LnBhdGggPSBvYmplY3RQcm94
eS5wYXRoID8gb2JqZWN0UHJveHkucGF0aC5zbGljZSgpIDogW107CiAgICAgICAgICAgICBjaGls
ZE9iamVjdFByb3h5LnBhdGgucHVzaChwcm9wZXJ0eU5hbWUpOwogICAgICAgICAgICAgY2hpbGRP
YmplY3RQcm94eS5wcm90b0RlcHRoID0gb2JqZWN0UHJveHkucHJvdG9EZXB0aCB8fCAwOwpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL09iamVjdFByb3BlcnRpZXNTZWN0
aW9uLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL09iamVjdFByb3BlcnRpZXNTZWN0
aW9uLmpzCmluZGV4IDdiZGYxN2YuLmZjZmQ0Y2YgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9PYmplY3RQcm9wZXJ0aWVzU2VjdGlvbi5qcworKysgYi9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvT2JqZWN0UHJvcGVydGllc1NlY3Rpb24uanMKQEAgLTUwLDcgKzUw
LDcgQEAgV2ViSW5zcGVjdG9yLk9iamVjdFByb3BlcnRpZXNTZWN0aW9uLnByb3RvdHlwZSA9IHsK
ICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICBzZWxmLnVwZGF0ZVByb3BlcnRp
ZXMocHJvcGVydGllcyk7CiAgICAgICAgIH07Ci0gICAgICAgIEluamVjdGVkU2NyaXB0QWNjZXNz
LmdldFByb3BlcnRpZXModGhpcy5vYmplY3QsIHRoaXMuaWdub3JlSGFzT3duUHJvcGVydHksIGNh
bGxiYWNrKTsKKyAgICAgICAgSW5qZWN0ZWRTY3JpcHRBY2Nlc3MuZ2V0UHJvcGVydGllcyh0aGlz
Lm9iamVjdCwgdGhpcy5pZ25vcmVIYXNPd25Qcm9wZXJ0eSwgdHJ1ZSwgY2FsbGJhY2spOwogICAg
IH0sCiAKICAgICB1cGRhdGVQcm9wZXJ0aWVzOiBmdW5jdGlvbihwcm9wZXJ0aWVzLCByb290VHJl
ZUVsZW1lbnRDb25zdHJ1Y3Rvciwgcm9vdFByb3BlcnR5Q29tcGFyZXIpCkBAIC0xNDcsNyArMTQ3
LDcgQEAgV2ViSW5zcGVjdG9yLk9iamVjdFByb3BlcnR5VHJlZUVsZW1lbnQucHJvdG90eXBlID0g
ewogICAgICAgICAgICAgICAgIHRoaXMuYXBwZW5kQ2hpbGQobmV3IHRoaXMudHJlZU91dGxpbmUu
c2VjdGlvbi50cmVlRWxlbWVudENvbnN0cnVjdG9yKHByb3BlcnRpZXNbaV0pKTsKICAgICAgICAg
ICAgIH0KICAgICAgICAgfTsKLSAgICAgICAgSW5qZWN0ZWRTY3JpcHRBY2Nlc3MuZ2V0UHJvcGVy
dGllcyh0aGlzLnByb3BlcnR5LnZhbHVlLCBmYWxzZSwgY2FsbGJhY2suYmluZCh0aGlzKSk7Cisg
ICAgICAgIEluamVjdGVkU2NyaXB0QWNjZXNzLmdldFByb3BlcnRpZXModGhpcy5wcm9wZXJ0eS52
YWx1ZSwgZmFsc2UsIHRydWUsIGNhbGxiYWNrLmJpbmQodGhpcykpOwogICAgIH0sCiAKICAgICBv
bmRibGNsaWNrOiBmdW5jdGlvbihldmVudCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9PYmplY3RQcm94eS5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9P
YmplY3RQcm94eS5qcwppbmRleCBmNGE1OWE3Li41MTI5Mjg3IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvT2JqZWN0UHJveHkuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL09iamVjdFByb3h5LmpzCkBAIC02MCw3ICs2MCw3IEBAIFdlYkluc3BlY3Rv
ci5PYmplY3RQcm94eS5nZXRQcm9wZXJ0aWVzQXN5bmMgPSBmdW5jdGlvbihvYmplY3RQcm94eSwg
cHJvcGVydGllc1RvCiAgICAgICAgICAgICAgICAgcmVzdWx0W3Byb3BlcnRpZXNQYXlsb2FkW2ld
Lm5hbWVdID0gcHJvcGVydGllc1BheWxvYWRbaV0udmFsdWUuZGVzY3JpcHRpb247CiAgICAgICAg
IGNhbGxiYWNrKHJlc3VsdCk7CiAgICAgfTsKLSAgICBJbmplY3RlZFNjcmlwdEFjY2Vzcy5nZXRQ
cm9wZXJ0aWVzKG9iamVjdFByb3h5LCB0cnVlLCBjcmVhdGVQcm9wZXJ0aWVzTWFwVGhlbkNhbGxi
YWNrKTsKKyAgICBJbmplY3RlZFNjcmlwdEFjY2Vzcy5nZXRQcm9wZXJ0aWVzKG9iamVjdFByb3h5
LCB0cnVlLCBmYWxzZSwgY3JlYXRlUHJvcGVydGllc01hcFRoZW5DYWxsYmFjayk7CiB9CiAKIFdl
Ykluc3BlY3Rvci5PYmplY3RQcm9wZXJ0eVByb3h5ID0gZnVuY3Rpb24obmFtZSwgdmFsdWUpCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmNzcyBiL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuY3NzCmluZGV4IGY3ZTFiOTAuLmU1
YmQ5ZGQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3Iu
Y3NzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuY3NzCkBAIC03
MjAsNiArNzIwLDE4IEBAIGJvZHkuZHJhd2VyLXZpc2libGUgI2RyYXdlciB7CiAgICAgcGFkZGlu
Zy1sZWZ0OiAwICFpbXBvcnRhbnQ7CiB9CiAKKy5jb25zb2xlLWZvcm1hdHRlZC1udW1iZXIgewor
ICAgIGNvbG9yOiByZ2IoMjgsIDAsIDIwNyk7Cit9CisKKy5jb25zb2xlLWZvcm1hdHRlZC1zdHJp
bmcsIC5jb25zb2xlLWZvcm1hdHRlZC1yZWdleHAgeworICAgIGNvbG9yOiByZ2IoMTk2LCAyNiwg
MjIpOworfQorCisuY29uc29sZS1mb3JtYXR0ZWQtbnVsbCwgLmNvbnNvbGUtZm9ybWF0dGVkLXVu
ZGVmaW5lZCB7CisgICAgY29sb3I6IHJnYigxMjgsIDEyOCwgMTI4KTsKK30KKwogLmVycm9yLW1l
c3NhZ2UgewogICAgIGNvbG9yOiByZWQ7CiB9Cg==
</data>
<flag name="review"
          id="27479"
          type_id="1"
          status="+"
          setter="timothy"
    />
          </attachment>
      

    </bug>

</bugzilla>