<?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>32834</bug_id>
          
          <creation_ts>2009-12-21 12:09:42 -0800</creation_ts>
          <short_desc>svn-apply should handle git patches with similarity index, rename and copy directives</short_desc>
          <delta_ts>2010-05-08 19:54:11 -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>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>38628</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="David Kilzer (:ddkilzer)">ddkilzer</reporter>
          <assigned_to name="Chris Jerdonek">cjerdonek</assigned_to>
          <cc>abarth</cc>
    
    <cc>cjerdonek</cc>
    
    <cc>dbates</cc>
    
    <cc>eric</cc>
    
    <cc>kenneth</cc>
    
    <cc>ossy</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>174032</commentid>
    <comment_count>0</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2009-12-21 12:09:42 -0800</bug_when>
    <thetext>* SUMMARY
If you use the &quot;[diff] renames = copies&quot; git config setting (or the --find-copies-harder switch) with git diff, git will include information in the patch that hints at the history of the code and may significantly reduce the size of the patch.  While git uses only heuristics to accomplish this, it would be nice if svn-apply understood these directives so that it could map them to equivalent svn commands.

* EXAMPLES
$ git mv Makefile NMakefile$ git diff --find-copies-harder HEAD
diff --git a/Makefile b/NMakefile
similarity index 100%
rename from Makefile
rename to NMakefile

$ git diff --find-copies-harder HEAD
diff --git a/Makefile b/NMakefile
similarity index 100%
copy from Makefile
copy to NMakefile

$ git mv WebCore/ChangeLog WebCore/ChangeLog-2009-12-21
$ vi WebCore/ChangeLog-2009-12-21
$ git add WebCore/ChangeLog-2009-12-21
$ git diff --find-copies-harder --cached
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog-2009-12-21
similarity index 99%
rename from WebCore/ChangeLog
rename to WebCore/ChangeLog-2009-12-21
index ab18e51..8cb2b03 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog-2009-12-21
@@ -72516,7 +72516,7 @@ form controls that have different validity states.
         * bindings/v8/custom/V8CustomBinding.h:
         * bindings/v8/custom/V8HTMLDataGridElementCustom.cpp: Added.
 
-2009-06-24  David Kilzer  &lt;ddkilzer@apple.com&gt;
+2009-06-24  David Kilzer  &lt;ddkilzer@webkit.org&gt;
 
         Build fixes for ENABLE(PLUGIN_PROXY_FOR_VIDEO)
 

NOTE: For small files (under a certain number of lines), the rename detection doesn&apos;t work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179971</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-01-12 13:52:16 -0800</bug_when>
    <thetext>I have a general question about our approach to improving support for Git.

For the purpose of submitting Git patches, it seems there can be (at least) two approaches:

(1) Make a &quot;create-patch&quot; script that supports creating a patch in standard format from both SVN and Git.

(2) Make svn-apply and svn-unapply support both Git and SVN format.

(Combining both approaches may also make sense -- e.g. to address the issue in this bug report.)

