<?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>56310</bug_id>
          
          <creation_ts>2011-03-14 08:16:57 -0700</creation_ts>
          <short_desc>Web Inspector: Fix handling of the CSSAgent.setStyleSheetText() results in CSSStyleModel.js</short_desc>
          <delta_ts>2011-03-29 08:39:03 -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>
          <dependson>56662</dependson>
    
    <dependson>57096</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexander Pavlov (apavlov)">apavlov</reporter>
          <assigned_to name="Alexander Pavlov (apavlov)">apavlov</assigned_to>
          <cc>abarth</cc>
    
    <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>eric</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>366989</commentid>
    <comment_count>0</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2011-03-14 08:16:57 -0700</bug_when>
    <thetext>The current implementation:
1. Does not follow the setStyleSheetText() call result specified by the protocol (should be a boolean instead of stylesheet payload)
2. Does not dispatch the &quot;stylesheet changed&quot; event</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366998</commentid>
    <comment_count>1</comment_count>
      <attachid>85678</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2011-03-14 08:28:49 -0700</bug_when>
    <thetext>Created attachment 85678
[PATCH] Suggested fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>367000</commentid>
    <comment_count>2</comment_count>
      <attachid>85678</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-03-14 08:34:35 -0700</bug_when>
    <thetext>Comment on attachment 85678
[PATCH] Suggested fix

Please add a test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>367015</commentid>
    <comment_count>3</comment_count>
      <attachid>85684</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2011-03-14 09:25:47 -0700</bug_when>
    <thetext>Created attachment 85684
[PATCH] Test added</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>367035</commentid>
    <comment_count>4</comment_count>
      <attachid>85684</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-03-14 10:04:40 -0700</bug_when>
    <thetext>Comment on attachment 85684
[PATCH] Test added

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

&gt; LayoutTests/inspector/styles/styles-stylesheet-text.html:1
&gt; +&lt;html&gt;

can be get-set-stylesheet-text.html

&gt; LayoutTests/inspector/styles/styles-stylesheet-text.html:24
&gt; +    function test_findStyleSheet(error, styleSheetIds)

use InspectorTest.runTestSuite for the reset instead.

Also, I think getAllStyles should be called getAllStyleSheets and return stylesheet metainfo (&apos;url&apos; for now) along with its id.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>367720</commentid>
    <comment_count>5</comment_count>
      <attachid>85819</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2011-03-15 09:51:19 -0700</bug_when>
    <thetext>Created attachment 85819
[PATCH] Comments addressed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>367723</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-15 09:53:28 -0700</bug_when>
    <thetext>Attachment 85819 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/insp...&quot; exit_code: 1

Source/WebCore/inspector/InspectorCSSAgent.h:67:  The parameter name &quot;error&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 10 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>367816</commentid>
    <comment_count>7</comment_count>
      <attachid>85832</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2011-03-15 11:35:40 -0700</bug_when>
    <thetext>Created attachment 85832
[PATCH] Style fixed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>369757</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-18 11:38:43 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/81487 might have broken Leopard Intel Release (Tests)
The following tests are not passing:
inspector/styles/styles-add-blank-property.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>373446</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-25 05:21:01 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/81953 might have broken GTK Linux 32-bit Release
The following tests are not passing:
inspector/styles/styles-add-blank-property.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>375379</commentid>
    <comment_count>10</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2011-03-29 08:39:03 -0700</bug_when>
    <thetext>Landed with a flakiness fix for LayoutTests/inspector/styles/styles-add-blank-property.html from bug 57252.

Committing to http://svn.webkit.org/repository/webkit/trunk ...
        M       LayoutTests/ChangeLog
        A       LayoutTests/inspector/styles/get-set-stylesheet-text-expected.txt
        A       LayoutTests/inspector/styles/get-set-stylesheet-text.html
        A       LayoutTests/inspector/styles/resources/get-set-stylesheet-text.css
        M       LayoutTests/inspector/styles/styles-add-blank-property.html
        M       LayoutTests/inspector/styles/styles-new-API.html
        M       Source/WebCore/ChangeLog
        M       Source/WebCore/inspector/Inspector.json
        M       Source/WebCore/inspector/InspectorCSSAgent.cpp
        M       Source/WebCore/inspector/InspectorCSSAgent.h
        M       Source/WebCore/inspector/InspectorStyleSheet.cpp
        M       Source/WebCore/inspector/InspectorStyleSheet.h
        M       Source/WebCore/inspector/front-end/AuditRules.js
        M       Source/WebCore/inspector/front-end/CSSStyleModel.js
Committed r82252</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85678</attachid>
            <date>2011-03-14 08:28:49 -0700</date>
            <delta_ts>2011-03-14 09:25:47 -0700</delta_ts>
            <desc>[PATCH] Suggested fix</desc>
            <filename>setstylesheettext.patch</filename>
            <type>text/plain</type>
            <size>2910</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">Y29tbWl0IGQ0MTIxNzczZjQ0Y2M0Mzk0NmUwYjc2ZWM5YTBjNjhjMDAyZjhlYzgKQXV0aG9yOiBB
bGV4YW5kZXIgUGF2bG92IDxhcGF2bG92QGNocm9taXVtLm9yZz4KRGF0ZTogICBNb24gTWFyIDE0
IDE4OjI0OjQwIDIwMTEgKzAzMDAKCiAgICBGaXgKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjM2YWY2YS4uMDQ5
Njg4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDExLTAzLTE0ICBBbGV4YW5kZXIg
UGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogRml4IGhhbmRsaW5nIG9mIHRo
ZSBDU1NBZ2VudC5zZXRTdHlsZVNoZWV0VGV4dCgpIHJlc3VsdHMgaW4gQ1NTU3R5bGVNb2RlbC5q
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTYzMTAK
KworICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQ1NTU3R5bGVNb2RlbC5qczoKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLnByb3RvdHlwZS5fc3R5bGVTaGVldENoYW5n
ZWQuY2FsbGJhY2spOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwucHJvdG90
eXBlLl9zdHlsZVNoZWV0Q2hhbmdlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTU3R5bGVN
b2RlbC5wcm90b3R5cGUuX29uUmV2ZXJ0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NTdHls
ZVNoZWV0LnByb3RvdHlwZS5zZXRUZXh0KToKKwogMjAxMS0wMy0xNCAgQW5kcmV5IEFkYWlraW4g
IDxhYW5kcmV5QGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgUGF2ZWwgRmVsZG1h
bi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ1NTU3R5
bGVNb2RlbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ1NTU3R5bGVN
b2RlbC5qcwppbmRleCA0YWUxMzI3Li42YjU4MjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NTU1N0eWxlTW9kZWwuanMKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9DU1NTdHlsZU1vZGVsLmpzCkBAIC0xNjgsOCArMTY4LDEw
IEBAIFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAg
IGlmIChlcnJvcikKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB2YXIgcmVz
b3VyY2UgPSBXZWJJbnNwZWN0b3IucmVzb3VyY2VGb3JVUkwoaHJlZik7Ci0gICAgICAgICAgICBp
ZiAocmVzb3VyY2UgJiYgcmVzb3VyY2UudHlwZSA9PT0gV2ViSW5zcGVjdG9yLlJlc291cmNlLlR5
cGUuU3R5bGVzaGVldCkKKyAgICAgICAgICAgIGlmIChyZXNvdXJjZSAmJiByZXNvdXJjZS50eXBl
ID09PSBXZWJJbnNwZWN0b3IuUmVzb3VyY2UuVHlwZS5TdHlsZXNoZWV0KSB7CiAgICAgICAgICAg
ICAgICAgcmVzb3VyY2Uuc2V0Q29udGVudChjb250ZW50LCB0aGlzLl9vblJldmVydC5iaW5kKHRo
aXMsIHN0eWxlU2hlZXRJZCkpOworICAgICAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRv
TGlzdGVuZXJzKCJzdHlsZXNoZWV0IGNoYW5nZWQiKTsKKyAgICAgICAgICAgIH0KICAgICAgICAg
fQogICAgICAgICBDU1NBZ2VudC5nZXRTdHlsZVNoZWV0VGV4dChzdHlsZVNoZWV0SWQsIGNhbGxi
YWNrLmJpbmQodGhpcykpOwogICAgIH0sCkBAIC0xODEsNyArMTgzLDYgQEAgV2ViSW5zcGVjdG9y
LkNTU1N0eWxlTW9kZWwucHJvdG90eXBlID0gewogICAgICAgICAgICAgaWYgKGVycm9yKQogICAg
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIHRoaXMuX3N0eWxlU2hlZXRDaGFuZ2Vk
KHN0eWxlU2hlZXRJZCwgdHJ1ZSk7Ci0gICAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xp
c3RlbmVycygic3R5bGVzaGVldCBjaGFuZ2VkIik7CiAgICAgICAgIH0KICAgICAgICAgQ1NTQWdl
bnQuc2V0U3R5bGVTaGVldFRleHQoc3R5bGVTaGVldElkLCBjb250ZW50VG9SZXZlcnRUbywgY2Fs
bGJhY2suYmluZCh0aGlzKSk7CiAgICAgfQpAQCAtNTcyLDE0ICs1NzMsMTIgQEAgV2ViSW5zcGVj
dG9yLkNTU1N0eWxlU2hlZXQucHJvdG90eXBlID0gewogCiAgICAgc2V0VGV4dDogZnVuY3Rpb24o
bmV3VGV4dCwgdXNlckNhbGxiYWNrKQogICAgIHsKLSAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2so
ZXJyb3IsIHN0eWxlU2hlZXRQYXlsb2FkKQorICAgICAgICBmdW5jdGlvbiBjYWxsYmFjayhlcnJv
ciwgaXNDaGFuZ2VTdWNjZXNzZnVsKQogICAgICAgICB7Ci0gICAgICAgICAgICBpZiAoZXJyb3Ig
fHwgIXN0eWxlU2hlZXRQYXlsb2FkKQotICAgICAgICAgICAgICAgIHVzZXJDYWxsYmFjayhudWxs
KTsKLSAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgIHVzZXJDYWxsYmFjayhuZXcg
V2ViSW5zcGVjdG9yLkNTU1N0eWxlU2hlZXQoc3R5bGVTaGVldFBheWxvYWQpKTsKKyAgICAgICAg
ICAgIGlmICh1c2VyQ2FsbGJhY2spCisgICAgICAgICAgICAgICAgdXNlckNhbGxiYWNrKGlzQ2hh
bmdlU3VjY2Vzc2Z1bCk7CisgICAgICAgICAgICBpZiAoaXNDaGFuZ2VTdWNjZXNzZnVsKQogICAg
ICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5jc3NNb2RlbC5fc3R5bGVTaGVldENoYW5nZWQodGhp
cy5pZCwgdHJ1ZSk7Ci0gICAgICAgICAgICB9CiAgICAgICAgIH0KIAogICAgICAgICBDU1NBZ2Vu
dC5zZXRTdHlsZVNoZWV0VGV4dCh0aGlzLmlkLCBuZXdUZXh0LCBjYWxsYmFjay5iaW5kKHRoaXMp
KTsK
</data>
<flag name="review"
          id="77836"
          type_id="1"
          status="-"
          setter="pfeldman"
    />
    <flag name="commit-queue"
          id="77837"
          type_id="3"
          status="-"
          setter="pfeldman"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85684</attachid>
            <date>2011-03-14 09:25:47 -0700</date>
            <delta_ts>2011-03-15 09:51:19 -0700</delta_ts>
            <desc>[PATCH] Test added</desc>
            <filename>setstylesheettext.patch</filename>
            <type>text/plain</type>
            <size>9998</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">Y29tbWl0IGVhM2I2ZjI1OTNjYzRiYmQzODA5MzU1NDI0MGY3NTc2ZDc3YjUzZGIKQXV0aG9yOiBB
