<?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>33197</bug_id>
          
          <creation_ts>2010-01-04 23:47:42 -0800</creation_ts>
          <short_desc>webkit-patch upload mistakenly picks up bug URLs in non-ChangeLog files</short_desc>
          <delta_ts>2010-04-01 23:25:01 -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>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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>31761</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Maciej Stachowiak">mjs</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>eric</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>177047</commentid>
    <comment_count>0</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2010-01-04 23:47:42 -0800</bug_when>
    <thetext>I tried to make a new bug and upload a patch with bugzilla-tool submit patch, containing the hunk below. Instead of creating a new bug, bugzilla-tool assumed this was a patch for 29268. There are two problems with this:

1) The bug URL was not in a ChangeLog.
2) The line containing the bug URL was not even added in the patch, it was just context.

I think bugzilla-tool should only look for bug URLs in ChangeLogs, and only in + lines.


Index: JavaScriptCore/wtf/Platform.h
===================================================================
--- JavaScriptCore/wtf/Platform.h       (revision 52782)
+++ JavaScriptCore/wtf/Platform.h       (working copy)
@@ -790,11 +804,11 @@
 #endif

 #if !defined(WTF_USE_JSVALUE64) &amp;&amp; !defined(WTF_USE_JSVALUE32) &amp;&amp; !defined(WTF_USE_JSVALUE32_64)
-#if (CPU(X86_64) &amp;&amp; (PLATFORM(UNIX) || PLATFORM(WIN_OS))) || CPU(IA64) || CPU(ALPHA)
+#if (CPU(X86_64) &amp;&amp; (OS(UNIX) || OS(WINDOWS))) || CPU(IA64) || CPU(ALPHA)
 #define WTF_USE_JSVALUE64 1
 #elif CPU(ARM) || CPU(PPC64)
 #define WTF_USE_JSVALUE32 1
-#elif PLATFORM(WIN_OS) &amp;&amp; COMPILER(MINGW)
+#elif OS(WINDOWS) &amp;&amp; COMPILER(MINGW)
 /* Using JSVALUE32_64 causes padding/alignement issues for JITStubArg
 on MinGW. See https://bugs.webkit.org/show_bug.cgi?id=29268 */
 #define WTF_USE_JSVALUE32 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>177058</commentid>
    <comment_count>1</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-01-05 00:05:07 -0800</bug_when>
    <thetext>Yeah, this is the same root cause as bug 31761.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>177060</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-01-05 00:06:23 -0800</bug_when>
    <thetext>This is also related to (but not the same bug as) bug 28092.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179178</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-01-10 15:16:50 -0800</bug_when>
    <thetext>*** Bug 31761 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179182</commentid>
    <comment_count>4</comment_count>
      <attachid>46245</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-01-10 15:26:13 -0800</bug_when>
    <thetext>Created attachment 46245
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179185</commentid>
    <comment_count>5</comment_count>
      <attachid>46247</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-01-10 15:58:45 -0800</bug_when>
    <thetext>Created attachment 46247
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179287</commentid>
    <comment_count>6</comment_count>
      <attachid>46247</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2010-01-10 21:38:45 -0800</bug_when>
    <thetext>Comment on attachment 46247
Patch

&gt; +        Also, fixed a wide-spread typo.

This should be a separate patch.  rs=me to fix the typo separately.

