<?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>45910</bug_id>
          
          <creation_ts>2010-09-16 11:36:37 -0700</creation_ts>
          <short_desc>queryCommandState with justifyCenter, justifyLeft, and justifyRight always return false</short_desc>
          <delta_ts>2010-09-30 19:16:40 -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>HTML Editing</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>46382</dependson>
          <blocked>46954</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>darin</cc>
    
    <cc>druspini</cc>
    
    <cc>enrica</cc>
    
    <cc>jamesr</cc>
    
    <cc>jparent</cc>
    
    <cc>justin.garcia</cc>
    
    <cc>mitz</cc>
    
    <cc>ojan</cc>
    
    <cc>tkent</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>tony</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>280230</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-09-16 11:36:37 -0700</bug_when>
    <thetext>WebKit does not implement queryCommandValue for justifyCenter, justifyLeft, and justifyRight.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280332</commentid>
    <comment_count>1</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-09-16 13:47:58 -0700</bug_when>
    <thetext>MSIE doesn&apos;t support text-align CSS property but only responds to align attribute

When &quot;world&quot; is selected, Firefox returns left for the following markups:
&lt;div style=&quot;text-align: left;&quot;&gt;hello&lt;br&gt;&lt;span style=&quot;text-align: right;&quot;&gt;world&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;hello world&lt;br&gt;&lt;span style=&quot;display: block; text-align: right;&quot;&gt;WebKit&lt;/span&gt;&lt;/div&gt;

but I don&apos;t think we should be returning left for the latter case.  It should be right instead because text-align: is respected for all block-level elements.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280345</commentid>
    <comment_count>2</comment_count>
      <attachid>67841</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-09-16 14:02:21 -0700</bug_when>
    <thetext>Created attachment 67841
work in progress

This fails in the case of &lt;div&gt;hello&lt;span style=&quot;text-align:right;&quot;&gt;world&lt;/span&gt;&lt;/div&gt; because we return right in such case but text is clearly left-aligned.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280407</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-09-16 15:40:20 -0700</bug_when>
    <thetext>*** Bug 17593 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280433</commentid>
    <comment_count>4</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-09-16 16:09:42 -0700</bug_when>
    <thetext>I&apos;m getting -webkit-left and left, and I&apos;m not sure what&apos;s the difference between them.  I was speculating that there&apos;s some difference in how they behave in the context of RTL but it doesn&apos;t seem to be the case as far as I&apos;ve tested so far.

Dan, do you know if I can treat them equally for the purpose of queryCommandState?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>283871</commentid>
    <comment_count>5</comment_count>
      <attachid>68572</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-09-23 12:54:46 -0700</bug_when>
    <thetext>Created attachment 68572
work in progress with a test