bGV4YW5kZXIgUGF2bG92IDxhcGF2bG92QGNocm9taXVtLm9yZz4KRGF0ZTogICBNb24gTWFyIDE0
IDE4OjI0OjQwIDIwMTEgKzAzMDAKCiAgICBGaXgKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOWVmYjFlYy4uZjdkNTE0NiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDExLTAzLTE0ICBBbGV4YW5kZXIgUGF2bG92ICA8YXBh
dmxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogRml4IGhhbmRsaW5nIG9mIHRoZSBDU1NBZ2VudC5z
ZXRTdHlsZVNoZWV0VGV4dCgpIHJlc3VsdHMgaW4gQ1NTU3R5bGVNb2RlbC5qcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTYzMTAKKworICAgICAgICAq
IGluc3BlY3Rvci9zdHlsZXMvcmVzb3VyY2VzL3N0eWxlcy1zdHlsZXNoZWV0LXRleHQuY3NzOiBB
ZGRlZC4KKyAgICAgICAgKGJvZHkpOgorICAgICAgICAoLyogY29tbWVudCBiZWZvcmUgc2VsZWN0
b3IgKi9ib2R5Lm1haW4xLyogY29tbWVudCBhZnRlciBzZWxlY3RvciAqLyk6CisgICAgICAgIChi
b2R5Lm1haW4yKToKKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1zdHlsZXNoZWV0
LXRleHQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL3N0
eWxlcy1zdHlsZXNoZWV0LXRleHQuaHRtbDogQWRkZWQuCisKIDIwMTEtMDMtMTAgIEFsZXhhbmRl
ciBQYXZsb3YgIDxhcGF2bG92QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBQ
YXZlbCBGZWxkbWFuLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9y
ZXNvdXJjZXMvc3R5bGVzLXN0eWxlc2hlZXQtdGV4dC5jc3MgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3Ivc3R5bGVzL3Jlc291cmNlcy9zdHlsZXMtc3R5bGVzaGVldC10ZXh0LmNzcwpuZXcgZmlsZSBt
b2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40NTIxMGUzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9yZXNvdXJjZXMvc3R5bGVzLXN0eWxlc2hlZXQtdGV4
dC5jc3MKQEAgLTAsMCArMSwxNCBAQAorYm9keSB7CisgICAgZm9udC1zaXplOiAxMnB4OworICAg
IGZvbzogYmFyICEKKworICAgIGltcG9ydGFudCAvKiAhaW1wb3J0YW50IHByb3BlcnR5IG5vdCBy
ZWNvZ25pemVkIGJ5IFdlYkNvcmUgKi87CisgICAgaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7Cisg
ICAgY29sb3J6OiAiIWltcG9ydGFudCI7CisgICAgaW1wb3J0YW50OiFpbXBvcnRhbnQ7CisgICAg
Y29sb3I6ICJiYWRjb2xvciIgISBpbXBvcnRhbnQgLyogZ29vZCBwcm9wZXJ0eSB3aXRoIHN0cmFu
Z2UgdmFsdWUgKi87Cit9CisKKy8qIGNvbW1lbnQgYmVmb3JlIHNlbGVjdG9yICovYm9keS5tYWlu
MS8qIGNvbW1lbnQgYWZ0ZXIgc2VsZWN0b3IgKi97LyogY29tbWVudCAqL2NvbG9yOiAjRjAwQkFB
O3pvbzptb28gLyogbm90IGFuICFpbXBvcnRhbnQgdW5yZWNvZ25pemVkIHByb3BlcnR5ICovfS8q
IGNvbW1lbnQgKi8KKworYm9keS5tYWluMntiYWNrZ3JvdW5kOiBncmVlbiAvKiB2YWx1ZSAhaW1w
b3J0YW50IGNvbW1lbnQgKi8gIWltcG9ydGFudCAvKiBubyBzZW1pY29sb24sIHZlcnkgIWltcG9y
dGFudCAqL30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVz
LXN0eWxlc2hlZXQtdGV4dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5
bGVzL3N0eWxlcy1zdHlsZXNoZWV0LXRleHQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NzU1CmluZGV4IDAwMDAwMDAuLmM3OTUzMjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1zdHlsZXNoZWV0LXRleHQtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMzYgQEAKK1Rlc3RzIHRoYXQgV2ViSW5zcGVjdG9yLkNTU1N0eWxlU2hlZXQgbWV0
aG9kcyB3b3JrIGFzIGV4cGVjdGVkLgorCitJbnNwZWN0IE1lCisKK09yaWdpbmFsIHN0eWxlc2hl
ZXQgdGV4dDoKK2JvZHkgeworICAgIGZvbnQtc2l6ZTogMTJweDsKKyAgICBmb286IGJhciAhCisK
KyAgICBpbXBvcnRhbnQgLyogIWltcG9ydGFudCBwcm9wZXJ0eSBub3QgcmVjb2duaXplZCBieSBX
ZWJDb3JlICovOworICAgIGhlaWdodDogMTAwJSAhaW1wb3J0YW50OworICAgIGNvbG9yejogIiFp
bXBvcnRhbnQiOworICAgIGltcG9ydGFudDohaW1wb3J0YW50OworICAgIGNvbG9yOiAiYmFkY29s
b3IiICEgaW1wb3J0YW50IC8qIGdvb2QgcHJvcGVydHkgd2l0aCBzdHJhbmdlIHZhbHVlICovOwor
fQorCisvKiBjb21tZW50IGJlZm9yZSBzZWxlY3RvciAqL2JvZHkubWFpbjEvKiBjb21tZW50IGFm
dGVyIHNlbGVjdG9yICovey8qIGNvbW1lbnQgKi9jb2xvcjogI0YwMEJBQTt6b286bW9vIC8qIG5v
dCBhbiAhaW1wb3J0YW50IHVucmVjb2duaXplZCBwcm9wZXJ0eSAqL30vKiBjb21tZW50ICovCisK
K2JvZHkubWFpbjJ7YmFja2dyb3VuZDogZ3JlZW4gLyogdmFsdWUgIWltcG9ydGFudCBjb21tZW50
ICovICFpbXBvcnRhbnQgLyogbm8gc2VtaWNvbG9uLCB2ZXJ5ICFpbXBvcnRhbnQgKi99CisKKz09
PSBNYXRjaGVkIHJ1bGVzIGZvciBoMSBhZnRlciBzZXRUZXh0KCkgPT09CisKK3J1bGUKK2gxOiBb
dXNlci1hZ2VudF0KK1snZGlzcGxheSc6J2Jsb2NrJ10gQFt1bmRlZmluZWQtdW5kZWZpbmVkXSBz
dHlsZQorWydmb250LXNpemUnOicyZW0nXSBAW3VuZGVmaW5lZC11bmRlZmluZWRdIHN0eWxlCitb
Jy13ZWJraXQtbWFyZ2luLWJlZm9yZSc6JzAuNjdlbSddIEBbdW5kZWZpbmVkLXVuZGVmaW5lZF0g
c3R5bGUKK1snLXdlYmtpdC1tYXJnaW4tYWZ0ZXInOicwLjY3ZW0nXSBAW3VuZGVmaW5lZC11bmRl
ZmluZWRdIHN0eWxlCitbJy13ZWJraXQtbWFyZ2luLXN0YXJ0JzonMHB4J10gQFt1bmRlZmluZWQt
dW5kZWZpbmVkXSBzdHlsZQorWyctd2Via2l0LW1hcmdpbi1lbmQnOicwcHgnXSBAW3VuZGVmaW5l
ZC11bmRlZmluZWRdIHN0eWxlCitbJ2ZvbnQtd2VpZ2h0JzonYm9sZCddIEBbdW5kZWZpbmVkLXVu
ZGVmaW5lZF0gc3R5bGUKKworcnVsZQoraDE6IFtdCitbJ2NvbG9yJzoncmVkJ10gQFsxLTEyXSBh
Y3RpdmUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMt
c3R5bGVzaGVldC10ZXh0Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxl
cy1zdHlsZXNoZWV0LXRleHQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAw
Li43OWIxNmM5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxl
cy9zdHlsZXMtc3R5bGVzaGVldC10ZXh0Lmh0bWwKQEAgLTAsMCArMSwxMTYgQEAKKzxodG1sPgor
PGhlYWQ+CisKKzxzdHlsZT4KKworLyogQW4gaW5saW5lIHN0eWxlc2hlZXQgKi8KK2JvZHkubWFp
bnBhZ2UgeworICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKK30KKzwvc3R5bGU+CisKKzxsaW5r
IHJlbD0ic3R5bGVzaGVldCIgaHJlZj0icmVzb3VyY2VzL3N0eWxlcy1zdHlsZXNoZWV0LXRleHQu
Y3NzIj4KKworPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rv
ci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9lbGVtZW50cy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2Z1bmN0aW9uIHRl
c3QoKQoreworICAgIHZhciBmb3VuZFN0eWxlU2hlZXQ7CisKKyAgICBDU1NBZ2VudC5nZXRBbGxT
dHlsZXModGVzdF9maW5kU3R5bGVTaGVldCk7CisKKyAgICBmdW5jdGlvbiB0ZXN0X2ZpbmRTdHls
ZVNoZWV0KGVycm9yLCBzdHlsZVNoZWV0SWRzKQorICAgIHsKKyAgICAgICAgZnVuY3Rpb24gY2Fs
bGJhY2soc3R5bGVTaGVldElkcywgc3R5bGVTaGVldCkKKyAgICAgICAgeworICAgICAgICAgICAg
aWYgKHN0eWxlU2hlZXQuc291cmNlVVJMLmluZGV4T2YoInN0eWxlcy1zdHlsZXNoZWV0LXRleHQu
Y3NzIikgPj0gMCkgeworICAgICAgICAgICAgICAgIGZvdW5kU3R5bGVTaGVldCA9IHN0eWxlU2hl
ZXQ7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIk9yaWdpbmFsIHN0
eWxlc2hlZXQgdGV4dDoiKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3Vs
dChzdHlsZVNoZWV0LmdldFRleHQoKSk7CisgICAgICAgICAgICAgICAgdGVzdF9zZXRUZXh0KCk7
CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0X2ZpbmRTdHlsZVNoZWV0
KG51bGwsIHN0eWxlU2hlZXRJZHMpOworICAgICAgICB9CisgICAgICAgIHZhciBpZCA9IChzdHls
ZVNoZWV0SWRzICYmIHN0eWxlU2hlZXRJZHMubGVuZ3RoKSA/IHN0eWxlU2hlZXRJZHMuc2hpZnQo
KSA6IG51bGw7CisgICAgICAgIGlmIChpZCkKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci5DU1NT
dHlsZVNoZWV0LmNyZWF0ZUZvcklkKGlkLCBjYWxsYmFjay5iaW5kKG51bGwsIHN0eWxlU2hlZXRJ
ZHMpKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0X3NldFRleHQoKQorICAgIHsKKyAgICAg
ICAgZnVuY3Rpb24gY2FsbGJhY2soc3VjY2VzcykKKyAgICAgICAgeworICAgICAgICAgICAgaWYg
KCFzdWNjZXNzKSB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRFcnJvcigiRmFp
bGVkIHRvIHNldCBzdHlsZXNoZWV0IHRleHQiKTsKKyAgICAgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QucnVuQWZ0ZXJQZW5kaW5n
RGlzcGF0Y2hlcyh0ZXN0X25ld0VsZW1lbnRTdHlsZXMpOworICAgICAgICB9CisKKyAgICAgICAg
Zm91bmRTdHlsZVNoZWV0LnNldFRleHQoImgxIHsgY29sb3I6IHJlZDsgfSIsIGNhbGxiYWNrKTsK
KyAgICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0X25ld0VsZW1lbnRTdHlsZXMoKQorICAgIHsKKyAg
ICAgICAgZnVuY3Rpb24gY2FsbGJhY2soZXJyb3IsIHN0eWxlcykKKyAgICAgICAgeworICAgICAg
ICAgICAgaWYgKGVycm9yKSB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRFcnJv
cigiZXJyb3I6ICIgKyBlcnJvcik7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiPT09IE1hdGNoZWQg
cnVsZXMgZm9yIGgxIGFmdGVyIHNldFRleHQoKSA9PT0iKTsKKyAgICAgICAgICAgIGR1bXBSdWxl
c0FycmF5KHN0eWxlcy5tYXRjaGVkQ1NTUnVsZXMpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5jb21wbGV0ZVRlc3QoKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIG5vZGVDYWxs
YmFjayhub2RlKQorICAgICAgICB7CisgICAgICAgICAgICBDU1NBZ2VudC5nZXRTdHlsZXNGb3JO
b2RlKG5vZGUuaWQsIGNhbGxiYWNrKTsKKyAgICAgICAgfQorCisgICAgICAgIEluc3BlY3RvclRl
c3Quc2VsZWN0Tm9kZVdpdGhJZCgiaW5zcGVjdGVkIiwgbm9kZUNhbGxiYWNrKTsKKyAgICB9CisK
KworICAgIC8vIERhdGEgZHVtcGluZworCisgICAgZnVuY3Rpb24gZHVtcFJ1bGVzQXJyYXkocnVs
ZXMpCisgICAgeworICAgICAgICBpZiAoIXJ1bGVzKQorICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJ1bGVzLmxlbmd0aDsgKytpKQorICAgICAgICAgICAg
ZHVtcFJ1bGVPclN0eWxlKHJ1bGVzW2ldKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBkdW1wUnVs
ZU9yU3R5bGUocnVsZU9yU3R5bGUpCisgICAgeworICAgICAgICBpZiAoIXJ1bGVPclN0eWxlKQor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB2YXIgaXNSdWxlID0gISEocnVsZU9yU3R5bGUu
c3R5bGUpOworICAgICAgICB2YXIgc3R5bGUgPSBpc1J1bGUgPyBydWxlT3JTdHlsZS5zdHlsZSA6
IHJ1bGVPclN0eWxlOworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiIik7CisgICAg
ICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KGlzUnVsZSA/ICJydWxlIiA6ICJzdHlsZSIpOwor
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgoaXNSdWxlID8gKHJ1bGVPclN0eWxlLnNl
bGVjdG9yVGV4dCArICI6IFsiICsgcnVsZU9yU3R5bGUub3JpZ2luICsgIl0iKSA6ICJyYXcgc3R5
bGUiKSk7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3R5bGUuY3NzUHJvcGVydGllcy5s
ZW5ndGg7ICsraSkgeworICAgICAgICAgICAgdmFyIHByb3BlcnR5ID0gc3R5bGUuY3NzUHJvcGVy
dGllc1tpXTsKKyAgICAgICAgICAgIGlmIChwcm9wZXJ0eS5zdGF0dXMgIT09ICJkaXNhYmxlZCIp
CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlsnIiArIHByb3BlcnR5
Lm5hbWUgKyAiJzonIiArIHByb3BlcnR5LnZhbHVlICsgIiciICsgKHByb3BlcnR5LnByaW9yaXR5
ID09PSAiaW1wb3J0YW50IiA/ICIgaXMtaW1wb3J0YW50IiA6ICIiKSArICgoInBhcnNlZE9rIiBp
biBwcm9wZXJ0eSkgPyAiIG5vbi1wYXJzZWQiIDogIiIpICsiXSBAWyIgKyBwcm9wZXJ0eS5zdGFy
dE9mZnNldCArICItIiArIHByb3BlcnR5LmVuZE9mZnNldCArICJdICIgKyAocHJvcGVydHkuc3Rh
dHVzIHx8ICJzdHlsZSIpKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFkZFJlc3VsdCgiW3RleHQ9JyIgKyBwcm9wZXJ0eS50ZXh0ICsgIiddICIgKyBw
cm9wZXJ0eS5zdGF0dXMpOworICAgICAgICB9CisgICAgfQorfQorPC9zY3JpcHQ+Cis8L2hlYWQ+
CisKKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxwPgorVGVzdHMgdGhhdCBXZWJJbnNwZWN0
b3IuQ1NTU3R5bGVTaGVldCBtZXRob2RzIHdvcmsgYXMgZXhwZWN0ZWQuCis8L3A+Cis8aDEgaWQ9
Imluc3BlY3RlZCI+SW5zcGVjdCBNZTwvaDE+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggZjM2YWY2YS4uYzdiYzE5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDExLTAz
LTE0ICBBbGV4YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogRml4
IGhhbmRsaW5nIG9mIHRoZSBDU1NBZ2VudC5zZXRTdHlsZVNoZWV0VGV4dCgpIHJlc3VsdHMgaW4g
Q1NTU3R5bGVNb2RlbC5qcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NTYzMTAKKworICAgICAgICBUZXN0OiBpbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1z
dHlsZXNoZWV0LXRleHQuaHRtbAorCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9DU1NT
dHlsZU1vZGVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwucHJvdG90
eXBlLl9zdHlsZVNoZWV0Q2hhbmdlZC5jYWxsYmFjayk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
Q1NTU3R5bGVNb2RlbC5wcm90b3R5cGUuX3N0eWxlU2hlZXRDaGFuZ2VkKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLnByb3RvdHlwZS5fb25SZXZlcnQpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkNTU1N0eWxlU2hlZXQucHJvdG90eXBlLnNldFRleHQpOgorCiAyMDExLTAz
LTE0ICBBbmRyZXkgQWRhaWtpbiAgPGFhbmRyZXlAZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBQYXZlbCBGZWxkbWFuLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9DU1NTdHlsZU1vZGVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9DU1NTdHlsZU1vZGVsLmpzCmluZGV4IDRhZTEzMjcuLjZiNTgyMDggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ1NTU3R5bGVNb2RlbC5q
cworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NTU1N0eWxlTW9kZWwu
anMKQEAgLTE2OCw4ICsxNjgsMTAgQEAgV2ViSW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwucHJvdG90
eXBlID0gewogICAgICAgICAgICAgaWYgKGVycm9yKQogICAgICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgICAgIHZhciByZXNvdXJjZSA9IFdlYkluc3BlY3Rvci5yZXNvdXJjZUZvclVSTCho
cmVmKTsKLSAgICAgICAgICAgIGlmIChyZXNvdXJjZSAmJiByZXNvdXJjZS50eXBlID09PSBXZWJJ
bnNwZWN0b3IuUmVzb3VyY2UuVHlwZS5TdHlsZXNoZWV0KQorICAgICAgICAgICAgaWYgKHJlc291
cmNlICYmIHJlc291cmNlLnR5cGUgPT09IFdlYkluc3BlY3Rvci5SZXNvdXJjZS5UeXBlLlN0eWxl
c2hlZXQpIHsKICAgICAgICAgICAgICAgICByZXNvdXJjZS5zZXRDb250ZW50KGNvbnRlbnQsIHRo
aXMuX29uUmV2ZXJ0LmJpbmQodGhpcywgc3R5bGVTaGVldElkKSk7CisgICAgICAgICAgICAgICAg
dGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoInN0eWxlc2hlZXQgY2hhbmdlZCIpOworICAg
ICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIENTU0FnZW50LmdldFN0eWxlU2hlZXRUZXh0
KHN0eWxlU2hlZXRJZCwgY2FsbGJhY2suYmluZCh0aGlzKSk7CiAgICAgfSwKQEAgLTE4MSw3ICsx
ODMsNiBAQCBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICAg
ICAgICBpZiAoZXJyb3IpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgdGhp
cy5fc3R5bGVTaGVldENoYW5nZWQoc3R5bGVTaGVldElkLCB0cnVlKTsKLSAgICAgICAgICAgIHRo
aXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKCJzdHlsZXNoZWV0IGNoYW5nZWQiKTsKICAgICAg
ICAgfQogICAgICAgICBDU1NBZ2VudC5zZXRTdHlsZVNoZWV0VGV4dChzdHlsZVNoZWV0SWQsIGNv
bnRlbnRUb1JldmVydFRvLCBjYWxsYmFjay5iaW5kKHRoaXMpKTsKICAgICB9CkBAIC01NzIsMTQg
KzU3MywxMiBAQCBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVTaGVldC5wcm90b3R5cGUgPSB7CiAKICAg
ICBzZXRUZXh0OiBmdW5jdGlvbihuZXdUZXh0LCB1c2VyQ2FsbGJhY2spCiAgICAgewotICAgICAg
ICBmdW5jdGlvbiBjYWxsYmFjayhlcnJvciwgc3R5bGVTaGVldFBheWxvYWQpCisgICAgICAgIGZ1
bmN0aW9uIGNhbGxiYWNrKGVycm9yLCBpc0NoYW5nZVN1Y2Nlc3NmdWwpCiAgICAgICAgIHsKLSAg
ICAgICAgICAgIGlmIChlcnJvciB8fCAhc3R5bGVTaGVldFBheWxvYWQpCi0gICAgICAgICAgICAg
ICAgdXNlckNhbGxiYWNrKG51bGwpOwotICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAg
ICAgdXNlckNhbGxiYWNrKG5ldyBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVTaGVldChzdHlsZVNoZWV0
UGF5bG9hZCkpOworICAgICAgICAgICAgaWYgKHVzZXJDYWxsYmFjaykKKyAgICAgICAgICAgICAg
ICB1c2VyQ2FsbGJhY2soaXNDaGFuZ2VTdWNjZXNzZnVsKTsKKyAgICAgICAgICAgIGlmIChpc0No
YW5nZVN1Y2Nlc3NmdWwpCiAgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmNzc01vZGVsLl9z
dHlsZVNoZWV0Q2hhbmdlZCh0aGlzLmlkLCB0cnVlKTsKLSAgICAgICAgICAgIH0KICAgICAgICAg
fQogCiAgICAgICAgIENTU0FnZW50LnNldFN0eWxlU2hlZXRUZXh0KHRoaXMuaWQsIG5ld1RleHQs
IGNhbGxiYWNrLmJpbmQodGhpcykpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85819</attachid>
            <date>2011-03-15 09:51:19 -0700</date>
            <delta_ts>2011-03-15 11:35:40 -0700</delta_ts>
            <desc>[PATCH] Comments addressed</desc>
            <filename>setstylesheettext.patch</filename>
            <type>text/plain</type>
            <size>15296</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">Y29tbWl0IGQ3NmUzOGVkNjk3ZTYzN2RlMTg4NDZkNDAwOWRkYmZjMWJmNWFmMjEKQXV0aG9yOiBB
