<?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>13287</bug_id>
          
          <creation_ts>2007-04-05 06:32:26 -0700</creation_ts>
          <short_desc>Cannot change SELECT to a dynamically created option</short_desc>
          <delta_ts>2009-03-17 11:00:22 -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>Forms</component>
          <version>523.x (Safari 3)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</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>23949</dependson>
          <blocked>13270</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>15628</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2007-04-05 06:32:26 -0700</bug_when>
    <thetext>Another issue reduced from trenitalia.com.

    theSelect.insertBefore(new Option(&quot;SUCCESS&quot;, &quot;SUCCESS&quot;, false, true), theSelect.firstChild);
    theSelect.options[0].selected = true; // FAILS

Surprisingly, this is not a regression.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>15629</commentid>
    <comment_count>1</comment_count>
      <attachid>13968</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2007-04-05 06:32:49 -0700</bug_when>
    <thetext>Created attachment 13968
test case</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>15545</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2007-04-05 11:39:46 -0700</bug_when>
    <thetext>These OPTION elements are created selected, but WebKit doesn&apos;t let SELECT know that when inserting them. So, OPTION elements think that they are selected, and ignore setting .selected to true.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>15540</commentid>
    <comment_count>3</comment_count>
      <attachid>13971</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2007-04-05 12:03:28 -0700</bug_when>
    <thetext>Created attachment 13971
extended test case</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>80544</commentid>
    <comment_count>4</comment_count>
      <attachid>21176</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-05-15 13:43:22 -0700</bug_when>
    <thetext>Created attachment 21176
proposed fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>81402</commentid>
    <comment_count>5</comment_count>
      <attachid>21176</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-05-24 22:41:04 -0700</bug_when>
    <thetext>Comment on attachment 21176
proposed fix