I did look into the difference between -webkit-left and left and it seems like the only notable difference is in RenderBox::calcHorizontalMargins where we have:

    } else if ((marginRight.isAuto() &amp;&amp; width() &lt; containerWidth)
            || (!marginLeft.isAuto() &amp;&amp; containingBlock()-&gt;style()-&gt;direction() == RTL &amp;&amp; containingBlock()-&gt;style()-&gt;textAlign() == WEBKIT_LEFT)) {
        m_marginLeft = marginLeft.calcValue(containerWidth);
        m_marginRight = containerWidth - width() - m_marginLeft;
    } else if ((marginLeft.isAuto() &amp;&amp; width() &lt; containerWidth)
            || (!marginRight.isAuto() &amp;&amp; containingBlock()-&gt;style()-&gt;direction() == LTR &amp;&amp; containingBlock()-&gt;style()-&gt;textAlign() == WEBKIT_RIGHT)) {
        m_marginRight = marginRight.calcValue(containerWidth);
        m_marginLeft = containerWidth - width() - m_marginRight;

But most importantly, RenderText::localCaretRect, RenderBlock::computeHorizontalPositionsForLine,  and RenderBlock::localCaretRect treat WEBKIT_LEFT and LEFT equally (likewise for WEBKIT_RIGHT, WEBKIT_CENTER) so I&apos;m quite convinced that we can treat -webkit-(left|right|center) and (left|right|center) equally in editing.  In this new work-in-progress patch, I treat them equally in getPropertiesNotIn.  Some tests fail due to the bug 41989 and the bug 46382.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285793</commentid>
    <comment_count>6</comment_count>
      <attachid>68971</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-09-27 15:13:06 -0700</bug_when>
    <thetext>Created attachment 68971
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285980</commentid>
    <comment_count>7</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-09-27 18:23:11 -0700</bug_when>
    <thetext>Committed r68465: &lt;http://trac.webkit.org/changeset/68465&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67841</attachid>
            <date>2010-09-16 14:02:21 -0700</date>
            <delta_ts>2010-09-23 12:54:46 -0700</delta_ts>
            <desc>work in progress</desc>
            <filename>wip45910</filename>
            <type>text/plain</type>
            <size>3406</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAJKHJldmlzaW9uIDY3NTk3KQorKysgV2Vi
Q29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzAzLDYg
KzEzMDMsMjEgQEAKICAgICByZXR1cm4gZnJhbWUtPmVkaXRvcigpLT5zZWxlY3Rpb25Vbm9yZGVy
ZWRMaXN0U3RhdGUoKTsKIH0KIAorc3RhdGljIFRyaVN0YXRlIHN0YXRlSnVzdGlmeUNlbnRlcihG
cmFtZSogZnJhbWUsIEV2ZW50KikKK3sKKyAgICByZXR1cm4gc3RhdGVTdHlsZShmcmFtZSwgQ1NT
UHJvcGVydHlUZXh0QWxpZ24sICJjZW50ZXIiKTsKK30KKworc3RhdGljIFRyaVN0YXRlIHN0YXRl
SnVzdGlmeUxlZnQoRnJhbWUqIGZyYW1lLCBFdmVudCopCit7CisgICAgcmV0dXJuIHN0YXRlU3R5
bGUoZnJhbWUsIENTU1Byb3BlcnR5VGV4dEFsaWduLCAibGVmdCIpOworfQorCitzdGF0aWMgVHJp
U3RhdGUgc3RhdGVKdXN0aWZ5UmlnaHQoRnJhbWUqIGZyYW1lLCBFdmVudCopCit7CisgICAgcmV0
dXJuIHN0YXRlU3R5bGUoZnJhbWUsIENTU1Byb3BlcnR5VGV4dEFsaWduLCAicmlnaHQiKTsKK30K
KwogLy8gVmFsdWUgZnVuY3Rpb25zCiAKIHN0YXRpYyBTdHJpbmcgdmFsdWVOdWxsKEZyYW1lKiwg
RXZlbnQqKQpAQCAtMTM4OSwxMSArMTQwNCwxMSBAQAogICAgICAgICB7ICJJbnNlcnRUZXh0Iiwg
eyBleGVjdXRlSW5zZXJ0VGV4dCwgc3VwcG9ydGVkLCBlbmFibGVkSW5FZGl0YWJsZVRleHQsIHN0
YXRlTm9uZSwgdmFsdWVOdWxsLCBpc1RleHRJbnNlcnRpb24sIGRvTm90QWxsb3dFeGVjdXRpb25X
aGVuRGlzYWJsZWQgfSB9LAogICAgICAgICB7ICJJbnNlcnRVbm9yZGVyZWRMaXN0IiwgeyBleGVj
dXRlSW5zZXJ0VW5vcmRlcmVkTGlzdCwgc3VwcG9ydGVkLCBlbmFibGVkSW5SaWNobHlFZGl0YWJs
ZVRleHQsIHN0YXRlVW5vcmRlcmVkTGlzdCwgdmFsdWVOdWxsLCBub3RUZXh0SW5zZXJ0aW9uLCBk
b05vdEFsbG93RXhlY3V0aW9uV2hlbkRpc2FibGVkIH0gfSwKICAgICAgICAgeyAiSXRhbGljIiwg
eyBleGVjdXRlVG9nZ2xlSXRhbGljLCBzdXBwb3J0ZWQsIGVuYWJsZWRJblJpY2hseUVkaXRhYmxl
VGV4dCwgc3RhdGVJdGFsaWMsIHZhbHVlTnVsbCwgbm90VGV4dEluc2VydGlvbiwgZG9Ob3RBbGxv
d0V4ZWN1dGlvbldoZW5EaXNhYmxlZCB9IH0sCi0gICAgICAgIHsgIkp1c3RpZnlDZW50ZXIiLCB7
IGV4ZWN1dGVKdXN0aWZ5Q2VudGVyLCBzdXBwb3J0ZWQsIGVuYWJsZWRJblJpY2hseUVkaXRhYmxl
VGV4dCwgc3RhdGVOb25lLCB2YWx1ZU51bGwsIG5vdFRleHRJbnNlcnRpb24sIGRvTm90QWxsb3dF
eGVjdXRpb25XaGVuRGlzYWJsZWQgfSB9LAorICAgICAgICB7ICJKdXN0aWZ5Q2VudGVyIiwgeyBl
eGVjdXRlSnVzdGlmeUNlbnRlciwgc3VwcG9ydGVkLCBlbmFibGVkSW5SaWNobHlFZGl0YWJsZVRl
eHQsIHN0YXRlSnVzdGlmeUNlbnRlciwgdmFsdWVOdWxsLCBub3RUZXh0SW5zZXJ0aW9uLCBkb05v
dEFsbG93RXhlY3V0aW9uV2hlbkRpc2FibGVkIH0gfSwKICAgICAgICAgeyAiSnVzdGlmeUZ1bGwi
LCB7IGV4ZWN1dGVKdXN0aWZ5RnVsbCwgc3VwcG9ydGVkLCBlbmFibGVkSW5SaWNobHlFZGl0YWJs
ZVRleHQsIHN0YXRlTm9uZSwgdmFsdWVOdWxsLCBub3RUZXh0SW5zZXJ0aW9uLCBkb05vdEFsbG93
RXhlY3V0aW9uV2hlbkRpc2FibGVkIH0gfSwKLSAgICAgICAgeyAiSnVzdGlmeUxlZnQiLCB7IGV4
ZWN1dGVKdXN0aWZ5TGVmdCwgc3VwcG9ydGVkLCBlbmFibGVkSW5SaWNobHlFZGl0YWJsZVRleHQs
IHN0YXRlTm9uZSwgdmFsdWVOdWxsLCBub3RUZXh0SW5zZXJ0aW9uLCBkb05vdEFsbG93RXhlY3V0
aW9uV2hlbkRpc2FibGVkIH0gfSwKKyAgICAgICAgeyAiSnVzdGlmeUxlZnQiLCB7IGV4ZWN1dGVK
dXN0aWZ5TGVmdCwgc3VwcG9ydGVkLCBlbmFibGVkSW5SaWNobHlFZGl0YWJsZVRleHQsIHN0YXRl
SnVzdGlmeUxlZnQsIHZhbHVlTnVsbCwgbm90VGV4dEluc2VydGlvbiwgZG9Ob3RBbGxvd0V4ZWN1
dGlvbldoZW5EaXNhYmxlZCB9IH0sCiAgICAgICAgIHsgIkp1c3RpZnlOb25lIiwgeyBleGVjdXRl
SnVzdGlmeUxlZnQsIHN1cHBvcnRlZCwgZW5hYmxlZEluUmljaGx5RWRpdGFibGVUZXh0LCBzdGF0
ZU5vbmUsIHZhbHVlTnVsbCwgbm90VGV4dEluc2VydGlvbiwgZG9Ob3RBbGxvd0V4ZWN1dGlvbldo
ZW5EaXNhYmxlZCB9IH0sCi0gICAgICAgIHsgIkp1c3RpZnlSaWdodCIsIHsgZXhlY3V0ZUp1c3Rp
ZnlSaWdodCwgc3VwcG9ydGVkLCBlbmFibGVkSW5SaWNobHlFZGl0YWJsZVRleHQsIHN0YXRlTm9u
ZSwgdmFsdWVOdWxsLCBub3RUZXh0SW5zZXJ0aW9uLCBkb05vdEFsbG93RXhlY3V0aW9uV2hlbkRp
c2FibGVkIH0gfSwKKyAgICAgICAgeyAiSnVzdGlmeVJpZ2h0IiwgeyBleGVjdXRlSnVzdGlmeVJp
Z2h0LCBzdXBwb3J0ZWQsIGVuYWJsZWRJblJpY2hseUVkaXRhYmxlVGV4dCwgc3RhdGVKdXN0aWZ5
UmlnaHQsIHZhbHVlTnVsbCwgbm90VGV4dEluc2VydGlvbiwgZG9Ob3RBbGxvd0V4ZWN1dGlvbldo
ZW5EaXNhYmxlZCB9IH0sCiAgICAgICAgIHsgIk1ha2VUZXh0V3JpdGluZ0RpcmVjdGlvbkxlZnRU
b1JpZ2h0IiwgeyBleGVjdXRlTWFrZVRleHRXcml0aW5nRGlyZWN0aW9uTGVmdFRvUmlnaHQsIHN1
cHBvcnRlZEZyb21NZW51T3JLZXlCaW5kaW5nLCBlbmFibGVkSW5SaWNobHlFZGl0YWJsZVRleHQs
IHN0YXRlVGV4dFdyaXRpbmdEaXJlY3Rpb25MZWZ0VG9SaWdodCwgdmFsdWVOdWxsLCBub3RUZXh0
SW5zZXJ0aW9uLCBkb05vdEFsbG93RXhlY3V0aW9uV2hlbkRpc2FibGVkIH0gfSwKICAgICAgICAg
eyAiTWFrZVRleHRXcml0aW5nRGlyZWN0aW9uTmF0dXJhbCIsIHsgZXhlY3V0ZU1ha2VUZXh0V3Jp
dGluZ0RpcmVjdGlvbk5hdHVyYWwsIHN1cHBvcnRlZEZyb21NZW51T3JLZXlCaW5kaW5nLCBlbmFi
bGVkSW5SaWNobHlFZGl0YWJsZVRleHQsIHN0YXRlVGV4dFdyaXRpbmdEaXJlY3Rpb25OYXR1cmFs
LCB2YWx1ZU51bGwsIG5vdFRleHRJbnNlcnRpb24sIGRvTm90QWxsb3dFeGVjdXRpb25XaGVuRGlz
YWJsZWQgfSB9LAogICAgICAgICB7ICJNYWtlVGV4dFdyaXRpbmdEaXJlY3Rpb25SaWdodFRvTGVm
dCIsIHsgZXhlY3V0ZU1ha2VUZXh0V3JpdGluZ0RpcmVjdGlvblJpZ2h0VG9MZWZ0LCBzdXBwb3J0
ZWRGcm9tTWVudU9yS2V5QmluZGluZywgZW5hYmxlZEluUmljaGx5RWRpdGFibGVUZXh0LCBzdGF0
ZVRleHRXcml0aW5nRGlyZWN0aW9uUmlnaHRUb0xlZnQsIHZhbHVlTnVsbCwgbm90VGV4dEluc2Vy
dGlvbiwgZG9Ob3RBbGxvd0V4ZWN1dGlvbldoZW5EaXNhYmxlZCB9IH0sCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68572</attachid>
            <date>2010-09-23 12:54:46 -0700</date>
            <delta_ts>2010-09-27 15:13:02 -0700</delta_ts>
            <desc>work in progress with a test</desc>
            <filename>wip45910</filename>
            <type>text/plain</type>
            <size>17444</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAJKHJldmlzaW9uIDY4MTY0KQorKysgV2ViQ29yZS9kb20vRG9jdW1lbnQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOTEwLDcgKzM5MTAsNyBAQAogCiBib29sIERvY3VtZW50
OjpxdWVyeUNvbW1hbmRTdGF0ZShjb25zdCBTdHJpbmcmIGNvbW1hbmROYW1lKQogewotICAgIHJl
dHVybiBjb21tYW5kKHRoaXMsIGNvbW1hbmROYW1lKS5zdGF0ZSgpICE9IEZhbHNlVHJpU3RhdGU7
CisgICAgcmV0dXJuIGNvbW1hbmQodGhpcywgY29tbWFuZE5hbWUpLnN0YXRlKCkgPT0gVHJ1ZVRy
aVN0YXRlOwogfQogCiBib29sIERvY3VtZW50OjpxdWVyeUNvbW1hbmRTdXBwb3J0ZWQoY29uc3Qg
U3RyaW5nJiBjb21tYW5kTmFtZSkKSW5kZXg6IFdlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5k
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAJKHJl
dmlzaW9uIDY4MTY0KQorKysgV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMjk3LDYgKzEyOTcsMjEgQEAKICAgICByZXR1cm4gZnJhbWUtPmVkaXRv
cigpLT5zZWxlY3Rpb25Vbm9yZGVyZWRMaXN0U3RhdGUoKTsKIH0KIAorc3RhdGljIFRyaVN0YXRl
IHN0YXRlSnVzdGlmeUNlbnRlcihGcmFtZSogZnJhbWUsIEV2ZW50KikKK3sKKyAgICByZXR1cm4g
c3RhdGVTdHlsZShmcmFtZSwgQ1NTUHJvcGVydHlUZXh0QWxpZ24sICJjZW50ZXIiKTsKK30KKwor
c3RhdGljIFRyaVN0YXRlIHN0YXRlSnVzdGlmeUxlZnQoRnJhbWUqIGZyYW1lLCBFdmVudCopCit7
CisgICAgcmV0dXJuIHN0YXRlU3R5bGUoZnJhbWUsIENTU1Byb3BlcnR5VGV4dEFsaWduLCAibGVm
dCIpOworfQorCitzdGF0aWMgVHJpU3RhdGUgc3RhdGVKdXN0aWZ5UmlnaHQoRnJhbWUqIGZyYW1l
LCBFdmVudCopCit7CisgICAgcmV0dXJuIHN0YXRlU3R5bGUoZnJhbWUsIENTU1Byb3BlcnR5VGV4
dEFsaWduLCAicmlnaHQiKTsKK30KKwogLy8gVmFsdWUgZnVuY3Rpb25zCiAKIHN0YXRpYyBTdHJp
bmcgdmFsdWVOdWxsKEZyYW1lKiwgRXZlbnQqKQpAQCAtMTM4MywxMSArMTM5OCwxMSBAQAogICAg
ICAgICB7ICJJbnNlcnRUZXh0IiwgeyBleGVjdXRlSW5zZXJ0VGV4dCwgc3VwcG9ydGVkLCBlbmFi
bGVkSW5FZGl0YWJsZVRleHQsIHN0YXRlTm9uZSwgdmFsdWVOdWxsLCBpc1RleHRJbnNlcnRpb24s
IGRvTm90QWxsb3dFeGVjdXRpb25XaGVuRGlzYWJsZWQgfSB9LAogICAgICAgICB7ICJJbnNlcnRV
bm9yZGVyZWRMaXN0IiwgeyBleGVjdXRlSW5zZXJ0VW5vcmRlcmVkTGlzdCwgc3VwcG9ydGVkLCBl
bmFibGVkSW5SaWNobHlFZGl0YWJsZVRleHQsIHN0YXRlVW5vcmRlcmVkTGlzdCwgdmFsdWVOdWxs
LCBub3RUZXh0SW5zZXJ0aW9uLCBkb05vdEFsbG93RXhlY3V0aW9uV2hlbkRpc2FibGVkIH0gfSwK
ICAgICAgICAgeyAiSXRhbGljIiwgeyBleGVjdXRlVG9nZ2xlSXRhbGljLCBzdXBwb3J0ZWQsIGVu
YWJsZWRJblJpY2hseUVkaXRhYmxlVGV4dCwgc3RhdGVJdGFsaWMsIHZhbHVlTnVsbCwgbm90VGV4
dEluc2VydGlvbiwgZG9Ob3RBbGxvd0V4ZWN1dGlvbldoZW5EaXNhYmxlZCB9IH0sCi0gICAgICAg
IHsgIkp1c3RpZnlDZW50ZXIiLCB7IGV4ZWN1dGVKdXN0aWZ5Q2VudGVyLCBzdXBwb3J0ZWQsIGVu
YWJsZWRJblJpY2hseUVkaXRhYmxlVGV4dCwgc3RhdGVOb25lLCB2YWx1ZU51bGwsIG5vdFRleHRJ
bnNlcnRpb24sIGRvTm90QWxsb3dFeGVjdXRpb25XaGVuRGlzYWJsZWQgfSB9LAorICAgICAgICB7
ICJKdXN0aWZ5Q2VudGVyIiwgeyBleGVjdXRlSnVzdGlmeUNlbnRlciwgc3VwcG9ydGVkLCBlbmFi
bGVkSW5SaWNobHlFZGl0YWJsZVRleHQsIHN0YXRlSnVzdGlmeUNlbnRlciwgdmFsdWVOdWxsLCBu
b3RUZXh0SW5zZXJ0aW9uLCBkb05vdEFsbG93RXhlY3V0aW9uV2hlbkRpc2FibGVkIH0gfSwKICAg
ICAgICAgeyAiSnVzdGlmeUZ1bGwiLCB7IGV4ZWN1dGVKdXN0aWZ5RnVsbCwgc3VwcG9ydGVkLCBl
bmFibGVkSW5SaWNobHlFZGl0YWJsZVRleHQsIHN0YXRlTm9uZSwgdmFsdWVOdWxsLCBub3RUZXh0
SW5zZXJ0aW9uLCBkb05vdEFsbG93RXhlY3V0aW9uV2hlbkRpc2FibGVkIH0gfSwKLSAgICAgICAg
eyAiSnVzdGlmeUxlZnQiLCB7IGV4ZWN1dGVKdXN0aWZ5TGVmdCwgc3VwcG9ydGVkLCBlbmFibGVk
SW5SaWNobHlFZGl0YWJsZVRleHQsIHN0YXRlTm9uZSwgdmFsdWVOdWxsLCBub3RUZXh0SW5zZXJ0
aW9uLCBkb05vdEFsbG93RXhlY3V0aW9uV2hlbkRpc2FibGVkIH0gfSwKKyAgICAgICAgeyAiSnVz
dGlmeUxlZnQiLCB7IGV4ZWN1dGVKdXN0aWZ5TGVmdCwgc3VwcG9ydGVkLCBlbmFibGVkSW5SaWNo
bHlFZGl0YWJsZVRleHQsIHN0YXRlSnVzdGlmeUxlZnQsIHZhbHVlTnVsbCwgbm90VGV4dEluc2Vy
dGlvbiwgZG9Ob3RBbGxvd0V4ZWN1dGlvbldoZW5EaXNhYmxlZCB9IH0sCiAgICAgICAgIHsgIkp1
c3RpZnlOb25lIiwgeyBleGVjdXRlSnVzdGlmeUxlZnQsIHN1cHBvcnRlZCwgZW5hYmxlZEluUmlj
aGx5RWRpdGFibGVUZXh0LCBzdGF0ZU5vbmUsIHZhbHVlTnVsbCwgbm90VGV4dEluc2VydGlvbiwg
ZG9Ob3RBbGxvd0V4ZWN1dGlvbldoZW5EaXNhYmxlZCB9IH0sCi0gICAgICAgIHsgIkp1c3RpZnlS
aWdodCIsIHsgZXhlY3V0ZUp1c3RpZnlSaWdodCwgc3VwcG9ydGVkLCBlbmFibGVkSW5SaWNobHlF
ZGl0YWJsZVRleHQsIHN0YXRlTm9uZSwgdmFsdWVOdWxsLCBub3RUZXh0SW5zZXJ0aW9uLCBkb05v
dEFsbG93RXhlY3V0aW9uV2hlbkRpc2FibGVkIH0gfSwKKyAgICAgICAgeyAiSnVzdGlmeVJpZ2h0
IiwgeyBleGVjdXRlSnVzdGlmeVJpZ2h0LCBzdXBwb3J0ZWQsIGVuYWJsZWRJblJpY2hseUVkaXRh
YmxlVGV4dCwgc3RhdGVKdXN0aWZ5UmlnaHQsIHZhbHVlTnVsbCwgbm90VGV4dEluc2VydGlvbiwg
ZG9Ob3RBbGxvd0V4ZWN1dGlvbldoZW5EaXNhYmxlZCB9IH0sCiAgICAgICAgIHsgIk1ha2VUZXh0
V3JpdGluZ0RpcmVjdGlvbkxlZnRUb1JpZ2h0IiwgeyBleGVjdXRlTWFrZVRleHRXcml0aW5nRGly
ZWN0aW9uTGVmdFRvUmlnaHQsIHN1cHBvcnRlZEZyb21NZW51T3JLZXlCaW5kaW5nLCBlbmFibGVk
SW5SaWNobHlFZGl0YWJsZVRleHQsIHN0YXRlVGV4dFdyaXRpbmdEaXJlY3Rpb25MZWZ0VG9SaWdo
dCwgdmFsdWVOdWxsLCBub3RUZXh0SW5zZXJ0aW9uLCBkb05vdEFsbG93RXhlY3V0aW9uV2hlbkRp
c2FibGVkIH0gfSwKICAgICAgICAgeyAiTWFrZVRleHRXcml0aW5nRGlyZWN0aW9uTmF0dXJhbCIs
IHsgZXhlY3V0ZU1ha2VUZXh0V3JpdGluZ0RpcmVjdGlvbk5hdHVyYWwsIHN1cHBvcnRlZEZyb21N
ZW51T3JLZXlCaW5kaW5nLCBlbmFibGVkSW5SaWNobHlFZGl0YWJsZVRleHQsIHN0YXRlVGV4dFdy
aXRpbmdEaXJlY3Rpb25OYXR1cmFsLCB2YWx1ZU51bGwsIG5vdFRleHRJbnNlcnRpb24sIGRvTm90
QWxsb3dFeGVjdXRpb25XaGVuRGlzYWJsZWQgfSB9LAogICAgICAgICB7ICJNYWtlVGV4dFdyaXRp
bmdEaXJlY3Rpb25SaWdodFRvTGVmdCIsIHsgZXhlY3V0ZU1ha2VUZXh0V3JpdGluZ0RpcmVjdGlv
blJpZ2h0VG9MZWZ0LCBzdXBwb3J0ZWRGcm9tTWVudU9yS2V5QmluZGluZywgZW5hYmxlZEluUmlj
aGx5RWRpdGFibGVUZXh0LCBzdGF0ZVRleHRXcml0aW5nRGlyZWN0aW9uUmlnaHRUb0xlZnQsIHZh
bHVlTnVsbCwgbm90VGV4dEluc2VydGlvbiwgZG9Ob3RBbGxvd0V4ZWN1dGlvbldoZW5EaXNhYmxl
ZCB9IH0sCkluZGV4OiBXZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAJKHJldmlzaW9u
IDY4MTY0KQorKysgV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzg4LDYgKzM4OCwyMyBAQAogICAgIHJldHVybiBmYWxzZTsgLy8gTWFrZSBj
b21waWxlciBoYXBweQogfQogCitzdGF0aWMgaW50IGdldFRleHRBbGlnbm1lbnQoQ1NTU3R5bGVE
ZWNsYXJhdGlvbiogc3R5bGUpCit7CisgICAgaW50IHRleHRBbGlnbiA9IGdldElkZW50aWZpZXJW
YWx1ZShzdHlsZSwgQ1NTUHJvcGVydHlUZXh0QWxpZ24pOworICAgIHN3aXRjaCAodGV4dEFsaWdu
KSB7CisgICAgY2FzZSBDU1NWYWx1ZUxlZnQ6CisgICAgY2FzZSBDU1NWYWx1ZVdlYmtpdExlZnQ6
CisgICAgICAgIHJldHVybiBDU1NWYWx1ZUxlZnQ7CisgICAgY2FzZSBDU1NWYWx1ZVJpZ2h0Ogor
ICAgIGNhc2UgQ1NTVmFsdWVXZWJraXRSaWdodDoKKyAgICAgICAgcmV0dXJuIENTU1ZhbHVlUmln
aHQ7CisgICAgY2FzZSBDU1NWYWx1ZUNlbnRlcjoKKyAgICBjYXNlIENTU1ZhbHVlV2Via2l0Q2Vu
dGVyOgorICAgICAgICByZXR1cm4gQ1NTVmFsdWVDZW50ZXI7CisgICAgfQorICAgIHJldHVybiBD
U1NWYWx1ZUludmFsaWQ7Cit9CisKIFJlZlB0cjxDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbj4g
Z2V0UHJvcGVydGllc05vdEluKENTU1N0eWxlRGVjbGFyYXRpb24qIHN0eWxlV2l0aFJlZHVuZGFu
dFByb3BlcnRpZXMsIENTU1N0eWxlRGVjbGFyYXRpb24qIGJhc2VTdHlsZSkKIHsKICAgICBBU1NF
UlQoc3R5bGVXaXRoUmVkdW5kYW50UHJvcGVydGllcyk7CkBAIC00MDUsNiArNDIyLDkgQEAKICAg
ICBpZiAoZ2V0UkdCQUZvbnRDb2xvcihyZXN1bHQuZ2V0KCkpID09IGdldFJHQkFGb250Q29sb3Io
YmFzZVN0eWxlKSkKICAgICAgICAgcmVzdWx0LT5yZW1vdmVQcm9wZXJ0eShDU1NQcm9wZXJ0eUNv
bG9yKTsKIAorICAgIGlmIChnZXRUZXh0QWxpZ25tZW50KHJlc3VsdC5nZXQoKSkgPT0gZ2V0VGV4
dEFsaWdubWVudChiYXNlU3R5bGUpKQorICAgICAgICByZXN1bHQtPnJlbW92ZVByb3BlcnR5KENT
U1Byb3BlcnR5VGV4dEFsaWduKTsgICAgICAgIAorCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApJ
bmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9zY3JpcHQtdGVzdHMvcXVlcnkt
dGV4dC1hbGlnbm1lbnQuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9leGVj
Q29tbWFuZC9zY3JpcHQtdGVzdHMvcXVlcnktdGV4dC1hbGlnbm1lbnQuanMJKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3NjcmlwdC10ZXN0cy9xdWVyeS10
ZXh0LWFsaWdubWVudC5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw5NCBAQAorZGVzY3JpcHRp
b24oIlRlc3RzIHF1ZXJ5Q29tbWFuZFN0YXRlKCdqdXN0aWZ5TGVmdCcpLCBxdWVyeUNvbW1hbmRT
dGF0ZSgnanVzdGlmeVJpZ2h0JyksIGFuZCBxdWVyeUNvbW1hbmRTdGF0ZSgnanVzdGlmeUNlbnRl
cicpIikKKwordmFyIHRlc3RDb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYi
KTsKK3Rlc3RDb250YWluZXIuY29udGVudEVkaXRhYmxlID0gdHJ1ZTsKK2RvY3VtZW50LmJvZHku
YXBwZW5kQ2hpbGQodGVzdENvbnRhaW5lcik7CisKK2Z1bmN0aW9uIHF1ZXJ5VGV4dEFsaWdubWVu
dChzZWxlY3RvciwgY29udGVudCwgZXhwZWN0ZWQpCit7CisgICAgdGVzdENvbnRhaW5lci5pbm5l
ckhUTUwgPSBjb250ZW50OworICAgIHZhciBzZWxlY3RlZCA9IHNlbGVjdG9yKHRlc3RDb250YWlu
ZXIpOworICAgIHZhciBsZWZ0ID0gZG9jdW1lbnQucXVlcnlDb21tYW5kU3RhdGUoJ2p1c3RpZnlM
ZWZ0Jyk7CisgICAgdmFyIHJpZ2h0ID0gZG9jdW1lbnQucXVlcnlDb21tYW5kU3RhdGUoJ2p1c3Rp
ZnlSaWdodCcpOworICAgIHZhciBjZW50ZXIgPSBkb2N1bWVudC5xdWVyeUNvbW1hbmRTdGF0ZSgn
anVzdGlmeUNlbnRlcicpOworICAgIGlmICgobGVmdCAmJiByaWdodCkgfHwgKHJpZ2h0ICYmIGNl
bnRlcikgfHwgKGNlbnRlciAmJiBsZWZ0KSkKKyAgICAgICAgdGVzdEZhaWxlZCgnSW5jb25zaXN0
ZW50IHN0YXRlIG9uICcgKyBzZWxlY3RlZCArICcgaW4gIicgKyBjb250ZW50ICsgJyIuICBBdCBs
ZWFzdCB0d28gb2YganVzdGlmeUxlZnQsIGp1c3RpZnlSaWdodCwgYW5kIGp1c3RpZnlDZW50ZXIg
cmV0dXJuZWQgdHJ1ZS4nKQorCisgICAgdmFyIGFjdHVhbCA9IGxlZnQgPyAnbGVmdCcgOiByaWdo
dCA/ICdyaWdodCcgOiBjZW50ZXIgPyAnY2VudGVyJyA6ICcnOworICAgIHZhciBhY3Rpb24gPSAi
cXVlcnlDb21tYW5kKCdmb3JtYXQnKSByZXR1cm5lZCBcIiIgKyBhY3R1YWwgKyAnIiBmb3IgJyAr
IHNlbGVjdGVkICsgJyAiJyArIGNvbnRlbnQgKyAnIic7CisgICAgaWYgKGFjdHVhbCA9PSBleHBl
Y3RlZCkKKyAgICAgICAgdGVzdFBhc3NlZChhY3Rpb24pOworICAgIGVsc2UKKyAgICAgICAgdGVz
dEZhaWxlZChhY3Rpb24gKyAnIGJ1dCBleHBlY3RlZCAiJyArIGV4cGVjdGVkICsgJyInKTsKK30K
KworZnVuY3Rpb24gc2VsZWN0Rmlyc3RQb3NpdGlvbihjb250YWluZXIpIHsKKyAgICB3aGlsZSAo
Y29udGFpbmVyLmZpcnN0Q2hpbGQpCisgICAgICAgIGNvbnRhaW5lciA9IGNvbnRhaW5lci5maXJz
dENoaWxkOworICAgIHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5zZXRQb3NpdGlvbihjb250YWluZXIs
IDApOworICAgIHJldHVybiAnZmlyc3QgcG9zaXRpb24gaW4nOworfQorCitmdW5jdGlvbiBzZWxl
Y3RNaWRkbGVPZkhlbGxvV29ybGQoY29udGFpbmVyKSB7CisgICAgd2luZG93LmdldFNlbGVjdGlv
bigpLnNldFBvc2l0aW9uKGNvbnRhaW5lciwgMCk7CisgICAgd2luZG93LmdldFNlbGVjdGlvbigp
Lm1vZGlmeSgnbW92ZScsICdmb3J3YXJkJywgJ2NoYXJhY3RlcicpOworICAgIHdpbmRvdy5nZXRT
ZWxlY3Rpb24oKS5tb2RpZnkoJ21vdmUnLCAnZm9yd2FyZCcsICdjaGFyYWN0ZXInKTsKKyAgICB3
aW5kb3cuZ2V0U2VsZWN0aW9uKCkubW9kaWZ5KCdleHRlbmQnLCAnZm9yd2FyZCcsICd3b3JkJyk7
CisgICAgd2luZG93LmdldFNlbGVjdGlvbigpLm1vZGlmeSgnZXh0ZW5kJywgJ2ZvcndhcmQnLCAn
Y2hhcmFjdGVyJyk7CisgICAgd2luZG93LmdldFNlbGVjdGlvbigpLm1vZGlmeSgnZXh0ZW5kJywg
J2ZvcndhcmQnLCAnY2hhcmFjdGVyJyk7CisgICAgd2luZG93LmdldFNlbGVjdGlvbigpLm1vZGlm
eSgnZXh0ZW5kJywgJ2ZvcndhcmQnLCAnY2hhcmFjdGVyJyk7CisgICAgcmV0dXJuICd0aGUgMm5k
IHRocm91Z2ggdGhlIDNyZCB0byBsYXN0IGxldHRlcnMgaW4nCit9CisKK2RlYnVnKCdDYXJldCcp
OworcXVlcnlUZXh0QWxpZ25tZW50KGZ1bmN0aW9uICgpIHtyZXR1cm4gJ25vIHNlbGVjdGlvbiBv
bid9LCAnaGVsbG8nLCAnJyk7CitxdWVyeVRleHRBbGlnbm1lbnQoc2VsZWN0Rmlyc3RQb3NpdGlv
biwgJ2hlbGxvJywgJycpOworcXVlcnlUZXh0QWxpZ25tZW50KHNlbGVjdEZpcnN0UG9zaXRpb24s
ICc8cD5oZWxsbzwvcD4nLCAnJyk7CitxdWVyeVRleHRBbGlnbm1lbnQoc2VsZWN0Rmlyc3RQb3Np
dGlvbiwgJzxwIGFsaWduPSJsZWZ0Ij5oZWxsbzwvcD4nLCAnbGVmdCcpOworcXVlcnlUZXh0QWxp
Z25tZW50KHNlbGVjdEZpcnN0UG9zaXRpb24sICc8cCBhbGlnbj0icmlnaHQiPmhlbGxvPC9wPics
ICdyaWdodCcpOworcXVlcnlUZXh0QWxpZ25tZW50KHNlbGVjdEZpcnN0UG9zaXRpb24sICc8cCBh
bGlnbj0iY2VudGVyIj5oZWxsbzwvcD4nLCAnY2VudGVyJyk7CitxdWVyeVRleHRBbGlnbm1lbnQo
c2VsZWN0Rmlyc3RQb3NpdGlvbiwgJzxwIHN0eWxlPSJ0ZXh0LWFsaWduOiBsZWZ0OyI+aGVsbG88
L3A+JywgJ2xlZnQnKTsKK3F1ZXJ5VGV4dEFsaWdubWVudChzZWxlY3RGaXJzdFBvc2l0aW9uLCAn
PHAgc3R5bGU9InRleHQtYWxpZ246IHJpZ2h0OyI+aGVsbG88L3A+JywgJ3JpZ2h0Jyk7CitxdWVy
eVRleHRBbGlnbm1lbnQoc2VsZWN0Rmlyc3RQb3NpdGlvbiwgJzxwIHN0eWxlPSJ0ZXh0LWFsaWdu
OiBjZW50ZXI7Ij5oZWxsbzwvcD4nLCAnY2VudGVyJyk7CitxdWVyeVRleHRBbGlnbm1lbnQoc2Vs
ZWN0Rmlyc3RQb3NpdGlvbiwgJzxwIGFsaWduPSJyaWdodCIgc3R5bGU9InRleHQtYWxpZ246IGxl
ZnQ7Ij5oZWxsbzwvcD4nLCAnbGVmdCcpOworcXVlcnlUZXh0QWxpZ25tZW50KHNlbGVjdEZpcnN0
UG9zaXRpb24sICc8cCBhbGlnbj0iY2VudGVyIiBzdHlsZT0idGV4dC1hbGlnbjogcmlnaHQ7Ij5o
ZWxsbzwvcD4nLCAncmlnaHQnKTsKK3F1ZXJ5VGV4dEFsaWdubWVudChzZWxlY3RGaXJzdFBvc2l0
aW9uLCAnPHAgYWxpZ249ImxlZnQiIHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXI7Ij5oZWxsbzwv
cD4nLCAnY2VudGVyJyk7CitxdWVyeVRleHRBbGlnbm1lbnQoc2VsZWN0Rmlyc3RQb3NpdGlvbiwg
JzxwIGFsaWduPSJyaWdodCIgc3R5bGU9InRleHQtYWxpZ246IGxlZnQ7Ij5oZWxsbzwvcD4nLCAn
bGVmdCcpOworcXVlcnlUZXh0QWxpZ25tZW50KHNlbGVjdEZpcnN0UG9zaXRpb24sICc8cCBhbGln
bj0iY2VudGVyIiBzdHlsZT0idGV4dC1hbGlnbjogcmlnaHQ7Ij5oZWxsbzwvcD4nLCAncmlnaHQn
KTsKK3F1ZXJ5VGV4dEFsaWdubWVudChzZWxlY3RGaXJzdFBvc2l0aW9uLCAnPHAgYWxpZ249Imxl
ZnQiIHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXI7Ij5oZWxsbzwvcD4nLCAnY2VudGVyJyk7Citx
dWVyeVRleHRBbGlnbm1lbnQoc2VsZWN0Rmlyc3RQb3NpdGlvbiwgJzxoMT5oZWxsbzwvaDE+Jywg
JycpOworcXVlcnlUZXh0QWxpZ25tZW50KHNlbGVjdEZpcnN0UG9zaXRpb24sICc8aDEgYWxpZ249
ImxlZnQiPmhlbGxvPC9oMT4nLCAnbGVmdCcpOworcXVlcnlUZXh0QWxpZ25tZW50KHNlbGVjdEZp
cnN0UG9zaXRpb24sICc8aDIgYWxpZ249InJpZ2h0Ij5oZWxsbzwvaDI+JywgJ3JpZ2h0Jyk7Citx
dWVyeVRleHRBbGlnbm1lbnQoc2VsZWN0Rmlyc3RQb3NpdGlvbiwgJzxoMyBhbGlnbj0iY2VudGVy
Ij5oZWxsbzwvaDM+JywgJ2NlbnRlcicpOworcXVlcnlUZXh0QWxpZ25tZW50KHNlbGVjdEZpcnN0
UG9zaXRpb24sICc8aDQgYWxpZ249ImxlZnQiPmhlbGxvPC9oND4nLCAnbGVmdCcpOworcXVlcnlU
ZXh0QWxpZ25tZW50KHNlbGVjdEZpcnN0UG9zaXRpb24sICc8aDUgYWxpZ249InJpZ2h0Ij5oZWxs
bzwvaDU+JywgJ3JpZ2h0Jyk7CitxdWVyeVRleHRBbGlnbm1lbnQoc2VsZWN0Rmlyc3RQb3NpdGlv
biwgJzxoNiBhbGlnbj0iY2VudGVyIj5oZWxsbzwvaDY+JywgJ2NlbnRlcicpOworcXVlcnlUZXh0
QWxpZ25tZW50KHNlbGVjdEZpcnN0UG9zaXRpb24sICc8ZGl2IGFsaWduPSJsZWZ0Ij5oZWxsbzwv
ZGl2PicsICdsZWZ0Jyk7CitxdWVyeVRleHRBbGlnbm1lbnQoc2VsZWN0Rmlyc3RQb3NpdGlvbiwg
JzxkaXYgYWxpZ249InJpZ2h0Ij5oZWxsbzwvZGl2PicsICdyaWdodCcpOworcXVlcnlUZXh0QWxp
Z25tZW50KHNlbGVjdEZpcnN0UG9zaXRpb24sICc8ZGl2IGFsaWduPSJjZW50ZXIiPmhlbGxvPC9k
aXY+JywgJ2NlbnRlcicpOworCitmdW5jdGlvbiByYW5nZVRlc3RzKGlzTWFjKQoreworICAgIGlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLnNldEVkaXRpbmdCZWhhdmlvcihpc01hYyA/ICdtYWMnIDogJ3dpbicpOworICAgIHF1ZXJ5
VGV4dEFsaWdubWVudChzZWxlY3RNaWRkbGVPZkhlbGxvV29ybGQsICc8cD5oZWxsbzwvcD48cD53
b3JsZDwvcD4nLCAnJyk7CisgICAgcXVlcnlUZXh0QWxpZ25tZW50KHNlbGVjdE1pZGRsZU9mSGVs
bG9Xb3JsZCwgJzxwIGFsaWduPSJsZWZ0Ij5oZWxsbzwvcD48cD53b3JsZDwvcD4nLCBpc01hYyA/
ICdsZWZ0JyA6ICcnKTsKKyAgICBxdWVyeVRleHRBbGlnbm1lbnQoc2VsZWN0TWlkZGxlT2ZIZWxs
b1dvcmxkLCAnPHA+aGVsbG88L3A+PHAgYWxpZ249ImxlZnQiPndvcmxkPC9wPicsICcnKTsKKyAg
ICBxdWVyeVRleHRBbGlnbm1lbnQoc2VsZWN0TWlkZGxlT2ZIZWxsb1dvcmxkLCAnPHAgYWxpZ249
ImxlZnQiPmhlbGxvPC9wPjxwIGFsaWduPSJyaWdodCI+d29ybGQ8L3A+JywgaXNNYWMgPyAnbGVm
dCcgOiAnJyk7CisgICAgcXVlcnlUZXh0QWxpZ25tZW50KHNlbGVjdE1pZGRsZU9mSGVsbG9Xb3Js
ZCwgJzxwIGFsaWduPSJsZWZ0Ij5oZWxsbzwvcD48cCBhbGlnbj0ibGVmdCI+d29ybGQ8L3A+Jywg
J2xlZnQnKTsKKyAgICBxdWVyeVRleHRBbGlnbm1lbnQoc2VsZWN0TWlkZGxlT2ZIZWxsb1dvcmxk
LCAnPHAgYWxpZ249InJpZ2h0Ij5oZWxsbzwvcD48cCBhbGlnbj0icmlnaHQiPndvcmxkPC9wPics
ICdyaWdodCcpOworICAgIHF1ZXJ5VGV4dEFsaWdubWVudChzZWxlY3RNaWRkbGVPZkhlbGxvV29y
bGQsICc8cCBhbGlnbj0iY2VudGVyIj5oZWxsbzwvcD48cCBhbGlnbj0iY2VudGVyIj53b3JsZDwv
cD4nLCAnY2VudGVyJyk7CisgICAgcXVlcnlUZXh0QWxpZ25tZW50KHNlbGVjdE1pZGRsZU9mSGVs
bG9Xb3JsZCwgJzxkaXYgYWxpZ249InJpZ2h0Ij5oZWxsbzxwIGFsaWduPSJsZWZ0Ij53b3JsZDwv
cD48L2Rpdj4nLCBpc01hYyA/ICdyaWdodCcgOiAnJyk7CisgICAgcXVlcnlUZXh0QWxpZ25tZW50
KHNlbGVjdE1pZGRsZU9mSGVsbG9Xb3JsZCwgJzxkaXYgYWxpZ249ImxlZnQiPjxwIGFsaWduPSJj
ZW50ZXIiPndvcmxkPC9wPmhlbGxvPC9kaXY+JywgaXNNYWMgPyAnbGVmdCcgOiAnJyk7Cit9CisK
K2RlYnVnKCcnKTsKK2RlYnVnKCdSYW5nZSAoTWFjKScpOworcmFuZ2VUZXN0cyh0cnVlKTsKKwor
ZGVidWcoJycpOworZGVidWcoJ1JhbmdlIChub24tTWFjKScpOworcmFuZ2VUZXN0cyhmYWxzZSk7
CisKK2RvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodGVzdENvbnRhaW5lcik7Cit2YXIgc3VjY2Vz
c2Z1bGx5UGFyc2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1h
bmQvcXVlcnktdGV4dC1hbGlnbm1lbnQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvcXVlcnktdGV4dC1hbGlnbm1lbnQtZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9xdWVy
eS10ZXh0LWFsaWdubWVudC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTcg
QEAKK1Rlc3RzIHF1ZXJ5Q29tbWFuZFN0YXRlKCdqdXN0aWZ5TGVmdCcpLCBxdWVyeUNvbW1hbmRT
dGF0ZSgnanVzdGlmeVJpZ2h0JyksIGFuZCBxdWVyeUNvbW1hbmRTdGF0ZSgnanVzdGlmeUNlbnRl
cicpCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitDYXJldAorUEFTUyBxdWVyeUNv
bW1hbmQoJ2Zvcm1hdCcpIHJldHVybmVkICIiIGZvciBubyBzZWxlY3Rpb24gb24gImhlbGxvIgor
UEFTUyBxdWVyeUNvbW1hbmQoJ2Zvcm1hdCcpIHJldHVybmVkICIiIGZvciBmaXJzdCBwb3NpdGlv
biBpbiAiaGVsbG8iCitQQVNTIHF1ZXJ5Q29tbWFuZCgnZm9ybWF0JykgcmV0dXJuZWQgIiIgZm9y
IGZpcnN0IHBvc2l0aW9uIGluICI8cD5oZWxsbzwvcD4iCitQQVNTIHF1ZXJ5Q29tbWFuZCgnZm9y
bWF0JykgcmV0dXJuZWQgImxlZnQiIGZvciBmaXJzdCBwb3NpdGlvbiBpbiAiPHAgYWxpZ249Imxl
ZnQiPmhlbGxvPC9wPiIKK1BBU1MgcXVlcnlDb21tYW5kKCdmb3JtYXQnKSByZXR1cm5lZCAicmln
aHQiIGZvciBmaXJzdCBwb3NpdGlvbiBpbiAiPHAgYWxpZ249InJpZ2h0Ij5oZWxsbzwvcD4iCitQ
QVNTIHF1ZXJ5Q29tbWFuZCgnZm9ybWF0JykgcmV0dXJuZWQgImNlbnRlciIgZm9yIGZpcnN0IHBv
c2l0aW9uIGluICI8cCBhbGlnbj0iY2VudGVyIj5oZWxsbzwvcD4iCitQQVNTIHF1ZXJ5Q29tbWFu
ZCgnZm9ybWF0JykgcmV0dXJuZWQgImxlZnQiIGZvciBmaXJzdCBwb3NpdGlvbiBpbiAiPHAgc3R5
bGU9InRleHQtYWxpZ246IGxlZnQ7Ij5oZWxsbzwvcD4iCitQQVNTIHF1ZXJ5Q29tbWFuZCgnZm9y
bWF0JykgcmV0dXJuZWQgInJpZ2h0IiBmb3IgZmlyc3QgcG9zaXRpb24gaW4gIjxwIHN0eWxlPSJ0
ZXh0LWFsaWduOiByaWdodDsiPmhlbGxvPC9wPiIKK1BBU1MgcXVlcnlDb21tYW5kKCdmb3JtYXQn
KSByZXR1cm5lZCAiY2VudGVyIiBmb3IgZmlyc3QgcG9zaXRpb24gaW4gIjxwIHN0eWxlPSJ0ZXh0
LWFsaWduOiBjZW50ZXI7Ij5oZWxsbzwvcD4iCitQQVNTIHF1ZXJ5Q29tbWFuZCgnZm9ybWF0Jykg
cmV0dXJuZWQgImxlZnQiIGZvciBmaXJzdCBwb3NpdGlvbiBpbiAiPHAgYWxpZ249InJpZ2h0IiBz
dHlsZT0idGV4dC1hbGlnbjogbGVmdDsiPmhlbGxvPC9wPiIKK1BBU1MgcXVlcnlDb21tYW5kKCdm
b3JtYXQnKSByZXR1cm5lZCAicmlnaHQiIGZvciBmaXJzdCBwb3NpdGlvbiBpbiAiPHAgYWxpZ249
ImNlbnRlciIgc3R5bGU9InRleHQtYWxpZ246IHJpZ2h0OyI+aGVsbG88L3A+IgorUEFTUyBxdWVy
eUNvbW1hbmQoJ2Zvcm1hdCcpIHJldHVybmVkICJjZW50ZXIiIGZvciBmaXJzdCBwb3NpdGlvbiBp
biAiPHAgYWxpZ249ImxlZnQiIHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXI7Ij5oZWxsbzwvcD4i
CitQQVNTIHF1ZXJ5Q29tbWFuZCgnZm9ybWF0JykgcmV0dXJuZWQgImxlZnQiIGZvciBmaXJzdCBw
b3NpdGlvbiBpbiAiPHAgYWxpZ249InJpZ2h0IiBzdHlsZT0idGV4dC1hbGlnbjogbGVmdDsiPmhl
bGxvPC9wPiIKK1BBU1MgcXVlcnlDb21tYW5kKCdmb3JtYXQnKSByZXR1cm5lZCAicmlnaHQiIGZv
ciBmaXJzdCBwb3NpdGlvbiBpbiAiPHAgYWxpZ249ImNlbnRlciIgc3R5bGU9InRleHQtYWxpZ246
IHJpZ2h0OyI+aGVsbG88L3A+IgorUEFTUyBxdWVyeUNvbW1hbmQoJ2Zvcm1hdCcpIHJldHVybmVk
ICJjZW50ZXIiIGZvciBmaXJzdCBwb3NpdGlvbiBpbiAiPHAgYWxpZ249ImxlZnQiIHN0eWxlPSJ0
ZXh0LWFsaWduOiBjZW50ZXI7Ij5oZWxsbzwvcD4iCitQQVNTIHF1ZXJ5Q29tbWFuZCgnZm9ybWF0
JykgcmV0dXJuZWQgIiIgZm9yIGZpcnN0IHBvc2l0aW9uIGluICI8aDE+aGVsbG88L2gxPiIKK1BB
U1MgcXVlcnlDb21tYW5kKCdmb3JtYXQnKSByZXR1cm5lZCAibGVmdCIgZm9yIGZpcnN0IHBvc2l0
aW9uIGluICI8aDEgYWxpZ249ImxlZnQiPmhlbGxvPC9oMT4iCitQQVNTIHF1ZXJ5Q29tbWFuZCgn
Zm9ybWF0JykgcmV0dXJuZWQgInJpZ2h0IiBmb3IgZmlyc3QgcG9zaXRpb24gaW4gIjxoMiBhbGln
bj0icmlnaHQiPmhlbGxvPC9oMj4iCitQQVNTIHF1ZXJ5Q29tbWFuZCgnZm9ybWF0JykgcmV0dXJu
ZWQgImNlbnRlciIgZm9yIGZpcnN0IHBvc2l0aW9uIGluICI8aDMgYWxpZ249ImNlbnRlciI+aGVs
bG88L2gzPiIKK1BBU1MgcXVlcnlDb21tYW5kKCdmb3JtYXQnKSByZXR1cm5lZCAibGVmdCIgZm9y
IGZpcnN0IHBvc2l0aW9uIGluICI8aDQgYWxpZ249ImxlZnQiPmhlbGxvPC9oND4iCitQQVNTIHF1
ZXJ5Q29tbWFuZCgnZm9ybWF0JykgcmV0dXJuZWQgInJpZ2h0IiBmb3IgZmlyc3QgcG9zaXRpb24g
aW4gIjxoNSBhbGlnbj0icmlnaHQiPmhlbGxvPC9oNT4iCitQQVNTIHF1ZXJ5Q29tbWFuZCgnZm9y
bWF0JykgcmV0dXJuZWQgImNlbnRlciIgZm9yIGZpcnN0IHBvc2l0aW9uIGluICI8aDYgYWxpZ249
ImNlbnRlciI+aGVsbG88L2g2PiIKK1BBU1MgcXVlcnlDb21tYW5kKCdmb3JtYXQnKSByZXR1cm5l
ZCAibGVmdCIgZm9yIGZpcnN0IHBvc2l0aW9uIGluICI8ZGl2IGFsaWduPSJsZWZ0Ij5oZWxsbzwv
ZGl2PiIKK1BBU1MgcXVlcnlDb21tYW5kKCdmb3JtYXQnKSByZXR1cm5lZCAicmlnaHQiIGZvciBm
aXJzdCBwb3NpdGlvbiBpbiAiPGRpdiBhbGlnbj0icmlnaHQiPmhlbGxvPC9kaXY+IgorUEFTUyBx
dWVyeUNvbW1hbmQoJ2Zvcm1hdCcpIHJldHVybmVkICJjZW50ZXIiIGZvciBmaXJzdCBwb3NpdGlv
biBpbiAiPGRpdiBhbGlnbj0iY2VudGVyIj5oZWxsbzwvZGl2PiIKKworUmFuZ2UgKE1hYykKK1BB
U1MgcXVlcnlDb21tYW5kKCdmb3JtYXQnKSByZXR1cm5lZCAiIiBmb3IgdGhlIDJuZCB0aHJvdWdo
IHRoZSAzcmQgdG8gbGFzdCBsZXR0ZXJzIGluICI8cD5oZWxsbzwvcD48cD53b3JsZDwvcD4iCitG
QUlMIHF1ZXJ5Q29tbWFuZCgnZm9ybWF0JykgcmV0dXJuZWQgIiIgZm9yIHRoZSAybmQgdGhyb3Vn
aCB0aGUgM3JkIHRvIGxhc3QgbGV0dGVycyBpbiAiPHAgYWxpZ249ImxlZnQiPmhlbGxvPC9wPjxw
PndvcmxkPC9wPiIgYnV0IGV4cGVjdGVkICJsZWZ0IgorUEFTUyBxdWVyeUNvbW1hbmQoJ2Zvcm1h
dCcpIHJldHVybmVkICIiIGZvciB0aGUgMm5kIHRocm91Z2ggdGhlIDNyZCB0byBsYXN0IGxldHRl
cnMgaW4gIjxwPmhlbGxvPC9wPjxwIGFsaWduPSJsZWZ0Ij53b3JsZDwvcD4iCitGQUlMIHF1ZXJ5
Q29tbWFuZCgnZm9ybWF0JykgcmV0dXJuZWQgIiIgZm9yIHRoZSAybmQgdGhyb3VnaCB0aGUgM3Jk
IHRvIGxhc3QgbGV0dGVycyBpbiAiPHAgYWxpZ249ImxlZnQiPmhlbGxvPC9wPjxwIGFsaWduPSJy
aWdodCI+d29ybGQ8L3A+IiBidXQgZXhwZWN0ZWQgImxlZnQiCitQQVNTIHF1ZXJ5Q29tbWFuZCgn
Zm9ybWF0JykgcmV0dXJuZWQgImxlZnQiIGZvciB0aGUgMm5kIHRocm91Z2ggdGhlIDNyZCB0byBs
YXN0IGxldHRlcnMgaW4gIjxwIGFsaWduPSJsZWZ0Ij5oZWxsbzwvcD48cCBhbGlnbj0ibGVmdCI+
d29ybGQ8L3A+IgorUEFTUyBxdWVyeUNvbW1hbmQoJ2Zvcm1hdCcpIHJldHVybmVkICJyaWdodCIg
Zm9yIHRoZSAybmQgdGhyb3VnaCB0aGUgM3JkIHRvIGxhc3QgbGV0dGVycyBpbiAiPHAgYWxpZ249
InJpZ2h0Ij5oZWxsbzwvcD48cCBhbGlnbj0icmlnaHQiPndvcmxkPC9wPiIKK1BBU1MgcXVlcnlD
b21tYW5kKCdmb3JtYXQnKSByZXR1cm5lZCAiY2VudGVyIiBmb3IgdGhlIDJuZCB0aHJvdWdoIHRo
ZSAzcmQgdG8gbGFzdCBsZXR0ZXJzIGluICI8cCBhbGlnbj0iY2VudGVyIj5oZWxsbzwvcD48cCBh
bGlnbj0iY2VudGVyIj53b3JsZDwvcD4iCitGQUlMIHF1ZXJ5Q29tbWFuZCgnZm9ybWF0JykgcmV0
dXJuZWQgIiIgZm9yIHRoZSAybmQgdGhyb3VnaCB0aGUgM3JkIHRvIGxhc3QgbGV0dGVycyBpbiAi
PGRpdiBhbGlnbj0icmlnaHQiPmhlbGxvPHAgYWxpZ249ImxlZnQiPndvcmxkPC9wPjwvZGl2PiIg
YnV0IGV4cGVjdGVkICJyaWdodCIKK0ZBSUwgcXVlcnlDb21tYW5kKCdmb3JtYXQnKSByZXR1cm5l
ZCAiIiBmb3IgdGhlIDJuZCB0aHJvdWdoIHRoZSAzcmQgdG8gbGFzdCBsZXR0ZXJzIGluICI8ZGl2
IGFsaWduPSJsZWZ0Ij48cCBhbGlnbj0iY2VudGVyIj53b3JsZDwvcD5oZWxsbzwvZGl2PiIgYnV0
IGV4cGVjdGVkICJsZWZ0IgorCitSYW5nZSAobm9uLU1hYykKK1BBU1MgcXVlcnlDb21tYW5kKCdm
b3JtYXQnKSByZXR1cm5lZCAiIiBmb3IgdGhlIDJuZCB0aHJvdWdoIHRoZSAzcmQgdG8gbGFzdCBs
ZXR0ZXJzIGluICI8cD5oZWxsbzwvcD48cD53b3JsZDwvcD4iCitQQVNTIHF1ZXJ5Q29tbWFuZCgn
Zm9ybWF0JykgcmV0dXJuZWQgIiIgZm9yIHRoZSAybmQgdGhyb3VnaCB0aGUgM3JkIHRvIGxhc3Qg
bGV0dGVycyBpbiAiPHAgYWxpZ249ImxlZnQiPmhlbGxvPC9wPjxwPndvcmxkPC9wPiIKK1BBU1Mg
cXVlcnlDb21tYW5kKCdmb3JtYXQnKSByZXR1cm5lZCAiIiBmb3IgdGhlIDJuZCB0aHJvdWdoIHRo
ZSAzcmQgdG8gbGFzdCBsZXR0ZXJzIGluICI8cD5oZWxsbzwvcD48cCBhbGlnbj0ibGVmdCI+d29y
bGQ8L3A+IgorUEFTUyBxdWVyeUNvbW1hbmQoJ2Zvcm1hdCcpIHJldHVybmVkICIiIGZvciB0aGUg
Mm5kIHRocm91Z2ggdGhlIDNyZCB0byBsYXN0IGxldHRlcnMgaW4gIjxwIGFsaWduPSJsZWZ0Ij5o
ZWxsbzwvcD48cCBhbGlnbj0icmlnaHQiPndvcmxkPC9wPiIKK1BBU1MgcXVlcnlDb21tYW5kKCdm
b3JtYXQnKSByZXR1cm5lZCAibGVmdCIgZm9yIHRoZSAybmQgdGhyb3VnaCB0aGUgM3JkIHRvIGxh
c3QgbGV0dGVycyBpbiAiPHAgYWxpZ249ImxlZnQiPmhlbGxvPC9wPjxwIGFsaWduPSJsZWZ0Ij53
b3JsZDwvcD4iCitQQVNTIHF1ZXJ5Q29tbWFuZCgnZm9ybWF0JykgcmV0dXJuZWQgInJpZ2h0IiBm
b3IgdGhlIDJuZCB0aHJvdWdoIHRoZSAzcmQgdG8gbGFzdCBsZXR0ZXJzIGluICI8cCBhbGlnbj0i
cmlnaHQiPmhlbGxvPC9wPjxwIGFsaWduPSJyaWdodCI+d29ybGQ8L3A+IgorUEFTUyBxdWVyeUNv
bW1hbmQoJ2Zvcm1hdCcpIHJldHVybmVkICJjZW50ZXIiIGZvciB0aGUgMm5kIHRocm91Z2ggdGhl
IDNyZCB0byBsYXN0IGxldHRlcnMgaW4gIjxwIGFsaWduPSJjZW50ZXIiPmhlbGxvPC9wPjxwIGFs
aWduPSJjZW50ZXIiPndvcmxkPC9wPiIKK1BBU1MgcXVlcnlDb21tYW5kKCdmb3JtYXQnKSByZXR1
cm5lZCAiIiBmb3IgdGhlIDJuZCB0aHJvdWdoIHRoZSAzcmQgdG8gbGFzdCBsZXR0ZXJzIGluICI8
ZGl2IGFsaWduPSJyaWdodCI+aGVsbG88cCBhbGlnbj0ibGVmdCI+d29ybGQ8L3A+PC9kaXY+Igor
UEFTUyBxdWVyeUNvbW1hbmQoJ2Zvcm1hdCcpIHJldHVybmVkICIiIGZvciB0aGUgMm5kIHRocm91
Z2ggdGhlIDNyZCB0byBsYXN0IGxldHRlcnMgaW4gIjxkaXYgYWxpZ249ImxlZnQiPjxwIGFsaWdu
PSJjZW50ZXIiPndvcmxkPC9wPmhlbGxvPC9kaXY+IgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZXhl
Y0NvbW1hbmQvcXVlcnktdGV4dC1hbGlnbm1lbnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3F1ZXJ5LXRleHQtYWxpZ25tZW50Lmh0bWwJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3F1ZXJ5LXRleHQtYWxp
Z25tZW50Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBIVE1M
IFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayBy
ZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5
bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9w
PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3F1
ZXJ5LXRleHQtYWxpZ25tZW50LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68971</attachid>
            <date>2010-09-27 15:13:06 -0700</date>
            <delta_ts>2010-09-27 16:21:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-45910-20100927151305.patch</filename>
            <type>text/plain</type>
            <size>19725</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2ODQyNikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjUgQEAKKzIwMTAtMDktMjcgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5v
cmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgcXVl
cnlDb21tYW5kU3RhdGUgd2l0aCBqdXN0aWZ5Q2VudGVyLCBqdXN0aWZ5TGVmdCwgYW5kIGp1c3Rp
ZnlSaWdodCBhbHdheXMgcmV0dXJuIGZhbHNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD00NTkxMAorCisgICAgICAgIEltcGxlbWVudGVkIHF1ZXJ5Q29t
bWFuZFN0YXRlIGZvciBqdXN0aWZ5Q2VudGVyLCBqdXN0aWZ5TGVmdCwgYW5kIGp1c3RpZnlSaWdo
dCBjb21tYW5kcy4KKyAgICAgICAgQWRkZWQgZ2V0VGV4dEFsaWdubWVudCB0byBjb252ZXJ0IC13
ZWJraXQtY2VudGVyLCAtd2Via2l0LWxlZnQsIGFuZCAtd2Via2l0LXJpZ2h0IHRvCisgICAgICAg
IGNlbnRlciwgbGVmdCwgYW5kIHJpZ2h0IHJlc3BlY3RpdmVseSBiZWNhdXNlIHRoZXkgY2FuIGJl
IHRyZWF0ZWQgZXF1YWxseSBmb3IgZWRpdGluZyBwdXJwb3Nlcy4KKworICAgICAgICBUZXN0OiBl
ZGl0aW5nL2V4ZWNDb21tYW5kL3F1ZXJ5LXRleHQtYWxpZ25tZW50Lmh0bWwKKworICAgICAgICAq
IGVkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Z2V0VGV4
dEFsaWdubWVudCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Z2V0UHJvcGVydGllc05vdElu
KTogVXNlcyBnZXRUZXh0QWxpZ25tZW50LgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9yQ29tbWFu
ZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzdGF0ZUp1c3RpZnlDZW50ZXIpOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OnN0YXRlSnVzdGlmeUxlZnQpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OnN0YXRlSnVzdGlmeVJpZ2h0KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVD
b21tYW5kTWFwKTogUmVmZXJzIHRvIHN0YXRlSnVzdGlmeUNlbnRlciwgc3RhdGVKdXN0aWZ5TGVm
dCwgYW5kIHN0YXRlSnVzdGlmeVJpZ2h0LgorCiAyMDEwLTA5LTE0ICBaaGVueWFvIE1vICA8em1v
QGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSdXNzZWxsLgpJbmRl
eDogV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwCShyZXZpc2lvbiA2ODQyNCkKKysr
IFdlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTM4OCw2ICszODgsMjMgQEAgc3RhdGljIGJvb2wgZm9udFdlaWdodElzQm9sZChDU1NTdHlsZURl
YwogICAgIHJldHVybiBmYWxzZTsgLy8gTWFrZSBjb21waWxlciBoYXBweQogfQogCitzdGF0aWMg
aW50IGdldFRleHRBbGlnbm1lbnQoQ1NTU3R5bGVEZWNsYXJhdGlvbiogc3R5bGUpCit7CisgICAg
aW50IHRleHRBbGlnbiA9IGdldElkZW50aWZpZXJWYWx1ZShzdHlsZSwgQ1NTUHJvcGVydHlUZXh0
QWxpZ24pOworICAgIHN3aXRjaCAodGV4dEFsaWduKSB7CisgICAgY2FzZSBDU1NWYWx1ZUNlbnRl
cjoKKyAgICBjYXNlIENTU1ZhbHVlV2Via2l0Q2VudGVyOgorICAgICAgICByZXR1cm4gQ1NTVmFs
dWVDZW50ZXI7CisgICAgY2FzZSBDU1NWYWx1ZUxlZnQ6CisgICAgY2FzZSBDU1NWYWx1ZVdlYmtp
dExlZnQ6CisgICAgICAgIHJldHVybiBDU1NWYWx1ZUxlZnQ7CisgICAgY2FzZSBDU1NWYWx1ZVJp
Z2h0OgorICAgIGNhc2UgQ1NTVmFsdWVXZWJraXRSaWdodDoKKyAgICAgICAgcmV0dXJuIENTU1Zh
bHVlUmlnaHQ7CisgICAgfQorICAgIHJldHVybiBDU1NWYWx1ZUludmFsaWQ7Cit9CisKIFJlZlB0
cjxDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbj4gZ2V0UHJvcGVydGllc05vdEluKENTU1N0eWxl
RGVjbGFyYXRpb24qIHN0eWxlV2l0aFJlZHVuZGFudFByb3BlcnRpZXMsIENTU1N0eWxlRGVjbGFy
YXRpb24qIGJhc2VTdHlsZSkKIHsKICAgICBBU1NFUlQoc3R5bGVXaXRoUmVkdW5kYW50UHJvcGVy
dGllcyk7CkBAIC00MDUsNiArNDIyLDkgQEAgUmVmUHRyPENTU011dGFibGVTdHlsZURlY2xhcmF0
aW9uPiBnZXRQcgogICAgIGlmIChnZXRSR0JBRm9udENvbG9yKHJlc3VsdC5nZXQoKSkgPT0gZ2V0
UkdCQUZvbnRDb2xvcihiYXNlU3R5bGUpKQogICAgICAgICByZXN1bHQtPnJlbW92ZVByb3BlcnR5
KENTU1Byb3BlcnR5Q29sb3IpOwogCisgICAgaWYgKGdldFRleHRBbGlnbm1lbnQocmVzdWx0Lmdl
dCgpKSA9PSBnZXRUZXh0QWxpZ25tZW50KGJhc2VTdHlsZSkpCisgICAgICAgIHJlc3VsdC0+cmVt
b3ZlUHJvcGVydHkoQ1NTUHJvcGVydHlUZXh0QWxpZ24pOyAgICAgICAgCisKICAgICByZXR1cm4g
cmVzdWx0OwogfQogCkluZGV4OiBXZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCShyZXZpc2lvbiA2
ODQyNCkKKysrIFdlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTI5OSw2ICsxMjk5LDIxIEBAIHN0YXRpYyBUcmlTdGF0ZSBzdGF0ZVVub3JkZXJlZExp
c3QoRnJhbWUKICAgICByZXR1cm4gZnJhbWUtPmVkaXRvcigpLT5zZWxlY3Rpb25Vbm9yZGVyZWRM
aXN0U3RhdGUoKTsKIH0KIAorc3RhdGljIFRyaVN0YXRlIHN0YXRlSnVzdGlmeUNlbnRlcihGcmFt
ZSogZnJhbWUsIEV2ZW50KikKK3sKKyAgICByZXR1cm4gc3RhdGVTdHlsZShmcmFtZSwgQ1NTUHJv
cGVydHlUZXh0QWxpZ24sICJjZW50ZXIiKTsKK30KKworc3RhdGljIFRyaVN0YXRlIHN0YXRlSnVz
dGlmeUxlZnQoRnJhbWUqIGZyYW1lLCBFdmVudCopCit7CisgICAgcmV0dXJuIHN0YXRlU3R5bGUo
ZnJhbWUsIENTU1Byb3BlcnR5VGV4dEFsaWduLCAibGVmdCIpOworfQorCitzdGF0aWMgVHJpU3Rh
dGUgc3RhdGVKdXN0aWZ5UmlnaHQoRnJhbWUqIGZyYW1lLCBFdmVudCopCit7CisgICAgcmV0dXJu
IHN0YXRlU3R5bGUoZnJhbWUsIENTU1Byb3BlcnR5VGV4dEFsaWduLCAicmlnaHQiKTsKK30KKwog
Ly8gVmFsdWUgZnVuY3Rpb25zCiAKIHN0YXRpYyBTdHJpbmcgdmFsdWVOdWxsKEZyYW1lKiwgRXZl
bnQqKQpAQCAtMTM4NSwxMSArMTQwMCwxMSBAQCBzdGF0aWMgY29uc3QgQ29tbWFuZE1hcCYgY3Jl
YXRlQ29tbWFuZE1hCiAgICAgICAgIHsgIkluc2VydFRleHQiLCB7IGV4ZWN1dGVJbnNlcnRUZXh0
LCBzdXBwb3J0ZWQsIGVuYWJsZWRJbkVkaXRhYmxlVGV4dCwgc3RhdGVOb25lLCB2YWx1ZU51bGws
IGlzVGV4dEluc2VydGlvbiwgZG9Ob3RBbGxvd0V4ZWN1dGlvbldoZW5EaXNhYmxlZCB9IH0sCiAg
ICAgICAgIHsgIkluc2VydFVub3JkZXJlZExpc3QiLCB7IGV4ZWN1dGVJbnNlcnRVbm9yZGVyZWRM
aXN0LCBzdXBwb3J0ZWQsIGVuYWJsZWRJblJpY2hseUVkaXRhYmxlVGV4dCwgc3RhdGVVbm9yZGVy
ZWRMaXN0LCB2YWx1ZU51bGwsIG5vdFRleHRJbnNlcnRpb24sIGRvTm90QWxsb3dFeGVjdXRpb25X
aGVuRGlzYWJsZWQgfSB9LAogICAgICAgICB7ICJJdGFsaWMiLCB7IGV4ZWN1dGVUb2dnbGVJdGFs
aWMsIHN1cHBvcnRlZCwgZW5hYmxlZEluUmljaGx5RWRpdGFibGVUZXh0LCBzdGF0ZUl0YWxpYywg
dmFsdWVOdWxsLCBub3RUZXh0SW5zZXJ0aW9uLCBkb05vdEFsbG93RXhlY3V0aW9uV2hlbkRpc2Fi
bGVkIH0gfSwKLSAgICAgICAgeyAiSnVzdGlmeUNlbnRlciIsIHsgZXhlY3V0ZUp1c3RpZnlDZW50
ZXIsIHN1cHBvcnRlZCwgZW5hYmxlZEluUmljaGx5RWRpdGFibGVUZXh0LCBzdGF0ZU5vbmUsIHZh
bHVlTnVsbCwgbm90VGV4dEluc2VydGlvbiwgZG9Ob3RBbGxvd0V4ZWN1dGlvbldoZW5EaXNhYmxl
ZCB9IH0sCisgICAgICAgIHsgIkp1c3RpZnlDZW50ZXIiLCB7IGV4ZWN1dGVKdXN0aWZ5Q2VudGVy
LCBzdXBwb3J0ZWQsIGVuYWJsZWRJblJpY2hseUVkaXRhYmxlVGV4dCwgc3RhdGVKdXN0aWZ5Q2Vu
dGVyLCB2YWx1ZU51bGwsIG5vdFRleHRJbnNlcnRpb24sIGRvTm90QWxsb3dFeGVjdXRpb25XaGVu
RGlzYWJsZWQgfSB9LAogICAgICAgICB7ICJKdXN0aWZ5RnVsbCIsIHsgZXhlY3V0ZUp1c3RpZnlG
dWxsLCBzdXBwb3J0ZWQsIGVuYWJsZWRJblJpY2hseUVkaXRhYmxlVGV4dCwgc3RhdGVOb25lLCB2
YWx1ZU51bGwsIG5vdFRleHRJbnNlcnRpb24sIGRvTm90QWxsb3dFeGVjdXRpb25XaGVuRGlzYWJs
ZWQgfSB9LAotICAgICAgICB7ICJKdXN0aWZ5TGVmdCIsIHsgZXhlY3V0ZUp1c3RpZnlMZWZ0LCBz
dXBwb3J0ZWQsIGVuYWJsZWRJblJpY2hseUVkaXRhYmxlVGV4dCwgc3RhdGVOb25lLCB2YWx1ZU51
bGwsIG5vdFRleHRJbnNlcnRpb24sIGRvTm90QWxsb3dFeGVjdXRpb25XaGVuRGlzYWJsZWQgfSB9
LAorICAgICAgICB7ICJKdXN0aWZ5TGVmdCIsIHsgZXhlY3V0ZUp1c3RpZnlMZWZ0LCBzdXBwb3J0
ZWQsIGVuYWJsZWRJblJpY2hseUVkaXRhYmxlVGV4dCwgc3RhdGVKdXN0aWZ5TGVmdCwgdmFsdWVO
dWxsLCBub3RUZXh0SW5zZXJ0aW9uLCBkb05vdEFsbG93RXhlY3V0aW9uV2hlbkRpc2FibGVkIH0g
fSwKICAgICAgICAgeyAiSnVzdGlmeU5vbmUiLCB7IGV4ZWN1dGVKdXN0aWZ5TGVmdCwgc3VwcG9y
dGVkLCBlbmFibGVkSW5SaWNobHlFZGl0YWJsZVRleHQsIHN0YXRlTm9uZSwgdmFsdWVOdWxsLCBu
b3RUZXh0SW5zZXJ0aW9uLCBkb05vdEFsbG93RXhlY3V0aW9uV2hlbkRpc2FibGVkIH0gfSwKLSAg
ICAgICAgeyAiSnVzdGlmeVJpZ2h0IiwgeyBleGVjdXRlSnVzdGlmeVJpZ2h0LCBzdXBwb3J0ZWQs
IGVuYWJsZWRJblJpY2hseUVkaXRhYmxlVGV4dCwgc3RhdGVOb25lLCB2YWx1ZU51bGwsIG5vdFRl
eHRJbnNlcnRpb24sIGRvTm90QWxsb3dFeGVjdXRpb25XaGVuRGlzYWJsZWQgfSB9LAorICAgICAg
ICB7ICJKdXN0aWZ5UmlnaHQiLCB7IGV4ZWN1dGVKdXN0aWZ5UmlnaHQsIHN1cHBvcnRlZCwgZW5h
YmxlZEluUmljaGx5RWRpdGFibGVUZXh0LCBzdGF0ZUp1c3RpZnlSaWdodCwgdmFsdWVOdWxsLCBu
b3RUZXh0SW5zZXJ0aW9uLCBkb05vdEFsbG93RXhlY3V0aW9uV2hlbkRpc2FibGVkIH0gfSwKICAg
ICAgICAgeyAiTWFrZVRleHRXcml0aW5nRGlyZWN0aW9uTGVmdFRvUmlnaHQiLCB7IGV4ZWN1dGVN
YWtlVGV4dFdyaXRpbmdEaXJlY3Rpb25MZWZ0VG9SaWdodCwgc3VwcG9ydGVkRnJvbU1lbnVPcktl
eUJpbmRpbmcsIGVuYWJsZWRJblJpY2hseUVkaXRhYmxlVGV4dCwgc3RhdGVUZXh0V3JpdGluZ0Rp
cmVjdGlvbkxlZnRUb1JpZ2h0LCB2YWx1ZU51bGwsIG5vdFRleHRJbnNlcnRpb24sIGRvTm90QWxs
b3dFeGVjdXRpb25XaGVuRGlzYWJsZWQgfSB9LAogICAgICAgICB7ICJNYWtlVGV4dFdyaXRpbmdE
aXJlY3Rpb25OYXR1cmFsIiwgeyBleGVjdXRlTWFrZVRleHRXcml0aW5nRGlyZWN0aW9uTmF0dXJh
bCwgc3VwcG9ydGVkRnJvbU1lbnVPcktleUJpbmRpbmcsIGVuYWJsZWRJblJpY2hseUVkaXRhYmxl
VGV4dCwgc3RhdGVUZXh0V3JpdGluZ0RpcmVjdGlvbk5hdHVyYWwsIHZhbHVlTnVsbCwgbm90VGV4
dEluc2VydGlvbiwgZG9Ob3RBbGxvd0V4ZWN1dGlvbldoZW5EaXNhYmxlZCB9IH0sCiAgICAgICAg
IHsgIk1ha2VUZXh0V3JpdGluZ0RpcmVjdGlvblJpZ2h0VG9MZWZ0IiwgeyBleGVjdXRlTWFrZVRl
eHRXcml0aW5nRGlyZWN0aW9uUmlnaHRUb0xlZnQsIHN1cHBvcnRlZEZyb21NZW51T3JLZXlCaW5k
aW5nLCBlbmFibGVkSW5SaWNobHlFZGl0YWJsZVRleHQsIHN0YXRlVGV4dFdyaXRpbmdEaXJlY3Rp
b25SaWdodFRvTGVmdCwgdmFsdWVOdWxsLCBub3RUZXh0SW5zZXJ0aW9uLCBkb05vdEFsbG93RXhl
Y3V0aW9uV2hlbkRpc2FibGVkIH0gfSwKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDY4NDI2KQorKysgTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTAt
MDktMjcgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgcXVlcnlDb21tYW5kU3RhdGUgd2l0aCBq
dXN0aWZ5Q2VudGVyLCBqdXN0aWZ5TGVmdCwgYW5kIGp1c3RpZnlSaWdodCBhbHdheXMgcmV0dXJu
IGZhbHNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00
NTkxMAorCisgICAgICAgIEFkZGVkIHRlc3RzIGZvciBxdWVyeUNvbW1hbmRTdGF0ZSB3aXRoIGp1
c3RpZnlDZW50ZXIsIGp1c3RpZnlMZWZ0LCBhbmQganVzdGlmeVJpZ2h0IGNvbW1hbmRzLgorCisg
ICAgICAgICogZWRpdGluZy9leGVjQ29tbWFuZC9xdWVyeS10ZXh0LWFsaWdubWVudC1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvZXhlY0NvbW1hbmQvcXVlcnktdGV4dC1h
bGlnbm1lbnQuaHRtbDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9leGVjQ29tbWFuZC9zY3Jp
cHQtdGVzdHMvcXVlcnktdGV4dC1hbGlnbm1lbnQuanM6IEFkZGVkLgorICAgICAgICAocXVlcnlU
ZXh0QWxpZ25tZW50KToKKyAgICAgICAgKHNlbGVjdEZpcnN0UG9zaXRpb24pOgorICAgICAgICAo
c2VsZWN0TWlkZGxlT2ZIZWxsb1dvcmxkKToKKyAgICAgICAgKHJ1blJhbmdlVGVzdHMpOgorCiAy
MDEwLTA5LTE0ICBaaGVueWFvIE1vICA8em1vQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgS2VubmV0aCBSdXNzZWxsLgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29t
bWFuZC9xdWVyeS10ZXh0LWFsaWdubWVudC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9xdWVyeS10ZXh0LWFsaWdubWVudC1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3F1
ZXJ5LXRleHQtYWxpZ25tZW50LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1
OSBAQAorVGVzdHMgcXVlcnlDb21tYW5kU3RhdGUoJ2p1c3RpZnlDZW50ZXInKSwgcXVlcnlDb21t
YW5kU3RhdGUoJ2p1c3RpZnlMZWZ0JyksIHF1ZXJ5Q29tbWFuZFN0YXRlKCdqdXN0aWZ5UmlnaHQn
KQorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworQ2FyZXQKK1BBU1MgcXVlcnlDb21t
YW5kKCdmb3JtYXQnKSByZXR1cm5zICIiIHdoZW4gc2VsZWN0aW5nIG5vIHNlbGVjdGlvbiBvbiBv
ZiAiaGVsbG8iCitQQVNTIHF1ZXJ5Q29tbWFuZCgnZm9ybWF0JykgcmV0dXJucyAiIiB3aGVuIHNl
bGVjdGluZyBmaXJzdCBwb3NpdGlvbiBvZiAiaGVsbG8iCitQQVNTIHF1ZXJ5Q29tbWFuZCgnZm9y
bWF0JykgcmV0dXJucyAiIiB3aGVuIHNlbGVjdGluZyBmaXJzdCBwb3NpdGlvbiBvZiAiPHA+aGVs
bG88L3A+IgorUEFTUyBxdWVyeUNvbW1hbmQoJ2Zvcm1hdCcpIHJldHVybnMgImNlbnRlciIgd2hl
biBzZWxlY3RpbmcgZmlyc3QgcG9zaXRpb24gb2YgIjxwIGFsaWduPSJjZW50ZXIiPmhlbGxvPC9w
PiIKK1BBU1MgcXVlcnlDb21tYW5kKCdmb3JtYXQnKSByZXR1cm5zICJsZWZ0IiB3aGVuIHNlbGVj
dGluZyBmaXJzdCBwb3NpdGlvbiBvZiAiPHAgYWxpZ249ImxlZnQiPmhlbGxvPC9wPiIKK1BBU1Mg
cXVlcnlDb21tYW5kKCdmb3JtYXQnKSByZXR1cm5zICJyaWdodCIgd2hlbiBzZWxlY3RpbmcgZmly
c3QgcG9zaXRpb24gb2YgIjxwIGFsaWduPSJyaWdodCI+aGVsbG88L3A+IgorUEFTUyBxdWVyeUNv
bW1hbmQoJ2Zvcm1hdCcpIHJldHVybnMgImNlbnRlciIgd2hlbiBzZWxlY3RpbmcgZmlyc3QgcG9z
aXRpb24gb2YgIjxwIHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXI7Ij5oZWxsbzwvcD4iCitQQVNT
IHF1ZXJ5Q29tbWFuZCgnZm9ybWF0JykgcmV0dXJucyAibGVmdCIgd2hlbiBzZWxlY3RpbmcgZmly
c3QgcG9zaXRpb24gb2YgIjxwIHN0eWxlPSJ0ZXh0LWFsaWduOiBsZWZ0OyI+aGVsbG88L3A+Igor
UEFTUyBxdWVyeUNvbW1hbmQoJ2Zvcm1hdCcpIHJldHVybnMgInJpZ2h0IiB3aGVuIHNlbGVjdGlu
ZyBmaXJzdCBwb3NpdGlvbiBvZiAiPHAgc3R5bGU9InRleHQtYWxpZ246IHJpZ2h0OyI+aGVsbG88
L3A+IgorUEFTUyBxdWVyeUNvbW1hbmQoJ2Zvcm1hdCcpIHJldHVybnMgImxlZnQiIHdoZW4gc2Vs
ZWN0aW5nIGZpcnN0IHBvc2l0aW9uIG9mICI8cCBhbGlnbj0icmlnaHQiIHN0eWxlPSJ0ZXh0LWFs
aWduOiBsZWZ0OyI+aGVsbG88L3A+IgorUEFTUyBxdWVyeUNvbW1hbmQoJ2Zvcm1hdCcpIHJldHVy
bnMgInJpZ2h0IiB3aGVuIHNlbGVjdGluZyBmaXJzdCBwb3NpdGlvbiBvZiAiPHAgYWxpZ249ImNl
bnRlciIgc3R5bGU9InRleHQtYWxpZ246IHJpZ2h0OyI+aGVsbG88L3A+IgorUEFTUyBxdWVyeUNv
bW1hbmQoJ2Zvcm1hdCcpIHJldHVybnMgImNlbnRlciIgd2hlbiBzZWxlY3RpbmcgZmlyc3QgcG9z
aXRpb24gb2YgIjxwIGFsaWduPSJsZWZ0IiBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyOyI+aGVs
bG88L3A+IgorUEFTUyBxdWVyeUNvbW1hbmQoJ2Zvcm1hdCcpIHJldHVybnMgImxlZnQiIHdoZW4g
c2VsZWN0aW5nIGZpcnN0IHBvc2l0aW9uIG9mICI8cCBhbGlnbj0icmlnaHQiIHN0eWxlPSJ0ZXh0
LWFsaWduOiBsZWZ0OyI+aGVsbG88L3A+IgorUEFTUyBxdWVyeUNvbW1hbmQoJ2Zvcm1hdCcpIHJl
dHVybnMgInJpZ2h0IiB3aGVuIHNlbGVjdGluZyBmaXJzdCBwb3NpdGlvbiBvZiAiPHAgYWxpZ249
ImNlbnRlciIgc3R5bGU9InRleHQtYWxpZ246IHJpZ2h0OyI+aGVsbG88L3A+IgorUEFTUyBxdWVy
eUNvbW1hbmQoJ2Zvcm1hdCcpIHJldHVybnMgImNlbnRlciIgd2hlbiBzZWxlY3RpbmcgZmlyc3Qg
cG9zaXRpb24gb2YgIjxwIGFsaWduPSJsZWZ0IiBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyOyI+
aGVsbG88L3A+IgorUEFTUyBxdWVyeUNvbW1hbmQoJ2Zvcm1hdCcpIHJldHVybnMgIiIgd2hlbiBz
ZWxlY3RpbmcgZmlyc3QgcG9zaXRpb24gb2YgIjxoMT5oZWxsbzwvaDE+IgorUEFTUyBxdWVyeUNv
bW1hbmQoJ2Zvcm1hdCcpIHJldHVybnMgImNlbnRlciIgd2hlbiBzZWxlY3RpbmcgZmlyc3QgcG9z
aXRpb24gb2YgIjxoMSBhbGlnbj0iY2VudGVyIj5oZWxsbzwvaDE+IgorUEFTUyBxdWVyeUNvbW1h
bmQoJ2Zvcm1hdCcpIHJldHVybnMgImxlZnQiIHdoZW4gc2VsZWN0aW5nIGZpcnN0IHBvc2l0aW9u
IG9mICI8aDIgYWxpZ249ImxlZnQiPmhlbGxvPC9oMj4iCitQQVNTIHF1ZXJ5Q29tbWFuZCgnZm9y
bWF0JykgcmV0dXJucyAicmlnaHQiIHdoZW4gc2VsZWN0aW5nIGZpcnN0IHBvc2l0aW9uIG9mICI8
aDMgYWxpZ249InJpZ2h0Ij5oZWxsbzwvaDM+IgorUEFTUyBxdWVyeUNvbW1hbmQoJ2Zvcm1hdCcp
IHJldHVybnMgImNlbnRlciIgd2hlbiBzZWxlY3RpbmcgZmlyc3QgcG9zaXRpb24gb2YgIjxoNCBh
bGlnbj0iY2VudGVyIj5oZWxsbzwvaDQ+IgorUEFTUyBxdWVyeUNvbW1hbmQoJ2Zvcm1hdCcpIHJl
dHVybnMgImxlZnQiIHdoZW4gc2VsZWN0aW5nIGZpcnN0IHBvc2l0aW9uIG9mICI8aDUgYWxpZ249
ImxlZnQiPmhlbGxvPC9oNT4iCitQQVNTIHF1ZXJ5Q29tbWFuZCgnZm9ybWF0JykgcmV0dXJucyAi
cmlnaHQiIHdoZW4gc2VsZWN0aW5nIGZpcnN0IHBvc2l0aW9uIG9mICI8aDYgYWxpZ249InJpZ2h0
Ij5oZWxsbzwvaDY+IgorUEFTUyBxdWVyeUNvbW1hbmQoJ2Zvcm1hdCcpIHJldHVybnMgImNlbnRl
ciIgd2hlbiBzZWxlY3RpbmcgZmlyc3QgcG9zaXRpb24gb2YgIjxkaXYgYWxpZ249ImNlbnRlciI+
aGVsbG88L2Rpdj4iCitQQVNTIHF1ZXJ5Q29tbWFuZCgnZm9ybWF0JykgcmV0dXJucyAibGVmdCIg
d2hlbiBzZWxlY3RpbmcgZmlyc3QgcG9zaXRpb24gb2YgIjxkaXYgYWxpZ249ImxlZnQiPmhlbGxv
PC9kaXY+IgorUEFTUyBxdWVyeUNvbW1hbmQoJ2Zvcm1hdCcpIHJldHVybnMgInJpZ2h0IiB3aGVu
IHNlbGVjdGluZyBmaXJzdCBwb3NpdGlvbiBvZiAiPGRpdiBhbGlnbj0icmlnaHQiPmhlbGxvPC9k
aXY+IgorCitUZXN0cyBmb3Igd2luCitQQVNTIHF1ZXJ5Q29tbWFuZCgnZm9ybWF0JykgcmV0dXJu
cyAiIiB3aGVuIHNlbGVjdGluZyBtaWRkbGUgb2YgIjxwPmhlbGxvPC9wPjxwPndvcmxkPC9wPiIK
K1BBU1MgcXVlcnlDb21tYW5kKCdmb3JtYXQnKSByZXR1cm5zICIiIHdoZW4gc2VsZWN0aW5nIG1p
ZGRsZSBvZiAiPHAgYWxpZ249ImxlZnQiPmhlbGxvPC9wPjxwPndvcmxkPC9wPiIKK1BBU1MgcXVl
cnlDb21tYW5kKCdmb3JtYXQnKSByZXR1cm5zICIiIHdoZW4gc2VsZWN0aW5nIG1pZGRsZSBvZiAi
PHA+aGVsbG88L3A+PHAgYWxpZ249ImxlZnQiPndvcmxkPC9wPiIKK1BBU1MgcXVlcnlDb21tYW5k
KCdmb3JtYXQnKSByZXR1cm5zICIiIHdoZW4gc2VsZWN0aW5nIG1pZGRsZSBvZiAiPHAgYWxpZ249
ImxlZnQiPmhlbGxvPC9wPjxwIGFsaWduPSJyaWdodCI+d29ybGQ8L3A+IgorUEFTUyBxdWVyeUNv
bW1hbmQoJ2Zvcm1hdCcpIHJldHVybnMgImNlbnRlciIgd2hlbiBzZWxlY3RpbmcgbWlkZGxlIG9m
ICI8cCBhbGlnbj0iY2VudGVyIj5oZWxsbzwvcD48cCBhbGlnbj0iY2VudGVyIj53b3JsZDwvcD4i
CitQQVNTIHF1ZXJ5Q29tbWFuZCgnZm9ybWF0JykgcmV0dXJucyAibGVmdCIgd2hlbiBzZWxlY3Rp
bmcgbWlkZGxlIG9mICI8cCBhbGlnbj0ibGVmdCI+aGVsbG88L3A+PHAgYWxpZ249ImxlZnQiPndv
cmxkPC9wPiIKK1BBU1MgcXVlcnlDb21tYW5kKCdmb3JtYXQnKSByZXR1cm5zICJyaWdodCIgd2hl
biBzZWxlY3RpbmcgbWlkZGxlIG9mICI8cCBhbGlnbj0icmlnaHQiPmhlbGxvPC9wPjxwIGFsaWdu
PSJyaWdodCI+d29ybGQ8L3A+IgorUEFTUyBxdWVyeUNvbW1hbmQoJ2Zvcm1hdCcpIHJldHVybnMg
IiIgd2hlbiBzZWxlY3RpbmcgbWlkZGxlIG9mICI8ZGl2IGFsaWduPSJyaWdodCI+aGVsbG88cCBh
bGlnbj0ibGVmdCI+d29ybGQ8L3A+PC9kaXY+IgorUEFTUyBxdWVyeUNvbW1hbmQoJ2Zvcm1hdCcp
IHJldHVybnMgIiIgd2hlbiBzZWxlY3RpbmcgbWlkZGxlIG9mICI8ZGl2IGFsaWduPSJsZWZ0Ij48
cCBhbGlnbj0iY2VudGVyIj53b3JsZDwvcD5oZWxsbzwvZGl2PiIKK0ZBSUwgcXVlcnlDb21tYW5k
KCdmb3JtYXQnKSByZXR1cm5zICIiIHdoZW4gc2VsZWN0aW5nIG1pZGRsZSBvZiAiPHAgYWxpZ249
ImxlZnQiPmhlbGxvPC9wPjxwPnc8L3A+PHAgYWxpZ249ImxlZnQiPm9ybGQ8L3A+IiBidXQgZXhw
ZWN0ZWQgIltvYmplY3QgT2JqZWN0XSIKKworVGVzdHMgZm9yIG1hYworUEFTUyBxdWVyeUNvbW1h
bmQoJ2Zvcm1hdCcpIHJldHVybnMgIiIgd2hlbiBzZWxlY3RpbmcgbWlkZGxlIG9mICI8cD5oZWxs
bzwvcD48cD53b3JsZDwvcD4iCitQQVNTIHF1ZXJ5Q29tbWFuZCgnZm9ybWF0JykgcmV0dXJucyAi
bGVmdCIgd2hlbiBzZWxlY3RpbmcgbWlkZGxlIG9mICI8cCBhbGlnbj0ibGVmdCI+aGVsbG88L3A+
PHA+d29ybGQ8L3A+IgorUEFTUyBxdWVyeUNvbW1hbmQoJ2Zvcm1hdCcpIHJldHVybnMgIiIgd2hl
biBzZWxlY3RpbmcgbWlkZGxlIG9mICI8cD5oZWxsbzwvcD48cCBhbGlnbj0ibGVmdCI+d29ybGQ8
L3A+IgorUEFTUyBxdWVyeUNvbW1hbmQoJ2Zvcm1hdCcpIHJldHVybnMgImxlZnQiIHdoZW4gc2Vs
ZWN0aW5nIG1pZGRsZSBvZiAiPHAgYWxpZ249ImxlZnQiPmhlbGxvPC9wPjxwIGFsaWduPSJyaWdo
dCI+d29ybGQ8L3A+IgorUEFTUyBxdWVyeUNvbW1hbmQoJ2Zvcm1hdCcpIHJldHVybnMgImNlbnRl
ciIgd2hlbiBzZWxlY3RpbmcgbWlkZGxlIG9mICI8cCBhbGlnbj0iY2VudGVyIj5oZWxsbzwvcD48
cCBhbGlnbj0iY2VudGVyIj53b3JsZDwvcD4iCitQQVNTIHF1ZXJ5Q29tbWFuZCgnZm9ybWF0Jykg
cmV0dXJucyAibGVmdCIgd2hlbiBzZWxlY3RpbmcgbWlkZGxlIG9mICI8cCBhbGlnbj0ibGVmdCI+
aGVsbG88L3A+PHAgYWxpZ249ImxlZnQiPndvcmxkPC9wPiIKK1BBU1MgcXVlcnlDb21tYW5kKCdm
b3JtYXQnKSByZXR1cm5zICJyaWdodCIgd2hlbiBzZWxlY3RpbmcgbWlkZGxlIG9mICI8cCBhbGln
bj0icmlnaHQiPmhlbGxvPC9wPjxwIGFsaWduPSJyaWdodCI+d29ybGQ8L3A+IgorUEFTUyBxdWVy
eUNvbW1hbmQoJ2Zvcm1hdCcpIHJldHVybnMgInJpZ2h0IiB3aGVuIHNlbGVjdGluZyBtaWRkbGUg
b2YgIjxkaXYgYWxpZ249InJpZ2h0Ij5oZWxsbzxwIGFsaWduPSJsZWZ0Ij53b3JsZDwvcD48L2Rp
dj4iCitQQVNTIHF1ZXJ5Q29tbWFuZCgnZm9ybWF0JykgcmV0dXJucyAiY2VudGVyIiB3aGVuIHNl
bGVjdGluZyBtaWRkbGUgb2YgIjxkaXYgYWxpZ249ImxlZnQiPjxwIGFsaWduPSJjZW50ZXIiPndv
cmxkPC9wPmhlbGxvPC9kaXY+IgorRkFJTCBxdWVyeUNvbW1hbmQoJ2Zvcm1hdCcpIHJldHVybnMg
ImxlZnQiIHdoZW4gc2VsZWN0aW5nIG1pZGRsZSBvZiAiPHAgYWxpZ249ImxlZnQiPmhlbGxvPC9w
PjxwPnc8L3A+PHAgYWxpZ249ImxlZnQiPm9ybGQ8L3A+IiBidXQgZXhwZWN0ZWQgIltvYmplY3Qg
T2JqZWN0XSIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3F1ZXJ5LXRleHQtYWxp
Z25tZW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFu
ZC9xdWVyeS10ZXh0LWFsaWdubWVudC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
ZWRpdGluZy9leGVjQ29tbWFuZC9xdWVyeS10ZXh0LWFsaWdubWVudC5odG1sCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBI
VE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIu
Li8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwv
ZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9xdWVyeS10ZXh0LWFsaWdubWVudC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Vk
aXRpbmcvZXhlY0NvbW1hbmQvc2NyaXB0LXRlc3RzL3F1ZXJ5LXRleHQtYWxpZ25tZW50LmpzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvc2NyaXB0LXRlc3Rz
L3F1ZXJ5LXRleHQtYWxpZ25tZW50LmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZWRp
dGluZy9leGVjQ29tbWFuZC9zY3JpcHQtdGVzdHMvcXVlcnktdGV4dC1hbGlnbm1lbnQuanMJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsOTQgQEAKK2Rlc2NyaXB0aW9uKCJUZXN0cyBxdWVyeUNvbW1h
bmRTdGF0ZSgnanVzdGlmeUNlbnRlcicpLCBxdWVyeUNvbW1hbmRTdGF0ZSgnanVzdGlmeUxlZnQn
KSwgcXVlcnlDb21tYW5kU3RhdGUoJ2p1c3RpZnlSaWdodCcpIikKKwordmFyIHRlc3RDb250YWlu
ZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKK3Rlc3RDb250YWluZXIuY29udGVu
dEVkaXRhYmxlID0gdHJ1ZTsKK2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGVzdENvbnRhaW5l
cik7CisKK2Z1bmN0aW9uIHF1ZXJ5VGV4dEFsaWdubWVudChzZWxlY3RvciwgY29udGVudCwgZXhw
ZWN0ZWQpCit7CisgICAgdGVzdENvbnRhaW5lci5pbm5lckhUTUwgPSBjb250ZW50OworICAgIHZh
ciBzZWxlY3RlZCA9IHNlbGVjdG9yKHRlc3RDb250YWluZXIpOworICAgIHZhciBjZW50ZXIgPSBk
b2N1bWVudC5xdWVyeUNvbW1hbmRTdGF0ZSgnanVzdGlmeUNlbnRlcicpOworICAgIHZhciBsZWZ0
ID0gZG9jdW1lbnQucXVlcnlDb21tYW5kU3RhdGUoJ2p1c3RpZnlMZWZ0Jyk7CisgICAgdmFyIHJp
Z2h0ID0gZG9jdW1lbnQucXVlcnlDb21tYW5kU3RhdGUoJ2p1c3RpZnlSaWdodCcpOworICAgIGlm
ICgoY2VudGVyICYmIGxlZnQpIHx8IChsZWZ0ICYmIHJpZ2h0KSB8fCAocmlnaHQgJiYgY2VudGVy
KSkKKyAgICAgICAgdGVzdEZhaWxlZCgnSW5jb25zaXN0ZW50IHN0YXRlIHdoZW4gc2VsZWN0aW5n
ICcgKyBzZWxlY3RlZCArICcgb2YgIicgKyBjb250ZW50ICsgJyIuICBNb3JlIHRoYW4gb25lIG9m
IGp1c3RpZnlDZW50ZXIsIGp1c3RpZnlSaWdodCwgYW5kIGp1c3RpZnlMZWZ0IHJldHVybmVkIHRy
dWUuJykKKworICAgIHZhciBhY3R1YWwgPSBjZW50ZXIgPyAnY2VudGVyJyA6IGxlZnQgPyAnbGVm
dCcgOiByaWdodCA/ICdyaWdodCcgOiAnJzsKKyAgICB2YXIgYWN0aW9uID0gInF1ZXJ5Q29tbWFu
ZCgnZm9ybWF0JykgcmV0dXJucyBcIiIgKyBhY3R1YWwgKyAnIiB3aGVuIHNlbGVjdGluZyAnICsg
c2VsZWN0ZWQgKyAnIG9mICInICsgY29udGVudCArICciJzsKKyAgICBpZiAoYWN0dWFsID09IGV4
cGVjdGVkKQorICAgICAgICB0ZXN0UGFzc2VkKGFjdGlvbik7CisgICAgZWxzZQorICAgICAgICB0
ZXN0RmFpbGVkKGFjdGlvbiArICcgYnV0IGV4cGVjdGVkICInICsgZXhwZWN0ZWQgKyAnIicpOwor
fQorCitmdW5jdGlvbiBzZWxlY3RGaXJzdFBvc2l0aW9uKGNvbnRhaW5lcikgeworICAgIHdoaWxl
IChjb250YWluZXIuZmlyc3RDaGlsZCkKKyAgICAgICAgY29udGFpbmVyID0gY29udGFpbmVyLmZp
cnN0Q2hpbGQ7CisgICAgd2luZG93LmdldFNlbGVjdGlvbigpLnNldFBvc2l0aW9uKGNvbnRhaW5l
ciwgMCk7CisgICAgcmV0dXJuICdmaXJzdCBwb3NpdGlvbic7Cit9CisKK2Z1bmN0aW9uIHNlbGVj
dE1pZGRsZU9mSGVsbG9Xb3JsZChjb250YWluZXIpIHsKKyAgICB3aW5kb3cuZ2V0U2VsZWN0aW9u
KCkuc2V0UG9zaXRpb24oY29udGFpbmVyLCAwKTsKKyAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCku
bW9kaWZ5KCdtb3ZlJywgJ2ZvcndhcmQnLCAnY2hhcmFjdGVyJyk7CisgICAgd2luZG93LmdldFNl
bGVjdGlvbigpLm1vZGlmeSgnbW92ZScsICdmb3J3YXJkJywgJ2NoYXJhY3RlcicpOworICAgIHdp
bmRvdy5nZXRTZWxlY3Rpb24oKS5tb2RpZnkoJ2V4dGVuZCcsICdmb3J3YXJkJywgJ3dvcmQnKTsK
KyAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkubW9kaWZ5KCdleHRlbmQnLCAnZm9yd2FyZCcsICdj
aGFyYWN0ZXInKTsKKyAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkubW9kaWZ5KCdleHRlbmQnLCAn
Zm9yd2FyZCcsICdjaGFyYWN0ZXInKTsKKyAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkubW9kaWZ5
KCdleHRlbmQnLCAnZm9yd2FyZCcsICdjaGFyYWN0ZXInKTsKKyAgICByZXR1cm4gJ21pZGRsZSc7
Cit9CisKK2RlYnVnKCdDYXJldCcpOworcXVlcnlUZXh0QWxpZ25tZW50KGZ1bmN0aW9uICgpIHty
ZXR1cm4gJ25vIHNlbGVjdGlvbiBvbid9LCAnaGVsbG8nLCAnJyk7CitxdWVyeVRleHRBbGlnbm1l
bnQoc2VsZWN0Rmlyc3RQb3NpdGlvbiwgJ2hlbGxvJywgJycpOworcXVlcnlUZXh0QWxpZ25tZW50
KHNlbGVjdEZpcnN0UG9zaXRpb24sICc8cD5oZWxsbzwvcD4nLCAnJyk7CitxdWVyeVRleHRBbGln
bm1lbnQoc2VsZWN0Rmlyc3RQb3NpdGlvbiwgJzxwIGFsaWduPSJjZW50ZXIiPmhlbGxvPC9wPics
ICdjZW50ZXInKTsKK3F1ZXJ5VGV4dEFsaWdubWVudChzZWxlY3RGaXJzdFBvc2l0aW9uLCAnPHAg
YWxpZ249ImxlZnQiPmhlbGxvPC9wPicsICdsZWZ0Jyk7CitxdWVyeVRleHRBbGlnbm1lbnQoc2Vs
ZWN0Rmlyc3RQb3NpdGlvbiwgJzxwIGFsaWduPSJyaWdodCI+aGVsbG88L3A+JywgJ3JpZ2h0Jyk7
CitxdWVyeVRleHRBbGlnbm1lbnQoc2VsZWN0Rmlyc3RQb3NpdGlvbiwgJzxwIHN0eWxlPSJ0ZXh0
LWFsaWduOiBjZW50ZXI7Ij5oZWxsbzwvcD4nLCAnY2VudGVyJyk7CitxdWVyeVRleHRBbGlnbm1l
bnQoc2VsZWN0Rmlyc3RQb3NpdGlvbiwgJzxwIHN0eWxlPSJ0ZXh0LWFsaWduOiBsZWZ0OyI+aGVs
bG88L3A+JywgJ2xlZnQnKTsKK3F1ZXJ5VGV4dEFsaWdubWVudChzZWxlY3RGaXJzdFBvc2l0aW9u
LCAnPHAgc3R5bGU9InRleHQtYWxpZ246IHJpZ2h0OyI+aGVsbG88L3A+JywgJ3JpZ2h0Jyk7Citx
dWVyeVRleHRBbGlnbm1lbnQoc2VsZWN0Rmlyc3RQb3NpdGlvbiwgJzxwIGFsaWduPSJyaWdodCIg
c3R5bGU9InRleHQtYWxpZ246IGxlZnQ7Ij5oZWxsbzwvcD4nLCAnbGVmdCcpOworcXVlcnlUZXh0
QWxpZ25tZW50KHNlbGVjdEZpcnN0UG9zaXRpb24sICc8cCBhbGlnbj0iY2VudGVyIiBzdHlsZT0i
dGV4dC1hbGlnbjogcmlnaHQ7Ij5oZWxsbzwvcD4nLCAncmlnaHQnKTsKK3F1ZXJ5VGV4dEFsaWdu
bWVudChzZWxlY3RGaXJzdFBvc2l0aW9uLCAnPHAgYWxpZ249ImxlZnQiIHN0eWxlPSJ0ZXh0LWFs
aWduOiBjZW50ZXI7Ij5oZWxsbzwvcD4nLCAnY2VudGVyJyk7CitxdWVyeVRleHRBbGlnbm1lbnQo
c2VsZWN0Rmlyc3RQb3NpdGlvbiwgJzxwIGFsaWduPSJyaWdodCIgc3R5bGU9InRleHQtYWxpZ246
IGxlZnQ7Ij5oZWxsbzwvcD4nLCAnbGVmdCcpOworcXVlcnlUZXh0QWxpZ25tZW50KHNlbGVjdEZp
cnN0UG9zaXRpb24sICc8cCBhbGlnbj0iY2VudGVyIiBzdHlsZT0idGV4dC1hbGlnbjogcmlnaHQ7
Ij5oZWxsbzwvcD4nLCAncmlnaHQnKTsKK3F1ZXJ5VGV4dEFsaWdubWVudChzZWxlY3RGaXJzdFBv
c2l0aW9uLCAnPHAgYWxpZ249ImxlZnQiIHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXI7Ij5oZWxs
bzwvcD4nLCAnY2VudGVyJyk7CitxdWVyeVRleHRBbGlnbm1lbnQoc2VsZWN0Rmlyc3RQb3NpdGlv
biwgJzxoMT5oZWxsbzwvaDE+JywgJycpOworcXVlcnlUZXh0QWxpZ25tZW50KHNlbGVjdEZpcnN0
UG9zaXRpb24sICc8aDEgYWxpZ249ImNlbnRlciI+aGVsbG88L2gxPicsICdjZW50ZXInKTsKK3F1
ZXJ5VGV4dEFsaWdubWVudChzZWxlY3RGaXJzdFBvc2l0aW9uLCAnPGgyIGFsaWduPSJsZWZ0Ij5o
ZWxsbzwvaDI+JywgJ2xlZnQnKTsKK3F1ZXJ5VGV4dEFsaWdubWVudChzZWxlY3RGaXJzdFBvc2l0
aW9uLCAnPGgzIGFsaWduPSJyaWdodCI+aGVsbG88L2gzPicsICdyaWdodCcpOworcXVlcnlUZXh0
QWxpZ25tZW50KHNlbGVjdEZpcnN0UG9zaXRpb24sICc8aDQgYWxpZ249ImNlbnRlciI+aGVsbG88
L2g0PicsICdjZW50ZXInKTsKK3F1ZXJ5VGV4dEFsaWdubWVudChzZWxlY3RGaXJzdFBvc2l0aW9u
LCAnPGg1IGFsaWduPSJsZWZ0Ij5oZWxsbzwvaDU+JywgJ2xlZnQnKTsKK3F1ZXJ5VGV4dEFsaWdu
bWVudChzZWxlY3RGaXJzdFBvc2l0aW9uLCAnPGg2IGFsaWduPSJyaWdodCI+aGVsbG88L2g2Pics
ICdyaWdodCcpOworcXVlcnlUZXh0QWxpZ25tZW50KHNlbGVjdEZpcnN0UG9zaXRpb24sICc8ZGl2
IGFsaWduPSJjZW50ZXIiPmhlbGxvPC9kaXY+JywgJ2NlbnRlcicpOworcXVlcnlUZXh0QWxpZ25t
ZW50KHNlbGVjdEZpcnN0UG9zaXRpb24sICc8ZGl2IGFsaWduPSJsZWZ0Ij5oZWxsbzwvZGl2Pics
ICdsZWZ0Jyk7CitxdWVyeVRleHRBbGlnbm1lbnQoc2VsZWN0Rmlyc3RQb3NpdGlvbiwgJzxkaXYg
YWxpZ249InJpZ2h0Ij5oZWxsbzwvZGl2PicsICdyaWdodCcpOworCitmdW5jdGlvbiBydW5SYW5n
ZVRlc3RzKGVkaXRpbmdCZWhhdmlvcikKK3sKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRFZGl0aW5nQmVoYXZpb3Io
ZWRpdGluZ0JlaGF2aW9yKTsKKyAgICBkZWJ1ZygnVGVzdHMgZm9yICcgKyBlZGl0aW5nQmVoYXZp
b3IpOworCisgICAgcXVlcnlUZXh0QWxpZ25tZW50KHNlbGVjdE1pZGRsZU9mSGVsbG9Xb3JsZCwg
JzxwPmhlbGxvPC9wPjxwPndvcmxkPC9wPicsICcnKTsKKyAgICBxdWVyeVRleHRBbGlnbm1lbnQo
c2VsZWN0TWlkZGxlT2ZIZWxsb1dvcmxkLCAnPHAgYWxpZ249ImxlZnQiPmhlbGxvPC9wPjxwPndv
cmxkPC9wPicsIHsnbWFjJzogJ2xlZnQnLCAnd2luJzogJyd9W2VkaXRpbmdCZWhhdmlvcl0pOwor
ICAgIHF1ZXJ5VGV4dEFsaWdubWVudChzZWxlY3RNaWRkbGVPZkhlbGxvV29ybGQsICc8cD5oZWxs
bzwvcD48cCBhbGlnbj0ibGVmdCI+d29ybGQ8L3A+JywgJycpOworICAgIHF1ZXJ5VGV4dEFsaWdu
bWVudChzZWxlY3RNaWRkbGVPZkhlbGxvV29ybGQsICc8cCBhbGlnbj0ibGVmdCI+aGVsbG88L3A+
PHAgYWxpZ249InJpZ2h0Ij53b3JsZDwvcD4nLCB7J21hYyc6ICdsZWZ0JywgJ3dpbic6ICcnfVtl
ZGl0aW5nQmVoYXZpb3JdKTsKKyAgICBxdWVyeVRleHRBbGlnbm1lbnQoc2VsZWN0TWlkZGxlT2ZI
ZWxsb1dvcmxkLCAnPHAgYWxpZ249ImNlbnRlciI+aGVsbG88L3A+PHAgYWxpZ249ImNlbnRlciI+
d29ybGQ8L3A+JywgJ2NlbnRlcicpOworICAgIHF1ZXJ5VGV4dEFsaWdubWVudChzZWxlY3RNaWRk
bGVPZkhlbGxvV29ybGQsICc8cCBhbGlnbj0ibGVmdCI+aGVsbG88L3A+PHAgYWxpZ249ImxlZnQi
PndvcmxkPC9wPicsICdsZWZ0Jyk7CisgICAgcXVlcnlUZXh0QWxpZ25tZW50KHNlbGVjdE1pZGRs
ZU9mSGVsbG9Xb3JsZCwgJzxwIGFsaWduPSJyaWdodCI+aGVsbG88L3A+PHAgYWxpZ249InJpZ2h0
Ij53b3JsZDwvcD4nLCAncmlnaHQnKTsKKyAgICBxdWVyeVRleHRBbGlnbm1lbnQoc2VsZWN0TWlk
ZGxlT2ZIZWxsb1dvcmxkLCAnPGRpdiBhbGlnbj0icmlnaHQiPmhlbGxvPHAgYWxpZ249ImxlZnQi
PndvcmxkPC9wPjwvZGl2PicsIHsnbWFjJzogJ3JpZ2h0JywgJ3dpbic6ICcnfVtlZGl0aW5nQmVo
YXZpb3JdKTsKKyAgICBxdWVyeVRleHRBbGlnbm1lbnQoc2VsZWN0TWlkZGxlT2ZIZWxsb1dvcmxk
LCAnPGRpdiBhbGlnbj0ibGVmdCI+PHAgYWxpZ249ImNlbnRlciI+d29ybGQ8L3A+aGVsbG88L2Rp
dj4nLCB7J21hYyc6ICdjZW50ZXInLCAnd2luJzogJyd9W2VkaXRpbmdCZWhhdmlvcl0pOworICAg
IHF1ZXJ5VGV4dEFsaWdubWVudChzZWxlY3RNaWRkbGVPZkhlbGxvV29ybGQsICc8cCBhbGlnbj0i
bGVmdCI+aGVsbG88L3A+PHA+dzwvcD48cCBhbGlnbj0ibGVmdCI+b3JsZDwvcD4nLCB7J21hYyc6
ICdsZWZ0JywgJ3dpbic6ICcnfSk7Cit9CisKK2RlYnVnKCcnKTsKK3J1blJhbmdlVGVzdHMoJ3dp
bicpOworZGVidWcoJycpOworcnVuUmFuZ2VUZXN0cygnbWFjJyk7CisKK2RvY3VtZW50LmJvZHku
cmVtb3ZlQ2hpbGQodGVzdENvbnRhaW5lcik7Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1
ZTsK
</data>
<flag name="review"
          id="58575"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>