bGV4YW5kZXIgUGF2bG92IDxhcGF2bG92QGNocm9taXVtLm9yZz4KRGF0ZTogICBNb24gTWFyIDE0
IDE4OjI0OjQwIDIwMTEgKzAzMDAKCiAgICBGaXgKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYmI4ZTU4NC4uOWJiODQ1OCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDExLTAzLTE1ICBBbGV4YW5kZXIgUGF2bG92ICA8YXBh
dmxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogRml4IGhhbmRsaW5nIG9mIHRoZSBDU1NBZ2VudC5z
ZXRTdHlsZVNoZWV0VGV4dCgpIHJlc3VsdHMgaW4gQ1NTU3R5bGVNb2RlbC5qcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTYzMTAKKworICAgICAgICAq
IGluc3BlY3Rvci9zdHlsZXMvc3R5bGVzLW5ldy1BUEkuaHRtbDoKKwogMjAxMS0wMy0xMiAgUGF2
ZWwgUG9kaXZpbG92ICA8cG9kaXZpbG92QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBZdXJ5IFNlbWlraGF0c2t5LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L3N0eWxlcy9zdHlsZXMtbmV3LUFQSS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxl
cy9zdHlsZXMtbmV3LUFQSS5odG1sCmluZGV4IDJmZTYyYjIuLjZjOTI1MTIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLW5ldy1BUEkuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1uZXctQVBJLmh0bWwKQEAgLTEwMiw3
ICsxMDIsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAgICAgICBsb2FkQW5kRHVtcFN0
eWxlU2hlZXQuYmluZChudWxsLCBzdHlsZVNoZWV0LnN0eWxlU2hlZXRJZCwgdGVzdF9jaGFuZ2VT
ZWxlY3RvcikpOwogICAgICAgICB9CiAKLSAgICAgICAgZnVuY3Rpb24gc3R5bGVTaGVldElkc0xv
YWRlZChlcnJvciwgaWRzKQorICAgICAgICBmdW5jdGlvbiBzdHlsZVNoZWV0SW5mb3NMb2FkZWQo
ZXJyb3IsIGluZm9zKQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAoZXJyb3IpIHsKICAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiZXJyb3I6ICIgKyBlcnJvcik7CkBA
IC0xMTAsMTAgKzExMCwxMCBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIiKTsKICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuYWRkUmVzdWx0KCI9PT0gQWxsIHN0eWxlc2hlZXRzID09PSIpOwotICAgICAgICAgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCBpZHMubGVuZ3RoOyArK2kpCi0gICAgICAgICAgICAgICAgbG9h
ZEFuZER1bXBTdHlsZVNoZWV0KGlkc1tpXSwgKGkgPCBpZHMubGVuZ3RoIC0gMSkgPyBudWxsIDog
cGF0Y2hTdHlsZVNoZWV0KTsKKyAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaW5mb3Mu
bGVuZ3RoOyArK2kpCisgICAgICAgICAgICAgICAgbG9hZEFuZER1bXBTdHlsZVNoZWV0KGluZm9z
W2ldLnN0eWxlU2hlZXRJZCwgKGkgPCBpbmZvcy5sZW5ndGggLSAxKSA/IG51bGwgOiBwYXRjaFN0
eWxlU2hlZXQpOwogICAgICAgICB9Ci0gICAgICAgIENTU0FnZW50LmdldEFsbFN0eWxlcyhzdHls
ZVNoZWV0SWRzTG9hZGVkKTsKKyAgICAgICAgQ1NTQWdlbnQuZ2V0QWxsU3R5bGVTaGVldHMoc3R5
bGVTaGVldEluZm9zTG9hZGVkKTsKICAgICB9CiAKICAgICBmdW5jdGlvbiB0ZXN0X2NoYW5nZVNl
bGVjdG9yKHN0eWxlU2hlZXQpCkBAIC0yOTYsMTMgKzI5NiwxNCBAQCBmdW5jdGlvbiB0ZXN0KCkK
ICAgICBmdW5jdGlvbiBsb2FkQW5kRHVtcFN0eWxlU2hlZXQoc3R5bGVTaGVldElkLCBjb250aW51
YXRpb24sIGVycm9yKQogICAgIHsKICAgICAgICAgaWYgKGVycm9yKSB7Ci0gICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlY29yZCgiZXJyb3I6ICIgKyBlcnJvcik7CisgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZEVycm9yKCJlcnJvcjogIiArIGVycm9yKTsKICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgfQorCiAgICAgICAgIGZ1bmN0aW9uIHN0eWxlU2hlZXRMb2FkZWQoZXJy
b3IsIHN0eWxlU2hlZXQpCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmIChlcnJvcikgewotICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVjb3JkKCJlcnJvcjogIiArIGVycm9yKTsK
KyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZEVycm9yKCJlcnJvcjogIiArIGVycm9y
KTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiIik7CkBAIC0zMjAsNyArMzIxLDcgQEAgZnVuY3Rpb24g
dGVzdCgpCiAvKgogQ292ZXJlZCBBUEkgbWV0aG9kczoKICAtIGdldFN0eWxlc0Zvck5vZGUKLSAt
IGdldEFsbFN0eWxlcworIC0gZ2V0QWxsU3R5bGVTaGVldHMKICAtIGdldFN0eWxlU2hlZXQKICAt
IHNldFN0eWxlU2hlZXRUZXh0CiAgLSBzZXRTdHlsZURhdGEKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkNjk3OGQ1
Li4zNzRkMzYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTEtMDMtMTUgIEFsZXhh
bmRlciBQYXZsb3YgIDxhcGF2bG92QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBGaXggaGFuZGxpbmcg
b2YgdGhlIENTU0FnZW50LnNldFN0eWxlU2hlZXRUZXh0KCkgcmVzdWx0cyBpbiBDU1NTdHlsZU1v
ZGVsLmpzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01
NjMxMAorCisgICAgICAgIEluc3RlYWQgb2Ygc3R5bGVzaGVldCBpZHMsIENTU0FnZW50LmdldEFs
bFN0eWxlU2hlZXRzKCkgbm93IHJldHVybnMgbWV0YWluZm8gb2JqZWN0cyBjb250YWluaW5nCisg
ICAgICAgICJzdHlsZVNoZWV0SWQiLCAic291cmNlVVJMIiwgImRpc2FibGVkIiwgYW5kICJ0aXRs
ZSIgZmllbGRzLiBUaGUgbGF0dGVyIHRocmVlIGFyZSBub3QgcmV0dXJuZWQKKyAgICAgICAgYnkg
Q1NTQWdlbnQuZ2V0U3R5bGVTaGVldCgpIGFueW1vcmUuCisKKyAgICAgICAgKiBpbnNwZWN0b3Iv
SW5zcGVjdG9yLmlkbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ1NTQWdlbnQ6OmdldEFsbFN0eWxlU2hlZXRz
KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuaDoKKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JTdHlsZVNoZWV0OjpidWlsZE9iamVjdEZvclN0eWxlU2hlZXQpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yU3R5bGVTaGVldDo6YnVpbGRPYmplY3RGb3JTdHlsZVNoZWV0SW5mbyk6
CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuaDoKKyAgICAgICAgKiBp
bnNwZWN0b3IvZnJvbnQtZW5kL0F1ZGl0UnVsZXMuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
QXVkaXRSdWxlcy5VbnVzZWRDc3NSdWxlLnByb3RvdHlwZS5kb1J1bi5zdHlsZVNoZWV0Q2FsbGJh
Y2spOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuVW51c2VkQ3NzUnVsZS5wcm90
b3R5cGUuZG9SdW4uYWxsU3R5bGVzQ2FsbGJhY2spOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkF1
ZGl0UnVsZXMuVW51c2VkQ3NzUnVsZS5wcm90b3R5cGUuZG9SdW4pOgorICAgICAgICAqIGluc3Bl
Y3Rvci9mcm9udC1lbmQvQ1NTU3R5bGVNb2RlbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5D
U1NTdHlsZU1vZGVsLnByb3RvdHlwZS5fc3R5bGVTaGVldENoYW5nZWQuY2FsbGJhY2spOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwucHJvdG90eXBlLl9zdHlsZVNoZWV0Q2hh
bmdlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbC5wcm90b3R5cGUuX29u
UmV2ZXJ0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NTdHlsZVNoZWV0KToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5DU1NTdHlsZVNoZWV0LnByb3RvdHlwZS5zZXRUZXh0KToKKwogMjAxMS0w
My0xMiAgUGF2ZWwgUG9kaXZpbG92ICA8cG9kaXZpbG92QGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBZdXJ5IFNlbWlraGF0c2t5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3Rvci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yLmlkbAppbmRleCAwNjNlM2U5Li45NDM0MzJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yLmlkbApAQCAtMTc3LDcgKzE3Nyw3IEBAIG1vZHVsZSBjb3JlIHsKICAgICAg
ICAgdm9pZCBnZXRTdHlsZXNGb3JOb2RlKGluIGxvbmcgbm9kZUlkLCBvdXQgVmFsdWUgc3R5bGVz
KTsKICAgICAgICAgdm9pZCBnZXRDb21wdXRlZFN0eWxlRm9yTm9kZShpbiBsb25nIG5vZGVJZCwg
b3V0IFZhbHVlIHN0eWxlKTsKICAgICAgICAgdm9pZCBnZXRJbmxpbmVTdHlsZUZvck5vZGUoaW4g
bG9uZyBub2RlSWQsIG91dCBWYWx1ZSBzdHlsZSk7Ci0gICAgICAgIHZvaWQgZ2V0QWxsU3R5bGVz
KG91dCBBcnJheSBzdHlsZVNoZWV0SWRzKTsKKyAgICAgICAgdm9pZCBnZXRBbGxTdHlsZVNoZWV0
cyhvdXQgQXJyYXkgc3R5bGVTaGVldEluZm9zKTsKICAgICAgICAgdm9pZCBnZXRTdHlsZVNoZWV0
KGluIFN0cmluZyBzdHlsZVNoZWV0SWQsIG91dCBWYWx1ZSBzdHlsZVNoZWV0KTsKICAgICAgICAg
dm9pZCBnZXRTdHlsZVNoZWV0VGV4dChpbiBTdHJpbmcgc3R5bGVTaGVldElkLCBvdXQgU3RyaW5n
IHVybCwgb3V0IFN0cmluZyB0ZXh0KTsKICAgICAgICAgdm9pZCBzZXRTdHlsZVNoZWV0VGV4dChp
biBTdHJpbmcgc3R5bGVTaGVldElkLCBpbiBTdHJpbmcgdGV4dCwgb3V0IGJvb2xlYW4gc3VjY2Vz
cyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdl
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcApp
bmRleCBiOTYwNzFkLi4wZjBjMGE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JDU1NBZ2VudC5jcHAKQEAgLTEwNCwxNyArMTA0LDIxIEBACiAvLyAgICBzZWxlY3Rv
clJhbmdlOiB7IHN0YXJ0OiA8bnVtYmVyPiwgZW5kOiA8bnVtYmVyPiB9IC8vIE9wdGlvbmFsIC0g
Zm9yIHNvdXJjZS1iYXNlZCBydWxlcyBvbmx5CiAvLyB9CiAvLworLy8gY3NzU3R5bGVTaGVldElu
Zm8gPSB7CisvLyAgICBzdHlsZVNoZWV0SWQgOiA8bnVtYmVyPgorLy8gICAgc291cmNlVVJMICAg
IDogPHN0cmluZz4KKy8vICAgIHRpdGxlICAgICAgICA6IDxzdHJpbmc+CisvLyAgICBkaXNhYmxl
ZCAgICAgOiA8Ym9vbGVhbj4KKy8vIH0KKy8vCiAvLyBjc3NTdHlsZVNoZWV0ID0gewotLy8gICAg
c3R5bGVTaGVldElkICAgOiA8bnVtYmVyPgotLy8gICAgc291cmNlVVJMICAgICAgOiA8c3RyaW5n
PgotLy8gICAgdGl0bGUgICAgICAgICAgOiA8c3RyaW5nPgotLy8gICAgZGlzYWJsZWQgICAgICAg
OiA8Ym9vbGVhbj4KLS8vICAgIHJ1bGVzICAgICAgICAgIDogWwotLy8gICAgICAgICAgICAgICAg
ICAgICAgICAgI2Nzc1J1bGUsCi0vLyAgICAgICAgICAgICAgICAgICAgICAgICAuLi4KLS8vICAg
ICAgICAgICAgICAgICAgICAgICAgICNjc3NSdWxlCi0vLyAgICAgICAgICAgICAgICAgICAgIF0K
LS8vICAgIHRleHQgICAgICAgICAgIDogPHN0cmluZz4gLy8gT3B0aW9uYWwgLSB3aGVuZXZlciB0
aGUgdGV4dCBpcyBhdmFpbGFibGUgZm9yIGEgdGV4dC1iYXNlZCBzdHlsZXNoZWV0CisvLyAgICBz
dHlsZVNoZWV0SWQgOiA8bnVtYmVyPgorLy8gICAgcnVsZXMgICAgICAgIDogWworLy8gICAgICAg
ICAgICAgICAgICAgICAgICNjc3NSdWxlLAorLy8gICAgICAgICAgICAgICAgICAgICAgIC4uLgor
Ly8gICAgICAgICAgICAgICAgICAgICAgICNjc3NSdWxlCisvLyAgICAgICAgICAgICAgICAgICBd
CisvLyAgICB0ZXh0ICAgICAgICAgOiA8c3RyaW5nPiAvLyBPcHRpb25hbCAtIHdoZW5ldmVyIHRo
ZSB0ZXh0IGlzIGF2YWlsYWJsZSBmb3IgYSB0ZXh0LWJhc2VkIHN0eWxlc2hlZXQKIC8vIH0KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMjUwLDcgKzI1NCw3IEBAIHZvaWQgSW5zcGVjdG9yQ1NT
QWdlbnQ6OmdldENvbXB1dGVkU3R5bGVGb3JOb2RlKEVycm9yU3RyaW5nKiwgbG9uZyBub2RlSWQs
IFJlZlB0CiAgICAgKnN0eWxlID0gaW5zcGVjdG9yU3R5bGUtPmJ1aWxkT2JqZWN0Rm9yU3R5bGUo
KTsKIH0KIAotdm9pZCBJbnNwZWN0b3JDU1NBZ2VudDo6Z2V0QWxsU3R5bGVzKEVycm9yU3RyaW5n
KiwgUmVmUHRyPEluc3BlY3RvckFycmF5Piogc3R5bGVzKQordm9pZCBJbnNwZWN0b3JDU1NBZ2Vu
dDo6Z2V0QWxsU3R5bGVTaGVldHMoRXJyb3JTdHJpbmcqLCBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+
KiBzdHlsZUluZm9zKQogewogICAgIFZlY3RvcjxEb2N1bWVudCo+IGRvY3VtZW50cyA9IG1fZG9t
QWdlbnQtPmRvY3VtZW50cygpOwogICAgIGZvciAoVmVjdG9yPERvY3VtZW50Kj46Oml0ZXJhdG9y
IGl0ID0gZG9jdW1lbnRzLmJlZ2luKCk7IGl0ICE9IGRvY3VtZW50cy5lbmQoKTsgKytpdCkgewpA
QCAtMjU5LDcgKzI2Myw3IEBAIHZvaWQgSW5zcGVjdG9yQ1NTQWdlbnQ6OmdldEFsbFN0eWxlcyhF
cnJvclN0cmluZyosIFJlZlB0cjxJbnNwZWN0b3JBcnJheT4qIHN0eWxlCiAgICAgICAgICAgICBT
dHlsZVNoZWV0KiBzdHlsZVNoZWV0ID0gbGlzdC0+aXRlbShpKTsKICAgICAgICAgICAgIGlmIChz
dHlsZVNoZWV0LT5pc0NTU1N0eWxlU2hlZXQoKSkgewogICAgICAgICAgICAgICAgIEluc3BlY3Rv
clN0eWxlU2hlZXQqIGluc3BlY3RvclN0eWxlU2hlZXQgPSBiaW5kU3R5bGVTaGVldChzdGF0aWNf
Y2FzdDxDU1NTdHlsZVNoZWV0Kj4oc3R5bGVTaGVldCkpOwotICAgICAgICAgICAgICAgICgqc3R5
bGVzKS0+cHVzaFN0cmluZyhpbnNwZWN0b3JTdHlsZVNoZWV0LT5pZCgpKTsKKyAgICAgICAgICAg
ICAgICAoKnN0eWxlSW5mb3MpLT5wdXNoT2JqZWN0KGluc3BlY3RvclN0eWxlU2hlZXQtPmJ1aWxk
T2JqZWN0Rm9yU3R5bGVTaGVldEluZm8oKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAg
ICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdl
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5oCmluZGV4
IDRlM2Y1N2EuLjgxYjg1NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JDU1NBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JDU1NBZ2VudC5oCkBAIC02NCw3ICs2NCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGdldFN0eWxl
c0Zvck5vZGUoRXJyb3JTdHJpbmcqIGVycm9yLCBsb25nIG5vZGVJZCwgUmVmUHRyPEluc3BlY3Rv
clZhbHVlPiogcmVzdWx0KTsKICAgICB2b2lkIGdldElubGluZVN0eWxlRm9yTm9kZShFcnJvclN0
cmluZyogZXJyb3IsIGxvbmcgbm9kZUlkLCBSZWZQdHI8SW5zcGVjdG9yVmFsdWU+KiBzdHlsZSk7
CiAgICAgdm9pZCBnZXRDb21wdXRlZFN0eWxlRm9yTm9kZShFcnJvclN0cmluZyogZXJyb3IsIGxv
bmcgbm9kZUlkLCBSZWZQdHI8SW5zcGVjdG9yVmFsdWU+KiBzdHlsZSk7Ci0gICAgdm9pZCBnZXRB
bGxTdHlsZXMoRXJyb3JTdHJpbmcqIGVycm9yLCBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+KiBzdHls
ZXMpOworICAgIHZvaWQgZ2V0QWxsU3R5bGVTaGVldHMoRXJyb3JTdHJpbmcqIGVycm9yLCBSZWZQ
dHI8SW5zcGVjdG9yQXJyYXk+KiBzdHlsZVNoZWV0TWV0YWluZm9zKTsKICAgICB2b2lkIGdldFN0
eWxlU2hlZXQoRXJyb3JTdHJpbmcqIGVycm9yLCBjb25zdCBTdHJpbmcmIHN0eWxlU2hlZXRJZCwg
UmVmUHRyPEluc3BlY3RvclZhbHVlPiogcmVzdWx0KTsKICAgICB2b2lkIGdldFN0eWxlU2hlZXRU
ZXh0KEVycm9yU3RyaW5nKiBlcnJvciwgY29uc3QgU3RyaW5nJiBzdHlsZVNoZWV0SWQsIFN0cmlu
ZyogdXJsLCBTdHJpbmcqIHJlc3VsdCk7CiAgICAgdm9pZCBzZXRTdHlsZVNoZWV0VGV4dChFcnJv
clN0cmluZyogZXJyb3IsIGNvbnN0IFN0cmluZyYgc3R5bGVTaGVldElkLCBjb25zdCBTdHJpbmcm
IHRleHQsIGJvb2wqIHN1Y2Nlc3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvclN0eWxlU2hlZXQuY3BwCmluZGV4IDc3Y2NkZTAuLjEzNDJkZDUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAKQEAgLTcwOCw5
ICs3MDgsNyBAQCBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gSW5zcGVjdG9yU3R5bGVTaGVl
dDo6YnVpbGRPYmplY3RGb3JTdHlsZVNoZWV0KCkKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBS
ZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiByZXN1bHQgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgp
OwotICAgIHJlc3VsdC0+c2V0Qm9vbGVhbigiZGlzYWJsZWQiLCBzdHlsZVNoZWV0LT5kaXNhYmxl
ZCgpKTsKLSAgICByZXN1bHQtPnNldFN0cmluZygic291cmNlVVJMIiwgZmluYWxVUkwoKSk7Ci0g
ICAgcmVzdWx0LT5zZXRTdHJpbmcoInRpdGxlIiwgc3R5bGVTaGVldC0+dGl0bGUoKSk7CisgICAg
cmVzdWx0LT5zZXRTdHJpbmcoInN0eWxlU2hlZXRJZCIsIGlkKCkpOwogICAgIFJlZlB0cjxDU1NS
dWxlTGlzdD4gY3NzUnVsZUxpc3QgPSBDU1NSdWxlTGlzdDo6Y3JlYXRlKHN0eWxlU2hlZXQsIHRy
dWUpOwogICAgIFJlZlB0cjxJbnNwZWN0b3JBcnJheT4gY3NzUnVsZXMgPSBidWlsZEFycmF5Rm9y
UnVsZUxpc3QoY3NzUnVsZUxpc3QuZ2V0KCkpOwogICAgIHJlc3VsdC0+c2V0QXJyYXkoInJ1bGVz
IiwgY3NzUnVsZXMucmVsZWFzZSgpKTsKQEAgLTcyMCw4ICs3MTgsMjAgQEAgUGFzc1JlZlB0cjxJ
bnNwZWN0b3JPYmplY3Q+IEluc3BlY3RvclN0eWxlU2hlZXQ6OmJ1aWxkT2JqZWN0Rm9yU3R5bGVT
aGVldCgpCiAgICAgaWYgKHN1Y2Nlc3MpCiAgICAgICAgIHJlc3VsdC0+c2V0U3RyaW5nKCJ0ZXh0
Iiwgc3R5bGVTaGVldFRleHQpOwogCi0gICAgcmVzdWx0LT5zZXRTdHJpbmcoInN0eWxlU2hlZXRJ
ZCIsIGlkKCkpOworICAgIHJldHVybiByZXN1bHQucmVsZWFzZSgpOworfQogCitQYXNzUmVmUHRy
PEluc3BlY3Rvck9iamVjdD4gSW5zcGVjdG9yU3R5bGVTaGVldDo6YnVpbGRPYmplY3RGb3JTdHls
ZVNoZWV0SW5mbygpCit7CisgICAgQ1NTU3R5bGVTaGVldCogc3R5bGVTaGVldCA9IHBhZ2VTdHls
ZVNoZWV0KCk7CisgICAgaWYgKCFzdHlsZVNoZWV0KQorICAgICAgICByZXR1cm4gMDsKKworICAg
IFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJlc3VsdCA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRl
KCk7CisgICAgcmVzdWx0LT5zZXRTdHJpbmcoInN0eWxlU2hlZXRJZCIsIGlkKCkpOworICAgIHJl
c3VsdC0+c2V0Qm9vbGVhbigiZGlzYWJsZWQiLCBzdHlsZVNoZWV0LT5kaXNhYmxlZCgpKTsKKyAg
ICByZXN1bHQtPnNldFN0cmluZygic291cmNlVVJMIiwgZmluYWxVUkwoKSk7CisgICAgcmVzdWx0
LT5zZXRTdHJpbmcoInRpdGxlIiwgc3R5bGVTaGVldC0+dGl0bGUoKSk7CiAgICAgcmV0dXJuIHJl
c3VsdC5yZWxlYXNlKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JTdHlsZVNoZWV0LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yU3R5bGVTaGVldC5oCmluZGV4IDkyMzE4Y2IuLjMwNDhiMWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuaApAQCAtMTY4LDYgKzE2OCw3IEBA
IHB1YmxpYzoKICAgICBDU1NTdHlsZVJ1bGUqIGFkZFJ1bGUoY29uc3QgU3RyaW5nJiBzZWxlY3Rv
cik7CiAgICAgQ1NTU3R5bGVSdWxlKiBydWxlRm9ySWQoY29uc3QgSW5zcGVjdG9yQ1NTSWQmKSBj
b25zdDsKICAgICBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gYnVpbGRPYmplY3RGb3JTdHls
ZVNoZWV0KCk7CisgICAgUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGJ1aWxkT2JqZWN0Rm9y
U3R5bGVTaGVldEluZm8oKTsKICAgICBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gYnVpbGRP
YmplY3RGb3JSdWxlKENTU1N0eWxlUnVsZSopOwogICAgIFBhc3NSZWZQdHI8SW5zcGVjdG9yT2Jq
ZWN0PiBidWlsZE9iamVjdEZvclN0eWxlKENTU1N0eWxlRGVjbGFyYXRpb24qKTsKICAgICBib29s
IHNldFByb3BlcnR5VGV4dChjb25zdCBJbnNwZWN0b3JDU1NJZCYsIHVuc2lnbmVkIHByb3BlcnR5
SW5kZXgsIGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBvdmVyd3JpdGUpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BdWRpdFJ1bGVzLmpzIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BdWRpdFJ1bGVzLmpzCmluZGV4IGI2MTQyNTYu
LmYzZTI4ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
QXVkaXRSdWxlcy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0F1
ZGl0UnVsZXMuanMKQEAgLTM3NywyNCArMzc3LDI4IEBAIFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVz
LlVudXNlZENzc1J1bGUucHJvdG90eXBlID0gewogICAgICAgICAgICAgV2ViSW5zcGVjdG9yLkF1
ZGl0UnVsZXMuZXZhbHVhdGVJblRhcmdldFdpbmRvdyhyb3V0aW5lLCBbc2VsZWN0b3JzXSwgc2Vs
ZWN0b3JzQ2FsbGJhY2suYmluZChudWxsLCBjYWxsYmFjaywgc3R5bGVTaGVldHMsIHRlc3RlZFNl
bGVjdG9ycykpOwogICAgICAgICB9CiAKLSAgICAgICAgZnVuY3Rpb24gc3R5bGVTaGVldENhbGxi
YWNrKHN0eWxlU2hlZXRzLCBjb250aW51YXRpb24sIHN0eWxlU2hlZXQpCisgICAgICAgIGZ1bmN0
aW9uIHN0eWxlU2hlZXRDYWxsYmFjayhzdHlsZVNoZWV0cywgc291cmNlVVJMLCBjb250aW51YXRp
b24sIHN0eWxlU2hlZXQpCiAgICAgICAgIHsKLSAgICAgICAgICAgIGlmIChzdHlsZVNoZWV0KQor
ICAgICAgICAgICAgaWYgKHN0eWxlU2hlZXQpIHsKKyAgICAgICAgICAgICAgICBzdHlsZVNoZWV0
LnNvdXJjZVVSTCA9IHNvdXJjZVVSTDsKICAgICAgICAgICAgICAgICBzdHlsZVNoZWV0cy5wdXNo
KHN0eWxlU2hlZXQpOworICAgICAgICAgICAgfQogICAgICAgICAgICAgaWYgKGNvbnRpbnVhdGlv
bikKICAgICAgICAgICAgICAgICBjb250aW51YXRpb24oc3R5bGVTaGVldHMpOwogICAgICAgICB9
CiAKLSAgICAgICAgZnVuY3Rpb24gYWxsU3R5bGVzQ2FsbGJhY2soZXJyb3IsIHN0eWxlU2hlZXRJ
ZHMpCisgICAgICAgIGZ1bmN0aW9uIGFsbFN0eWxlc0NhbGxiYWNrKGVycm9yLCBzdHlsZVNoZWV0
SW5mb3MpCiAgICAgICAgIHsKLSAgICAgICAgICAgIGlmIChlcnJvciB8fCAhc3R5bGVTaGVldElk
cyB8fCAhc3R5bGVTaGVldElkcy5sZW5ndGgpCisgICAgICAgICAgICBpZiAoZXJyb3IgfHwgIXN0
eWxlU2hlZXRJbmZvcyB8fCAhc3R5bGVTaGVldEluZm9zLmxlbmd0aCkKICAgICAgICAgICAgICAg
ICByZXR1cm4gZXZhbENhbGxiYWNrKFtdKTsKICAgICAgICAgICAgIHZhciBzdHlsZVNoZWV0cyA9
IFtdOwotICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdHlsZVNoZWV0SWRzLmxlbmd0
aDsgKytpKQotICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5DU1NTdHlsZVNoZWV0LmNyZWF0
ZUZvcklkKHN0eWxlU2hlZXRJZHNbaV0sIHN0eWxlU2hlZXRDYWxsYmFjay5iaW5kKG51bGwsIHN0
eWxlU2hlZXRzLCBpID09IHN0eWxlU2hlZXRJZHMubGVuZ3RoIC0gMSA/IGV2YWxDYWxsYmFjayA6
IG51bGwpKTsKKyAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3R5bGVTaGVldEluZm9z
Lmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgdmFyIGluZm8gPSBzdHlsZVNoZWV0SW5m
b3NbaV07CisgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLkNTU1N0eWxlU2hlZXQuY3JlYXRl
Rm9ySWQoaW5mby5zdHlsZVNoZWV0SWQsIHN0eWxlU2hlZXRDYWxsYmFjay5iaW5kKG51bGwsIHN0
eWxlU2hlZXRzLCBpbmZvLnNvdXJjZVVSTCwgaSA9PSBzdHlsZVNoZWV0SW5mb3MubGVuZ3RoIC0g
MSA/IGV2YWxDYWxsYmFjayA6IG51bGwpKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogCi0g
ICAgICAgIENTU0FnZW50LmdldEFsbFN0eWxlcyhhbGxTdHlsZXNDYWxsYmFjayk7CisgICAgICAg
IENTU0FnZW50LmdldEFsbFN0eWxlU2hlZXRzKGFsbFN0eWxlc0NhbGxiYWNrKTsKICAgICB9CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ1NTU3R5
bGVNb2RlbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ1NTU3R5bGVN
b2RlbC5qcwppbmRleCA0YWUxMzI3Li4yZDdlNzkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NTU1N0eWxlTW9kZWwuanMKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9DU1NTdHlsZU1vZGVsLmpzCkBAIC0xNjgsOCArMTY4LDEw
IEBAIFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAg
IGlmIChlcnJvcikKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB2YXIgcmVz
b3VyY2UgPSBXZWJJbnNwZWN0b3IucmVzb3VyY2VGb3JVUkwoaHJlZik7Ci0gICAgICAgICAgICBp
ZiAocmVzb3VyY2UgJiYgcmVzb3VyY2UudHlwZSA9PT0gV2ViSW5zcGVjdG9yLlJlc291cmNlLlR5
cGUuU3R5bGVzaGVldCkKKyAgICAgICAgICAgIGlmIChyZXNvdXJjZSAmJiByZXNvdXJjZS50eXBl
ID09PSBXZWJJbnNwZWN0b3IuUmVzb3VyY2UuVHlwZS5TdHlsZXNoZWV0KSB7CiAgICAgICAgICAg
ICAgICAgcmVzb3VyY2Uuc2V0Q29udGVudChjb250ZW50LCB0aGlzLl9vblJldmVydC5iaW5kKHRo
aXMsIHN0eWxlU2hlZXRJZCkpOworICAgICAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRv
TGlzdGVuZXJzKCJzdHlsZXNoZWV0IGNoYW5nZWQiKTsKKyAgICAgICAgICAgIH0KICAgICAgICAg
fQogICAgICAgICBDU1NBZ2VudC5nZXRTdHlsZVNoZWV0VGV4dChzdHlsZVNoZWV0SWQsIGNhbGxi
YWNrLmJpbmQodGhpcykpOwogICAgIH0sCkBAIC0xODEsNyArMTgzLDYgQEAgV2ViSW5zcGVjdG9y
LkNTU1N0eWxlTW9kZWwucHJvdG90eXBlID0gewogICAgICAgICAgICAgaWYgKGVycm9yKQogICAg
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIHRoaXMuX3N0eWxlU2hlZXRDaGFuZ2Vk
KHN0eWxlU2hlZXRJZCwgdHJ1ZSk7Ci0gICAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xp
c3RlbmVycygic3R5bGVzaGVldCBjaGFuZ2VkIik7CiAgICAgICAgIH0KICAgICAgICAgQ1NTQWdl
bnQuc2V0U3R5bGVTaGVldFRleHQoc3R5bGVTaGVldElkLCBjb250ZW50VG9SZXZlcnRUbywgY2Fs
bGJhY2suYmluZCh0aGlzKSk7CiAgICAgfQpAQCAtNTM3LDkgKzUzOCw2IEBAIFdlYkluc3BlY3Rv
ci5DU1NQcm9wZXJ0eS5wcm90b3R5cGUgPSB7CiBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVTaGVldCA9
IGZ1bmN0aW9uKHBheWxvYWQpCiB7CiAgICAgdGhpcy5pZCA9IHBheWxvYWQuc3R5bGVTaGVldElk
OwotICAgIHRoaXMuc291cmNlVVJMID0gcGF5bG9hZC5zb3VyY2VVUkw7Ci0gICAgdGhpcy50aXRs
ZSA9IHBheWxvYWQudGl0bGU7Ci0gICAgdGhpcy5kaXNhYmxlZCA9IHBheWxvYWQuZGlzYWJsZWQ7
CiAgICAgdGhpcy5ydWxlcyA9IFtdOwogICAgIHRoaXMuc3R5bGVzID0ge307CiAgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCBwYXlsb2FkLnJ1bGVzLmxlbmd0aDsgKytpKSB7CkBAIC01NzIsMTQgKzU3
MCwxMiBAQCBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVTaGVldC5wcm90b3R5cGUgPSB7CiAKICAgICBz
ZXRUZXh0OiBmdW5jdGlvbihuZXdUZXh0LCB1c2VyQ2FsbGJhY2spCiAgICAgewotICAgICAgICBm
dW5jdGlvbiBjYWxsYmFjayhlcnJvciwgc3R5bGVTaGVldFBheWxvYWQpCisgICAgICAgIGZ1bmN0
aW9uIGNhbGxiYWNrKGVycm9yLCBpc0NoYW5nZVN1Y2Nlc3NmdWwpCiAgICAgICAgIHsKLSAgICAg
ICAgICAgIGlmIChlcnJvciB8fCAhc3R5bGVTaGVldFBheWxvYWQpCi0gICAgICAgICAgICAgICAg
dXNlckNhbGxiYWNrKG51bGwpOwotICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAg
dXNlckNhbGxiYWNrKG5ldyBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVTaGVldChzdHlsZVNoZWV0UGF5
bG9hZCkpOworICAgICAgICAgICAgaWYgKHVzZXJDYWxsYmFjaykKKyAgICAgICAgICAgICAgICB1
c2VyQ2FsbGJhY2soaXNDaGFuZ2VTdWNjZXNzZnVsKTsKKyAgICAgICAgICAgIGlmIChpc0NoYW5n
ZVN1Y2Nlc3NmdWwpCiAgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmNzc01vZGVsLl9zdHls
ZVNoZWV0Q2hhbmdlZCh0aGlzLmlkLCB0cnVlKTsKLSAgICAgICAgICAgIH0KICAgICAgICAgfQog
CiAgICAgICAgIENTU0FnZW50LnNldFN0eWxlU2hlZXRUZXh0KHRoaXMuaWQsIG5ld1RleHQsIGNh
bGxiYWNrLmJpbmQodGhpcykpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85832</attachid>
            <date>2011-03-15 11:35:40 -0700</date>
            <delta_ts>2011-03-15 11:44:58 -0700</delta_ts>
            <desc>[PATCH] Style fixed</desc>
            <filename>setstylesheettext.patch</filename>
            <type>text/plain</type>
            <size>23983</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">Y29tbWl0IDkzYmUyNmQ4ZmI1NTA2MDNmNDdiZDQ4NjJhZTNkMWZiNTVmYjE2ZDMKQXV0aG9yOiBB