From what I can tell, we currently do (2) to some extent, but not (1).  Has anyone given much thought to these approaches?  Are there any reasons to prefer (2) over (1) or vice versa, or to not do (1)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>180244</commentid>
    <comment_count>2</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2010-01-13 08:36:20 -0800</bug_when>
    <thetext>(In reply to comment #1)
&gt; For the purpose of submitting Git patches, it seems there can be (at least) two
&gt; approaches:
&gt; 
&gt; (1) Make a &quot;create-patch&quot; script that supports creating a patch in standard
&gt; format from both SVN and Git.
&gt; 
&gt; (2) Make svn-apply and svn-unapply support both Git and SVN format.
&gt; 
&gt; (Combining both approaches may also make sense -- e.g. to address the
&gt; issue in this bug report.)
&gt; 
&gt; From what I can tell, we currently do (2) to some extent, but not (1).  Has
&gt; anyone given much thought to these approaches?  Are there any reasons to
&gt; prefer (2) over (1) or vice versa, or to not do (1)?

I think (2) is a higher priority than (1) because git&apos;s own diff subcommand (with the --binary switch) is sufficient to capture all of the changes in a patch.

Because the project&apos;s source repository is subversion (with a moderate number of developers using git), I think it&apos;s slightly more important that git patches work with the tools to apply patches to an svn working directory than vice-versa.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185422</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-01-28 04:17:52 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (In reply to comment #1)
&gt; &gt; For the purpose of submitting Git patches, it seems there can be (at least) two
&gt; &gt; approaches:
&gt; &gt; 
&gt; &gt; (1) Make a &quot;create-patch&quot; script that supports creating a patch in standard
&gt; &gt; format from both SVN and Git.
&gt; &gt; 
&gt; &gt; (2) Make svn-apply and svn-unapply support both Git and SVN format.
&gt; &gt; 
&gt; &gt; (Combining both approaches may also make sense -- e.g. to address the
&gt; &gt; issue in this bug report.)
&gt; &gt; 
&gt; &gt; From what I can tell, we currently do (2) to some extent, but not (1).  Has
&gt; &gt; anyone given much thought to these approaches?  Are there any reasons to
&gt; &gt; prefer (2) over (1) or vice versa, or to not do (1)?
&gt; 
&gt; I think (2) is a higher priority than (1) because git&apos;s own diff subcommand
&gt; (with the --binary switch) is sufficient to capture all of the changes in a
&gt; patch.

I gave an example here of a case where the &quot;git diff&quot; command doesn&apos;t generate a patch in the standard format (at least with the way that I was running it):

https://lists.webkit.org/pipermail/webkit-dev/2010-January/011495.html

The example occurred because &quot;git diff&quot; doesn&apos;t run fixChangeLogPatch.

&gt; Because the project&apos;s source repository is subversion (with a moderate number
&gt; of developers using git), I think it&apos;s slightly more important that git patches
&gt; work with the tools to apply patches to an svn working directory than
&gt; vice-versa.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185482</commentid>
    <comment_count>4</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2010-01-28 08:08:58 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; (In reply to comment #1)
&gt; &gt; &gt; For the purpose of submitting Git patches, it seems there can be (at least) two
&gt; &gt; &gt; approaches:
&gt; &gt; &gt; 
&gt; &gt; &gt; (1) Make a &quot;create-patch&quot; script that supports creating a patch in standard
&gt; &gt; &gt; format from both SVN and Git.
&gt; &gt; &gt; 
&gt; &gt; &gt; (2) Make svn-apply and svn-unapply support both Git and SVN format.
&gt; &gt; &gt; 
&gt; &gt; &gt; (Combining both approaches may also make sense -- e.g. to address the
&gt; &gt; &gt; issue in this bug report.)
&gt; &gt; &gt; 
&gt; &gt; &gt; From what I can tell, we currently do (2) to some extent, but not (1).  Has
&gt; &gt; &gt; anyone given much thought to these approaches?  Are there any reasons to
&gt; &gt; &gt; prefer (2) over (1) or vice versa, or to not do (1)?
&gt; &gt; 
&gt; &gt; I think (2) is a higher priority than (1) because git&apos;s own diff subcommand
&gt; &gt; (with the --binary switch) is sufficient to capture all of the changes in a
&gt; &gt; patch.
&gt; 
&gt; I gave an example here of a case where the &quot;git diff&quot; command doesn&apos;t generate
&gt; a patch in the standard format (at least with the way that I was running it):
&gt; 
&gt; https://lists.webkit.org/pipermail/webkit-dev/2010-January/011495.html
&gt; 
&gt; The example occurred because &quot;git diff&quot; doesn&apos;t run fixChangeLogPatch.

It&apos;d be great if you could post the example here.  I think I know what you&apos;re referring to, but it&apos;s always best to have a concrete example.

I don&apos;t think this has been an issue in practice because:

- There is no &quot;loss of information&quot; if the unaltered ChangeLog patch is not fixed up, and it may optionally be fixed up at any point in the future.  All the pieces are there, just not in the optimal order for applying it to the top of the ChangeLog file.

- The commit queue uses svn-apply to apply patches which fixes up the ChangeLog patch before applying it.  Individual contributors may also be using svn-apply to apply patches, or they may be using resolve-ChangeLogs afterwards.

- Even in the case where the patch is completely rejected, there&apos;s still enough information in the *.rej file to reconstruct the original patch, fix it up, then apply it.  (I don&apos;t think fixChangeLogPatch() works with non-unified diff format, though, so this may not work properly today.)

Having said that, if you feel that (1) is more important than (2), then I&apos;d focus on that first.

For whatever reason, this issue hasn&apos;t come up much.  Maybe that&apos;s because the ChangeLog patches end up getting applied successfully to the middle of the ChangeLog file instead of at the beginning, but look &quot;okay&quot; otherwise, and no one has noticed/complained about it yet.  (I think I&apos;ve seen this behavior in the commit queue, but I though it was due to something else at the time.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185489</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-01-28 08:24:12 -0800</bug_when>
    <thetext>(In reply to comment #4)

&gt; It&apos;d be great if you could post the example here.  I think I know what you&apos;re
&gt; referring to, but it&apos;s always best to have a concrete example.

Here is a concrete example (same submitter on same day):

https://bugs.webkit.org/show_bug.cgi?id=34249#c1

https://bug-34249-attachments.webkit.org/attachment.cgi?id=47606

I needed to manually commit it since I had to make changes anyways.

&gt; I don&apos;t think this has been an issue in practice because:

I recognize that this might be totally innocuous, but just wanted to raise it as something else that can come up.  I want to avoid having to use wrapper scripts if possible, like you.

&gt; - There is no &quot;loss of information&quot; if the unaltered ChangeLog patch is not
&gt; fixed up, and it may optionally be fixed up at any point in the future.  All
&gt; the pieces are there, just not in the optimal order for applying it to the top
&gt; of the ChangeLog file.
&gt; 
&gt; - The commit queue uses svn-apply to apply patches which fixes up the ChangeLog
&gt; patch before applying it.  Individual contributors may also be using svn-apply
&gt; to apply patches, or they may be using resolve-ChangeLogs afterwards.

If this is the case, it seems like it might not be necessary to call fixChangeLogPatch in svn-create-patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185512</commentid>
    <comment_count>6</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2010-01-28 08:51:56 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; It&apos;d be great if you could post the example here.  I think I know what you&apos;re
&gt; &gt; referring to, but it&apos;s always best to have a concrete example.
&gt; 
&gt; Here is a concrete example (same submitter on same day):
&gt; 
&gt; https://bugs.webkit.org/show_bug.cgi?id=34249#c1
&gt; 
&gt; https://bug-34249-attachments.webkit.org/attachment.cgi?id=47606
&gt; 
&gt; I needed to manually commit it since I had to make changes anyways.

This one is relatively minor.  If you have a patch series with the same date/author/email line followed by the same &quot;Reviewed by NOBODY(OOPS!).&quot; line, then you&apos;ll have even more of an offset.  (FWIW, this is another reason I like bug titles before the &quot;Reviewed by&quot; line, but that&apos;s really neither here nor there.)

&gt; &gt; - There is no &quot;loss of information&quot; if the unaltered ChangeLog patch is not
&gt; &gt; fixed up, and it may optionally be fixed up at any point in the future.  All
&gt; &gt; the pieces are there, just not in the optimal order for applying it to the top
&gt; &gt; of the ChangeLog file.
&gt; &gt; 
&gt; &gt; - The commit queue uses svn-apply to apply patches which fixes up the ChangeLog
&gt; &gt; patch before applying it.  Individual contributors may also be using svn-apply
&gt; &gt; to apply patches, or they may be using resolve-ChangeLogs afterwards.
&gt; 
&gt; If this is the case, it seems like it might not be necessary to call
&gt; fixChangeLogPatch in svn-create-patch.

It&apos;s nice to clean up the ChangeLog patches, though, as long as you&apos;re using svn-create-patch.  The corrected patch shows the intent of the ChangeLog patch much better than the uncorrected version.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185523</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-01-28 09:07:21 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; This one is relatively minor.  If you have a patch series with the same
&gt; date/author/email line followed by the same &quot;Reviewed by NOBODY(OOPS!).&quot; line,
&gt; then you&apos;ll have even more of an offset.  (FWIW, this is another reason I like
&gt; bug titles before the &quot;Reviewed by&quot; line, but that&apos;s really neither here nor
&gt; there.)

Have you considered any schemes to break the symmetry even more cleanly -- e.g. including the time in the date stamp?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185528</commentid>
    <comment_count>8</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2010-01-28 09:44:14 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #6)
&gt; &gt; This one is relatively minor.  If you have a patch series with the same
&gt; &gt; date/author/email line followed by the same &quot;Reviewed by NOBODY(OOPS!).&quot; line,
&gt; &gt; then you&apos;ll have even more of an offset.  (FWIW, this is another reason I like
&gt; &gt; bug titles before the &quot;Reviewed by&quot; line, but that&apos;s really neither here nor
&gt; &gt; there.)
&gt; 
&gt; Have you considered any schemes to break the symmetry even more cleanly -- e.g.
&gt; including the time in the date stamp?

No, I haven&apos;t.  I don&apos;t think that a timestamp would add any useful information to the date/name/email line, and it would complicate the parsing of that line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220845</commentid>
    <comment_count>9</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-05-04 16:00:03 -0700</bug_when>
    <thetext>I was a bit surprised after comparing the behavior of the -C, -M, and
--find-copies-harder options of git-diff.

It seems that in some cases the --find-copies-harder option will do a worse
job of detecting renames than the -C and -M options (which are less
expensive at least for a smaller number of changed files).  See below, for
example (it&apos;s the last of the three scenarios where the difference can
be observed).

# Make a copy.
cp Makefile NMakefile
git add NMakefile
git commit -a

git diff --find-copies-harder HEAD^  # detects the copy
git diff -C HEAD^                    # does not detect the copy

# Turn the copy into a move.
rm Makefile
git commit -a --amend

git diff --find-copies-harder HEAD^  # detects the rename
git diff -C HEAD^                    # detects the rename

# Turn the move into a move-with-changes.
echo &quot;more content&quot; &gt;&gt; NMakefile 
git commit -a --amend

git diff --find-copies-harder HEAD^  # does not detect the rename
git diff -C HEAD^                    # does detect the rename (output is below)
git diff -M HEAD^                    # same result as -C
diff --git a/Makefile b/NMakefile
similarity index 99%
rename from Makefile
rename to NMakefile
index 1e50d1d..1459d21 100644
--- a/Makefile
+++ b/NMakefile
@@ -15,3 +15,4 @@ release r deployment dep deploy:
 clean:
        @for dir in $(MODULES); do ${MAKE} $@ -C $$dir; exit_status=$$?; \
        if [ $$exit_status -ne 0 ]; then exit $$exit_status; fi; done
+test


From the git-diff manual, this seems to be because --find-copies-hard
searches for potential sources by examining *only* those files that haven&apos;t
changed, and not both files that have and haven&apos;t changed.

Consequently, it may make sense in more cases to prefer using -C (or -M)
over --find-copies-harder.  This is in part because I imagine moves and
moves-with-changes are more common for contributors than straight copying
of files (without also deleting the source).

Also, based on the above, it looks like it might not be possible to
detect all copies and moves-with-changes for some diffs using a single
&quot;git-diff&quot; command.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222704</commentid>
    <comment_count>10</comment_count>
      <attachid>55434</attachid>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-05-07 16:57:34 -0700</bug_when>
    <thetext>Created attachment 55434
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222706</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-07 17:00:56 -0700</bug_when>
    <thetext>Attachment 55434 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
WebKitTools/Scripts/webkitperl/VCSUtils_unittest/parseSvnDiffHeader.pl:122:  Line contains tab character.  [whitespace/tab] [5]
WebKitTools/Scripts/webkitperl/VCSUtils_unittest/parseSvnDiffHeader.pl:132:  Line contains tab character.  [whitespace/tab] [5]
Total errors found: 2 in 6 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222707</commentid>
    <comment_count>12</comment_count>
      <attachid>55435</attachid>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-05-07 17:01:38 -0700</bug_when>
    <thetext>Created attachment 55435
Proposed patch 2

Cleaned up ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222712</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-07 17:07:05 -0700</bug_when>
    <thetext>Attachment 55435 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
WebKitTools/Scripts/webkitperl/VCSUtils_unittest/parseSvnDiffHeader.pl:122:  Line contains tab character.  [whitespace/tab] [5]
WebKitTools/Scripts/webkitperl/VCSUtils_unittest/parseSvnDiffHeader.pl:132:  Line contains tab character.  [whitespace/tab] [5]
Total errors found: 2 in 6 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222956</commentid>
    <comment_count>14</comment_count>
      <attachid>55435</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2010-05-08 18:40:42 -0700</bug_when>
    <thetext>Comment on attachment 55435
Proposed patch 2

We should update the documentation of sub parseDiff to reflect the fact that we now return an array.

Looks sane.

r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222958</commentid>
    <comment_count>15</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-05-08 19:54:11 -0700</bug_when>
    <thetext>Committed:

http://trac.webkit.org/changeset/59044</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55434</attachid>
            <date>2010-05-07 16:57:34 -0700</date>
            <delta_ts>2010-05-07 17:01:38 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>_patch-32834-1.diff</filename>
            <type>text/plain</type>
            <size>22143</size>
            <attacher name="Chris Jerdonek">cjerdonek</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA5NzQ4OTM5Li41ZjQ4NzE0IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzggQEAKKzIwMTAtMDUt
MDcgIENocmlzIEplcmRvbmVrICA8Y2plcmRvbmVrQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgc3VwcG9ydCB0byBzdm4t
YXBwbHkgZm9yIGdpdCByZW5hbWVzLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0zMjgzNAorCisgICAgICAgICogU2NyaXB0cy9WQ1NVdGlscy5wbToK
KyAgICAgICAgICAtIEFkZGVkIHRvIHBhcnNlR2l0RGlmZkhlYWRlcigpIHN1cHBvcnQgZm9yIHJl
bmFtZXMgYW5kIHNpbWlsYXJpdHkKKyAgICAgICAgICAgIGluZGV4IGxlc3MgdGhhbiAxMDAlLgor
ICAgICAgICAgIC0gQWRkZWQgdG8gcGFyc2VEaWZmKCkgc3VwcG9ydCBmb3IgcHJvY2Vzc2luZyBy
ZW5hbWVzLCByZW5hbWVzIHdpdGgKKyAgICAgICAgICAgIGNoYW5nZXMsIGFuZCBjb3BpZXMgd2l0
aCBjaGFuZ2VzLgorICAgICAgICAgIC0gQWRkZWQgdG8gcGFyc2VQYXRjaCgpIHRoZSBhYmlsaXR5
IHRvIHByb2Nlc3MgbXVsdGlwbGUgcmV0dXJuCisgICAgICAgICAgICB2YWx1ZXMgZnJvbSBwYXJz
ZURpZmYoKS4KKworICAgICAgICAqIFNjcmlwdHMvc3ZuLWFwcGx5OgorICAgICAgICAgIC0gQWRk
ZWQgdG8gcGF0Y2goKSB0aGUgYWJpbGl0eSB0byBwcm9jZXNzIGRpZmYgaGFzaGVzIHdpdGggdGhl
CisgICAgICAgICAgICBpc0RlbGV0aW9uIGtleS12YWx1ZSBzZXQuCisKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHBlcmwvVkNTVXRpbHNfdW5pdHRlc3QvcGFyc2VEaWZmLnBsOgorICAgICAgICAg
IC0gVXBkYXRlZCB0aGUgdW5pdCB0ZXN0cyBhcyBuZWNlc3NhcnkuCisgICAgICAgICAgLSBBZGRl
ZCB1bml0IHRlc3RzIGZvciByZW5hbWUgd2l0aCBzaW1pbGFyaXR5IGluZGV4IDEwMCUsCisgICAg
ICAgICAgICByZW5hbWUgd2l0aCBzaW1pbGFyaXR5IGluZGV4IDwgMTAwJSwgYW5kIHJlbmFtZSB3
aXRoIGEgY2hhbmdlCisgICAgICAgICAgICB0byB0aGUgZXhlY3V0YWJsZSBiaXQuCisgICAgICAg
ICogU2NyaXB0cy93ZWJraXRwZXJsL1ZDU1V0aWxzX3VuaXR0ZXN0L3BhcnNlR2l0RGlmZkhlYWRl
ci5wbDoKKyAgICAgICAgICAtIEFkZGVkIHVuaXQgdGVzdHMgZm9yIHJlbmFtZSB3aXRoIHNpbWls
YXJpdHkgaW5kZXggMTAwJSwKKyAgICAgICAgICAgIHJlbmFtZSB3aXRoIHNpbWlsYXJpdHkgaW5k
ZXggPCAxMDAlLCBhbmQgcmVuYW1lIHdpdGggYSBjaGFuZ2UKKyAgICAgICAgICAgIHRvIHRoZSBl
eGVjdXRhYmxlIGJpdC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHBlcmwvVkNTVXRpbHNfdW5p
dHRlc3QvcGFyc2VQYXRjaC5wbDoKKyAgICAgICAgICAtIFVwZGF0ZWQgdGhlIHVuaXQgdGVzdHMg
YXMgbmVjZXNzYXJ5LgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cGVybC9WQ1NVdGlsc191bml0
dGVzdC9wYXJzZVN2bkRpZmZIZWFkZXIucGw6CisgICAgICAgICAgLSBTaW1wbGlmaWVkIHRoZSBj
YXJyaWFnZS1yZXR1cm4gdW5pdCB0ZXN0IHRvIG1vcmUgbmFycm93bHkgdGVzdAorICAgICAgICAg
ICAgb25seSBjYXJyaWFnZSByZXR1cm5zLgorCiAyMDEwLTA1LTA2ICBTaGVyaWZmIEJvdCAgPHdl
YmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5n
IG91dCByNTg5MzMuCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL1ZDU1V0aWxzLnBt
IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9WQ1NVdGlscy5wbQppbmRleCA3NzdmZTdmLi5iNjI5ODNm
IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL1ZDU1V0aWxzLnBtCisrKyBiL1dlYktp
dFRvb2xzL1NjcmlwdHMvVkNTVXRpbHMucG0KQEAgLTQyNSwxNCArNDI1LDIxIEBAIHN1YiBpc0V4
ZWN1dGFibGUoJCkKICMKICMgUmV0dXJucyAoJGhlYWRlckhhc2hSZWYsICRsYXN0UmVhZExpbmUp
OgogIyAgICRoZWFkZXJIYXNoUmVmOiBhIGhhc2ggcmVmZXJlbmNlIHJlcHJlc2VudGluZyBhIGRp
ZmYgaGVhZGVyLCBhcyBmb2xsb3dzLS0KLSMgICAgIGNvcGllZEZyb21QYXRoOiB0aGUgcGF0aCBm
cm9tIHdoaWNoIHRoZSBmaWxlIHdhcyBjb3BpZWQgaWYgdGhlIGRpZmYKLSMgICAgICAgICAgICAg
ICAgICAgICBpcyBhIGNvcHkuCisjICAgICBjb3BpZWRGcm9tUGF0aDogdGhlIHBhdGggZnJvbSB3
aGljaCB0aGUgZmlsZSB3YXMgY29waWVkIG9yIG1vdmVkIGlmCisjICAgICAgICAgICAgICAgICAg
ICAgdGhlIGRpZmYgaXMgYSBjb3B5IG9yIG1vdmUuCiAjICAgICBleGVjdXRhYmxlQml0RGVsdGE6
IHRoZSB2YWx1ZSAxIG9yIC0xIGlmIHRoZSBleGVjdXRhYmxlIGJpdCB3YXMgYWRkZWQgb3IKICMg
ICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3ZlZCwgcmVzcGVjdGl2ZWx5LiAgTmV3IGFuZCBk
ZWxldGVkIGZpbGVzIGhhdmUKICMgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcyB2YWx1ZSBv
bmx5IGlmIHRoZSBmaWxlIGlzIGV4ZWN1dGFibGUsIGluIHdoaWNoCiAjICAgICAgICAgICAgICAg
ICAgICAgICAgIGNhc2UgdGhlIHZhbHVlIGlzIDEgYW5kIC0xLCByZXNwZWN0aXZlbHkuCiAjICAg
ICBpbmRleFBhdGg6IHRoZSBwYXRoIG9mIHRoZSB0YXJnZXQgZmlsZS4KICMgICAgIGlzQmluYXJ5
OiB0aGUgdmFsdWUgMSBpZiB0aGUgZGlmZiBpcyBmb3IgYSBiaW5hcnkgZmlsZS4KKyMgICAgIGlz
Q29weVdpdGhDaGFuZ2VzOiB0aGUgdmFsdWUgMSBpZiB0aGUgZmlsZSB3YXMgY29waWVkIG9yIG1v
dmVkIGFuZAorIyAgICAgICAgICAgICAgICAgICAgICAgIHRoZSB0YXJnZXQgZmlsZSB3YXMgY2hh
bmdlZCBpbiBzb21lIHdheSBhZnRlciBiZWluZworIyAgICAgICAgICAgICAgICAgICAgICAgIGNv
cGllZCBvciBtb3ZlZCAoZS5nLiBpZiBpdHMgY29udGVudHMgb3IgZXhlY3V0YWJsZQorIyAgICAg
ICAgICAgICAgICAgICAgICAgIGJpdCB3ZXJlIGNoYW5nZWQpLgorIyAgICAgc2hvdWxkRGVsZXRl
U291cmNlOiB0aGUgdmFsdWUgMSBpZiB0aGUgZmlsZSB3YXMgY29waWVkIG9yIG1vdmVkIGFuZAor
IyAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgc291cmNlIGZpbGUgd2FzIGRlbGV0ZWQgLS0g
aS5lLiBpZiB0aGUgY29weQorIyAgICAgICAgICAgICAgICAgICAgICAgICB3YXMgYWN0dWFsbHkg
YSBtb3ZlLgogIyAgICAgc3ZuQ29udmVydGVkVGV4dDogdGhlIGhlYWRlciB0ZXh0IHdpdGggc29t
ZSBsaW5lcyBjb252ZXJ0ZWQgdG8gU1ZOCiAjICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXQu
ICBHaXQtc3BlY2lmaWMgbGluZXMgYXJlIHByZXNlcnZlZC4KICMgICAkbGFzdFJlYWRMaW5lOiB0
aGUgbGluZSBsYXN0IHJlYWQgZnJvbSAkZmlsZUhhbmRsZS4KQEAgLTQ2MCw3ICs0NjcsOCBAQCBz
dWIgcGFyc2VHaXREaWZmSGVhZGVyKCQkKQogICAgIG15ICRpc0JpbmFyeTsKICAgICBteSAkbmV3
RXhlY3V0YWJsZUJpdCA9IDA7CiAgICAgbXkgJG9sZEV4ZWN1dGFibGVCaXQgPSAwOwotICAgIG15
ICRzaW1pbGFyaXR5SW5kZXg7CisgICAgbXkgJHNob3VsZERlbGV0ZVNvdXJjZSA9IDA7CisgICAg
bXkgJHNpbWlsYXJpdHlJbmRleCA9IDA7CiAgICAgbXkgJHN2bkNvbnZlcnRlZFRleHQ7CiAgICAg
d2hpbGUgKDEpIHsKICAgICAgICAgIyBUZW1wb3JhcmlseSBzdHJpcCBvZmYgYW55IGVuZC1vZi1s
aW5lIGNoYXJhY3RlcnMgdG8gc2ltcGxpZnkKQEAgLTQ4MSw2ICs0ODksMTUgQEAgc3ViIHBhcnNl
R2l0RGlmZkhlYWRlcigkJCkKICAgICAgICAgICAgICRzaW1pbGFyaXR5SW5kZXggPSAkMTsKICAg
ICAgICAgfSBlbHNpZiAoL15jb3B5IGZyb20gKFxTKykvKSB7CiAgICAgICAgICAgICAkY29waWVk
RnJvbVBhdGggPSAkMTsKKyAgICAgICAgfSBlbHNpZiAoL15yZW5hbWUgZnJvbSAoXFMrKS8pIHsK
KyAgICAgICAgICAgICMgRklYTUU6IFJlY29yZCB0aGlzIGFzIGEgbW92ZSByYXRoZXIgdGhhbiBh
cyBhIGNvcHktYW5kLWRlbGV0ZS4KKyAgICAgICAgICAgICMgICAgICAgIFRoaXMgd2lsbCBzaW1w
bGlmeSBhZGRpbmcgcmVuYW1lIHN1cHBvcnQgdG8gc3ZuLXVuYXBwbHkuCisgICAgICAgICAgICAj
ICAgICAgICBPdGhlcndpc2UsIHRoZSBoYXNoIGZvciBhIGRlbGV0aW9uIHdvdWxkIGhhdmUgdG8g
a25vdworICAgICAgICAgICAgIyAgICAgICAgZXZlcnl0aGluZyBhYm91dCB0aGUgZmlsZSBiZWlu
ZyBkZWxldGVkIGluIG9yZGVyIHRvCisgICAgICAgICAgICAjICAgICAgICBzdXBwb3J0IHVuZG9p
bmcgaXRzZWxmLiAgUmVjb3JkaW5nIGFzIGEgbW92ZSB3aWxsIGFsc28KKyAgICAgICAgICAgICMg
ICAgICAgIHBlcm1pdCB1cyB0byB1c2UgInN2biBtb3ZlIiBhbmQgImdpdCBtb3ZlIi4KKyAgICAg
ICAgICAgICRjb3BpZWRGcm9tUGF0aCA9ICQxOworICAgICAgICAgICAgJHNob3VsZERlbGV0ZVNv
dXJjZSA9IDE7CiAgICAgICAgICMgVGhlICJnaXQgZGlmZiIgY29tbWFuZCBpbmNsdWRlcyBhIGxp
bmUgb2YgdGhlIGZvcm0gIkJpbmFyeSBmaWxlcwogICAgICAgICAjIDxwYXRoMT4gYW5kIDxwYXRo
Mj4gZGlmZmVyIiBpZiB0aGUgLS1iaW5hcnkgZmxhZyBpcyBub3QgdXNlZC4KICAgICAgICAgfSBl
bHNpZiAoL15CaW5hcnkgZmlsZXMgLyApIHsKQEAgLTUwMywxMCArNTIwLDEyIEBAIHN1YiBwYXJz
ZUdpdERpZmZIZWFkZXIoJCQpCiAKICAgICBteSAlaGVhZGVyOwogCi0gICAgJGhlYWRlcntjb3Bp
ZWRGcm9tUGF0aH0gPSAkY29waWVkRnJvbVBhdGggaWYgKCRjb3BpZWRGcm9tUGF0aCAmJiAkc2lt
aWxhcml0eUluZGV4ID09IDEwMCk7CisgICAgJGhlYWRlcntjb3BpZWRGcm9tUGF0aH0gPSAkY29w
aWVkRnJvbVBhdGggaWYgJGNvcGllZEZyb21QYXRoOwogICAgICRoZWFkZXJ7ZXhlY3V0YWJsZUJp
dERlbHRhfSA9ICRleGVjdXRhYmxlQml0RGVsdGEgaWYgJGV4ZWN1dGFibGVCaXREZWx0YTsKICAg
ICAkaGVhZGVye2luZGV4UGF0aH0gPSAkaW5kZXhQYXRoOwogICAgICRoZWFkZXJ7aXNCaW5hcnl9
ID0gJGlzQmluYXJ5IGlmICRpc0JpbmFyeTsKKyAgICAkaGVhZGVye2lzQ29weVdpdGhDaGFuZ2Vz
fSA9IDEgaWYgKCRjb3BpZWRGcm9tUGF0aCAmJiAoJHNpbWlsYXJpdHlJbmRleCAhPSAxMDAgfHwg
JGV4ZWN1dGFibGVCaXREZWx0YSkpOworICAgICRoZWFkZXJ7c2hvdWxkRGVsZXRlU291cmNlfSA9
ICRzaG91bGREZWxldGVTb3VyY2UgaWYgJHNob3VsZERlbGV0ZVNvdXJjZTsKICAgICAkaGVhZGVy
e3N2bkNvbnZlcnRlZFRleHR9ID0gJHN2bkNvbnZlcnRlZFRleHQ7CiAKICAgICByZXR1cm4gKFwl
aGVhZGVyLCAkXyk7CkBAIC03MzgsMTkgKzc1Nyw0MSBAQCBzdWIgcGFyc2VEaWZmKCQkKQogICAg
ICAgICAkc3ZuVGV4dCAuPSAkaGVhZGVySGFzaFJlZi0+e3N2bkNvbnZlcnRlZFRleHR9OwogICAg
IH0KIAotICAgIG15ICVkaWZmSGFzaFJlZjsKLSAgICAkZGlmZkhhc2hSZWZ7Y29waWVkRnJvbVBh
dGh9ID0gJGhlYWRlckhhc2hSZWYtPntjb3BpZWRGcm9tUGF0aH0gaWYgJGhlYWRlckhhc2hSZWYt
Pntjb3BpZWRGcm9tUGF0aH07Ci0gICAgIyBGSVhNRTogQWRkIGV4ZWN1dGFibGVCaXREZWx0YSBh
cyBhIGtleS4KLSAgICAkZGlmZkhhc2hSZWZ7aW5kZXhQYXRofSA9ICRoZWFkZXJIYXNoUmVmLT57
aW5kZXhQYXRofTsKLSAgICAkZGlmZkhhc2hSZWZ7aXNCaW5hcnl9ID0gJGhlYWRlckhhc2hSZWYt
Pntpc0JpbmFyeX0gaWYgJGhlYWRlckhhc2hSZWYtPntpc0JpbmFyeX07Ci0gICAgJGRpZmZIYXNo
UmVme2lzR2l0fSA9ICRoZWFkZXJIYXNoUmVmLT57aXNHaXR9IGlmICRoZWFkZXJIYXNoUmVmLT57
aXNHaXR9OwotICAgICRkaWZmSGFzaFJlZntpc1N2bn0gPSAkaGVhZGVySGFzaFJlZi0+e2lzU3Zu
fSBpZiAkaGVhZGVySGFzaFJlZi0+e2lzU3ZufTsKLSAgICAkZGlmZkhhc2hSZWZ7c291cmNlUmV2
aXNpb259ID0gJGhlYWRlckhhc2hSZWYtPntzb3VyY2VSZXZpc2lvbn0gaWYgJGhlYWRlckhhc2hS
ZWYtPntzb3VyY2VSZXZpc2lvbn07Ci0gICAgIyBGSVhNRTogUmVtb3ZlIHRoZSBuZWVkIGZvciBz
dm5Db252ZXJ0ZWRUZXh0LiAgU2VlIHRoZSAlZGlmZkhhc2gKLSAgICAjICAgICAgICBjb2RlIGNv
bW1lbnRzIGFib3ZlIGZvciBtb3JlIGluZm9ybWF0aW9uLgotICAgICRkaWZmSGFzaFJlZntzdm5D
b252ZXJ0ZWRUZXh0fSA9ICRzdm5UZXh0OwotCi0gICAgcmV0dXJuIChcJWRpZmZIYXNoUmVmLCAk
bGluZSk7CisgICAgbXkgQGRpZmZIYXNoUmVmczsKKworICAgIGlmICgkaGVhZGVySGFzaFJlZi0+
e3Nob3VsZERlbGV0ZVNvdXJjZX0pIHsKKyAgICAgICAgbXkgJWRlbGV0aW9uSGFzaDsKKyAgICAg
ICAgJGRlbGV0aW9uSGFzaHtpbmRleFBhdGh9ID0gJGhlYWRlckhhc2hSZWYtPntjb3BpZWRGcm9t
UGF0aH07CisgICAgICAgICRkZWxldGlvbkhhc2h7aXNEZWxldGlvbn0gPSAxOworICAgICAgICBw
dXNoIEBkaWZmSGFzaFJlZnMsIFwlZGVsZXRpb25IYXNoOworICAgIH0KKyAgICBpZiAoJGhlYWRl
ckhhc2hSZWYtPntjb3BpZWRGcm9tUGF0aH0pIHsKKyAgICAgICAgbXkgJWNvcHlIYXNoOworICAg
ICAgICAkY29weUhhc2h7Y29waWVkRnJvbVBhdGh9ID0gJGhlYWRlckhhc2hSZWYtPntjb3BpZWRG
cm9tUGF0aH07CisgICAgICAgICRjb3B5SGFzaHtpbmRleFBhdGh9ID0gJGhlYWRlckhhc2hSZWYt
PntpbmRleFBhdGh9OworICAgICAgICAkY29weUhhc2h7c291cmNlUmV2aXNpb259ID0gJGhlYWRl
ckhhc2hSZWYtPntzb3VyY2VSZXZpc2lvbn0gaWYgJGhlYWRlckhhc2hSZWYtPntzb3VyY2VSZXZp
c2lvbn07CisgICAgICAgIHB1c2ggQGRpZmZIYXNoUmVmcywgXCVjb3B5SGFzaDsKKyAgICB9Cisg
ICAgaWYgKCEkaGVhZGVySGFzaFJlZi0+e2NvcGllZEZyb21QYXRofSB8fCAkaGVhZGVySGFzaFJl
Zi0+e2lzQ29weVdpdGhDaGFuZ2VzfSkgeworICAgICAgICAjIFRoZW4gYWRkIHRoZSB1c3VhbCBm
aWxlIG1vZGlmaWNhdGlvbi4KKyAgICAgICAgbXkgJWRpZmZIYXNoOworICAgICAgICAjIEZJWE1F
OiBBZGQgZXhlY3V0YWJsZUJpdERlbHRhIGFzIGEga2V5LgorICAgICAgICAkZGlmZkhhc2h7aW5k
ZXhQYXRofSA9ICRoZWFkZXJIYXNoUmVmLT57aW5kZXhQYXRofTsKKyAgICAgICAgJGRpZmZIYXNo
e2lzQmluYXJ5fSA9ICRoZWFkZXJIYXNoUmVmLT57aXNCaW5hcnl9IGlmICRoZWFkZXJIYXNoUmVm
LT57aXNCaW5hcnl9OworICAgICAgICAkZGlmZkhhc2h7aXNHaXR9ID0gJGhlYWRlckhhc2hSZWYt
Pntpc0dpdH0gaWYgJGhlYWRlckhhc2hSZWYtPntpc0dpdH07CisgICAgICAgICRkaWZmSGFzaHtp
c1N2bn0gPSAkaGVhZGVySGFzaFJlZi0+e2lzU3ZufSBpZiAkaGVhZGVySGFzaFJlZi0+e2lzU3Zu
fTsKKyAgICAgICAgaWYgKCEkaGVhZGVySGFzaFJlZi0+e2NvcGllZEZyb21QYXRofSkgeworICAg
ICAgICAgICAgIyBJZiB0aGUgZmlsZSB3YXMgY29waWVkLCB0aGVuIHdlIGhhdmUgYWxyZWFkeSBp
bmNvcnBvcmF0ZWQgdGhlCisgICAgICAgICAgICAjIHNvdXJjZVJldmlzaW9uIGluZm9ybWF0aW9u
IGludG8gdGhlIGNoYW5nZS4KKyAgICAgICAgICAgICRkaWZmSGFzaHtzb3VyY2VSZXZpc2lvbn0g
PSAkaGVhZGVySGFzaFJlZi0+e3NvdXJjZVJldmlzaW9ufSBpZiAkaGVhZGVySGFzaFJlZi0+e3Nv
dXJjZVJldmlzaW9ufTsKKyAgICAgICAgfQorICAgICAgICAjIEZJWE1FOiBSZW1vdmUgdGhlIG5l
ZWQgZm9yIHN2bkNvbnZlcnRlZFRleHQuICBTZWUgdGhlICVkaWZmSGFzaAorICAgICAgICAjICAg
ICAgICBjb2RlIGNvbW1lbnRzIGFib3ZlIGZvciBtb3JlIGluZm9ybWF0aW9uLgorICAgICAgICAk
ZGlmZkhhc2h7c3ZuQ29udmVydGVkVGV4dH0gPSAkc3ZuVGV4dDsKKyAgICAgICAgcHVzaCBAZGlm
Zkhhc2hSZWZzLCBcJWRpZmZIYXNoOworICAgIH0KKworICAgIHJldHVybiAoXEBkaWZmSGFzaFJl
ZnMsICRsaW5lKTsKIH0KIAogIyBQYXJzZSBhIHBhdGNoIGZpbGUgY3JlYXRlZCBieSBzdm4tY3Jl
YXRlLXBhdGNoLgpAQCAtNzY2LDE2ICs4MDcsMTYgQEAgc3ViIHBhcnNlUGF0Y2goJCkKIHsKICAg
ICBteSAoJGZpbGVIYW5kbGUpID0gQF87CiAKKyAgICBteSAkbmV3RGlmZkhhc2hSZWZzOwogICAg
IG15IEBkaWZmSGFzaFJlZnM7ICMgcmV0dXJuIHZhbHVlCiAKICAgICBteSAkbGluZSA9IDwkZmls
ZUhhbmRsZT47CiAKICAgICB3aGlsZSAoZGVmaW5lZCgkbGluZSkpIHsgIyBPdGhlcndpc2UsIGF0
IEVPRi4KIAotICAgICAgICBteSAkZGlmZkhhc2hSZWY7Ci0gICAgICAgICgkZGlmZkhhc2hSZWYs
ICRsaW5lKSA9IHBhcnNlRGlmZigkZmlsZUhhbmRsZSwgJGxpbmUpOworICAgICAgICAoJG5ld0Rp
ZmZIYXNoUmVmcywgJGxpbmUpID0gcGFyc2VEaWZmKCRmaWxlSGFuZGxlLCAkbGluZSk7CiAKLSAg
ICAgICAgcHVzaCBAZGlmZkhhc2hSZWZzLCAkZGlmZkhhc2hSZWY7CisgICAgICAgIHB1c2ggQGRp
ZmZIYXNoUmVmcywgQCRuZXdEaWZmSGFzaFJlZnM7CiAgICAgfQogCiAgICAgcmV0dXJuIEBkaWZm
SGFzaFJlZnM7CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3N2bi1hcHBseSBiL1dl
YktpdFRvb2xzL1NjcmlwdHMvc3ZuLWFwcGx5CmluZGV4IGI0OWNjZWMuLjZjM2Q2ZmQgMTAwNzU1
Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvc3ZuLWFwcGx5CisrKyBiL1dlYktpdFRvb2xzL1Nj
cmlwdHMvc3ZuLWFwcGx5CkBAIC0zMDMsNyArMzAzLDcgQEAgc3ViIHBhdGNoKCQpCiB7CiAgICAg
bXkgKCRkaWZmSGFzaFJlZikgPSBAXzsKIAotICAgIG15ICRwYXRjaCA9ICRkaWZmSGFzaFJlZi0+
e3N2bkNvbnZlcnRlZFRleHR9OworICAgIG15ICRwYXRjaCA9ICRkaWZmSGFzaFJlZi0+e3N2bkNv
bnZlcnRlZFRleHR9IHx8ICIiOyAjIE1ha2Ugc3VyZSAkcGF0Y2ggaXMgaW5pdGlhbGl6ZWQuCiAK
ICAgICBteSAkZnVsbFBhdGggPSAkZGlmZkhhc2hSZWYtPntpbmRleFBhdGh9OwogICAgIG15ICRp
c0JpbmFyeSA9ICRkaWZmSGFzaFJlZi0+e2lzQmluYXJ5fTsKQEAgLTMxNSw3ICszMTUsOSBAQCBz
dWIgcGF0Y2goJCkKICAgICAjIEZJWE1FOiBUaGlzIGluZm9ybWF0aW9uIHNob3VsZCBiZSBleHRy
YWN0ZWQgZnJvbSB0aGUgZGlmZiBmaWxlIGFzCiAgICAgIyAgICAgICAgcGFydCBvZiB0aGUgcGFy
c2luZyBzdGFnZSwgaS5lLiB0aGUgY2FsbCB0byBwYXJzZVBhdGNoKCkuCiAgICAgJGFkZGl0aW9u
ID0gMSBpZiAoJHBhdGNoID1+IC9cbi0tLSAuK1wocmV2aXNpb24gMFwpXHI/XG4vIHx8ICRwYXRj
aCA9fiAvXG5AQCAtMCwwIC4qIEBALykgJiYgIWV4aXN0cygkY29waWVkRmlsZXN7JGZ1bGxQYXRo
fSk7Ci0gICAgJGRlbGV0aW9uID0gMSBpZiAkcGF0Y2ggPX4gL1xuQEAgLiogXCswLDAgQEAvOwor
ICAgICMgQSBkZWxldGlvbiBjYW4gaGF2ZSBubyAkcGF0Y2ggdmFsdWUgaW4gdGhlIGNhc2Ugb2Yg
YSBkZWxldGlvbiByZXN1bHRpbmcKKyAgICAjIGZyb20gYSBHaXQgcmVuYW1lLgorICAgICRkZWxl
dGlvbiA9IDEgaWYgKCRkaWZmSGFzaFJlZi0+e2lzRGVsZXRpb259IHx8ICRwYXRjaCA9fiAvXG5A
QCAuKiBcKzAsMCBAQC8pOwogCiAgICAgaWYgKCEkYWRkaXRpb24gJiYgISRkZWxldGlvbiAmJiAh
JGlzQmluYXJ5KSB7CiAgICAgICAgICMgU3RhbmRhcmQgcGF0Y2gsIHBhdGNoIHRvb2wgY2FuIGhh
bmRsZSB0aGlzLgpAQCAtMzI0LDcgKzMyNiw3IEBAIHN1YiBwYXRjaCgkKQogICAgICAgICAgICAg
YXBwbHlQYXRjaChzZXRDaGFuZ2VMb2dEYXRlQW5kUmV2aWV3ZXIoZml4Q2hhbmdlTG9nUGF0Y2go
JHBhdGNoKSwgJHJldmlld2VyKSwgJGZ1bGxQYXRoLCBbIi0tZnV6ej0zIl0pOwogICAgICAgICAg
ICAgdW5saW5rKCIke2Z1bGxQYXRofS5vcmlnIikgaWYgKCEgJGNoYW5nZUxvZ0RvdE9yaWdFeGlz
dGVkKTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGFwcGx5UGF0Y2goJHBhdGNoLCAk
ZnVsbFBhdGgpOworICAgICAgICAgICAgYXBwbHlQYXRjaCgkcGF0Y2gsICRmdWxsUGF0aCkgaWYg
JHBhdGNoOwogICAgICAgICB9CiAgICAgfSBlbHNlIHsKICAgICAgICAgIyBFaXRoZXIgYSBkZWxl
dGlvbiwgYW4gYWRkaXRpb24gb3IgYSBiaW5hcnkgY2hhbmdlLgpAQCAtMzMzLDE4ICszMzUsMTkg
QEAgc3ViIHBhdGNoKCQpCiAKICAgICAgICAgaWYgKCRpc0JpbmFyeSkgewogICAgICAgICAgICAg
aWYgKCRpc0dpdCkgewotICAgICAgICAgICAgICAgIGhhbmRsZUdpdEJpbmFyeUNoYW5nZSgkZnVs
bFBhdGgsICRwYXRjaCk7CisgICAgICAgICAgICAgICAgaGFuZGxlR2l0QmluYXJ5Q2hhbmdlKCRm
dWxsUGF0aCwgJHBhdGNoKSBpZiAkcGF0Y2g7CiAgICAgICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgICAgIGhhbmRsZUJpbmFyeUNoYW5nZSgkZnVsbFBhdGgsICRwYXRjaCk7CisgICAgICAg
ICAgICAgICAgaGFuZGxlQmluYXJ5Q2hhbmdlKCRmdWxsUGF0aCwgJHBhdGNoKSBpZiAkcGF0Y2g7
CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzaWYgKCRkZWxldGlvbikgewotICAgICAgICAg
ICAgIyBEZWxldGlvbgotICAgICAgICAgICAgYXBwbHlQYXRjaCgkcGF0Y2gsICRmdWxsUGF0aCwg
WyItLWZvcmNlIl0pOworICAgICAgICAgICAgIyBBIGRlbGV0aW9uIGNhbiBoYXZlIG5vICRwYXRj
aCB2YWx1ZSBpbiB0aGUgY2FzZSBvZiBhIGRlbGV0aW9uCisgICAgICAgICAgICAjIHJlc3VsdGlu
ZyBmcm9tIGEgR2l0IHJlbmFtZS4KKyAgICAgICAgICAgIGFwcGx5UGF0Y2goJHBhdGNoLCAkZnVs
bFBhdGgsIFsiLS1mb3JjZSJdKSBpZiAkcGF0Y2g7CiAgICAgICAgICAgICBzY21SZW1vdmUoJGZ1
bGxQYXRoKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICMgQWRkaXRpb24KICAgICAg
ICAgICAgIHJlbmFtZSgkZnVsbFBhdGgsICIkZnVsbFBhdGgub3JpZyIpIGlmIC1lICRmdWxsUGF0
aDsKLSAgICAgICAgICAgIGFwcGx5UGF0Y2goJHBhdGNoLCAkZnVsbFBhdGgpOworICAgICAgICAg
ICAgYXBwbHlQYXRjaCgkcGF0Y2gsICRmdWxsUGF0aCkgaWYgJHBhdGNoOwogICAgICAgICAgICAg
dW5saW5rKCIkZnVsbFBhdGgub3JpZyIpIGlmIC1lICIkZnVsbFBhdGgub3JpZyIgJiYgY2hlY2tz
dW0oJGZ1bGxQYXRoKSBlcSBjaGVja3N1bSgiJGZ1bGxQYXRoLm9yaWciKTsKICAgICAgICAgICAg
IHNjbUFkZCgkZnVsbFBhdGgpOwogICAgICAgICAgICAgIyBXaGF0IGlzIHRoaXMgZm9yPwpkaWZm
IC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL1ZDU1V0aWxzX3VuaXR0ZXN0
L3BhcnNlRGlmZi5wbCBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9WQ1NVdGlsc191
bml0dGVzdC9wYXJzZURpZmYucGwKaW5kZXggOWYxMTJiMi4uNmVmZTdjYyAxMDA2NDQKLS0tIGEv
V2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL1ZDU1V0aWxzX3VuaXR0ZXN0L3BhcnNlRGlm
Zi5wbAorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHBlcmwvVkNTVXRpbHNfdW5pdHRl
c3QvcGFyc2VEaWZmLnBsCkBAIC00Nyw3ICs0Nyw3IEBAIEluZGV4OiBNYWtlZmlsZQogIGFsbDoK
IEVORAogICAgIGV4cGVjdGVkUmV0dXJuID0+IFsKLXsKK1t7CiAgICAgc3ZuQ29udmVydGVkVGV4
dCA9PiAgPDwnRU5EJywgIyBTYW1lIGFzIGlucHV0IHRleHQKIEluZGV4OiBNYWtlZmlsZQogPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQpAQCAtNjIsNyArNjIsNyBAQCBFTkQKICAgICBpbmRleFBhdGggPT4gIk1ha2VmaWxl
IiwKICAgICBpc1N2biA9PiAxLAogICAgIHNvdXJjZVJldmlzaW9uID0+ICI1MzA1MiIsCi19LAor
fV0sCiB1bmRlZl0sCiAgICAgZXhwZWN0ZWROZXh0TGluZSA9PiB1bmRlZiwKIH0sCkBAIC04NCw3
ICs4NCw3IEBAIE5hbWU6IHN2bjptaW1lLXR5cGUKIFExZFRCeDBBQUFCNDJpdGc0R2xnWUpqR3dN
RER5T0RNeE1EdzM0R0JnUUVBSlBRREpBPT0KIEVORAogICAgIGV4cGVjdGVkUmV0dXJuID0+IFsK
LXsKK1t7CiAgICAgc3ZuQ29udmVydGVkVGV4dCA9PiAgPDwnRU5EJywgIyBTYW1lIGFzIGlucHV0
IHRleHQKIEluZGV4OiB0ZXN0X2ZpbGUuc3dmCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkBAIC0xMDIsNyArMTAyLDcg
QEAgRU5ECiAgICAgaW5kZXhQYXRoID0+ICJ0ZXN0X2ZpbGUuc3dmIiwKICAgICBpc0JpbmFyeSA9
PiAxLAogICAgIGlzU3ZuID0+IDEsCi19LAorfV0sCiB1bmRlZl0sCiAgICAgZXhwZWN0ZWROZXh0
TGluZSA9PiB1bmRlZiwKIH0sCkBAIC0xMjQsNyArMTI0LDcgQEAgSW5kZXg6IE1ha2VmaWxlCiAg
YWxsOgogRU5ECiAgICAgZXhwZWN0ZWRSZXR1cm4gPT4gWwoteworW3sKICAgICBzdm5Db252ZXJ0
ZWRUZXh0ID0+ICA8PCdFTkQnLCAjIFNhbWUgYXMgaW5wdXQgdGV4dAogCiBMRUFESU5HIEpVTksK
QEAgLTE0Miw3ICsxNDIsNyBAQCBFTkQKICAgICBpbmRleFBhdGggPT4gIk1ha2VmaWxlIiwKICAg
ICBpc1N2biA9PiAxLAogICAgIHNvdXJjZVJldmlzaW9uID0+ICI1MzA1MiIsCi19LAorfV0sCiB1
bmRlZl0sCiAgICAgZXhwZWN0ZWROZXh0TGluZSA9PiB1bmRlZiwKIH0sCkBAIC0xNTgsMjAgKzE1
OCwxMSBAQCBJbmRleDogTWFrZWZpbGVfbmV3CiArTU9EVUxFUyA9IEphdmFTY3JpcHRDb3JlIEph
dmFTY3JpcHRHbHVlIFdlYkNvcmUgV2ViS2l0IFdlYktpdFRvb2xzCiBFTkQKICAgICBleHBlY3Rl
ZFJldHVybiA9PiBbCi17Ci0gICAgc3ZuQ29udmVydGVkVGV4dCA9PiAgPDwnRU5EJywgIyBTYW1l
IGFzIGlucHV0IHRleHQKLUluZGV4OiBNYWtlZmlsZV9uZXcKLT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBNYWtl
ZmlsZV9uZXcJKHJldmlzaW9uIDUzMTMxKQkoZnJvbSBNYWtlZmlsZTo1MzEzMSkKLSsrKyBNYWtl
ZmlsZV9uZXcJKHdvcmtpbmcgY29weSkKLUBAIC0wLDAgKzEsMSBAQAotK01PRFVMRVMgPSBKYXZh
U2NyaXB0Q29yZSBKYXZhU2NyaXB0R2x1ZSBXZWJDb3JlIFdlYktpdCBXZWJLaXRUb29scwotRU5E
CitbewogICAgIGNvcGllZEZyb21QYXRoID0+ICJNYWtlZmlsZSIsCiAgICAgaW5kZXhQYXRoID0+
ICJNYWtlZmlsZV9uZXciLAotICAgIGlzU3ZuID0+IDEsCiAgICAgc291cmNlUmV2aXNpb24gPT4g
IjUzMTMxIiwKLX0sCit9XSwKIHVuZGVmXSwKICAgICBleHBlY3RlZE5leHRMaW5lID0+IHVuZGVm
LAogfSwKQEAgLTE5MCw3ICsxODEsNyBAQCBJbmRleDogTWFrZWZpbGVfbmV3CiAtLS0gTWFrZWZp
bGVfbmV3CShyZXZpc2lvbiA1MzEzMSkJKGZyb20gTWFrZWZpbGU6NTMxMzEpCiBFTkQKICAgICBl
eHBlY3RlZFJldHVybiA9PiBbCi17CitbewogICAgIHN2bkNvbnZlcnRlZFRleHQgPT4gIDw8J0VO
RCcsCiBJbmRleDogTWFrZWZpbGUKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQEAgLTIwMiw3ICsxOTMsNyBAQCBFTkQK
ICAgICBpbmRleFBhdGggPT4gIk1ha2VmaWxlIiwKICAgICBpc1N2biA9PiAxLAogICAgIHNvdXJj
ZVJldmlzaW9uID0+ICI1MzEzMSIsCi19LAorfV0sCiAiSW5kZXg6IE1ha2VmaWxlX25ld1xuIl0s
CiAgICAgZXhwZWN0ZWROZXh0TGluZSA9PiAiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIiwKIH0sCkBAIC0yMjMsNyAr
MjE0LDcgQEAgaW5kZXggZjVkNWU3NC4uM2I2YWE5MiAxMDA2NDQKIEBAIC0xLDEgMSwxIEBAIHB1
YmxpYzoKIEVORAogICAgIGV4cGVjdGVkUmV0dXJuID0+IFsKLXsKK1t7CiAgICAgc3ZuQ29udmVy
dGVkVGV4dCA9PiAgPDwnRU5EJywgIyBTYW1lIGFzIGlucHV0IHRleHQKIEluZGV4OiBNYWtlZmls
ZQogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQpAQCAtMjQwLDcgKzIzMSw3IEBAIEVORAogICAgIGluZGV4UGF0aCA9PiAi
TWFrZWZpbGUiLAogICAgIGlzU3ZuID0+IDEsCiAgICAgc291cmNlUmV2aXNpb24gPT4gIjUzMTMx
IiwKLX0sCit9XSwKIHVuZGVmXSwKICAgICBleHBlY3RlZE5leHRMaW5lID0+IHVuZGVmLAogfSwK
QEAgLTI1OCw3ICsyNDksNyBAQCBpbmRleCBmNWQ1ZTc0Li4zYjZhYTkyIDEwMDY0NAogQEAgLTEs
MSAxLDEgQEAgcHVibGljOgogRU5ECiAgICAgZXhwZWN0ZWRSZXR1cm4gPT4gWwoteworW3sKICAg
ICBzdm5Db252ZXJ0ZWRUZXh0ID0+ICA8PCdFTkQnLAogSW5kZXg6IE1ha2VmaWxlCiBpbmRleCBm
NWQ1ZTc0Li4zYjZhYTkyIDEwMDY0NApAQCAtMjY4LDcgKzI1OSw3IEBAIGluZGV4IGY1ZDVlNzQu
LjNiNmFhOTIgMTAwNjQ0CiBFTkQKICAgICBpbmRleFBhdGggPT4gIk1ha2VmaWxlIiwKICAgICBp
c0dpdCA9PiAxLAotfSwKK31dLAogdW5kZWZdLAogICAgIGV4cGVjdGVkTmV4dExpbmUgPT4gdW5k
ZWYsCiB9LApAQCAtMjg2LDcgKzI3Nyw3IEBAIEluZGV4OiBNYWtlZmlsZV9uZXcKIC0tLSBNYWtl
ZmlsZV9uZXcJKHJldmlzaW9uIDUzMTMxKQkoZnJvbSBNYWtlZmlsZTo1MzEzMSkKIEVORAogICAg
IGV4cGVjdGVkUmV0dXJuID0+IFsKLXsKK1t7CiAgICAgc3ZuQ29udmVydGVkVGV4dCA9PiAgPDwn
RU5EJywKIEluZGV4OiBNYWtlZmlsZQogaW5kZXggZjVkNWU3NC4uM2I2YWE5MiAxMDA2NDQKQEAg
LTI5OSwxMCArMjkwLDExOSBAQCBJbmRleDogTWFrZWZpbGVfbmV3CiBFTkQKICAgICBpbmRleFBh
dGggPT4gIk1ha2VmaWxlIiwKICAgICBpc0dpdCA9PiAxLAotfSwKK31dLAogdW5kZWZdLAogICAg
IGV4cGVjdGVkTmV4dExpbmUgPT4gdW5kZWYsCiB9LAorIyMjIworIyAgICBHaXQgdGVzdCBjYXNl
czogZmlsZSBtb3ZlcyAobXVsdGlwbGUgcmV0dXJuIHZhbHVlcykKKyMjCit7CisgICAgZGlmZk5h
bWUgPT4gIkdpdDogcmVuYW1lICh3aXRoIHNpbWlsYXJpdHkgaW5kZXggMTAwJSkiLAorICAgIGlu
cHV0VGV4dCA9PiA8PCdFTkQnLAorZGlmZiAtLWdpdCBhL2ZvbyBiL2Zvb19uZXcKK3NpbWlsYXJp
dHkgaW5kZXggMTAwJQorcmVuYW1lIGZyb20gZm9vCityZW5hbWUgdG8gZm9vX25ldworZGlmZiAt
LWdpdCBhL2JhciBiL2JhcgoraW5kZXggZDQ1ZGQ0MC4uMzQ5NDUyNiAxMDA2NDQKK0VORAorICAg
IGV4cGVjdGVkUmV0dXJuID0+IFsKK1t7CisgICAgaW5kZXhQYXRoID0+ICJmb28iLAorICAgIGlz
RGVsZXRpb24gPT4gMSwKK30sCit7CisgICAgY29waWVkRnJvbVBhdGggPT4gImZvbyIsCisgICAg
aW5kZXhQYXRoID0+ICJmb29fbmV3IiwKK31dLAorImRpZmYgLS1naXQgYS9iYXIgYi9iYXJcbiJd
LAorICAgIGV4cGVjdGVkTmV4dExpbmUgPT4gImluZGV4IGQ0NWRkNDAuLjM0OTQ1MjYgMTAwNjQ0
XG4iLAorfSwKK3sKKyAgICBkaWZmTmFtZSA9PiAicmVuYW1lICh3aXRoIHNpbWlsYXJpdHkgaW5k
ZXggPCAxMDAlKSIsCisgICAgaW5wdXRUZXh0ID0+IDw8J0VORCcsCitkaWZmIC0tZ2l0IGEvZm9v
IGIvZm9vX25ldworc2ltaWxhcml0eSBpbmRleCA5OSUKK3JlbmFtZSBmcm9tIGZvbworcmVuYW1l
IHRvIGZvb19uZXcKK2luZGV4IDFlNTBkMWQuLjE0NTlkMjEgMTAwNjQ0CistLS0gYS9mb28KKysr
KyBiL2Zvb19uZXcKK0BAIC0xNSwzICsxNSw0IEBAIHJlbGVhc2UgciBkZXBsb3ltZW50IGRlcCBk
ZXBsb3k6CisgbGluZTEKKyBsaW5lMgorIGxpbmUzCisrbGluZTQKK2RpZmYgLS1naXQgYS9iYXIg
Yi9iYXIKK2luZGV4IGQ0NWRkNDAuLjM0OTQ1MjYgMTAwNjQ0CitFTkQKKyAgICBleHBlY3RlZFJl
dHVybiA9PiBbCitbeworICAgIGluZGV4UGF0aCA9PiAiZm9vIiwKKyAgICBpc0RlbGV0aW9uID0+
IDEsCit9LAoreworICAgIGNvcGllZEZyb21QYXRoID0+ICJmb28iLAorICAgIGluZGV4UGF0aCA9
PiAiZm9vX25ldyIsCit9LAoreworICAgIGluZGV4UGF0aCA9PiAiZm9vX25ldyIsCisgICAgaXNH
aXQgPT4gMSwKKyAgICBzdm5Db252ZXJ0ZWRUZXh0ID0+IDw8J0VORCcsCitJbmRleDogZm9vX25l
dworc2ltaWxhcml0eSBpbmRleCA5OSUKK3JlbmFtZSBmcm9tIGZvbworcmVuYW1lIHRvIGZvb19u
ZXcKK2luZGV4IDFlNTBkMWQuLjE0NTlkMjEgMTAwNjQ0CistLS0gZm9vX25ldworKysrIGZvb19u
ZXcKK0BAIC0xNSwzICsxNSw0IEBAIHJlbGVhc2UgciBkZXBsb3ltZW50IGRlcCBkZXBsb3k6Cisg
bGluZTEKKyBsaW5lMgorIGxpbmUzCisrbGluZTQKK0VORAorfV0sCisiZGlmZiAtLWdpdCBhL2Jh
ciBiL2JhclxuIl0sCisgICAgZXhwZWN0ZWROZXh0TGluZSA9PiAiaW5kZXggZDQ1ZGQ0MC4uMzQ5
NDUyNiAxMDA2NDRcbiIsCit9LAoreworICAgIGRpZmZOYW1lID0+ICJyZW5hbWUgKHdpdGggZXhl
Y3V0YWJsZSBiaXQgY2hhbmdlKSIsCisgICAgaW5wdXRUZXh0ID0+IDw8J0VORCcsCitkaWZmIC0t
Z2l0IGEvZm9vIGIvZm9vX25ldworb2xkIG1vZGUgMTAwNjQ0CituZXcgbW9kZSAxMDA3NTUKK3Np
bWlsYXJpdHkgaW5kZXggMTAwJQorcmVuYW1lIGZyb20gZm9vCityZW5hbWUgdG8gZm9vX25ldwor
ZGlmZiAtLWdpdCBhL2JhciBiL2JhcgoraW5kZXggZDQ1ZGQ0MC4uMzQ5NDUyNiAxMDA2NDQKK0VO
RAorICAgIGV4cGVjdGVkUmV0dXJuID0+IFsKK1t7CisgICAgaW5kZXhQYXRoID0+ICJmb28iLAor
ICAgIGlzRGVsZXRpb24gPT4gMSwKK30sCit7CisgICAgY29waWVkRnJvbVBhdGggPT4gImZvbyIs
CisgICAgaW5kZXhQYXRoID0+ICJmb29fbmV3IiwKK30sCit7CisgICAgaW5kZXhQYXRoID0+ICJm
b29fbmV3IiwKKyAgICBpc0dpdCA9PiAxLAorICAgIHN2bkNvbnZlcnRlZFRleHQgPT4gPDwnRU5E
JywKK0luZGV4OiBmb29fbmV3CitvbGQgbW9kZSAxMDA2NDQKK25ldyBtb2RlIDEwMDc1NQorc2lt
aWxhcml0eSBpbmRleCAxMDAlCityZW5hbWUgZnJvbSBmb28KK3JlbmFtZSB0byBmb29fbmV3CitF
TkQKK31dLAorImRpZmYgLS1naXQgYS9iYXIgYi9iYXJcbiJdLAorICAgIGV4cGVjdGVkTmV4dExp
bmUgPT4gImluZGV4IGQ0NWRkNDAuLjM0OTQ1MjYgMTAwNjQ0XG4iLAorfSwKICk7CiAKIG15ICR0
ZXN0Q2FzZXNDb3VudCA9IEB0ZXN0Q2FzZUhhc2hSZWZzOwpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9v
bHMvU2NyaXB0cy93ZWJraXRwZXJsL1ZDU1V0aWxzX3VuaXR0ZXN0L3BhcnNlR2l0RGlmZkhlYWRl
ci5wbCBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9WQ1NVdGlsc191bml0dGVzdC9w
YXJzZUdpdERpZmZIZWFkZXIucGwKaW5kZXggOWUyYTg4ZC4uNjY0OGM1ZCAxMDA2NDQKLS0tIGEv
V2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL1ZDU1V0aWxzX3VuaXR0ZXN0L3BhcnNlR2l0
RGlmZkhlYWRlci5wbAorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHBlcmwvVkNTVXRp
bHNfdW5pdHRlc3QvcGFyc2VHaXREaWZmSGVhZGVyLnBsCkBAIC0xNDksNyArMTQ5LDEwMiBAQCBz
aW1pbGFyaXR5IGluZGV4IDk5JQogY29weSBmcm9tIGZvbwogY29weSB0byBmb29fbmV3CiBFTkQK
KyAgICBjb3BpZWRGcm9tUGF0aCA9PiAiZm9vIiwKKyAgICBpbmRleFBhdGggPT4gImZvb19uZXci
LAorICAgIGlzQ29weVdpdGhDaGFuZ2VzID0+IDEsCit9LAorImRpZmYgLS1naXQgYS9iYXIgYi9i
YXJcbiJdLAorICAgIGV4cGVjdGVkTmV4dExpbmUgPT4gImluZGV4IGQ0NWRkNDAuLjM0OTQ1MjYg
MTAwNjQ0XG4iLAorfSwKK3sgICAjIE5ldyB0ZXN0CisgICAgZGlmZk5hbWUgPT4gInJlbmFtZSAo
d2l0aCBzaW1pbGFyaXR5IGluZGV4IDEwMCUpIiwKKyAgICBpbnB1dFRleHQgPT4gPDwnRU5EJywK
K2RpZmYgLS1naXQgYS9mb28gYi9mb29fbmV3CitzaW1pbGFyaXR5IGluZGV4IDEwMCUKK3JlbmFt
ZSBmcm9tIGZvbworcmVuYW1lIHRvIGZvb19uZXcKK2RpZmYgLS1naXQgYS9iYXIgYi9iYXIKK2lu
ZGV4IGQ0NWRkNDAuLjM0OTQ1MjYgMTAwNjQ0CitFTkQKKyAgICBleHBlY3RlZFJldHVybiA9PiBb
Cit7CisgICAgc3ZuQ29udmVydGVkVGV4dCA9PiA8PCdFTkQnLAorSW5kZXg6IGZvb19uZXcKK3Np
bWlsYXJpdHkgaW5kZXggMTAwJQorcmVuYW1lIGZyb20gZm9vCityZW5hbWUgdG8gZm9vX25ldwor
RU5ECisgICAgY29waWVkRnJvbVBhdGggPT4gImZvbyIsCisgICAgaW5kZXhQYXRoID0+ICJmb29f
bmV3IiwKKyAgICBzaG91bGREZWxldGVTb3VyY2UgPT4gMSwKK30sCisiZGlmZiAtLWdpdCBhL2Jh
ciBiL2JhclxuIl0sCisgICAgZXhwZWN0ZWROZXh0TGluZSA9PiAiaW5kZXggZDQ1ZGQ0MC4uMzQ5
NDUyNiAxMDA2NDRcbiIsCit9LAoreyAgICMgTmV3IHRlc3QKKyAgICBkaWZmTmFtZSA9PiAicmVu
YW1lICh3aXRoIHNpbWlsYXJpdHkgaW5kZXggPCAxMDAlKSIsCisgICAgaW5wdXRUZXh0ID0+IDw8
J0VORCcsCitkaWZmIC0tZ2l0IGEvZm9vIGIvZm9vX25ldworc2ltaWxhcml0eSBpbmRleCA5OSUK
K3JlbmFtZSBmcm9tIGZvbworcmVuYW1lIHRvIGZvb19uZXcKK2luZGV4IDFlNTBkMWQuLjE0NTlk
MjEgMTAwNjQ0CistLS0gYS9mb28KKysrKyBiL2Zvb19uZXcKK0BAIC0xNSwzICsxNSw0IEBAIHJl
bGVhc2UgciBkZXBsb3ltZW50IGRlcCBkZXBsb3k6CisgbGluZTEKKyBsaW5lMgorIGxpbmUzCisr
bGluZTQKK2RpZmYgLS1naXQgYS9iYXIgYi9iYXIKK2luZGV4IGQ0NWRkNDAuLjM0OTQ1MjYgMTAw
NjQ0CitFTkQKKyAgICBleHBlY3RlZFJldHVybiA9PiBbCit7CisgICAgc3ZuQ29udmVydGVkVGV4
dCA9PiA8PCdFTkQnLAorSW5kZXg6IGZvb19uZXcKK3NpbWlsYXJpdHkgaW5kZXggOTklCityZW5h
bWUgZnJvbSBmb28KK3JlbmFtZSB0byBmb29fbmV3CitpbmRleCAxZTUwZDFkLi4xNDU5ZDIxIDEw
MDY0NAorLS0tIGZvb19uZXcKKysrKyBmb29fbmV3CitFTkQKKyAgICBjb3BpZWRGcm9tUGF0aCA9
PiAiZm9vIiwKKyAgICBpbmRleFBhdGggPT4gImZvb19uZXciLAorICAgIGlzQ29weVdpdGhDaGFu
Z2VzID0+IDEsCisgICAgc2hvdWxkRGVsZXRlU291cmNlID0+IDEsCit9LAorIkBAIC0xNSwzICsx
NSw0IEBAIHJlbGVhc2UgciBkZXBsb3ltZW50IGRlcCBkZXBsb3k6XG4iXSwKKyAgICBleHBlY3Rl
ZE5leHRMaW5lID0+ICIgbGluZTFcbiIsCit9LAoreyAgICMgTmV3IHRlc3QKKyAgICBkaWZmTmFt
ZSA9PiAicmVuYW1lICh3aXRoIGV4ZWN1dGFibGUgYml0IGNoYW5nZSkiLAorICAgIGlucHV0VGV4
dCA9PiA8PCdFTkQnLAorZGlmZiAtLWdpdCBhL2ZvbyBiL2Zvb19uZXcKK29sZCBtb2RlIDEwMDY0
NAorbmV3IG1vZGUgMTAwNzU1CitzaW1pbGFyaXR5IGluZGV4IDEwMCUKK3JlbmFtZSBmcm9tIGZv
bworcmVuYW1lIHRvIGZvb19uZXcKK2RpZmYgLS1naXQgYS9iYXIgYi9iYXIKK2luZGV4IGQ0NWRk
NDAuLjM0OTQ1MjYgMTAwNjQ0CitFTkQKKyAgICBleHBlY3RlZFJldHVybiA9PiBbCit7CisgICAg
c3ZuQ29udmVydGVkVGV4dCA9PiA8PCdFTkQnLAorSW5kZXg6IGZvb19uZXcKK29sZCBtb2RlIDEw
MDY0NAorbmV3IG1vZGUgMTAwNzU1CitzaW1pbGFyaXR5IGluZGV4IDEwMCUKK3JlbmFtZSBmcm9t
IGZvbworcmVuYW1lIHRvIGZvb19uZXcKK0VORAorICAgIGNvcGllZEZyb21QYXRoID0+ICJmb28i
LAorICAgIGV4ZWN1dGFibGVCaXREZWx0YSA9PiAxLAogICAgIGluZGV4UGF0aCA9PiAiZm9vX25l
dyIsCisgICAgaXNDb3B5V2l0aENoYW5nZXMgPT4gMSwKKyAgICBzaG91bGREZWxldGVTb3VyY2Ug
PT4gMSwKIH0sCiAiZGlmZiAtLWdpdCBhL2JhciBiL2JhclxuIl0sCiAgICAgZXhwZWN0ZWROZXh0
TGluZSA9PiAiaW5kZXggZDQ1ZGQ0MC4uMzQ5NDUyNiAxMDA2NDRcbiIsCmRpZmYgLS1naXQgYS9X
ZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHBlcmwvVkNTVXRpbHNfdW5pdHRlc3QvcGFyc2VQYXRj
aC5wbCBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9WQ1NVdGlsc191bml0dGVzdC9w
YXJzZVBhdGNoLnBsCmluZGV4IGU2ZjgyY2EuLjhhYWUzZDQgMTAwNjQ0Ci0tLSBhL1dlYktpdFRv
b2xzL1NjcmlwdHMvd2Via2l0cGVybC9WQ1NVdGlsc191bml0dGVzdC9wYXJzZVBhdGNoLnBsCisr
KyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9WQ1NVdGlsc191bml0dGVzdC9wYXJz
ZVBhdGNoLnBsCkBAIC02OSwxNCArNjksNiBAQCBFTkQKICAgICBzb3VyY2VSZXZpc2lvbiA9PiAi
NTMxMzEiLAogfSwKIHsKLSAgICBzdm5Db252ZXJ0ZWRUZXh0ID0+IDw8J0VORCcsCi1JbmRleDog
TWFrZWZpbGVfbmV3Ci09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gTWFrZWZpbGVfbmV3CShyZXZpc2lvbiA1MzEz
MSkJKGZyb20gTWFrZWZpbGU6NTMxMzEpCi0rKysgTWFrZWZpbGVfbmV3CSh3b3JraW5nIGNvcHkp
Ci1AQCAtMCwwICsxLDEgQEAKLStNT0RVTEVTID0gSmF2YVNjcmlwdENvcmUgSmF2YVNjcmlwdEds
dWUgV2ViQ29yZSBXZWJLaXQgV2ViS2l0VG9vbHMKLUVORAogICAgIGNvcGllZEZyb21QYXRoID0+
ICJNYWtlZmlsZSIsCiAgICAgaW5kZXhQYXRoID0+ICJNYWtlZmlsZV9uZXciLAogICAgIHNvdXJj
ZVJldmlzaW9uID0+ICI1MzEzMSIsCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHBlcmwvVkNTVXRpbHNfdW5pdHRlc3QvcGFyc2VTdm5EaWZmSGVhZGVyLnBsIGIvV2ViS2l0
VG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL1ZDU1V0aWxzX3VuaXR0ZXN0L3BhcnNlU3ZuRGlmZkhl
YWRlci5wbAppbmRleCBiNzMyODg5Li4wNzg4NDlmIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9T
Y3JpcHRzL3dlYmtpdHBlcmwvVkNTVXRpbHNfdW5pdHRlc3QvcGFyc2VTdm5EaWZmSGVhZGVyLnBs
CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9WQ1NVdGlsc191bml0dGVzdC9w
YXJzZVN2bkRpZmZIZWFkZXIucGwKQEAgLTEwMCw3ICsxMDAsNyBAQCBJbmRleDogaW5kZXhfcGF0
aC5weQogRU5ECiAgICAgZXhwZWN0ZWRSZXR1cm4gPT4gWwogewotICAgIHN2bkNvbnZlcnRlZFRl
eHQgPT4gPDwnRU5EJywKKyAgICBzdm5Db252ZXJ0ZWRUZXh0ID0+IDw8RU5ELAogSW5kZXg6IGlu
ZGV4X3BhdGgucHkKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSBpbmRleF9wYXRoLnB5CShyZXZpc2lvbiA1MzA0
OCkJKGZyb20gY29waWVkX2Zyb21fcGF0aC5weTo1MzA0OCkKQEAgLTExOSw3ICsxMTksNyBAQCBF
TkQKICAgICBpbnB1dFRleHQgPT4gPDxFTkQsICMgTm8gc2luZ2xlIHF1b3RlcyB0byBhbGxvdyBp
bnRlcnBvbGF0aW9uIG9mICJcciIKIEluZGV4OiBpbmRleF9wYXRoLnB5XHIKID09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1c
cgotLS0tIGluZGV4X3BhdGgucHkJKHJldmlzaW9uIDUzMDQ4KQkoZnJvbSBjb3BpZWRfZnJvbV9w
YXRoLnB5OjUzMDQ4KVxyCistLS0gaW5kZXhfcGF0aC5weQkocmV2aXNpb24gNTMwNDgpXHIKICsr
KyBpbmRleF9wYXRoLnB5CSh3b3JraW5nIGNvcHkpXHIKIEBAIC0wLDAgKzEsNyBAQFxyCiArIyBQ
eXRob24gZmlsZS4uLlxyCkBAIC0xMjksMTAgKzEyOSw5IEBAIEVORAogICAgIHN2bkNvbnZlcnRl
ZFRleHQgPT4gPDxFTkQsICMgTm8gc2luZ2xlIHF1b3RlcyB0byBhbGxvdyBpbnRlcnBvbGF0aW9u
IG9mICJcciIKIEluZGV4OiBpbmRleF9wYXRoLnB5XHIKID09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1ccgotLS0tIGluZGV4
X3BhdGgucHkJKHJldmlzaW9uIDUzMDQ4KQkoZnJvbSBjb3BpZWRfZnJvbV9wYXRoLnB5OjUzMDQ4
KVxyCistLS0gaW5kZXhfcGF0aC5weQkocmV2aXNpb24gNTMwNDgpXHIKICsrKyBpbmRleF9wYXRo
LnB5CSh3b3JraW5nIGNvcHkpXHIKIEVORAotICAgIGNvcGllZEZyb21QYXRoID0+ICJjb3BpZWRf
ZnJvbV9wYXRoLnB5IiwKICAgICBpbmRleFBhdGggPT4gImluZGV4X3BhdGgucHkiLAogICAgIHNv
dXJjZVJldmlzaW9uID0+IDUzMDQ4LAogfSwK
</data>
<flag name="commit-queue"
          id="39616"
          type_id="3"
          status="-"
          setter="cjerdonek"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55435</attachid>
            <date>2010-05-07 17:01:38 -0700</date>
            <delta_ts>2010-05-08 18:40:42 -0700</delta_ts>
            <desc>Proposed patch 2</desc>
            <filename>_patch-32834-2.diff</filename>
            <type>text/plain</type>
            <size>22196</size>
            <attacher name="Chris Jerdonek">cjerdonek</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA5NzQ4OTM5Li43ODgyMWM0IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMTAtMDUt
MDcgIENocmlzIEplcmRvbmVrICA8Y2plcmRvbmVrQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgdG8gc3ZuLWFwcGx5IHN1
cHBvcnQgZm9yIGdpdCByZW5hbWVzIGFuZCBjb3BpZXMgd2l0aCBzaW1pbGFyaXR5CisgICAgICAg
IGluZGV4IGxlc3MgdGhhbiAxMDAlLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0zMjgzNAorCisgICAgICAgICogU2NyaXB0cy9WQ1NVdGlscy5wbToK
KyAgICAgICAgICAtIEFkZGVkIHRvIHBhcnNlR2l0RGlmZkhlYWRlcigpIHN1cHBvcnQgZm9yIHJl
bmFtZXMgYW5kIHNpbWlsYXJpdHkKKyAgICAgICAgICAgIGluZGV4IGxlc3MgdGhhbiAxMDAlLgor
ICAgICAgICAgIC0gQWRkZWQgdG8gcGFyc2VEaWZmKCkgc3VwcG9ydCBmb3IgcHJvY2Vzc2luZyBy
ZW5hbWVzLCByZW5hbWVzIHdpdGgKKyAgICAgICAgICAgIGNoYW5nZXMsIGFuZCBjb3BpZXMgd2l0
aCBjaGFuZ2VzLgorICAgICAgICAgIC0gQWRkZWQgdG8gcGFyc2VQYXRjaCgpIHRoZSBhYmlsaXR5
IHRvIHByb2Nlc3MgbXVsdGlwbGUgcmV0dXJuCisgICAgICAgICAgICB2YWx1ZXMgZnJvbSBwYXJz
ZURpZmYoKS4KKyAgICAgICAgKiBTY3JpcHRzL3N2bi1hcHBseToKKyAgICAgICAgICAtIEFkZGVk
IHRvIHBhdGNoKCkgdGhlIGFiaWxpdHkgdG8gcHJvY2VzcyBkaWZmIGhhc2hlcyB3aXRoIHRoZQor
ICAgICAgICAgICAgaXNEZWxldGlvbiBrZXktdmFsdWUgc2V0LgorICAgICAgICAqIFNjcmlwdHMv
d2Via2l0cGVybC9WQ1NVdGlsc191bml0dGVzdC9wYXJzZURpZmYucGw6CisgICAgICAgICAgLSBV
cGRhdGVkIHRoZSB1bml0IHRlc3RzIGFzIG5lY2Vzc2FyeS4KKyAgICAgICAgICAtIEFkZGVkIHVu
aXQgdGVzdHMgZm9yIHJlbmFtZSB3aXRoIHNpbWlsYXJpdHkgaW5kZXggMTAwJSwKKyAgICAgICAg
ICAgIHJlbmFtZSB3aXRoIHNpbWlsYXJpdHkgaW5kZXggPCAxMDAlLCBhbmQgcmVuYW1lIHdpdGgg
YSBjaGFuZ2UKKyAgICAgICAgICAgIHRvIHRoZSBleGVjdXRhYmxlIGJpdC4KKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHBlcmwvVkNTVXRpbHNfdW5pdHRlc3QvcGFyc2VHaXREaWZmSGVhZGVyLnBs
OgorICAgICAgICAgIC0gQWRkZWQgdW5pdCB0ZXN0cyBmb3IgcmVuYW1lIHdpdGggc2ltaWxhcml0
eSBpbmRleCAxMDAlLAorICAgICAgICAgICAgcmVuYW1lIHdpdGggc2ltaWxhcml0eSBpbmRleCA8
IDEwMCUsIGFuZCByZW5hbWUgd2l0aCBhIGNoYW5nZQorICAgICAgICAgICAgdG8gdGhlIGV4ZWN1
dGFibGUgYml0LgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cGVybC9WQ1NVdGlsc191bml0dGVz
dC9wYXJzZVBhdGNoLnBsOgorICAgICAgICAgIC0gVXBkYXRlZCB0aGUgdW5pdCB0ZXN0cyBhcyBu
ZWNlc3NhcnkuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRwZXJsL1ZDU1V0aWxzX3VuaXR0ZXN0
L3BhcnNlU3ZuRGlmZkhlYWRlci5wbDoKKyAgICAgICAgICAtIFNpbXBsaWZpZWQgdGhlIGNhcnJp
YWdlLXJldHVybiB1bml0IHRlc3QgdG8gbW9yZSBuYXJyb3dseSB0ZXN0CisgICAgICAgICAgICBv
bmx5IGNhcnJpYWdlIHJldHVybnMuCisKIDIwMTAtMDUtMDYgIFNoZXJpZmYgQm90ICA8d2Via2l0
LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0
IHI1ODkzMy4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvVkNTVXRpbHMucG0gYi9X
ZWJLaXRUb29scy9TY3JpcHRzL1ZDU1V0aWxzLnBtCmluZGV4IDc3N2ZlN2YuLmI2Mjk4M2YgMTAw
NjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvVkNTVXRpbHMucG0KKysrIGIvV2ViS2l0VG9v
bHMvU2NyaXB0cy9WQ1NVdGlscy5wbQpAQCAtNDI1LDE0ICs0MjUsMjEgQEAgc3ViIGlzRXhlY3V0
YWJsZSgkKQogIwogIyBSZXR1cm5zICgkaGVhZGVySGFzaFJlZiwgJGxhc3RSZWFkTGluZSk6CiAj
ICAgJGhlYWRlckhhc2hSZWY6IGEgaGFzaCByZWZlcmVuY2UgcmVwcmVzZW50aW5nIGEgZGlmZiBo
ZWFkZXIsIGFzIGZvbGxvd3MtLQotIyAgICAgY29waWVkRnJvbVBhdGg6IHRoZSBwYXRoIGZyb20g
d2hpY2ggdGhlIGZpbGUgd2FzIGNvcGllZCBpZiB0aGUgZGlmZgotIyAgICAgICAgICAgICAgICAg
ICAgIGlzIGEgY29weS4KKyMgICAgIGNvcGllZEZyb21QYXRoOiB0aGUgcGF0aCBmcm9tIHdoaWNo
IHRoZSBmaWxlIHdhcyBjb3BpZWQgb3IgbW92ZWQgaWYKKyMgICAgICAgICAgICAgICAgICAgICB0
aGUgZGlmZiBpcyBhIGNvcHkgb3IgbW92ZS4KICMgICAgIGV4ZWN1dGFibGVCaXREZWx0YTogdGhl
IHZhbHVlIDEgb3IgLTEgaWYgdGhlIGV4ZWN1dGFibGUgYml0IHdhcyBhZGRlZCBvcgogIyAgICAg
ICAgICAgICAgICAgICAgICAgICByZW1vdmVkLCByZXNwZWN0aXZlbHkuICBOZXcgYW5kIGRlbGV0
ZWQgZmlsZXMgaGF2ZQogIyAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzIHZhbHVlIG9ubHkg
aWYgdGhlIGZpbGUgaXMgZXhlY3V0YWJsZSwgaW4gd2hpY2gKICMgICAgICAgICAgICAgICAgICAg
ICAgICAgY2FzZSB0aGUgdmFsdWUgaXMgMSBhbmQgLTEsIHJlc3BlY3RpdmVseS4KICMgICAgIGlu
ZGV4UGF0aDogdGhlIHBhdGggb2YgdGhlIHRhcmdldCBmaWxlLgogIyAgICAgaXNCaW5hcnk6IHRo
ZSB2YWx1ZSAxIGlmIHRoZSBkaWZmIGlzIGZvciBhIGJpbmFyeSBmaWxlLgorIyAgICAgaXNDb3B5
V2l0aENoYW5nZXM6IHRoZSB2YWx1ZSAxIGlmIHRoZSBmaWxlIHdhcyBjb3BpZWQgb3IgbW92ZWQg
YW5kCisjICAgICAgICAgICAgICAgICAgICAgICAgdGhlIHRhcmdldCBmaWxlIHdhcyBjaGFuZ2Vk
IGluIHNvbWUgd2F5IGFmdGVyIGJlaW5nCisjICAgICAgICAgICAgICAgICAgICAgICAgY29waWVk
IG9yIG1vdmVkIChlLmcuIGlmIGl0cyBjb250ZW50cyBvciBleGVjdXRhYmxlCisjICAgICAgICAg
ICAgICAgICAgICAgICAgYml0IHdlcmUgY2hhbmdlZCkuCisjICAgICBzaG91bGREZWxldGVTb3Vy
Y2U6IHRoZSB2YWx1ZSAxIGlmIHRoZSBmaWxlIHdhcyBjb3BpZWQgb3IgbW92ZWQgYW5kCisjICAg
ICAgICAgICAgICAgICAgICAgICAgIHRoZSBzb3VyY2UgZmlsZSB3YXMgZGVsZXRlZCAtLSBpLmUu
IGlmIHRoZSBjb3B5CisjICAgICAgICAgICAgICAgICAgICAgICAgIHdhcyBhY3R1YWxseSBhIG1v
dmUuCiAjICAgICBzdm5Db252ZXJ0ZWRUZXh0OiB0aGUgaGVhZGVyIHRleHQgd2l0aCBzb21lIGxp
bmVzIGNvbnZlcnRlZCB0byBTVk4KICMgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdC4gIEdp
dC1zcGVjaWZpYyBsaW5lcyBhcmUgcHJlc2VydmVkLgogIyAgICRsYXN0UmVhZExpbmU6IHRoZSBs
aW5lIGxhc3QgcmVhZCBmcm9tICRmaWxlSGFuZGxlLgpAQCAtNDYwLDcgKzQ2Nyw4IEBAIHN1YiBw
YXJzZUdpdERpZmZIZWFkZXIoJCQpCiAgICAgbXkgJGlzQmluYXJ5OwogICAgIG15ICRuZXdFeGVj
dXRhYmxlQml0ID0gMDsKICAgICBteSAkb2xkRXhlY3V0YWJsZUJpdCA9IDA7Ci0gICAgbXkgJHNp
bWlsYXJpdHlJbmRleDsKKyAgICBteSAkc2hvdWxkRGVsZXRlU291cmNlID0gMDsKKyAgICBteSAk
c2ltaWxhcml0eUluZGV4ID0gMDsKICAgICBteSAkc3ZuQ29udmVydGVkVGV4dDsKICAgICB3aGls
ZSAoMSkgewogICAgICAgICAjIFRlbXBvcmFyaWx5IHN0cmlwIG9mZiBhbnkgZW5kLW9mLWxpbmUg
Y2hhcmFjdGVycyB0byBzaW1wbGlmeQpAQCAtNDgxLDYgKzQ4OSwxNSBAQCBzdWIgcGFyc2VHaXRE
aWZmSGVhZGVyKCQkKQogICAgICAgICAgICAgJHNpbWlsYXJpdHlJbmRleCA9ICQxOwogICAgICAg
ICB9IGVsc2lmICgvXmNvcHkgZnJvbSAoXFMrKS8pIHsKICAgICAgICAgICAgICRjb3BpZWRGcm9t
UGF0aCA9ICQxOworICAgICAgICB9IGVsc2lmICgvXnJlbmFtZSBmcm9tIChcUyspLykgeworICAg
ICAgICAgICAgIyBGSVhNRTogUmVjb3JkIHRoaXMgYXMgYSBtb3ZlIHJhdGhlciB0aGFuIGFzIGEg
Y29weS1hbmQtZGVsZXRlLgorICAgICAgICAgICAgIyAgICAgICAgVGhpcyB3aWxsIHNpbXBsaWZ5
IGFkZGluZyByZW5hbWUgc3VwcG9ydCB0byBzdm4tdW5hcHBseS4KKyAgICAgICAgICAgICMgICAg
ICAgIE90aGVyd2lzZSwgdGhlIGhhc2ggZm9yIGEgZGVsZXRpb24gd291bGQgaGF2ZSB0byBrbm93
CisgICAgICAgICAgICAjICAgICAgICBldmVyeXRoaW5nIGFib3V0IHRoZSBmaWxlIGJlaW5nIGRl
bGV0ZWQgaW4gb3JkZXIgdG8KKyAgICAgICAgICAgICMgICAgICAgIHN1cHBvcnQgdW5kb2luZyBp
dHNlbGYuICBSZWNvcmRpbmcgYXMgYSBtb3ZlIHdpbGwgYWxzbworICAgICAgICAgICAgIyAgICAg
ICAgcGVybWl0IHVzIHRvIHVzZSAic3ZuIG1vdmUiIGFuZCAiZ2l0IG1vdmUiLgorICAgICAgICAg
ICAgJGNvcGllZEZyb21QYXRoID0gJDE7CisgICAgICAgICAgICAkc2hvdWxkRGVsZXRlU291cmNl
ID0gMTsKICAgICAgICAgIyBUaGUgImdpdCBkaWZmIiBjb21tYW5kIGluY2x1ZGVzIGEgbGluZSBv
ZiB0aGUgZm9ybSAiQmluYXJ5IGZpbGVzCiAgICAgICAgICMgPHBhdGgxPiBhbmQgPHBhdGgyPiBk
aWZmZXIiIGlmIHRoZSAtLWJpbmFyeSBmbGFnIGlzIG5vdCB1c2VkLgogICAgICAgICB9IGVsc2lm
ICgvXkJpbmFyeSBmaWxlcyAvICkgewpAQCAtNTAzLDEwICs1MjAsMTIgQEAgc3ViIHBhcnNlR2l0
RGlmZkhlYWRlcigkJCkKIAogICAgIG15ICVoZWFkZXI7CiAKLSAgICAkaGVhZGVye2NvcGllZEZy
b21QYXRofSA9ICRjb3BpZWRGcm9tUGF0aCBpZiAoJGNvcGllZEZyb21QYXRoICYmICRzaW1pbGFy
aXR5SW5kZXggPT0gMTAwKTsKKyAgICAkaGVhZGVye2NvcGllZEZyb21QYXRofSA9ICRjb3BpZWRG
cm9tUGF0aCBpZiAkY29waWVkRnJvbVBhdGg7CiAgICAgJGhlYWRlcntleGVjdXRhYmxlQml0RGVs
dGF9ID0gJGV4ZWN1dGFibGVCaXREZWx0YSBpZiAkZXhlY3V0YWJsZUJpdERlbHRhOwogICAgICRo
ZWFkZXJ7aW5kZXhQYXRofSA9ICRpbmRleFBhdGg7CiAgICAgJGhlYWRlcntpc0JpbmFyeX0gPSAk
aXNCaW5hcnkgaWYgJGlzQmluYXJ5OworICAgICRoZWFkZXJ7aXNDb3B5V2l0aENoYW5nZXN9ID0g
MSBpZiAoJGNvcGllZEZyb21QYXRoICYmICgkc2ltaWxhcml0eUluZGV4ICE9IDEwMCB8fCAkZXhl
Y3V0YWJsZUJpdERlbHRhKSk7CisgICAgJGhlYWRlcntzaG91bGREZWxldGVTb3VyY2V9ID0gJHNo
b3VsZERlbGV0ZVNvdXJjZSBpZiAkc2hvdWxkRGVsZXRlU291cmNlOwogICAgICRoZWFkZXJ7c3Zu
Q29udmVydGVkVGV4dH0gPSAkc3ZuQ29udmVydGVkVGV4dDsKIAogICAgIHJldHVybiAoXCVoZWFk
ZXIsICRfKTsKQEAgLTczOCwxOSArNzU3LDQxIEBAIHN1YiBwYXJzZURpZmYoJCQpCiAgICAgICAg
ICRzdm5UZXh0IC49ICRoZWFkZXJIYXNoUmVmLT57c3ZuQ29udmVydGVkVGV4dH07CiAgICAgfQog
Ci0gICAgbXkgJWRpZmZIYXNoUmVmOwotICAgICRkaWZmSGFzaFJlZntjb3BpZWRGcm9tUGF0aH0g
PSAkaGVhZGVySGFzaFJlZi0+e2NvcGllZEZyb21QYXRofSBpZiAkaGVhZGVySGFzaFJlZi0+e2Nv
cGllZEZyb21QYXRofTsKLSAgICAjIEZJWE1FOiBBZGQgZXhlY3V0YWJsZUJpdERlbHRhIGFzIGEg
a2V5LgotICAgICRkaWZmSGFzaFJlZntpbmRleFBhdGh9ID0gJGhlYWRlckhhc2hSZWYtPntpbmRl
eFBhdGh9OwotICAgICRkaWZmSGFzaFJlZntpc0JpbmFyeX0gPSAkaGVhZGVySGFzaFJlZi0+e2lz
QmluYXJ5fSBpZiAkaGVhZGVySGFzaFJlZi0+e2lzQmluYXJ5fTsKLSAgICAkZGlmZkhhc2hSZWZ7
aXNHaXR9ID0gJGhlYWRlckhhc2hSZWYtPntpc0dpdH0gaWYgJGhlYWRlckhhc2hSZWYtPntpc0dp
dH07Ci0gICAgJGRpZmZIYXNoUmVme2lzU3ZufSA9ICRoZWFkZXJIYXNoUmVmLT57aXNTdm59IGlm
ICRoZWFkZXJIYXNoUmVmLT57aXNTdm59OwotICAgICRkaWZmSGFzaFJlZntzb3VyY2VSZXZpc2lv
bn0gPSAkaGVhZGVySGFzaFJlZi0+e3NvdXJjZVJldmlzaW9ufSBpZiAkaGVhZGVySGFzaFJlZi0+
e3NvdXJjZVJldmlzaW9ufTsKLSAgICAjIEZJWE1FOiBSZW1vdmUgdGhlIG5lZWQgZm9yIHN2bkNv
bnZlcnRlZFRleHQuICBTZWUgdGhlICVkaWZmSGFzaAotICAgICMgICAgICAgIGNvZGUgY29tbWVu
dHMgYWJvdmUgZm9yIG1vcmUgaW5mb3JtYXRpb24uCi0gICAgJGRpZmZIYXNoUmVme3N2bkNvbnZl
cnRlZFRleHR9ID0gJHN2blRleHQ7Ci0KLSAgICByZXR1cm4gKFwlZGlmZkhhc2hSZWYsICRsaW5l
KTsKKyAgICBteSBAZGlmZkhhc2hSZWZzOworCisgICAgaWYgKCRoZWFkZXJIYXNoUmVmLT57c2hv
dWxkRGVsZXRlU291cmNlfSkgeworICAgICAgICBteSAlZGVsZXRpb25IYXNoOworICAgICAgICAk
ZGVsZXRpb25IYXNoe2luZGV4UGF0aH0gPSAkaGVhZGVySGFzaFJlZi0+e2NvcGllZEZyb21QYXRo
fTsKKyAgICAgICAgJGRlbGV0aW9uSGFzaHtpc0RlbGV0aW9ufSA9IDE7CisgICAgICAgIHB1c2gg
QGRpZmZIYXNoUmVmcywgXCVkZWxldGlvbkhhc2g7CisgICAgfQorICAgIGlmICgkaGVhZGVySGFz
aFJlZi0+e2NvcGllZEZyb21QYXRofSkgeworICAgICAgICBteSAlY29weUhhc2g7CisgICAgICAg
ICRjb3B5SGFzaHtjb3BpZWRGcm9tUGF0aH0gPSAkaGVhZGVySGFzaFJlZi0+e2NvcGllZEZyb21Q
YXRofTsKKyAgICAgICAgJGNvcHlIYXNoe2luZGV4UGF0aH0gPSAkaGVhZGVySGFzaFJlZi0+e2lu
ZGV4UGF0aH07CisgICAgICAgICRjb3B5SGFzaHtzb3VyY2VSZXZpc2lvbn0gPSAkaGVhZGVySGFz
aFJlZi0+e3NvdXJjZVJldmlzaW9ufSBpZiAkaGVhZGVySGFzaFJlZi0+e3NvdXJjZVJldmlzaW9u
fTsKKyAgICAgICAgcHVzaCBAZGlmZkhhc2hSZWZzLCBcJWNvcHlIYXNoOworICAgIH0KKyAgICBp
ZiAoISRoZWFkZXJIYXNoUmVmLT57Y29waWVkRnJvbVBhdGh9IHx8ICRoZWFkZXJIYXNoUmVmLT57
aXNDb3B5V2l0aENoYW5nZXN9KSB7CisgICAgICAgICMgVGhlbiBhZGQgdGhlIHVzdWFsIGZpbGUg
bW9kaWZpY2F0aW9uLgorICAgICAgICBteSAlZGlmZkhhc2g7CisgICAgICAgICMgRklYTUU6IEFk
ZCBleGVjdXRhYmxlQml0RGVsdGEgYXMgYSBrZXkuCisgICAgICAgICRkaWZmSGFzaHtpbmRleFBh
dGh9ID0gJGhlYWRlckhhc2hSZWYtPntpbmRleFBhdGh9OworICAgICAgICAkZGlmZkhhc2h7aXNC
aW5hcnl9ID0gJGhlYWRlckhhc2hSZWYtPntpc0JpbmFyeX0gaWYgJGhlYWRlckhhc2hSZWYtPntp
c0JpbmFyeX07CisgICAgICAgICRkaWZmSGFzaHtpc0dpdH0gPSAkaGVhZGVySGFzaFJlZi0+e2lz
R2l0fSBpZiAkaGVhZGVySGFzaFJlZi0+e2lzR2l0fTsKKyAgICAgICAgJGRpZmZIYXNoe2lzU3Zu
fSA9ICRoZWFkZXJIYXNoUmVmLT57aXNTdm59IGlmICRoZWFkZXJIYXNoUmVmLT57aXNTdm59Owor
ICAgICAgICBpZiAoISRoZWFkZXJIYXNoUmVmLT57Y29waWVkRnJvbVBhdGh9KSB7CisgICAgICAg
ICAgICAjIElmIHRoZSBmaWxlIHdhcyBjb3BpZWQsIHRoZW4gd2UgaGF2ZSBhbHJlYWR5IGluY29y
cG9yYXRlZCB0aGUKKyAgICAgICAgICAgICMgc291cmNlUmV2aXNpb24gaW5mb3JtYXRpb24gaW50
byB0aGUgY2hhbmdlLgorICAgICAgICAgICAgJGRpZmZIYXNoe3NvdXJjZVJldmlzaW9ufSA9ICRo
ZWFkZXJIYXNoUmVmLT57c291cmNlUmV2aXNpb259IGlmICRoZWFkZXJIYXNoUmVmLT57c291cmNl
UmV2aXNpb259OworICAgICAgICB9CisgICAgICAgICMgRklYTUU6IFJlbW92ZSB0aGUgbmVlZCBm
b3Igc3ZuQ29udmVydGVkVGV4dC4gIFNlZSB0aGUgJWRpZmZIYXNoCisgICAgICAgICMgICAgICAg
IGNvZGUgY29tbWVudHMgYWJvdmUgZm9yIG1vcmUgaW5mb3JtYXRpb24uCisgICAgICAgICRkaWZm
SGFzaHtzdm5Db252ZXJ0ZWRUZXh0fSA9ICRzdm5UZXh0OworICAgICAgICBwdXNoIEBkaWZmSGFz
aFJlZnMsIFwlZGlmZkhhc2g7CisgICAgfQorCisgICAgcmV0dXJuIChcQGRpZmZIYXNoUmVmcywg
JGxpbmUpOwogfQogCiAjIFBhcnNlIGEgcGF0Y2ggZmlsZSBjcmVhdGVkIGJ5IHN2bi1jcmVhdGUt
cGF0Y2guCkBAIC03NjYsMTYgKzgwNywxNiBAQCBzdWIgcGFyc2VQYXRjaCgkKQogewogICAgIG15
ICgkZmlsZUhhbmRsZSkgPSBAXzsKIAorICAgIG15ICRuZXdEaWZmSGFzaFJlZnM7CiAgICAgbXkg
QGRpZmZIYXNoUmVmczsgIyByZXR1cm4gdmFsdWUKIAogICAgIG15ICRsaW5lID0gPCRmaWxlSGFu
ZGxlPjsKIAogICAgIHdoaWxlIChkZWZpbmVkKCRsaW5lKSkgeyAjIE90aGVyd2lzZSwgYXQgRU9G
LgogCi0gICAgICAgIG15ICRkaWZmSGFzaFJlZjsKLSAgICAgICAgKCRkaWZmSGFzaFJlZiwgJGxp
bmUpID0gcGFyc2VEaWZmKCRmaWxlSGFuZGxlLCAkbGluZSk7CisgICAgICAgICgkbmV3RGlmZkhh
c2hSZWZzLCAkbGluZSkgPSBwYXJzZURpZmYoJGZpbGVIYW5kbGUsICRsaW5lKTsKIAotICAgICAg
ICBwdXNoIEBkaWZmSGFzaFJlZnMsICRkaWZmSGFzaFJlZjsKKyAgICAgICAgcHVzaCBAZGlmZkhh
c2hSZWZzLCBAJG5ld0RpZmZIYXNoUmVmczsKICAgICB9CiAKICAgICByZXR1cm4gQGRpZmZIYXNo
UmVmczsKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvc3ZuLWFwcGx5IGIvV2ViS2l0
VG9vbHMvU2NyaXB0cy9zdm4tYXBwbHkKaW5kZXggYjQ5Y2NlYy4uNmMzZDZmZCAxMDA3NTUKLS0t
IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy9zdm4tYXBwbHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0
cy9zdm4tYXBwbHkKQEAgLTMwMyw3ICszMDMsNyBAQCBzdWIgcGF0Y2goJCkKIHsKICAgICBteSAo
JGRpZmZIYXNoUmVmKSA9IEBfOwogCi0gICAgbXkgJHBhdGNoID0gJGRpZmZIYXNoUmVmLT57c3Zu
Q29udmVydGVkVGV4dH07CisgICAgbXkgJHBhdGNoID0gJGRpZmZIYXNoUmVmLT57c3ZuQ29udmVy
dGVkVGV4dH0gfHwgIiI7ICMgTWFrZSBzdXJlICRwYXRjaCBpcyBpbml0aWFsaXplZC4KIAogICAg
IG15ICRmdWxsUGF0aCA9ICRkaWZmSGFzaFJlZi0+e2luZGV4UGF0aH07CiAgICAgbXkgJGlzQmlu
YXJ5ID0gJGRpZmZIYXNoUmVmLT57aXNCaW5hcnl9OwpAQCAtMzE1LDcgKzMxNSw5IEBAIHN1YiBw
YXRjaCgkKQogICAgICMgRklYTUU6IFRoaXMgaW5mb3JtYXRpb24gc2hvdWxkIGJlIGV4dHJhY3Rl
ZCBmcm9tIHRoZSBkaWZmIGZpbGUgYXMKICAgICAjICAgICAgICBwYXJ0IG9mIHRoZSBwYXJzaW5n
IHN0YWdlLCBpLmUuIHRoZSBjYWxsIHRvIHBhcnNlUGF0Y2goKS4KICAgICAkYWRkaXRpb24gPSAx
IGlmICgkcGF0Y2ggPX4gL1xuLS0tIC4rXChyZXZpc2lvbiAwXClccj9cbi8gfHwgJHBhdGNoID1+
IC9cbkBAIC0wLDAgLiogQEAvKSAmJiAhZXhpc3RzKCRjb3BpZWRGaWxlc3skZnVsbFBhdGh9KTsK
LSAgICAkZGVsZXRpb24gPSAxIGlmICRwYXRjaCA9fiAvXG5AQCAuKiBcKzAsMCBAQC87CisgICAg
IyBBIGRlbGV0aW9uIGNhbiBoYXZlIG5vICRwYXRjaCB2YWx1ZSBpbiB0aGUgY2FzZSBvZiBhIGRl
bGV0aW9uIHJlc3VsdGluZworICAgICMgZnJvbSBhIEdpdCByZW5hbWUuCisgICAgJGRlbGV0aW9u
ID0gMSBpZiAoJGRpZmZIYXNoUmVmLT57aXNEZWxldGlvbn0gfHwgJHBhdGNoID1+IC9cbkBAIC4q
IFwrMCwwIEBALyk7CiAKICAgICBpZiAoISRhZGRpdGlvbiAmJiAhJGRlbGV0aW9uICYmICEkaXNC
aW5hcnkpIHsKICAgICAgICAgIyBTdGFuZGFyZCBwYXRjaCwgcGF0Y2ggdG9vbCBjYW4gaGFuZGxl
IHRoaXMuCkBAIC0zMjQsNyArMzI2LDcgQEAgc3ViIHBhdGNoKCQpCiAgICAgICAgICAgICBhcHBs
eVBhdGNoKHNldENoYW5nZUxvZ0RhdGVBbmRSZXZpZXdlcihmaXhDaGFuZ2VMb2dQYXRjaCgkcGF0
Y2gpLCAkcmV2aWV3ZXIpLCAkZnVsbFBhdGgsIFsiLS1mdXp6PTMiXSk7CiAgICAgICAgICAgICB1
bmxpbmsoIiR7ZnVsbFBhdGh9Lm9yaWciKSBpZiAoISAkY2hhbmdlTG9nRG90T3JpZ0V4aXN0ZWQp
OwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgYXBwbHlQYXRjaCgkcGF0Y2gsICRmdWxs
UGF0aCk7CisgICAgICAgICAgICBhcHBseVBhdGNoKCRwYXRjaCwgJGZ1bGxQYXRoKSBpZiAkcGF0
Y2g7CiAgICAgICAgIH0KICAgICB9IGVsc2UgewogICAgICAgICAjIEVpdGhlciBhIGRlbGV0aW9u
LCBhbiBhZGRpdGlvbiBvciBhIGJpbmFyeSBjaGFuZ2UuCkBAIC0zMzMsMTggKzMzNSwxOSBAQCBz
dWIgcGF0Y2goJCkKIAogICAgICAgICBpZiAoJGlzQmluYXJ5KSB7CiAgICAgICAgICAgICBpZiAo
JGlzR2l0KSB7Ci0gICAgICAgICAgICAgICAgaGFuZGxlR2l0QmluYXJ5Q2hhbmdlKCRmdWxsUGF0
aCwgJHBhdGNoKTsKKyAgICAgICAgICAgICAgICBoYW5kbGVHaXRCaW5hcnlDaGFuZ2UoJGZ1bGxQ
YXRoLCAkcGF0Y2gpIGlmICRwYXRjaDsKICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
ICAgICAgaGFuZGxlQmluYXJ5Q2hhbmdlKCRmdWxsUGF0aCwgJHBhdGNoKTsKKyAgICAgICAgICAg
ICAgICBoYW5kbGVCaW5hcnlDaGFuZ2UoJGZ1bGxQYXRoLCAkcGF0Y2gpIGlmICRwYXRjaDsKICAg
ICAgICAgICAgIH0KICAgICAgICAgfSBlbHNpZiAoJGRlbGV0aW9uKSB7Ci0gICAgICAgICAgICAj
IERlbGV0aW9uCi0gICAgICAgICAgICBhcHBseVBhdGNoKCRwYXRjaCwgJGZ1bGxQYXRoLCBbIi0t
Zm9yY2UiXSk7CisgICAgICAgICAgICAjIEEgZGVsZXRpb24gY2FuIGhhdmUgbm8gJHBhdGNoIHZh
bHVlIGluIHRoZSBjYXNlIG9mIGEgZGVsZXRpb24KKyAgICAgICAgICAgICMgcmVzdWx0aW5nIGZy
b20gYSBHaXQgcmVuYW1lLgorICAgICAgICAgICAgYXBwbHlQYXRjaCgkcGF0Y2gsICRmdWxsUGF0
aCwgWyItLWZvcmNlIl0pIGlmICRwYXRjaDsKICAgICAgICAgICAgIHNjbVJlbW92ZSgkZnVsbFBh
dGgpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIyBBZGRpdGlvbgogICAgICAgICAg
ICAgcmVuYW1lKCRmdWxsUGF0aCwgIiRmdWxsUGF0aC5vcmlnIikgaWYgLWUgJGZ1bGxQYXRoOwot
ICAgICAgICAgICAgYXBwbHlQYXRjaCgkcGF0Y2gsICRmdWxsUGF0aCk7CisgICAgICAgICAgICBh
cHBseVBhdGNoKCRwYXRjaCwgJGZ1bGxQYXRoKSBpZiAkcGF0Y2g7CiAgICAgICAgICAgICB1bmxp
bmsoIiRmdWxsUGF0aC5vcmlnIikgaWYgLWUgIiRmdWxsUGF0aC5vcmlnIiAmJiBjaGVja3N1bSgk
ZnVsbFBhdGgpIGVxIGNoZWNrc3VtKCIkZnVsbFBhdGgub3JpZyIpOwogICAgICAgICAgICAgc2Nt
QWRkKCRmdWxsUGF0aCk7CiAgICAgICAgICAgICAjIFdoYXQgaXMgdGhpcyBmb3I/CmRpZmYgLS1n
aXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHBlcmwvVkNTVXRpbHNfdW5pdHRlc3QvcGFy
c2VEaWZmLnBsIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL1ZDU1V0aWxzX3VuaXR0
ZXN0L3BhcnNlRGlmZi5wbAppbmRleCA5ZjExMmIyLi42ZWZlN2NjIDEwMDY0NAotLS0gYS9XZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHBlcmwvVkNTVXRpbHNfdW5pdHRlc3QvcGFyc2VEaWZmLnBs
CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9WQ1NVdGlsc191bml0dGVzdC9w
YXJzZURpZmYucGwKQEAgLTQ3LDcgKzQ3LDcgQEAgSW5kZXg6IE1ha2VmaWxlCiAgYWxsOgogRU5E
CiAgICAgZXhwZWN0ZWRSZXR1cm4gPT4gWwoteworW3sKICAgICBzdm5Db252ZXJ0ZWRUZXh0ID0+
ICA8PCdFTkQnLCAjIFNhbWUgYXMgaW5wdXQgdGV4dAogSW5kZXg6IE1ha2VmaWxlCiA9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09CkBAIC02Miw3ICs2Miw3IEBAIEVORAogICAgIGluZGV4UGF0aCA9PiAiTWFrZWZpbGUiLAog
ICAgIGlzU3ZuID0+IDEsCiAgICAgc291cmNlUmV2aXNpb24gPT4gIjUzMDUyIiwKLX0sCit9XSwK
IHVuZGVmXSwKICAgICBleHBlY3RlZE5leHRMaW5lID0+IHVuZGVmLAogfSwKQEAgLTg0LDcgKzg0
LDcgQEAgTmFtZTogc3ZuOm1pbWUtdHlwZQogUTFkVEJ4MEFBQUI0Mml0ZzRHbGdZSmpHd01ERHlP
RE14TUR3MzRHQmdRRUFKUFFESkE9PQogRU5ECiAgICAgZXhwZWN0ZWRSZXR1cm4gPT4gWwotewor
W3sKICAgICBzdm5Db252ZXJ0ZWRUZXh0ID0+ICA8PCdFTkQnLCAjIFNhbWUgYXMgaW5wdXQgdGV4
dAogSW5kZXg6IHRlc3RfZmlsZS5zd2YKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQEAgLTEwMiw3ICsxMDIsNyBAQCBF
TkQKICAgICBpbmRleFBhdGggPT4gInRlc3RfZmlsZS5zd2YiLAogICAgIGlzQmluYXJ5ID0+IDEs
CiAgICAgaXNTdm4gPT4gMSwKLX0sCit9XSwKIHVuZGVmXSwKICAgICBleHBlY3RlZE5leHRMaW5l
ID0+IHVuZGVmLAogfSwKQEAgLTEyNCw3ICsxMjQsNyBAQCBJbmRleDogTWFrZWZpbGUKICBhbGw6
CiBFTkQKICAgICBleHBlY3RlZFJldHVybiA9PiBbCi17CitbewogICAgIHN2bkNvbnZlcnRlZFRl
eHQgPT4gIDw8J0VORCcsICMgU2FtZSBhcyBpbnB1dCB0ZXh0CiAKIExFQURJTkcgSlVOSwpAQCAt
MTQyLDcgKzE0Miw3IEBAIEVORAogICAgIGluZGV4UGF0aCA9PiAiTWFrZWZpbGUiLAogICAgIGlz
U3ZuID0+IDEsCiAgICAgc291cmNlUmV2aXNpb24gPT4gIjUzMDUyIiwKLX0sCit9XSwKIHVuZGVm
XSwKICAgICBleHBlY3RlZE5leHRMaW5lID0+IHVuZGVmLAogfSwKQEAgLTE1OCwyMCArMTU4LDEx
IEBAIEluZGV4OiBNYWtlZmlsZV9uZXcKICtNT0RVTEVTID0gSmF2YVNjcmlwdENvcmUgSmF2YVNj
cmlwdEdsdWUgV2ViQ29yZSBXZWJLaXQgV2ViS2l0VG9vbHMKIEVORAogICAgIGV4cGVjdGVkUmV0
dXJuID0+IFsKLXsKLSAgICBzdm5Db252ZXJ0ZWRUZXh0ID0+ICA8PCdFTkQnLCAjIFNhbWUgYXMg
aW5wdXQgdGV4dAotSW5kZXg6IE1ha2VmaWxlX25ldwotPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIE1ha2VmaWxl
X25ldwkocmV2aXNpb24gNTMxMzEpCShmcm9tIE1ha2VmaWxlOjUzMTMxKQotKysrIE1ha2VmaWxl
X25ldwkod29ya2luZyBjb3B5KQotQEAgLTAsMCArMSwxIEBACi0rTU9EVUxFUyA9IEphdmFTY3Jp
cHRDb3JlIEphdmFTY3JpcHRHbHVlIFdlYkNvcmUgV2ViS2l0IFdlYktpdFRvb2xzCi1FTkQKK1t7
CiAgICAgY29waWVkRnJvbVBhdGggPT4gIk1ha2VmaWxlIiwKICAgICBpbmRleFBhdGggPT4gIk1h
a2VmaWxlX25ldyIsCi0gICAgaXNTdm4gPT4gMSwKICAgICBzb3VyY2VSZXZpc2lvbiA9PiAiNTMx
MzEiLAotfSwKK31dLAogdW5kZWZdLAogICAgIGV4cGVjdGVkTmV4dExpbmUgPT4gdW5kZWYsCiB9
LApAQCAtMTkwLDcgKzE4MSw3IEBAIEluZGV4OiBNYWtlZmlsZV9uZXcKIC0tLSBNYWtlZmlsZV9u
ZXcJKHJldmlzaW9uIDUzMTMxKQkoZnJvbSBNYWtlZmlsZTo1MzEzMSkKIEVORAogICAgIGV4cGVj
dGVkUmV0dXJuID0+IFsKLXsKK1t7CiAgICAgc3ZuQ29udmVydGVkVGV4dCA9PiAgPDwnRU5EJywK
IEluZGV4OiBNYWtlZmlsZQogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpAQCAtMjAyLDcgKzE5Myw3IEBAIEVORAogICAg
IGluZGV4UGF0aCA9PiAiTWFrZWZpbGUiLAogICAgIGlzU3ZuID0+IDEsCiAgICAgc291cmNlUmV2
aXNpb24gPT4gIjUzMTMxIiwKLX0sCit9XSwKICJJbmRleDogTWFrZWZpbGVfbmV3XG4iXSwKICAg
ICBleHBlY3RlZE5leHRMaW5lID0+ICI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iLAogfSwKQEAgLTIyMyw3ICsyMTQs
NyBAQCBpbmRleCBmNWQ1ZTc0Li4zYjZhYTkyIDEwMDY0NAogQEAgLTEsMSAxLDEgQEAgcHVibGlj
OgogRU5ECiAgICAgZXhwZWN0ZWRSZXR1cm4gPT4gWwoteworW3sKICAgICBzdm5Db252ZXJ0ZWRU
ZXh0ID0+ICA8PCdFTkQnLCAjIFNhbWUgYXMgaW5wdXQgdGV4dAogSW5kZXg6IE1ha2VmaWxlCiA9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09CkBAIC0yNDAsNyArMjMxLDcgQEAgRU5ECiAgICAgaW5kZXhQYXRoID0+ICJNYWtl
ZmlsZSIsCiAgICAgaXNTdm4gPT4gMSwKICAgICBzb3VyY2VSZXZpc2lvbiA9PiAiNTMxMzEiLAot
fSwKK31dLAogdW5kZWZdLAogICAgIGV4cGVjdGVkTmV4dExpbmUgPT4gdW5kZWYsCiB9LApAQCAt
MjU4LDcgKzI0OSw3IEBAIGluZGV4IGY1ZDVlNzQuLjNiNmFhOTIgMTAwNjQ0CiBAQCAtMSwxIDEs
MSBAQCBwdWJsaWM6CiBFTkQKICAgICBleHBlY3RlZFJldHVybiA9PiBbCi17CitbewogICAgIHN2
bkNvbnZlcnRlZFRleHQgPT4gIDw8J0VORCcsCiBJbmRleDogTWFrZWZpbGUKIGluZGV4IGY1ZDVl
NzQuLjNiNmFhOTIgMTAwNjQ0CkBAIC0yNjgsNyArMjU5LDcgQEAgaW5kZXggZjVkNWU3NC4uM2I2
YWE5MiAxMDA2NDQKIEVORAogICAgIGluZGV4UGF0aCA9PiAiTWFrZWZpbGUiLAogICAgIGlzR2l0
ID0+IDEsCi19LAorfV0sCiB1bmRlZl0sCiAgICAgZXhwZWN0ZWROZXh0TGluZSA9PiB1bmRlZiwK
IH0sCkBAIC0yODYsNyArMjc3LDcgQEAgSW5kZXg6IE1ha2VmaWxlX25ldwogLS0tIE1ha2VmaWxl
X25ldwkocmV2aXNpb24gNTMxMzEpCShmcm9tIE1ha2VmaWxlOjUzMTMxKQogRU5ECiAgICAgZXhw
ZWN0ZWRSZXR1cm4gPT4gWwoteworW3sKICAgICBzdm5Db252ZXJ0ZWRUZXh0ID0+ICA8PCdFTkQn
LAogSW5kZXg6IE1ha2VmaWxlCiBpbmRleCBmNWQ1ZTc0Li4zYjZhYTkyIDEwMDY0NApAQCAtMjk5
LDEwICsyOTAsMTE5IEBAIEluZGV4OiBNYWtlZmlsZV9uZXcKIEVORAogICAgIGluZGV4UGF0aCA9
PiAiTWFrZWZpbGUiLAogICAgIGlzR2l0ID0+IDEsCi19LAorfV0sCiB1bmRlZl0sCiAgICAgZXhw
ZWN0ZWROZXh0TGluZSA9PiB1bmRlZiwKIH0sCisjIyMjCisjICAgIEdpdCB0ZXN0IGNhc2VzOiBm
aWxlIG1vdmVzIChtdWx0aXBsZSByZXR1cm4gdmFsdWVzKQorIyMKK3sKKyAgICBkaWZmTmFtZSA9
PiAiR2l0OiByZW5hbWUgKHdpdGggc2ltaWxhcml0eSBpbmRleCAxMDAlKSIsCisgICAgaW5wdXRU
ZXh0ID0+IDw8J0VORCcsCitkaWZmIC0tZ2l0IGEvZm9vIGIvZm9vX25ldworc2ltaWxhcml0eSBp
bmRleCAxMDAlCityZW5hbWUgZnJvbSBmb28KK3JlbmFtZSB0byBmb29fbmV3CitkaWZmIC0tZ2l0
IGEvYmFyIGIvYmFyCitpbmRleCBkNDVkZDQwLi4zNDk0NTI2IDEwMDY0NAorRU5ECisgICAgZXhw
ZWN0ZWRSZXR1cm4gPT4gWworW3sKKyAgICBpbmRleFBhdGggPT4gImZvbyIsCisgICAgaXNEZWxl
dGlvbiA9PiAxLAorfSwKK3sKKyAgICBjb3BpZWRGcm9tUGF0aCA9PiAiZm9vIiwKKyAgICBpbmRl
eFBhdGggPT4gImZvb19uZXciLAorfV0sCisiZGlmZiAtLWdpdCBhL2JhciBiL2JhclxuIl0sCisg
ICAgZXhwZWN0ZWROZXh0TGluZSA9PiAiaW5kZXggZDQ1ZGQ0MC4uMzQ5NDUyNiAxMDA2NDRcbiIs
Cit9LAoreworICAgIGRpZmZOYW1lID0+ICJyZW5hbWUgKHdpdGggc2ltaWxhcml0eSBpbmRleCA8
IDEwMCUpIiwKKyAgICBpbnB1dFRleHQgPT4gPDwnRU5EJywKK2RpZmYgLS1naXQgYS9mb28gYi9m
b29fbmV3CitzaW1pbGFyaXR5IGluZGV4IDk5JQorcmVuYW1lIGZyb20gZm9vCityZW5hbWUgdG8g
Zm9vX25ldworaW5kZXggMWU1MGQxZC4uMTQ1OWQyMSAxMDA2NDQKKy0tLSBhL2ZvbworKysrIGIv
Zm9vX25ldworQEAgLTE1LDMgKzE1LDQgQEAgcmVsZWFzZSByIGRlcGxveW1lbnQgZGVwIGRlcGxv
eToKKyBsaW5lMQorIGxpbmUyCisgbGluZTMKKytsaW5lNAorZGlmZiAtLWdpdCBhL2JhciBiL2Jh
cgoraW5kZXggZDQ1ZGQ0MC4uMzQ5NDUyNiAxMDA2NDQKK0VORAorICAgIGV4cGVjdGVkUmV0dXJu
ID0+IFsKK1t7CisgICAgaW5kZXhQYXRoID0+ICJmb28iLAorICAgIGlzRGVsZXRpb24gPT4gMSwK
K30sCit7CisgICAgY29waWVkRnJvbVBhdGggPT4gImZvbyIsCisgICAgaW5kZXhQYXRoID0+ICJm
b29fbmV3IiwKK30sCit7CisgICAgaW5kZXhQYXRoID0+ICJmb29fbmV3IiwKKyAgICBpc0dpdCA9
PiAxLAorICAgIHN2bkNvbnZlcnRlZFRleHQgPT4gPDwnRU5EJywKK0luZGV4OiBmb29fbmV3Citz
aW1pbGFyaXR5IGluZGV4IDk5JQorcmVuYW1lIGZyb20gZm9vCityZW5hbWUgdG8gZm9vX25ldwor
aW5kZXggMWU1MGQxZC4uMTQ1OWQyMSAxMDA2NDQKKy0tLSBmb29fbmV3CisrKysgZm9vX25ldwor
QEAgLTE1LDMgKzE1LDQgQEAgcmVsZWFzZSByIGRlcGxveW1lbnQgZGVwIGRlcGxveToKKyBsaW5l
MQorIGxpbmUyCisgbGluZTMKKytsaW5lNAorRU5ECit9XSwKKyJkaWZmIC0tZ2l0IGEvYmFyIGIv
YmFyXG4iXSwKKyAgICBleHBlY3RlZE5leHRMaW5lID0+ICJpbmRleCBkNDVkZDQwLi4zNDk0NTI2
IDEwMDY0NFxuIiwKK30sCit7CisgICAgZGlmZk5hbWUgPT4gInJlbmFtZSAod2l0aCBleGVjdXRh
YmxlIGJpdCBjaGFuZ2UpIiwKKyAgICBpbnB1dFRleHQgPT4gPDwnRU5EJywKK2RpZmYgLS1naXQg
YS9mb28gYi9mb29fbmV3CitvbGQgbW9kZSAxMDA2NDQKK25ldyBtb2RlIDEwMDc1NQorc2ltaWxh
cml0eSBpbmRleCAxMDAlCityZW5hbWUgZnJvbSBmb28KK3JlbmFtZSB0byBmb29fbmV3CitkaWZm
IC0tZ2l0IGEvYmFyIGIvYmFyCitpbmRleCBkNDVkZDQwLi4zNDk0NTI2IDEwMDY0NAorRU5ECisg
ICAgZXhwZWN0ZWRSZXR1cm4gPT4gWworW3sKKyAgICBpbmRleFBhdGggPT4gImZvbyIsCisgICAg
aXNEZWxldGlvbiA9PiAxLAorfSwKK3sKKyAgICBjb3BpZWRGcm9tUGF0aCA9PiAiZm9vIiwKKyAg
ICBpbmRleFBhdGggPT4gImZvb19uZXciLAorfSwKK3sKKyAgICBpbmRleFBhdGggPT4gImZvb19u
ZXciLAorICAgIGlzR2l0ID0+IDEsCisgICAgc3ZuQ29udmVydGVkVGV4dCA9PiA8PCdFTkQnLAor
SW5kZXg6IGZvb19uZXcKK29sZCBtb2RlIDEwMDY0NAorbmV3IG1vZGUgMTAwNzU1CitzaW1pbGFy
aXR5IGluZGV4IDEwMCUKK3JlbmFtZSBmcm9tIGZvbworcmVuYW1lIHRvIGZvb19uZXcKK0VORAor
fV0sCisiZGlmZiAtLWdpdCBhL2JhciBiL2JhclxuIl0sCisgICAgZXhwZWN0ZWROZXh0TGluZSA9
PiAiaW5kZXggZDQ1ZGQ0MC4uMzQ5NDUyNiAxMDA2NDRcbiIsCit9LAogKTsKIAogbXkgJHRlc3RD
YXNlc0NvdW50ID0gQHRlc3RDYXNlSGFzaFJlZnM7CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9T
Y3JpcHRzL3dlYmtpdHBlcmwvVkNTVXRpbHNfdW5pdHRlc3QvcGFyc2VHaXREaWZmSGVhZGVyLnBs
IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL1ZDU1V0aWxzX3VuaXR0ZXN0L3BhcnNl
R2l0RGlmZkhlYWRlci5wbAppbmRleCA5ZTJhODhkLi42NjQ4YzVkIDEwMDY0NAotLS0gYS9XZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHBlcmwvVkNTVXRpbHNfdW5pdHRlc3QvcGFyc2VHaXREaWZm
SGVhZGVyLnBsCisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9WQ1NVdGlsc191
bml0dGVzdC9wYXJzZUdpdERpZmZIZWFkZXIucGwKQEAgLTE0OSw3ICsxNDksMTAyIEBAIHNpbWls
YXJpdHkgaW5kZXggOTklCiBjb3B5IGZyb20gZm9vCiBjb3B5IHRvIGZvb19uZXcKIEVORAorICAg
IGNvcGllZEZyb21QYXRoID0+ICJmb28iLAorICAgIGluZGV4UGF0aCA9PiAiZm9vX25ldyIsCisg
ICAgaXNDb3B5V2l0aENoYW5nZXMgPT4gMSwKK30sCisiZGlmZiAtLWdpdCBhL2JhciBiL2Jhclxu
Il0sCisgICAgZXhwZWN0ZWROZXh0TGluZSA9PiAiaW5kZXggZDQ1ZGQ0MC4uMzQ5NDUyNiAxMDA2
NDRcbiIsCit9LAoreyAgICMgTmV3IHRlc3QKKyAgICBkaWZmTmFtZSA9PiAicmVuYW1lICh3aXRo
IHNpbWlsYXJpdHkgaW5kZXggMTAwJSkiLAorICAgIGlucHV0VGV4dCA9PiA8PCdFTkQnLAorZGlm
ZiAtLWdpdCBhL2ZvbyBiL2Zvb19uZXcKK3NpbWlsYXJpdHkgaW5kZXggMTAwJQorcmVuYW1lIGZy
b20gZm9vCityZW5hbWUgdG8gZm9vX25ldworZGlmZiAtLWdpdCBhL2JhciBiL2JhcgoraW5kZXgg
ZDQ1ZGQ0MC4uMzQ5NDUyNiAxMDA2NDQKK0VORAorICAgIGV4cGVjdGVkUmV0dXJuID0+IFsKK3sK
KyAgICBzdm5Db252ZXJ0ZWRUZXh0ID0+IDw8J0VORCcsCitJbmRleDogZm9vX25ldworc2ltaWxh
cml0eSBpbmRleCAxMDAlCityZW5hbWUgZnJvbSBmb28KK3JlbmFtZSB0byBmb29fbmV3CitFTkQK
KyAgICBjb3BpZWRGcm9tUGF0aCA9PiAiZm9vIiwKKyAgICBpbmRleFBhdGggPT4gImZvb19uZXci
LAorICAgIHNob3VsZERlbGV0ZVNvdXJjZSA9PiAxLAorfSwKKyJkaWZmIC0tZ2l0IGEvYmFyIGIv
YmFyXG4iXSwKKyAgICBleHBlY3RlZE5leHRMaW5lID0+ICJpbmRleCBkNDVkZDQwLi4zNDk0NTI2
IDEwMDY0NFxuIiwKK30sCit7ICAgIyBOZXcgdGVzdAorICAgIGRpZmZOYW1lID0+ICJyZW5hbWUg
KHdpdGggc2ltaWxhcml0eSBpbmRleCA8IDEwMCUpIiwKKyAgICBpbnB1dFRleHQgPT4gPDwnRU5E
JywKK2RpZmYgLS1naXQgYS9mb28gYi9mb29fbmV3CitzaW1pbGFyaXR5IGluZGV4IDk5JQorcmVu
YW1lIGZyb20gZm9vCityZW5hbWUgdG8gZm9vX25ldworaW5kZXggMWU1MGQxZC4uMTQ1OWQyMSAx
MDA2NDQKKy0tLSBhL2ZvbworKysrIGIvZm9vX25ldworQEAgLTE1LDMgKzE1LDQgQEAgcmVsZWFz
ZSByIGRlcGxveW1lbnQgZGVwIGRlcGxveToKKyBsaW5lMQorIGxpbmUyCisgbGluZTMKKytsaW5l
NAorZGlmZiAtLWdpdCBhL2JhciBiL2JhcgoraW5kZXggZDQ1ZGQ0MC4uMzQ5NDUyNiAxMDA2NDQK
K0VORAorICAgIGV4cGVjdGVkUmV0dXJuID0+IFsKK3sKKyAgICBzdm5Db252ZXJ0ZWRUZXh0ID0+
IDw8J0VORCcsCitJbmRleDogZm9vX25ldworc2ltaWxhcml0eSBpbmRleCA5OSUKK3JlbmFtZSBm
cm9tIGZvbworcmVuYW1lIHRvIGZvb19uZXcKK2luZGV4IDFlNTBkMWQuLjE0NTlkMjEgMTAwNjQ0
CistLS0gZm9vX25ldworKysrIGZvb19uZXcKK0VORAorICAgIGNvcGllZEZyb21QYXRoID0+ICJm
b28iLAorICAgIGluZGV4UGF0aCA9PiAiZm9vX25ldyIsCisgICAgaXNDb3B5V2l0aENoYW5nZXMg
PT4gMSwKKyAgICBzaG91bGREZWxldGVTb3VyY2UgPT4gMSwKK30sCisiQEAgLTE1LDMgKzE1LDQg
QEAgcmVsZWFzZSByIGRlcGxveW1lbnQgZGVwIGRlcGxveTpcbiJdLAorICAgIGV4cGVjdGVkTmV4
dExpbmUgPT4gIiBsaW5lMVxuIiwKK30sCit7ICAgIyBOZXcgdGVzdAorICAgIGRpZmZOYW1lID0+
ICJyZW5hbWUgKHdpdGggZXhlY3V0YWJsZSBiaXQgY2hhbmdlKSIsCisgICAgaW5wdXRUZXh0ID0+
IDw8J0VORCcsCitkaWZmIC0tZ2l0IGEvZm9vIGIvZm9vX25ldworb2xkIG1vZGUgMTAwNjQ0Citu
ZXcgbW9kZSAxMDA3NTUKK3NpbWlsYXJpdHkgaW5kZXggMTAwJQorcmVuYW1lIGZyb20gZm9vCity
ZW5hbWUgdG8gZm9vX25ldworZGlmZiAtLWdpdCBhL2JhciBiL2JhcgoraW5kZXggZDQ1ZGQ0MC4u
MzQ5NDUyNiAxMDA2NDQKK0VORAorICAgIGV4cGVjdGVkUmV0dXJuID0+IFsKK3sKKyAgICBzdm5D
b252ZXJ0ZWRUZXh0ID0+IDw8J0VORCcsCitJbmRleDogZm9vX25ldworb2xkIG1vZGUgMTAwNjQ0
CituZXcgbW9kZSAxMDA3NTUKK3NpbWlsYXJpdHkgaW5kZXggMTAwJQorcmVuYW1lIGZyb20gZm9v
CityZW5hbWUgdG8gZm9vX25ldworRU5ECisgICAgY29waWVkRnJvbVBhdGggPT4gImZvbyIsCisg
ICAgZXhlY3V0YWJsZUJpdERlbHRhID0+IDEsCiAgICAgaW5kZXhQYXRoID0+ICJmb29fbmV3IiwK
KyAgICBpc0NvcHlXaXRoQ2hhbmdlcyA9PiAxLAorICAgIHNob3VsZERlbGV0ZVNvdXJjZSA9PiAx
LAogfSwKICJkaWZmIC0tZ2l0IGEvYmFyIGIvYmFyXG4iXSwKICAgICBleHBlY3RlZE5leHRMaW5l
ID0+ICJpbmRleCBkNDVkZDQwLi4zNDk0NTI2IDEwMDY0NFxuIiwKZGlmZiAtLWdpdCBhL1dlYktp
dFRvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9WQ1NVdGlsc191bml0dGVzdC9wYXJzZVBhdGNoLnBs
IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL1ZDU1V0aWxzX3VuaXR0ZXN0L3BhcnNl
UGF0Y2gucGwKaW5kZXggZTZmODJjYS4uOGFhZTNkNCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMv
U2NyaXB0cy93ZWJraXRwZXJsL1ZDU1V0aWxzX3VuaXR0ZXN0L3BhcnNlUGF0Y2gucGwKKysrIGIv
V2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL1ZDU1V0aWxzX3VuaXR0ZXN0L3BhcnNlUGF0
Y2gucGwKQEAgLTY5LDE0ICs2OSw2IEBAIEVORAogICAgIHNvdXJjZVJldmlzaW9uID0+ICI1MzEz
MSIsCiB9LAogewotICAgIHN2bkNvbnZlcnRlZFRleHQgPT4gPDwnRU5EJywKLUluZGV4OiBNYWtl
ZmlsZV9uZXcKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tLSBNYWtlZmlsZV9uZXcJKHJldmlzaW9uIDUzMTMxKQko
ZnJvbSBNYWtlZmlsZTo1MzEzMSkKLSsrKyBNYWtlZmlsZV9uZXcJKHdvcmtpbmcgY29weSkKLUBA
IC0wLDAgKzEsMSBAQAotK01PRFVMRVMgPSBKYXZhU2NyaXB0Q29yZSBKYXZhU2NyaXB0R2x1ZSBX
ZWJDb3JlIFdlYktpdCBXZWJLaXRUb29scwotRU5ECiAgICAgY29waWVkRnJvbVBhdGggPT4gIk1h
a2VmaWxlIiwKICAgICBpbmRleFBhdGggPT4gIk1ha2VmaWxlX25ldyIsCiAgICAgc291cmNlUmV2
aXNpb24gPT4gIjUzMTMxIiwKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0
cGVybC9WQ1NVdGlsc191bml0dGVzdC9wYXJzZVN2bkRpZmZIZWFkZXIucGwgYi9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHBlcmwvVkNTVXRpbHNfdW5pdHRlc3QvcGFyc2VTdm5EaWZmSGVhZGVy
LnBsCmluZGV4IGI3MzI4ODkuLjA3ODg0OWYgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cGVybC9WQ1NVdGlsc191bml0dGVzdC9wYXJzZVN2bkRpZmZIZWFkZXIucGwKKysr
IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL1ZDU1V0aWxzX3VuaXR0ZXN0L3BhcnNl
U3ZuRGlmZkhlYWRlci5wbApAQCAtMTAwLDcgKzEwMCw3IEBAIEluZGV4OiBpbmRleF9wYXRoLnB5
CiBFTkQKICAgICBleHBlY3RlZFJldHVybiA9PiBbCiB7Ci0gICAgc3ZuQ29udmVydGVkVGV4dCA9
PiA8PCdFTkQnLAorICAgIHN2bkNvbnZlcnRlZFRleHQgPT4gPDxFTkQsCiBJbmRleDogaW5kZXhf
cGF0aC5weQogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQogLS0tIGluZGV4X3BhdGgucHkJKHJldmlzaW9uIDUzMDQ4KQko
ZnJvbSBjb3BpZWRfZnJvbV9wYXRoLnB5OjUzMDQ4KQpAQCAtMTE5LDcgKzExOSw3IEBAIEVORAog
ICAgIGlucHV0VGV4dCA9PiA8PEVORCwgIyBObyBzaW5nbGUgcXVvdGVzIHRvIGFsbG93IGludGVy
cG9sYXRpb24gb2YgIlxyIgogSW5kZXg6IGluZGV4X3BhdGgucHlccgogPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyCi0t
LS0gaW5kZXhfcGF0aC5weQkocmV2aXNpb24gNTMwNDgpCShmcm9tIGNvcGllZF9mcm9tX3BhdGgu
cHk6NTMwNDgpXHIKKy0tLSBpbmRleF9wYXRoLnB5CShyZXZpc2lvbiA1MzA0OClccgogKysrIGlu
ZGV4X3BhdGgucHkJKHdvcmtpbmcgY29weSlccgogQEAgLTAsMCArMSw3IEBAXHIKICsjIFB5dGhv
biBmaWxlLi4uXHIKQEAgLTEyOSwxMCArMTI5LDkgQEAgRU5ECiAgICAgc3ZuQ29udmVydGVkVGV4
dCA9PiA8PEVORCwgIyBObyBzaW5nbGUgcXVvdGVzIHRvIGFsbG93IGludGVycG9sYXRpb24gb2Yg
IlxyIgogSW5kZXg6IGluZGV4X3BhdGgucHlccgogPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyCi0tLS0gaW5kZXhfcGF0
aC5weQkocmV2aXNpb24gNTMwNDgpCShmcm9tIGNvcGllZF9mcm9tX3BhdGgucHk6NTMwNDgpXHIK
Ky0tLSBpbmRleF9wYXRoLnB5CShyZXZpc2lvbiA1MzA0OClccgogKysrIGluZGV4X3BhdGgucHkJ
KHdvcmtpbmcgY29weSlccgogRU5ECi0gICAgY29waWVkRnJvbVBhdGggPT4gImNvcGllZF9mcm9t
X3BhdGgucHkiLAogICAgIGluZGV4UGF0aCA9PiAiaW5kZXhfcGF0aC5weSIsCiAgICAgc291cmNl
UmV2aXNpb24gPT4gNTMwNDgsCiB9LAo=
</data>
<flag name="review"
          id="39617"
          type_id="1"
          status="+"
          setter="dbates"
    />
    <flag name="commit-queue"
          id="39618"
          type_id="3"
          status="-"
          setter="cjerdonek"
    />
          </attachment>
      

    </bug>

</bugzilla>