+        if (newChildPtr-&gt;isElementNode() &amp;&amp; static_cast&lt;Element*&gt;(newChildPtr)-&gt;hasLocalName(optionTag) &amp;&amp; !m_multiple) {

As far as I can tell, nothing guarantees that the node pointed to by newChild won&apos;t be deallocated by this point. You will need to use a RefPtr here. Maybe the right thing to do is to use the &quot;prp&quot; pattern (naming the argument prpNewChild and the local RefPtr newChild).

Ideally we&apos;d make a test case that uses DOM mutation events to make this unlikely even occur.

Isn&apos;t there a better hook we can use to deal with the change in children? At the very least I&apos;d like to see the repeated code shared in a single function rather than pasted three times.

Patch otherwise looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>114059</commentid>
    <comment_count>6</comment_count>
      <attachid>28692</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-03-17 10:42:02 -0700</bug_when>
    <thetext>Created attachment 28692
proposed fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>114061</commentid>
    <comment_count>7</comment_count>
      <attachid>28692</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-03-17 10:52:04 -0700</bug_when>
    <thetext>Comment on attachment 28692
proposed fix

&gt; +        (WebCore::dispatchChildInsertionEvents): Increment DOM tree version. This will happen when
&gt; +        dispatching DOMSubtreeModified again, but the version should be incremented for event
&gt; +        listeners to have an up to date view of the DOM.
&gt; +        (WebCore::dispatchChildRemovalEvents): Ditto.

Seems too bad that we later increment the DOM tree version a second time unnecessarily. But no big problem.

&gt; +        (WebCore::HTMLSelectElement::add): This function doesn&apos;t look at exception code, so it
&gt; +        doesn&apos;t need to reset it.

This sort of change can be risky; the function can accidentally depend on the passed-in exception code being zero. Accordingly, I wish you&apos;d make this change that&apos;s not necessarily tied to the rest of the patch in a separate check-in to possibly help people later who might be tracking down a regression.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>114062</commentid>
    <comment_count>8</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-03-17 11:00:22 -0700</bug_when>
    <thetext>Committed revision 41772. Will land the &quot;ec = 0&quot; change next.
</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>13968</attachid>
            <date>2007-04-05 06:32:49 -0700</date>
            <delta_ts>2007-04-05 12:03:28 -0700</delta_ts>
            <desc>test case</desc>
            <filename>add-option.html</filename>
            <type>text/html</type>
            <size>537</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">PGZvcm0+CjxzZWxlY3Q+PG9wdGlvbiBzZWxlY3RlZD5GQUlMVVJFPC9vcHRpb24+PC9zZWxlY3Q+
CjxzZWxlY3Q+PG9wdGlvbiBzZWxlY3RlZD5GQUlMVVJFPC9vcHRpb24+PC9zZWxlY3Q+CjwvZm9y
bT4KPHNjcmlwdD4KICB0cnkgewogICAgdmFyIHRoZVNlbGVjdCA9IGRvY3VtZW50LmZvcm1zWzBd
LmVsZW1lbnRzWzBdOwogICAgdGhlU2VsZWN0Lmluc2VydEJlZm9yZShuZXcgT3B0aW9uKCJTVUND
RVNTIiwgIlNVQ0NFU1MiLCBmYWxzZSwgdHJ1ZSksIHRoZVNlbGVjdC5maXJzdENoaWxkKTsKICAg
IHRoZVNlbGVjdC5vcHRpb25zWzBdLnNlbGVjdGVkID0gdHJ1ZTsKCiAgICB0aGVTZWxlY3QgPSBk
b2N1bWVudC5mb3Jtc1swXS5lbGVtZW50c1sxXTsKICAgIHRoZVNlbGVjdC5vcHRpb25zLmFkZChu
ZXcgT3B0aW9uKCJTVUNDRVNTIiwgIlNVQ0NFU1MiLCBmYWxzZSwgdHJ1ZSksIDApOwogICAgdGhl
U2VsZWN0Lm9wdGlvbnNbMF0uc2VsZWN0ZWQgPSB0cnVlOwogIH0gY2F0Y2ggKGV4KSB7CiAgICBh
bGVydChleCk7CiAgfQo8L3NjcmlwdD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>13971</attachid>
            <date>2007-04-05 12:03:28 -0700</date>
            <delta_ts>2007-04-05 12:03:28 -0700</delta_ts>
            <desc>extended test case</desc>
            <filename>add-selected-option.html</filename>
            <type>text/html</type>
            <size>1788</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">PGZvcm0+CjxzZWxlY3Qgb25jaGFuZ2U9Im9uQ2hhbmdlKCkiPjxvcHRpb24gc2VsZWN0ZWQ+RkFJ
TFVSRTwvb3B0aW9uPjwvc2VsZWN0Pgo8c2VsZWN0IG9uY2hhbmdlPSJvbkNoYW5nZSgpIj48b3B0
aW9uIHNlbGVjdGVkPkZBSUxVUkU8L29wdGlvbj48L3NlbGVjdD4KPHNlbGVjdCBvbmNoYW5nZT0i
b25DaGFuZ2UoKSI+PG9wdGlvbiBzZWxlY3RlZD5TVUNDRVNTPC9vcHRpb24+PC9zZWxlY3Q+Cjxz
ZWxlY3Qgb25jaGFuZ2U9Im9uQ2hhbmdlKCkiIHNpemU9Mj48b3B0aW9uIHNlbGVjdGVkPkZBSUxV
UkU8L29wdGlvbj48L3NlbGVjdD4KPHNlbGVjdCBvbmNoYW5nZT0ib25DaGFuZ2UoKSIgc2l6ZT0y
PjxvcHRpb24gc2VsZWN0ZWQ+RkFJTFVSRTwvb3B0aW9uPjwvc2VsZWN0Pgo8c2VsZWN0IG9uY2hh
bmdlPSJvbkNoYW5nZSgpIiBzaXplPTI+PG9wdGlvbiBzZWxlY3RlZD5TVUNDRVNTPC9vcHRpb24+
PC9zZWxlY3Q+CjwvZm9ybT4KPHNjcmlwdD4KICBmdW5jdGlvbiBvbkNoYW5nZSgpIHsKICAgIGRv
Y3VtZW50LndyaXRlKCI8cD5vbkNoYW5nZSBmaXJlZDwvcD4iKTsKICB9CgogIHRyeSB7CiAgICB2
YXIgdGhlU2VsZWN0ID0gZG9jdW1lbnQuZm9ybXNbMF0uZWxlbWVudHNbMF07CiAgICB0aGVTZWxl
Y3Qub3B0aW9ucy5hZGQobmV3IE9wdGlvbigiU1VDQ0VTUyIsICJTVUNDRVNTIiwgZmFsc2UsIHRy
dWUpLCAwKTsKCiAgICAvLyBJbiBXaW5JRSA2LCBhbiBlbXB0eSBvcHRpb24gaXMgaW5zZXJ0ZWQg
aW4gdGhpcyBjYXNlLgogICAgdGhlU2VsZWN0ID0gZG9jdW1lbnQuZm9ybXNbMF0uZWxlbWVudHNb
MV07CiAgICB0aGVTZWxlY3QuaW5zZXJ0QmVmb3JlKG5ldyBPcHRpb24oIlNVQ0NFU1MiLCAiU1VD
Q0VTUyIsIGZhbHNlLCB0cnVlKSwgdGhlU2VsZWN0LmZpcnN0Q2hpbGQpOwoKICAgIC8vIGRlZmF1
bHRTZWxlY3RlZCBkb2Vzbid0IG1ha2UgdGhlIGVsZW1lbnQgc2VsZWN0ZWQgd2hlbiBpbnNlcnRl
ZC4KICAgIHRoZVNlbGVjdCA9IGRvY3VtZW50LmZvcm1zWzBdLmVsZW1lbnRzWzJdOwogICAgdGhl
U2VsZWN0Lm9wdGlvbnMuYWRkKG5ldyBPcHRpb24oIkZBSUxVUkUiLCAiRkFJTFVSRSIsIHRydWUs
IGZhbHNlKSwgMCk7CgoKICAgIHRoZVNlbGVjdCA9IGRvY3VtZW50LmZvcm1zWzBdLmVsZW1lbnRz
WzNdOwogICAgdGhlU2VsZWN0Lm9wdGlvbnNbMF0uc2VsZWN0ZWQgPSAxOwogICAgdGhlU2VsZWN0
Lm9wdGlvbnMuYWRkKG5ldyBPcHRpb24oIlNVQ0NFU1MiLCAiU1VDQ0VTUyIsIGZhbHNlLCB0cnVl
KSwgMCk7CgogICAgLy8gSW4gV2luSUUgNiwgYW4gZW1wdHkgb3B0aW9uIGlzIGluc2VydGVkIGlu
IHRoaXMgY2FzZS4KICAgIHRoZVNlbGVjdCA9IGRvY3VtZW50LmZvcm1zWzBdLmVsZW1lbnRzWzRd
OwogICAgdGhlU2VsZWN0Lm9wdGlvbnNbMF0uc2VsZWN0ZWQgPSAxOwogICAgdGhlU2VsZWN0Lmlu
c2VydEJlZm9yZShuZXcgT3B0aW9uKCJTVUNDRVNTIiwgIlNVQ0NFU1MiLCBmYWxzZSwgdHJ1ZSks
IHRoZVNlbGVjdC5maXJzdENoaWxkKTsKCiAgICAvLyBkZWZhdWx0U2VsZWN0ZWQgZG9lc24ndCBt
YWtlIHRoZSBlbGVtZW50IHNlbGVjdGVkIHdoZW4gaW5zZXJ0ZWQuCiAgICB0aGVTZWxlY3QgPSBk
b2N1bWVudC5mb3Jtc1swXS5lbGVtZW50c1s1XTsKICAgIHRoZVNlbGVjdC5vcHRpb25zWzBdLnNl
bGVjdGVkID0gMTsKICAgIHRoZVNlbGVjdC5vcHRpb25zLmFkZChuZXcgT3B0aW9uKCJGQUlMVVJF
IiwgIkZBSUxVUkUiLCB0cnVlLCBmYWxzZSksIDApOwogIH0gY2F0Y2ggKGV4KSB7CiAgICBhbGVy
dChleCk7CiAgfQo8L3NjcmlwdD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>21176</attachid>
            <date>2008-05-15 13:43:22 -0700</date>
            <delta_ts>2009-03-17 10:42:02 -0700</delta_ts>
            <desc>proposed fix</desc>
            <filename>13287r1_patch.txt</filename>
            <type>text/plain</type>
            <size>15318</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzMzQ5MykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzggQEAKKzIwMDgtMDUtMTUgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEB3ZWJr
aXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzI4NworICAgICAgICBD
YW5ub3QgY2hhbmdlIFNFTEVDVCB0byBhIGR5bmFtaWNhbGx5IGNyZWF0ZWQgb3B0aW9uCisKKyAg
ICAgICAgVGVzdHM6IGZhc3QvZm9ybXMvYWRkLXNlbGVjdGVkLW9wdGlvbi5odG1sCisgICAgICAg
ICAgICAgICBmYXN0L2Zvcm1zL3NlbGVjdC1jYWNoZS1kZXN5bmNocm9uaXphdGlvbi5odG1sCisK
KyAgICAgICAgKiBodG1sL0hUTUxTZWxlY3RFbGVtZW50Lmg6IEZhY3RvcmVkIG91dCBjYWNoZVN0
YXRlRm9yQWN0aXZlU2VsZWN0aW9uKCkgZnJvbQorICAgICAgICBzZXRBY3RpdmVTZWxlY3Rpb25B
bmNob3JJbmRleCgpLCBtYWRlIG1fY2FjaGVkU3RhdGVGb3JBY3RpdmVTZWxlY3Rpb24gbXV0YWJs
ZS4KKworICAgICAgICAqIGh0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OmFkZCk6IFJlbW92ZWQgYSBjYWxsIHRvIHNldFJlY2Fs
Y0xpc3RJdGVtcygpIC0gaW5zZXJ0QmVmb3JlKCkKKyAgICAgICAgZG9lcyBpdCBpbnRlcm5hbGx5
LgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6Omluc2VydEJlZm9yZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6cmVwbGFjZUNoaWxkKToKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50OjphcHBlbmRDaGlsZCk6CisgICAgICAgIENh
bGwgc2V0U2VsZWN0ZWRJbmRleCgpIGlmIHRoZSBhZGRlZCBvcHRpb24gZWxlbWVudCB3YW50cyB0
byBiZSBzZWxlY3RlZC4KKworICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OnJl
Y2FsY0xpc3RJdGVtcyk6IENhbGwgY2FjaGVTdGF0ZUZvckFjdGl2ZVNlbGVjdGlvbigpLCBhcyB0
aGUKKyAgICAgICAgY2FjaGUgbWF5IGJlIHdlbGwgb2ZmIGJ5IG5vdywgYm90aCBpbiB0aGUgbnVt
YmVyIG9mIGl0ZW1zLCBhbmQgaW4gdGhlaXIgc3RhdGUuCisKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxTZWxlY3RFbGVtZW50OjpzZXRSZWNhbGNMaXN0SXRlbXMpOiAgUmVzZXQgbV9hY3RpdmVTZWxl
Y3Rpb25BbmNob3JJbmRleCAtIGl0IGRvZXNuJ3QKKyAgICAgICAgbWFrZSBzZW5zZSB0byBrZWVw
IHRoZSBhbmNob3IgYWZ0ZXIgcHJvZ3JhbW1hdGljYWxseSBjaGFuZ2luZyB0aGUgc2VsZWN0aW9u
LCBhbmQga2VlcGluZyBpdAorICAgICAgICB3YXMgY2F1c2luZyBhIGZhaWx1cmUgaW4gZmFzdC9m
b3Jtcy9saXN0Ym94LXNlbGVjdGlvbi5odG1sIHRlc3QgMTQgKHdoaWNoLCBhZG1pdHRlZGx5LCBk
aWRuJ3QKKyAgICAgICAgd29yayBxdWl0ZSByaWdodCBhbnl3YXkgd2hlbiBwbGF5aW5nIHdpdGgg
aXQgaW4gdGhlIGJyb3dzZXIpLgorCisgICAgICAgIChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVu
dDo6c2V0QWN0aXZlU2VsZWN0aW9uQW5jaG9ySW5kZXgpOiBDYWxsIHJlY2FsY0xpc3RJdGVtcygp
IChpbmRpcmVjdGx5CisgICAgICAgIGluIGRlYnVnIGJ1aWxkcyksIHdoaWNoIG5vdyB0YWtlcyBj
YXJlIG9mIG1fY2FjaGVkU3RhdGVGb3JBY3RpdmVTZWxlY3Rpb24uCisKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxTZWxlY3RFbGVtZW50OjpjYWNoZVN0YXRlRm9yQWN0aXZlU2VsZWN0aW9uKTogRmFj
dG9yZWQgb3V0IG9mCisgICAgICAgIHNldEFjdGl2ZVNlbGVjdGlvbkFuY2hvckluZGV4KCkuCisK
IDIwMDgtMDUtMTUgIEp1bGllbiBDaGFmZnJhaXggIDxqY2hhZmZyYWl4QHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4uCkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTFNlbGVj
dEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVu
dC5jcHAJKHJldmlzaW9uIDMzNDkwKQorKysgV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjI2LDggKzIyNiw2IEBAIHZvaWQgSFRNTFNlbGVjdEVs
ZW1lbnQ6OmFkZChIVE1MRWxlbWVudCAKIAogICAgIGVjID0gMDsKICAgICBpbnNlcnRCZWZvcmUo
ZWxlbWVudCwgYmVmb3JlLCBlYyk7Ci0gICAgaWYgKCFlYykKLSAgICAgICAgc2V0UmVjYWxjTGlz
dEl0ZW1zKCk7CiB9CiAKIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OnJlbW92ZShpbnQgaW5kZXgp
CkBAIC0zMDQsMTcgKzMwMiwzMSBAQCB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpyZXN0b3JlU3Rh
dGUoY29uCiAKIGJvb2wgSFRNTFNlbGVjdEVsZW1lbnQ6Omluc2VydEJlZm9yZShQYXNzUmVmUHRy
PE5vZGU+IG5ld0NoaWxkLCBOb2RlKiByZWZDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Cisg
ICAgTm9kZSogbmV3Q2hpbGRQdHIgPSBuZXdDaGlsZC5nZXQoKTsKICAgICBib29sIHJlc3VsdCA9
IEhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGU6Omluc2VydEJlZm9yZShuZXdDaGlsZCwg
cmVmQ2hpbGQsIGVjKTsKLSAgICBpZiAocmVzdWx0KQorICAgIGlmIChyZXN1bHQpIHsKKyAgICAg
ICAgaWYgKG5ld0NoaWxkUHRyLT5pc0VsZW1lbnROb2RlKCkgJiYgc3RhdGljX2Nhc3Q8RWxlbWVu
dCo+KG5ld0NoaWxkUHRyKS0+aGFzTG9jYWxOYW1lKG9wdGlvblRhZykgJiYgIW1fbXVsdGlwbGUp
IHsKKyAgICAgICAgICAgIEhUTUxPcHRpb25FbGVtZW50KiBvcHRpb24gPSBzdGF0aWNfY2FzdDxI
VE1MT3B0aW9uRWxlbWVudCo+KG5ld0NoaWxkUHRyKTsKKyAgICAgICAgICAgIGlmIChvcHRpb24t
PnNlbGVjdGVkKCkpCisgICAgICAgICAgICAgICAgc2V0U2VsZWN0ZWRJbmRleChvcHRpb24tPmlu
ZGV4KCkpOworICAgICAgICB9CiAgICAgICAgIHNldFJlY2FsY0xpc3RJdGVtcygpOworICAgIH0K
ICAgICByZXR1cm4gcmVzdWx0OwogfQogCiBib29sIEhUTUxTZWxlY3RFbGVtZW50OjpyZXBsYWNl
Q2hpbGQoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgTm9kZSAqb2xkQ2hpbGQsIEV4Y2VwdGlv
bkNvZGUmIGVjKQogeworICAgIE5vZGUqIG5ld0NoaWxkUHRyID0gbmV3Q2hpbGQuZ2V0KCk7CiAg
ICAgYm9vbCByZXN1bHQgPSBIVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlOjpyZXBsYWNl
Q2hpbGQobmV3Q2hpbGQsIG9sZENoaWxkLCBlYyk7Ci0gICAgaWYgKHJlc3VsdCkKKyAgICBpZiAo
cmVzdWx0KSB7CisgICAgICAgIGlmIChuZXdDaGlsZFB0ci0+aXNFbGVtZW50Tm9kZSgpICYmIHN0
YXRpY19jYXN0PEVsZW1lbnQqPihuZXdDaGlsZFB0ciktPmhhc0xvY2FsTmFtZShvcHRpb25UYWcp
ICYmICFtX211bHRpcGxlKSB7CisgICAgICAgICAgICBIVE1MT3B0aW9uRWxlbWVudCogb3B0aW9u
ID0gc3RhdGljX2Nhc3Q8SFRNTE9wdGlvbkVsZW1lbnQqPihuZXdDaGlsZFB0cik7CisgICAgICAg
ICAgICBpZiAob3B0aW9uLT5zZWxlY3RlZCgpKQorICAgICAgICAgICAgICAgIHNldFNlbGVjdGVk
SW5kZXgob3B0aW9uLT5pbmRleCgpKTsKKyAgICAgICAgfQogICAgICAgICBzZXRSZWNhbGNMaXN0
SXRlbXMoKTsKKyAgICB9CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApAQCAtMzI4LDkgKzM0MCwx
NiBAQCBib29sIEhUTUxTZWxlY3RFbGVtZW50OjpyZW1vdmVDaGlsZChOb2RlCiAKIGJvb2wgSFRN
TFNlbGVjdEVsZW1lbnQ6OmFwcGVuZENoaWxkKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIEV4
Y2VwdGlvbkNvZGUmIGVjKQogeworICAgIE5vZGUqIG5ld0NoaWxkUHRyID0gbmV3Q2hpbGQuZ2V0
KCk7CiAgICAgYm9vbCByZXN1bHQgPSBIVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlOjph
cHBlbmRDaGlsZChuZXdDaGlsZCwgZWMpOwotICAgIGlmIChyZXN1bHQpCisgICAgaWYgKHJlc3Vs
dCkgeworICAgICAgICBpZiAobmV3Q2hpbGRQdHItPmlzRWxlbWVudE5vZGUoKSAmJiBzdGF0aWNf
Y2FzdDxFbGVtZW50Kj4obmV3Q2hpbGRQdHIpLT5oYXNMb2NhbE5hbWUob3B0aW9uVGFnKSAmJiAh
bV9tdWx0aXBsZSkgeworICAgICAgICAgICAgSFRNTE9wdGlvbkVsZW1lbnQqIG9wdGlvbiA9IHN0
YXRpY19jYXN0PEhUTUxPcHRpb25FbGVtZW50Kj4obmV3Q2hpbGRQdHIpOworICAgICAgICAgICAg
aWYgKG9wdGlvbi0+c2VsZWN0ZWQoKSkKKyAgICAgICAgICAgICAgICBzZXRTZWxlY3RlZEluZGV4
KG9wdGlvbi0+aW5kZXgoKSk7CisgICAgICAgIH0KICAgICAgICAgc2V0UmVjYWxjTGlzdEl0ZW1z
KCk7CisgICAgfQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKQEAgLTUyNyw2ICs1NDYsMTAgQEAg
dm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6cmVjYWxjTGlzdEl0ZW1zKAogICAgICAgICBpZiAoY3Vy
cmVudC0+aGFzVGFnTmFtZShoclRhZykpCiAgICAgICAgICAgICBtX2xpc3RJdGVtcy5hcHBlbmQo
c3RhdGljX2Nhc3Q8SFRNTEVsZW1lbnQqPihjdXJyZW50KSk7CiAgICAgfQorCisgICAgLy8gUmVj
cmVhdGUgbV9jYWNoZWRTdGF0ZUZvckFjdGl2ZVNlbGVjdGlvbiwgYXMgdGhlIG51bWJlciBhbmQg
c3RhdGUgb2Ygb3B0aW9ucyBtYXkgaGF2ZSBjaGFuZ2VkLgorICAgIGNhY2hlU3RhdGVGb3JBY3Rp
dmVTZWxlY3Rpb24oKTsKKwogICAgIG1fcmVjYWxjTGlzdEl0ZW1zID0gZmFsc2U7CiB9CiAKQEAg
LTU0Miw2ICs1NjUsNyBAQCB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpjaGlsZHJlbkNoYW5nZWQo
CiB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpzZXRSZWNhbGNMaXN0SXRlbXMoKQogewogICAgIG1f
cmVjYWxjTGlzdEl0ZW1zID0gdHJ1ZTsKKyAgICBtX2FjdGl2ZVNlbGVjdGlvbkFuY2hvckluZGV4
ID0gLTE7IC8vIE1hbnVhbCBzZWxlY3Rpb24gYW5jaG9yIGlzIHJlc2V0IHdoZW4gbWFuaXB1bGF0
aW5nIHRoZSBzZWxlY3QgcHJvZ3JhbW1hdGljYWxseS4KICAgICBpZiAocmVuZGVyZXIoKSkgewog
ICAgICAgICBpZiAodXNlc01lbnVMaXN0KCkpCiAgICAgICAgICAgICBzdGF0aWNfY2FzdDxSZW5k
ZXJNZW51TGlzdCo+KHJlbmRlcmVyKCkpLT5zZXRPcHRpb25zQ2hhbmdlZCh0cnVlKTsKQEAgLTgz
NiwxMyArODYwLDE5IEBAIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6Omxpc3RCb3hEZWZhdWx0RXYK
IHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OnNldEFjdGl2ZVNlbGVjdGlvbkFuY2hvckluZGV4KGlu
dCBpbmRleCkKIHsKICAgICBtX2FjdGl2ZVNlbGVjdGlvbkFuY2hvckluZGV4ID0gaW5kZXg7Ci0g
ICAgCi0gICAgLy8gQ2FjaGUgdGhlIHNlbGVjdGlvbiBzdGF0ZSBzbyB3ZSBjYW4gcmVzdG9yZSB0
aGUgb2xkIHNlbGVjdGlvbiBhcyB0aGUgbmV3IHNlbGVjdGlvbiBwaXZvdHMgYXJvdW5kIHRoaXMg
YW5jaG9yIGluZGV4Ci0gICAgY29uc3QgVmVjdG9yPEhUTUxFbGVtZW50Kj4mIGl0ZW1zID0gbGlz
dEl0ZW1zKCk7CisKKyAgICBpZiAobV9yZWNhbGNMaXN0SXRlbXMpCisgICAgICAgIHJlY2FsY0xp
c3RJdGVtcygpOworICAgIGVsc2UKKyAgICAgICAgY2hlY2tMaXN0SXRlbXMoKTsKK30KKwordm9p
ZCBIVE1MU2VsZWN0RWxlbWVudDo6Y2FjaGVTdGF0ZUZvckFjdGl2ZVNlbGVjdGlvbigpIGNvbnN0
Cit7CiAgICAgbV9jYWNoZWRTdGF0ZUZvckFjdGl2ZVNlbGVjdGlvbi5jbGVhcigpOwotICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCBpdGVtcy5zaXplKCk7IGkrKykgewotICAgICAgICBpZiAo
aXRlbXNbaV0tPmhhc0xvY2FsTmFtZShvcHRpb25UYWcpKSB7Ci0gICAgICAgICAgICBIVE1MT3B0
aW9uRWxlbWVudCogb3B0aW9uID0gc3RhdGljX2Nhc3Q8SFRNTE9wdGlvbkVsZW1lbnQqPihpdGVt
c1tpXSk7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fbGlzdEl0ZW1zLnNpemUoKTsg
aSsrKSB7CisgICAgICAgIGlmIChtX2xpc3RJdGVtc1tpXS0+aGFzTG9jYWxOYW1lKG9wdGlvblRh
ZykpIHsKKyAgICAgICAgICAgIEhUTUxPcHRpb25FbGVtZW50KiBvcHRpb24gPSBzdGF0aWNfY2Fz
dDxIVE1MT3B0aW9uRWxlbWVudCo+KG1fbGlzdEl0ZW1zW2ldKTsKICAgICAgICAgICAgIG1fY2Fj
aGVkU3RhdGVGb3JBY3RpdmVTZWxlY3Rpb24uYXBwZW5kKG9wdGlvbi0+c2VsZWN0ZWQoKSk7CiAg
ICAgICAgIH0gZWxzZQogICAgICAgICAgICAgbV9jYWNoZWRTdGF0ZUZvckFjdGl2ZVNlbGVjdGlv
bi5hcHBlbmQoZmFsc2UpOwpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmgJKHJldmlzaW9u
IDMzNDkwKQorKysgV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTE0OSwxMCArMTQ5LDExIEBAIHByaXZhdGU6CiAgICAgdm9pZCBtZW51TGlzdERlZmF1
bHRFdmVudEhhbmRsZXIoRXZlbnQqKTsKICAgICB2b2lkIGxpc3RCb3hEZWZhdWx0RXZlbnRIYW5k
bGVyKEV2ZW50Kik7CiAgICAgdm9pZCB0eXBlQWhlYWRGaW5kKEtleWJvYXJkRXZlbnQqKTsKKyAg
ICB2b2lkIGNhY2hlU3RhdGVGb3JBY3RpdmVTZWxlY3Rpb24oKSBjb25zdDsKICAgICB2b2lkIHNh
dmVMYXN0U2VsZWN0aW9uKCk7CiAKICAgICBtdXRhYmxlIFZlY3RvcjxIVE1MRWxlbWVudCo+IG1f
bGlzdEl0ZW1zOwotICAgIFZlY3Rvcjxib29sPiBtX2NhY2hlZFN0YXRlRm9yQWN0aXZlU2VsZWN0
aW9uOworICAgIG11dGFibGUgVmVjdG9yPGJvb2w+IG1fY2FjaGVkU3RhdGVGb3JBY3RpdmVTZWxl
Y3Rpb247CiAgICAgVmVjdG9yPGJvb2w+IG1fbGFzdE9uQ2hhbmdlU2VsZWN0aW9uOwogICAgIGlu
dCBtX21pbndpZHRoOwogICAgIGludCBtX3NpemU7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAzMzQ5MykK
KysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBA
CisyMDA4LTA1LTE1ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAd2Via2l0Lm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMyODcKKyAgICAgICAgQ2Fubm90IGNoYW5nZSBT
RUxFQ1QgdG8gYSBkeW5hbWljYWxseSBjcmVhdGVkIG9wdGlvbgorCisgICAgICAgICogZmFzdC9m
b3Jtcy9hZGQtc2VsZWN0ZWQtb3B0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9mb3Jtcy9hZGQtc2VsZWN0ZWQtb3B0aW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZm9ybXMvc2VsZWN0LWNhY2hlLWRlc3luY2hyb25pemF0aW9uLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9zZWxlY3QtY2FjaGUtZGVzeW5jaHJvbml6YXRpb24u
aHRtbDogQWRkZWQuCisKIDIwMDgtMDUtMTUgIEp1bGllbiBDaGFmZnJhaXggIDxqY2hhZmZyYWl4
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4uCkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL2FkZC1zZWxlY3RlZC1vcHRpb24tZXhwZWN0ZWQudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvYWRkLXNlbGVjdGVkLW9wdGlvbi1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2FkZC1zZWxlY3Rl
ZC1vcHRpb24tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE0IEBACitUZXN0
IGZvciBidWcgMTMyODc6IENhbm5vdCBjaGFuZ2UgU0VMRUNUIHRvIGEgZHluYW1pY2FsbHkgY3Jl
YXRlZCBvcHRpb24uCisKKyAgICAgICAgIAorUmVzdWx0czoKK1Bhc3NlZAorUGFzc2VkCitQYXNz
ZWQKK1Bhc3NlZAorUGFzc2VkCitQYXNzZWQKK1Bhc3NlZAorUGFzc2VkCitQYXNzZWQKK1Bhc3Nl
ZAoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9hZGQtc2VsZWN0
ZWQtb3B0aW9uLWV4cGVjdGVkLnR4dApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk5hbWU6IHN2bjptaW1lLXR5cGUKICAg
KyB0ZXh0L3BsYWluCk5hbWU6IHN2bjplb2wtc3R5bGUKICAgKyBuYXRpdmUKCkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL2FkZC1zZWxlY3RlZC1vcHRpb24uaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2FkZC1zZWxlY3RlZC1vcHRpb24uaHRtbAkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvYWRkLXNlbGVjdGVkLW9wdGlvbi5odG1s
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEwOCBAQAorPHA+VGVzdCBmb3IgPGEgaHJlZj0iaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMjg3Ij5idWcgMTMyODc8L2E+
OgorQ2Fubm90IGNoYW5nZSBTRUxFQ1QgdG8gYSBkeW5hbWljYWxseSBjcmVhdGVkIG9wdGlvbi48
L3A+Cis8Zm9ybT4KKzxzZWxlY3Qgb25jaGFuZ2U9Im9uQ2hhbmdlKCkiPjxvcHRpb24gc2VsZWN0
ZWQ+RkFJTFVSRTwvb3B0aW9uPjwvc2VsZWN0PgorPHNlbGVjdCBvbmNoYW5nZT0ib25DaGFuZ2Uo
KSI+PG9wdGlvbiBzZWxlY3RlZD5GQUlMVVJFPC9vcHRpb24+PC9zZWxlY3Q+Cis8c2VsZWN0IG9u
Y2hhbmdlPSJvbkNoYW5nZSgpIj48b3B0aW9uIHNlbGVjdGVkPlNVQ0NFU1M8L29wdGlvbj48L3Nl
bGVjdD4KKzxzZWxlY3Qgb25jaGFuZ2U9Im9uQ2hhbmdlKCkiIHNpemU9Mj48b3B0aW9uIHNlbGVj
dGVkPkZBSUxVUkU8L29wdGlvbj48L3NlbGVjdD4KKzxzZWxlY3Qgb25jaGFuZ2U9Im9uQ2hhbmdl
KCkiIHNpemU9Mj48b3B0aW9uIHNlbGVjdGVkPkZBSUxVUkU8L29wdGlvbj48L3NlbGVjdD4KKzxz
ZWxlY3Qgb25jaGFuZ2U9Im9uQ2hhbmdlKCkiIHNpemU9Mj48b3B0aW9uIHNlbGVjdGVkPlNVQ0NF
U1M8L29wdGlvbj48L3NlbGVjdD4KKzxzZWxlY3Qgb25jaGFuZ2U9Im9uQ2hhbmdlKCkiIHNpemU9
MiBtdWx0aXBsZT48b3B0aW9uIHNlbGVjdGVkPlNFTEVDVEVEPC9vcHRpb24+PC9zZWxlY3Q+Cis8
c2VsZWN0IG9uY2hhbmdlPSJvbkNoYW5nZSgpIiBzaXplPTIgbXVsdGlwbGU+PG9wdGlvbiBzZWxl
Y3RlZD5TRUxFQ1RFRDwvb3B0aW9uPjwvc2VsZWN0PgorPHNlbGVjdCBvbmNoYW5nZT0ib25DaGFu
Z2UoKSIgc2l6ZT0yPjxvcHRpb24+RkFJTFVSRTwvb3B0aW9uPjxvcHRpb24gc2VsZWN0ZWQ+RkFJ
TFVSRTwvb3B0aW9uPjwvc2VsZWN0PgorPHNlbGVjdCBvbmNoYW5nZT0ib25DaGFuZ2UoKSIgc2l6
ZT0yPjxvcHRpb24+RkFJTFVSRTwvb3B0aW9uPjwvc2VsZWN0PgorPC9mb3JtPgorPHNjcmlwdD4K
KyAgICBmdW5jdGlvbiBvbkNoYW5nZSgpIHsKKyAgICAgICAgZG9jdW1lbnQud3JpdGUoIjxwPkZB
SUxVUkU6IG9uQ2hhbmdlIGZpcmVkPC9wPiIpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHRlc3RS
ZXN1bHRzKGV4cGVjdGVkQXJyLCBzbCkKKyAgICB7CisgICAgICAgIHZhciByZXN1bHRzQXJyID0g
bmV3IEFycmF5KHNsLm9wdGlvbnMubGVuZ3RoKTsKKyAgICAgICAgCisgICAgICAgIHZhciBpOwor
ICAgICAgICBmb3IgKGk9MDsgaSA8IHNsLm9wdGlvbnMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAg
ICAgIHJlc3VsdHNBcnJbaV0gPSBzbC5vcHRpb25zW2ldLnNlbGVjdGVkOworICAgICAgICB9Cisg
ICAgICAgIHZhciBzdWNjZXNzU3RyaW5nID0gIkZhaWxlZCI7CisgICAgICAgIHZhciBzdWNjZXNz
ID0gZmFsc2U7CisgICAgICAgIGlmIChleHBlY3RlZEFyci5qb2luKCkgPT0gcmVzdWx0c0Fyci5q
b2luKCkpIHsKKyAgICAgICAgICAgIHN1Y2Nlc3MgPSB0cnVlOworICAgICAgICAgICAgc3VjY2Vz
c1N0cmluZyA9ICJQYXNzZWQiOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBsb2coc3Vj
Y2Vzc1N0cmluZyk7CisgICAgICAgIGlmICghc3VjY2VzcykgeworICAgICAgICAgICAgbG9nKCI8
cHJlPiAgICAgRXhwZWN0ZWQ6ICIgKyBleHBlY3RlZEFyci5qb2luKCkgKyAiPGJyPiIgKyAiICAg
ICBBY3R1YWw6ICIgKyByZXN1bHRzQXJyLmpvaW4oKSArICI8L3ByZT4iKTsKKyAgICAgICAgfQor
ICAgIH0KKyAgICAKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKKyAgICB2YXIgcmVzdWx0cyA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIHJlc3VsdHMuaWQgPSAicmVzIjsK
KyAgICByZXN1bHRzLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJSZXN1bHRz
OiIpKTsKKyAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHJlc3VsdHMpOworCisgICAgZnVu
Y3Rpb24gbG9nKG1zZykKKyAgICB7CisgICAgICAgIHZhciByID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3JlcycpOworICAgICAgICByLmlubmVySFRNTCA9IHIuaW5uZXJIVE1MICsgIjxicj4i
ICsgbXNnOworICAgIH0KKworICAgIHRyeSB7CisgICAgICAgIHZhciB0aGVTZWxlY3QgPSBkb2N1
bWVudC5mb3Jtc1swXS5lbGVtZW50c1swXTsKKyAgICAgICAgdGhlU2VsZWN0Lm9wdGlvbnMuYWRk
KG5ldyBPcHRpb24oIlNVQ0NFU1MiLCAiU1VDQ0VTUyIsIGZhbHNlLCB0cnVlKSwgMCk7CisgICAg
ICAgIHRlc3RSZXN1bHRzKFt0cnVlLCBmYWxzZV0sIHRoZVNlbGVjdCk7CisKKyAgICAgICAgdGhl
U2VsZWN0ID0gZG9jdW1lbnQuZm9ybXNbMF0uZWxlbWVudHNbMV07CisgICAgICAgIHRoZVNlbGVj
dC5pbnNlcnRCZWZvcmUobmV3IE9wdGlvbigiU1VDQ0VTUyIsICJTVUNDRVNTIiwgZmFsc2UsIHRy
dWUpLCB0aGVTZWxlY3QuZmlyc3RDaGlsZCk7CisgICAgICAgIHRlc3RSZXN1bHRzKFt0cnVlLCBm
YWxzZV0sIHRoZVNlbGVjdCk7CisKKyAgICAgICAgLy8gZGVmYXVsdFNlbGVjdGVkIGRvZXNuJ3Qg
bWFrZSB0aGUgZWxlbWVudCBzZWxlY3RlZCB3aGVuIGluc2VydGVkLgorICAgICAgICB0aGVTZWxl
Y3QgPSBkb2N1bWVudC5mb3Jtc1swXS5lbGVtZW50c1syXTsKKyAgICAgICAgdGhlU2VsZWN0Lm9w
dGlvbnMuYWRkKG5ldyBPcHRpb24oIkZBSUxVUkUiLCAiRkFJTFVSRSIsIHRydWUsIGZhbHNlKSwg
MCk7CisgICAgICAgIHRlc3RSZXN1bHRzKFtmYWxzZSwgdHJ1ZV0sIHRoZVNlbGVjdCk7CisKKwor
ICAgICAgICB0aGVTZWxlY3QgPSBkb2N1bWVudC5mb3Jtc1swXS5lbGVtZW50c1szXTsKKyAgICAg
ICAgdGhlU2VsZWN0Lm9wdGlvbnNbMF0uc2VsZWN0ZWQgPSAxOworICAgICAgICB0aGVTZWxlY3Qu
b3B0aW9ucy5hZGQobmV3IE9wdGlvbigiU1VDQ0VTUyIsICJTVUNDRVNTIiwgZmFsc2UsIHRydWUp
LCAwKTsKKyAgICAgICAgdGVzdFJlc3VsdHMoW3RydWUsIGZhbHNlXSwgdGhlU2VsZWN0KTsKKwor
ICAgICAgICB0aGVTZWxlY3QgPSBkb2N1bWVudC5mb3Jtc1swXS5lbGVtZW50c1s0XTsKKyAgICAg
ICAgdGhlU2VsZWN0Lm9wdGlvbnNbMF0uc2VsZWN0ZWQgPSAxOworICAgICAgICB0aGVTZWxlY3Qu
aW5zZXJ0QmVmb3JlKG5ldyBPcHRpb24oIlNVQ0NFU1MiLCAiU1VDQ0VTUyIsIGZhbHNlLCB0cnVl
KSwgdGhlU2VsZWN0LmZpcnN0Q2hpbGQpOworICAgICAgICB0ZXN0UmVzdWx0cyhbdHJ1ZSwgZmFs
c2VdLCB0aGVTZWxlY3QpOworCisgICAgICAgIC8vIGRlZmF1bHRTZWxlY3RlZCBkb2Vzbid0IG1h
a2UgdGhlIGVsZW1lbnQgc2VsZWN0ZWQgd2hlbiBpbnNlcnRlZC4KKyAgICAgICAgdGhlU2VsZWN0
ID0gZG9jdW1lbnQuZm9ybXNbMF0uZWxlbWVudHNbNV07CisgICAgICAgIHRoZVNlbGVjdC5vcHRp
b25zWzBdLnNlbGVjdGVkID0gMTsKKyAgICAgICAgdGhlU2VsZWN0Lm9wdGlvbnMuYWRkKG5ldyBP
cHRpb24oIkZBSUxVUkUiLCAiRkFJTFVSRSIsIHRydWUsIGZhbHNlKSwgMCk7CisgICAgICAgIHRl
c3RSZXN1bHRzKFtmYWxzZSwgdHJ1ZV0sIHRoZVNlbGVjdCk7CisKKworICAgICAgICB0aGVTZWxl
Y3QgPSBkb2N1bWVudC5mb3Jtc1swXS5lbGVtZW50c1s2XTsKKyAgICAgICAgdGhlU2VsZWN0Lm9w
dGlvbnMuYWRkKG5ldyBPcHRpb24oIlNFTEVDVEVEIiwgIlNFTEVDVEVEIiwgZmFsc2UsIHRydWUp
LCAwKTsKKyAgICAgICAgdGVzdFJlc3VsdHMoW3RydWUsIHRydWVdLCB0aGVTZWxlY3QpOworCisg
ICAgICAgIHRoZVNlbGVjdCA9IGRvY3VtZW50LmZvcm1zWzBdLmVsZW1lbnRzWzddOworICAgICAg
ICB0aGVTZWxlY3QuaW5zZXJ0QmVmb3JlKG5ldyBPcHRpb24oIlNFTEVDVEVEIiwgIlNFTEVDVEVE
IiwgZmFsc2UsIHRydWUpLCB0aGVTZWxlY3QuZmlyc3RDaGlsZCk7CisgICAgICAgIHRlc3RSZXN1
bHRzKFt0cnVlLCB0cnVlXSwgdGhlU2VsZWN0KTsKKworCisgICAgICAgIHRoZVNlbGVjdCA9IGRv
Y3VtZW50LmZvcm1zWzBdLmVsZW1lbnRzWzhdOworICAgICAgICB0aGVTZWxlY3QucmVwbGFjZUNo
aWxkKG5ldyBPcHRpb24oIlNVQ0NFU1MiLCAiU1VDQ0VTUyIsIGZhbHNlLCB0cnVlKSwgdGhlU2Vs
ZWN0LmZpcnN0Q2hpbGQpOworICAgICAgICB0ZXN0UmVzdWx0cyhbdHJ1ZSwgZmFsc2VdLCB0aGVT
ZWxlY3QpOworCisKKyAgICAgICAgdGhlU2VsZWN0ID0gZG9jdW1lbnQuZm9ybXNbMF0uZWxlbWVu
dHNbOV07CisgICAgICAgIHRoZVNlbGVjdC5hcHBlbmRDaGlsZChuZXcgT3B0aW9uKCJTVUNDRVNT
IiwgIlNVQ0NFU1MiLCBmYWxzZSwgdHJ1ZSkpOworICAgICAgICB0ZXN0UmVzdWx0cyhbZmFsc2Us
IHRydWVdLCB0aGVTZWxlY3QpOworCisgICAgfSBjYXRjaCAoZXgpIHsKKyAgICAgICAgYWxlcnQo
ZXgpOworICAgIH0KKzwvc2NyaXB0PgoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9hZGQtc2VsZWN0ZWQtb3B0aW9uLmh0bWwKX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpOYW1lOiBzdm46
bWltZS10eXBlCiAgICsgdGV4dC9odG1sCgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9z
ZWxlY3QtY2FjaGUtZGVzeW5jaHJvbml6YXRpb24tZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2VsZWN0LWNhY2hlLWRlc3luY2hyb25pemF0aW9uLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2VsZWN0
LWNhY2hlLWRlc3luY2hyb25pemF0aW9uLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSwyIEBACisKK1N1Y2Nlc3MuCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL3NlbGVjdC1jYWNoZS1kZXN5bmNocm9uaXphdGlvbi1leHBlY3RlZC50eHQKX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fXwpOYW1lOiBzdm46bWltZS10eXBlCiAgICsgdGV4dC9wbGFpbgpOYW1lOiBzdm46ZW9s
LXN0eWxlCiAgICsgbmF0aXZlCgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zZWxlY3Qt
Y2FjaGUtZGVzeW5jaHJvbml6YXRpb24uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL3NlbGVjdC1jYWNoZS1kZXN5bmNocm9uaXphdGlvbi5odG1sCShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zZWxlY3QtY2FjaGUtZGVzeW5jaHJvbml6YXRp
b24uaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyNSBAQAorPGJvZHk+PGZvcm0+Cis8c2Vs
ZWN0IG11bHRpcGxlIHNpemU9NSBvbmNoYW5nZT0iY2hhbmdlKCkiPjxvcHRpb24+MTwvb3B0aW9u
PjxvcHRpb24+Mjwvb3B0aW9uPjwvc2VsZWN0PgorPC9mb3JtPgorPGRpdiBpZD1yZXM+PC9kaXY+
Cis8c2NyaXB0PgorCit2YXIgc2VsZWN0ID0gZG9jdW1lbnQuZm9ybXNbMF0uZWxlbWVudHNbMF07
Cit2YXIgcmVzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlcyIpOworc2VsZWN0LmZvY3Vz
KCk7CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGV2ZW50U2VuZGVyLmtleURvd24oImRvd25BcnJv
dyIsIFtdKTsKKyAgICBldmVudFNlbmRlci5rZXlEb3duKCJkb3duQXJyb3ciLCBbInNoaWZ0S2V5
Il0pOworfSBlbHNlIHsKKyAgICByZXMudGV4dENvbnRlbnQgPSAiUHJlc3MgZG93biBhcnJvdy4i
OworfQorCitmdW5jdGlvbiBjaGFuZ2UoKSB7CisgICAgaWYgKHNlbGVjdC5maXJzdENoaWxkLnNl
bGVjdGVkICYmICFzZWxlY3QuZmlyc3RDaGlsZC5uZXh0U2libGluZy5zZWxlY3RlZCkgeworICAg
ICAgICBzZWxlY3QuYXBwZW5kQ2hpbGQobmV3IE9wdGlvbigiMyIsICIzIiwgZmFsc2UsIGZhbHNl
KSk7CisgICAgICAgIHJlcy50ZXh0Q29udGVudCA9ICJQcmVzcyBzaGlmdCArIGRvd24gYXJyb3cu
IjsKKyAgICB9IGVsc2UgaWYgKHNlbGVjdC5maXJzdENoaWxkLnNlbGVjdGVkICYmIHNlbGVjdC5m
aXJzdENoaWxkLm5leHRTaWJsaW5nLnNlbGVjdGVkKQorICAgICAgICByZXMudGV4dENvbnRlbnQg
PSAiU3VjY2Vzcy4iOworfQorPC9zY3JpcHQ+CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL3NlbGVjdC1jYWNoZS1kZXN5bmNocm9uaXphdGlvbi5odG1sCl9fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX18KTmFtZTogc3ZuOm1pbWUtdHlwZQogICArIHRleHQvaHRtbAoK
</data>
<flag name="review"
          id="9251"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>28692</attachid>
            <date>2009-03-17 10:42:02 -0700</date>
            <delta_ts>2009-03-17 10:52:04 -0700</delta_ts>
            <desc>proposed fix</desc>
            <filename>AddSelectedOption.txt</filename>
            <type>text/plain</type>
            <size>23691</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0MTc2OCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzkgQEAKKzIwMDktMDMtMTcgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEB3ZWJr
aXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzI4NworICAgICAgICBD
YW5ub3QgY2hhbmdlIFNFTEVDVCB0byBhIGR5bmFtaWNhbGx5IGNyZWF0ZWQgb3B0aW9uCisKKyAg
ICAgICAgVGVzdHM6IGZhc3QvZm9ybXMvYWRkLWFuZC1yZW1vdmUtb3B0aW9uLmh0bWwKKyAgICAg
ICAgICAgICAgIGZhc3QvZm9ybXMvYWRkLXJlbW92ZS1vcHRpb24tbW9kaWZpY2F0aW9uLWV2ZW50
Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZm9ybXMvYWRkLXNlbGVjdGVkLW9wdGlvbi5odG1s
CisgICAgICAgICAgICAgICBmYXN0L2Zvcm1zL3NlbGVjdC1jYWNoZS1kZXN5bmNocm9uaXphdGlv
bi5odG1sCisKKyAgICAgICAgKiBkb20vQ29udGFpbmVyTm9kZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpkaXNwYXRjaENoaWxkSW5zZXJ0aW9uRXZlbnRzKTogSW5jcmVtZW50IERPTSB0cmVlIHZl
cnNpb24uIFRoaXMgd2lsbCBoYXBwZW4gd2hlbgorICAgICAgICBkaXNwYXRjaGluZyBET01TdWJ0
cmVlTW9kaWZpZWQgYWdhaW4sIGJ1dCB0aGUgdmVyc2lvbiBzaG91bGQgYmUgaW5jcmVtZW50ZWQg
Zm9yIGV2ZW50CisgICAgICAgIGxpc3RlbmVycyB0byBoYXZlIGFuIHVwIHRvIGRhdGUgdmlldyBv
ZiB0aGUgRE9NLgorICAgICAgICAoV2ViQ29yZTo6ZGlzcGF0Y2hDaGlsZFJlbW92YWxFdmVudHMp
OiBEaXR0by4KKworICAgICAgICAqIGh0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwOiAoV2ViQ29y
ZTo6SFRNTE9wdGlvbkVsZW1lbnQ6Omluc2VydGVkSW50b1RyZWUpOgorICAgICAgICBNYWtlIHN1
cmUgdGhhdCB0aGUgc2VsZWN0IGVsZW1lbnQga25vd3MgYWJvdXQgaXRzIG5ldyBzZWxlY3RlZCBv
cHRpb24uCisKKyAgICAgICAgKiBodG1sL0hUTUxPcHRpb25FbGVtZW50Lmg6IFVzZSBpbnNlcnRl
ZEludG9UcmVlKCkgaW5zdGVhZCBvZiBpbnNlcnRlZEludG9Eb2N1bWVudCgpLAorICAgICAgICBi
ZWNhdXNlIERPTSBhbHNvIG5lZWRzIHRvIGJlIHVwZGF0ZWQgZm9yIGZvcm1zIHRoYXQgYXJlIG5v
dCBpbiBkb2N1bWVudCB5ZXQuIFNpbWlsYXIKKyAgICAgICAgcHJvYmxlbXMgZXhpc3QgZm9yIG5v
ZGUgcmVtb3ZpbmcsIGJ1dCByZW1vdmVkRnJvbVRyZWUoKSBpcyBjYWxsZWQgYXQgYSB3cm9uZyB0
aW1lLCBzbworICAgICAgICB0aG9zZSBwcm9ibGVtcyBjYW5ub3QgYmUgZml4ZWQgd2l0aG91dCBk
ZWVwZXIgcmVmYWN0b3JpbmcuCisKKyAgICAgICAgKiBodG1sL0hUTUxTZWxlY3RFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50OjphZGQpOiBUaGlzIGZ1bmN0
aW9uIGRvZXNuJ3QgbG9vayBhdCBleGNlcHRpb24gY29kZSwgc28gaXQKKyAgICAgICAgZG9lc24n
dCBuZWVkIHRvIHJlc2V0IGl0LgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6
OnNldFJlY2FsY0xpc3RJdGVtcyk6IFJlc2V0IG1fYWN0aXZlU2VsZWN0aW9uQW5jaG9ySW5kZXgg
LSBpdAorICAgICAgICBkb2Vzbid0IG1ha2Ugc2Vuc2UgdG8ga2VlcCB0aGUgYW5jaG9yIGFmdGVy
IHByb2dyYW1tYXRpY2FsbHkgY2hhbmdpbmcgdGhlIHNlbGVjdGlvbiwgYW5kCisgICAgICAgIGtl
ZXBpbmcgaXQgd2FzIGNhdXNpbmcgYSBmYWlsdXJlIGluIGZhc3QvZm9ybXMvbGlzdGJveC1zZWxl
Y3Rpb24uaHRtbC4KKworICAgICAgICAqIGh0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaDogUmVtb3Zl
ZCBvdmVycmlkZXMgZm9yIENvbnRhaW5lck5vZGUgbWV0aG9kcyB0aGF0IG9ubHkgY2FsbGVkCisg
ICAgICAgIGJhc2UgY2xhc3MgdmVyc2lvbnMuCisKIDIwMDktMDMtMTcgIFhhbiBMb3BleiAgPHhs
b3BlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEhvbGdlciBGcmV5dGhlci4K
SW5kZXg6IFdlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCShyZXZpc2lvbiA0MTc1OCkKKysrIFdlYkNvcmUvZG9t
L0NvbnRhaW5lck5vZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04NzgsNiArODc4LDggQEAgc3Rh
dGljIHZvaWQgZGlzcGF0Y2hDaGlsZEluc2VydGlvbkV2ZW50cwogICAgIGVsc2UKICAgICAgICAg
Yy0+aW5zZXJ0ZWRJbnRvVHJlZSh0cnVlKTsKIAorICAgIGRvYy0+aW5jRE9NVHJlZVZlcnNpb24o
KTsKKwogICAgIGlmIChjLT5wYXJlbnROb2RlKCkgJiYgZG9jLT5oYXNMaXN0ZW5lclR5cGUoRG9j
dW1lbnQ6OkRPTU5PREVJTlNFUlRFRF9MSVNURU5FUikpIHsKICAgICAgICAgZWMgPSAwOwogICAg
ICAgICBjLT5kaXNwYXRjaEV2ZW50KE11dGF0aW9uRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCku
RE9NTm9kZUluc2VydGVkRXZlbnQsIHRydWUsIGZhbHNlLApAQCAtOTA1LDYgKzkwNyw4IEBAIHN0
YXRpYyB2b2lkIGRpc3BhdGNoQ2hpbGRSZW1vdmFsRXZlbnRzKE4KICAgICAvLyB1cGRhdGUgYXV4
aWxpYXJ5IGRvYyBpbmZvIChlLmcuIGl0ZXJhdG9ycykgdG8gbm90ZSB0aGF0IG5vZGUgaXMgYmVp
bmcgcmVtb3ZlZAogICAgIGRvYy0+bm9kZVdpbGxCZVJlbW92ZWQoY2hpbGQpOwogCisgICAgZG9j
LT5pbmNET01UcmVlVmVyc2lvbigpOworCiAgICAgLy8gZGlzcGF0Y2ggcHJlLXJlbW92YWwgbXV0
YXRpb24gZXZlbnRzCiAgICAgaWYgKGMtPnBhcmVudE5vZGUoKSAmJiBkb2MtPmhhc0xpc3RlbmVy
VHlwZShEb2N1bWVudDo6RE9NTk9ERVJFTU9WRURfTElTVEVORVIpKSB7CiAgICAgICAgIGVjID0g
MDsKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcAkocmV2aXNpb24gNDE3NTgpCisr
KyBXZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
MjUsMTMgKzIyNSwxNiBAQCBib29sIEhUTUxPcHRpb25FbGVtZW50OjpkaXNhYmxlZCgpIGNvbnN0
CiAgICAgcmV0dXJuIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmRpc2FibGVkKCkgfHwgKHBhcmVu
dE5vZGUoKSAmJiBzdGF0aWNfY2FzdDxIVE1MRm9ybUNvbnRyb2xFbGVtZW50Kj4ocGFyZW50Tm9k
ZSgpKS0+ZGlzYWJsZWQoKSk7IAogfQogCi12b2lkIEhUTUxPcHRpb25FbGVtZW50OjppbnNlcnRl
ZEludG9Eb2N1bWVudCgpCit2b2lkIEhUTUxPcHRpb25FbGVtZW50OjppbnNlcnRlZEludG9UcmVl
KGJvb2wgZGVlcCkKIHsKLSAgICBIVE1MU2VsZWN0RWxlbWVudCogc2VsZWN0OwotICAgIGlmIChz
ZWxlY3RlZCgpICYmIChzZWxlY3QgPSBvd25lclNlbGVjdEVsZW1lbnQoKSkpCisgICAgaWYgKEhU
TUxTZWxlY3RFbGVtZW50KiBzZWxlY3QgPSBvd25lclNlbGVjdEVsZW1lbnQoKSkgeworICAgICAg
ICBzZWxlY3QtPnNldFJlY2FsY0xpc3RJdGVtcygpOworICAgICAgICBpZiAoc2VsZWN0ZWQoKSkK
KyAgICAgICAgICAgIHNlbGVjdC0+c2V0U2VsZWN0ZWRJbmRleChpbmRleCgpLCBmYWxzZSk7CiAg
ICAgICAgIHNlbGVjdC0+c2Nyb2xsVG9TZWxlY3Rpb24oKTsKKyAgICB9CiAgICAgCi0gICAgSFRN
TEZvcm1Db250cm9sRWxlbWVudDo6aW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKTsKKyAgICBIVE1MRm9y
bUNvbnRyb2xFbGVtZW50OjppbnNlcnRlZEludG9UcmVlKGRlZXApOwogfQogCiB9IC8vIG5hbWVz
cGFjZQpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmgJKHJldmlzaW9uIDQxNzU4KQorKysg
V2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTc3LDcg
Kzc3LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29sIGRpc2FibGVkKCkgY29uc3Q7CiAg
ICAgCi0gICAgdmlydHVhbCB2b2lkIGluc2VydGVkSW50b0RvY3VtZW50KCk7CisgICAgdmlydHVh
bCB2b2lkIGluc2VydGVkSW50b1RyZWUoYm9vbCk7CiAgICAgdmlydHVhbCB2b2lkIGFjY2Vzc0tl
eUFjdGlvbihib29sKTsKICAgICAKIHByaXZhdGU6CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTFNl
bGVjdEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxl
bWVudC5jcHAJKHJldmlzaW9uIDQxNzU4KQorKysgV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVt
ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjIxLDcgKzIyMSw2IEBAIHZvaWQgSFRNTFNlbGVj
dEVsZW1lbnQ6OmFkZChIVE1MRWxlbWVudCAKICAgICBpZiAoIWVsZW1lbnQgfHwgIShlbGVtZW50
LT5oYXNMb2NhbE5hbWUob3B0aW9uVGFnKSB8fCBlbGVtZW50LT5oYXNMb2NhbE5hbWUoaHJUYWcp
KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgZWMgPSAwOwogICAgIGluc2VydEJlZm9yZShlbGVt
ZW50LCBiZWZvcmUsIGVjKTsKIH0KIApAQCAtMjk1LDM2ICsyOTQsNiBAQCB2b2lkIEhUTUxTZWxl
Y3RFbGVtZW50OjpyZXN0b3JlU3RhdGUoY29uCiAgICAgc2V0Q2hhbmdlZCgpOwogfQogCi1ib29s
IEhUTUxTZWxlY3RFbGVtZW50OjppbnNlcnRCZWZvcmUoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGls
ZCwgTm9kZSogcmVmQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjLCBib29sIHNob3VsZExhenlBdHRh
Y2gpCi17Ci0gICAgYm9vbCByZXN1bHQgPSBIVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRl
OjppbnNlcnRCZWZvcmUobmV3Q2hpbGQsIHJlZkNoaWxkLCBlYywgc2hvdWxkTGF6eUF0dGFjaCk7
Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotYm9vbCBIVE1MU2VsZWN0RWxlbWVudDo6cmVwbGFj
ZUNoaWxkKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIE5vZGUgKm9sZENoaWxkLCBFeGNlcHRp
b25Db2RlJiBlYywgYm9vbCBzaG91bGRMYXp5QXR0YWNoKQotewotICAgIGJvb2wgcmVzdWx0ID0g
SFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZTo6cmVwbGFjZUNoaWxkKG5ld0NoaWxkLCBv
bGRDaGlsZCwgZWMsIHNob3VsZExhenlBdHRhY2gpOwotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0K
LWJvb2wgSFRNTFNlbGVjdEVsZW1lbnQ6OnJlbW92ZUNoaWxkKE5vZGUqIG9sZENoaWxkLCBFeGNl
cHRpb25Db2RlJiBlYykKLXsKLSAgICBib29sIHJlc3VsdCA9IEhUTUxGb3JtQ29udHJvbEVsZW1l
bnRXaXRoU3RhdGU6OnJlbW92ZUNoaWxkKG9sZENoaWxkLCBlYyk7Ci0gICAgcmV0dXJuIHJlc3Vs
dDsKLX0KLQotYm9vbCBIVE1MU2VsZWN0RWxlbWVudDo6YXBwZW5kQ2hpbGQoUGFzc1JlZlB0cjxO
b2RlPiBuZXdDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMsIGJvb2wgc2hvdWxkTGF6eUF0dGFjaCkK
LXsKLSAgICBib29sIHJlc3VsdCA9IEhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGU6OmFw
cGVuZENoaWxkKG5ld0NoaWxkLCBlYywgc2hvdWxkTGF6eUF0dGFjaCk7Ci0gICAgcmV0dXJuIHJl
c3VsdDsKLX0KLQotYm9vbCBIVE1MU2VsZWN0RWxlbWVudDo6cmVtb3ZlQ2hpbGRyZW4oKQotewot
ICAgIGJvb2wgcmVzdWx0ID0gSFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZTo6cmVtb3Zl
Q2hpbGRyZW4oKTsKLSAgICByZXR1cm4gcmVzdWx0OwotfQotCiB2b2lkIEhUTUxTZWxlY3RFbGVt
ZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShNYXBwZWRBdHRyaWJ1dGUgKmF0dHIpCiB7CiAgICAg
Ym9vbCBvbGRVc2VzTWVudUxpc3QgPSB1c2VzTWVudUxpc3QoKTsKQEAgLTUyOCw2ICs0OTcsNyBA
QCB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpjaGlsZHJlbkNoYW5nZWQoCiB2b2lkIEhUTUxTZWxl
Y3RFbGVtZW50OjpzZXRSZWNhbGNMaXN0SXRlbXMoKQogewogICAgIG1fcmVjYWxjTGlzdEl0ZW1z
ID0gdHJ1ZTsKKyAgICBtX2FjdGl2ZVNlbGVjdGlvbkFuY2hvckluZGV4ID0gLTE7IC8vIE1hbnVh
bCBzZWxlY3Rpb24gYW5jaG9yIGlzIHJlc2V0IHdoZW4gbWFuaXB1bGF0aW5nIHRoZSBzZWxlY3Qg
cHJvZ3JhbW1hdGljYWxseS4KICAgICBpZiAocmVuZGVyZXIoKSkgewogICAgICAgICBpZiAodXNl
c01lbnVMaXN0KCkpCiAgICAgICAgICAgICBzdGF0aWNfY2FzdDxSZW5kZXJNZW51TGlzdCo+KHJl
bmRlcmVyKCkpLT5zZXRPcHRpb25zQ2hhbmdlZCh0cnVlKTsKSW5kZXg6IFdlYkNvcmUvaHRtbC9I
VE1MU2VsZWN0RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MU2VsZWN0
RWxlbWVudC5oCShyZXZpc2lvbiA0MTc1OCkKKysrIFdlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxl
bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC04MSwxMSArODEsNiBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCBib29sIHNhdmVTdGF0ZShTdHJpbmcmIHZhbHVlKSBjb25zdDsKICAgICB2aXJ0dWFsIHZv
aWQgcmVzdG9yZVN0YXRlKGNvbnN0IFN0cmluZyYpOwogCi0gICAgdmlydHVhbCBib29sIGluc2Vy
dEJlZm9yZShQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBOb2RlKiByZWZDaGlsZCwgRXhjZXB0
aW9uQ29kZSYsIGJvb2wgc2hvdWxkTGF6eUF0dGFjaCA9IGZhbHNlKTsKLSAgICB2aXJ0dWFsIGJv
b2wgcmVwbGFjZUNoaWxkKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIE5vZGUqIG9sZENoaWxk
LCBFeGNlcHRpb25Db2RlJiwgYm9vbCBzaG91bGRMYXp5QXR0YWNoID0gZmFsc2UpOwotICAgIHZp
cnR1YWwgYm9vbCByZW1vdmVDaGlsZChOb2RlKiBjaGlsZCwgRXhjZXB0aW9uQ29kZSYpOwotICAg
IHZpcnR1YWwgYm9vbCBhcHBlbmRDaGlsZChQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBFeGNl
cHRpb25Db2RlJiwgYm9vbCBzaG91bGRMYXp5QXR0YWNoID0gZmFsc2UpOwotICAgIHZpcnR1YWwg
Ym9vbCByZW1vdmVDaGlsZHJlbigpOwogICAgIHZpcnR1YWwgdm9pZCBjaGlsZHJlbkNoYW5nZWQo
Ym9vbCBjaGFuZ2VkQnlQYXJzZXIgPSBmYWxzZSwgTm9kZSogYmVmb3JlQ2hhbmdlID0gMCwgTm9k
ZSogYWZ0ZXJDaGFuZ2UgPSAwLCBpbnQgY2hpbGRDb3VudERlbHRhID0gMCk7CiAKICAgICB2aXJ0
dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRyaWJ1dGUoTWFwcGVkQXR0cmlidXRlKik7CkluZGV4OiBM
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0MTc2OCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDE2IEBACisyMDA5LTAzLTE3ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBA
d2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIGZhc3QvZm9ybXMvYWRkLWFuZC1yZW1vdmUtb3B0aW9uLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9hZGQtYW5kLXJlbW92ZS1vcHRpb24uaHRtbDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9hZGQtcmVtb3ZlLW9wdGlvbi1tb2RpZmljYXRpb24t
ZXZlbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2FkZC1yZW1v
dmUtb3B0aW9uLW1vZGlmaWNhdGlvbi1ldmVudC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2Zvcm1zL2FkZC1zZWxlY3RlZC1vcHRpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2Zvcm1zL2FkZC1zZWxlY3RlZC1vcHRpb24uaHRtbDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9mb3Jtcy9zZWxlY3QtY2FjaGUtZGVzeW5jaHJvbml6YXRpb24tZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL3NlbGVjdC1jYWNoZS1kZXN5bmNocm9uaXphdGlv
bi5odG1sOiBBZGRlZC4KKwogMjAwOS0wMy0xNyAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5j
b20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWxleGV5IFByb3NrdXJ5YWtvdi4KQEAgLTE3LDYg
KzMwLDE4IEBACiAKIDIwMDktMDMtMTcgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEB3ZWJraXQu
b3JnPgogCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzI4NworICAgICAgICBDYW5u
b3QgY2hhbmdlIFNFTEVDVCB0byBhIGR5bmFtaWNhbGx5IGNyZWF0ZWQgb3B0aW9uCisKKyAgICAg
ICAgKiBmYXN0L2Zvcm1zL2FkZC1zZWxlY3RlZC1vcHRpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2Zvcm1zL2FkZC1zZWxlY3RlZC1vcHRpb24uaHRtbDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9mb3Jtcy9zZWxlY3QtY2FjaGUtZGVzeW5jaHJvbml6YXRpb24tZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL3NlbGVjdC1jYWNoZS1kZXN5bmNo
cm9uaXphdGlvbi5odG1sOiBBZGRlZC4KKworMjAwOS0wMy0xNyAgQWxleGV5IFByb3NrdXJ5YWtv
diAgPGFwQHdlYmtpdC5vcmc+CisKICAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4KIAog
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQ2MTQKSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvYWRkLWFuZC1yZW1vdmUtb3B0aW9uLWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2FkZC1hbmQtcmVtb3Zl
LW9wdGlvbi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL2FkZC1hbmQtcmVtb3ZlLW9wdGlvbi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsOSBAQAorVGVzdCBmb3IgYnVnIDEzMjg3OiBDYW5ub3QgY2hhbmdlIFNFTEVDVCB0byBh
IGR5bmFtaWNhbGx5IGNyZWF0ZWQgb3B0aW9uLgorCitUZXN0IHRoYXQgRE9NIGlzIHVwZGF0ZWQg
YmVmb3JlIERPTU5vZGVJbnNlcnRlZCBpcyBkaXNwYXRjaGVkLgorCisgIAorCitQYXNzZWQKK1Bh
c3NlZAorUGFzc2VkCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L2FkZC1hbmQtcmVtb3ZlLW9wdGlvbi1leHBlY3RlZC50eHQKX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpOYW1lOiBzdm46
bWltZS10eXBlCiAgICsgdGV4dC9wbGFpbgpOYW1lOiBzdm46ZW9sLXN0eWxlCiAgICsgbmF0aXZl
CgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9hZGQtYW5kLXJlbW92ZS1vcHRpb24uaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2FkZC1hbmQtcmVtb3ZlLW9w
dGlvbi5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9hZGQtYW5k
LXJlbW92ZS1vcHRpb24uaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3MSBAQAorPHA+VGVz
dCBmb3IgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEz
Mjg3Ij5idWcgMTMyODc8L2E+OgorQ2Fubm90IGNoYW5nZSBTRUxFQ1QgdG8gYSBkeW5hbWljYWxs
eSBjcmVhdGVkIG9wdGlvbi48L3A+Cis8cD5UZXN0IHRoYXQgRE9NIGlzIHVwZGF0ZWQgYmVmb3Jl
IERPTU5vZGVJbnNlcnRlZCBpcyBkaXNwYXRjaGVkLjwvcD4KKzxmb3JtPgorPHNlbGVjdCA+PG9w
dGlvbiBzZWxlY3RlZD4xPC9vcHRpb24+PG9wdGlvbiA+Mjwvb3B0aW9uPjwvc2VsZWN0PgorPHNl
bGVjdCBtdWx0aXBsZT48b3B0aW9uIHNlbGVjdGVkPjE8L29wdGlvbj48b3B0aW9uID4yPC9vcHRp
b24+PC9zZWxlY3Q+Cis8c2VsZWN0IHNpemU9NT48b3B0aW9uIHNlbGVjdGVkPjE8L29wdGlvbj48
b3B0aW9uIHNlbGVjdGVkPjI8L29wdGlvbj48L3NlbGVjdD4KKzwvZm9ybT4KKzxkaXYgaWQ9cmVz
PjwvZGl2PgorPHNjcmlwdD4KKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQor
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKKyAgICBmdW5jdGlv
biBsb2cobXNnKQorICAgIHsKKyAgICAgICAgdmFyIHIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgncmVzJyk7CisgICAgICAgIHIuaW5uZXJIVE1MID0gci5pbm5lckhUTUwgKyAiPGJyPiIgKyBt
c2c7CisgICAgfQorCisgICAgdmFyIHRoZVNlbGVjdDsKKworICAgIGZ1bmN0aW9uIHRlc3RSZXN1
bHRzKGV4cGVjdGVkQXJyKQorICAgIHsKKyAgICAgICAgdmFyIHJlc3VsdHNBcnIgPSBuZXcgQXJy
YXkodGhlU2VsZWN0Lm9wdGlvbnMubGVuZ3RoKTsKKyAgICAgICAgCisgICAgICAgIHZhciBpOwor
ICAgICAgICBmb3IgKGk9MDsgaSA8IHRoZVNlbGVjdC5vcHRpb25zLmxlbmd0aDsgaSsrKSB7Cisg
ICAgICAgICAgICByZXN1bHRzQXJyW2ldID0gdGhlU2VsZWN0Lm9wdGlvbnNbaV0uc2VsZWN0ZWQ7
CisgICAgICAgIH0KKyAgICAgICAgdmFyIHN1Y2Nlc3NTdHJpbmcgPSAiRmFpbGVkIjsKKyAgICAg
ICAgdmFyIHN1Y2Nlc3MgPSBmYWxzZTsKKyAgICAgICAgaWYgKGV4cGVjdGVkQXJyLmpvaW4oKSA9
PSByZXN1bHRzQXJyLmpvaW4oKSkgeworICAgICAgICAgICAgc3VjY2VzcyA9IHRydWU7CisgICAg
ICAgICAgICBzdWNjZXNzU3RyaW5nID0gIlBhc3NlZCI7CisgICAgICAgIH0KKyAgICAgICAgCisg
ICAgICAgIGxvZyhzdWNjZXNzU3RyaW5nKTsKKyAgICAgICAgaWYgKCFzdWNjZXNzKSB7CisgICAg
ICAgICAgICBsb2coIjxwcmU+ICAgICBFeHBlY3RlZDogIiArIGV4cGVjdGVkQXJyLmpvaW4oKSAr
ICI8YnI+IiArICIgICAgIEFjdHVhbDogIiArIHJlc3VsdHNBcnIuam9pbigpICsgIjwvcHJlPiIp
OworICAgICAgICB9CisgICAgfQorCisgICAgZnVuY3Rpb24gbm9kZUluc2VydGVkKCkKKyAgICB7
CisgICAgICAgIGlmICh0aGVTZWxlY3Qub3B0aW9ucy5sZW5ndGggIT0gMykKKyAgICAgICAgICAg
IGxvZygiSW5jb3JyZWN0IG9wdGlvbnMgbGVuZ3RoOiAiICsgdGhlU2VsZWN0Lm9wdGlvbnMubGVu
Z3RoKTsKKyAgICAgICAgdGhlU2VsZWN0LnJlbW92ZUNoaWxkKHRoZVNlbGVjdC5maXJzdENoaWxk
KTsKKyAgICAgICAgaWYgKHRoZVNlbGVjdC5vcHRpb25zLmxlbmd0aCAhPSAyKQorICAgICAgICAg
ICAgbG9nKCJJbmNvcnJlY3Qgb3B0aW9ucyBsZW5ndGg6ICIgKyB0aGVTZWxlY3Qub3B0aW9ucy5s
ZW5ndGgpOworICAgIH0KKworICAgIHRyeSB7CisgICAgICAgIHRoZVNlbGVjdCA9IGRvY3VtZW50
LmZvcm1zWzBdLmVsZW1lbnRzWzBdOworICAgICAgICB0aGVTZWxlY3QuYWRkRXZlbnRMaXN0ZW5l
cigiRE9NTm9kZUluc2VydGVkIiwgbm9kZUluc2VydGVkLCB0cnVlKTsKKyAgICAgICAgdGhlU2Vs
ZWN0Lm9wdGlvbnMuYWRkKG5ldyBPcHRpb24oIjMiLCAiMyIsIGZhbHNlLCB0cnVlKSwgMCk7Cisg
ICAgICAgIHRlc3RSZXN1bHRzKFt0cnVlLCBmYWxzZV0sIHRoZVNlbGVjdCk7CisKKyAgICAgICAg
dGhlU2VsZWN0ID0gZG9jdW1lbnQuZm9ybXNbMF0uZWxlbWVudHNbMV07CisgICAgICAgIHRoZVNl
bGVjdC5hZGRFdmVudExpc3RlbmVyKCJET01Ob2RlSW5zZXJ0ZWQiLCBub2RlSW5zZXJ0ZWQsIHRy
dWUpOworICAgICAgICB0aGVTZWxlY3Qub3B0aW9ucy5hZGQobmV3IE9wdGlvbigiMyIsICIzIiwg
ZmFsc2UsIHRydWUpLCAwKTsKKyAgICAgICAgdGVzdFJlc3VsdHMoW3RydWUsIGZhbHNlXSwgdGhl
U2VsZWN0KTsKKworICAgICAgICB0aGVTZWxlY3QgPSBkb2N1bWVudC5mb3Jtc1swXS5lbGVtZW50
c1syXTsKKyAgICAgICAgdGhlU2VsZWN0LmFkZEV2ZW50TGlzdGVuZXIoIkRPTU5vZGVJbnNlcnRl
ZCIsIG5vZGVJbnNlcnRlZCwgdHJ1ZSk7CisgICAgICAgIHRoZVNlbGVjdC5pbnNlcnRCZWZvcmUo
bmV3IE9wdGlvbigiMyIsICIzIiwgZmFsc2UsIHRydWUpLCB0aGVTZWxlY3QuZmlyc3RDaGlsZCk7
CisgICAgICAgIHRlc3RSZXN1bHRzKFtmYWxzZSwgZmFsc2VdLCB0aGVTZWxlY3QpOworCisgICAg
fSBjYXRjaCAoZXgpIHsKKyAgICAgICAgYWxlcnQoZXgpOworICAgIH0KKzwvc2NyaXB0PgoKUHJv
cGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9hZGQtYW5kLXJlbW92ZS1v
cHRpb24uaHRtbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fCk5hbWU6IHN2bjptaW1lLXR5cGUKICAgKyB0ZXh0L2h0bWwK
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2FkZC1yZW1vdmUtb3B0aW9uLW1vZGlmaWNh
dGlvbi1ldmVudC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9hZGQtcmVtb3ZlLW9wdGlvbi1tb2RpZmljYXRpb24tZXZlbnQtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9hZGQtcmVtb3ZlLW9wdGlvbi1t
b2RpZmljYXRpb24tZXZlbnQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEw
IEBACitUZXN0IHRoYXQgU0VMRUNUIGlzIGluIGNvcnJlY3Qgc3RhdGUgd2hlbiBoYW5kbGluZyBh
IERPTSBtb2RpZmljYXRpb24gZXZlbnQgZm9yIG9wdGlvbiByZW1vdmluZy4KKworICAKKworRmFp
bGVkCisgICAgIEV4cGVjdGVkOiB0cnVlCisgICAgIEFjdHVhbDogZmFsc2UKKworUGFzc2VkCitQ
YXNzZWQKClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvYWRkLXJl
bW92ZS1vcHRpb24tbW9kaWZpY2F0aW9uLWV2ZW50LWV4cGVjdGVkLnR4dApfX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk5h
bWU6IHN2bjptaW1lLXR5cGUKICAgKyB0ZXh0L3BsYWluCk5hbWU6IHN2bjplb2wtc3R5bGUKICAg
KyBuYXRpdmUKCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2FkZC1yZW1vdmUtb3B0aW9u
LW1vZGlmaWNhdGlvbi1ldmVudC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvYWRkLXJlbW92ZS1vcHRpb24tbW9kaWZpY2F0aW9uLWV2ZW50Lmh0bWwJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2FkZC1yZW1vdmUtb3B0aW9uLW1vZGlmaWNh
dGlvbi1ldmVudC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDY3IEBACis8cD5UZXN0IHRo
YXQgU0VMRUNUIGlzIGluIGNvcnJlY3Qgc3RhdGUgd2hlbiBoYW5kbGluZyBhIERPTSBtb2RpZmlj
YXRpb24gZXZlbnQgZm9yIG9wdGlvbiByZW1vdmluZy48L3A+Cis8Zm9ybT4KKzxzZWxlY3QgPjxv
cHRpb24gc2VsZWN0ZWQ+MTwvb3B0aW9uPjxvcHRpb24+Mjwvb3B0aW9uPjwvc2VsZWN0PgorPHNl
bGVjdCBtdWx0aXBsZT48b3B0aW9uIHNlbGVjdGVkPjE8L29wdGlvbj48b3B0aW9uIHNlbGVjdGVk
PjI8L29wdGlvbj48L3NlbGVjdD4KKzxzZWxlY3QgbXVsdGlwbGU+PC9zZWxlY3Q+Cis8L2Zvcm0+
Cis8ZGl2IGlkPXJlcz48L2Rpdj4KKzxzY3JpcHQ+CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwor
CisgICAgZnVuY3Rpb24gbG9nKG1zZykKKyAgICB7CisgICAgICAgIHZhciByID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ3JlcycpOworICAgICAgICByLmlubmVySFRNTCA9IHIuaW5uZXJIVE1M
ICsgIjxicj4iICsgbXNnOworICAgIH0KKworICAgIHZhciB0aGVTZWxlY3Q7CisKKyAgICBmdW5j
dGlvbiB0ZXN0UmVzdWx0cyhleHBlY3RlZEFycikKKyAgICB7CisgICAgICAgIHZhciByZXN1bHRz
QXJyID0gbmV3IEFycmF5KHRoZVNlbGVjdC5vcHRpb25zLmxlbmd0aCk7CisgICAgICAgIAorICAg
ICAgICB2YXIgaTsKKyAgICAgICAgZm9yIChpPTA7IGkgPCB0aGVTZWxlY3Qub3B0aW9ucy5sZW5n
dGg7IGkrKykgeworICAgICAgICAgICAgcmVzdWx0c0FycltpXSA9IHRoZVNlbGVjdC5vcHRpb25z
W2ldLnNlbGVjdGVkOworICAgICAgICB9CisgICAgICAgIHZhciBzdWNjZXNzU3RyaW5nID0gIkZh
aWxlZCI7CisgICAgICAgIHZhciBzdWNjZXNzID0gZmFsc2U7CisgICAgICAgIGlmIChleHBlY3Rl
ZEFyci5qb2luKCkgPT0gcmVzdWx0c0Fyci5qb2luKCkpIHsKKyAgICAgICAgICAgIHN1Y2Nlc3Mg
PSB0cnVlOworICAgICAgICAgICAgc3VjY2Vzc1N0cmluZyA9ICJQYXNzZWQiOworICAgICAgICB9
CisgICAgICAgIAorICAgICAgICBsb2coc3VjY2Vzc1N0cmluZyk7CisgICAgICAgIGlmICghc3Vj
Y2VzcykgeworICAgICAgICAgICAgbG9nKCI8cHJlPiAgICAgRXhwZWN0ZWQ6ICIgKyBleHBlY3Rl
ZEFyci5qb2luKCkgKyAiPGJyPiIgKyAiICAgICBBY3R1YWw6ICIgKyByZXN1bHRzQXJyLmpvaW4o
KSArICI8L3ByZT4iKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGZ1bmN0aW9uIHN1YnRyZWVN
b2RpZmllZCgpCisgICAgeworICAgICAgICB0ZXN0UmVzdWx0cyhbdHJ1ZV0sIHRoZVNlbGVjdCk7
CisgICAgfQorCisgICAgZnVuY3Rpb24gbm9kZUluc2VydGVkKCkKKyAgICB7CisgICAgICAgIHRl
c3RSZXN1bHRzKFtmYWxzZV0sIHRoZVNlbGVjdCk7CisgICAgfQorCisgICAgdHJ5IHsKKyAgICAg
ICAgdGhlU2VsZWN0ID0gZG9jdW1lbnQuZm9ybXNbMF0uZWxlbWVudHNbMF07CisgICAgICAgIHRo
ZVNlbGVjdC5hZGRFdmVudExpc3RlbmVyKCJET01TdWJ0cmVlTW9kaWZpZWQiLCBzdWJ0cmVlTW9k
aWZpZWQsIHRydWUpOworICAgICAgICB0aGVTZWxlY3QucmVtb3ZlKHRoZVNlbGVjdC5vcHRpb25z
WzBdKTsKKworICAgICAgICB0aGVTZWxlY3QgPSBkb2N1bWVudC5mb3Jtc1swXS5lbGVtZW50c1sx
XTsKKyAgICAgICAgdGhlU2VsZWN0LmFkZEV2ZW50TGlzdGVuZXIoIkRPTVN1YnRyZWVNb2RpZmll
ZCIsIHN1YnRyZWVNb2RpZmllZCwgdHJ1ZSk7CisgICAgICAgIHRoZVNlbGVjdC5yZW1vdmUodGhl
U2VsZWN0Lm9wdGlvbnNbMF0pOworCisgICAgICAgIHRoZVNlbGVjdCA9IGRvY3VtZW50LmZvcm1z
WzBdLmVsZW1lbnRzWzJdOworICAgICAgICB0aGVTZWxlY3QuYWRkRXZlbnRMaXN0ZW5lcigiRE9N
Tm9kZUluc2VydGVkIiwgbm9kZUluc2VydGVkLCB0cnVlKTsKKyAgICAgICAgdGhlU2VsZWN0Lm9w
dGlvbnMuYWRkKG5ldyBPcHRpb24oIjIiLCAiMiIsIGZhbHNlLCBmYWxzZSksIDApOworCisgICAg
fSBjYXRjaCAoZXgpIHsKKyAgICAgICAgYWxlcnQoZXgpOworICAgIH0KKzwvc2NyaXB0PgoKUHJv
cGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9hZGQtcmVtb3ZlLW9wdGlv
bi1tb2RpZmljYXRpb24tZXZlbnQuaHRtbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk5hbWU6IHN2bjptaW1lLXR5cGUK
ICAgKyB0ZXh0L2h0bWwKCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2FkZC1zZWxlY3Rl
ZC1vcHRpb24tZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZm9y
bXMvYWRkLXNlbGVjdGVkLW9wdGlvbi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL2FkZC1zZWxlY3RlZC1vcHRpb24tZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDE0IEBACitUZXN0IGZvciBidWcgMTMyODc6IENhbm5vdCBjaGFu
Z2UgU0VMRUNUIHRvIGEgZHluYW1pY2FsbHkgY3JlYXRlZCBvcHRpb24uCisKKyAgICAgICAgIAor
UmVzdWx0czoKK1Bhc3NlZAorUGFzc2VkCitQYXNzZWQKK1Bhc3NlZAorUGFzc2VkCitQYXNzZWQK
K1Bhc3NlZAorUGFzc2VkCitQYXNzZWQKK1Bhc3NlZAoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9hZGQtc2VsZWN0ZWQtb3B0aW9uLWV4cGVjdGVkLnR4dApfX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fCk5hbWU6IHN2bjptaW1lLXR5cGUKICAgKyB0ZXh0L3BsYWluCk5hbWU6IHN2bjplb2wt
c3R5bGUKICAgKyBuYXRpdmUKCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2FkZC1zZWxl
Y3RlZC1vcHRpb24uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Fk
ZC1zZWxlY3RlZC1vcHRpb24uaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvYWRkLXNlbGVjdGVkLW9wdGlvbi5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEw
OCBAQAorPHA+VGVzdCBmb3IgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEzMjg3Ij5idWcgMTMyODc8L2E+OgorQ2Fubm90IGNoYW5nZSBTRUxFQ1QgdG8g
YSBkeW5hbWljYWxseSBjcmVhdGVkIG9wdGlvbi48L3A+Cis8Zm9ybT4KKzxzZWxlY3Qgb25jaGFu
Z2U9Im9uQ2hhbmdlKCkiPjxvcHRpb24gc2VsZWN0ZWQ+RkFJTFVSRTwvb3B0aW9uPjwvc2VsZWN0
PgorPHNlbGVjdCBvbmNoYW5nZT0ib25DaGFuZ2UoKSI+PG9wdGlvbiBzZWxlY3RlZD5GQUlMVVJF
PC9vcHRpb24+PC9zZWxlY3Q+Cis8c2VsZWN0IG9uY2hhbmdlPSJvbkNoYW5nZSgpIj48b3B0aW9u
IHNlbGVjdGVkPlNVQ0NFU1M8L29wdGlvbj48L3NlbGVjdD4KKzxzZWxlY3Qgb25jaGFuZ2U9Im9u
Q2hhbmdlKCkiIHNpemU9Mj48b3B0aW9uIHNlbGVjdGVkPkZBSUxVUkU8L29wdGlvbj48L3NlbGVj
dD4KKzxzZWxlY3Qgb25jaGFuZ2U9Im9uQ2hhbmdlKCkiIHNpemU9Mj48b3B0aW9uIHNlbGVjdGVk
PkZBSUxVUkU8L29wdGlvbj48L3NlbGVjdD4KKzxzZWxlY3Qgb25jaGFuZ2U9Im9uQ2hhbmdlKCki
IHNpemU9Mj48b3B0aW9uIHNlbGVjdGVkPlNVQ0NFU1M8L29wdGlvbj48L3NlbGVjdD4KKzxzZWxl
Y3Qgb25jaGFuZ2U9Im9uQ2hhbmdlKCkiIHNpemU9MiBtdWx0aXBsZT48b3B0aW9uIHNlbGVjdGVk
PlNFTEVDVEVEPC9vcHRpb24+PC9zZWxlY3Q+Cis8c2VsZWN0IG9uY2hhbmdlPSJvbkNoYW5nZSgp
IiBzaXplPTIgbXVsdGlwbGU+PG9wdGlvbiBzZWxlY3RlZD5TRUxFQ1RFRDwvb3B0aW9uPjwvc2Vs
ZWN0PgorPHNlbGVjdCBvbmNoYW5nZT0ib25DaGFuZ2UoKSIgc2l6ZT0yPjxvcHRpb24+RkFJTFVS
RTwvb3B0aW9uPjxvcHRpb24gc2VsZWN0ZWQ+RkFJTFVSRTwvb3B0aW9uPjwvc2VsZWN0PgorPHNl
bGVjdCBvbmNoYW5nZT0ib25DaGFuZ2UoKSIgc2l6ZT0yPjxvcHRpb24+RkFJTFVSRTwvb3B0aW9u
Pjwvc2VsZWN0PgorPC9mb3JtPgorPHNjcmlwdD4KKyAgICBmdW5jdGlvbiBvbkNoYW5nZSgpIHsK
KyAgICAgICAgZG9jdW1lbnQud3JpdGUoIjxwPkZBSUxVUkU6IG9uQ2hhbmdlIGZpcmVkPC9wPiIp
OworICAgIH0KKworICAgIGZ1bmN0aW9uIHRlc3RSZXN1bHRzKGV4cGVjdGVkQXJyLCBzbCkKKyAg
ICB7CisgICAgICAgIHZhciByZXN1bHRzQXJyID0gbmV3IEFycmF5KHNsLm9wdGlvbnMubGVuZ3Ro
KTsKKyAgICAgICAgCisgICAgICAgIHZhciBpOworICAgICAgICBmb3IgKGk9MDsgaSA8IHNsLm9w
dGlvbnMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIHJlc3VsdHNBcnJbaV0gPSBzbC5vcHRp
b25zW2ldLnNlbGVjdGVkOworICAgICAgICB9CisgICAgICAgIHZhciBzdWNjZXNzU3RyaW5nID0g
IkZhaWxlZCI7CisgICAgICAgIHZhciBzdWNjZXNzID0gZmFsc2U7CisgICAgICAgIGlmIChleHBl
Y3RlZEFyci5qb2luKCkgPT0gcmVzdWx0c0Fyci5qb2luKCkpIHsKKyAgICAgICAgICAgIHN1Y2Nl
c3MgPSB0cnVlOworICAgICAgICAgICAgc3VjY2Vzc1N0cmluZyA9ICJQYXNzZWQiOworICAgICAg
ICB9CisgICAgICAgIAorICAgICAgICBsb2coc3VjY2Vzc1N0cmluZyk7CisgICAgICAgIGlmICgh
c3VjY2VzcykgeworICAgICAgICAgICAgbG9nKCI8cHJlPiAgICAgRXhwZWN0ZWQ6ICIgKyBleHBl
Y3RlZEFyci5qb2luKCkgKyAiPGJyPiIgKyAiICAgICBBY3R1YWw6ICIgKyByZXN1bHRzQXJyLmpv
aW4oKSArICI8L3ByZT4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1w
QXNUZXh0KCk7CisKKyAgICB2YXIgcmVzdWx0cyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rp
dicpOworICAgIHJlc3VsdHMuaWQgPSAicmVzIjsKKyAgICByZXN1bHRzLmFwcGVuZENoaWxkKGRv
Y3VtZW50LmNyZWF0ZVRleHROb2RlKCJSZXN1bHRzOiIpKTsKKyAgICBkb2N1bWVudC5ib2R5LmFw
cGVuZENoaWxkKHJlc3VsdHMpOworCisgICAgZnVuY3Rpb24gbG9nKG1zZykKKyAgICB7CisgICAg
ICAgIHZhciByID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3JlcycpOworICAgICAgICByLmlu
bmVySFRNTCA9IHIuaW5uZXJIVE1MICsgIjxicj4iICsgbXNnOworICAgIH0KKworICAgIHRyeSB7
CisgICAgICAgIHZhciB0aGVTZWxlY3QgPSBkb2N1bWVudC5mb3Jtc1swXS5lbGVtZW50c1swXTsK
KyAgICAgICAgdGhlU2VsZWN0Lm9wdGlvbnMuYWRkKG5ldyBPcHRpb24oIlNVQ0NFU1MiLCAiU1VD
Q0VTUyIsIGZhbHNlLCB0cnVlKSwgMCk7CisgICAgICAgIHRlc3RSZXN1bHRzKFt0cnVlLCBmYWxz
ZV0sIHRoZVNlbGVjdCk7CisKKyAgICAgICAgdGhlU2VsZWN0ID0gZG9jdW1lbnQuZm9ybXNbMF0u
ZWxlbWVudHNbMV07CisgICAgICAgIHRoZVNlbGVjdC5pbnNlcnRCZWZvcmUobmV3IE9wdGlvbigi
U1VDQ0VTUyIsICJTVUNDRVNTIiwgZmFsc2UsIHRydWUpLCB0aGVTZWxlY3QuZmlyc3RDaGlsZCk7
CisgICAgICAgIHRlc3RSZXN1bHRzKFt0cnVlLCBmYWxzZV0sIHRoZVNlbGVjdCk7CisKKyAgICAg
ICAgLy8gZGVmYXVsdFNlbGVjdGVkIGRvZXNuJ3QgbWFrZSB0aGUgZWxlbWVudCBzZWxlY3RlZCB3
aGVuIGluc2VydGVkLgorICAgICAgICB0aGVTZWxlY3QgPSBkb2N1bWVudC5mb3Jtc1swXS5lbGVt
ZW50c1syXTsKKyAgICAgICAgdGhlU2VsZWN0Lm9wdGlvbnMuYWRkKG5ldyBPcHRpb24oIkZBSUxV
UkUiLCAiRkFJTFVSRSIsIHRydWUsIGZhbHNlKSwgMCk7CisgICAgICAgIHRlc3RSZXN1bHRzKFtm
YWxzZSwgdHJ1ZV0sIHRoZVNlbGVjdCk7CisKKworICAgICAgICB0aGVTZWxlY3QgPSBkb2N1bWVu
dC5mb3Jtc1swXS5lbGVtZW50c1szXTsKKyAgICAgICAgdGhlU2VsZWN0Lm9wdGlvbnNbMF0uc2Vs
ZWN0ZWQgPSAxOworICAgICAgICB0aGVTZWxlY3Qub3B0aW9ucy5hZGQobmV3IE9wdGlvbigiU1VD
Q0VTUyIsICJTVUNDRVNTIiwgZmFsc2UsIHRydWUpLCAwKTsKKyAgICAgICAgdGVzdFJlc3VsdHMo
W3RydWUsIGZhbHNlXSwgdGhlU2VsZWN0KTsKKworICAgICAgICB0aGVTZWxlY3QgPSBkb2N1bWVu
dC5mb3Jtc1swXS5lbGVtZW50c1s0XTsKKyAgICAgICAgdGhlU2VsZWN0Lm9wdGlvbnNbMF0uc2Vs
ZWN0ZWQgPSAxOworICAgICAgICB0aGVTZWxlY3QuaW5zZXJ0QmVmb3JlKG5ldyBPcHRpb24oIlNV
Q0NFU1MiLCAiU1VDQ0VTUyIsIGZhbHNlLCB0cnVlKSwgdGhlU2VsZWN0LmZpcnN0Q2hpbGQpOwor
ICAgICAgICB0ZXN0UmVzdWx0cyhbdHJ1ZSwgZmFsc2VdLCB0aGVTZWxlY3QpOworCisgICAgICAg
IC8vIGRlZmF1bHRTZWxlY3RlZCBkb2Vzbid0IG1ha2UgdGhlIGVsZW1lbnQgc2VsZWN0ZWQgd2hl
biBpbnNlcnRlZC4KKyAgICAgICAgdGhlU2VsZWN0ID0gZG9jdW1lbnQuZm9ybXNbMF0uZWxlbWVu
dHNbNV07CisgICAgICAgIHRoZVNlbGVjdC5vcHRpb25zWzBdLnNlbGVjdGVkID0gMTsKKyAgICAg
ICAgdGhlU2VsZWN0Lm9wdGlvbnMuYWRkKG5ldyBPcHRpb24oIkZBSUxVUkUiLCAiRkFJTFVSRSIs
IHRydWUsIGZhbHNlKSwgMCk7CisgICAgICAgIHRlc3RSZXN1bHRzKFtmYWxzZSwgdHJ1ZV0sIHRo
ZVNlbGVjdCk7CisKKworICAgICAgICB0aGVTZWxlY3QgPSBkb2N1bWVudC5mb3Jtc1swXS5lbGVt
ZW50c1s2XTsKKyAgICAgICAgdGhlU2VsZWN0Lm9wdGlvbnMuYWRkKG5ldyBPcHRpb24oIlNFTEVD
VEVEIiwgIlNFTEVDVEVEIiwgZmFsc2UsIHRydWUpLCAwKTsKKyAgICAgICAgdGVzdFJlc3VsdHMo
W3RydWUsIHRydWVdLCB0aGVTZWxlY3QpOworCisgICAgICAgIHRoZVNlbGVjdCA9IGRvY3VtZW50
LmZvcm1zWzBdLmVsZW1lbnRzWzddOworICAgICAgICB0aGVTZWxlY3QuaW5zZXJ0QmVmb3JlKG5l
dyBPcHRpb24oIlNFTEVDVEVEIiwgIlNFTEVDVEVEIiwgZmFsc2UsIHRydWUpLCB0aGVTZWxlY3Qu
Zmlyc3RDaGlsZCk7CisgICAgICAgIHRlc3RSZXN1bHRzKFt0cnVlLCB0cnVlXSwgdGhlU2VsZWN0
KTsKKworCisgICAgICAgIHRoZVNlbGVjdCA9IGRvY3VtZW50LmZvcm1zWzBdLmVsZW1lbnRzWzhd
OworICAgICAgICB0aGVTZWxlY3QucmVwbGFjZUNoaWxkKG5ldyBPcHRpb24oIlNVQ0NFU1MiLCAi
U1VDQ0VTUyIsIGZhbHNlLCB0cnVlKSwgdGhlU2VsZWN0LmZpcnN0Q2hpbGQpOworICAgICAgICB0
ZXN0UmVzdWx0cyhbdHJ1ZSwgZmFsc2VdLCB0aGVTZWxlY3QpOworCisKKyAgICAgICAgdGhlU2Vs
ZWN0ID0gZG9jdW1lbnQuZm9ybXNbMF0uZWxlbWVudHNbOV07CisgICAgICAgIHRoZVNlbGVjdC5h
cHBlbmRDaGlsZChuZXcgT3B0aW9uKCJTVUNDRVNTIiwgIlNVQ0NFU1MiLCBmYWxzZSwgdHJ1ZSkp
OworICAgICAgICB0ZXN0UmVzdWx0cyhbZmFsc2UsIHRydWVdLCB0aGVTZWxlY3QpOworCisgICAg
fSBjYXRjaCAoZXgpIHsKKyAgICAgICAgYWxlcnQoZXgpOworICAgIH0KKzwvc2NyaXB0PgoKUHJv
cGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9hZGQtc2VsZWN0ZWQtb3B0
aW9uLmh0bWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fXwpOYW1lOiBzdm46bWltZS10eXBlCiAgICsgdGV4dC9odG1sCgpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zZWxlY3QtY2FjaGUtZGVzeW5jaHJvbml6YXRp
b24tZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2Vs
ZWN0LWNhY2hlLWRlc3luY2hyb25pemF0aW9uLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2VsZWN0LWNhY2hlLWRlc3luY2hyb25pemF0aW9uLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyIEBACisKK1N1Y2Nlc3MuCgpQcm9w
ZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NlbGVjdC1jYWNoZS1kZXN5
bmNocm9uaXphdGlvbi1leHBlY3RlZC50eHQKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpOYW1lOiBzdm46bWltZS10eXBl
CiAgICsgdGV4dC9wbGFpbgpOYW1lOiBzdm46ZW9sLXN0eWxlCiAgICsgbmF0aXZlCgpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zZWxlY3QtY2FjaGUtZGVzeW5jaHJvbml6YXRpb24uaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NlbGVjdC1jYWNoZS1kZXN5
bmNocm9uaXphdGlvbi5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9zZWxlY3QtY2FjaGUtZGVzeW5jaHJvbml6YXRpb24uaHRtbAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSwyNyBAQAorPGJvZHk+PGZvcm0+Cis8c2VsZWN0IG11bHRpcGxlIHNpemU9NSBvbmNoYW5n
ZT0iY2hhbmdlKCkiPjxvcHRpb24+MTwvb3B0aW9uPjxvcHRpb24+Mjwvb3B0aW9uPjwvc2VsZWN0
PgorPC9mb3JtPgorPGRpdiBpZD1yZXM+PC9kaXY+Cis8c2NyaXB0PgorCit2YXIgc2VsZWN0ID0g
ZG9jdW1lbnQuZm9ybXNbMF0uZWxlbWVudHNbMF07Cit2YXIgcmVzID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInJlcyIpOworc2VsZWN0LmZvY3VzKCk7CitpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAg
IGV2ZW50U2VuZGVyLmtleURvd24oImRvd25BcnJvdyIsIFtdKTsKKyAgICBldmVudFNlbmRlci5r
ZXlEb3duKCJkb3duQXJyb3ciLCBbInNoaWZ0S2V5Il0pOworfSBlbHNlIHsKKyAgICByZXMudGV4
dENvbnRlbnQgPSAiUHJlc3MgZG93biBhcnJvdy4iOworfQorCitmdW5jdGlvbiBjaGFuZ2UoKSB7
CisgICAgaWYgKHNlbGVjdC5maXJzdENoaWxkLnNlbGVjdGVkICYmICFzZWxlY3QuZmlyc3RDaGls
ZC5uZXh0U2libGluZy5zZWxlY3RlZCkgeworICAgICAgICBzZWxlY3QuYXBwZW5kQ2hpbGQobmV3
IE9wdGlvbigiMyIsICIzIiwgZmFsc2UsIGZhbHNlKSk7CisgICAgICAgIHJlcy50ZXh0Q29udGVu
dCA9ICJQcmVzcyBzaGlmdCArIGRvd24gYXJyb3cuIjsKKyAgICB9IGVsc2UgaWYgKHNlbGVjdC5m
aXJzdENoaWxkLnNlbGVjdGVkICYmIHNlbGVjdC5maXJzdENoaWxkLm5leHRTaWJsaW5nLnNlbGVj
dGVkICYmICFzZWxlY3QubGFzdENoaWxkLnNlbGVjdGVkKQorICAgICAgICByZXMudGV4dENvbnRl
bnQgPSAiU3VjY2Vzcy4iOworICAgIGVsc2UKKyAgICAgICAgcmVzLnRleHRDb250ZW50ID0gIkZh
aWxlZC4iOworfQorPC9zY3JpcHQ+CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL3NlbGVjdC1jYWNoZS1kZXN5bmNocm9uaXphdGlvbi5odG1sCl9fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K
TmFtZTogc3ZuOm1pbWUtdHlwZQogICArIHRleHQvaHRtbAoK
</data>
<flag name="review"
          id="14132"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>