bGV4YW5kZXIgUGF2bG92IDxhcGF2bG92QGNocm9taXVtLm9yZz4KRGF0ZTogICBNb24gTWFyIDE0
IDE4OjI0OjQwIDIwMTEgKzAzMDAKCiAgICBGaXgKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYmI4ZTU4NC4uN2U2YTJmNCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDExLTAzLTE1ICBBbGV4YW5kZXIgUGF2bG92ICA8YXBh
dmxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogRml4IGhhbmRsaW5nIG9mIHRoZSBDU1NBZ2VudC5z
ZXRTdHlsZVNoZWV0VGV4dCgpIHJlc3VsdHMgaW4gQ1NTU3R5bGVNb2RlbC5qcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTYzMTAKKworICAgICAgICAq
IGluc3BlY3Rvci9zdHlsZXMvZ2V0LXNldC1zdHlsZXNoZWV0LXRleHQtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL2dldC1zZXQtc3R5bGVzaGVldC10ZXh0
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMvcmVzb3VyY2VzL2dldC1z
ZXQtc3R5bGVzaGVldC10ZXh0LmNzczogQWRkZWQuCisgICAgICAgIChib2R5KToKKyAgICAgICAg
KC8qIGNvbW1lbnQgYmVmb3JlIHNlbGVjdG9yICovYm9keS5tYWluMS8qIGNvbW1lbnQgYWZ0ZXIg
c2VsZWN0b3IgKi8pOgorICAgICAgICAoYm9keS5tYWluMik6CisgICAgICAgICogaW5zcGVjdG9y
L3N0eWxlcy9zdHlsZXMtbmV3LUFQSS5odG1sOgorCiAyMDExLTAzLTEyICBQYXZlbCBQb2Rpdmls
b3YgIDxwb2Rpdmlsb3ZAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFl1cnkg
U2VtaWtoYXRza3kuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL2dl
dC1zZXQtc3R5bGVzaGVldC10ZXh0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9zdHlsZXMvZ2V0LXNldC1zdHlsZXNoZWV0LXRleHQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjZiNzUzNTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL2dldC1zZXQtc3R5bGVzaGVldC10ZXh0LWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDQwIEBACitUZXN0cyB0aGF0IFdlYkluc3BlY3Rvci5DU1NTdHlsZVNo
ZWV0IG1ldGhvZHMgd29yayBhcyBleHBlY3RlZC4KKworSW5zcGVjdCBNZQorCisKK1J1bm5pbmc6
IHRlc3RTZXRUZXh0Cis9PT0gT3JpZ2luYWwgc3R5bGVzaGVldCB0ZXh0OiA9PT0KK2JvZHkgewor
ICAgIGZvbnQtc2l6ZTogMTJweDsKKyAgICBmb286IGJhciAhCisKKyAgICBpbXBvcnRhbnQgLyog
IWltcG9ydGFudCBwcm9wZXJ0eSBub3QgcmVjb2duaXplZCBieSBXZWJDb3JlICovOworICAgIGhl
aWdodDogMTAwJSAhaW1wb3J0YW50OworICAgIGNvbG9yejogIiFpbXBvcnRhbnQiOworICAgIGlt
cG9ydGFudDohaW1wb3J0YW50OworICAgIGNvbG9yOiAiYmFkY29sb3IiICEgaW1wb3J0YW50IC8q
IGdvb2QgcHJvcGVydHkgd2l0aCBzdHJhbmdlIHZhbHVlICovOworfQorCisvKiBjb21tZW50IGJl
Zm9yZSBzZWxlY3RvciAqL2JvZHkubWFpbjEvKiBjb21tZW50IGFmdGVyIHNlbGVjdG9yICovey8q
IGNvbW1lbnQgKi9jb2xvcjogI0YwMEJBQTt6b286bW9vIC8qIG5vdCBhbiAhaW1wb3J0YW50IHVu
cmVjb2duaXplZCBwcm9wZXJ0eSAqL30vKiBjb21tZW50ICovCisKK2JvZHkubWFpbjJ7YmFja2dy
b3VuZDogZ3JlZW4gLyogdmFsdWUgIWltcG9ydGFudCBjb21tZW50ICovICFpbXBvcnRhbnQgLyog
bm8gc2VtaWNvbG9uLCB2ZXJ5ICFpbXBvcnRhbnQgKi99CisKKworUnVubmluZzogdGVzdE5ld0Vs
ZW1lbnRTdHlsZXMKKz09PSBNYXRjaGVkIHJ1bGVzIGZvciBoMSBhZnRlciBzZXRUZXh0KCkgPT09
CisKK3J1bGUKK2gxOiBbdXNlci1hZ2VudF0KK1snZGlzcGxheSc6J2Jsb2NrJ10gQFt1bmRlZmlu
ZWQtdW5kZWZpbmVkXSBzdHlsZQorWydmb250LXNpemUnOicyZW0nXSBAW3VuZGVmaW5lZC11bmRl
ZmluZWRdIHN0eWxlCitbJy13ZWJraXQtbWFyZ2luLWJlZm9yZSc6JzAuNjdlbSddIEBbdW5kZWZp
bmVkLXVuZGVmaW5lZF0gc3R5bGUKK1snLXdlYmtpdC1tYXJnaW4tYWZ0ZXInOicwLjY3ZW0nXSBA
W3VuZGVmaW5lZC11bmRlZmluZWRdIHN0eWxlCitbJy13ZWJraXQtbWFyZ2luLXN0YXJ0JzonMHB4
J10gQFt1bmRlZmluZWQtdW5kZWZpbmVkXSBzdHlsZQorWyctd2Via2l0LW1hcmdpbi1lbmQnOicw
cHgnXSBAW3VuZGVmaW5lZC11bmRlZmluZWRdIHN0eWxlCitbJ2ZvbnQtd2VpZ2h0JzonYm9sZCdd
IEBbdW5kZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUKKworcnVsZQoraDE6IFtdCitbJ2NvbG9yJzon
cmVkJ10gQFsxLTEyXSBhY3RpdmUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L3N0eWxlcy9nZXQtc2V0LXN0eWxlc2hlZXQtdGV4dC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL3N0eWxlcy9nZXQtc2V0LXN0eWxlc2hlZXQtdGV4dC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NzU1CmluZGV4IDAwMDAwMDAuLmVjZmM0ZTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3Ivc3R5bGVzL2dldC1zZXQtc3R5bGVzaGVldC10ZXh0Lmh0bWwKQEAgLTAsMCAr
MSwxMTcgQEAKKzxodG1sPgorPGhlYWQ+CisKKzxzdHlsZT4KKworLyogQW4gaW5saW5lIHN0eWxl
c2hlZXQgKi8KK2JvZHkubWFpbnBhZ2UgeworICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKK30K
Kzwvc3R5bGU+CisKKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0icmVzb3VyY2VzL2dldC1z
ZXQtc3R5bGVzaGVldC10ZXh0LmNzcyI+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0PgorCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICB2YXIgZm91bmRTdHlsZVNoZWV0OworCisg
ICAgQ1NTQWdlbnQuZ2V0QWxsU3R5bGVTaGVldHMoZmluZFN0eWxlU2hlZXQpOworCisgICAgZnVu
Y3Rpb24gZmluZFN0eWxlU2hlZXQoZXJyb3IsIHN0eWxlU2hlZXRJbmZvcykKKyAgICB7CisgICAg
ICAgIGZ1bmN0aW9uIGNhbGxiYWNrKHN0eWxlU2hlZXQpCisgICAgICAgIHsKKyAgICAgICAgICAg
IGZvdW5kU3R5bGVTaGVldCA9IHN0eWxlU2hlZXQ7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LnJ1blRlc3RTdWl0ZShbIHRlc3RTZXRUZXh0LCB0ZXN0TmV3RWxlbWVudFN0eWxlcyBdKTsKKyAg
ICAgICAgfQorCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3R5bGVTaGVldEluZm9zLmxl
bmd0aDsgKytpKSB7CisgICAgICAgICAgICBpZiAoc3R5bGVTaGVldEluZm9zW2ldLnNvdXJjZVVS
TC5pbmRleE9mKCJnZXQtc2V0LXN0eWxlc2hlZXQtdGV4dC5jc3MiKSA+PSAwKSB7CisgICAgICAg
ICAgICAgICAgZm91bmRTdHlsZVNoZWV0SW5mbyA9IHN0eWxlU2hlZXRJbmZvc1tpXTsKKyAgICAg
ICAgICAgICAgICBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVTaGVldC5jcmVhdGVGb3JJZChmb3VuZFN0
eWxlU2hlZXRJbmZvLnN0eWxlU2hlZXRJZCwgY2FsbGJhY2spOworICAgICAgICAgICAgfQorICAg
ICAgICB9CisgICAgfQorCisgICAgZnVuY3Rpb24gdGVzdFNldFRleHQobmV4dCkKKyAgICB7Cisg
ICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKHN1Y2Nlc3MpCisgICAgICAgIHsKKyAgICAgICAgICAg
IGlmICghc3VjY2VzcykgeworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkRXJyb3Io
IkZhaWxlZCB0byBzZXQgc3R5bGVzaGVldCB0ZXh0Iik7CisgICAgICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnJ1bkFmdGVyUGVu
ZGluZ0Rpc3BhdGNoZXMobmV4dCk7CisgICAgICAgIH0KKworICAgICAgICBJbnNwZWN0b3JUZXN0
LmFkZFJlc3VsdCgiPT09IE9yaWdpbmFsIHN0eWxlc2hlZXQgdGV4dDogPT09Iik7CisgICAgICAg
IEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KGZvdW5kU3R5bGVTaGVldC5nZXRUZXh0KCkpOworICAg
ICAgICBmb3VuZFN0eWxlU2hlZXQuc2V0VGV4dCgiaDEgeyBjb2xvcjogcmVkOyB9IiwgY2FsbGJh
Y2spOworICAgIH0KKworICAgIGZ1bmN0aW9uIHRlc3ROZXdFbGVtZW50U3R5bGVzKCkKKyAgICB7
CisgICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKGVycm9yLCBzdHlsZXMpCisgICAgICAgIHsKKyAg
ICAgICAgICAgIGlmIChlcnJvcikgeworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRk
RXJyb3IoImVycm9yOiAiICsgZXJyb3IpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIj09PSBNYXRj
aGVkIHJ1bGVzIGZvciBoMSBhZnRlciBzZXRUZXh0KCkgPT09Iik7CisgICAgICAgICAgICBkdW1w
UnVsZXNBcnJheShzdHlsZXMubWF0Y2hlZENTU1J1bGVzKTsKKyAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuY29tcGxldGVUZXN0KCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBub2Rl
Q2FsbGJhY2sobm9kZSkKKyAgICAgICAgeworICAgICAgICAgICAgQ1NTQWdlbnQuZ2V0U3R5bGVz
Rm9yTm9kZShub2RlLmlkLCBjYWxsYmFjayk7CisgICAgICAgIH0KKworICAgICAgICBJbnNwZWN0
b3JUZXN0LnNlbGVjdE5vZGVXaXRoSWQoImluc3BlY3RlZCIsIG5vZGVDYWxsYmFjayk7CisgICAg
fQorCisKKyAgICAvLyBEYXRhIGR1bXBpbmcKKworICAgIGZ1bmN0aW9uIGR1bXBSdWxlc0FycmF5
KHJ1bGVzKQorICAgIHsKKyAgICAgICAgaWYgKCFydWxlcykKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBydWxlcy5sZW5ndGg7ICsraSkKKyAgICAgICAg
ICAgIGR1bXBSdWxlT3JTdHlsZShydWxlc1tpXSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gZHVt
cFJ1bGVPclN0eWxlKHJ1bGVPclN0eWxlKQorICAgIHsKKyAgICAgICAgaWYgKCFydWxlT3JTdHls
ZSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgdmFyIGlzUnVsZSA9ICEhKHJ1bGVPclN0
eWxlLnN0eWxlKTsKKyAgICAgICAgdmFyIHN0eWxlID0gaXNSdWxlID8gcnVsZU9yU3R5bGUuc3R5
bGUgOiBydWxlT3JTdHlsZTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiIpOwor
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChpc1J1bGUgPyAicnVsZSIgOiAic3R5bGUi
KTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoKGlzUnVsZSA/IChydWxlT3JTdHls
ZS5zZWxlY3RvclRleHQgKyAiOiBbIiArIHJ1bGVPclN0eWxlLm9yaWdpbiArICJdIikgOiAicmF3
IHN0eWxlIikpOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHN0eWxlLmNzc1Byb3BlcnRp
ZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIHZhciBwcm9wZXJ0eSA9IHN0eWxlLmNzc1By
b3BlcnRpZXNbaV07CisgICAgICAgICAgICBpZiAocHJvcGVydHkuc3RhdHVzICE9PSAiZGlzYWJs
ZWQiKQorICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJbJyIgKyBwcm9w
ZXJ0eS5uYW1lICsgIic6JyIgKyBwcm9wZXJ0eS52YWx1ZSArICInIiArIChwcm9wZXJ0eS5wcmlv
cml0eSA9PT0gImltcG9ydGFudCIgPyAiIGlzLWltcG9ydGFudCIgOiAiIikgKyAoKCJwYXJzZWRP
ayIgaW4gcHJvcGVydHkpID8gIiBub24tcGFyc2VkIiA6ICIiKSArIl0gQFsiICsgcHJvcGVydHku
c3RhcnRPZmZzZXQgKyAiLSIgKyBwcm9wZXJ0eS5lbmRPZmZzZXQgKyAiXSAiICsgKHByb3BlcnR5
LnN0YXR1cyB8fCAic3R5bGUiKSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlt0ZXh0PSciICsgcHJvcGVydHkudGV4dCArICInXSAi
ICsgcHJvcGVydHkuc3RhdHVzKTsKKyAgICAgICAgfQorICAgIH0KK30KKzwvc2NyaXB0PgorPC9o
ZWFkPgorCis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8cD4KK1Rlc3RzIHRoYXQgV2ViSW5z
cGVjdG9yLkNTU1N0eWxlU2hlZXQgbWV0aG9kcyB3b3JrIGFzIGV4cGVjdGVkLgorPC9wPgorPGgx
IGlkPSJpbnNwZWN0ZWQiPkluc3BlY3QgTWU8L2gxPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9yZXNvdXJjZXMvZ2V0LXNldC1zdHls
ZXNoZWV0LXRleHQuY3NzIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9yZXNvdXJjZXMv
Z2V0LXNldC1zdHlsZXNoZWV0LXRleHQuY3NzCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAw
MDAwMDAuLjQ1MjEwZTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
c3R5bGVzL3Jlc291cmNlcy9nZXQtc2V0LXN0eWxlc2hlZXQtdGV4dC5jc3MKQEAgLTAsMCArMSwx
NCBAQAorYm9keSB7CisgICAgZm9udC1zaXplOiAxMnB4OworICAgIGZvbzogYmFyICEKKworICAg
IGltcG9ydGFudCAvKiAhaW1wb3J0YW50IHByb3BlcnR5IG5vdCByZWNvZ25pemVkIGJ5IFdlYkNv
cmUgKi87CisgICAgaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7CisgICAgY29sb3J6OiAiIWltcG9y
dGFudCI7CisgICAgaW1wb3J0YW50OiFpbXBvcnRhbnQ7CisgICAgY29sb3I6ICJiYWRjb2xvciIg
ISBpbXBvcnRhbnQgLyogZ29vZCBwcm9wZXJ0eSB3aXRoIHN0cmFuZ2UgdmFsdWUgKi87Cit9CisK
Ky8qIGNvbW1lbnQgYmVmb3JlIHNlbGVjdG9yICovYm9keS5tYWluMS8qIGNvbW1lbnQgYWZ0ZXIg
c2VsZWN0b3IgKi97LyogY29tbWVudCAqL2NvbG9yOiAjRjAwQkFBO3pvbzptb28gLyogbm90IGFu
ICFpbXBvcnRhbnQgdW5yZWNvZ25pemVkIHByb3BlcnR5ICovfS8qIGNvbW1lbnQgKi8KKworYm9k
eS5tYWluMntiYWNrZ3JvdW5kOiBncmVlbiAvKiB2YWx1ZSAhaW1wb3J0YW50IGNvbW1lbnQgKi8g
IWltcG9ydGFudCAvKiBubyBzZW1pY29sb24sIHZlcnkgIWltcG9ydGFudCAqL30KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLW5ldy1BUEkuaHRtbCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLW5ldy1BUEkuaHRtbAppbmRleCAyZmU2
MmIyLi42YzkyNTEyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0
eWxlcy1uZXctQVBJLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHls
ZXMtbmV3LUFQSS5odG1sCkBAIC0xMDIsNyArMTAyLDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAg
ICAgICAgICAgICAgbG9hZEFuZER1bXBTdHlsZVNoZWV0LmJpbmQobnVsbCwgc3R5bGVTaGVldC5z
dHlsZVNoZWV0SWQsIHRlc3RfY2hhbmdlU2VsZWN0b3IpKTsKICAgICAgICAgfQogCi0gICAgICAg
IGZ1bmN0aW9uIHN0eWxlU2hlZXRJZHNMb2FkZWQoZXJyb3IsIGlkcykKKyAgICAgICAgZnVuY3Rp
b24gc3R5bGVTaGVldEluZm9zTG9hZGVkKGVycm9yLCBpbmZvcykKICAgICAgICAgewogICAgICAg
ICAgICAgaWYgKGVycm9yKSB7CiAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQoImVycm9yOiAiICsgZXJyb3IpOwpAQCAtMTEwLDEwICsxMTAsMTAgQEAgZnVuY3Rpb24gdGVz
dCgpCiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgi
Iik7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiPT09IEFsbCBzdHlsZXNo
ZWV0cyA9PT0iKTsKLSAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaWRzLmxlbmd0aDsg
KytpKQotICAgICAgICAgICAgICAgIGxvYWRBbmREdW1wU3R5bGVTaGVldChpZHNbaV0sIChpIDwg
aWRzLmxlbmd0aCAtIDEpID8gbnVsbCA6IHBhdGNoU3R5bGVTaGVldCk7CisgICAgICAgICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IGluZm9zLmxlbmd0aDsgKytpKQorICAgICAgICAgICAgICAgIGxv
YWRBbmREdW1wU3R5bGVTaGVldChpbmZvc1tpXS5zdHlsZVNoZWV0SWQsIChpIDwgaW5mb3MubGVu
Z3RoIC0gMSkgPyBudWxsIDogcGF0Y2hTdHlsZVNoZWV0KTsKICAgICAgICAgfQotICAgICAgICBD
U1NBZ2VudC5nZXRBbGxTdHlsZXMoc3R5bGVTaGVldElkc0xvYWRlZCk7CisgICAgICAgIENTU0Fn
ZW50LmdldEFsbFN0eWxlU2hlZXRzKHN0eWxlU2hlZXRJbmZvc0xvYWRlZCk7CiAgICAgfQogCiAg
ICAgZnVuY3Rpb24gdGVzdF9jaGFuZ2VTZWxlY3RvcihzdHlsZVNoZWV0KQpAQCAtMjk2LDEzICsy
OTYsMTQgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgZnVuY3Rpb24gbG9hZEFuZER1bXBTdHlsZVNo
ZWV0KHN0eWxlU2hlZXRJZCwgY29udGludWF0aW9uLCBlcnJvcikKICAgICB7CiAgICAgICAgIGlm
IChlcnJvcikgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZWNvcmQoImVycm9yOiAi
ICsgZXJyb3IpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRFcnJvcigiZXJyb3I6ICIg
KyBlcnJvcik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KKwogICAgICAgICBmdW5j
dGlvbiBzdHlsZVNoZWV0TG9hZGVkKGVycm9yLCBzdHlsZVNoZWV0KQogICAgICAgICB7CiAgICAg
ICAgICAgICBpZiAoZXJyb3IpIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJl
Y29yZCgiZXJyb3I6ICIgKyBlcnJvcik7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5h
ZGRFcnJvcigiZXJyb3I6ICIgKyBlcnJvcik7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICAgICAgfQogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiIpOwpAQCAt
MzIwLDcgKzMyMSw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogLyoKIENvdmVyZWQgQVBJIG1ldGhvZHM6
CiAgLSBnZXRTdHlsZXNGb3JOb2RlCi0gLSBnZXRBbGxTdHlsZXMKKyAtIGdldEFsbFN0eWxlU2hl
ZXRzCiAgLSBnZXRTdHlsZVNoZWV0CiAgLSBzZXRTdHlsZVNoZWV0VGV4dAogIC0gc2V0U3R5bGVE
YXRhCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKaW5kZXggZDY5NzhkNS4uODE4YzMzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDM1IEBACisyMDExLTAzLTE1ICBBbGV4YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5v
cmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2Vi
IEluc3BlY3RvcjogRml4IGhhbmRsaW5nIG9mIHRoZSBDU1NBZ2VudC5zZXRTdHlsZVNoZWV0VGV4
dCgpIHJlc3VsdHMgaW4gQ1NTU3R5bGVNb2RlbC5qcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTYzMTAKKworICAgICAgICBJbnN0ZWFkIG9mIHN0eWxl
c2hlZXQgaWRzLCBDU1NBZ2VudC5nZXRBbGxTdHlsZVNoZWV0cygpIG5vdyByZXR1cm5zIG1ldGFp
bmZvIG9iamVjdHMgY29udGFpbmluZworICAgICAgICAic3R5bGVTaGVldElkIiwgInNvdXJjZVVS
TCIsICJkaXNhYmxlZCIsIGFuZCAidGl0bGUiIGZpZWxkcy4gVGhlIGxhdHRlciB0aHJlZSBhcmUg
bm90IHJldHVybmVkCisgICAgICAgIGJ5IENTU0FnZW50LmdldFN0eWxlU2hlZXQoKSBhbnltb3Jl
LgorCisgICAgICAgIFRlc3Q6IGluc3BlY3Rvci9zdHlsZXMvZ2V0LXNldC1zdHlsZXNoZWV0LXRl
eHQuaHRtbAorCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvci5pZGw6CisgICAgICAgICog
aW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvckNTU0FnZW50OjpnZXRBbGxTdHlsZVNoZWV0cyk6CisgICAgICAgICogaW5zcGVjdG9yL0lu
c3BlY3RvckNTU0FnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hl
ZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU3R5bGVTaGVldDo6YnVpbGRPYmpl
Y3RGb3JTdHlsZVNoZWV0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclN0eWxlU2hlZXQ6
OmJ1aWxkT2JqZWN0Rm9yU3R5bGVTaGVldEluZm8pOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNw
ZWN0b3JTdHlsZVNoZWV0Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9BdWRpdFJ1
bGVzLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuVW51c2VkQ3NzUnVsZS5w
cm90b3R5cGUuZG9SdW4uc3R5bGVTaGVldENhbGxiYWNrKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5BdWRpdFJ1bGVzLlVudXNlZENzc1J1bGUucHJvdG90eXBlLmRvUnVuLmFsbFN0eWxlc0NhbGxi
YWNrKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVzLlVudXNlZENzc1J1bGUucHJv
dG90eXBlLmRvUnVuKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0NTU1N0eWxlTW9k
ZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbC5wcm90b3R5cGUuX3N0
eWxlU2hlZXRDaGFuZ2VkLmNhbGxiYWNrKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NTdHls
ZU1vZGVsLnByb3RvdHlwZS5fc3R5bGVTaGVldENoYW5nZWQpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkNTU1N0eWxlTW9kZWwucHJvdG90eXBlLl9vblJldmVydCk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuQ1NTU3R5bGVTaGVldCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTU3R5bGVTaGVl
dC5wcm90b3R5cGUuc2V0VGV4dCk6CisKIDIwMTEtMDMtMTIgIFBhdmVsIFBvZGl2aWxvdiAgPHBv
ZGl2aWxvdkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgWXVyeSBTZW1pa2hh
dHNreS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuaWRs
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5pZGwKaW5kZXggMDYzZTNlOS4u
OTQzNDMyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5pZGwKQEAgLTE3Nyw3
ICsxNzcsNyBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAgIHZvaWQgZ2V0U3R5bGVzRm9yTm9kZShp
biBsb25nIG5vZGVJZCwgb3V0IFZhbHVlIHN0eWxlcyk7CiAgICAgICAgIHZvaWQgZ2V0Q29tcHV0
ZWRTdHlsZUZvck5vZGUoaW4gbG9uZyBub2RlSWQsIG91dCBWYWx1ZSBzdHlsZSk7CiAgICAgICAg
IHZvaWQgZ2V0SW5saW5lU3R5bGVGb3JOb2RlKGluIGxvbmcgbm9kZUlkLCBvdXQgVmFsdWUgc3R5
bGUpOwotICAgICAgICB2b2lkIGdldEFsbFN0eWxlcyhvdXQgQXJyYXkgc3R5bGVTaGVldElkcyk7
CisgICAgICAgIHZvaWQgZ2V0QWxsU3R5bGVTaGVldHMob3V0IEFycmF5IHN0eWxlU2hlZXRJbmZv
cyk7CiAgICAgICAgIHZvaWQgZ2V0U3R5bGVTaGVldChpbiBTdHJpbmcgc3R5bGVTaGVldElkLCBv
dXQgVmFsdWUgc3R5bGVTaGVldCk7CiAgICAgICAgIHZvaWQgZ2V0U3R5bGVTaGVldFRleHQoaW4g
U3RyaW5nIHN0eWxlU2hlZXRJZCwgb3V0IFN0cmluZyB1cmwsIG91dCBTdHJpbmcgdGV4dCk7CiAg
ICAgICAgIHZvaWQgc2V0U3R5bGVTaGVldFRleHQoaW4gU3RyaW5nIHN0eWxlU2hlZXRJZCwgaW4g
U3RyaW5nIHRleHQsIG91dCBib29sZWFuIHN1Y2Nlc3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAKaW5kZXggYjk2MDcxZC4uMGYwYzBhOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCkBAIC0x
MDQsMTcgKzEwNCwyMSBAQAogLy8gICAgc2VsZWN0b3JSYW5nZTogeyBzdGFydDogPG51bWJlcj4s
IGVuZDogPG51bWJlcj4gfSAvLyBPcHRpb25hbCAtIGZvciBzb3VyY2UtYmFzZWQgcnVsZXMgb25s
eQogLy8gfQogLy8KKy8vIGNzc1N0eWxlU2hlZXRJbmZvID0geworLy8gICAgc3R5bGVTaGVldElk
IDogPG51bWJlcj4KKy8vICAgIHNvdXJjZVVSTCAgICA6IDxzdHJpbmc+CisvLyAgICB0aXRsZSAg
ICAgICAgOiA8c3RyaW5nPgorLy8gICAgZGlzYWJsZWQgICAgIDogPGJvb2xlYW4+CisvLyB9Cisv
LwogLy8gY3NzU3R5bGVTaGVldCA9IHsKLS8vICAgIHN0eWxlU2hlZXRJZCAgIDogPG51bWJlcj4K
LS8vICAgIHNvdXJjZVVSTCAgICAgIDogPHN0cmluZz4KLS8vICAgIHRpdGxlICAgICAgICAgIDog
PHN0cmluZz4KLS8vICAgIGRpc2FibGVkICAgICAgIDogPGJvb2xlYW4+Ci0vLyAgICBydWxlcyAg
ICAgICAgICA6IFsKLS8vICAgICAgICAgICAgICAgICAgICAgICAgICNjc3NSdWxlLAotLy8gICAg
ICAgICAgICAgICAgICAgICAgICAgLi4uCi0vLyAgICAgICAgICAgICAgICAgICAgICAgICAjY3Nz
UnVsZQotLy8gICAgICAgICAgICAgICAgICAgICBdCi0vLyAgICB0ZXh0ICAgICAgICAgICA6IDxz
dHJpbmc+IC8vIE9wdGlvbmFsIC0gd2hlbmV2ZXIgdGhlIHRleHQgaXMgYXZhaWxhYmxlIGZvciBh
IHRleHQtYmFzZWQgc3R5bGVzaGVldAorLy8gICAgc3R5bGVTaGVldElkIDogPG51bWJlcj4KKy8v
ICAgIHJ1bGVzICAgICAgICA6IFsKKy8vICAgICAgICAgICAgICAgICAgICAgICAjY3NzUnVsZSwK
Ky8vICAgICAgICAgICAgICAgICAgICAgICAuLi4KKy8vICAgICAgICAgICAgICAgICAgICAgICAj
Y3NzUnVsZQorLy8gICAgICAgICAgICAgICAgICAgXQorLy8gICAgdGV4dCAgICAgICAgIDogPHN0
cmluZz4gLy8gT3B0aW9uYWwgLSB3aGVuZXZlciB0aGUgdGV4dCBpcyBhdmFpbGFibGUgZm9yIGEg
dGV4dC1iYXNlZCBzdHlsZXNoZWV0CiAvLyB9CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTI1
MCw3ICsyNTQsNyBAQCB2b2lkIEluc3BlY3RvckNTU0FnZW50OjpnZXRDb21wdXRlZFN0eWxlRm9y
Tm9kZShFcnJvclN0cmluZyosIGxvbmcgbm9kZUlkLCBSZWZQdAogICAgICpzdHlsZSA9IGluc3Bl
Y3RvclN0eWxlLT5idWlsZE9iamVjdEZvclN0eWxlKCk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yQ1NT
QWdlbnQ6OmdldEFsbFN0eWxlcyhFcnJvclN0cmluZyosIFJlZlB0cjxJbnNwZWN0b3JBcnJheT4q
IHN0eWxlcykKK3ZvaWQgSW5zcGVjdG9yQ1NTQWdlbnQ6OmdldEFsbFN0eWxlU2hlZXRzKEVycm9y
U3RyaW5nKiwgUmVmUHRyPEluc3BlY3RvckFycmF5Piogc3R5bGVJbmZvcykKIHsKICAgICBWZWN0
b3I8RG9jdW1lbnQqPiBkb2N1bWVudHMgPSBtX2RvbUFnZW50LT5kb2N1bWVudHMoKTsKICAgICBm
b3IgKFZlY3RvcjxEb2N1bWVudCo+OjppdGVyYXRvciBpdCA9IGRvY3VtZW50cy5iZWdpbigpOyBp
dCAhPSBkb2N1bWVudHMuZW5kKCk7ICsraXQpIHsKQEAgLTI1OSw3ICsyNjMsNyBAQCB2b2lkIElu
c3BlY3RvckNTU0FnZW50OjpnZXRBbGxTdHlsZXMoRXJyb3JTdHJpbmcqLCBSZWZQdHI8SW5zcGVj
dG9yQXJyYXk+KiBzdHlsZQogICAgICAgICAgICAgU3R5bGVTaGVldCogc3R5bGVTaGVldCA9IGxp
c3QtPml0ZW0oaSk7CiAgICAgICAgICAgICBpZiAoc3R5bGVTaGVldC0+aXNDU1NTdHlsZVNoZWV0
KCkpIHsKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JTdHlsZVNoZWV0KiBpbnNwZWN0b3JTdHls
ZVNoZWV0ID0gYmluZFN0eWxlU2hlZXQoc3RhdGljX2Nhc3Q8Q1NTU3R5bGVTaGVldCo+KHN0eWxl
U2hlZXQpKTsKLSAgICAgICAgICAgICAgICAoKnN0eWxlcyktPnB1c2hTdHJpbmcoaW5zcGVjdG9y
U3R5bGVTaGVldC0+aWQoKSk7CisgICAgICAgICAgICAgICAgKCpzdHlsZUluZm9zKS0+cHVzaE9i
amVjdChpbnNwZWN0b3JTdHlsZVNoZWV0LT5idWlsZE9iamVjdEZvclN0eWxlU2hlZXRJbmZvKCkp
OwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuaAppbmRleCA0ZTNmNTdhLi5jZjI5Y2I0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuaApAQCAtNjEsMTggKzYx
LDE4IEBAIHB1YmxpYzoKICAgICB+SW5zcGVjdG9yQ1NTQWdlbnQoKTsKIAogICAgIHZvaWQgcmVz
ZXQoKTsKLSAgICB2b2lkIGdldFN0eWxlc0Zvck5vZGUoRXJyb3JTdHJpbmcqIGVycm9yLCBsb25n
IG5vZGVJZCwgUmVmUHRyPEluc3BlY3RvclZhbHVlPiogcmVzdWx0KTsKLSAgICB2b2lkIGdldElu
bGluZVN0eWxlRm9yTm9kZShFcnJvclN0cmluZyogZXJyb3IsIGxvbmcgbm9kZUlkLCBSZWZQdHI8
SW5zcGVjdG9yVmFsdWU+KiBzdHlsZSk7Ci0gICAgdm9pZCBnZXRDb21wdXRlZFN0eWxlRm9yTm9k
ZShFcnJvclN0cmluZyogZXJyb3IsIGxvbmcgbm9kZUlkLCBSZWZQdHI8SW5zcGVjdG9yVmFsdWU+
KiBzdHlsZSk7Ci0gICAgdm9pZCBnZXRBbGxTdHlsZXMoRXJyb3JTdHJpbmcqIGVycm9yLCBSZWZQ
dHI8SW5zcGVjdG9yQXJyYXk+KiBzdHlsZXMpOwotICAgIHZvaWQgZ2V0U3R5bGVTaGVldChFcnJv
clN0cmluZyogZXJyb3IsIGNvbnN0IFN0cmluZyYgc3R5bGVTaGVldElkLCBSZWZQdHI8SW5zcGVj
dG9yVmFsdWU+KiByZXN1bHQpOwotICAgIHZvaWQgZ2V0U3R5bGVTaGVldFRleHQoRXJyb3JTdHJp
bmcqIGVycm9yLCBjb25zdCBTdHJpbmcmIHN0eWxlU2hlZXRJZCwgU3RyaW5nKiB1cmwsIFN0cmlu
ZyogcmVzdWx0KTsKLSAgICB2b2lkIHNldFN0eWxlU2hlZXRUZXh0KEVycm9yU3RyaW5nKiBlcnJv
ciwgY29uc3QgU3RyaW5nJiBzdHlsZVNoZWV0SWQsIGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCog
c3VjY2Vzcyk7Ci0gICAgdm9pZCBzZXRQcm9wZXJ0eVRleHQoRXJyb3JTdHJpbmcqIGVycm9yLCBj
b25zdCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiYgc3R5bGVJZCwgbG9uZyBwcm9wZXJ0eUluZGV4
LCBjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wgb3ZlcndyaXRlLCBSZWZQdHI8SW5zcGVjdG9yVmFs
dWU+KiByZXN1bHQpOwotICAgIHZvaWQgdG9nZ2xlUHJvcGVydHkoRXJyb3JTdHJpbmcqIGVycm9y
LCBjb25zdCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiYgc3R5bGVJZCwgbG9uZyBwcm9wZXJ0eUlu
ZGV4LCBib29sIGRpc2FibGUsIFJlZlB0cjxJbnNwZWN0b3JWYWx1ZT4qIHJlc3VsdCk7Ci0gICAg
dm9pZCBzZXRSdWxlU2VsZWN0b3IoRXJyb3JTdHJpbmcqIGVycm9yLCBjb25zdCBSZWZQdHI8SW5z
cGVjdG9yT2JqZWN0PiYgcnVsZUlkLCBjb25zdCBTdHJpbmcmIHNlbGVjdG9yLCBSZWZQdHI8SW5z
cGVjdG9yVmFsdWU+KiByZXN1bHQpOwotICAgIHZvaWQgYWRkUnVsZShFcnJvclN0cmluZyogZXJy
b3IsIGNvbnN0IGxvbmcgY29udGV4dE5vZGVJZCwgY29uc3QgU3RyaW5nJiBzZWxlY3RvciwgUmVm
UHRyPEluc3BlY3RvclZhbHVlPiogcmVzdWx0KTsKLSAgICB2b2lkIGdldFN1cHBvcnRlZENTU1By
b3BlcnRpZXMoRXJyb3JTdHJpbmcqIGVycm9yLCBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+KiByZXN1
bHQpOworICAgIHZvaWQgZ2V0U3R5bGVzRm9yTm9kZShFcnJvclN0cmluZyosIGxvbmcgbm9kZUlk
LCBSZWZQdHI8SW5zcGVjdG9yVmFsdWU+KiByZXN1bHQpOworICAgIHZvaWQgZ2V0SW5saW5lU3R5
bGVGb3JOb2RlKEVycm9yU3RyaW5nKiwgbG9uZyBub2RlSWQsIFJlZlB0cjxJbnNwZWN0b3JWYWx1
ZT4qIHN0eWxlKTsKKyAgICB2b2lkIGdldENvbXB1dGVkU3R5bGVGb3JOb2RlKEVycm9yU3RyaW5n
KiwgbG9uZyBub2RlSWQsIFJlZlB0cjxJbnNwZWN0b3JWYWx1ZT4qIHN0eWxlKTsKKyAgICB2b2lk
IGdldEFsbFN0eWxlU2hlZXRzKEVycm9yU3RyaW5nKiwgUmVmUHRyPEluc3BlY3RvckFycmF5Piog
c3R5bGVTaGVldE1ldGFpbmZvcyk7CisgICAgdm9pZCBnZXRTdHlsZVNoZWV0KEVycm9yU3RyaW5n
KiwgY29uc3QgU3RyaW5nJiBzdHlsZVNoZWV0SWQsIFJlZlB0cjxJbnNwZWN0b3JWYWx1ZT4qIHJl
c3VsdCk7CisgICAgdm9pZCBnZXRTdHlsZVNoZWV0VGV4dChFcnJvclN0cmluZyosIGNvbnN0IFN0
cmluZyYgc3R5bGVTaGVldElkLCBTdHJpbmcqIHVybCwgU3RyaW5nKiByZXN1bHQpOworICAgIHZv
aWQgc2V0U3R5bGVTaGVldFRleHQoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIHN0eWxlU2hl
ZXRJZCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBib29sKiBzdWNjZXNzKTsKKyAgICB2b2lkIHNldFBy
b3BlcnR5VGV4dChFcnJvclN0cmluZyosIGNvbnN0IFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+JiBz
dHlsZUlkLCBsb25nIHByb3BlcnR5SW5kZXgsIGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBvdmVy
d3JpdGUsIFJlZlB0cjxJbnNwZWN0b3JWYWx1ZT4qIHJlc3VsdCk7CisgICAgdm9pZCB0b2dnbGVQ
cm9wZXJ0eShFcnJvclN0cmluZyosIGNvbnN0IFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+JiBzdHls
ZUlkLCBsb25nIHByb3BlcnR5SW5kZXgsIGJvb2wgZGlzYWJsZSwgUmVmUHRyPEluc3BlY3RvclZh
bHVlPiogcmVzdWx0KTsKKyAgICB2b2lkIHNldFJ1bGVTZWxlY3RvcihFcnJvclN0cmluZyosIGNv
bnN0IFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+JiBydWxlSWQsIGNvbnN0IFN0cmluZyYgc2VsZWN0
b3IsIFJlZlB0cjxJbnNwZWN0b3JWYWx1ZT4qIHJlc3VsdCk7CisgICAgdm9pZCBhZGRSdWxlKEVy
cm9yU3RyaW5nKiwgY29uc3QgbG9uZyBjb250ZXh0Tm9kZUlkLCBjb25zdCBTdHJpbmcmIHNlbGVj
dG9yLCBSZWZQdHI8SW5zcGVjdG9yVmFsdWU+KiByZXN1bHQpOworICAgIHZvaWQgZ2V0U3VwcG9y
dGVkQ1NTUHJvcGVydGllcyhFcnJvclN0cmluZyosIFJlZlB0cjxJbnNwZWN0b3JBcnJheT4qIHJl
c3VsdCk7CiAKIHByaXZhdGU6CiAgICAgdHlwZWRlZiBIYXNoTWFwPFN0cmluZywgUmVmUHRyPElu
c3BlY3RvclN0eWxlU2hlZXQ+ID4gSWRUb0luc3BlY3RvclN0eWxlU2hlZXQ7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAKaW5kZXggNzdjY2Rl
MC4uMTM0MmRkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clN0eWxlU2hlZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JT
dHlsZVNoZWV0LmNwcApAQCAtNzA4LDkgKzcwOCw3IEBAIFBhc3NSZWZQdHI8SW5zcGVjdG9yT2Jq
ZWN0PiBJbnNwZWN0b3JTdHlsZVNoZWV0OjpidWlsZE9iamVjdEZvclN0eWxlU2hlZXQoKQogICAg
ICAgICByZXR1cm4gMDsKIAogICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJlc3VsdCA9IElu
c3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7Ci0gICAgcmVzdWx0LT5zZXRCb29sZWFuKCJkaXNhYmxl
ZCIsIHN0eWxlU2hlZXQtPmRpc2FibGVkKCkpOwotICAgIHJlc3VsdC0+c2V0U3RyaW5nKCJzb3Vy
Y2VVUkwiLCBmaW5hbFVSTCgpKTsKLSAgICByZXN1bHQtPnNldFN0cmluZygidGl0bGUiLCBzdHls
ZVNoZWV0LT50aXRsZSgpKTsKKyAgICByZXN1bHQtPnNldFN0cmluZygic3R5bGVTaGVldElkIiwg
aWQoKSk7CiAgICAgUmVmUHRyPENTU1J1bGVMaXN0PiBjc3NSdWxlTGlzdCA9IENTU1J1bGVMaXN0
OjpjcmVhdGUoc3R5bGVTaGVldCwgdHJ1ZSk7CiAgICAgUmVmUHRyPEluc3BlY3RvckFycmF5PiBj
c3NSdWxlcyA9IGJ1aWxkQXJyYXlGb3JSdWxlTGlzdChjc3NSdWxlTGlzdC5nZXQoKSk7CiAgICAg
cmVzdWx0LT5zZXRBcnJheSgicnVsZXMiLCBjc3NSdWxlcy5yZWxlYXNlKCkpOwpAQCAtNzIwLDgg
KzcxOCwyMCBAQCBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gSW5zcGVjdG9yU3R5bGVTaGVl
dDo6YnVpbGRPYmplY3RGb3JTdHlsZVNoZWV0KCkKICAgICBpZiAoc3VjY2VzcykKICAgICAgICAg
cmVzdWx0LT5zZXRTdHJpbmcoInRleHQiLCBzdHlsZVNoZWV0VGV4dCk7CiAKLSAgICByZXN1bHQt
PnNldFN0cmluZygic3R5bGVTaGVldElkIiwgaWQoKSk7CisgICAgcmV0dXJuIHJlc3VsdC5yZWxl
YXNlKCk7Cit9CiAKK1Bhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBJbnNwZWN0b3JTdHlsZVNo
ZWV0OjpidWlsZE9iamVjdEZvclN0eWxlU2hlZXRJbmZvKCkKK3sKKyAgICBDU1NTdHlsZVNoZWV0
KiBzdHlsZVNoZWV0ID0gcGFnZVN0eWxlU2hlZXQoKTsKKyAgICBpZiAoIXN0eWxlU2hlZXQpCisg
ICAgICAgIHJldHVybiAwOworCisgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcmVzdWx0ID0g
SW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKKyAgICByZXN1bHQtPnNldFN0cmluZygic3R5bGVT
aGVldElkIiwgaWQoKSk7CisgICAgcmVzdWx0LT5zZXRCb29sZWFuKCJkaXNhYmxlZCIsIHN0eWxl
U2hlZXQtPmRpc2FibGVkKCkpOworICAgIHJlc3VsdC0+c2V0U3RyaW5nKCJzb3VyY2VVUkwiLCBm
aW5hbFVSTCgpKTsKKyAgICByZXN1bHQtPnNldFN0cmluZygidGl0bGUiLCBzdHlsZVNoZWV0LT50
aXRsZSgpKTsKICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2UoKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmgKaW5kZXggOTIzMThjYi4uMzA0
OGIxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxl
U2hlZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVl
dC5oCkBAIC0xNjgsNiArMTY4LDcgQEAgcHVibGljOgogICAgIENTU1N0eWxlUnVsZSogYWRkUnVs
ZShjb25zdCBTdHJpbmcmIHNlbGVjdG9yKTsKICAgICBDU1NTdHlsZVJ1bGUqIHJ1bGVGb3JJZChj
b25zdCBJbnNwZWN0b3JDU1NJZCYpIGNvbnN0OwogICAgIFBhc3NSZWZQdHI8SW5zcGVjdG9yT2Jq
ZWN0PiBidWlsZE9iamVjdEZvclN0eWxlU2hlZXQoKTsKKyAgICBQYXNzUmVmUHRyPEluc3BlY3Rv
ck9iamVjdD4gYnVpbGRPYmplY3RGb3JTdHlsZVNoZWV0SW5mbygpOwogICAgIFBhc3NSZWZQdHI8
SW5zcGVjdG9yT2JqZWN0PiBidWlsZE9iamVjdEZvclJ1bGUoQ1NTU3R5bGVSdWxlKik7CiAgICAg
UGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGJ1aWxkT2JqZWN0Rm9yU3R5bGUoQ1NTU3R5bGVE
ZWNsYXJhdGlvbiopOwogICAgIGJvb2wgc2V0UHJvcGVydHlUZXh0KGNvbnN0IEluc3BlY3RvckNT
U0lkJiwgdW5zaWduZWQgcHJvcGVydHlJbmRleCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIG92
ZXJ3cml0ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L0F1ZGl0UnVsZXMuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0F1ZGl0
UnVsZXMuanMKaW5kZXggYjYxNDI1Ni4uZjNlMjhkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BdWRpdFJ1bGVzLmpzCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRSdWxlcy5qcwpAQCAtMzc3LDI0ICszNzcsMjggQEAg
V2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuVW51c2VkQ3NzUnVsZS5wcm90b3R5cGUgPSB7CiAgICAg
ICAgICAgICBXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5ldmFsdWF0ZUluVGFyZ2V0V2luZG93KHJv
dXRpbmUsIFtzZWxlY3RvcnNdLCBzZWxlY3RvcnNDYWxsYmFjay5iaW5kKG51bGwsIGNhbGxiYWNr
LCBzdHlsZVNoZWV0cywgdGVzdGVkU2VsZWN0b3JzKSk7CiAgICAgICAgIH0KIAotICAgICAgICBm
dW5jdGlvbiBzdHlsZVNoZWV0Q2FsbGJhY2soc3R5bGVTaGVldHMsIGNvbnRpbnVhdGlvbiwgc3R5
bGVTaGVldCkKKyAgICAgICAgZnVuY3Rpb24gc3R5bGVTaGVldENhbGxiYWNrKHN0eWxlU2hlZXRz
LCBzb3VyY2VVUkwsIGNvbnRpbnVhdGlvbiwgc3R5bGVTaGVldCkKICAgICAgICAgewotICAgICAg
ICAgICAgaWYgKHN0eWxlU2hlZXQpCisgICAgICAgICAgICBpZiAoc3R5bGVTaGVldCkgeworICAg
ICAgICAgICAgICAgIHN0eWxlU2hlZXQuc291cmNlVVJMID0gc291cmNlVVJMOwogICAgICAgICAg
ICAgICAgIHN0eWxlU2hlZXRzLnB1c2goc3R5bGVTaGVldCk7CisgICAgICAgICAgICB9CiAgICAg
ICAgICAgICBpZiAoY29udGludWF0aW9uKQogICAgICAgICAgICAgICAgIGNvbnRpbnVhdGlvbihz
dHlsZVNoZWV0cyk7CiAgICAgICAgIH0KIAotICAgICAgICBmdW5jdGlvbiBhbGxTdHlsZXNDYWxs
YmFjayhlcnJvciwgc3R5bGVTaGVldElkcykKKyAgICAgICAgZnVuY3Rpb24gYWxsU3R5bGVzQ2Fs
bGJhY2soZXJyb3IsIHN0eWxlU2hlZXRJbmZvcykKICAgICAgICAgewotICAgICAgICAgICAgaWYg
KGVycm9yIHx8ICFzdHlsZVNoZWV0SWRzIHx8ICFzdHlsZVNoZWV0SWRzLmxlbmd0aCkKKyAgICAg
ICAgICAgIGlmIChlcnJvciB8fCAhc3R5bGVTaGVldEluZm9zIHx8ICFzdHlsZVNoZWV0SW5mb3Mu
bGVuZ3RoKQogICAgICAgICAgICAgICAgIHJldHVybiBldmFsQ2FsbGJhY2soW10pOwogICAgICAg
ICAgICAgdmFyIHN0eWxlU2hlZXRzID0gW107Ci0gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsg
aSA8IHN0eWxlU2hlZXRJZHMubGVuZ3RoOyArK2kpCi0gICAgICAgICAgICAgICAgV2ViSW5zcGVj
dG9yLkNTU1N0eWxlU2hlZXQuY3JlYXRlRm9ySWQoc3R5bGVTaGVldElkc1tpXSwgc3R5bGVTaGVl
dENhbGxiYWNrLmJpbmQobnVsbCwgc3R5bGVTaGVldHMsIGkgPT0gc3R5bGVTaGVldElkcy5sZW5n
dGggLSAxID8gZXZhbENhbGxiYWNrIDogbnVsbCkpOworICAgICAgICAgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCBzdHlsZVNoZWV0SW5mb3MubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICB2
YXIgaW5mbyA9IHN0eWxlU2hlZXRJbmZvc1tpXTsKKyAgICAgICAgICAgICAgICBXZWJJbnNwZWN0
b3IuQ1NTU3R5bGVTaGVldC5jcmVhdGVGb3JJZChpbmZvLnN0eWxlU2hlZXRJZCwgc3R5bGVTaGVl
dENhbGxiYWNrLmJpbmQobnVsbCwgc3R5bGVTaGVldHMsIGluZm8uc291cmNlVVJMLCBpID09IHN0
eWxlU2hlZXRJbmZvcy5sZW5ndGggLSAxID8gZXZhbENhbGxiYWNrIDogbnVsbCkpOworICAgICAg
ICAgICAgfQogICAgICAgICB9CiAKLSAgICAgICAgQ1NTQWdlbnQuZ2V0QWxsU3R5bGVzKGFsbFN0
eWxlc0NhbGxiYWNrKTsKKyAgICAgICAgQ1NTQWdlbnQuZ2V0QWxsU3R5bGVTaGVldHMoYWxsU3R5
bGVzQ2FsbGJhY2spOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9DU1NTdHlsZU1vZGVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9DU1NTdHlsZU1vZGVsLmpzCmluZGV4IDRhZTEzMjcuLjJkN2U3OTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ1NTU3R5bGVNb2Rl
bC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NTU1N0eWxlTW9k
ZWwuanMKQEAgLTE2OCw4ICsxNjgsMTAgQEAgV2ViSW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwucHJv
dG90eXBlID0gewogICAgICAgICAgICAgaWYgKGVycm9yKQogICAgICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgICAgIHZhciByZXNvdXJjZSA9IFdlYkluc3BlY3Rvci5yZXNvdXJjZUZvclVS
TChocmVmKTsKLSAgICAgICAgICAgIGlmIChyZXNvdXJjZSAmJiByZXNvdXJjZS50eXBlID09PSBX
ZWJJbnNwZWN0b3IuUmVzb3VyY2UuVHlwZS5TdHlsZXNoZWV0KQorICAgICAgICAgICAgaWYgKHJl
c291cmNlICYmIHJlc291cmNlLnR5cGUgPT09IFdlYkluc3BlY3Rvci5SZXNvdXJjZS5UeXBlLlN0
eWxlc2hlZXQpIHsKICAgICAgICAgICAgICAgICByZXNvdXJjZS5zZXRDb250ZW50KGNvbnRlbnQs
IHRoaXMuX29uUmV2ZXJ0LmJpbmQodGhpcywgc3R5bGVTaGVldElkKSk7CisgICAgICAgICAgICAg
ICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoInN0eWxlc2hlZXQgY2hhbmdlZCIpOwor
ICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIENTU0FnZW50LmdldFN0eWxlU2hlZXRU
ZXh0KHN0eWxlU2hlZXRJZCwgY2FsbGJhY2suYmluZCh0aGlzKSk7CiAgICAgfSwKQEAgLTE4MSw3
ICsxODMsNiBAQCBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAg
ICAgICAgICBpZiAoZXJyb3IpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAg
dGhpcy5fc3R5bGVTaGVldENoYW5nZWQoc3R5bGVTaGVldElkLCB0cnVlKTsKLSAgICAgICAgICAg
IHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKCJzdHlsZXNoZWV0IGNoYW5nZWQiKTsKICAg
ICAgICAgfQogICAgICAgICBDU1NBZ2VudC5zZXRTdHlsZVNoZWV0VGV4dChzdHlsZVNoZWV0SWQs
IGNvbnRlbnRUb1JldmVydFRvLCBjYWxsYmFjay5iaW5kKHRoaXMpKTsKICAgICB9CkBAIC01Mzcs
OSArNTM4LDYgQEAgV2ViSW5zcGVjdG9yLkNTU1Byb3BlcnR5LnByb3RvdHlwZSA9IHsKIFdlYklu
c3BlY3Rvci5DU1NTdHlsZVNoZWV0ID0gZnVuY3Rpb24ocGF5bG9hZCkKIHsKICAgICB0aGlzLmlk
ID0gcGF5bG9hZC5zdHlsZVNoZWV0SWQ7Ci0gICAgdGhpcy5zb3VyY2VVUkwgPSBwYXlsb2FkLnNv
dXJjZVVSTDsKLSAgICB0aGlzLnRpdGxlID0gcGF5bG9hZC50aXRsZTsKLSAgICB0aGlzLmRpc2Fi
bGVkID0gcGF5bG9hZC5kaXNhYmxlZDsKICAgICB0aGlzLnJ1bGVzID0gW107CiAgICAgdGhpcy5z
dHlsZXMgPSB7fTsKICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHBheWxvYWQucnVsZXMubGVuZ3Ro
OyArK2kpIHsKQEAgLTU3MiwxNCArNTcwLDEyIEBAIFdlYkluc3BlY3Rvci5DU1NTdHlsZVNoZWV0
LnByb3RvdHlwZSA9IHsKIAogICAgIHNldFRleHQ6IGZ1bmN0aW9uKG5ld1RleHQsIHVzZXJDYWxs
YmFjaykKICAgICB7Ci0gICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKGVycm9yLCBzdHlsZVNoZWV0
UGF5bG9hZCkKKyAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2soZXJyb3IsIGlzQ2hhbmdlU3VjY2Vz
c2Z1bCkKICAgICAgICAgewotICAgICAgICAgICAgaWYgKGVycm9yIHx8ICFzdHlsZVNoZWV0UGF5
bG9hZCkKLSAgICAgICAgICAgICAgICB1c2VyQ2FsbGJhY2sobnVsbCk7Ci0gICAgICAgICAgICBl
bHNlIHsKLSAgICAgICAgICAgICAgICB1c2VyQ2FsbGJhY2sobmV3IFdlYkluc3BlY3Rvci5DU1NT
dHlsZVNoZWV0KHN0eWxlU2hlZXRQYXlsb2FkKSk7CisgICAgICAgICAgICBpZiAodXNlckNhbGxi
YWNrKQorICAgICAgICAgICAgICAgIHVzZXJDYWxsYmFjayhpc0NoYW5nZVN1Y2Nlc3NmdWwpOwor
ICAgICAgICAgICAgaWYgKGlzQ2hhbmdlU3VjY2Vzc2Z1bCkKICAgICAgICAgICAgICAgICBXZWJJ
bnNwZWN0b3IuY3NzTW9kZWwuX3N0eWxlU2hlZXRDaGFuZ2VkKHRoaXMuaWQsIHRydWUpOwotICAg
ICAgICAgICAgfQogICAgICAgICB9CiAKICAgICAgICAgQ1NTQWdlbnQuc2V0U3R5bGVTaGVldFRl
eHQodGhpcy5pZCwgbmV3VGV4dCwgY2FsbGJhY2suYmluZCh0aGlzKSk7Cg==
</data>
<flag name="review"
          id="78017"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>