&gt; diff --git a/WebKitTools/Scripts/webkitpy/commands/download.py b/WebKitTools/Scripts/webkitpy/commands/download.py
&gt; @@ -268,6 +269,7 @@ Commits the revert and updates the bug (including re-opening the bug if necessar
&gt;      @staticmethod
&gt;      def _parse_bug_id_from_revision_diff(tool, revision):
&gt;          original_diff = tool.scm().diff_for_revision(revision)
&gt; +        # FIXME: This is wrong because it picks up bug numbers outside of ChangeLogs
&gt;          return parse_bug_id(original_diff)

Why wasn&apos;t this instance fixed at the same time?  At minimum, this should be explained in the ChangeLog.

&gt; diff --git a/WebKitTools/Scripts/webkitpy/mock_bugzillatool.py b/WebKitTools/Scripts/webkitpy/mock_bugzillatool.py
&gt; index f8392aa..ee5a3c8 100644
&gt; --- a/WebKitTools/Scripts/webkitpy/mock_bugzillatool.py
&gt; +++ b/WebKitTools/Scripts/webkitpy/mock_bugzillatool.py
&gt; @@ -156,11 +156,14 @@ class MockSCM(Mock):
&gt;      def commit_ids_from_commitish_arguments(self, args):
&gt;          return [&quot;Commitish1&quot;, &quot;Commitish2&quot;]
&gt;  
&gt; +    def commit_message_for_this_commit(self):
&gt; +        return CommitMessage([&quot;CommitMessage1&quot;, &quot;https://bugs.webkit.org/show_bug.cgi?id=93&quot;])
&gt; +
&gt;      def commit_message_for_local_commit(self, commit_id):
&gt;          if commit_id == &quot;Commitish1&quot;:
&gt; -            return CommitMessage(&quot;CommitMessage1\nhttps://bugs.example.org/show_bug.cgi?id=42\n&quot;)
&gt; +            return CommitMessage([&quot;CommitMessage1&quot;, &quot;https://bugs.webkit.org/show_bug.cgi?id=42&quot;])
&gt;          if commit_id == &quot;Commitish2&quot;:
&gt; -            return CommitMessage(&quot;CommitMessage2\nhttps://bugs.example.org/show_bug.cgi?id=75\n&quot;)
&gt; +            return CommitMessage([&quot;CommitMessage2&quot;, &quot;https://bugs.webkit.org/show_bug.cgi?id=75&quot;])
&gt;          raise Exception(&quot;Bogus commit_id in commit_message_for_local_commit.&quot;)

Why didn&apos;t test results change in response to changing these text inputs?  Shouldn&apos;t there be tests for grabbing the bug id from a local commit?  (Or to reverse the question, why change the URLs if test results didn&apos;t change?)

r- to split the renames into a different patch and to answer the questions above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179289</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-01-10 21:53:23 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 46247 [details])
&gt; &gt; +        Also, fixed a wide-spread typo.
&gt; 
&gt; This should be a separate patch.  rs=me to fix the typo separately.

Ok.

&gt; &gt;          original_diff = tool.scm().diff_for_revision(revision)
&gt; &gt; +        # FIXME: This is wrong because it picks up bug numbers outside of ChangeLogs
&gt; &gt;          return parse_bug_id(original_diff)
&gt; 
&gt; Why wasn&apos;t this instance fixed at the same time?  At minimum, this should be
&gt; explained in the ChangeLog.

It&apos;s a different bug.  The problem is this code wants to grab the bug number for a specific revision, while the code I changed is grabbing it for the current diff.

&gt; Why didn&apos;t test results change in response to changing these text inputs? 

Apparently none of the tests actually cared what the values of the messages were.

&gt; Shouldn&apos;t there be tests for grabbing the bug id from a local commit? 

None of the sites I changed affected that.  I&apos;ll be happy to add that test once we fix that bug.  :)

&gt; (Or to reverse the question, why change the URLs if test results didn&apos;t change?)

Because they were wrong.  The commit messages generated in those mocks were treated has having one character per line.  I just changed the mocks to be consistent and correct.

&gt; r- to split the renames into a different patch and to answer the questions
&gt; above.

Thank for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179291</commentid>
    <comment_count>8</comment_count>
      <attachid>46259</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-01-10 22:23:31 -0800</bug_when>
    <thetext>Created attachment 46259
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179343</commentid>
    <comment_count>9</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2010-01-11 06:39:47 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #6)
&gt; &gt; (From update of attachment 46247 [details] [details])
&gt; &gt; &gt;          original_diff = tool.scm().diff_for_revision(revision)
&gt; &gt; &gt; +        # FIXME: This is wrong because it picks up bug numbers outside of ChangeLogs
&gt; &gt; &gt;          return parse_bug_id(original_diff)
&gt; &gt; 
&gt; &gt; Why wasn&apos;t this instance fixed at the same time?  At minimum, this should be
&gt; &gt; explained in the ChangeLog.
&gt; 
&gt; It&apos;s a different bug.  The problem is this code wants to grab the bug number
&gt; for a specific revision, while the code I changed is grabbing it for the
&gt; current diff.

That seems to me like it&apos;s the same bug on a different code path.  Since it&apos;s not being fixed by a patch for this bug, please file a new bug for it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179344</commentid>
    <comment_count>10</comment_count>
      <attachid>46259</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2010-01-11 06:40:31 -0800</bug_when>
    <thetext>Comment on attachment 46259
Patch

Thanks for splitting out the rename changes into a different patch!

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179348</commentid>
    <comment_count>11</comment_count>
      <attachid>46259</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-01-11 06:51:22 -0800</bug_when>
    <thetext>Comment on attachment 46259
Patch

Rejecting patch 46259 from commit-queue.

Failed to run &quot;[&apos;WebKitTools/Scripts/test-webkitpy&apos;]&quot; exit_code: 1
Traceback (most recent call last):
  File &quot;WebKitTools/Scripts/test-webkitpy&quot;, line 36, in &lt;module&gt;
    from webkitpy.commands.abstractdiffcommand_unittest import *
ImportError: No module named abstractdiffcommand_unittest

Full output: http://webkit-commit-queue.appspot.com/results/177819</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179382</commentid>
    <comment_count>12</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-01-11 08:50:16 -0800</bug_when>
    <thetext>Committed r53079: &lt;http://trac.webkit.org/changeset/53079&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179385</commentid>
    <comment_count>13</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-01-11 08:54:35 -0800</bug_when>
    <thetext>rollout bug filed:

https://bugs.webkit.org/show_bug.cgi?id=33471</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179465</commentid>
    <comment_count>14</comment_count>
      <attachid>46259</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-01-11 12:03:45 -0800</bug_when>
    <thetext>Comment on attachment 46259
Patch

I&apos;m confused how this paricular patch got reviewd.  It&apos;s missing the new class, no?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179466</commentid>
    <comment_count>15</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-01-11 12:04:51 -0800</bug_when>
    <thetext>I&apos;m not sure that the CommitMessage class is what we want to use long term for this.

 38             bug_id = parse_bug_id(tool.scm().commit_message_for_this_commit().message())

I&apos;m glad it works for now, but that class is kinda a hack.  I think we should be dealing with ChangeLog entries instead of commit messages.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179570</commentid>
    <comment_count>16</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-01-11 15:16:47 -0800</bug_when>
    <thetext>&gt; I&apos;m confused how this paricular patch got reviewd.  It&apos;s missing the new class,
&gt; no?

It was in the earlier version that included the typo fixes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179571</commentid>
    <comment_count>17</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-01-11 15:17:49 -0800</bug_when>
    <thetext>&gt; I&apos;m glad it works for now, but that class is kinda a hack.  I think we should
&gt; be dealing with ChangeLog entries instead of commit messages.

I don&apos;t think it actually works: https://bugs.webkit.org/show_bug.cgi?id=33488

Can you roll this out for me?  I&apos;m at Berkeley today.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179572</commentid>
    <comment_count>18</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-01-11 15:27:11 -0800</bug_when>
    <thetext>OK.  Will do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179576</commentid>
    <comment_count>19</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-01-11 15:35:58 -0800</bug_when>
    <thetext>Reverted r53079 for reason:

Adam doens&apos;t think this actually works, and believe it caused a regression https://bugs.webkit.org/show_bug.cgi?id=33488 so rolling this out.

Committed r53105: &lt;http://trac.webkit.org/changeset/53105&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>207703</commentid>
    <comment_count>20</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-04-01 23:25:01 -0700</bug_when>
    <thetext>I believe this is fixed now.  http://trac.webkit.org/changeset/56964</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>46245</attachid>
            <date>2010-01-10 15:26:13 -0800</date>
            <delta_ts>2010-01-10 15:58:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-33197-20100110152612.patch</filename>
            <type>text/plain</type>
            <size>22735</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCAzOTA3ZjAxLi44OWUzMDA4IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjcgQEAKIDIwMTAtMDEt
MTAgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAorICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBidWd6aWxsYS10b29sIHN1Ym1pdC1wYXRjaCBt
aXN0YWtlbmx5IHBpY2tzIHVwIGJ1ZyBVUkxzIGluIG5vbi1DaGFuZ2VMb2cgZmlsZXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMzMTk3CisKKyAgICAg
ICAgV2Ugc2hvdWxkIGp1c3Qgc2VhcmNoIGZvciBidWcgbnVtYmVycyBpbiB0aGUgQ2hhbmdlTG9n
cyBpbnN0ZWFkIG9mIGluCisgICAgICAgIHRoZSB3aG9sZSBkaWZmLgorCisgICAgICAgIEFsc28s
IGZpeGVkIGEgd2lkZS1zcHJlYWQgdHlwby4KKworICAgICAgICAqIFNjcmlwdHMvdGVzdC13ZWJr
aXRweToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1hbmRzL2Fic3RyYWN0ZGlmZmNv
bW1hbmQucHk6IEFkZGVkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbWFuZHMvYWJz
dHJhY3RkaWZmY29tbWFuZF91bml0dGVzdC5weTogQWRkZWQuCisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS9jb21tYW5kcy9hYnN0cmFjdHNlcXVlbmNlZGNvbW1hbmQucHk6CisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS9jb21tYW5kcy9kb3dubG9hZC5weToKKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdHB5L2NvbW1hbmRzL3F1ZXJpZXMucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS9jb21tYW5kcy91cGxvYWQucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9tb2NrX2J1
Z3ppbGxhdG9vbC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L211bHRpY29tbWFuZHRv
b2wucHk6CisKKzIwMTAtMDEtMTAgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKwog
ICAgICAgICBVbnJldmlld2VkIGNvc21ldGljIGNoYW5nZS4gIFJlbW92ZSB0aGUgc3RhdHVzIGJ1
YmJsZSBmb3IgbWFjLWV3cwogICAgICAgICBiZWNhdXNlIHdlIGRvbid0IGhhdmUgaGFyZHdhcmUg
Zm9yIGl0IGF0IHRoZSBtb21lbnQuCiAKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMv
dGVzdC13ZWJraXRweSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvdGVzdC13ZWJraXRweQppbmRleCBm
MzIwZWViLi42ZTVlMGVmIDEwMDc1NQotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3Rlc3Qtd2Vi
a2l0cHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy90ZXN0LXdlYmtpdHB5CkBAIC0zMyw2ICsz
Myw3IEBAIGltcG9ydCB1bml0dGVzdAogZnJvbSB3ZWJraXRweS5idWd6aWxsYV91bml0dGVzdCBp
bXBvcnQgKgogZnJvbSB3ZWJraXRweS5idWlsZGJvdF91bml0dGVzdCBpbXBvcnQgKgogZnJvbSB3
ZWJraXRweS5jaGFuZ2Vsb2dzX3VuaXR0ZXN0IGltcG9ydCAqCitmcm9tIHdlYmtpdHB5LmNvbW1h
bmRzLmFic3RyYWN0ZGlmZmNvbW1hbmRfdW5pdHRlc3QgaW1wb3J0ICoKIGZyb20gd2Via2l0cHku
Y29tbWFuZHMuZG93bmxvYWRfdW5pdHRlc3QgaW1wb3J0ICoKIGZyb20gd2Via2l0cHkuY29tbWFu
ZHMuZWFybHlfd2FybmluZ19zeXN0ZW1fdW5pdHRlc3QgaW1wb3J0ICoKIGZyb20gd2Via2l0cHku
Y29tbWFuZHMudXBsb2FkX3VuaXR0ZXN0IGltcG9ydCAqCmRpZmYgLS1naXQgYS9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1hbmRzL2Fic3RyYWN0ZGlmZmNvbW1hbmQucHkgYi9XZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1hbmRzL2Fic3RyYWN0ZGlmZmNvbW1hbmQucHkK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTU2MzIzMwotLS0gL2Rldi9udWxs
CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbWFuZHMvYWJzdHJhY3RkaWZm
Y29tbWFuZC5weQpAQCAtMCwwICsxLDM5IEBACisjIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQorIyBtZXQ6CisjIAorIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorIyB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorIyAK
KyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQK
KyMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitmcm9tIHdl
YmtpdHB5LmJ1Z3ppbGxhIGltcG9ydCBwYXJzZV9idWdfaWQKK2Zyb20gd2Via2l0cHkuY29tbWFu
ZHMuYWJzdHJhY3RzZXF1ZW5jZWRjb21tYW5kIGltcG9ydCBBYnN0cmFjdFNlcXVlbmNlZENvbW1h
bmQKKworCitjbGFzcyBBYnN0cmFjdERpZmZDb21tYW5kKEFic3RyYWN0U2VxdWVuY2VkQ29tbWFu
ZCk6CisgICAgZGVmIF9idWdfaWQoc2VsZiwgYXJncywgdG9vbCk6CisgICAgICAgICMgUGVyZmVy
IGEgYnVnIGlkIHBhc3NlZCBhcyBhbiBhcmd1bWVudCBvdmVyIGEgYnVnIFVSTCBpbiB0aGUgQ2hh
bmdlTG9ncy4KKyAgICAgICAgYnVnX2lkID0gYXJncyBhbmQgYXJnc1swXQorICAgICAgICBpZiBu
b3QgYnVnX2lkOgorICAgICAgICAgICAgYnVnX2lkID0gcGFyc2VfYnVnX2lkKHRvb2wuc2NtKCku
Y29tbWl0X21lc3NhZ2VfZm9yX3RoaXNfY29tbWl0KCkubWVzc2FnZSgpKQorICAgICAgICByZXR1
cm4gYnVnX2lkCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1h
bmRzL2Fic3RyYWN0ZGlmZmNvbW1hbmRfdW5pdHRlc3QucHkgYi9XZWJLaXRUb29scy9TY3JpcHRz
L3dlYmtpdHB5L2NvbW1hbmRzL2Fic3RyYWN0ZGlmZmNvbW1hbmRfdW5pdHRlc3QucHkKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDNjY2I4MAotLS0gL2Rldi9udWxsCisrKyBi
L1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbWFuZHMvYWJzdHJhY3RkaWZmY29tbWFu
ZF91bml0dGVzdC5weQpAQCAtMCwwICsxLDM2IEBACisjIENvcHlyaWdodCAoQykgMjAxMCBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQorIyBtZXQ6CisjCisjICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAgICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9m
IEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisjIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisjIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisjCisj
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisj
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkK
KyMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IHVu
aXR0ZXN0CisKK2Zyb20gd2Via2l0cHkuY29tbWFuZHMuYWJzdHJhY3RkaWZmY29tbWFuZCBpbXBv
cnQgQWJzdHJhY3REaWZmQ29tbWFuZAorZnJvbSB3ZWJraXRweS5tb2NrX2J1Z3ppbGxhdG9vbCBp
bXBvcnQgTW9ja0J1Z3ppbGxhVG9vbAorCitjbGFzcyBFYXJseVdhcm5pbmdTeXRlbVRlc3QodW5p
dHRlc3QuVGVzdENhc2UpOgorICAgIGRlZiB0ZXN0X2J1Z19pZChzZWxmKToKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbHMoQWJzdHJhY3REaWZmQ29tbWFuZCgpLl9idWdfaWQoTm9uZSwgTW9ja0J1
Z3ppbGxhVG9vbCgpKSwgOTMpCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2NvbW1hbmRzL2Fic3RyYWN0c2VxdWVuY2VkY29tbWFuZC5weSBiL1dlYktpdFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvY29tbWFuZHMvYWJzdHJhY3RzZXF1ZW5jZWRjb21tYW5kLnB5CmluZGV4
IDU5ZjAyOWIuLjUzYWY1YjEgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvY29tbWFuZHMvYWJzdHJhY3RzZXF1ZW5jZWRjb21tYW5kLnB5CisrKyBiL1dlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvY29tbWFuZHMvYWJzdHJhY3RzZXF1ZW5jZWRjb21tYW5kLnB5CkBA
IC0yNiwxNSArMjYsMTUgQEAKICMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiAjIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKLWZyb20g
d2Via2l0cHkubXVsdGljb21tYW5kdG9vbCBpbXBvcnQgQWJzdHJhY3REZWNsYXJhdGl2ZUNvbW1t
YW5kCitmcm9tIHdlYmtpdHB5Lm11bHRpY29tbWFuZHRvb2wgaW1wb3J0IEFic3RyYWN0RGVjbGFy
YXRpdmVDb21tYW5kCiBmcm9tIHdlYmtpdHB5LnN0ZXBzZXF1ZW5jZSBpbXBvcnQgU3RlcFNlcXVl
bmNlCiAKIAotY2xhc3MgQWJzdHJhY3RTZXF1ZW5jZWRDb21tbWFuZChBYnN0cmFjdERlY2xhcmF0
aXZlQ29tbW1hbmQpOgorY2xhc3MgQWJzdHJhY3RTZXF1ZW5jZWRDb21tYW5kKEFic3RyYWN0RGVj
bGFyYXRpdmVDb21tYW5kKToKICAgICBzdGVwcyA9IE5vbmUKICAgICBkZWYgX19pbml0X18oc2Vs
Zik6CiAgICAgICAgIHNlbGYuX3NlcXVlbmNlID0gU3RlcFNlcXVlbmNlKHNlbGYuc3RlcHMpCi0g
ICAgICAgIEFic3RyYWN0RGVjbGFyYXRpdmVDb21tbWFuZC5fX2luaXRfXyhzZWxmLCBzZWxmLl9z
ZXF1ZW5jZS5vcHRpb25zKCkpCisgICAgICAgIEFic3RyYWN0RGVjbGFyYXRpdmVDb21tYW5kLl9f
aW5pdF9fKHNlbGYsIHNlbGYuX3NlcXVlbmNlLm9wdGlvbnMoKSkKIAogICAgIGRlZiBfcHJlcGFy
ZV9zdGF0ZShzZWxmLCBvcHRpb25zLCBhcmdzLCB0b29sKToKICAgICAgICAgcmV0dXJuIE5vbmUK
ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbWFuZHMvZG93bmxv
YWQucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1hbmRzL2Rvd25sb2FkLnB5
CmluZGV4IDNmNjlhZjQuLjNiN2IyYmYgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvY29tbWFuZHMvZG93bmxvYWQucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93
ZWJraXRweS9jb21tYW5kcy9kb3dubG9hZC5weQpAQCAtMzYsMTYgKzM2LDE3IEBAIGltcG9ydCB3
ZWJraXRweS5zdGVwcyBhcyBzdGVwcwogZnJvbSB3ZWJraXRweS5idWd6aWxsYSBpbXBvcnQgcGFy
c2VfYnVnX2lkCiAjIFdlIGNvdWxkIGluc3RlYWQgdXNlIGZyb20gbW9kdWxlcyBpbXBvcnQgYnVp
bGRzdGVwcyBhbmQgdGhlbiBwcmVmaXggZXZlcnkgYnVpbGRzdGVwIHdpdGggImJ1aWxkc3RlcHMu
IgogZnJvbSB3ZWJraXRweS5jaGFuZ2Vsb2dzIGltcG9ydCBDaGFuZ2VMb2cKLWZyb20gd2Via2l0
cHkuY29tbWFuZHMuYWJzdHJhY3RzZXF1ZW5jZWRjb21tYW5kIGltcG9ydCBBYnN0cmFjdFNlcXVl
bmNlZENvbW1tYW5kCitmcm9tIHdlYmtpdHB5LmNvbW1hbmRzLmFic3RyYWN0ZGlmZmNvbW1hbmQg
aW1wb3J0IEFic3RyYWN0RGlmZkNvbW1hbmQKK2Zyb20gd2Via2l0cHkuY29tbWFuZHMuYWJzdHJh
Y3RzZXF1ZW5jZWRjb21tYW5kIGltcG9ydCBBYnN0cmFjdFNlcXVlbmNlZENvbW1hbmQKIGZyb20g
d2Via2l0cHkuY29tbWVudHMgaW1wb3J0IGJ1Z19jb21tZW50X2Zyb21fY29tbWl0X3RleHQKIGZy
b20gd2Via2l0cHkuZXhlY3V0aXZlIGltcG9ydCBTY3JpcHRFcnJvcgogZnJvbSB3ZWJraXRweS5n
cmFtbWFyIGltcG9ydCBwbHVyYWxpemUKIGZyb20gd2Via2l0cHkud2Via2l0X2xvZ2dpbmcgaW1w
b3J0IGVycm9yLCBsb2cKLWZyb20gd2Via2l0cHkubXVsdGljb21tYW5kdG9vbCBpbXBvcnQgQWJz
dHJhY3REZWNsYXJhdGl2ZUNvbW1tYW5kCitmcm9tIHdlYmtpdHB5Lm11bHRpY29tbWFuZHRvb2wg
aW1wb3J0IEFic3RyYWN0RGVjbGFyYXRpdmVDb21tYW5kCiBmcm9tIHdlYmtpdHB5LnN0ZXBzZXF1
ZW5jZSBpbXBvcnQgU3RlcFNlcXVlbmNlCiAKIAotY2xhc3MgQnVpbGQoQWJzdHJhY3RTZXF1ZW5j
ZWRDb21tbWFuZCk6CitjbGFzcyBCdWlsZChBYnN0cmFjdFNlcXVlbmNlZENvbW1hbmQpOgogICAg
IG5hbWUgPSAiYnVpbGQiCiAgICAgaGVscF90ZXh0ID0gIlVwZGF0ZSB3b3JraW5nIGNvcHkgYW5k
IGJ1aWxkIgogICAgIHN0ZXBzID0gWwpAQCAtNTUsNyArNTYsNyBAQCBjbGFzcyBCdWlsZChBYnN0
cmFjdFNlcXVlbmNlZENvbW1tYW5kKToKICAgICBdCiAKIAotY2xhc3MgQnVpbGRBbmRUZXN0KEFi
c3RyYWN0U2VxdWVuY2VkQ29tbW1hbmQpOgorY2xhc3MgQnVpbGRBbmRUZXN0KEFic3RyYWN0U2Vx
dWVuY2VkQ29tbWFuZCk6CiAgICAgbmFtZSA9ICJidWlsZC1hbmQtdGVzdCIKICAgICBoZWxwX3Rl
eHQgPSAiVXBkYXRlIHdvcmtpbmcgY29weSwgYnVpbGQsIGFuZCBydW4gdGhlIHRlc3RzIgogICAg
IHN0ZXBzID0gWwpAQCAtNjYsNyArNjcsNyBAQCBjbGFzcyBCdWlsZEFuZFRlc3QoQWJzdHJhY3RT
ZXF1ZW5jZWRDb21tbWFuZCk6CiAgICAgXQogCiAKLWNsYXNzIExhbmQoQWJzdHJhY3RTZXF1ZW5j
ZWRDb21tbWFuZCk6CitjbGFzcyBMYW5kKEFic3RyYWN0RGlmZkNvbW1hbmQpOgogICAgIG5hbWUg
PSAibGFuZCIKICAgICBoZWxwX3RleHQgPSAiTGFuZCB0aGUgY3VycmVudCB3b3JraW5nIGRpcmVj
dG9yeSBkaWZmIGFuZCB1cGRhdGVzIHRoZSBhc3NvY2lhdGVkIGJ1ZyBpZiBhbnkiCiAgICAgYXJn
dW1lbnRfbmFtZXMgPSAiW0JVR0lEXSIKQEAgLTg4LDEyICs4OSwxMiBAQCBJZiBhIGJ1ZyBpZCBp
cyBwcm92aWRlZCwgb3Igb25lIGNhbiBiZSBmb3VuZCBpbiB0aGUgQ2hhbmdlTG9nIGxhbmQgd2ls
bCB1cGRhdGUgdAogICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgInBhdGNoIiA6IHsKICAg
ICAgICAgICAgICAgICAiaWQiIDogTm9uZSwKLSAgICAgICAgICAgICAgICAiYnVnX2lkIiA6IChh
cmdzIGFuZCBhcmdzWzBdKSBvciBwYXJzZV9idWdfaWQodG9vbC5zY20oKS5jcmVhdGVfcGF0Y2go
KSksCisgICAgICAgICAgICAgICAgImJ1Z19pZCIgOiBzZWxmLl9idWdfaWQoYXJncywgdG9vbCks
CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAogCi1jbGFzcyBBYnN0cmFjdFBhdGNoUHJvY2Vz
c2luZ0NvbW1hbmQoQWJzdHJhY3REZWNsYXJhdGl2ZUNvbW1tYW5kKToKK2NsYXNzIEFic3RyYWN0
UGF0Y2hQcm9jZXNzaW5nQ29tbWFuZChBYnN0cmFjdERlY2xhcmF0aXZlQ29tbWFuZCk6CiAgICAg
IyBTdWJjbGFzc2VzIG11c3QgaW1wbGVtZW50IHRoZSBtZXRob2RzIGJlbG93LiAgV2UgZG9uJ3Qg
ZGVjbGFyZSB0aGVtIGhlcmUKICAgICAjIGJlY2F1c2Ugd2Ugd2FudCB0byBiZSBhYmxlIHRvIGlt
cGxlbWVudCB0aGVtIHdpdGggbWl4LWlucy4KICAgICAjCkBAIC0yNDQsNyArMjQ1LDcgQEAgY2xh
c3MgTGFuZEZyb21CdWcoQWJzdHJhY3RQYXRjaExhbmRpbmdDb21tYW5kLCBQcm9jZXNzQnVnc01p
eGluKToKICAgICBzaG93X2luX21haW5faGVscCA9IFRydWUKIAogCi1jbGFzcyBSb2xsb3V0KEFi
c3RyYWN0U2VxdWVuY2VkQ29tbW1hbmQpOgorY2xhc3MgUm9sbG91dChBYnN0cmFjdFNlcXVlbmNl
ZENvbW1hbmQpOgogICAgIG5hbWUgPSAicm9sbG91dCIKICAgICBzaG93X2luX21haW5faGVscCA9
IFRydWUKICAgICBoZWxwX3RleHQgPSAiUmV2ZXJ0IHRoZSBnaXZlbiByZXZpc2lvbiBpbiB0aGUg
d29ya2luZyBjb3B5IGFuZCBvcHRpb25hbGx5IGNvbW1pdCB0aGUgcmV2ZXJ0IGFuZCByZS1vcGVu
IHRoZSBvcmlnaW5hbCBidWciCkBAIC0yNjgsNiArMjY5LDcgQEAgQ29tbWl0cyB0aGUgcmV2ZXJ0
IGFuZCB1cGRhdGVzIHRoZSBidWcgKGluY2x1ZGluZyByZS1vcGVuaW5nIHRoZSBidWcgaWYgbmVj
ZXNzYXIKICAgICBAc3RhdGljbWV0aG9kCiAgICAgZGVmIF9wYXJzZV9idWdfaWRfZnJvbV9yZXZp
c2lvbl9kaWZmKHRvb2wsIHJldmlzaW9uKToKICAgICAgICAgb3JpZ2luYWxfZGlmZiA9IHRvb2wu
c2NtKCkuZGlmZl9mb3JfcmV2aXNpb24ocmV2aXNpb24pCisgICAgICAgICMgRklYTUU6IFRoaXMg
aXMgd3JvbmcgYmVjYXVzZSBpdCBwaWNrcyB1cCBidWcgbnVtYmVycyBvdXRzaWRlIG9mIENoYW5n
ZUxvZ3MKICAgICAgICAgcmV0dXJuIHBhcnNlX2J1Z19pZChvcmlnaW5hbF9kaWZmKQogCiAgICAg
ZGVmIGV4ZWN1dGUoc2VsZiwgb3B0aW9ucywgYXJncywgdG9vbCk6CmRpZmYgLS1naXQgYS9XZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1hbmRzL3F1ZXJpZXMucHkgYi9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1hbmRzL3F1ZXJpZXMucHkKaW5kZXggYTVjNTQ3Mi4uMTgx
MDhhMCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tYW5kcy9x
dWVyaWVzLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbWFuZHMvcXVl
cmllcy5weQpAQCAtMzQsMTAgKzM0LDEwIEBAIGZyb20gb3B0cGFyc2UgaW1wb3J0IG1ha2Vfb3B0
aW9uCiBmcm9tIHdlYmtpdHB5LmJ1aWxkYm90IGltcG9ydCBCdWlsZEJvdAogZnJvbSB3ZWJraXRw
eS5jb21taXR0ZXJzIGltcG9ydCBDb21taXR0ZXJMaXN0CiBmcm9tIHdlYmtpdHB5LndlYmtpdF9s
b2dnaW5nIGltcG9ydCBsb2cKLWZyb20gd2Via2l0cHkubXVsdGljb21tYW5kdG9vbCBpbXBvcnQg
QWJzdHJhY3REZWNsYXJhdGl2ZUNvbW1tYW5kCitmcm9tIHdlYmtpdHB5Lm11bHRpY29tbWFuZHRv
b2wgaW1wb3J0IEFic3RyYWN0RGVjbGFyYXRpdmVDb21tYW5kCiAKIAotY2xhc3MgQnVnc1RvQ29t
bWl0KEFic3RyYWN0RGVjbGFyYXRpdmVDb21tbWFuZCk6CitjbGFzcyBCdWdzVG9Db21taXQoQWJz
dHJhY3REZWNsYXJhdGl2ZUNvbW1hbmQpOgogICAgIG5hbWUgPSAiYnVncy10by1jb21taXQiCiAg
ICAgaGVscF90ZXh0ID0gIkxpc3QgYnVncyBpbiB0aGUgY29tbWl0LXF1ZXVlIgogCkBAIC00Nyw3
ICs0Nyw3IEBAIGNsYXNzIEJ1Z3NUb0NvbW1pdChBYnN0cmFjdERlY2xhcmF0aXZlQ29tbW1hbmQp
OgogICAgICAgICAgICAgcHJpbnQgIiVzIiAlIGJ1Z19pZAogCiAKLWNsYXNzIFBhdGNoZXNUb0Nv
bW1pdChBYnN0cmFjdERlY2xhcmF0aXZlQ29tbW1hbmQpOgorY2xhc3MgUGF0Y2hlc1RvQ29tbWl0
KEFic3RyYWN0RGVjbGFyYXRpdmVDb21tYW5kKToKICAgICBuYW1lID0gInBhdGNoZXMtdG8tY29t
bWl0IgogICAgIGhlbHBfdGV4dCA9ICJMaXN0IHBhdGNoZXMgaW4gdGhlIGNvbW1pdC1xdWV1ZSIK
IApAQCAtNTgsMTQgKzU4LDE0IEBAIGNsYXNzIFBhdGNoZXNUb0NvbW1pdChBYnN0cmFjdERlY2xh
cmF0aXZlQ29tbW1hbmQpOgogICAgICAgICAgICAgcHJpbnQgIiVzIiAlIHBhdGNoWyJ1cmwiXQog
CiAKLWNsYXNzIFBhdGNoZXNUb0NvbW1pdFF1ZXVlKEFic3RyYWN0RGVjbGFyYXRpdmVDb21tbWFu
ZCk6CitjbGFzcyBQYXRjaGVzVG9Db21taXRRdWV1ZShBYnN0cmFjdERlY2xhcmF0aXZlQ29tbWFu
ZCk6CiAgICAgbmFtZSA9ICJwYXRjaGVzLXRvLWNvbW1pdC1xdWV1ZSIKICAgICBoZWxwX3RleHQg
PSAiUGF0Y2hlcyB3aGljaCBzaG91bGQgYmUgYWRkZWQgdG8gdGhlIGNvbW1pdCBxdWV1ZSIKICAg
ICBkZWYgX19pbml0X18oc2VsZik6CiAgICAgICAgIG9wdGlvbnMgPSBbCiAgICAgICAgICAgICBt
YWtlX29wdGlvbigiLS1idWdzIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVzdD0iYnVncyIsIGhl
bHA9Ik91dHB1dCBidWcgbGlua3MgaW5zdGVhZCBvZiBwYXRjaCBsaW5rcyIpLAogICAgICAgICBd
Ci0gICAgICAgIEFic3RyYWN0RGVjbGFyYXRpdmVDb21tbWFuZC5fX2luaXRfXyhzZWxmLCBvcHRp
b25zPW9wdGlvbnMpCisgICAgICAgIEFic3RyYWN0RGVjbGFyYXRpdmVDb21tYW5kLl9faW5pdF9f
KHNlbGYsIG9wdGlvbnM9b3B0aW9ucykKIAogICAgIEBzdGF0aWNtZXRob2QKICAgICBkZWYgX25l
ZWRzX2NvbW1pdF9xdWV1ZShwYXRjaCk6CkBAIC05Myw3ICs5Myw3IEBAIGNsYXNzIFBhdGNoZXNU
b0NvbW1pdFF1ZXVlKEFic3RyYWN0RGVjbGFyYXRpdmVDb21tbWFuZCk6CiAgICAgICAgICAgICAg
ICAgcHJpbnQgIiVzIiAlIHRvb2wuYnVncy5hdHRhY2htZW50X3VybF9mb3JfaWQocGF0Y2hbImlk
Il0sIGFjdGlvbj0iZWRpdCIpCiAKIAotY2xhc3MgUGF0Y2hlc1RvUmV2aWV3KEFic3RyYWN0RGVj
bGFyYXRpdmVDb21tbWFuZCk6CitjbGFzcyBQYXRjaGVzVG9SZXZpZXcoQWJzdHJhY3REZWNsYXJh
dGl2ZUNvbW1hbmQpOgogICAgIG5hbWUgPSAicGF0Y2hlcy10by1yZXZpZXciCiAgICAgaGVscF90
ZXh0ID0gIkxpc3QgcGF0Y2hlcyB0aGF0IGFyZSBwZW5kaW5nIHJldmlldyIKIApAQCAtMTA0LDcg
KzEwNCw3IEBAIGNsYXNzIFBhdGNoZXNUb1JldmlldyhBYnN0cmFjdERlY2xhcmF0aXZlQ29tbW1h
bmQpOgogICAgICAgICAgICAgcHJpbnQgcGF0Y2hfaWQKIAogCi1jbGFzcyBSZXZpZXdlZFBhdGNo
ZXMoQWJzdHJhY3REZWNsYXJhdGl2ZUNvbW1tYW5kKToKK2NsYXNzIFJldmlld2VkUGF0Y2hlcyhB
YnN0cmFjdERlY2xhcmF0aXZlQ29tbWFuZCk6CiAgICAgbmFtZSA9ICJyZXZpZXdlZC1wYXRjaGVz
IgogICAgIGhlbHBfdGV4dCA9ICJMaXN0IHIrJ2QgcGF0Y2hlcyBvbiBhIGJ1ZyIKICAgICBhcmd1
bWVudF9uYW1lcyA9ICJCVUdJRCIKQEAgLTExNiw3ICsxMTYsNyBAQCBjbGFzcyBSZXZpZXdlZFBh
dGNoZXMoQWJzdHJhY3REZWNsYXJhdGl2ZUNvbW1tYW5kKToKICAgICAgICAgICAgIHByaW50ICIl
cyIgJSBwYXRjaFsidXJsIl0KIAogCi1jbGFzcyBUcmVlU3RhdHVzKEFic3RyYWN0RGVjbGFyYXRp
dmVDb21tbWFuZCk6CitjbGFzcyBUcmVlU3RhdHVzKEFic3RyYWN0RGVjbGFyYXRpdmVDb21tYW5k
KToKICAgICBuYW1lID0gInRyZWUtc3RhdHVzIgogICAgIGhlbHBfdGV4dCA9ICJQcmludCB0aGUg
c3RhdHVzIG9mIHRoZSAlcyBidWlsZGJvdHMiICUgQnVpbGRCb3QuZGVmYXVsdF9ob3N0CiAgICAg
bG9uZ19oZWxwID0gIiIiRmV0Y2hlcyBidWlsZCBzdGF0dXMgZnJvbSBodHRwOi8vYnVpbGQud2Vi
a2l0Lm9yZy9vbmVfYm94X3Blcl9idWlsZGVyCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L2NvbW1hbmRzL3VwbG9hZC5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvY29tbWFuZHMvdXBsb2FkLnB5CmluZGV4IDUyNGIwMGUuLjllNzYzNmEgMTAwNjQ0Ci0t
LSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbWFuZHMvdXBsb2FkLnB5CisrKyBi
L1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbWFuZHMvdXBsb2FkLnB5CkBAIC0zOCwx
NSArMzgsMTYgQEAgZnJvbSBvcHRwYXJzZSBpbXBvcnQgbWFrZV9vcHRpb24KIGltcG9ydCB3ZWJr
aXRweS5zdGVwcyBhcyBzdGVwcwogCiBmcm9tIHdlYmtpdHB5LmJ1Z3ppbGxhIGltcG9ydCBwYXJz
ZV9idWdfaWQKLWZyb20gd2Via2l0cHkuY29tbWFuZHMuYWJzdHJhY3RzZXF1ZW5jZWRjb21tYW5k
IGltcG9ydCBBYnN0cmFjdFNlcXVlbmNlZENvbW1tYW5kCitmcm9tIHdlYmtpdHB5LmNvbW1hbmRz
LmFic3RyYWN0ZGlmZmNvbW1hbmQgaW1wb3J0IEFic3RyYWN0RGlmZkNvbW1hbmQKK2Zyb20gd2Vi
a2l0cHkuY29tbWFuZHMuYWJzdHJhY3RzZXF1ZW5jZWRjb21tYW5kIGltcG9ydCBBYnN0cmFjdFNl
cXVlbmNlZENvbW1hbmQKIGZyb20gd2Via2l0cHkuY29tbWVudHMgaW1wb3J0IGJ1Z19jb21tZW50
X2Zyb21fc3ZuX3JldmlzaW9uCiBmcm9tIHdlYmtpdHB5LmNvbW1pdHRlcnMgaW1wb3J0IENvbW1p
dHRlckxpc3QKIGZyb20gd2Via2l0cHkuZ3JhbW1hciBpbXBvcnQgcGx1cmFsaXplCiBmcm9tIHdl
YmtpdHB5LndlYmtpdF9sb2dnaW5nIGltcG9ydCBlcnJvciwgbG9nCiBmcm9tIHdlYmtpdHB5Lm1v
Y2sgaW1wb3J0IE1vY2sKLWZyb20gd2Via2l0cHkubXVsdGljb21tYW5kdG9vbCBpbXBvcnQgQWJz
dHJhY3REZWNsYXJhdGl2ZUNvbW1tYW5kCitmcm9tIHdlYmtpdHB5Lm11bHRpY29tbWFuZHRvb2wg
aW1wb3J0IEFic3RyYWN0RGVjbGFyYXRpdmVDb21tYW5kCiAKLWNsYXNzIENvbW1pdE1lc3NhZ2VG
b3JDdXJyZW50RGlmZihBYnN0cmFjdERlY2xhcmF0aXZlQ29tbW1hbmQpOgorY2xhc3MgQ29tbWl0
TWVzc2FnZUZvckN1cnJlbnREaWZmKEFic3RyYWN0RGVjbGFyYXRpdmVDb21tYW5kKToKICAgICBu
YW1lID0gImNvbW1pdC1tZXNzYWdlIgogICAgIGhlbHBfdGV4dCA9ICJQcmludCBhIGNvbW1pdCBt
ZXNzYWdlIHN1aXRhYmxlIGZvciB0aGUgdW5jb21taXR0ZWQgY2hhbmdlcyIKIApAQCAtNTUsNyAr
NTYsNyBAQCBjbGFzcyBDb21taXRNZXNzYWdlRm9yQ3VycmVudERpZmYoQWJzdHJhY3REZWNsYXJh
dGl2ZUNvbW1tYW5kKToKICAgICAgICAgcHJpbnQgIiVzIiAlIHRvb2wuc2NtKCkuY29tbWl0X21l
c3NhZ2VfZm9yX3RoaXNfY29tbWl0KCkubWVzc2FnZSgpCiAKIAotY2xhc3MgQXNzaWduVG9Db21t
aXR0ZXIoQWJzdHJhY3REZWNsYXJhdGl2ZUNvbW1tYW5kKToKK2NsYXNzIEFzc2lnblRvQ29tbWl0
dGVyKEFic3RyYWN0RGVjbGFyYXRpdmVDb21tYW5kKToKICAgICBuYW1lID0gImFzc2lnbi10by1j
b21taXR0ZXIiCiAgICAgaGVscF90ZXh0ID0gIkFzc2lnbiBidWcgdG8gd2hvZXZlciBhdHRhY2hl
ZCB0aGUgbW9zdCByZWNlbnQgcisnZCBwYXRjaCIKIApAQCAtODcsNyArODgsNyBAQCBjbGFzcyBB
c3NpZ25Ub0NvbW1pdHRlcihBYnN0cmFjdERlY2xhcmF0aXZlQ29tbW1hbmQpOgogICAgICAgICAg
ICAgc2VsZi5fYXNzaWduX2J1Z190b19sYXN0X3BhdGNoX2F0dGFjaGVyKGJ1Z19pZCkKIAogCi1j
bGFzcyBPYnNvbGV0ZUF0dGFjaG1lbnRzKEFic3RyYWN0U2VxdWVuY2VkQ29tbW1hbmQpOgorY2xh
c3MgT2Jzb2xldGVBdHRhY2htZW50cyhBYnN0cmFjdFNlcXVlbmNlZENvbW1hbmQpOgogICAgIG5h
bWUgPSAib2Jzb2xldGUtYXR0YWNobWVudHMiCiAgICAgaGVscF90ZXh0ID0gIk1hcmsgYWxsIGF0
dGFjaG1lbnRzIG9uIGEgYnVnIGFzIG9ic29sZXRlIgogICAgIGFyZ3VtZW50X25hbWVzID0gIkJV
R0lEIgpAQCAtOTksMTcgKzEwMCw3IEBAIGNsYXNzIE9ic29sZXRlQXR0YWNobWVudHMoQWJzdHJh
Y3RTZXF1ZW5jZWRDb21tbWFuZCk6CiAgICAgICAgIHJldHVybiB7ICJidWdfaWQiIDogYXJnc1sw
XSB9CiAKIAotY2xhc3MgQWJzdHJhY3RQYXRjaFVwbG9hZGluZ0NvbW1hbmQoQWJzdHJhY3RTZXF1
ZW5jZWRDb21tbWFuZCk6Ci0gICAgZGVmIF9idWdfaWQoc2VsZiwgYXJncywgdG9vbCwgc3RhdGUp
OgotICAgICAgICAjIFBlcmZlciBhIGJ1ZyBpZCBwYXNzZWQgYXMgYW4gYXJndW1lbnQgb3ZlciBh
IGJ1ZyB1cmwgaW4gdGhlIGRpZmYgKGkuZS4gQ2hhbmdlTG9ncykuCi0gICAgICAgIGJ1Z19pZCA9
IGFyZ3MgYW5kIGFyZ3NbMF0KLSAgICAgICAgaWYgbm90IGJ1Z19pZDoKLSAgICAgICAgICAgIHN0
YXRlWyJkaWZmIl0gPSB0b29sLnNjbSgpLmNyZWF0ZV9wYXRjaCgpCi0gICAgICAgICAgICBidWdf
aWQgPSBwYXJzZV9idWdfaWQoc3RhdGVbImRpZmYiXSkKLSAgICAgICAgcmV0dXJuIGJ1Z19pZAot
Ci0KLWNsYXNzIFBvc3QoQWJzdHJhY3RQYXRjaFVwbG9hZGluZ0NvbW1hbmQpOgorY2xhc3MgUG9z
dChBYnN0cmFjdERpZmZDb21tYW5kKToKICAgICBuYW1lID0gInBvc3QiCiAgICAgaGVscF90ZXh0
ID0gIkF0dGFjaCB0aGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeSBkaWZmIHRvIGEgYnVnIGFz
IGEgcGF0Y2ggZmlsZSIKICAgICBhcmd1bWVudF9uYW1lcyA9ICJbQlVHSURdIgpAQCAtMTIyLDE0
ICsxMTMsMTMgQEAgY2xhc3MgUG9zdChBYnN0cmFjdFBhdGNoVXBsb2FkaW5nQ29tbWFuZCk6CiAg
ICAgXQogCiAgICAgZGVmIF9wcmVwYXJlX3N0YXRlKHNlbGYsIG9wdGlvbnMsIGFyZ3MsIHRvb2wp
OgotICAgICAgICBzdGF0ZSA9IHt9Ci0gICAgICAgIHN0YXRlWyJidWdfaWQiXSA9IHNlbGYuX2J1
Z19pZChhcmdzLCB0b29sLCBzdGF0ZSkKKyAgICAgICAgc3RhdGUgPSB7ICJidWdfaWQiIDogc2Vs
Zi5fYnVnX2lkKGFyZ3MsIHRvb2wpIH0KICAgICAgICAgaWYgbm90IHN0YXRlWyJidWdfaWQiXToK
ICAgICAgICAgICAgIGVycm9yKCJObyBidWcgaWQgcGFzc2VkIGFuZCBubyBidWcgdXJsIGZvdW5k
IGluIGRpZmYsIGNhbid0IHBvc3QuIikKICAgICAgICAgcmV0dXJuIHN0YXRlCiAKIAotY2xhc3Mg
UHJlcGFyZShBYnN0cmFjdFNlcXVlbmNlZENvbW1tYW5kKToKK2NsYXNzIFByZXBhcmUoQWJzdHJh
Y3RTZXF1ZW5jZWRDb21tYW5kKToKICAgICBuYW1lID0gInByZXBhcmUiCiAgICAgaGVscF90ZXh0
ID0gIkNyZWF0ZXMgYSBidWcgKG9yIHByb21wdHMgZm9yIGFuIGV4aXN0aW5nIGJ1ZykgYW5kIHBy
ZXBhcmVzIHRoZSBDaGFuZ2VMb2dzIgogICAgIGFyZ3VtZW50X25hbWVzID0gIltCVUdJRF0iCkBA
IC0xNDUsNyArMTM1LDcgQEAgY2xhc3MgUHJlcGFyZShBYnN0cmFjdFNlcXVlbmNlZENvbW1tYW5k
KToKICAgICAgICAgcmV0dXJuIHsgImJ1Z19pZCIgOiBidWdfaWQgfQogCiAKLWNsYXNzIFVwbG9h
ZChBYnN0cmFjdFBhdGNoVXBsb2FkaW5nQ29tbWFuZCk6CitjbGFzcyBVcGxvYWQoQWJzdHJhY3RE
aWZmQ29tbWFuZCk6CiAgICAgbmFtZSA9ICJ1cGxvYWQiCiAgICAgaGVscF90ZXh0ID0gIkF1dG9t
YXRlcyB0aGUgcHJvY2VzcyBvZiB1cGxvYWRpbmcgYSBwYXRjaCBmb3IgcmV2aWV3IgogICAgIGFy
Z3VtZW50X25hbWVzID0gIltCVUdJRF0iCkBAIC0xNjksMTIgKzE1OSwxMSBAQCBjbGFzcyBVcGxv
YWQoQWJzdHJhY3RQYXRjaFVwbG9hZGluZ0NvbW1hbmQpOgogICAgIGNvbW1hbmQgaW4gdGhlIFBB
R0VSIGVudmlyb25tZW50IHZhcmlhYmxlLiIiIgogCiAgICAgZGVmIF9wcmVwYXJlX3N0YXRlKHNl
bGYsIG9wdGlvbnMsIGFyZ3MsIHRvb2wpOgotICAgICAgICBzdGF0ZSA9IHt9Ci0gICAgICAgIHN0
YXRlWyJidWdfaWQiXSA9IHNlbGYuX2J1Z19pZChhcmdzLCB0b29sLCBzdGF0ZSkKKyAgICAgICAg
c3RhdGUgPSB7ICJidWdfaWQiIDogc2VsZi5fYnVnX2lkKGFyZ3MsIHRvb2wpIH0KICAgICAgICAg
cmV0dXJuIHN0YXRlCiAKIAotY2xhc3MgRWRpdENoYW5nZUxvZ3MoQWJzdHJhY3RTZXF1ZW5jZWRD
b21tbWFuZCk6CitjbGFzcyBFZGl0Q2hhbmdlTG9ncyhBYnN0cmFjdFNlcXVlbmNlZENvbW1hbmQp
OgogICAgIG5hbWUgPSAiZWRpdC1jaGFuZ2Vsb2dzIgogICAgIGhlbHBfdGV4dCA9ICJPcGVucyBt
b2RpZmllZCBDaGFuZ2VMb2dzIGluICRFRElUT1IiCiAgICAgc2hvd19pbl9tYWluX2hlbHAgPSBU
cnVlCkBAIC0xODMsNyArMTcyLDcgQEAgY2xhc3MgRWRpdENoYW5nZUxvZ3MoQWJzdHJhY3RTZXF1
ZW5jZWRDb21tbWFuZCk6CiAgICAgXQogCiAKLWNsYXNzIFBvc3RDb21taXRzKEFic3RyYWN0RGVj
bGFyYXRpdmVDb21tbWFuZCk6CitjbGFzcyBQb3N0Q29tbWl0cyhBYnN0cmFjdERlY2xhcmF0aXZl
Q29tbWFuZCk6CiAgICAgbmFtZSA9ICJwb3N0LWNvbW1pdHMiCiAgICAgaGVscF90ZXh0ID0gIkF0
dGFjaCBhIHJhbmdlIG9mIGxvY2FsIGNvbW1pdHMgdG8gYnVncyBhcyBwYXRjaCBmaWxlcyIKICAg
ICBhcmd1bWVudF9uYW1lcyA9ICJDT01NSVRJU0giCkBAIC0xOTcsNyArMTg2LDcgQEAgY2xhc3Mg
UG9zdENvbW1pdHMoQWJzdHJhY3REZWNsYXJhdGl2ZUNvbW1tYW5kKToKICAgICAgICAgICAgIHN0
ZXBzLk9wdGlvbnMucmV2aWV3LAogICAgICAgICAgICAgc3RlcHMuT3B0aW9ucy5yZXF1ZXN0X2Nv
bW1pdCwKICAgICAgICAgXQotICAgICAgICBBYnN0cmFjdERlY2xhcmF0aXZlQ29tbW1hbmQuX19p
bml0X18oc2VsZiwgb3B0aW9ucz1vcHRpb25zLCByZXF1aXJlc19sb2NhbF9jb21taXRzPVRydWUp
CisgICAgICAgIEFic3RyYWN0RGVjbGFyYXRpdmVDb21tYW5kLl9faW5pdF9fKHNlbGYsIG9wdGlv
bnM9b3B0aW9ucywgcmVxdWlyZXNfbG9jYWxfY29tbWl0cz1UcnVlKQogCiAgICAgZGVmIF9jb21t
ZW50X3RleHRfZm9yX2NvbW1pdChzZWxmLCBvcHRpb25zLCBjb21taXRfbWVzc2FnZSwgdG9vbCwg
Y29tbWl0X2lkKToKICAgICAgICAgY29tbWVudF90ZXh0ID0gTm9uZQpAQCAtMjM3LDcgKzIyNiw3
IEBAIGNsYXNzIFBvc3RDb21taXRzKEFic3RyYWN0RGVjbGFyYXRpdmVDb21tbWFuZCk6CiAgICAg
ICAgICAgICB0b29sLmJ1Z3MuYWRkX3BhdGNoX3RvX2J1ZyhidWdfaWQsIGRpZmZfZmlsZSwgZGVz
Y3JpcHRpb24sIGNvbW1lbnRfdGV4dCwgbWFya19mb3JfcmV2aWV3PW9wdGlvbnMucmV2aWV3LCBt
YXJrX2Zvcl9jb21taXRfcXVldWU9b3B0aW9ucy5yZXF1ZXN0X2NvbW1pdCkKIAogCi1jbGFzcyBN
YXJrQnVnRml4ZWQoQWJzdHJhY3REZWNsYXJhdGl2ZUNvbW1tYW5kKToKK2NsYXNzIE1hcmtCdWdG
aXhlZChBYnN0cmFjdERlY2xhcmF0aXZlQ29tbWFuZCk6CiAgICAgbmFtZSA9ICJtYXJrLWJ1Zy1m
aXhlZCIKICAgICBoZWxwX3RleHQgPSAiTWFyayB0aGUgc3BlY2lmaWVkIGJ1ZyBhcyBmaXhlZCIK
ICAgICBhcmd1bWVudF9uYW1lcyA9ICJbU1ZOX1JFVklTSU9OXSIKQEAgLTI0OCw3ICsyMzcsNyBA
QCBjbGFzcyBNYXJrQnVnRml4ZWQoQWJzdHJhY3REZWNsYXJhdGl2ZUNvbW1tYW5kKToKICAgICAg
ICAgICAgIG1ha2Vfb3B0aW9uKCItLW9wZW4iLCBhY3Rpb249InN0b3JlX3RydWUiLCBkZWZhdWx0
PUZhbHNlLCBkZXN0PSJvcGVuX2J1ZyIsIGhlbHA9Ik9wZW4gYnVnIGluIGRlZmF1bHQgd2ViIGJy
b3dzZXIgKE1hYyBvbmx5KS4iKSwKICAgICAgICAgICAgIG1ha2Vfb3B0aW9uKCItLXVwZGF0ZS1v
bmx5IiwgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVmYXVsdD1GYWxzZSwgZGVzdD0idXBkYXRlX29u
bHkiLCBoZWxwPSJBZGQgY29tbWVudCB0byB0aGUgYnVnLCBidXQgZG8gbm90IGNsb3NlIGl0LiIp
LAogICAgICAgICBdCi0gICAgICAgIEFic3RyYWN0RGVjbGFyYXRpdmVDb21tbWFuZC5fX2luaXRf
XyhzZWxmLCBvcHRpb25zPW9wdGlvbnMpCisgICAgICAgIEFic3RyYWN0RGVjbGFyYXRpdmVDb21t
YW5kLl9faW5pdF9fKHNlbGYsIG9wdGlvbnM9b3B0aW9ucykKIAogICAgIGRlZiBfZmV0Y2hfY29t
bWl0X2xvZyhzZWxmLCB0b29sLCBzdm5fcmV2aXNpb24pOgogICAgICAgICBpZiBub3Qgc3ZuX3Jl
dmlzaW9uOgpAQCAtMzE1LDcgKzMwNCw3IEBAIGNsYXNzIE1hcmtCdWdGaXhlZChBYnN0cmFjdERl
Y2xhcmF0aXZlQ29tbW1hbmQpOgogCiAKICMgRklYTUU6IFJlcXVpcmVzIHVuaXQgdGVzdC4gIEJs
b2NraW5nIGlzc3VlOiB0b28gY29tcGxleCBmb3Igbm93LgotY2xhc3MgQ3JlYXRlQnVnKEFic3Ry
YWN0RGVjbGFyYXRpdmVDb21tbWFuZCk6CitjbGFzcyBDcmVhdGVCdWcoQWJzdHJhY3REZWNsYXJh
dGl2ZUNvbW1hbmQpOgogICAgIG5hbWUgPSAiY3JlYXRlLWJ1ZyIKICAgICBoZWxwX3RleHQgPSAi
Q3JlYXRlIGEgYnVnIGZyb20gbG9jYWwgY2hhbmdlcyBvciBsb2NhbCBjb21taXRzIgogICAgIGFy
Z3VtZW50X25hbWVzID0gIltDT01NSVRJU0hdIgpAQCAtMzI4LDcgKzMxNyw3IEBAIGNsYXNzIENy
ZWF0ZUJ1ZyhBYnN0cmFjdERlY2xhcmF0aXZlQ29tbW1hbmQpOgogICAgICAgICAgICAgbWFrZV9v
cHRpb24oIi0tbm8tcmV2aWV3IiwgYWN0aW9uPSJzdG9yZV9mYWxzZSIsIGRlc3Q9InJldmlldyIs
IGRlZmF1bHQ9VHJ1ZSwgaGVscD0iRG8gbm90IG1hcmsgdGhlIHBhdGNoIGZvciByZXZpZXcuIiks
CiAgICAgICAgICAgICBtYWtlX29wdGlvbigiLS1yZXF1ZXN0LWNvbW1pdCIsIGFjdGlvbj0ic3Rv
cmVfdHJ1ZSIsIGRlc3Q9InJlcXVlc3RfY29tbWl0IiwgZGVmYXVsdD1GYWxzZSwgaGVscD0iTWFy
ayB0aGUgcGF0Y2ggYXMgbmVlZGluZyBhdXRvLWNvbW1pdCBhZnRlciByZXZpZXcuIiksCiAgICAg
ICAgIF0KLSAgICAgICAgQWJzdHJhY3REZWNsYXJhdGl2ZUNvbW1tYW5kLl9faW5pdF9fKHNlbGYs
IG9wdGlvbnM9b3B0aW9ucykKKyAgICAgICAgQWJzdHJhY3REZWNsYXJhdGl2ZUNvbW1hbmQuX19p
bml0X18oc2VsZiwgb3B0aW9ucz1vcHRpb25zKQogCiAgICAgZGVmIGNyZWF0ZV9idWdfZnJvbV9j
b21taXQoc2VsZiwgb3B0aW9ucywgYXJncywgdG9vbCk6CiAgICAgICAgIGNvbW1pdF9pZHMgPSB0
b29sLnNjbSgpLmNvbW1pdF9pZHNfZnJvbV9jb21taXRpc2hfYXJndW1lbnRzKGFyZ3MpCmRpZmYg
LS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L21vY2tfYnVnemlsbGF0b29sLnB5
IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9tb2NrX2J1Z3ppbGxhdG9vbC5weQppbmRl
eCBmODM5MmFhLi4wN2Y5NzgzIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L21vY2tfYnVnemlsbGF0b29sLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbW9ja19idWd6aWxsYXRvb2wucHkKQEAgLTE1Niw2ICsxNTYsOSBAQCBjbGFzcyBNb2NrU0NN
KE1vY2spOgogICAgIGRlZiBjb21taXRfaWRzX2Zyb21fY29tbWl0aXNoX2FyZ3VtZW50cyhzZWxm
LCBhcmdzKToKICAgICAgICAgcmV0dXJuIFsiQ29tbWl0aXNoMSIsICJDb21taXRpc2gyIl0KIAor
ICAgIGRlZiBjb21taXRfbWVzc2FnZV9mb3JfdGhpc19jb21taXQoc2VsZik6CisgICAgICAgIHJl
dHVybiBDb21taXRNZXNzYWdlKCJDb21taXRNZXNzYWdlMVxuaHR0cHM6Ly9idWdzLmV4YW1wbGUu
b3JnL3Nob3dfYnVnLmNnaT9pZD05M1xuIikKKwogICAgIGRlZiBjb21taXRfbWVzc2FnZV9mb3Jf
bG9jYWxfY29tbWl0KHNlbGYsIGNvbW1pdF9pZCk6CiAgICAgICAgIGlmIGNvbW1pdF9pZCA9PSAi
Q29tbWl0aXNoMSI6CiAgICAgICAgICAgICByZXR1cm4gQ29tbWl0TWVzc2FnZSgiQ29tbWl0TWVz
c2FnZTFcbmh0dHBzOi8vYnVncy5leGFtcGxlLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDJcbiIpCmRp
ZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L211bHRpY29tbWFuZHRvb2wu
cHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L211bHRpY29tbWFuZHRvb2wucHkKaW5k
ZXggYTI1YjE1MC4uMTBjZjQyNiAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9tdWx0aWNvbW1hbmR0b29sLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbXVsdGljb21tYW5kdG9vbC5weQpAQCAtMTMxLDcgKzEzMSw3IEBAIGNsYXNzIENvbW1hbmQo
b2JqZWN0KToKIAogCiAjIEZJWE1FOiBUaGlzIHNob3VsZCBqdXN0IGJlIHJvbGxlZCBpbnRvIENv
bW1hbmQuICBoZWxwX3RleHQgYW5kIGFyZ3VtZW50X25hbWVzIGRvIG5vdCBuZWVkIHRvIGJlIGlu
c3RhbmNlIHZhcmlhYmxlcy4KLWNsYXNzIEFic3RyYWN0RGVjbGFyYXRpdmVDb21tbWFuZChDb21t
YW5kKToKK2NsYXNzIEFic3RyYWN0RGVjbGFyYXRpdmVDb21tYW5kKENvbW1hbmQpOgogICAgIGhl
bHBfdGV4dCA9IE5vbmUKICAgICBhcmd1bWVudF9uYW1lcyA9IE5vbmUKICAgICBsb25nX2hlbHAg
PSBOb25lCkBAIC0xNTksNyArMTU5LDcgQEAgY2xhc3MgSGVscFByaW50aW5nT3B0aW9uUGFyc2Vy
KE9wdGlvblBhcnNlcik6CiAgICAgICAgIHJldHVybiAiIgogCiAKLWNsYXNzIEhlbHBDb21tYW5k
KEFic3RyYWN0RGVjbGFyYXRpdmVDb21tbWFuZCk6CitjbGFzcyBIZWxwQ29tbWFuZChBYnN0cmFj
dERlY2xhcmF0aXZlQ29tbWFuZCk6CiAgICAgbmFtZSA9ICJoZWxwIgogICAgIGhlbHBfdGV4dCA9
ICJEaXNwbGF5IGluZm9ybWF0aW9uIGFib3V0IHRoaXMgcHJvZ3JhbSBvciBpdHMgc3ViY29tbWFu
ZHMiCiAgICAgYXJndW1lbnRfbmFtZXMgPSAiW0NPTU1BTkRdIgpAQCAtMTY4LDcgKzE2OCw3IEBA
IGNsYXNzIEhlbHBDb21tYW5kKEFic3RyYWN0RGVjbGFyYXRpdmVDb21tbWFuZCk6CiAgICAgICAg
IG9wdGlvbnMgPSBbCiAgICAgICAgICAgICBtYWtlX29wdGlvbigiLWEiLCAiLS1hbGwtY29tbWFu
ZHMiLCBhY3Rpb249InN0b3JlX3RydWUiLCBkZXN0PSJzaG93X2FsbF9jb21tYW5kcyIsIGhlbHA9
IlByaW50IGFsbCBhdmFpbGFibGUgY29tbWFuZHMiKSwKICAgICAgICAgXQotICAgICAgICBBYnN0
cmFjdERlY2xhcmF0aXZlQ29tbW1hbmQuX19pbml0X18oc2VsZiwgb3B0aW9ucykKKyAgICAgICAg
QWJzdHJhY3REZWNsYXJhdGl2ZUNvbW1hbmQuX19pbml0X18oc2VsZiwgb3B0aW9ucykKICAgICAg
ICAgc2VsZi5zaG93X2FsbF9jb21tYW5kcyA9IEZhbHNlICMgQSBoYWNrIHVzZWQgdG8gcGFzcyAt
LWFsbC1jb21tYW5kcyB0byBfaGVscF9lcGlsb2cgZXZlbiB0aG91Z2ggaXQncyBjYWxsZWQgYnkg
dGhlIE9wdGlvblBhcnNlci4KIAogICAgIGRlZiBfaGVscF9lcGlsb2coc2VsZik6Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>46247</attachid>
            <date>2010-01-10 15:58:45 -0800</date>
            <delta_ts>2010-01-10 22:23:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-33197-20100110155844.patch</filename>
            <type>text/plain</type>
            <size>23218</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCAzOTA3ZjAxLi44OWUzMDA4IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjcgQEAKIDIwMTAtMDEt
MTAgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAorICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBidWd6aWxsYS10b29sIHN1Ym1pdC1wYXRjaCBt
aXN0YWtlbmx5IHBpY2tzIHVwIGJ1ZyBVUkxzIGluIG5vbi1DaGFuZ2VMb2cgZmlsZXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMzMTk3CisKKyAgICAg
ICAgV2Ugc2hvdWxkIGp1c3Qgc2VhcmNoIGZvciBidWcgbnVtYmVycyBpbiB0aGUgQ2hhbmdlTG9n
cyBpbnN0ZWFkIG9mIGluCisgICAgICAgIHRoZSB3aG9sZSBkaWZmLgorCisgICAgICAgIEFsc28s
IGZpeGVkIGEgd2lkZS1zcHJlYWQgdHlwby4KKworICAgICAgICAqIFNjcmlwdHMvdGVzdC13ZWJr
aXRweToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1hbmRzL2Fic3RyYWN0ZGlmZmNv
bW1hbmQucHk6IEFkZGVkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbWFuZHMvYWJz
dHJhY3RkaWZmY29tbWFuZF91bml0dGVzdC5weTogQWRkZWQuCisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS9jb21tYW5kcy9hYnN0cmFjdHNlcXVlbmNlZGNvbW1hbmQucHk6CisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS9jb21tYW5kcy9kb3dubG9hZC5weToKKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdHB5L2NvbW1hbmRzL3F1ZXJpZXMucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS9jb21tYW5kcy91cGxvYWQucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9tb2NrX2J1
Z3ppbGxhdG9vbC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L211bHRpY29tbWFuZHRv
b2wucHk6CisKKzIwMTAtMDEtMTAgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKwog
ICAgICAgICBVbnJldmlld2VkIGNvc21ldGljIGNoYW5nZS4gIFJlbW92ZSB0aGUgc3RhdHVzIGJ1
YmJsZSBmb3IgbWFjLWV3cwogICAgICAgICBiZWNhdXNlIHdlIGRvbid0IGhhdmUgaGFyZHdhcmUg
Zm9yIGl0IGF0IHRoZSBtb21lbnQuCiAKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMv
dGVzdC13ZWJraXRweSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvdGVzdC13ZWJraXRweQppbmRleCBm
MzIwZWViLi42ZTVlMGVmIDEwMDc1NQotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3Rlc3Qtd2Vi
a2l0cHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy90ZXN0LXdlYmtpdHB5CkBAIC0zMyw2ICsz
Myw3IEBAIGltcG9ydCB1bml0dGVzdAogZnJvbSB3ZWJraXRweS5idWd6aWxsYV91bml0dGVzdCBp
bXBvcnQgKgogZnJvbSB3ZWJraXRweS5idWlsZGJvdF91bml0dGVzdCBpbXBvcnQgKgogZnJvbSB3
ZWJraXRweS5jaGFuZ2Vsb2dzX3VuaXR0ZXN0IGltcG9ydCAqCitmcm9tIHdlYmtpdHB5LmNvbW1h
bmRzLmFic3RyYWN0ZGlmZmNvbW1hbmRfdW5pdHRlc3QgaW1wb3J0ICoKIGZyb20gd2Via2l0cHku
Y29tbWFuZHMuZG93bmxvYWRfdW5pdHRlc3QgaW1wb3J0ICoKIGZyb20gd2Via2l0cHkuY29tbWFu
ZHMuZWFybHlfd2FybmluZ19zeXN0ZW1fdW5pdHRlc3QgaW1wb3J0ICoKIGZyb20gd2Via2l0cHku
Y29tbWFuZHMudXBsb2FkX3VuaXR0ZXN0IGltcG9ydCAqCmRpZmYgLS1naXQgYS9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1hbmRzL2Fic3RyYWN0ZGlmZmNvbW1hbmQucHkgYi9XZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1hbmRzL2Fic3RyYWN0ZGlmZmNvbW1hbmQucHkK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTU2MzIzMwotLS0gL2Rldi9udWxs
CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbWFuZHMvYWJzdHJhY3RkaWZm
Y29tbWFuZC5weQpAQCAtMCwwICsxLDM5IEBACisjIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQorIyBtZXQ6CisjIAorIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorIyB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorIyAK
KyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQK
KyMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitmcm9tIHdl
YmtpdHB5LmJ1Z3ppbGxhIGltcG9ydCBwYXJzZV9idWdfaWQKK2Zyb20gd2Via2l0cHkuY29tbWFu
ZHMuYWJzdHJhY3RzZXF1ZW5jZWRjb21tYW5kIGltcG9ydCBBYnN0cmFjdFNlcXVlbmNlZENvbW1h
bmQKKworCitjbGFzcyBBYnN0cmFjdERpZmZDb21tYW5kKEFic3RyYWN0U2VxdWVuY2VkQ29tbWFu
ZCk6CisgICAgZGVmIF9idWdfaWQoc2VsZiwgYXJncywgdG9vbCk6CisgICAgICAgICMgUGVyZmVy
IGEgYnVnIGlkIHBhc3NlZCBhcyBhbiBhcmd1bWVudCBvdmVyIGEgYnVnIFVSTCBpbiB0aGUgQ2hh
bmdlTG9ncy4KKyAgICAgICAgYnVnX2lkID0gYXJncyBhbmQgYXJnc1swXQorICAgICAgICBpZiBu
b3QgYnVnX2lkOgorICAgICAgICAgICAgYnVnX2lkID0gcGFyc2VfYnVnX2lkKHRvb2wuc2NtKCku
Y29tbWl0X21lc3NhZ2VfZm9yX3RoaXNfY29tbWl0KCkubWVzc2FnZSgpKQorICAgICAgICByZXR1
cm4gYnVnX2lkCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1h
bmRzL2Fic3RyYWN0ZGlmZmNvbW1hbmRfdW5pdHRlc3QucHkgYi9XZWJLaXRUb29scy9TY3JpcHRz
L3dlYmtpdHB5L2NvbW1hbmRzL2Fic3RyYWN0ZGlmZmNvbW1hbmRfdW5pdHRlc3QucHkKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODc3N2I4NwotLS0gL2Rldi9udWxsCisrKyBi
L1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbWFuZHMvYWJzdHJhY3RkaWZmY29tbWFu
ZF91bml0dGVzdC5weQpAQCAtMCwwICsxLDM2IEBACisjIENvcHlyaWdodCAoQykgMjAxMCBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQorIyBtZXQ6CisjCisjICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAgICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9m
IEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisjIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisjIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisjCisj
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisj
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkK
KyMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IHVu
aXR0ZXN0CisKK2Zyb20gd2Via2l0cHkuY29tbWFuZHMuYWJzdHJhY3RkaWZmY29tbWFuZCBpbXBv
cnQgQWJzdHJhY3REaWZmQ29tbWFuZAorZnJvbSB3ZWJraXRweS5tb2NrX2J1Z3ppbGxhdG9vbCBp
bXBvcnQgTW9ja0J1Z3ppbGxhVG9vbAorCitjbGFzcyBBYnN0cmFjdERpZmZDb21tYW5kVGVzdCh1
bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgZGVmIHRlc3RfYnVnX2lkKHNlbGYpOgorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFscyhBYnN0cmFjdERpZmZDb21tYW5kKCkuX2J1Z19pZChOb25lLCBNb2Nr
QnVnemlsbGFUb29sKCkpLCA5MykKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvY29tbWFuZHMvYWJzdHJhY3RzZXF1ZW5jZWRjb21tYW5kLnB5IGIvV2ViS2l0VG9vbHMv
U2NyaXB0cy93ZWJraXRweS9jb21tYW5kcy9hYnN0cmFjdHNlcXVlbmNlZGNvbW1hbmQucHkKaW5k
ZXggNTlmMDI5Yi4uNTNhZjViMSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9jb21tYW5kcy9hYnN0cmFjdHNlcXVlbmNlZGNvbW1hbmQucHkKKysrIGIvV2ViS2l0VG9v
bHMvU2NyaXB0cy93ZWJraXRweS9jb21tYW5kcy9hYnN0cmFjdHNlcXVlbmNlZGNvbW1hbmQucHkK
QEAgLTI2LDE1ICsyNiwxNSBAQAogIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICMgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAotZnJv
bSB3ZWJraXRweS5tdWx0aWNvbW1hbmR0b29sIGltcG9ydCBBYnN0cmFjdERlY2xhcmF0aXZlQ29t
bW1hbmQKK2Zyb20gd2Via2l0cHkubXVsdGljb21tYW5kdG9vbCBpbXBvcnQgQWJzdHJhY3REZWNs
YXJhdGl2ZUNvbW1hbmQKIGZyb20gd2Via2l0cHkuc3RlcHNlcXVlbmNlIGltcG9ydCBTdGVwU2Vx
dWVuY2UKIAogCi1jbGFzcyBBYnN0cmFjdFNlcXVlbmNlZENvbW1tYW5kKEFic3RyYWN0RGVjbGFy
YXRpdmVDb21tbWFuZCk6CitjbGFzcyBBYnN0cmFjdFNlcXVlbmNlZENvbW1hbmQoQWJzdHJhY3RE
ZWNsYXJhdGl2ZUNvbW1hbmQpOgogICAgIHN0ZXBzID0gTm9uZQogICAgIGRlZiBfX2luaXRfXyhz
ZWxmKToKICAgICAgICAgc2VsZi5fc2VxdWVuY2UgPSBTdGVwU2VxdWVuY2Uoc2VsZi5zdGVwcykK
LSAgICAgICAgQWJzdHJhY3REZWNsYXJhdGl2ZUNvbW1tYW5kLl9faW5pdF9fKHNlbGYsIHNlbGYu
X3NlcXVlbmNlLm9wdGlvbnMoKSkKKyAgICAgICAgQWJzdHJhY3REZWNsYXJhdGl2ZUNvbW1hbmQu
X19pbml0X18oc2VsZiwgc2VsZi5fc2VxdWVuY2Uub3B0aW9ucygpKQogCiAgICAgZGVmIF9wcmVw
YXJlX3N0YXRlKHNlbGYsIG9wdGlvbnMsIGFyZ3MsIHRvb2wpOgogICAgICAgICByZXR1cm4gTm9u
ZQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tYW5kcy9kb3du
bG9hZC5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbWFuZHMvZG93bmxvYWQu
cHkKaW5kZXggM2Y2OWFmNC4uM2I3YjJiZiAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS9jb21tYW5kcy9kb3dubG9hZC5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRz
L3dlYmtpdHB5L2NvbW1hbmRzL2Rvd25sb2FkLnB5CkBAIC0zNiwxNiArMzYsMTcgQEAgaW1wb3J0
IHdlYmtpdHB5LnN0ZXBzIGFzIHN0ZXBzCiBmcm9tIHdlYmtpdHB5LmJ1Z3ppbGxhIGltcG9ydCBw
YXJzZV9idWdfaWQKICMgV2UgY291bGQgaW5zdGVhZCB1c2UgZnJvbSBtb2R1bGVzIGltcG9ydCBi
dWlsZHN0ZXBzIGFuZCB0aGVuIHByZWZpeCBldmVyeSBidWlsZHN0ZXAgd2l0aCAiYnVpbGRzdGVw
cy4iCiBmcm9tIHdlYmtpdHB5LmNoYW5nZWxvZ3MgaW1wb3J0IENoYW5nZUxvZwotZnJvbSB3ZWJr
aXRweS5jb21tYW5kcy5hYnN0cmFjdHNlcXVlbmNlZGNvbW1hbmQgaW1wb3J0IEFic3RyYWN0U2Vx
dWVuY2VkQ29tbW1hbmQKK2Zyb20gd2Via2l0cHkuY29tbWFuZHMuYWJzdHJhY3RkaWZmY29tbWFu
ZCBpbXBvcnQgQWJzdHJhY3REaWZmQ29tbWFuZAorZnJvbSB3ZWJraXRweS5jb21tYW5kcy5hYnN0
cmFjdHNlcXVlbmNlZGNvbW1hbmQgaW1wb3J0IEFic3RyYWN0U2VxdWVuY2VkQ29tbWFuZAogZnJv
bSB3ZWJraXRweS5jb21tZW50cyBpbXBvcnQgYnVnX2NvbW1lbnRfZnJvbV9jb21taXRfdGV4dAog
ZnJvbSB3ZWJraXRweS5leGVjdXRpdmUgaW1wb3J0IFNjcmlwdEVycm9yCiBmcm9tIHdlYmtpdHB5
LmdyYW1tYXIgaW1wb3J0IHBsdXJhbGl6ZQogZnJvbSB3ZWJraXRweS53ZWJraXRfbG9nZ2luZyBp
bXBvcnQgZXJyb3IsIGxvZwotZnJvbSB3ZWJraXRweS5tdWx0aWNvbW1hbmR0b29sIGltcG9ydCBB
YnN0cmFjdERlY2xhcmF0aXZlQ29tbW1hbmQKK2Zyb20gd2Via2l0cHkubXVsdGljb21tYW5kdG9v
bCBpbXBvcnQgQWJzdHJhY3REZWNsYXJhdGl2ZUNvbW1hbmQKIGZyb20gd2Via2l0cHkuc3RlcHNl
cXVlbmNlIGltcG9ydCBTdGVwU2VxdWVuY2UKIAogCi1jbGFzcyBCdWlsZChBYnN0cmFjdFNlcXVl
bmNlZENvbW1tYW5kKToKK2NsYXNzIEJ1aWxkKEFic3RyYWN0U2VxdWVuY2VkQ29tbWFuZCk6CiAg
ICAgbmFtZSA9ICJidWlsZCIKICAgICBoZWxwX3RleHQgPSAiVXBkYXRlIHdvcmtpbmcgY29weSBh
bmQgYnVpbGQiCiAgICAgc3RlcHMgPSBbCkBAIC01NSw3ICs1Niw3IEBAIGNsYXNzIEJ1aWxkKEFi
c3RyYWN0U2VxdWVuY2VkQ29tbW1hbmQpOgogICAgIF0KIAogCi1jbGFzcyBCdWlsZEFuZFRlc3Qo
QWJzdHJhY3RTZXF1ZW5jZWRDb21tbWFuZCk6CitjbGFzcyBCdWlsZEFuZFRlc3QoQWJzdHJhY3RT
ZXF1ZW5jZWRDb21tYW5kKToKICAgICBuYW1lID0gImJ1aWxkLWFuZC10ZXN0IgogICAgIGhlbHBf
dGV4dCA9ICJVcGRhdGUgd29ya2luZyBjb3B5LCBidWlsZCwgYW5kIHJ1biB0aGUgdGVzdHMiCiAg
ICAgc3RlcHMgPSBbCkBAIC02Niw3ICs2Nyw3IEBAIGNsYXNzIEJ1aWxkQW5kVGVzdChBYnN0cmFj
dFNlcXVlbmNlZENvbW1tYW5kKToKICAgICBdCiAKIAotY2xhc3MgTGFuZChBYnN0cmFjdFNlcXVl
bmNlZENvbW1tYW5kKToKK2NsYXNzIExhbmQoQWJzdHJhY3REaWZmQ29tbWFuZCk6CiAgICAgbmFt
ZSA9ICJsYW5kIgogICAgIGhlbHBfdGV4dCA9ICJMYW5kIHRoZSBjdXJyZW50IHdvcmtpbmcgZGly
ZWN0b3J5IGRpZmYgYW5kIHVwZGF0ZXMgdGhlIGFzc29jaWF0ZWQgYnVnIGlmIGFueSIKICAgICBh
cmd1bWVudF9uYW1lcyA9ICJbQlVHSURdIgpAQCAtODgsMTIgKzg5LDEyIEBAIElmIGEgYnVnIGlk
IGlzIHByb3ZpZGVkLCBvciBvbmUgY2FuIGJlIGZvdW5kIGluIHRoZSBDaGFuZ2VMb2cgbGFuZCB3
aWxsIHVwZGF0ZSB0CiAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAicGF0Y2giIDogewog
ICAgICAgICAgICAgICAgICJpZCIgOiBOb25lLAotICAgICAgICAgICAgICAgICJidWdfaWQiIDog
KGFyZ3MgYW5kIGFyZ3NbMF0pIG9yIHBhcnNlX2J1Z19pZCh0b29sLnNjbSgpLmNyZWF0ZV9wYXRj
aCgpKSwKKyAgICAgICAgICAgICAgICAiYnVnX2lkIiA6IHNlbGYuX2J1Z19pZChhcmdzLCB0b29s
KSwKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCiAKLWNsYXNzIEFic3RyYWN0UGF0Y2hQcm9j
ZXNzaW5nQ29tbWFuZChBYnN0cmFjdERlY2xhcmF0aXZlQ29tbW1hbmQpOgorY2xhc3MgQWJzdHJh
Y3RQYXRjaFByb2Nlc3NpbmdDb21tYW5kKEFic3RyYWN0RGVjbGFyYXRpdmVDb21tYW5kKToKICAg
ICAjIFN1YmNsYXNzZXMgbXVzdCBpbXBsZW1lbnQgdGhlIG1ldGhvZHMgYmVsb3cuICBXZSBkb24n
dCBkZWNsYXJlIHRoZW0gaGVyZQogICAgICMgYmVjYXVzZSB3ZSB3YW50IHRvIGJlIGFibGUgdG8g
aW1wbGVtZW50IHRoZW0gd2l0aCBtaXgtaW5zLgogICAgICMKQEAgLTI0NCw3ICsyNDUsNyBAQCBj
bGFzcyBMYW5kRnJvbUJ1ZyhBYnN0cmFjdFBhdGNoTGFuZGluZ0NvbW1hbmQsIFByb2Nlc3NCdWdz
TWl4aW4pOgogICAgIHNob3dfaW5fbWFpbl9oZWxwID0gVHJ1ZQogCiAKLWNsYXNzIFJvbGxvdXQo
QWJzdHJhY3RTZXF1ZW5jZWRDb21tbWFuZCk6CitjbGFzcyBSb2xsb3V0KEFic3RyYWN0U2VxdWVu
Y2VkQ29tbWFuZCk6CiAgICAgbmFtZSA9ICJyb2xsb3V0IgogICAgIHNob3dfaW5fbWFpbl9oZWxw
ID0gVHJ1ZQogICAgIGhlbHBfdGV4dCA9ICJSZXZlcnQgdGhlIGdpdmVuIHJldmlzaW9uIGluIHRo
ZSB3b3JraW5nIGNvcHkgYW5kIG9wdGlvbmFsbHkgY29tbWl0IHRoZSByZXZlcnQgYW5kIHJlLW9w
ZW4gdGhlIG9yaWdpbmFsIGJ1ZyIKQEAgLTI2OCw2ICsyNjksNyBAQCBDb21taXRzIHRoZSByZXZl
cnQgYW5kIHVwZGF0ZXMgdGhlIGJ1ZyAoaW5jbHVkaW5nIHJlLW9wZW5pbmcgdGhlIGJ1ZyBpZiBu
ZWNlc3NhcgogICAgIEBzdGF0aWNtZXRob2QKICAgICBkZWYgX3BhcnNlX2J1Z19pZF9mcm9tX3Jl
dmlzaW9uX2RpZmYodG9vbCwgcmV2aXNpb24pOgogICAgICAgICBvcmlnaW5hbF9kaWZmID0gdG9v
bC5zY20oKS5kaWZmX2Zvcl9yZXZpc2lvbihyZXZpc2lvbikKKyAgICAgICAgIyBGSVhNRTogVGhp
cyBpcyB3cm9uZyBiZWNhdXNlIGl0IHBpY2tzIHVwIGJ1ZyBudW1iZXJzIG91dHNpZGUgb2YgQ2hh
bmdlTG9ncwogICAgICAgICByZXR1cm4gcGFyc2VfYnVnX2lkKG9yaWdpbmFsX2RpZmYpCiAKICAg
ICBkZWYgZXhlY3V0ZShzZWxmLCBvcHRpb25zLCBhcmdzLCB0b29sKToKZGlmZiAtLWdpdCBhL1dl
YktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbWFuZHMvcXVlcmllcy5weSBiL1dlYktpdFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbWFuZHMvcXVlcmllcy5weQppbmRleCBhNWM1NDcyLi4x
ODEwOGEwIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1hbmRz
L3F1ZXJpZXMucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tYW5kcy9x
dWVyaWVzLnB5CkBAIC0zNCwxMCArMzQsMTAgQEAgZnJvbSBvcHRwYXJzZSBpbXBvcnQgbWFrZV9v
cHRpb24KIGZyb20gd2Via2l0cHkuYnVpbGRib3QgaW1wb3J0IEJ1aWxkQm90CiBmcm9tIHdlYmtp
dHB5LmNvbW1pdHRlcnMgaW1wb3J0IENvbW1pdHRlckxpc3QKIGZyb20gd2Via2l0cHkud2Via2l0
X2xvZ2dpbmcgaW1wb3J0IGxvZwotZnJvbSB3ZWJraXRweS5tdWx0aWNvbW1hbmR0b29sIGltcG9y
dCBBYnN0cmFjdERlY2xhcmF0aXZlQ29tbW1hbmQKK2Zyb20gd2Via2l0cHkubXVsdGljb21tYW5k
dG9vbCBpbXBvcnQgQWJzdHJhY3REZWNsYXJhdGl2ZUNvbW1hbmQKIAogCi1jbGFzcyBCdWdzVG9D
b21taXQoQWJzdHJhY3REZWNsYXJhdGl2ZUNvbW1tYW5kKToKK2NsYXNzIEJ1Z3NUb0NvbW1pdChB
YnN0cmFjdERlY2xhcmF0aXZlQ29tbWFuZCk6CiAgICAgbmFtZSA9ICJidWdzLXRvLWNvbW1pdCIK
ICAgICBoZWxwX3RleHQgPSAiTGlzdCBidWdzIGluIHRoZSBjb21taXQtcXVldWUiCiAKQEAgLTQ3
LDcgKzQ3LDcgQEAgY2xhc3MgQnVnc1RvQ29tbWl0KEFic3RyYWN0RGVjbGFyYXRpdmVDb21tbWFu
ZCk6CiAgICAgICAgICAgICBwcmludCAiJXMiICUgYnVnX2lkCiAKIAotY2xhc3MgUGF0Y2hlc1Rv
Q29tbWl0KEFic3RyYWN0RGVjbGFyYXRpdmVDb21tbWFuZCk6CitjbGFzcyBQYXRjaGVzVG9Db21t
aXQoQWJzdHJhY3REZWNsYXJhdGl2ZUNvbW1hbmQpOgogICAgIG5hbWUgPSAicGF0Y2hlcy10by1j
b21taXQiCiAgICAgaGVscF90ZXh0ID0gIkxpc3QgcGF0Y2hlcyBpbiB0aGUgY29tbWl0LXF1ZXVl
IgogCkBAIC01OCwxNCArNTgsMTQgQEAgY2xhc3MgUGF0Y2hlc1RvQ29tbWl0KEFic3RyYWN0RGVj
bGFyYXRpdmVDb21tbWFuZCk6CiAgICAgICAgICAgICBwcmludCAiJXMiICUgcGF0Y2hbInVybCJd
CiAKIAotY2xhc3MgUGF0Y2hlc1RvQ29tbWl0UXVldWUoQWJzdHJhY3REZWNsYXJhdGl2ZUNvbW1t
YW5kKToKK2NsYXNzIFBhdGNoZXNUb0NvbW1pdFF1ZXVlKEFic3RyYWN0RGVjbGFyYXRpdmVDb21t
YW5kKToKICAgICBuYW1lID0gInBhdGNoZXMtdG8tY29tbWl0LXF1ZXVlIgogICAgIGhlbHBfdGV4
dCA9ICJQYXRjaGVzIHdoaWNoIHNob3VsZCBiZSBhZGRlZCB0byB0aGUgY29tbWl0IHF1ZXVlIgog
ICAgIGRlZiBfX2luaXRfXyhzZWxmKToKICAgICAgICAgb3B0aW9ucyA9IFsKICAgICAgICAgICAg
IG1ha2Vfb3B0aW9uKCItLWJ1Z3MiLCBhY3Rpb249InN0b3JlX3RydWUiLCBkZXN0PSJidWdzIiwg
aGVscD0iT3V0cHV0IGJ1ZyBsaW5rcyBpbnN0ZWFkIG9mIHBhdGNoIGxpbmtzIiksCiAgICAgICAg
IF0KLSAgICAgICAgQWJzdHJhY3REZWNsYXJhdGl2ZUNvbW1tYW5kLl9faW5pdF9fKHNlbGYsIG9w
dGlvbnM9b3B0aW9ucykKKyAgICAgICAgQWJzdHJhY3REZWNsYXJhdGl2ZUNvbW1hbmQuX19pbml0
X18oc2VsZiwgb3B0aW9ucz1vcHRpb25zKQogCiAgICAgQHN0YXRpY21ldGhvZAogICAgIGRlZiBf
bmVlZHNfY29tbWl0X3F1ZXVlKHBhdGNoKToKQEAgLTkzLDcgKzkzLDcgQEAgY2xhc3MgUGF0Y2hl
c1RvQ29tbWl0UXVldWUoQWJzdHJhY3REZWNsYXJhdGl2ZUNvbW1tYW5kKToKICAgICAgICAgICAg
ICAgICBwcmludCAiJXMiICUgdG9vbC5idWdzLmF0dGFjaG1lbnRfdXJsX2Zvcl9pZChwYXRjaFsi
aWQiXSwgYWN0aW9uPSJlZGl0IikKIAogCi1jbGFzcyBQYXRjaGVzVG9SZXZpZXcoQWJzdHJhY3RE
ZWNsYXJhdGl2ZUNvbW1tYW5kKToKK2NsYXNzIFBhdGNoZXNUb1JldmlldyhBYnN0cmFjdERlY2xh
cmF0aXZlQ29tbWFuZCk6CiAgICAgbmFtZSA9ICJwYXRjaGVzLXRvLXJldmlldyIKICAgICBoZWxw
X3RleHQgPSAiTGlzdCBwYXRjaGVzIHRoYXQgYXJlIHBlbmRpbmcgcmV2aWV3IgogCkBAIC0xMDQs
NyArMTA0LDcgQEAgY2xhc3MgUGF0Y2hlc1RvUmV2aWV3KEFic3RyYWN0RGVjbGFyYXRpdmVDb21t
bWFuZCk6CiAgICAgICAgICAgICBwcmludCBwYXRjaF9pZAogCiAKLWNsYXNzIFJldmlld2VkUGF0
Y2hlcyhBYnN0cmFjdERlY2xhcmF0aXZlQ29tbW1hbmQpOgorY2xhc3MgUmV2aWV3ZWRQYXRjaGVz
KEFic3RyYWN0RGVjbGFyYXRpdmVDb21tYW5kKToKICAgICBuYW1lID0gInJldmlld2VkLXBhdGNo
ZXMiCiAgICAgaGVscF90ZXh0ID0gIkxpc3QgcisnZCBwYXRjaGVzIG9uIGEgYnVnIgogICAgIGFy
Z3VtZW50X25hbWVzID0gIkJVR0lEIgpAQCAtMTE2LDcgKzExNiw3IEBAIGNsYXNzIFJldmlld2Vk
UGF0Y2hlcyhBYnN0cmFjdERlY2xhcmF0aXZlQ29tbW1hbmQpOgogICAgICAgICAgICAgcHJpbnQg
IiVzIiAlIHBhdGNoWyJ1cmwiXQogCiAKLWNsYXNzIFRyZWVTdGF0dXMoQWJzdHJhY3REZWNsYXJh
dGl2ZUNvbW1tYW5kKToKK2NsYXNzIFRyZWVTdGF0dXMoQWJzdHJhY3REZWNsYXJhdGl2ZUNvbW1h
bmQpOgogICAgIG5hbWUgPSAidHJlZS1zdGF0dXMiCiAgICAgaGVscF90ZXh0ID0gIlByaW50IHRo
ZSBzdGF0dXMgb2YgdGhlICVzIGJ1aWxkYm90cyIgJSBCdWlsZEJvdC5kZWZhdWx0X2hvc3QKICAg
ICBsb25nX2hlbHAgPSAiIiJGZXRjaGVzIGJ1aWxkIHN0YXR1cyBmcm9tIGh0dHA6Ly9idWlsZC53
ZWJraXQub3JnL29uZV9ib3hfcGVyX2J1aWxkZXIKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvY29tbWFuZHMvdXBsb2FkLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93
ZWJraXRweS9jb21tYW5kcy91cGxvYWQucHkKaW5kZXggNTI0YjAwZS4uOWU3NjM2YSAxMDA2NDQK
LS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tYW5kcy91cGxvYWQucHkKKysr
IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tYW5kcy91cGxvYWQucHkKQEAgLTM4
LDE1ICszOCwxNiBAQCBmcm9tIG9wdHBhcnNlIGltcG9ydCBtYWtlX29wdGlvbgogaW1wb3J0IHdl
YmtpdHB5LnN0ZXBzIGFzIHN0ZXBzCiAKIGZyb20gd2Via2l0cHkuYnVnemlsbGEgaW1wb3J0IHBh
cnNlX2J1Z19pZAotZnJvbSB3ZWJraXRweS5jb21tYW5kcy5hYnN0cmFjdHNlcXVlbmNlZGNvbW1h
bmQgaW1wb3J0IEFic3RyYWN0U2VxdWVuY2VkQ29tbW1hbmQKK2Zyb20gd2Via2l0cHkuY29tbWFu
ZHMuYWJzdHJhY3RkaWZmY29tbWFuZCBpbXBvcnQgQWJzdHJhY3REaWZmQ29tbWFuZAorZnJvbSB3
ZWJraXRweS5jb21tYW5kcy5hYnN0cmFjdHNlcXVlbmNlZGNvbW1hbmQgaW1wb3J0IEFic3RyYWN0
U2VxdWVuY2VkQ29tbWFuZAogZnJvbSB3ZWJraXRweS5jb21tZW50cyBpbXBvcnQgYnVnX2NvbW1l
bnRfZnJvbV9zdm5fcmV2aXNpb24KIGZyb20gd2Via2l0cHkuY29tbWl0dGVycyBpbXBvcnQgQ29t
bWl0dGVyTGlzdAogZnJvbSB3ZWJraXRweS5ncmFtbWFyIGltcG9ydCBwbHVyYWxpemUKIGZyb20g
d2Via2l0cHkud2Via2l0X2xvZ2dpbmcgaW1wb3J0IGVycm9yLCBsb2cKIGZyb20gd2Via2l0cHku
bW9jayBpbXBvcnQgTW9jawotZnJvbSB3ZWJraXRweS5tdWx0aWNvbW1hbmR0b29sIGltcG9ydCBB
YnN0cmFjdERlY2xhcmF0aXZlQ29tbW1hbmQKK2Zyb20gd2Via2l0cHkubXVsdGljb21tYW5kdG9v
bCBpbXBvcnQgQWJzdHJhY3REZWNsYXJhdGl2ZUNvbW1hbmQKIAotY2xhc3MgQ29tbWl0TWVzc2Fn
ZUZvckN1cnJlbnREaWZmKEFic3RyYWN0RGVjbGFyYXRpdmVDb21tbWFuZCk6CitjbGFzcyBDb21t
aXRNZXNzYWdlRm9yQ3VycmVudERpZmYoQWJzdHJhY3REZWNsYXJhdGl2ZUNvbW1hbmQpOgogICAg
IG5hbWUgPSAiY29tbWl0LW1lc3NhZ2UiCiAgICAgaGVscF90ZXh0ID0gIlByaW50IGEgY29tbWl0
IG1lc3NhZ2Ugc3VpdGFibGUgZm9yIHRoZSB1bmNvbW1pdHRlZCBjaGFuZ2VzIgogCkBAIC01NSw3
ICs1Niw3IEBAIGNsYXNzIENvbW1pdE1lc3NhZ2VGb3JDdXJyZW50RGlmZihBYnN0cmFjdERlY2xh
cmF0aXZlQ29tbW1hbmQpOgogICAgICAgICBwcmludCAiJXMiICUgdG9vbC5zY20oKS5jb21taXRf
bWVzc2FnZV9mb3JfdGhpc19jb21taXQoKS5tZXNzYWdlKCkKIAogCi1jbGFzcyBBc3NpZ25Ub0Nv
bW1pdHRlcihBYnN0cmFjdERlY2xhcmF0aXZlQ29tbW1hbmQpOgorY2xhc3MgQXNzaWduVG9Db21t
aXR0ZXIoQWJzdHJhY3REZWNsYXJhdGl2ZUNvbW1hbmQpOgogICAgIG5hbWUgPSAiYXNzaWduLXRv
LWNvbW1pdHRlciIKICAgICBoZWxwX3RleHQgPSAiQXNzaWduIGJ1ZyB0byB3aG9ldmVyIGF0dGFj
aGVkIHRoZSBtb3N0IHJlY2VudCByKydkIHBhdGNoIgogCkBAIC04Nyw3ICs4OCw3IEBAIGNsYXNz
IEFzc2lnblRvQ29tbWl0dGVyKEFic3RyYWN0RGVjbGFyYXRpdmVDb21tbWFuZCk6CiAgICAgICAg
ICAgICBzZWxmLl9hc3NpZ25fYnVnX3RvX2xhc3RfcGF0Y2hfYXR0YWNoZXIoYnVnX2lkKQogCiAK
LWNsYXNzIE9ic29sZXRlQXR0YWNobWVudHMoQWJzdHJhY3RTZXF1ZW5jZWRDb21tbWFuZCk6Citj
bGFzcyBPYnNvbGV0ZUF0dGFjaG1lbnRzKEFic3RyYWN0U2VxdWVuY2VkQ29tbWFuZCk6CiAgICAg
bmFtZSA9ICJvYnNvbGV0ZS1hdHRhY2htZW50cyIKICAgICBoZWxwX3RleHQgPSAiTWFyayBhbGwg
YXR0YWNobWVudHMgb24gYSBidWcgYXMgb2Jzb2xldGUiCiAgICAgYXJndW1lbnRfbmFtZXMgPSAi
QlVHSUQiCkBAIC05OSwxNyArMTAwLDcgQEAgY2xhc3MgT2Jzb2xldGVBdHRhY2htZW50cyhBYnN0
cmFjdFNlcXVlbmNlZENvbW1tYW5kKToKICAgICAgICAgcmV0dXJuIHsgImJ1Z19pZCIgOiBhcmdz
WzBdIH0KIAogCi1jbGFzcyBBYnN0cmFjdFBhdGNoVXBsb2FkaW5nQ29tbWFuZChBYnN0cmFjdFNl
cXVlbmNlZENvbW1tYW5kKToKLSAgICBkZWYgX2J1Z19pZChzZWxmLCBhcmdzLCB0b29sLCBzdGF0
ZSk6Ci0gICAgICAgICMgUGVyZmVyIGEgYnVnIGlkIHBhc3NlZCBhcyBhbiBhcmd1bWVudCBvdmVy
IGEgYnVnIHVybCBpbiB0aGUgZGlmZiAoaS5lLiBDaGFuZ2VMb2dzKS4KLSAgICAgICAgYnVnX2lk
ID0gYXJncyBhbmQgYXJnc1swXQotICAgICAgICBpZiBub3QgYnVnX2lkOgotICAgICAgICAgICAg
c3RhdGVbImRpZmYiXSA9IHRvb2wuc2NtKCkuY3JlYXRlX3BhdGNoKCkKLSAgICAgICAgICAgIGJ1
Z19pZCA9IHBhcnNlX2J1Z19pZChzdGF0ZVsiZGlmZiJdKQotICAgICAgICByZXR1cm4gYnVnX2lk
Ci0KLQotY2xhc3MgUG9zdChBYnN0cmFjdFBhdGNoVXBsb2FkaW5nQ29tbWFuZCk6CitjbGFzcyBQ
b3N0KEFic3RyYWN0RGlmZkNvbW1hbmQpOgogICAgIG5hbWUgPSAicG9zdCIKICAgICBoZWxwX3Rl
eHQgPSAiQXR0YWNoIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5IGRpZmYgdG8gYSBidWcg
YXMgYSBwYXRjaCBmaWxlIgogICAgIGFyZ3VtZW50X25hbWVzID0gIltCVUdJRF0iCkBAIC0xMjIs
MTQgKzExMywxMyBAQCBjbGFzcyBQb3N0KEFic3RyYWN0UGF0Y2hVcGxvYWRpbmdDb21tYW5kKToK
ICAgICBdCiAKICAgICBkZWYgX3ByZXBhcmVfc3RhdGUoc2VsZiwgb3B0aW9ucywgYXJncywgdG9v
bCk6Ci0gICAgICAgIHN0YXRlID0ge30KLSAgICAgICAgc3RhdGVbImJ1Z19pZCJdID0gc2VsZi5f
YnVnX2lkKGFyZ3MsIHRvb2wsIHN0YXRlKQorICAgICAgICBzdGF0ZSA9IHsgImJ1Z19pZCIgOiBz
ZWxmLl9idWdfaWQoYXJncywgdG9vbCkgfQogICAgICAgICBpZiBub3Qgc3RhdGVbImJ1Z19pZCJd
OgogICAgICAgICAgICAgZXJyb3IoIk5vIGJ1ZyBpZCBwYXNzZWQgYW5kIG5vIGJ1ZyB1cmwgZm91
bmQgaW4gZGlmZiwgY2FuJ3QgcG9zdC4iKQogICAgICAgICByZXR1cm4gc3RhdGUKIAogCi1jbGFz
cyBQcmVwYXJlKEFic3RyYWN0U2VxdWVuY2VkQ29tbW1hbmQpOgorY2xhc3MgUHJlcGFyZShBYnN0
cmFjdFNlcXVlbmNlZENvbW1hbmQpOgogICAgIG5hbWUgPSAicHJlcGFyZSIKICAgICBoZWxwX3Rl
eHQgPSAiQ3JlYXRlcyBhIGJ1ZyAob3IgcHJvbXB0cyBmb3IgYW4gZXhpc3RpbmcgYnVnKSBhbmQg
cHJlcGFyZXMgdGhlIENoYW5nZUxvZ3MiCiAgICAgYXJndW1lbnRfbmFtZXMgPSAiW0JVR0lEXSIK
QEAgLTE0NSw3ICsxMzUsNyBAQCBjbGFzcyBQcmVwYXJlKEFic3RyYWN0U2VxdWVuY2VkQ29tbW1h
bmQpOgogICAgICAgICByZXR1cm4geyAiYnVnX2lkIiA6IGJ1Z19pZCB9CiAKIAotY2xhc3MgVXBs
b2FkKEFic3RyYWN0UGF0Y2hVcGxvYWRpbmdDb21tYW5kKToKK2NsYXNzIFVwbG9hZChBYnN0cmFj
dERpZmZDb21tYW5kKToKICAgICBuYW1lID0gInVwbG9hZCIKICAgICBoZWxwX3RleHQgPSAiQXV0
b21hdGVzIHRoZSBwcm9jZXNzIG9mIHVwbG9hZGluZyBhIHBhdGNoIGZvciByZXZpZXciCiAgICAg
YXJndW1lbnRfbmFtZXMgPSAiW0JVR0lEXSIKQEAgLTE2OSwxMiArMTU5LDExIEBAIGNsYXNzIFVw
bG9hZChBYnN0cmFjdFBhdGNoVXBsb2FkaW5nQ29tbWFuZCk6CiAgICAgY29tbWFuZCBpbiB0aGUg
UEFHRVIgZW52aXJvbm1lbnQgdmFyaWFibGUuIiIiCiAKICAgICBkZWYgX3ByZXBhcmVfc3RhdGUo
c2VsZiwgb3B0aW9ucywgYXJncywgdG9vbCk6Ci0gICAgICAgIHN0YXRlID0ge30KLSAgICAgICAg
c3RhdGVbImJ1Z19pZCJdID0gc2VsZi5fYnVnX2lkKGFyZ3MsIHRvb2wsIHN0YXRlKQorICAgICAg
ICBzdGF0ZSA9IHsgImJ1Z19pZCIgOiBzZWxmLl9idWdfaWQoYXJncywgdG9vbCkgfQogICAgICAg
ICByZXR1cm4gc3RhdGUKIAogCi1jbGFzcyBFZGl0Q2hhbmdlTG9ncyhBYnN0cmFjdFNlcXVlbmNl
ZENvbW1tYW5kKToKK2NsYXNzIEVkaXRDaGFuZ2VMb2dzKEFic3RyYWN0U2VxdWVuY2VkQ29tbWFu
ZCk6CiAgICAgbmFtZSA9ICJlZGl0LWNoYW5nZWxvZ3MiCiAgICAgaGVscF90ZXh0ID0gIk9wZW5z
IG1vZGlmaWVkIENoYW5nZUxvZ3MgaW4gJEVESVRPUiIKICAgICBzaG93X2luX21haW5faGVscCA9
IFRydWUKQEAgLTE4Myw3ICsxNzIsNyBAQCBjbGFzcyBFZGl0Q2hhbmdlTG9ncyhBYnN0cmFjdFNl
cXVlbmNlZENvbW1tYW5kKToKICAgICBdCiAKIAotY2xhc3MgUG9zdENvbW1pdHMoQWJzdHJhY3RE
ZWNsYXJhdGl2ZUNvbW1tYW5kKToKK2NsYXNzIFBvc3RDb21taXRzKEFic3RyYWN0RGVjbGFyYXRp
dmVDb21tYW5kKToKICAgICBuYW1lID0gInBvc3QtY29tbWl0cyIKICAgICBoZWxwX3RleHQgPSAi
QXR0YWNoIGEgcmFuZ2Ugb2YgbG9jYWwgY29tbWl0cyB0byBidWdzIGFzIHBhdGNoIGZpbGVzIgog
ICAgIGFyZ3VtZW50X25hbWVzID0gIkNPTU1JVElTSCIKQEAgLTE5Nyw3ICsxODYsNyBAQCBjbGFz
cyBQb3N0Q29tbWl0cyhBYnN0cmFjdERlY2xhcmF0aXZlQ29tbW1hbmQpOgogICAgICAgICAgICAg
c3RlcHMuT3B0aW9ucy5yZXZpZXcsCiAgICAgICAgICAgICBzdGVwcy5PcHRpb25zLnJlcXVlc3Rf
Y29tbWl0LAogICAgICAgICBdCi0gICAgICAgIEFic3RyYWN0RGVjbGFyYXRpdmVDb21tbWFuZC5f
X2luaXRfXyhzZWxmLCBvcHRpb25zPW9wdGlvbnMsIHJlcXVpcmVzX2xvY2FsX2NvbW1pdHM9VHJ1
ZSkKKyAgICAgICAgQWJzdHJhY3REZWNsYXJhdGl2ZUNvbW1hbmQuX19pbml0X18oc2VsZiwgb3B0
aW9ucz1vcHRpb25zLCByZXF1aXJlc19sb2NhbF9jb21taXRzPVRydWUpCiAKICAgICBkZWYgX2Nv
bW1lbnRfdGV4dF9mb3JfY29tbWl0KHNlbGYsIG9wdGlvbnMsIGNvbW1pdF9tZXNzYWdlLCB0b29s
LCBjb21taXRfaWQpOgogICAgICAgICBjb21tZW50X3RleHQgPSBOb25lCkBAIC0yMzcsNyArMjI2
LDcgQEAgY2xhc3MgUG9zdENvbW1pdHMoQWJzdHJhY3REZWNsYXJhdGl2ZUNvbW1tYW5kKToKICAg
ICAgICAgICAgIHRvb2wuYnVncy5hZGRfcGF0Y2hfdG9fYnVnKGJ1Z19pZCwgZGlmZl9maWxlLCBk
ZXNjcmlwdGlvbiwgY29tbWVudF90ZXh0LCBtYXJrX2Zvcl9yZXZpZXc9b3B0aW9ucy5yZXZpZXcs
IG1hcmtfZm9yX2NvbW1pdF9xdWV1ZT1vcHRpb25zLnJlcXVlc3RfY29tbWl0KQogCiAKLWNsYXNz
IE1hcmtCdWdGaXhlZChBYnN0cmFjdERlY2xhcmF0aXZlQ29tbW1hbmQpOgorY2xhc3MgTWFya0J1
Z0ZpeGVkKEFic3RyYWN0RGVjbGFyYXRpdmVDb21tYW5kKToKICAgICBuYW1lID0gIm1hcmstYnVn
LWZpeGVkIgogICAgIGhlbHBfdGV4dCA9ICJNYXJrIHRoZSBzcGVjaWZpZWQgYnVnIGFzIGZpeGVk
IgogICAgIGFyZ3VtZW50X25hbWVzID0gIltTVk5fUkVWSVNJT05dIgpAQCAtMjQ4LDcgKzIzNyw3
IEBAIGNsYXNzIE1hcmtCdWdGaXhlZChBYnN0cmFjdERlY2xhcmF0aXZlQ29tbW1hbmQpOgogICAg
ICAgICAgICAgbWFrZV9vcHRpb24oIi0tb3BlbiIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlZmF1
bHQ9RmFsc2UsIGRlc3Q9Im9wZW5fYnVnIiwgaGVscD0iT3BlbiBidWcgaW4gZGVmYXVsdCB3ZWIg
YnJvd3NlciAoTWFjIG9ubHkpLiIpLAogICAgICAgICAgICAgbWFrZV9vcHRpb24oIi0tdXBkYXRl
LW9ubHkiLCBhY3Rpb249InN0b3JlX3RydWUiLCBkZWZhdWx0PUZhbHNlLCBkZXN0PSJ1cGRhdGVf
b25seSIsIGhlbHA9IkFkZCBjb21tZW50IHRvIHRoZSBidWcsIGJ1dCBkbyBub3QgY2xvc2UgaXQu
IiksCiAgICAgICAgIF0KLSAgICAgICAgQWJzdHJhY3REZWNsYXJhdGl2ZUNvbW1tYW5kLl9faW5p
dF9fKHNlbGYsIG9wdGlvbnM9b3B0aW9ucykKKyAgICAgICAgQWJzdHJhY3REZWNsYXJhdGl2ZUNv
bW1hbmQuX19pbml0X18oc2VsZiwgb3B0aW9ucz1vcHRpb25zKQogCiAgICAgZGVmIF9mZXRjaF9j
b21taXRfbG9nKHNlbGYsIHRvb2wsIHN2bl9yZXZpc2lvbik6CiAgICAgICAgIGlmIG5vdCBzdm5f
cmV2aXNpb246CkBAIC0zMTUsNyArMzA0LDcgQEAgY2xhc3MgTWFya0J1Z0ZpeGVkKEFic3RyYWN0
RGVjbGFyYXRpdmVDb21tbWFuZCk6CiAKIAogIyBGSVhNRTogUmVxdWlyZXMgdW5pdCB0ZXN0LiAg
QmxvY2tpbmcgaXNzdWU6IHRvbyBjb21wbGV4IGZvciBub3cuCi1jbGFzcyBDcmVhdGVCdWcoQWJz
dHJhY3REZWNsYXJhdGl2ZUNvbW1tYW5kKToKK2NsYXNzIENyZWF0ZUJ1ZyhBYnN0cmFjdERlY2xh
cmF0aXZlQ29tbWFuZCk6CiAgICAgbmFtZSA9ICJjcmVhdGUtYnVnIgogICAgIGhlbHBfdGV4dCA9
ICJDcmVhdGUgYSBidWcgZnJvbSBsb2NhbCBjaGFuZ2VzIG9yIGxvY2FsIGNvbW1pdHMiCiAgICAg
YXJndW1lbnRfbmFtZXMgPSAiW0NPTU1JVElTSF0iCkBAIC0zMjgsNyArMzE3LDcgQEAgY2xhc3Mg
Q3JlYXRlQnVnKEFic3RyYWN0RGVjbGFyYXRpdmVDb21tbWFuZCk6CiAgICAgICAgICAgICBtYWtl
X29wdGlvbigiLS1uby1yZXZpZXciLCBhY3Rpb249InN0b3JlX2ZhbHNlIiwgZGVzdD0icmV2aWV3
IiwgZGVmYXVsdD1UcnVlLCBoZWxwPSJEbyBub3QgbWFyayB0aGUgcGF0Y2ggZm9yIHJldmlldy4i
KSwKICAgICAgICAgICAgIG1ha2Vfb3B0aW9uKCItLXJlcXVlc3QtY29tbWl0IiwgYWN0aW9uPSJz
dG9yZV90cnVlIiwgZGVzdD0icmVxdWVzdF9jb21taXQiLCBkZWZhdWx0PUZhbHNlLCBoZWxwPSJN
YXJrIHRoZSBwYXRjaCBhcyBuZWVkaW5nIGF1dG8tY29tbWl0IGFmdGVyIHJldmlldy4iKSwKICAg
ICAgICAgXQotICAgICAgICBBYnN0cmFjdERlY2xhcmF0aXZlQ29tbW1hbmQuX19pbml0X18oc2Vs
Ziwgb3B0aW9ucz1vcHRpb25zKQorICAgICAgICBBYnN0cmFjdERlY2xhcmF0aXZlQ29tbWFuZC5f
X2luaXRfXyhzZWxmLCBvcHRpb25zPW9wdGlvbnMpCiAKICAgICBkZWYgY3JlYXRlX2J1Z19mcm9t
X2NvbW1pdChzZWxmLCBvcHRpb25zLCBhcmdzLCB0b29sKToKICAgICAgICAgY29tbWl0X2lkcyA9
IHRvb2wuc2NtKCkuY29tbWl0X2lkc19mcm9tX2NvbW1pdGlzaF9hcmd1bWVudHMoYXJncykKZGlm
ZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbW9ja19idWd6aWxsYXRvb2wu
cHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L21vY2tfYnVnemlsbGF0b29sLnB5Cmlu
ZGV4IGY4MzkyYWEuLmVlNWEzYzggMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbW9ja19idWd6aWxsYXRvb2wucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9tb2NrX2J1Z3ppbGxhdG9vbC5weQpAQCAtMTU2LDExICsxNTYsMTQgQEAgY2xhc3MgTW9j
a1NDTShNb2NrKToKICAgICBkZWYgY29tbWl0X2lkc19mcm9tX2NvbW1pdGlzaF9hcmd1bWVudHMo
c2VsZiwgYXJncyk6CiAgICAgICAgIHJldHVybiBbIkNvbW1pdGlzaDEiLCAiQ29tbWl0aXNoMiJd
CiAKKyAgICBkZWYgY29tbWl0X21lc3NhZ2VfZm9yX3RoaXNfY29tbWl0KHNlbGYpOgorICAgICAg
ICByZXR1cm4gQ29tbWl0TWVzc2FnZShbIkNvbW1pdE1lc3NhZ2UxIiwgImh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MyJdKQorCiAgICAgZGVmIGNvbW1pdF9tZXNzYWdl
X2Zvcl9sb2NhbF9jb21taXQoc2VsZiwgY29tbWl0X2lkKToKICAgICAgICAgaWYgY29tbWl0X2lk
ID09ICJDb21taXRpc2gxIjoKLSAgICAgICAgICAgIHJldHVybiBDb21taXRNZXNzYWdlKCJDb21t
aXRNZXNzYWdlMVxuaHR0cHM6Ly9idWdzLmV4YW1wbGUub3JnL3Nob3dfYnVnLmNnaT9pZD00Mlxu
IikKKyAgICAgICAgICAgIHJldHVybiBDb21taXRNZXNzYWdlKFsiQ29tbWl0TWVzc2FnZTEiLCAi
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyIl0pCiAgICAgICAgIGlm
IGNvbW1pdF9pZCA9PSAiQ29tbWl0aXNoMiI6Ci0gICAgICAgICAgICByZXR1cm4gQ29tbWl0TWVz
c2FnZSgiQ29tbWl0TWVzc2FnZTJcbmh0dHBzOi8vYnVncy5leGFtcGxlLm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NzVcbiIpCisgICAgICAgICAgICByZXR1cm4gQ29tbWl0TWVzc2FnZShbIkNvbW1pdE1l
c3NhZ2UyIiwgImh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NSJdKQog
ICAgICAgICByYWlzZSBFeGNlcHRpb24oIkJvZ3VzIGNvbW1pdF9pZCBpbiBjb21taXRfbWVzc2Fn
ZV9mb3JfbG9jYWxfY29tbWl0LiIpCiAKICAgICBkZWYgY3JlYXRlX3BhdGNoX2Zyb21fbG9jYWxf
Y29tbWl0KHNlbGYsIGNvbW1pdF9pZCk6CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRz
L3dlYmtpdHB5L211bHRpY29tbWFuZHRvb2wucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L211bHRpY29tbWFuZHRvb2wucHkKaW5kZXggYTI1YjE1MC4uMTBjZjQyNiAxMDA2NDQKLS0t
IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9tdWx0aWNvbW1hbmR0b29sLnB5CisrKyBi
L1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbXVsdGljb21tYW5kdG9vbC5weQpAQCAtMTMx
LDcgKzEzMSw3IEBAIGNsYXNzIENvbW1hbmQob2JqZWN0KToKIAogCiAjIEZJWE1FOiBUaGlzIHNo
b3VsZCBqdXN0IGJlIHJvbGxlZCBpbnRvIENvbW1hbmQuICBoZWxwX3RleHQgYW5kIGFyZ3VtZW50
X25hbWVzIGRvIG5vdCBuZWVkIHRvIGJlIGluc3RhbmNlIHZhcmlhYmxlcy4KLWNsYXNzIEFic3Ry
YWN0RGVjbGFyYXRpdmVDb21tbWFuZChDb21tYW5kKToKK2NsYXNzIEFic3RyYWN0RGVjbGFyYXRp
dmVDb21tYW5kKENvbW1hbmQpOgogICAgIGhlbHBfdGV4dCA9IE5vbmUKICAgICBhcmd1bWVudF9u
YW1lcyA9IE5vbmUKICAgICBsb25nX2hlbHAgPSBOb25lCkBAIC0xNTksNyArMTU5LDcgQEAgY2xh
c3MgSGVscFByaW50aW5nT3B0aW9uUGFyc2VyKE9wdGlvblBhcnNlcik6CiAgICAgICAgIHJldHVy
biAiIgogCiAKLWNsYXNzIEhlbHBDb21tYW5kKEFic3RyYWN0RGVjbGFyYXRpdmVDb21tbWFuZCk6
CitjbGFzcyBIZWxwQ29tbWFuZChBYnN0cmFjdERlY2xhcmF0aXZlQ29tbWFuZCk6CiAgICAgbmFt
ZSA9ICJoZWxwIgogICAgIGhlbHBfdGV4dCA9ICJEaXNwbGF5IGluZm9ybWF0aW9uIGFib3V0IHRo
aXMgcHJvZ3JhbSBvciBpdHMgc3ViY29tbWFuZHMiCiAgICAgYXJndW1lbnRfbmFtZXMgPSAiW0NP
TU1BTkRdIgpAQCAtMTY4LDcgKzE2OCw3IEBAIGNsYXNzIEhlbHBDb21tYW5kKEFic3RyYWN0RGVj
bGFyYXRpdmVDb21tbWFuZCk6CiAgICAgICAgIG9wdGlvbnMgPSBbCiAgICAgICAgICAgICBtYWtl
X29wdGlvbigiLWEiLCAiLS1hbGwtY29tbWFuZHMiLCBhY3Rpb249InN0b3JlX3RydWUiLCBkZXN0
PSJzaG93X2FsbF9jb21tYW5kcyIsIGhlbHA9IlByaW50IGFsbCBhdmFpbGFibGUgY29tbWFuZHMi
KSwKICAgICAgICAgXQotICAgICAgICBBYnN0cmFjdERlY2xhcmF0aXZlQ29tbW1hbmQuX19pbml0
X18oc2VsZiwgb3B0aW9ucykKKyAgICAgICAgQWJzdHJhY3REZWNsYXJhdGl2ZUNvbW1hbmQuX19p
bml0X18oc2VsZiwgb3B0aW9ucykKICAgICAgICAgc2VsZi5zaG93X2FsbF9jb21tYW5kcyA9IEZh
bHNlICMgQSBoYWNrIHVzZWQgdG8gcGFzcyAtLWFsbC1jb21tYW5kcyB0byBfaGVscF9lcGlsb2cg
ZXZlbiB0aG91Z2ggaXQncyBjYWxsZWQgYnkgdGhlIE9wdGlvblBhcnNlci4KIAogICAgIGRlZiBf
aGVscF9lcGlsb2coc2VsZik6Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>46259</attachid>
            <date>2010-01-10 22:23:31 -0800</date>
            <delta_ts>2010-01-12 01:42:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-33197-20100110222329.patch</filename>
            <type>text/plain</type>
            <size>7029</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA4ZWFmNDU1Li45NWQ2MDNlIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjIgQEAKIDIwMTAtMDEt
MTAgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAorICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBidWd6aWxsYS10b29sIHN1Ym1pdC1wYXRjaCBt
aXN0YWtlbmx5IHBpY2tzIHVwIGJ1ZyBVUkxzIGluIG5vbi1DaGFuZ2VMb2cgZmlsZXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMzMTk3CisKKyAgICAg
ICAgV2Ugc2hvdWxkIGp1c3Qgc2VhcmNoIGZvciBidWcgbnVtYmVycyBpbiB0aGUgQ2hhbmdlTG9n
cyBpbnN0ZWFkIG9mIGluCisgICAgICAgIHRoZSB3aG9sZSBkaWZmLgorIAorICAgICAgICAqIFNj
cmlwdHMvdGVzdC13ZWJraXRweToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1hbmRz
L2Fic3RyYWN0ZGlmZmNvbW1hbmQucHk6IEFkZGVkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0
cHkvY29tbWFuZHMvYWJzdHJhY3RkaWZmY29tbWFuZF91bml0dGVzdC5weTogQWRkZWQuCisgICAg
ICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tYW5kcy9kb3dubG9hZC5weToKKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L2NvbW1hbmRzL3VwbG9hZC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHB5L21vY2tfYnVnemlsbGF0b29sLnB5OgorCisyMDEwLTAxLTEwICBBZGFtIEJhcnRoICA8
YWJhcnRoQHdlYmtpdC5vcmc+CisKICAgICAgICAgUnViYmVyIHN0YW1wZWQgYnkgRGF2aWQgS2ls
emVyLgogCiAgICAgICAgIGJ1Z3ppbGxhLXRvb2wgc3VibWl0LXBhdGNoIG1pc3Rha2VubHkgcGlj
a3MgdXAgYnVnIFVSTHMgaW4gbm9uLUNoYW5nZUxvZyBmaWxlcwpkaWZmIC0tZ2l0IGEvV2ViS2l0
VG9vbHMvU2NyaXB0cy90ZXN0LXdlYmtpdHB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy90ZXN0LXdl
YmtpdHB5CmluZGV4IGYzMjBlZWIuLjZlNWUwZWYgMTAwNzU1Ci0tLSBhL1dlYktpdFRvb2xzL1Nj
cmlwdHMvdGVzdC13ZWJraXRweQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3Rlc3Qtd2Via2l0
cHkKQEAgLTMzLDYgKzMzLDcgQEAgaW1wb3J0IHVuaXR0ZXN0CiBmcm9tIHdlYmtpdHB5LmJ1Z3pp
bGxhX3VuaXR0ZXN0IGltcG9ydCAqCiBmcm9tIHdlYmtpdHB5LmJ1aWxkYm90X3VuaXR0ZXN0IGlt
cG9ydCAqCiBmcm9tIHdlYmtpdHB5LmNoYW5nZWxvZ3NfdW5pdHRlc3QgaW1wb3J0ICoKK2Zyb20g
d2Via2l0cHkuY29tbWFuZHMuYWJzdHJhY3RkaWZmY29tbWFuZF91bml0dGVzdCBpbXBvcnQgKgog
ZnJvbSB3ZWJraXRweS5jb21tYW5kcy5kb3dubG9hZF91bml0dGVzdCBpbXBvcnQgKgogZnJvbSB3
ZWJraXRweS5jb21tYW5kcy5lYXJseV93YXJuaW5nX3N5c3RlbV91bml0dGVzdCBpbXBvcnQgKgog
ZnJvbSB3ZWJraXRweS5jb21tYW5kcy51cGxvYWRfdW5pdHRlc3QgaW1wb3J0ICoKZGlmZiAtLWdp
dCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbWFuZHMvZG93bmxvYWQucHkgYi9X
ZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1hbmRzL2Rvd25sb2FkLnB5CmluZGV4IGJi
OGMwMWEuLjNiN2IyYmYgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
Y29tbWFuZHMvZG93bmxvYWQucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9j
b21tYW5kcy9kb3dubG9hZC5weQpAQCAtMzYsNiArMzYsNyBAQCBpbXBvcnQgd2Via2l0cHkuc3Rl
cHMgYXMgc3RlcHMKIGZyb20gd2Via2l0cHkuYnVnemlsbGEgaW1wb3J0IHBhcnNlX2J1Z19pZAog
IyBXZSBjb3VsZCBpbnN0ZWFkIHVzZSBmcm9tIG1vZHVsZXMgaW1wb3J0IGJ1aWxkc3RlcHMgYW5k
IHRoZW4gcHJlZml4IGV2ZXJ5IGJ1aWxkc3RlcCB3aXRoICJidWlsZHN0ZXBzLiIKIGZyb20gd2Vi
a2l0cHkuY2hhbmdlbG9ncyBpbXBvcnQgQ2hhbmdlTG9nCitmcm9tIHdlYmtpdHB5LmNvbW1hbmRz
LmFic3RyYWN0ZGlmZmNvbW1hbmQgaW1wb3J0IEFic3RyYWN0RGlmZkNvbW1hbmQKIGZyb20gd2Vi
a2l0cHkuY29tbWFuZHMuYWJzdHJhY3RzZXF1ZW5jZWRjb21tYW5kIGltcG9ydCBBYnN0cmFjdFNl
cXVlbmNlZENvbW1hbmQKIGZyb20gd2Via2l0cHkuY29tbWVudHMgaW1wb3J0IGJ1Z19jb21tZW50
X2Zyb21fY29tbWl0X3RleHQKIGZyb20gd2Via2l0cHkuZXhlY3V0aXZlIGltcG9ydCBTY3JpcHRF
cnJvcgpAQCAtNjYsNyArNjcsNyBAQCBjbGFzcyBCdWlsZEFuZFRlc3QoQWJzdHJhY3RTZXF1ZW5j
ZWRDb21tYW5kKToKICAgICBdCiAKIAotY2xhc3MgTGFuZChBYnN0cmFjdFNlcXVlbmNlZENvbW1h
bmQpOgorY2xhc3MgTGFuZChBYnN0cmFjdERpZmZDb21tYW5kKToKICAgICBuYW1lID0gImxhbmQi
CiAgICAgaGVscF90ZXh0ID0gIkxhbmQgdGhlIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnkgZGlm
ZiBhbmQgdXBkYXRlcyB0aGUgYXNzb2NpYXRlZCBidWcgaWYgYW55IgogICAgIGFyZ3VtZW50X25h
bWVzID0gIltCVUdJRF0iCkBAIC04OCw3ICs4OSw3IEBAIElmIGEgYnVnIGlkIGlzIHByb3ZpZGVk
LCBvciBvbmUgY2FuIGJlIGZvdW5kIGluIHRoZSBDaGFuZ2VMb2cgbGFuZCB3aWxsIHVwZGF0ZSB0
CiAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAicGF0Y2giIDogewogICAgICAgICAgICAg
ICAgICJpZCIgOiBOb25lLAotICAgICAgICAgICAgICAgICJidWdfaWQiIDogKGFyZ3MgYW5kIGFy
Z3NbMF0pIG9yIHBhcnNlX2J1Z19pZCh0b29sLnNjbSgpLmNyZWF0ZV9wYXRjaCgpKSwKKyAgICAg
ICAgICAgICAgICAiYnVnX2lkIiA6IHNlbGYuX2J1Z19pZChhcmdzLCB0b29sKSwKICAgICAgICAg
ICAgIH0KICAgICAgICAgfQogCkBAIC0yNjgsNiArMjY5LDcgQEAgQ29tbWl0cyB0aGUgcmV2ZXJ0
IGFuZCB1cGRhdGVzIHRoZSBidWcgKGluY2x1ZGluZyByZS1vcGVuaW5nIHRoZSBidWcgaWYgbmVj
ZXNzYXIKICAgICBAc3RhdGljbWV0aG9kCiAgICAgZGVmIF9wYXJzZV9idWdfaWRfZnJvbV9yZXZp
c2lvbl9kaWZmKHRvb2wsIHJldmlzaW9uKToKICAgICAgICAgb3JpZ2luYWxfZGlmZiA9IHRvb2wu
c2NtKCkuZGlmZl9mb3JfcmV2aXNpb24ocmV2aXNpb24pCisgICAgICAgICMgRklYTUU6IFRoaXMg
aXMgd3JvbmcgYmVjYXVzZSBpdCBwaWNrcyB1cCBidWcgbnVtYmVycyBvdXRzaWRlIG9mIENoYW5n
ZUxvZ3MKICAgICAgICAgcmV0dXJuIHBhcnNlX2J1Z19pZChvcmlnaW5hbF9kaWZmKQogCiAgICAg
ZGVmIGV4ZWN1dGUoc2VsZiwgb3B0aW9ucywgYXJncywgdG9vbCk6CmRpZmYgLS1naXQgYS9XZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1hbmRzL3VwbG9hZC5weSBiL1dlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvY29tbWFuZHMvdXBsb2FkLnB5CmluZGV4IDY1ZjZiMzkuLjllNzYz
NmEgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbWFuZHMvdXBs
b2FkLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbWFuZHMvdXBsb2Fk
LnB5CkBAIC0zOCw2ICszOCw3IEBAIGZyb20gb3B0cGFyc2UgaW1wb3J0IG1ha2Vfb3B0aW9uCiBp
bXBvcnQgd2Via2l0cHkuc3RlcHMgYXMgc3RlcHMKIAogZnJvbSB3ZWJraXRweS5idWd6aWxsYSBp
bXBvcnQgcGFyc2VfYnVnX2lkCitmcm9tIHdlYmtpdHB5LmNvbW1hbmRzLmFic3RyYWN0ZGlmZmNv
bW1hbmQgaW1wb3J0IEFic3RyYWN0RGlmZkNvbW1hbmQKIGZyb20gd2Via2l0cHkuY29tbWFuZHMu
YWJzdHJhY3RzZXF1ZW5jZWRjb21tYW5kIGltcG9ydCBBYnN0cmFjdFNlcXVlbmNlZENvbW1hbmQK
IGZyb20gd2Via2l0cHkuY29tbWVudHMgaW1wb3J0IGJ1Z19jb21tZW50X2Zyb21fc3ZuX3Jldmlz
aW9uCiBmcm9tIHdlYmtpdHB5LmNvbW1pdHRlcnMgaW1wb3J0IENvbW1pdHRlckxpc3QKQEAgLTk5
LDE3ICsxMDAsNyBAQCBjbGFzcyBPYnNvbGV0ZUF0dGFjaG1lbnRzKEFic3RyYWN0U2VxdWVuY2Vk
Q29tbWFuZCk6CiAgICAgICAgIHJldHVybiB7ICJidWdfaWQiIDogYXJnc1swXSB9CiAKIAotY2xh
c3MgQWJzdHJhY3RQYXRjaFVwbG9hZGluZ0NvbW1hbmQoQWJzdHJhY3RTZXF1ZW5jZWRDb21tYW5k
KToKLSAgICBkZWYgX2J1Z19pZChzZWxmLCBhcmdzLCB0b29sLCBzdGF0ZSk6Ci0gICAgICAgICMg
UGVyZmVyIGEgYnVnIGlkIHBhc3NlZCBhcyBhbiBhcmd1bWVudCBvdmVyIGEgYnVnIHVybCBpbiB0
aGUgZGlmZiAoaS5lLiBDaGFuZ2VMb2dzKS4KLSAgICAgICAgYnVnX2lkID0gYXJncyBhbmQgYXJn
c1swXQotICAgICAgICBpZiBub3QgYnVnX2lkOgotICAgICAgICAgICAgc3RhdGVbImRpZmYiXSA9
IHRvb2wuc2NtKCkuY3JlYXRlX3BhdGNoKCkKLSAgICAgICAgICAgIGJ1Z19pZCA9IHBhcnNlX2J1
Z19pZChzdGF0ZVsiZGlmZiJdKQotICAgICAgICByZXR1cm4gYnVnX2lkCi0KLQotY2xhc3MgUG9z
dChBYnN0cmFjdFBhdGNoVXBsb2FkaW5nQ29tbWFuZCk6CitjbGFzcyBQb3N0KEFic3RyYWN0RGlm
ZkNvbW1hbmQpOgogICAgIG5hbWUgPSAicG9zdCIKICAgICBoZWxwX3RleHQgPSAiQXR0YWNoIHRo
ZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5IGRpZmYgdG8gYSBidWcgYXMgYSBwYXRjaCBmaWxl
IgogICAgIGFyZ3VtZW50X25hbWVzID0gIltCVUdJRF0iCkBAIC0xMjIsOCArMTEzLDcgQEAgY2xh
c3MgUG9zdChBYnN0cmFjdFBhdGNoVXBsb2FkaW5nQ29tbWFuZCk6CiAgICAgXQogCiAgICAgZGVm
IF9wcmVwYXJlX3N0YXRlKHNlbGYsIG9wdGlvbnMsIGFyZ3MsIHRvb2wpOgotICAgICAgICBzdGF0
ZSA9IHt9Ci0gICAgICAgIHN0YXRlWyJidWdfaWQiXSA9IHNlbGYuX2J1Z19pZChhcmdzLCB0b29s
LCBzdGF0ZSkKKyAgICAgICAgc3RhdGUgPSB7ICJidWdfaWQiIDogc2VsZi5fYnVnX2lkKGFyZ3Ms
IHRvb2wpIH0KICAgICAgICAgaWYgbm90IHN0YXRlWyJidWdfaWQiXToKICAgICAgICAgICAgIGVy
cm9yKCJObyBidWcgaWQgcGFzc2VkIGFuZCBubyBidWcgdXJsIGZvdW5kIGluIGRpZmYsIGNhbid0
IHBvc3QuIikKICAgICAgICAgcmV0dXJuIHN0YXRlCkBAIC0xNDUsNyArMTM1LDcgQEAgY2xhc3Mg
UHJlcGFyZShBYnN0cmFjdFNlcXVlbmNlZENvbW1hbmQpOgogICAgICAgICByZXR1cm4geyAiYnVn
X2lkIiA6IGJ1Z19pZCB9CiAKIAotY2xhc3MgVXBsb2FkKEFic3RyYWN0UGF0Y2hVcGxvYWRpbmdD
b21tYW5kKToKK2NsYXNzIFVwbG9hZChBYnN0cmFjdERpZmZDb21tYW5kKToKICAgICBuYW1lID0g
InVwbG9hZCIKICAgICBoZWxwX3RleHQgPSAiQXV0b21hdGVzIHRoZSBwcm9jZXNzIG9mIHVwbG9h
ZGluZyBhIHBhdGNoIGZvciByZXZpZXciCiAgICAgYXJndW1lbnRfbmFtZXMgPSAiW0JVR0lEXSIK
QEAgLTE2OSw4ICsxNTksNyBAQCBjbGFzcyBVcGxvYWQoQWJzdHJhY3RQYXRjaFVwbG9hZGluZ0Nv
bW1hbmQpOgogICAgIGNvbW1hbmQgaW4gdGhlIFBBR0VSIGVudmlyb25tZW50IHZhcmlhYmxlLiIi
IgogCiAgICAgZGVmIF9wcmVwYXJlX3N0YXRlKHNlbGYsIG9wdGlvbnMsIGFyZ3MsIHRvb2wpOgot
ICAgICAgICBzdGF0ZSA9IHt9Ci0gICAgICAgIHN0YXRlWyJidWdfaWQiXSA9IHNlbGYuX2J1Z19p
ZChhcmdzLCB0b29sLCBzdGF0ZSkKKyAgICAgICAgc3RhdGUgPSB7ICJidWdfaWQiIDogc2VsZi5f
YnVnX2lkKGFyZ3MsIHRvb2wpIH0KICAgICAgICAgcmV0dXJuIHN0YXRlCiAKIApkaWZmIC0tZ2l0
IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9tb2NrX2J1Z3ppbGxhdG9vbC5weSBiL1dl
YktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbW9ja19idWd6aWxsYXRvb2wucHkKaW5kZXggZjgz
OTJhYS4uZWU1YTNjOCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9t
b2NrX2J1Z3ppbGxhdG9vbC5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L21v
Y2tfYnVnemlsbGF0b29sLnB5CkBAIC0xNTYsMTEgKzE1NiwxNCBAQCBjbGFzcyBNb2NrU0NNKE1v
Y2spOgogICAgIGRlZiBjb21taXRfaWRzX2Zyb21fY29tbWl0aXNoX2FyZ3VtZW50cyhzZWxmLCBh
cmdzKToKICAgICAgICAgcmV0dXJuIFsiQ29tbWl0aXNoMSIsICJDb21taXRpc2gyIl0KIAorICAg
IGRlZiBjb21taXRfbWVzc2FnZV9mb3JfdGhpc19jb21taXQoc2VsZik6CisgICAgICAgIHJldHVy
biBDb21taXRNZXNzYWdlKFsiQ29tbWl0TWVzc2FnZTEiLCAiaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTkzIl0pCisKICAgICBkZWYgY29tbWl0X21lc3NhZ2VfZm9yX2xv
Y2FsX2NvbW1pdChzZWxmLCBjb21taXRfaWQpOgogICAgICAgICBpZiBjb21taXRfaWQgPT0gIkNv
bW1pdGlzaDEiOgotICAgICAgICAgICAgcmV0dXJuIENvbW1pdE1lc3NhZ2UoIkNvbW1pdE1lc3Nh
Z2UxXG5odHRwczovL2J1Z3MuZXhhbXBsZS5vcmcvc2hvd19idWcuY2dpP2lkPTQyXG4iKQorICAg
ICAgICAgICAgcmV0dXJuIENvbW1pdE1lc3NhZ2UoWyJDb21taXRNZXNzYWdlMSIsICJodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIiXSkKICAgICAgICAgaWYgY29tbWl0
X2lkID09ICJDb21taXRpc2gyIjoKLSAgICAgICAgICAgIHJldHVybiBDb21taXRNZXNzYWdlKCJD
b21taXRNZXNzYWdlMlxuaHR0cHM6Ly9idWdzLmV4YW1wbGUub3JnL3Nob3dfYnVnLmNnaT9pZD03
NVxuIikKKyAgICAgICAgICAgIHJldHVybiBDb21taXRNZXNzYWdlKFsiQ29tbWl0TWVzc2FnZTIi
LCAiaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc1Il0pCiAgICAgICAg
IHJhaXNlIEV4Y2VwdGlvbigiQm9ndXMgY29tbWl0X2lkIGluIGNvbW1pdF9tZXNzYWdlX2Zvcl9s
b2NhbF9jb21taXQuIikKIAogICAgIGRlZiBjcmVhdGVfcGF0Y2hfZnJvbV9sb2NhbF9jb21taXQo
c2VsZiwgY29tbWl0X2lkKToK
</data>

          </attachment>
      

    </bug>

</bugzilla>