<?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>75825</bug_id>
          
          <creation_ts>2012-01-08 21:38:16 -0800</creation_ts>
          <short_desc>webkit-patch land should automatically add svn:mime-type for .png files</short_desc>
          <delta_ts>2012-07-11 01:34:48 -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>Unspecified</rep_platform>
          <op_sys>Unspecified</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>86373</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Csaba Osztrogonác">ossy</assigned_to>
          <cc>abarth</cc>
    
    <cc>bank</cc>
    
    <cc>cjerdonek</cc>
    
    <cc>dpranke</cc>
    
    <cc>galpeter</cc>
    
    <cc>levin</cc>
    
    <cc>ojan</cc>
    
    <cc>ossy</cc>
    
    <cc>robert</cc>
    
    <cc>schenney</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>webkit-sed</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>531958</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-01-08 21:38:16 -0800</bug_when>
    <thetext>webkit-patch land should automatically add svn:mime-type for .png files

Or maybe just warn when it&apos;s missing?  See bug 75824.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>593343</commentid>
    <comment_count>1</comment_count>
    <who name="Balazs Ankes">bank</who>
    <bug_when>2012-04-02 04:33:49 -0700</bug_when>
    <thetext>Can anyone help me, where can I start to solve this problem?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>593621</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-04-02 11:21:35 -0700</bug_when>
    <thetext>I believe this can only be done for SVN.  You&apos;d have to edit svn.py to add this ability, and the presumably make a new Step() class which was called by various Command objects and which added this mime type for necessaary png files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>593623</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-04-02 11:22:23 -0700</bug_when>
    <thetext>I&apos;m no longer convinced this is the right way to solve this problem.  Do we already have a scrxipt which can fix this globally for the svn repository?  Should we just run that scxript every night on a bot somewhere?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>593633</commentid>
    <comment_count>4</comment_count>
      <attachid>135140</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-04-02 11:36:15 -0700</bug_when>
    <thetext>Created attachment 135140
script to auto-update svn mime-types

I wrote this script and ran it once through the repo. I don&apos;t have time to properly write tests for it and get the patch reviewed/committed. If someone else wants to take it over, they&apos;re more than welcome to. Put this script in Tools/Scripts and it should do the right thing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>595340</commentid>
    <comment_count>5</comment_count>
    <who name="Balazs Ankes">bank</who>
    <bug_when>2012-04-04 02:38:14 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Created an attachment (id=135140) [details]
&gt; script to auto-update svn mime-types
Thank you!
&gt; 
&gt; I wrote this script and ran it once through the repo. I don&apos;t have time to properly write tests for it and get the patch reviewed/committed. If someone else wants to take it over, they&apos;re more than welcome to. Put this script in Tools/Scripts and it should do the right thing.
I take care of it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>602969</commentid>
    <comment_count>6</comment_count>
    <who name="Balazs Ankes">bank</who>
    <bug_when>2012-04-16 01:33:53 -0700</bug_when>
    <thetext>I realized I could use the svn config file reader and the config file path getter parts from the webkitpy/style/checkers/png.py. I want to avoid the code duplication. My idea is I outsource those lines to a detached file and use it. The question is where can I place this file? (I would put it to webkitpy/common but maybe I think it wrong)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>603975</commentid>
    <comment_count>7</comment_count>
      <attachid>137527</attachid>
    <who name="Balazs Ankes">bank</who>
    <bug_when>2012-04-17 06:22:12 -0700</bug_when>
    <thetext>Created attachment 137527
work in progress

I finished the task, but I have a question. I saw there is no unittest all of the steps (webkitpy/tool/steps), should I write?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607635</commentid>
    <comment_count>8</comment_count>
      <attachid>138335</attachid>
    <who name="Balazs Ankes">bank</who>
    <bug_when>2012-04-23 06:29:29 -0700</bug_when>
    <thetext>Created attachment 138335
proposed fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>614202</commentid>
    <comment_count>9</comment_count>
    <who name="Balazs Ankes">bank</who>
    <bug_when>2012-05-02 05:14:20 -0700</bug_when>
    <thetext>Could somebody check my patch, please?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>614361</commentid>
    <comment_count>10</comment_count>
      <attachid>138335</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-05-02 09:37:16 -0700</bug_when>
    <thetext>Comment on attachment 138335
proposed fix

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

I took a quick look.  One note below.  Ideally Eric or Dirk would review your patch.

&gt; Tools/Scripts/webkitpy/tool/steps/addsvnmimetypeforpng.py:43
&gt; +            detector = SCMDetector(self._fs, Executive()).detect_scm_system(self._fs.getcwd())

We should get the Executive from the tool so that it gets mocked properly during testing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>614665</commentid>
    <comment_count>11</comment_count>
      <attachid>138335</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-05-02 14:23:44 -0700</bug_when>
    <thetext>Comment on attachment 138335
proposed fix

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

&gt; Tools/Scripts/webkitpy/common/checksvnconfigfile.py:30
&gt; +import sys

It looks like sys is unused in this file ...

&gt; Tools/Scripts/webkitpy/common/checksvnconfigfile.py:33
&gt; +def check(self, platform, fs):

Is &apos;platform&apos; a PlatformInfo object? It looks like it is ... maybe this should take a host or a systemhost instead?

Also, some form of docstring would be good for this function. What is this function supposed to be checking for, and how should the return value be used?

&gt; Tools/Scripts/webkitpy/common/checksvnconfigfile.py:72
&gt; +    if platform.startswith(&apos;linux&apos;) or platform.startswith(&apos;darwin&apos;):

This should probably be 

if platform.is_win():
  config_file_path = fs.join(os.environ ...
else:
  config_file_path = fs.join(fs.expand ...

&gt; Tools/Scripts/webkitpy/style/checkers/png.py:45
&gt;          self._platform = platform or sys.platform

Does the style checker have access to a host or a tool object? It should get the platform info from that ...

&gt; Tools/Scripts/webkitpy/style/checkers/png.py:52
&gt; +            errorcode = checksvnconfigfile.check(self, self._platform, self._fs)

Instead of returning an errorcode that is a bit mask, you should consider either returning two values in a tuple, or splitting this into two functions.

&gt; Tools/Scripts/webkitpy/tool/steps/addsvnmimetypeforpng.py:36
&gt; +        self._fs = FileSystem()

You can also get the filesystem from the tool.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>615322</commentid>
    <comment_count>12</comment_count>
      <attachid>140028</attachid>
    <who name="Balazs Ankes">bank</who>
    <bug_when>2012-05-03 09:07:30 -0700</bug_when>
    <thetext>Created attachment 140028
proposed fix

The improved patch based on comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>615791</commentid>
    <comment_count>13</comment_count>
      <attachid>140028</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-05-03 16:48:43 -0700</bug_when>
    <thetext>Comment on attachment 140028
proposed fix

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

This looks pretty good (with the one quibble), but normally we require unit tests for new code. Can you add some unit tests as well?

&gt; Tools/Scripts/webkitpy/common/checksvnconfigfile.py:46
&gt; +        return (1, 1, 1)

You should use True/False instead of 1/0.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>616112</commentid>
    <comment_count>14</comment_count>
    <who name="Balazs Ankes">bank</who>
    <bug_when>2012-05-04 05:51:11 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; (From update of attachment 140028 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=140028&amp;action=review
&gt; 
&gt; This looks pretty good (with the one quibble), but normally we require unit tests for new code. Can you add some unit tests as well?

Yes, I can. I asked it earlier but I didn&apos;t get answer.
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/common/checksvnconfigfile.py:46
&gt; &gt; +        return (1, 1, 1)
&gt; 
&gt; You should use True/False instead of 1/0.

OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>619607</commentid>
    <comment_count>15</comment_count>
      <attachid>140967</attachid>
    <who name="Balazs Ankes">bank</who>
    <bug_when>2012-05-09 10:04:55 -0700</bug_when>
    <thetext>Created attachment 140967
proposed fix

I wrote unittest and use boolean type instead of 1/0.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>619727</commentid>
    <comment_count>16</comment_count>
      <attachid>140967</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-05-09 12:27:07 -0700</bug_when>
    <thetext>Comment on attachment 140967
proposed fix

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

marking cq- just so you can take a look at my suggestion and see if it works. looks good otherwise.

&gt; Tools/Scripts/webkitpy/common/checksvnconfigfile.py:51
&gt; +    for line in config_file.split(&apos;\n&apos;):

I wonder if this would be easier and clearer if you didn&apos;t split the file and just did two re.search()&apos;s against the whole string, i.e.

errorcode_autoprops = not re.search(&quot;\s*enable-auto-props\s*=\s*yes&quot;, config_file)
errorcode_png = not re.search(&quot;\s*\*\.png\s*=\s*svn:mime-type=image/png&quot;, config_file)

or something like that (I&apos;m not sure how you&apos;d handle commented out lines, so you might have to experiment a bit)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>620510</commentid>
    <comment_count>17</comment_count>
      <attachid>141155</attachid>
    <who name="Balazs Ankes">bank</who>
    <bug_when>2012-05-10 05:58:23 -0700</bug_when>
    <thetext>Created attachment 141155
proposed fix

I did what you suggested, the code is clearer indeed. Thank you!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>620621</commentid>
    <comment_count>18</comment_count>
      <attachid>141181</attachid>
    <who name="Balazs Ankes">bank</who>
    <bug_when>2012-05-10 09:15:23 -0700</bug_when>
    <thetext>Created attachment 141181
proposed fix

I rewrote the regex because png_unittest thrown error. (I forgot run unittest before uploaded the previous patch, sorry)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>622866</commentid>
    <comment_count>19</comment_count>
      <attachid>141181</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-05-14 05:32:56 -0700</bug_when>
    <thetext>Comment on attachment 141181
proposed fix

Landed in https://trac.webkit.org/changeset/116935</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>622978</commentid>
    <comment_count>20</comment_count>
    <who name="Stephen Chenney">schenney</who>
    <bug_when>2012-05-14 08:08:35 -0700</bug_when>
    <thetext>Now I can&apos;t land anything. :-(

webkit-patch land
Traceback (most recent call last):
  File &quot;/home/schenney/development/chromium-patches/src/third_party/WebKit/Tools/Scripts/webkit-patch&quot;, line 69, in &lt;module&gt;
    main()
  File &quot;/home/schenney/development/chromium-patches/src/third_party/WebKit/Tools/Scripts/webkit-patch&quot;, line 64, in main
    WebKitPatch(os.path.abspath(__file__)).main()
  File &quot;/usr/local/google/users/schenney/chromium-patches/src/third_party/WebKit/Tools/Scripts/webkitpy/tool/multicommandtool.py&quot;, line 311, in main
    result = command.check_arguments_and_execute(options, args, self)
  File &quot;/usr/local/google/users/schenney/chromium-patches/src/third_party/WebKit/Tools/Scripts/webkitpy/tool/multicommandtool.py&quot;, line 120, in check_arguments_and_execute
    return self.execute(options, args, tool) or 0
  File &quot;/usr/local/google/users/schenney/chromium-patches/src/third_party/WebKit/Tools/Scripts/webkitpy/tool/commands/abstractsequencedcommand.py&quot;, line 51, in execute
    self._sequence.run_and_handle_errors(tool, options, state)
  File &quot;/usr/local/google/users/schenney/chromium-patches/src/third_party/WebKit/Tools/Scripts/webkitpy/tool/commands/stepsequence.py&quot;, line 70, in run_and_handle_errors
    self._run(tool, options, state)
  File &quot;/usr/local/google/users/schenney/chromium-patches/src/third_party/WebKit/Tools/Scripts/webkitpy/tool/commands/stepsequence.py&quot;, line 64, in _run
    step(tool, options).run(state)
  File &quot;/usr/local/google/users/schenney/chromium-patches/src/third_party/WebKit/Tools/Scripts/webkitpy/tool/steps/addsvnmimetypeforpng.py&quot;, line 68, in run
    if filename.endswith(&apos;.png&apos;) and detector.exists(filename) and detector.propget(&apos;svn:mime-type&apos;, filename) == &quot;&quot;:
NameError: global name &apos;detector&apos; is not defined</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>622979</commentid>
    <comment_count>21</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-05-14 08:09:51 -0700</bug_when>
    <thetext>Ouch. :-/ Let me roll out immediately.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>622989</commentid>
    <comment_count>22</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-05-14 08:15:01 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; Ouch. :-/ Let me roll out immediately.

Rollout landed in https://trac.webkit.org/changeset/116947</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>622991</commentid>
    <comment_count>23</comment_count>
      <attachid>141181</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-05-14 08:17:57 -0700</bug_when>
    <thetext>Comment on attachment 141181
proposed fix

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

&gt; Tools/Scripts/webkitpy/tool/steps/addsvnmimetypeforpng.py:68
&gt; +                    if filename.endswith(&apos;.png&apos;) and detector.exists(filename) and detector.propget(&apos;svn:mime-type&apos;, filename) == &quot;&quot;:

detector -&gt; self._detector

&gt; Tools/Scripts/webkitpy/tool/steps/addsvnmimetypeforpng.py:70
&gt; +                        detector.propset(&apos;svn:mime-type&apos;, &apos;image/png&apos;, filename)

detector -&gt; self._detector</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>622992</commentid>
    <comment_count>24</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-05-14 08:18:41 -0700</bug_when>
    <thetext>(In reply to comment #23)
&gt; (From update of attachment 141181 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=141181&amp;action=review
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/tool/steps/addsvnmimetypeforpng.py:68
&gt; &gt; +                    if filename.endswith(&apos;.png&apos;) and detector.exists(filename) and detector.propget(&apos;svn:mime-type&apos;, filename) == &quot;&quot;:
&gt; 
&gt; detector -&gt; self._detector
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/tool/steps/addsvnmimetypeforpng.py:70
&gt; &gt; +                        detector.propset(&apos;svn:mime-type&apos;, &apos;image/png&apos;, filename)
&gt; 
&gt; detector -&gt; self._detector

It seems this codepath isn&apos;t (unit)tested well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>624042</commentid>
    <comment_count>25</comment_count>
      <attachid>141960</attachid>
    <who name="Balazs Ankes">bank</who>
    <bug_when>2012-05-15 07:06:04 -0700</bug_when>
    <thetext>Created attachment 141960
proposed fix

I fixed the problem and tested on svn, it seems good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>648979</commentid>
    <comment_count>26</comment_count>
      <attachid>147528</attachid>
    <who name="Balazs Ankes">bank</who>
    <bug_when>2012-06-14 02:23:33 -0700</bug_when>
    <thetext>Created attachment 147528
proposed fix

I updated the patch. Could somebody check it, please?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649282</commentid>
    <comment_count>27</comment_count>
      <attachid>147528</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-06-14 10:35:41 -0700</bug_when>
    <thetext>Comment on attachment 147528
proposed fix

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

assuming my comments are correct, fix the comments and variable names and this should be fine.

&gt; Tools/Scripts/webkitpy/common/checksvnconfigfile.py:36
&gt; +    was the file read successful, is there enable the auto-props, is there enable the svn:mime-type for png

I&apos;m not sure if this is a bug or if this is just written wrong, but it looks like you want to return True if something failed, right? So I would rewrite this as &quot;is this file missing, is auto-props missing, is the svn:mime-type for png missing&quot;

&gt; Tools/Scripts/webkitpy/style/checkers/png.py:58
&gt; +            (file_read, autoprop, png) = checksvnconfigfile.check(self, self._host, self._fs)

I would rename these variables the same way I renamed the docstring, so file_missing, autoprop_missing, png_missing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>650129</commentid>
    <comment_count>28</comment_count>
      <attachid>147802</attachid>
    <who name="Balazs Ankes">bank</who>
    <bug_when>2012-06-15 06:50:29 -0700</bug_when>
    <thetext>Created attachment 147802
proposed fix

I renamed the variables and rewrote the comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>652239</commentid>
    <comment_count>29</comment_count>
    <who name="Peter Gal">galpeter</who>
    <bug_when>2012-06-19 02:04:25 -0700</bug_when>
    <thetext>View in context: https://bugs.webkit.org/attachment.cgi?id=147802&amp;action=review

&gt; Tools/Scripts/webkitpy/common/checksvnconfigfile.py:32
&gt; +def check(self, host, fs):

I think the &apos;self&apos; here is a little misleading, and why do we need it at all?

&gt; Tools/Scripts/webkitpy/common/checksvnconfigfile.py:52
&gt; +def _config_file_path(self, host, fs):

Why do you need the &apos;self&apos;? It seems it is unused.

&gt; Tools/Scripts/webkitpy/common/checksvnconfigfile.py:53
&gt; +    config_file = &quot;&quot;

I don&apos;t see this variable used in this method.

&gt; Tools/Scripts/webkitpy/common/checksvnconfigfile.py:57
&gt; +        config_file_path = fs.join(os.environ[&apos;APPDATA&apos;], &quot;Subversion\config&quot;)
&gt; +    else:
&gt; +        config_file_path = fs.join(fs.expanduser(&quot;~&quot;), &quot;.subversion/config&quot;)

fs.join(..) can take more than 2 arguments, the config should be the 3.

&gt; Tools/Scripts/webkitpy/common/checksvnconfigfile.py:62
&gt; +    return &quot;Have to enable auto props in the subversion config file (&quot; + config_file_path + &quot; \&quot;enable-auto-props = yes\&quot;). &quot;

Instead of escaping the &quot; use &apos; at the start and end. Oh.. and use the %s formatter, that is more readable.

&gt; Tools/Scripts/webkitpy/common/checksvnconfigfile.py:66
&gt; +    return &quot;Have to set the svn:mime-type in the subversion config file (&quot; + config_file_path + &quot; \&quot;*.png = svn:mime-type=image/png\&quot;).&quot;

ditto

&gt; Tools/Scripts/webkitpy/style/checkers/png.py:59
&gt; +            config_file_path = checksvnconfigfile._config_file_path(self, self._host, self._fs)

Calling a method prefixed with underscore isn&apos;t really nice. Ditch the leading underscore.

&gt; Tools/Scripts/webkitpy/style/checkers/png.py:62
&gt; +                self._handle_style_error(0, &apos;image/png&apos;, 5, &quot;There is no SVN config file. (&quot; + config_file_path + &quot;)&quot;)

use %s formatter

&gt; Tools/Scripts/webkitpy/tool/steps/addsvnmimetypeforpng.py:42
&gt; +        if len(png_files) &gt; 0:

No need for length check, just: &quot;if png_files:&quot;

&gt; Tools/Scripts/webkitpy/tool/steps/addsvnmimetypeforpng.py:46
&gt; +                (file_read, autoprop, png) = checksvnconfigfile.check(self, self._host, self._fs)

use the same naming like in the PNGChecker.

&gt; Tools/Scripts/webkitpy/tool/steps/addsvnmimetypeforpng.py:68
&gt; +                    if filename.endswith(&apos;.png&apos;) and self._detector.exists(filename) and self._detector.propget(&apos;svn:mime-type&apos;, filename) != &apos;image/png&apos;:

The file extension is already checked in the _check_pngs method. Why do you check it again?

&gt; Tools/Scripts/webkitpy/tool/steps/addsvnmimetypeforpng_unittest.py:46
&gt; +        options = MockOptions()
&gt; +        options.git_commit = &apos;MOCK git commit&apos;

Pass the git_commit as a kwarg to the MockOptions.

&gt; Tools/Scripts/webkitpy/tool/steps/addsvnmimetypeforpng_unittest.py:54
&gt; +            &quot;changed_files&quot;: [&quot;test.png&quot;],

Add a non-png file to the list.

&gt; Tools/Scripts/webkitpy/tool/steps/addsvnmimetypeforpng_unittest.py:59
&gt; +        except SystemExit, e:
&gt; +            self.assertEquals(type(e), type(SystemExit()))

Why do we check if the type is a SystemExit exception? The except will only catch SystemExit ones.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>657441</commentid>
    <comment_count>30</comment_count>
      <attachid>149495</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-06-26 02:40:28 -0700</bug_when>
    <thetext>Created attachment 149495
Patch

Fixed patch based on Comment #29. (Balázs isn&apos;t online now, but he asked me to upload his updated patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>663023</commentid>
    <comment_count>31</comment_count>
    <who name="Balazs Ankes">bank</who>
    <bug_when>2012-07-04 09:29:06 -0700</bug_when>
    <thetext>Could somebody take a look for the patch, please?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>663533</commentid>
    <comment_count>32</comment_count>
    <who name="Peter Gal">galpeter</who>
    <bug_when>2012-07-05 06:59:32 -0700</bug_when>
    <thetext>(In reply to comment #30)
&gt; Created an attachment (id=149495) [details]
&gt; Patch
&gt; 
&gt; Fixed patch based on Comment #29. (Balázs isn&apos;t online now, but he asked me to upload his updated patch.

looks a lot better now (infomral r=me :))</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>664490</commentid>
    <comment_count>33</comment_count>
      <attachid>149495</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-07-08 11:52:45 -0700</bug_when>
    <thetext>Comment on attachment 149495
Patch

looks fine. Sorry for the delay; this fell through the cracks somehow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666511</commentid>
    <comment_count>34</comment_count>
      <attachid>149495</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-07-11 01:34:37 -0700</bug_when>
    <thetext>Comment on attachment 149495
Patch

Clearing flags on attachment: 149495

Committed r122311: &lt;http://trac.webkit.org/changeset/122311&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666512</commentid>
    <comment_count>35</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-07-11 01:34:48 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>135140</attachid>
            <date>2012-04-02 11:36:15 -0700</date>
            <delta_ts>2012-04-02 11:36:15 -0700</delta_ts>
            <desc>script to auto-update svn mime-types</desc>
            <filename>svn-update-mime-types</filename>
            <type>application/octet-stream</type>
            <size>2615</size>
            <attacher name="Ojan Vafai">ojan</attacher>
            
              <data encoding="base64">IyEvdXNyL2Jpbi9lbnYgcHl0aG9uCiMgQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiMKIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIyBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiMgbWV0Ogoj
CiMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCiMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQojIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIyBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiMgZGlz
dHJpYnV0aW9uLgojICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMKIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQojIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCiMKIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiMgIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
IyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAojIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAojIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIyBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiMgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiMg
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KCmltcG9ydCBzeXMKCmZyb20gd2Via2l0cHkuY29tbW9uLmNoZWNrb3V0LnNj
bS5kZXRlY3Rpb24gaW1wb3J0IFNDTURldGVjdG9yCmZyb20gd2Via2l0cHkuY29tbW9uLnN5c3Rl
bS5leGVjdXRpdmUgaW1wb3J0IEV4ZWN1dGl2ZQpmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0u
ZmlsZXN5c3RlbSBpbXBvcnQgRmlsZVN5c3RlbQoKCmRlZiB1cGRhdGVfbWltZV90eXBlcyhsYXlv
dXRfdGVzdF9yb290KToKICAgIGZpbGVzeXN0ZW0gPSBGaWxlU3lzdGVtKCkKICAgIHNjbSA9IFND
TURldGVjdG9yKGZpbGVzeXN0ZW0sIEV4ZWN1dGl2ZSgpKS5kZXRlY3Rfc2NtX3N5c3RlbShsYXlv
dXRfdGVzdF9yb290KQoKICAgIGRlZiB1cGRhdGVfbWltZV90eXBlKGZpbGVzeXN0ZW0sIGRpcnBh
dGgsIGJhc2VuYW1lKToKICAgICAgICBwYXRoID0gZmlsZXN5c3RlbS5qb2luKGRpcnBhdGgsIGJh
c2VuYW1lKQogICAgICAgIGlmIGJhc2VuYW1lLmVuZHN3aXRoKCcucG5nJykgYW5kIHNjbS5leGlz
dHMocGF0aCkgYW5kIHNjbS5wcm9wZ2V0KCdzdm46bWltZS10eXBlJywgcGF0aCkgPT0gIiI6CiAg
ICAgICAgICAgIHByaW50ICJBZGRpbmcgaW1hZ2UvcG5nIG1pbWUtdHlwZSB0byAlcyIgJSBwYXRo
CiAgICAgICAgICAgIHNjbS5wcm9wc2V0KCdzdm46bWltZS10eXBlJywgJ2ltYWdlL3BuZycsIHBh
dGgpCiAgICAgICAgcmV0dXJuIEZhbHNlCgogICAgZmlsZXN5c3RlbS5maWxlc191bmRlcihsYXlv
dXRfdGVzdF9yb290LCBkaXJzX3RvX3NraXA9Wycuc3ZuJ10sIGZpbGVfZmlsdGVyPXVwZGF0ZV9t
aW1lX3R5cGUpCiAgICByZXR1cm4gMAoKCmlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CiAgICAj
IEZJWE1FOiBUYWtlIHBhdGhzIHJlbGF0aXZlIHRvIHRoZSBMYXlvdXRUZXN0cyBkaXJlY3Rvcnku
CiAgICBpZiBsZW4oc3lzLmFyZ3YpICE9IDI6CiAgICAgICAgcHJpbnQgIlVTQUdFOiBzdm4tdXBk
YXRlLW1pbWUtdHlwZXMgQUJTT0xVVEVfUEFUSF9UT19ESVJFQ1RPUlkiCiAgICAgICAgc3lzLmV4
aXQoMSkKICAgIHN5cy5leGl0KHVwZGF0ZV9taW1lX3R5cGVzKHN5cy5hcmd2WzFdKSk=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>137527</attachid>
            <date>2012-04-17 06:22:12 -0700</date>
            <delta_ts>2012-04-23 06:29:29 -0700</delta_ts>
            <desc>work in progress</desc>
            <filename>2012-04-17.diff</filename>
            <type>text/plain</type>
            <size>13109</size>
            <attacher name="Balazs Ankes">bank</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrc3ZuY29uZmln
ZmlsZS5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrc3ZuY29uZmlnZmls
ZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMjgwODgyCi0tLSAvZGV2
L251bGwKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tzdm5jb25maWdm
aWxlLnB5CkBAIC0wLDAgKzEsODQgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDEyIEJhbGF6cyBBbmtl
cyAoYmFua0BpbmYudS1zemVnZWQuaHUpIFVuaXZlcnNpdHkgb2YgU3plZ2VkCisjCisjIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisj
IDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMg
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyMg
T1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQor
IyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjIFRoaXMgZmls
ZSBpcyB1c2VkIGJ5OgorIyB3ZWJraXRweS90b29sL3N0ZXBzL2FkZHN2bm1pbWV0eXBlZm9ycG5n
LnB5CisjIHdlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL3BuZy5weQorCitpbXBvcnQgb3MKK2ltcG9y
dCByZQoraW1wb3J0IHN5cworCisKK2RlZiBjaGVjayhzZWxmLCBwbGF0Zm9ybSwgZnMpOgorICAg
IGVycm9yY29kZSA9IDAKKworICAgIGNvbmZpZ19maWxlX3BhdGggPSBfY29uZmlnX2ZpbGVfcGF0
aChzZWxmLCBwbGF0Zm9ybSwgZnMpCisgICAgdGhlcmVfaXNfZW5hYmxlX2xpbmUgPSBGYWxzZQor
ICAgIHRoZXJlX2lzX3BuZ19saW5lID0gRmFsc2UKKworICAgIHRyeToKKyAgICAgICAgY29uZmln
X2ZpbGUgPSBmcy5yZWFkX3RleHRfZmlsZShjb25maWdfZmlsZV9wYXRoKQorICAgIGV4Y2VwdCBJ
T0Vycm9yOgorICAgICAgICByZXR1cm4gNAorCisgICAgZXJyb3Jjb2RlX2F1dG9wcm9wID0gMQor
ICAgIGVycm9yY29kZV9wbmcgPSAyCisKKyAgICBmb3IgbGluZSBpbiBjb25maWdfZmlsZS5zcGxp
dCgnXG4nKToKKyAgICAgICAgaWYgbm90IHRoZXJlX2lzX2VuYWJsZV9saW5lOgorICAgICAgICAg
ICAgbWF0Y2ggPSByZS5zZWFyY2goIl5ccyplbmFibGUtYXV0by1wcm9wc1xzKj1ccyp5ZXMiLCBs
aW5lKQorICAgICAgICAgICAgaWYgbWF0Y2g6CisgICAgICAgICAgICAgICAgdGhlcmVfaXNfZW5h
YmxlX2xpbmUgPSBUcnVlCisgICAgICAgICAgICAgICAgZXJyb3Jjb2RlX2F1dG9wcm9wID0gMAor
ICAgICAgICAgICAgICAgIGNvbnRpbnVlCisKKyAgICAgICAgaWYgbm90IHRoZXJlX2lzX3BuZ19s
aW5lOgorICAgICAgICAgICAgbWF0Y2ggPSByZS5zZWFyY2goIl5ccypcKlwucG5nXHMqPVxzKnN2
bjptaW1lLXR5cGU9aW1hZ2UvcG5nIiwgbGluZSkKKyAgICAgICAgICAgIGlmIG1hdGNoOgorICAg
ICAgICAgICAgICAgIHRoZXJlX2lzX3BuZ19saW5lID0gVHJ1ZQorICAgICAgICAgICAgICAgIGVy
cm9yY29kZV9wbmcgPSAwCisgICAgICAgICAgICAgICAgY29udGludWUKKworICAgIGVycm9yY29k
ZSA9IGVycm9yY29kZV9hdXRvcHJvcCArIGVycm9yY29kZV9wbmcKKyAgICBpZiBlcnJvcmNvZGU6
CisgICAgICAgIHJldHVybiBlcnJvcmNvZGUKKyAgICBlbHNlOgorICAgICAgICByZXR1cm4gMAor
CisKK2RlZiBfY29uZmlnX2ZpbGVfcGF0aChzZWxmLCBwbGF0Zm9ybSwgZnMpOgorICAgIGNvbmZp
Z19maWxlID0gIiIKKyAgICBpZiBwbGF0Zm9ybS5zdGFydHN3aXRoKCdsaW51eCcpIG9yIHBsYXRm
b3JtLnN0YXJ0c3dpdGgoJ2RhcndpbicpOgorICAgICAgICBjb25maWdfZmlsZV9wYXRoID0gZnMu
am9pbihmcy5leHBhbmR1c2VyKCJ+IiksICIuc3VidmVyc2lvbi9jb25maWciKQorICAgIGVsaWYg
cGxhdGZvcm0uc3RhcnRzd2l0aCgnd2luJykgb3IgcGxhdGZvcm0uc3RhcnRzd2l0aCgnY3lnd2lu
Jyk6CisgICAgICAgIGNvbmZpZ19maWxlX3BhdGggPSBmcy5qb2luKG9zLmVudmlyb25bJ0FQUERB
VEEnXSwgIlN1YnZlcnNpb25cY29uZmlnIikKKyAgICByZXR1cm4gY29uZmlnX2ZpbGVfcGF0aAor
CisKK2RlZiBlcnJvcnN0cl9hdXRvcHJvcChjb25maWdfZmlsZV9wYXRoKToKKyAgICByZXR1cm4g
IkhhdmUgdG8gZW5hYmxlIGF1dG8gcHJvcHMgaW4gdGhlIHN1YnZlcnNpb24gY29uZmlnIGZpbGUg
KCIgKyBjb25maWdfZmlsZV9wYXRoICsgIiBcImVuYWJsZS1hdXRvLXByb3BzID0geWVzXCIpLiAi
CisKKworZGVmIGVycm9yc3RyX3BuZyhjb25maWdfZmlsZV9wYXRoKToKKyAgICByZXR1cm4gIkhh
dmUgdG8gc2V0IHRoZSBzdm46bWltZS10eXBlIGluIHRoZSBzdWJ2ZXJzaW9uIGNvbmZpZyBmaWxl
ICgiICsgY29uZmlnX2ZpbGVfcGF0aCArICIgXCIqLnBuZyA9IHN2bjptaW1lLXR5cGU9aW1hZ2Uv
cG5nXCIpLiIKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tl
cnMvcG5nLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9wbmcucHkK
aW5kZXggMGU5YmI0OC4uNmMxMzEwNSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9zdHlsZS9jaGVja2Vycy9wbmcucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHls
ZS9jaGVja2Vycy9wbmcucHkKQEAgLTI3LDYgKzI3LDcgQEAKIGltcG9ydCBvcwogaW1wb3J0IHJl
CiBpbXBvcnQgc3lzCitmcm9tIHdlYmtpdHB5LmNvbW1vbiBpbXBvcnQgY2hlY2tzdm5jb25maWdm
aWxlCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGltcG9ydCBFeGVjdXRp
dmUKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5maWxlc3lzdGVtIGltcG9ydCBGaWxlU3lz
dGVtCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5jaGVja291dC5zY20uZGV0ZWN0aW9uIGltcG9ydCBT
Q01EZXRlY3RvcgpAQCAtNDUsNTQgKzQ2LDI2IEBAIGNsYXNzIFBOR0NoZWNrZXIob2JqZWN0KToK
ICAgICAgICAgc2VsZi5fcGxhdGZvcm0gPSBwbGF0Zm9ybSBvciBzeXMucGxhdGZvcm0KIAogICAg
IGRlZiBjaGVjayhzZWxmLCBpbmxpbmU9Tm9uZSk6Ci0gICAgICAgIGVycm9yc3RyID0gIiIKICAg
ICAgICAgY29uZmlnX2ZpbGVfcGF0aCA9ICIiCiAgICAgICAgIGRldGVjdGlvbiA9IHNlbGYuX2Rl
dGVjdG9yLmRpc3BsYXlfbmFtZSgpCiAKICAgICAgICAgaWYgZGV0ZWN0aW9uID09ICJnaXQiOgot
ICAgICAgICAgICAgY29uZmlnX2ZpbGVfcGF0aCA9IHNlbGYuX2NvbmZpZ19maWxlX3BhdGgoKQot
ICAgICAgICAgICAgdGhlcmVfaXNfZW5hYmxlX2xpbmUgPSBGYWxzZQotICAgICAgICAgICAgdGhl
cmVfaXNfcG5nX2xpbmUgPSBGYWxzZQorICAgICAgICAgICAgZXJyb3Jjb2RlID0gY2hlY2tzdm5j
b25maWdmaWxlLmNoZWNrKHNlbGYsIHNlbGYuX3BsYXRmb3JtLCBzZWxmLl9mcykKKyAgICAgICAg
ICAgIGNvbmZpZ19maWxlX3BhdGggPSBjaGVja3N2bmNvbmZpZ2ZpbGUuX2NvbmZpZ19maWxlX3Bh
dGgoc2VsZiwgc2VsZi5fcGxhdGZvcm0sIHNlbGYuX2ZzKQogCi0gICAgICAgICAgICB0cnk6Ci0g
ICAgICAgICAgICAgICAgY29uZmlnX2ZpbGUgPSBzZWxmLl9mcy5yZWFkX3RleHRfZmlsZShjb25m
aWdfZmlsZV9wYXRoKQotICAgICAgICAgICAgZXhjZXB0IElPRXJyb3I6Ci0gICAgICAgICAgICAg
ICAgZXJyb3JzdHIgPSAiVGhlcmUgaXMgbm8gIiArIGNvbmZpZ19maWxlX3BhdGgKLSAgICAgICAg
ICAgICAgICBzZWxmLl9oYW5kbGVfc3R5bGVfZXJyb3IoMCwgJ2ltYWdlL3BuZycsIDUsIGVycm9y
c3RyKQorICAgICAgICAgICAgaWYgZXJyb3Jjb2RlID09IDA6CiAgICAgICAgICAgICAgICAgcmV0
dXJuCi0KLSAgICAgICAgICAgIGVycm9yc3RyX2F1dG9wcm9wID0gIkhhdmUgdG8gZW5hYmxlIGF1
dG8gcHJvcHMgaW4gdGhlIHN1YnZlcnNpb24gY29uZmlnIGZpbGUgKCIgKyBjb25maWdfZmlsZV9w
YXRoICsgIiBcImVuYWJsZS1hdXRvLXByb3BzID0geWVzXCIpLiAiCi0gICAgICAgICAgICBlcnJv
cnN0cl9wbmcgPSAiSGF2ZSB0byBzZXQgdGhlIHN2bjptaW1lLXR5cGUgaW4gdGhlIHN1YnZlcnNp
b24gY29uZmlnIGZpbGUgKCIgKyBjb25maWdfZmlsZV9wYXRoICsgIiBcIioucG5nID0gc3ZuOm1p
bWUtdHlwZT1pbWFnZS9wbmdcIikuIgotCi0gICAgICAgICAgICBmb3IgbGluZSBpbiBjb25maWdf
ZmlsZS5zcGxpdCgnXG4nKToKLSAgICAgICAgICAgICAgICBpZiBub3QgdGhlcmVfaXNfZW5hYmxl
X2xpbmU6Ci0gICAgICAgICAgICAgICAgICAgIG1hdGNoID0gcmUuc2VhcmNoKCJeXHMqZW5hYmxl
LWF1dG8tcHJvcHNccyo9XHMqeWVzIiwgbGluZSkKLSAgICAgICAgICAgICAgICAgICAgaWYgbWF0
Y2g6Ci0gICAgICAgICAgICAgICAgICAgICAgICB0aGVyZV9pc19lbmFibGVfbGluZSA9IFRydWUK
LSAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yc3RyX2F1dG9wcm9wID0gIiIKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0KLSAgICAgICAgICAgICAgICBpZiBub3QgdGhlcmVf
aXNfcG5nX2xpbmU6Ci0gICAgICAgICAgICAgICAgICAgIG1hdGNoID0gcmUuc2VhcmNoKCJeXHMq
XCpcLnBuZ1xzKj1ccypzdm46bWltZS10eXBlPWltYWdlL3BuZyIsIGxpbmUpCi0gICAgICAgICAg
ICAgICAgICAgIGlmIG1hdGNoOgotICAgICAgICAgICAgICAgICAgICAgICAgdGhlcmVfaXNfcG5n
X2xpbmUgPSBUcnVlCi0gICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnN0cl9wbmcgPSAiIgot
ICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUKLQotICAgICAgICAgICAgZXJyb3JzdHIg
PSBlcnJvcnN0cl9hdXRvcHJvcCArIGVycm9yc3RyX3BuZwotICAgICAgICAgICAgaWYgZXJyb3Jz
dHI6Ci0gICAgICAgICAgICAgICAgc2VsZi5faGFuZGxlX3N0eWxlX2Vycm9yKDAsICdpbWFnZS9w
bmcnLCA1LCBlcnJvcnN0cikKKyAgICAgICAgICAgIGVsaWYgZXJyb3Jjb2RlID09IDE6CisgICAg
ICAgICAgICAgICAgc2VsZi5faGFuZGxlX3N0eWxlX2Vycm9yKDAsICdpbWFnZS9wbmcnLCA1LCBj
aGVja3N2bmNvbmZpZ2ZpbGUuZXJyb3JzdHJfYXV0b3Byb3AoY29uZmlnX2ZpbGVfcGF0aCkpCisg
ICAgICAgICAgICBlbGlmIGVycm9yY29kZSA9PSAyOgorICAgICAgICAgICAgICAgIHNlbGYuX2hh
bmRsZV9zdHlsZV9lcnJvcigwLCAnaW1hZ2UvcG5nJywgNSwgY2hlY2tzdm5jb25maWdmaWxlLmVy
cm9yc3RyX3BuZyhjb25maWdfZmlsZV9wYXRoKSkKKyAgICAgICAgICAgIGVsaWYgZXJyb3Jjb2Rl
ID09IDM6CisgICAgICAgICAgICAgICAgc2VsZi5faGFuZGxlX3N0eWxlX2Vycm9yKDAsICdpbWFn
ZS9wbmcnLCA1LCBjaGVja3N2bmNvbmZpZ2ZpbGUuZXJyb3JzdHJfYXV0b3Byb3AoY29uZmlnX2Zp
bGVfcGF0aCkgKyBjaGVja3N2bmNvbmZpZ2ZpbGUuZXJyb3JzdHJfcG5nKGNvbmZpZ19maWxlX3Bh
dGgpKQorICAgICAgICAgICAgZWxpZiBlcnJvcmNvZGUgPT0gNDoKKyAgICAgICAgICAgICAgICBz
ZWxmLl9oYW5kbGVfc3R5bGVfZXJyb3IoMCwgJ2ltYWdlL3BuZycsIDUsICJUaGVyZSBpcyBubyBT
Vk4gY29uZmlnIGZpbGUuICgiICsgY29uZmlnX2ZpbGVfcGF0aCArICIpIikKIAogICAgICAgICBl
bGlmIGRldGVjdGlvbiA9PSAic3ZuIjoKICAgICAgICAgICAgIHByb3BfZ2V0ID0gc2VsZi5fZGV0
ZWN0b3IucHJvcGdldCgic3ZuOm1pbWUtdHlwZSIsIHNlbGYuX2ZpbGVfcGF0aCkKICAgICAgICAg
ICAgIGlmIHByb3BfZ2V0ICE9ICJpbWFnZS9wbmciOgogICAgICAgICAgICAgICAgIGVycm9yc3Ry
ID0gIlNldCB0aGUgc3ZuOm1pbWUtdHlwZSBwcm9wZXJ0eSAoc3ZuIHByb3BzZXQgc3ZuOm1pbWUt
dHlwZSBpbWFnZS9wbmcgIiArIHNlbGYuX2ZpbGVfcGF0aCArICIpLiIKICAgICAgICAgICAgICAg
ICBzZWxmLl9oYW5kbGVfc3R5bGVfZXJyb3IoMCwgJ2ltYWdlL3BuZycsIDUsIGVycm9yc3RyKQot
Ci0gICAgZGVmIF9jb25maWdfZmlsZV9wYXRoKHNlbGYpOgotICAgICAgICBjb25maWdfZmlsZSA9
ICIiCi0gICAgICAgIGlmIHNlbGYuX3BsYXRmb3JtLnN0YXJ0c3dpdGgoJ2xpbnV4Jykgb3Igc2Vs
Zi5fcGxhdGZvcm0uc3RhcnRzd2l0aCgnZGFyd2luJyk6Ci0gICAgICAgICAgICBjb25maWdfZmls
ZV9wYXRoID0gc2VsZi5fZnMuam9pbihzZWxmLl9mcy5leHBhbmR1c2VyKCJ+IiksICIuc3VidmVy
c2lvbi9jb25maWciKQotICAgICAgICBlbGlmIHNlbGYuX3BsYXRmb3JtLnN0YXJ0c3dpdGgoJ3dp
bicpIG9yIHNlbGYuX3BsYXRmb3JtLnN0YXJ0c3dpdGgoJ2N5Z3dpbicpOgotICAgICAgICAgICAg
Y29uZmlnX2ZpbGVfcGF0aCA9IHNlbGYuX2ZzLmpvaW4ob3MuZW52aXJvblsnQVBQREFUQSddLCAi
U3VidmVyc2lvblxjb25maWciKQotICAgICAgICByZXR1cm4gY29uZmlnX2ZpbGVfcGF0aApkaWZm
IC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Rvd25sb2FkLnB5
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Rvd25sb2FkLnB5CmluZGV4
IDRmNmI3MzcuLjYyZTQ4ZjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9v
bC9jb21tYW5kcy9kb3dubG9hZC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
Y29tbWFuZHMvZG93bmxvYWQucHkKQEAgLTk1LDYgKzk1LDcgQEAgY2xhc3MgTGFuZChBYnN0cmFj
dFNlcXVlbmNlZENvbW1hbmQpOgogICAgICAgICBzdGVwcy5WYWxpZGF0ZUNoYW5nZUxvZ3MsICMg
V2UgZG8gdGhpcyBhZnRlciBVcGRhdGVDaGFuZ2VMb2dzV2l0aFJldmlld2VyIHRvIGF2b2lkIG5v
dCBoYXZpbmcgdG8gY2FjaGUgdGhlIGRpZmYgdHdpY2UuCiAgICAgICAgIHN0ZXBzLkJ1aWxkLAog
ICAgICAgICBzdGVwcy5SdW5UZXN0cywKKyAgICAgICAgc3RlcHMuQWRkU3ZuTWltZXR5cGVGb3JQ
bmcsCiAgICAgICAgIHN0ZXBzLkNvbW1pdCwKICAgICAgICAgc3RlcHMuQ2xvc2VCdWdGb3JMYW5k
RGlmZiwKICAgICBdCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3Rl
cHMvX19pbml0X18ucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvX19pbml0
X18ucHkKaW5kZXggYWNhOTcwNi4uNTY0MjllOCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS90b29sL3N0ZXBzL19faW5pdF9fLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdG9vbC9zdGVwcy9fX2luaXRfXy5weQpAQCAtMjcsNiArMjcsNyBAQAogIyBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgogCiAjIEZJWE1FOiBJcyB0aGlzIHRoZSByaWdodCB3YXkgdG8gZG8gdGhpcz8KK2Zyb20gd2Vi
a2l0cHkudG9vbC5zdGVwcy5hZGRzdm5taW1ldHlwZWZvcnBuZyBpbXBvcnQgQWRkU3ZuTWltZXR5
cGVGb3JQbmcKIGZyb20gd2Via2l0cHkudG9vbC5zdGVwcy5hcHBseXBhdGNoIGltcG9ydCBBcHBs
eVBhdGNoCiBmcm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMuYXBwbHlwYXRjaHdpdGhsb2NhbGNvbW1p
dCBpbXBvcnQgQXBwbHlQYXRjaFdpdGhMb2NhbENvbW1pdAogZnJvbSB3ZWJraXRweS50b29sLnN0
ZXBzLmFwcGx5d2F0Y2hsaXN0IGltcG9ydCBBcHBseVdhdGNoTGlzdApkaWZmIC0tZ2l0IGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2FkZHN2bm1pbWV0eXBlZm9ycG5nLnB5IGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2FkZHN2bm1pbWV0eXBlZm9ycG5nLnB5
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYxODRiMTYKLS0tIC9kZXYvbnVs
bAorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvYWRkc3ZubWltZXR5cGVm
b3JwbmcucHkKQEAgLTAsMCArMSw4MCBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTIgQmFsYXpzIEFu
a2VzIChiYW5rQGluZi51LXN6ZWdlZC5odSkgVW5pdmVyc2l0eSBvZiBTemVnZWQKKyMKKyMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIwor
IyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAor
IyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
CisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2ltcG9ydCBv
cworaW1wb3J0IHJlCitpbXBvcnQgc3lzCitmcm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMuYWJzdHJh
Y3RzdGVwIGltcG9ydCBBYnN0cmFjdFN0ZXAKK2Zyb20gd2Via2l0cHkuY29tbW9uIGltcG9ydCBj
aGVja3N2bmNvbmZpZ2ZpbGUKK2Zyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUg
aW1wb3J0IEV4ZWN1dGl2ZQorZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmZpbGVzeXN0ZW0g
aW1wb3J0IEZpbGVTeXN0ZW0KK2Zyb20gd2Via2l0cHkuY29tbW9uLmNoZWNrb3V0LnNjbS5kZXRl
Y3Rpb24gaW1wb3J0IFNDTURldGVjdG9yCisKKworY2xhc3MgQWRkU3ZuTWltZXR5cGVGb3JQbmco
QWJzdHJhY3RTdGVwKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgdG9vbCwgc3RhdGUpOgorICAg
ICAgICBzZWxmLl90b29sID0gdG9vbAorICAgICAgICBzZWxmLl9mcyA9IEZpbGVTeXN0ZW0oKQor
CisgICAgZGVmIHJ1bihzZWxmLCBzdGF0ZSk6CisgICAgICAgIHBuZ19maWxlcyA9IHNlbGYuX2No
ZWNrX3BuZ3Moc2VsZi5fY2hhbmdlZF9maWxlcyhzdGF0ZSkpCisgICAgICAgIF9wbGF0Zm9ybSA9
IHN5cy5wbGF0Zm9ybQorCisgICAgICAgIGlmIGxlbihwbmdfZmlsZXMpID4gMDoKKyAgICAgICAg
ICAgIGRldGVjdG9yID0gU0NNRGV0ZWN0b3Ioc2VsZi5fZnMsIEV4ZWN1dGl2ZSgpKS5kZXRlY3Rf
c2NtX3N5c3RlbShzZWxmLl9mcy5nZXRjd2QoKSkKKyAgICAgICAgICAgIGRldGVjdGlvbiA9IGRl
dGVjdG9yLmRpc3BsYXlfbmFtZSgpCisKKyAgICAgICAgICAgIGlmIGRldGVjdGlvbiA9PSAiZ2l0
IjoKKyAgICAgICAgICAgICAgICBlcnJvcmNvZGUgPSBjaGVja3N2bmNvbmZpZ2ZpbGUuY2hlY2so
c2VsZiwgX3BsYXRmb3JtLCBzZWxmLl9mcykKKyAgICAgICAgICAgICAgICBjb25maWdfZmlsZV9w
YXRoID0gY2hlY2tzdm5jb25maWdmaWxlLl9jb25maWdfZmlsZV9wYXRoKHNlbGYsIF9wbGF0Zm9y
bSwgc2VsZi5fZnMpCisKKyAgICAgICAgICAgICAgICBpZiBlcnJvcmNvZGUgPT0gMDoKKyAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuCisgICAgICAgICAgICAgICAgZWxpZiBlcnJvcmNvZGUgPT0g
MToKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQgY2hlY2tzdm5jb25maWdmaWxlLmVycm9yc3Ry
X2F1dG9wcm9wKGNvbmZpZ19maWxlX3BhdGgpCisgICAgICAgICAgICAgICAgICAgIGlmIG5vdCBz
ZWxmLl90b29sLnVzZXIuY29uZmlybSgiRG8geW91IHdhbnQgdG8gY29udGludWU/IiwgZGVmYXVs
dD0ibiIpOgorICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fZXhpdCgxKQorICAgICAgICAg
ICAgICAgIGVsaWYgZXJyb3Jjb2RlID09IDI6CisgICAgICAgICAgICAgICAgICAgIHByaW50IGNo
ZWNrc3ZuY29uZmlnZmlsZS5lcnJvcnN0cl9wbmcoY29uZmlnX2ZpbGVfcGF0aCkKKyAgICAgICAg
ICAgICAgICAgICAgaWYgbm90IHNlbGYuX3Rvb2wudXNlci5jb25maXJtKCJEbyB5b3Ugd2FudCB0
byBjb250aW51ZT8iLCBkZWZhdWx0PSJuIik6CisgICAgICAgICAgICAgICAgICAgICAgICBzZWxm
Ll9leGl0KDEpCisgICAgICAgICAgICAgICAgZWxpZiBlcnJvcmNvZGUgPT0gMzoKKyAgICAgICAg
ICAgICAgICAgICAgcHJpbnQgY2hlY2tzdm5jb25maWdmaWxlLmVycm9yc3RyX2F1dG9wcm9wKGNv
bmZpZ19maWxlX3BhdGgpICsgY2hlY2tzdm5jb25maWdmaWxlLmVycm9yc3RyX3BuZyhjb25maWdf
ZmlsZV9wYXRoKQorICAgICAgICAgICAgICAgICAgICBpZiBub3Qgc2VsZi5fdG9vbC51c2VyLmNv
bmZpcm0oIkRvIHlvdSB3YW50IHRvIGNvbnRpbnVlPyIsIGRlZmF1bHQ9Im4iKToKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHNlbGYuX2V4aXQoMSkKKyAgICAgICAgICAgICAgICBlbGlmIGVycm9y
Y29kZSA9PSA0OgorICAgICAgICAgICAgICAgICAgICBpZiBub3Qgc2VsZi5fdG9vbC51c2VyLmNv
bmZpcm0oIlRoZXJlIGlzIG5vIFNWTiBjb25maWcgZmlsZS4gVGhlIHN2bjptaW1lLXR5cGUgb2Yg
cG5ncyB3b24ndCBzZXQuIEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBjb250aW51ZT8iLCBkZWZh
dWx0PSJuIik6CisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9leGl0KDEpCisKKyAgICAg
ICAgICAgIGVsaWYgZGV0ZWN0aW9uID09ICJzdm4iOgorICAgICAgICAgICAgICAgIGZvciBmaWxl
bmFtZSBpbiBwbmdfZmlsZXM6CisgICAgICAgICAgICAgICAgICAgIGlmIGZpbGVuYW1lLmVuZHN3
aXRoKCcucG5nJykgYW5kIHNjbS5leGlzdHMoZmlsZW5hbWUpIGFuZCBzY20ucHJvcGdldCgnc3Zu
Om1pbWUtdHlwZScsIGZpbGVuYW1lKSA9PSAiIjoKKyAgICAgICAgICAgICAgICAgICAgICAgIHBy
aW50ICJBZGRpbmcgaW1hZ2UvcG5nIG1pbWUtdHlwZSB0byAlcyIgJSBwYXRoCisgICAgICAgICAg
ICAgICAgICAgICAgICBzY20ucHJvcHNldCgnc3ZuOm1pbWUtdHlwZScsICdpbWFnZS9wbmcnLCBw
YXRoKQorCisgICAgZGVmIF9jaGVja19wbmdzKHNlbGYsIGNoYW5nZWRfZmlsZXMpOgorICAgICAg
ICBwbmdfZmlsZXMgPSBbXQorICAgICAgICBmb3IgZmlsZW5hbWUgaW4gY2hhbmdlZF9maWxlczoK
KyAgICAgICAgICAgIGlmIGZpbGVuYW1lLmVuZHN3aXRoKCcucG5nJyk6CisgICAgICAgICAgICAg
ICAgcG5nX2ZpbGVzLmFwcGVuZChmaWxlbmFtZSkKKyAgICAgICAgcmV0dXJuIHBuZ19maWxlcwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138335</attachid>
            <date>2012-04-23 06:29:29 -0700</date>
            <delta_ts>2012-05-03 09:07:30 -0700</delta_ts>
            <desc>proposed fix</desc>
            <filename>2012-04-23_wk_patch_land.patch</filename>
            <type>text/plain</type>
            <size>14333</size>
            <attacher name="Balazs Ankes">bank</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAzN2Vm
N2JkLi40NmM0MGE0IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTItMDQtMjMgIEJhbGF6cyBBbmtlcyAgPGJhbmtA
aW5mLnUtc3plZ2VkLmh1PgorCisgICAgICAgIHdlYmtpdC1wYXRjaCBsYW5kIHNob3VsZCBhdXRv
bWF0aWNhbGx5IGFkZCBzdm46bWltZS10eXBlIGZvciAucG5nIGZpbGVzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NTgyNQorICAgICAgICBJIHJlZmFj
dG9yZWQgdGhlIHBuZy5weSB0byBhdm9pZCBjb2RlIGR1cGxpY2F0aW9uLgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9j
b21tb24vY2hlY2tzdm5jb25maWdmaWxlLnB5OiBBZGRlZC4KKyAgICAgICAgKGNoZWNrKToKKyAg
ICAgICAgKF9jb25maWdfZmlsZV9wYXRoKToKKyAgICAgICAgKGVycm9yc3RyX2F1dG9wcm9wKToK
KyAgICAgICAgKGVycm9yc3RyX3BuZyk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9zdHls
ZS9jaGVja2Vycy9wbmcucHk6CisgICAgICAgIChQTkdDaGVja2VyLmNoZWNrKToKKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZG93bmxvYWQucHk6CisgICAgICAgIChM
YW5kKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvX19pbml0X18ucHk6
CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2FkZHN2bm1pbWV0eXBlZm9y
cG5nLnB5OiBBZGRlZC4KKyAgICAgICAgKEFkZFN2bk1pbWV0eXBlRm9yUG5nKToKKyAgICAgICAg
KEFkZFN2bk1pbWV0eXBlRm9yUG5nLl9faW5pdF9fKToKKyAgICAgICAgKEFkZFN2bk1pbWV0eXBl
Rm9yUG5nLnJ1bik6CisgICAgICAgIChBZGRTdm5NaW1ldHlwZUZvclBuZy5fY2hlY2tfcG5ncyk6
CisKIDIwMTItMDQtMTYgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgUmVtb3ZlIENyZWF0ZVdlYktpdEJ1aWxkRGlyZWN0b3J5IHN0ZXAgdG8gZml4IENocm9taXVt
IFdpbmRvd3MgUGVyZiBib3QKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29t
bW9uL2NoZWNrc3ZuY29uZmlnZmlsZS5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9u
L2NoZWNrc3ZuY29uZmlnZmlsZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li5jMjgwODgyCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21t
b24vY2hlY2tzdm5jb25maWdmaWxlLnB5CkBAIC0wLDAgKzEsODQgQEAKKyMgQ29weXJpZ2h0IChD
KSAyMDEyIEJhbGF6cyBBbmtlcyAoYmFua0BpbmYudS1zemVnZWQuaHUpIFVuaXZlcnNpdHkgb2Yg
U3plZ2VkCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
KyMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKKyMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
CisjIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorCisjIFRoaXMgZmlsZSBpcyB1c2VkIGJ5OgorIyB3ZWJraXRweS90b29sL3N0ZXBzL2Fk
ZHN2bm1pbWV0eXBlZm9ycG5nLnB5CisjIHdlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL3BuZy5weQor
CitpbXBvcnQgb3MKK2ltcG9ydCByZQoraW1wb3J0IHN5cworCisKK2RlZiBjaGVjayhzZWxmLCBw
bGF0Zm9ybSwgZnMpOgorICAgIGVycm9yY29kZSA9IDAKKworICAgIGNvbmZpZ19maWxlX3BhdGgg
PSBfY29uZmlnX2ZpbGVfcGF0aChzZWxmLCBwbGF0Zm9ybSwgZnMpCisgICAgdGhlcmVfaXNfZW5h
YmxlX2xpbmUgPSBGYWxzZQorICAgIHRoZXJlX2lzX3BuZ19saW5lID0gRmFsc2UKKworICAgIHRy
eToKKyAgICAgICAgY29uZmlnX2ZpbGUgPSBmcy5yZWFkX3RleHRfZmlsZShjb25maWdfZmlsZV9w
YXRoKQorICAgIGV4Y2VwdCBJT0Vycm9yOgorICAgICAgICByZXR1cm4gNAorCisgICAgZXJyb3Jj
b2RlX2F1dG9wcm9wID0gMQorICAgIGVycm9yY29kZV9wbmcgPSAyCisKKyAgICBmb3IgbGluZSBp
biBjb25maWdfZmlsZS5zcGxpdCgnXG4nKToKKyAgICAgICAgaWYgbm90IHRoZXJlX2lzX2VuYWJs
ZV9saW5lOgorICAgICAgICAgICAgbWF0Y2ggPSByZS5zZWFyY2goIl5ccyplbmFibGUtYXV0by1w
cm9wc1xzKj1ccyp5ZXMiLCBsaW5lKQorICAgICAgICAgICAgaWYgbWF0Y2g6CisgICAgICAgICAg
ICAgICAgdGhlcmVfaXNfZW5hYmxlX2xpbmUgPSBUcnVlCisgICAgICAgICAgICAgICAgZXJyb3Jj
b2RlX2F1dG9wcm9wID0gMAorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisKKyAgICAgICAgaWYg
bm90IHRoZXJlX2lzX3BuZ19saW5lOgorICAgICAgICAgICAgbWF0Y2ggPSByZS5zZWFyY2goIl5c
cypcKlwucG5nXHMqPVxzKnN2bjptaW1lLXR5cGU9aW1hZ2UvcG5nIiwgbGluZSkKKyAgICAgICAg
ICAgIGlmIG1hdGNoOgorICAgICAgICAgICAgICAgIHRoZXJlX2lzX3BuZ19saW5lID0gVHJ1ZQor
ICAgICAgICAgICAgICAgIGVycm9yY29kZV9wbmcgPSAwCisgICAgICAgICAgICAgICAgY29udGlu
dWUKKworICAgIGVycm9yY29kZSA9IGVycm9yY29kZV9hdXRvcHJvcCArIGVycm9yY29kZV9wbmcK
KyAgICBpZiBlcnJvcmNvZGU6CisgICAgICAgIHJldHVybiBlcnJvcmNvZGUKKyAgICBlbHNlOgor
ICAgICAgICByZXR1cm4gMAorCisKK2RlZiBfY29uZmlnX2ZpbGVfcGF0aChzZWxmLCBwbGF0Zm9y
bSwgZnMpOgorICAgIGNvbmZpZ19maWxlID0gIiIKKyAgICBpZiBwbGF0Zm9ybS5zdGFydHN3aXRo
KCdsaW51eCcpIG9yIHBsYXRmb3JtLnN0YXJ0c3dpdGgoJ2RhcndpbicpOgorICAgICAgICBjb25m
aWdfZmlsZV9wYXRoID0gZnMuam9pbihmcy5leHBhbmR1c2VyKCJ+IiksICIuc3VidmVyc2lvbi9j
b25maWciKQorICAgIGVsaWYgcGxhdGZvcm0uc3RhcnRzd2l0aCgnd2luJykgb3IgcGxhdGZvcm0u
c3RhcnRzd2l0aCgnY3lnd2luJyk6CisgICAgICAgIGNvbmZpZ19maWxlX3BhdGggPSBmcy5qb2lu
KG9zLmVudmlyb25bJ0FQUERBVEEnXSwgIlN1YnZlcnNpb25cY29uZmlnIikKKyAgICByZXR1cm4g
Y29uZmlnX2ZpbGVfcGF0aAorCisKK2RlZiBlcnJvcnN0cl9hdXRvcHJvcChjb25maWdfZmlsZV9w
YXRoKToKKyAgICByZXR1cm4gIkhhdmUgdG8gZW5hYmxlIGF1dG8gcHJvcHMgaW4gdGhlIHN1YnZl
cnNpb24gY29uZmlnIGZpbGUgKCIgKyBjb25maWdfZmlsZV9wYXRoICsgIiBcImVuYWJsZS1hdXRv
LXByb3BzID0geWVzXCIpLiAiCisKKworZGVmIGVycm9yc3RyX3BuZyhjb25maWdfZmlsZV9wYXRo
KToKKyAgICByZXR1cm4gIkhhdmUgdG8gc2V0IHRoZSBzdm46bWltZS10eXBlIGluIHRoZSBzdWJ2
ZXJzaW9uIGNvbmZpZyBmaWxlICgiICsgY29uZmlnX2ZpbGVfcGF0aCArICIgXCIqLnBuZyA9IHN2
bjptaW1lLXR5cGU9aW1hZ2UvcG5nXCIpLiIKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvc3R5bGUvY2hlY2tlcnMvcG5nLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHls
ZS9jaGVja2Vycy9wbmcucHkKaW5kZXggMGU5YmI0OC4uMWU5MThhZSAxMDA2NDQKLS0tIGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9wbmcucHkKKysrIGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9wbmcucHkKQEAgLTI1LDggKzI1LDggQEAKICIi
IlN1cHBvcnRzIGNoZWNraW5nIFdlYktpdCBzdHlsZSBpbiBwbmcgZmlsZXMuIiIiCiAKIGltcG9y
dCBvcwotaW1wb3J0IHJlCiBpbXBvcnQgc3lzCitmcm9tIHdlYmtpdHB5LmNvbW1vbiBpbXBvcnQg
Y2hlY2tzdm5jb25maWdmaWxlCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZl
IGltcG9ydCBFeGVjdXRpdmUKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5maWxlc3lzdGVt
IGltcG9ydCBGaWxlU3lzdGVtCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5jaGVja291dC5zY20uZGV0
ZWN0aW9uIGltcG9ydCBTQ01EZXRlY3RvcgpAQCAtNDUsNTQgKzQ1LDI2IEBAIGNsYXNzIFBOR0No
ZWNrZXIob2JqZWN0KToKICAgICAgICAgc2VsZi5fcGxhdGZvcm0gPSBwbGF0Zm9ybSBvciBzeXMu
cGxhdGZvcm0KIAogICAgIGRlZiBjaGVjayhzZWxmLCBpbmxpbmU9Tm9uZSk6Ci0gICAgICAgIGVy
cm9yc3RyID0gIiIKICAgICAgICAgY29uZmlnX2ZpbGVfcGF0aCA9ICIiCiAgICAgICAgIGRldGVj
dGlvbiA9IHNlbGYuX2RldGVjdG9yLmRpc3BsYXlfbmFtZSgpCiAKICAgICAgICAgaWYgZGV0ZWN0
aW9uID09ICJnaXQiOgotICAgICAgICAgICAgY29uZmlnX2ZpbGVfcGF0aCA9IHNlbGYuX2NvbmZp
Z19maWxlX3BhdGgoKQotICAgICAgICAgICAgdGhlcmVfaXNfZW5hYmxlX2xpbmUgPSBGYWxzZQot
ICAgICAgICAgICAgdGhlcmVfaXNfcG5nX2xpbmUgPSBGYWxzZQorICAgICAgICAgICAgZXJyb3Jj
b2RlID0gY2hlY2tzdm5jb25maWdmaWxlLmNoZWNrKHNlbGYsIHNlbGYuX3BsYXRmb3JtLCBzZWxm
Ll9mcykKKyAgICAgICAgICAgIGNvbmZpZ19maWxlX3BhdGggPSBjaGVja3N2bmNvbmZpZ2ZpbGUu
X2NvbmZpZ19maWxlX3BhdGgoc2VsZiwgc2VsZi5fcGxhdGZvcm0sIHNlbGYuX2ZzKQogCi0gICAg
ICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgY29uZmlnX2ZpbGUgPSBzZWxmLl9mcy5yZWFk
X3RleHRfZmlsZShjb25maWdfZmlsZV9wYXRoKQotICAgICAgICAgICAgZXhjZXB0IElPRXJyb3I6
Ci0gICAgICAgICAgICAgICAgZXJyb3JzdHIgPSAiVGhlcmUgaXMgbm8gIiArIGNvbmZpZ19maWxl
X3BhdGgKLSAgICAgICAgICAgICAgICBzZWxmLl9oYW5kbGVfc3R5bGVfZXJyb3IoMCwgJ2ltYWdl
L3BuZycsIDUsIGVycm9yc3RyKQorICAgICAgICAgICAgaWYgZXJyb3Jjb2RlID09IDA6CiAgICAg
ICAgICAgICAgICAgcmV0dXJuCi0KLSAgICAgICAgICAgIGVycm9yc3RyX2F1dG9wcm9wID0gIkhh
dmUgdG8gZW5hYmxlIGF1dG8gcHJvcHMgaW4gdGhlIHN1YnZlcnNpb24gY29uZmlnIGZpbGUgKCIg
KyBjb25maWdfZmlsZV9wYXRoICsgIiBcImVuYWJsZS1hdXRvLXByb3BzID0geWVzXCIpLiAiCi0g
ICAgICAgICAgICBlcnJvcnN0cl9wbmcgPSAiSGF2ZSB0byBzZXQgdGhlIHN2bjptaW1lLXR5cGUg
aW4gdGhlIHN1YnZlcnNpb24gY29uZmlnIGZpbGUgKCIgKyBjb25maWdfZmlsZV9wYXRoICsgIiBc
IioucG5nID0gc3ZuOm1pbWUtdHlwZT1pbWFnZS9wbmdcIikuIgotCi0gICAgICAgICAgICBmb3Ig
bGluZSBpbiBjb25maWdfZmlsZS5zcGxpdCgnXG4nKToKLSAgICAgICAgICAgICAgICBpZiBub3Qg
dGhlcmVfaXNfZW5hYmxlX2xpbmU6Ci0gICAgICAgICAgICAgICAgICAgIG1hdGNoID0gcmUuc2Vh
cmNoKCJeXHMqZW5hYmxlLWF1dG8tcHJvcHNccyo9XHMqeWVzIiwgbGluZSkKLSAgICAgICAgICAg
ICAgICAgICAgaWYgbWF0Y2g6Ci0gICAgICAgICAgICAgICAgICAgICAgICB0aGVyZV9pc19lbmFi
bGVfbGluZSA9IFRydWUKLSAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yc3RyX2F1dG9wcm9w
ID0gIiIKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0KLSAgICAgICAgICAgICAg
ICBpZiBub3QgdGhlcmVfaXNfcG5nX2xpbmU6Ci0gICAgICAgICAgICAgICAgICAgIG1hdGNoID0g
cmUuc2VhcmNoKCJeXHMqXCpcLnBuZ1xzKj1ccypzdm46bWltZS10eXBlPWltYWdlL3BuZyIsIGxp
bmUpCi0gICAgICAgICAgICAgICAgICAgIGlmIG1hdGNoOgotICAgICAgICAgICAgICAgICAgICAg
ICAgdGhlcmVfaXNfcG5nX2xpbmUgPSBUcnVlCi0gICAgICAgICAgICAgICAgICAgICAgICBlcnJv
cnN0cl9wbmcgPSAiIgotICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUKLQotICAgICAg
ICAgICAgZXJyb3JzdHIgPSBlcnJvcnN0cl9hdXRvcHJvcCArIGVycm9yc3RyX3BuZwotICAgICAg
ICAgICAgaWYgZXJyb3JzdHI6Ci0gICAgICAgICAgICAgICAgc2VsZi5faGFuZGxlX3N0eWxlX2Vy
cm9yKDAsICdpbWFnZS9wbmcnLCA1LCBlcnJvcnN0cikKKyAgICAgICAgICAgIGVsaWYgZXJyb3Jj
b2RlID09IDE6CisgICAgICAgICAgICAgICAgc2VsZi5faGFuZGxlX3N0eWxlX2Vycm9yKDAsICdp
bWFnZS9wbmcnLCA1LCBjaGVja3N2bmNvbmZpZ2ZpbGUuZXJyb3JzdHJfYXV0b3Byb3AoY29uZmln
X2ZpbGVfcGF0aCkpCisgICAgICAgICAgICBlbGlmIGVycm9yY29kZSA9PSAyOgorICAgICAgICAg
ICAgICAgIHNlbGYuX2hhbmRsZV9zdHlsZV9lcnJvcigwLCAnaW1hZ2UvcG5nJywgNSwgY2hlY2tz
dm5jb25maWdmaWxlLmVycm9yc3RyX3BuZyhjb25maWdfZmlsZV9wYXRoKSkKKyAgICAgICAgICAg
IGVsaWYgZXJyb3Jjb2RlID09IDM6CisgICAgICAgICAgICAgICAgc2VsZi5faGFuZGxlX3N0eWxl
X2Vycm9yKDAsICdpbWFnZS9wbmcnLCA1LCBjaGVja3N2bmNvbmZpZ2ZpbGUuZXJyb3JzdHJfYXV0
b3Byb3AoY29uZmlnX2ZpbGVfcGF0aCkgKyBjaGVja3N2bmNvbmZpZ2ZpbGUuZXJyb3JzdHJfcG5n
KGNvbmZpZ19maWxlX3BhdGgpKQorICAgICAgICAgICAgZWxpZiBlcnJvcmNvZGUgPT0gNDoKKyAg
ICAgICAgICAgICAgICBzZWxmLl9oYW5kbGVfc3R5bGVfZXJyb3IoMCwgJ2ltYWdlL3BuZycsIDUs
ICJUaGVyZSBpcyBubyBTVk4gY29uZmlnIGZpbGUuICgiICsgY29uZmlnX2ZpbGVfcGF0aCArICIp
IikKIAogICAgICAgICBlbGlmIGRldGVjdGlvbiA9PSAic3ZuIjoKICAgICAgICAgICAgIHByb3Bf
Z2V0ID0gc2VsZi5fZGV0ZWN0b3IucHJvcGdldCgic3ZuOm1pbWUtdHlwZSIsIHNlbGYuX2ZpbGVf
cGF0aCkKICAgICAgICAgICAgIGlmIHByb3BfZ2V0ICE9ICJpbWFnZS9wbmciOgogICAgICAgICAg
ICAgICAgIGVycm9yc3RyID0gIlNldCB0aGUgc3ZuOm1pbWUtdHlwZSBwcm9wZXJ0eSAoc3ZuIHBy
b3BzZXQgc3ZuOm1pbWUtdHlwZSBpbWFnZS9wbmcgIiArIHNlbGYuX2ZpbGVfcGF0aCArICIpLiIK
ICAgICAgICAgICAgICAgICBzZWxmLl9oYW5kbGVfc3R5bGVfZXJyb3IoMCwgJ2ltYWdlL3BuZycs
IDUsIGVycm9yc3RyKQotCi0gICAgZGVmIF9jb25maWdfZmlsZV9wYXRoKHNlbGYpOgotICAgICAg
ICBjb25maWdfZmlsZSA9ICIiCi0gICAgICAgIGlmIHNlbGYuX3BsYXRmb3JtLnN0YXJ0c3dpdGgo
J2xpbnV4Jykgb3Igc2VsZi5fcGxhdGZvcm0uc3RhcnRzd2l0aCgnZGFyd2luJyk6Ci0gICAgICAg
ICAgICBjb25maWdfZmlsZV9wYXRoID0gc2VsZi5fZnMuam9pbihzZWxmLl9mcy5leHBhbmR1c2Vy
KCJ+IiksICIuc3VidmVyc2lvbi9jb25maWciKQotICAgICAgICBlbGlmIHNlbGYuX3BsYXRmb3Jt
LnN0YXJ0c3dpdGgoJ3dpbicpIG9yIHNlbGYuX3BsYXRmb3JtLnN0YXJ0c3dpdGgoJ2N5Z3dpbicp
OgotICAgICAgICAgICAgY29uZmlnX2ZpbGVfcGF0aCA9IHNlbGYuX2ZzLmpvaW4ob3MuZW52aXJv
blsnQVBQREFUQSddLCAiU3VidmVyc2lvblxjb25maWciKQotICAgICAgICByZXR1cm4gY29uZmln
X2ZpbGVfcGF0aApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1h
bmRzL2Rvd25sb2FkLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Rv
d25sb2FkLnB5CmluZGV4IDRmNmI3MzcuLjYyZTQ4ZjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9kb3dubG9hZC5weQorKysgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZG93bmxvYWQucHkKQEAgLTk1LDYgKzk1LDcgQEAgY2xh
c3MgTGFuZChBYnN0cmFjdFNlcXVlbmNlZENvbW1hbmQpOgogICAgICAgICBzdGVwcy5WYWxpZGF0
ZUNoYW5nZUxvZ3MsICMgV2UgZG8gdGhpcyBhZnRlciBVcGRhdGVDaGFuZ2VMb2dzV2l0aFJldmll
d2VyIHRvIGF2b2lkIG5vdCBoYXZpbmcgdG8gY2FjaGUgdGhlIGRpZmYgdHdpY2UuCiAgICAgICAg
IHN0ZXBzLkJ1aWxkLAogICAgICAgICBzdGVwcy5SdW5UZXN0cywKKyAgICAgICAgc3RlcHMuQWRk
U3ZuTWltZXR5cGVGb3JQbmcsCiAgICAgICAgIHN0ZXBzLkNvbW1pdCwKICAgICAgICAgc3RlcHMu
Q2xvc2VCdWdGb3JMYW5kRGlmZiwKICAgICBdCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvc3RlcHMvX19pbml0X18ucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvc3RlcHMvX19pbml0X18ucHkKaW5kZXggYWNhOTcwNi4uNTY0MjllOCAxMDA2NDQKLS0tIGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL19faW5pdF9fLnB5CisrKyBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9fX2luaXRfXy5weQpAQCAtMjcsNiArMjcsNyBA
QAogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgogCiAjIEZJWE1FOiBJcyB0aGlzIHRoZSByaWdodCB3YXkgdG8gZG8g
dGhpcz8KK2Zyb20gd2Via2l0cHkudG9vbC5zdGVwcy5hZGRzdm5taW1ldHlwZWZvcnBuZyBpbXBv
cnQgQWRkU3ZuTWltZXR5cGVGb3JQbmcKIGZyb20gd2Via2l0cHkudG9vbC5zdGVwcy5hcHBseXBh
dGNoIGltcG9ydCBBcHBseVBhdGNoCiBmcm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMuYXBwbHlwYXRj
aHdpdGhsb2NhbGNvbW1pdCBpbXBvcnQgQXBwbHlQYXRjaFdpdGhMb2NhbENvbW1pdAogZnJvbSB3
ZWJraXRweS50b29sLnN0ZXBzLmFwcGx5d2F0Y2hsaXN0IGltcG9ydCBBcHBseVdhdGNoTGlzdApk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2FkZHN2bm1pbWV0
eXBlZm9ycG5nLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2FkZHN2bm1p
bWV0eXBlZm9ycG5nLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFiZWZj
YjIKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMv
YWRkc3ZubWltZXR5cGVmb3JwbmcucHkKQEAgLTAsMCArMSw3OSBAQAorIyBDb3B5cmlnaHQgKEMp
IDIwMTIgQmFsYXpzIEFua2VzIChiYW5rQGluZi51LXN6ZWdlZC5odSkgVW5pdmVyc2l0eSBvZiBT
emVnZWQKKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgor
IyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
KyMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisKK2ltcG9ydCBvcworaW1wb3J0IHN5cworZnJvbSB3ZWJraXRweS50b29sLnN0ZXBzLmFi
c3RyYWN0c3RlcCBpbXBvcnQgQWJzdHJhY3RTdGVwCitmcm9tIHdlYmtpdHB5LmNvbW1vbiBpbXBv
cnQgY2hlY2tzdm5jb25maWdmaWxlCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0
aXZlIGltcG9ydCBFeGVjdXRpdmUKK2Zyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5maWxlc3lz
dGVtIGltcG9ydCBGaWxlU3lzdGVtCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5jaGVja291dC5zY20u
ZGV0ZWN0aW9uIGltcG9ydCBTQ01EZXRlY3RvcgorCisKK2NsYXNzIEFkZFN2bk1pbWV0eXBlRm9y
UG5nKEFic3RyYWN0U3RlcCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHRvb2wsIHN0YXRlKToK
KyAgICAgICAgc2VsZi5fdG9vbCA9IHRvb2wKKyAgICAgICAgc2VsZi5fZnMgPSBGaWxlU3lzdGVt
KCkKKworICAgIGRlZiBydW4oc2VsZiwgc3RhdGUpOgorICAgICAgICBwbmdfZmlsZXMgPSBzZWxm
Ll9jaGVja19wbmdzKHNlbGYuX2NoYW5nZWRfZmlsZXMoc3RhdGUpKQorICAgICAgICBfcGxhdGZv
cm0gPSBzeXMucGxhdGZvcm0KKworICAgICAgICBpZiBsZW4ocG5nX2ZpbGVzKSA+IDA6CisgICAg
ICAgICAgICBkZXRlY3RvciA9IFNDTURldGVjdG9yKHNlbGYuX2ZzLCBFeGVjdXRpdmUoKSkuZGV0
ZWN0X3NjbV9zeXN0ZW0oc2VsZi5fZnMuZ2V0Y3dkKCkpCisgICAgICAgICAgICBkZXRlY3Rpb24g
PSBkZXRlY3Rvci5kaXNwbGF5X25hbWUoKQorCisgICAgICAgICAgICBpZiBkZXRlY3Rpb24gPT0g
ImdpdCI6CisgICAgICAgICAgICAgICAgZXJyb3Jjb2RlID0gY2hlY2tzdm5jb25maWdmaWxlLmNo
ZWNrKHNlbGYsIF9wbGF0Zm9ybSwgc2VsZi5fZnMpCisgICAgICAgICAgICAgICAgY29uZmlnX2Zp
bGVfcGF0aCA9IGNoZWNrc3ZuY29uZmlnZmlsZS5fY29uZmlnX2ZpbGVfcGF0aChzZWxmLCBfcGxh
dGZvcm0sIHNlbGYuX2ZzKQorCisgICAgICAgICAgICAgICAgaWYgZXJyb3Jjb2RlID09IDA6Cisg
ICAgICAgICAgICAgICAgICAgIHJldHVybgorICAgICAgICAgICAgICAgIGVsaWYgZXJyb3Jjb2Rl
ID09IDE6CisgICAgICAgICAgICAgICAgICAgIHByaW50IGNoZWNrc3ZuY29uZmlnZmlsZS5lcnJv
cnN0cl9hdXRvcHJvcChjb25maWdfZmlsZV9wYXRoKQorICAgICAgICAgICAgICAgICAgICBpZiBu
b3Qgc2VsZi5fdG9vbC51c2VyLmNvbmZpcm0oIkRvIHlvdSB3YW50IHRvIGNvbnRpbnVlPyIsIGRl
ZmF1bHQ9Im4iKToKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2V4aXQoMSkKKyAgICAg
ICAgICAgICAgICBlbGlmIGVycm9yY29kZSA9PSAyOgorICAgICAgICAgICAgICAgICAgICBwcmlu
dCBjaGVja3N2bmNvbmZpZ2ZpbGUuZXJyb3JzdHJfcG5nKGNvbmZpZ19maWxlX3BhdGgpCisgICAg
ICAgICAgICAgICAgICAgIGlmIG5vdCBzZWxmLl90b29sLnVzZXIuY29uZmlybSgiRG8geW91IHdh
bnQgdG8gY29udGludWU/IiwgZGVmYXVsdD0ibiIpOgorICAgICAgICAgICAgICAgICAgICAgICAg
c2VsZi5fZXhpdCgxKQorICAgICAgICAgICAgICAgIGVsaWYgZXJyb3Jjb2RlID09IDM6CisgICAg
ICAgICAgICAgICAgICAgIHByaW50IGNoZWNrc3ZuY29uZmlnZmlsZS5lcnJvcnN0cl9hdXRvcHJv
cChjb25maWdfZmlsZV9wYXRoKSArIGNoZWNrc3ZuY29uZmlnZmlsZS5lcnJvcnN0cl9wbmcoY29u
ZmlnX2ZpbGVfcGF0aCkKKyAgICAgICAgICAgICAgICAgICAgaWYgbm90IHNlbGYuX3Rvb2wudXNl
ci5jb25maXJtKCJEbyB5b3Ugd2FudCB0byBjb250aW51ZT8iLCBkZWZhdWx0PSJuIik6CisgICAg
ICAgICAgICAgICAgICAgICAgICBzZWxmLl9leGl0KDEpCisgICAgICAgICAgICAgICAgZWxpZiBl
cnJvcmNvZGUgPT0gNDoKKyAgICAgICAgICAgICAgICAgICAgaWYgbm90IHNlbGYuX3Rvb2wudXNl
ci5jb25maXJtKCJUaGVyZSBpcyBubyBTVk4gY29uZmlnIGZpbGUuIFRoZSBzdm46bWltZS10eXBl
IG9mIHBuZ3Mgd29uJ3Qgc2V0LiBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gY29udGludWU/Iiwg
ZGVmYXVsdD0ibiIpOgorICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fZXhpdCgxKQorCisg
ICAgICAgICAgICBlbGlmIGRldGVjdGlvbiA9PSAic3ZuIjoKKyAgICAgICAgICAgICAgICBmb3Ig
ZmlsZW5hbWUgaW4gcG5nX2ZpbGVzOgorICAgICAgICAgICAgICAgICAgICBpZiBmaWxlbmFtZS5l
bmRzd2l0aCgnLnBuZycpIGFuZCBkZXRlY3Rvci5leGlzdHMoZmlsZW5hbWUpIGFuZCBkZXRlY3Rv
ci5wcm9wZ2V0KCdzdm46bWltZS10eXBlJywgZmlsZW5hbWUpID09ICIiOgorICAgICAgICAgICAg
ICAgICAgICAgICAgcHJpbnQgIkFkZGluZyBpbWFnZS9wbmcgbWltZS10eXBlIHRvICVzIiAlIGZp
bGVuYW1lCisgICAgICAgICAgICAgICAgICAgICAgICBkZXRlY3Rvci5wcm9wc2V0KCdzdm46bWlt
ZS10eXBlJywgJ2ltYWdlL3BuZycsIGZpbGVuYW1lKQorCisgICAgZGVmIF9jaGVja19wbmdzKHNl
bGYsIGNoYW5nZWRfZmlsZXMpOgorICAgICAgICBwbmdfZmlsZXMgPSBbXQorICAgICAgICBmb3Ig
ZmlsZW5hbWUgaW4gY2hhbmdlZF9maWxlczoKKyAgICAgICAgICAgIGlmIGZpbGVuYW1lLmVuZHN3
aXRoKCcucG5nJyk6CisgICAgICAgICAgICAgICAgcG5nX2ZpbGVzLmFwcGVuZChmaWxlbmFtZSkK
KyAgICAgICAgcmV0dXJuIHBuZ19maWxlcwo=
</data>
<flag name="review"
          id="143656"
          type_id="1"
          status="-"
          setter="dpranke"
    />
    <flag name="commit-queue"
          id="143657"
          type_id="3"
          status="-"
          setter="abarth"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>140028</attachid>
            <date>2012-05-03 09:07:30 -0700</date>
            <delta_ts>2012-05-09 10:04:55 -0700</delta_ts>
            <desc>proposed fix</desc>
            <filename>2012-05-03_wk_patch_land.patch</filename>
            <type>text/plain</type>
            <size>14070</size>
            <attacher name="Balazs Ankes">bank</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBlMjUx
ZjY3Li4wYWZiNThjIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTItMDUtMDMgIEJhbGF6cyBBbmtlcyAgPGJhbmtA
aW5mLnUtc3plZ2VkLmh1PgorCisgICAgICAgIHdlYmtpdC1wYXRjaCBsYW5kIHNob3VsZCBhdXRv
bWF0aWNhbGx5IGFkZCBzdm46bWltZS10eXBlIGZvciAucG5nIGZpbGVzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NTgyNQorICAgICAgICBJIHJlZmFj
dG9yZWQgdGhlIHBuZy5weSB0byBhdm9pZCBjb2RlIGR1cGxpY2F0aW9uLgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9j
b21tb24vY2hlY2tzdm5jb25maWdmaWxlLnB5OiBBZGRlZC4KKyAgICAgICAgKGNoZWNrKToKKyAg
ICAgICAgKF9jb25maWdfZmlsZV9wYXRoKToKKyAgICAgICAgKGVycm9yc3RyX2F1dG9wcm9wKToK
KyAgICAgICAgKGVycm9yc3RyX3BuZyk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9zdHls
ZS9jaGVja2Vycy9wbmcucHk6CisgICAgICAgIChQTkdDaGVja2VyLl9faW5pdF9fKToKKyAgICAg
ICAgKFBOR0NoZWNrZXIuY2hlY2spOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9j
b21tYW5kcy9kb3dubG9hZC5weToKKyAgICAgICAgKExhbmQpOgorICAgICAgICAqIFNjcmlwdHMv
d2Via2l0cHkvdG9vbC9zdGVwcy9fX2luaXRfXy5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvc3RlcHMvYWRkc3ZubWltZXR5cGVmb3JwbmcucHk6IEFkZGVkLgorICAgICAgICAo
QWRkU3ZuTWltZXR5cGVGb3JQbmcpOgorICAgICAgICAoQWRkU3ZuTWltZXR5cGVGb3JQbmcucnVu
KToKKyAgICAgICAgKEFkZFN2bk1pbWV0eXBlRm9yUG5nLl9jaGVja19wbmdzKToKKwogMjAxMi0w
NS0wMiAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAg
ICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjExNTkxOC4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrc3ZuY29uZmlnZmlsZS5weSBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvY29tbW9uL2NoZWNrc3ZuY29uZmlnZmlsZS5weQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5kNWQ1Yzg1MAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrc3ZuY29uZmlnZmlsZS5weQpAQCAtMCwwICsxLDgz
IEBACisjIENvcHlyaWdodCAoQykgMjAxMiBCYWxhenMgQW5rZXMgKGJhbmtAaW5mLnUtc3plZ2Vk
Lmh1KSBVbml2ZXJzaXR5IG9mIFN6ZWdlZAorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisj
IGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyMgIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisjIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorIyBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UCisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworIyBUaGlzIGZpbGUgaXMgdXNlZCBieToKKyMgd2Vi
a2l0cHkvdG9vbC9zdGVwcy9hZGRzdm5taW1ldHlwZWZvcnBuZy5weQorIyB3ZWJraXRweS9zdHls
ZS9jaGVja2Vycy9wbmcucHkKKworaW1wb3J0IG9zCitpbXBvcnQgcmUKKworCitkZWYgY2hlY2so
c2VsZiwgaG9zdCwgZnMpOgorICAgICIiIgorICAgIGNoZWNrIHRoZSBzdm4gY29uZmlnIGZpbGUK
KyAgICByZXR1cm4gd2l0aCB0aHJlZSBsb2dpY2FsIHZhbHVlOgorICAgIHdhcyB0aGUgZmlsZSBy
ZWFkIHN1Y2Nlc3NmdWwsIGlzIHRoZXJlIGVuYWJsZSB0aGUgYXV0by1wcm9wcywgaXMgdGhlcmUg
ZW5hYmxlIHRoZSBzdm46bWltZS10eXBlIGZvciBwbmcKKyAgICAiIiIKKworICAgIGNvbmZpZ19m
aWxlX3BhdGggPSBfY29uZmlnX2ZpbGVfcGF0aChzZWxmLCBob3N0LCBmcykKKyAgICB0aGVyZV9p
c19lbmFibGVfbGluZSA9IEZhbHNlCisgICAgdGhlcmVfaXNfcG5nX2xpbmUgPSBGYWxzZQorCisg
ICAgdHJ5OgorICAgICAgICBjb25maWdfZmlsZSA9IGZzLnJlYWRfdGV4dF9maWxlKGNvbmZpZ19m
aWxlX3BhdGgpCisgICAgZXhjZXB0IElPRXJyb3I6CisgICAgICAgIHJldHVybiAoMSwgMSwgMSkK
KworICAgIGVycm9yY29kZV9hdXRvcHJvcCA9IDEKKyAgICBlcnJvcmNvZGVfcG5nID0gMQorCisg
ICAgZm9yIGxpbmUgaW4gY29uZmlnX2ZpbGUuc3BsaXQoJ1xuJyk6CisgICAgICAgIGlmIG5vdCB0
aGVyZV9pc19lbmFibGVfbGluZToKKyAgICAgICAgICAgIG1hdGNoID0gcmUuc2VhcmNoKCJeXHMq
ZW5hYmxlLWF1dG8tcHJvcHNccyo9XHMqeWVzIiwgbGluZSkKKyAgICAgICAgICAgIGlmIG1hdGNo
OgorICAgICAgICAgICAgICAgIHRoZXJlX2lzX2VuYWJsZV9saW5lID0gVHJ1ZQorICAgICAgICAg
ICAgICAgIGVycm9yY29kZV9hdXRvcHJvcCA9IDAKKyAgICAgICAgICAgICAgICBjb250aW51ZQor
CisgICAgICAgIGlmIG5vdCB0aGVyZV9pc19wbmdfbGluZToKKyAgICAgICAgICAgIG1hdGNoID0g
cmUuc2VhcmNoKCJeXHMqXCpcLnBuZ1xzKj1ccypzdm46bWltZS10eXBlPWltYWdlL3BuZyIsIGxp
bmUpCisgICAgICAgICAgICBpZiBtYXRjaDoKKyAgICAgICAgICAgICAgICB0aGVyZV9pc19wbmdf
bGluZSA9IFRydWUKKyAgICAgICAgICAgICAgICBlcnJvcmNvZGVfcG5nID0gMAorICAgICAgICAg
ICAgICAgIGNvbnRpbnVlCisKKyAgICByZXR1cm4gKDAsIGVycm9yY29kZV9hdXRvcHJvcCwgZXJy
b3Jjb2RlX3BuZykKKworCitkZWYgX2NvbmZpZ19maWxlX3BhdGgoc2VsZiwgaG9zdCwgZnMpOgor
ICAgIGNvbmZpZ19maWxlID0gIiIKKyAgICBpZiBob3N0LnBsYXRmb3JtLmlzX3dpbigpOgorICAg
ICAgICBjb25maWdfZmlsZV9wYXRoID0gZnMuam9pbihvcy5lbnZpcm9uWydBUFBEQVRBJ10sICJT
dWJ2ZXJzaW9uXGNvbmZpZyIpCisgICAgZWxzZToKKyAgICAgICAgY29uZmlnX2ZpbGVfcGF0aCA9
IGZzLmpvaW4oZnMuZXhwYW5kdXNlcigifiIpLCAiLnN1YnZlcnNpb24vY29uZmlnIikKKyAgICBy
ZXR1cm4gY29uZmlnX2ZpbGVfcGF0aAorCisKK2RlZiBlcnJvcnN0cl9hdXRvcHJvcChjb25maWdf
ZmlsZV9wYXRoKToKKyAgICByZXR1cm4gIkhhdmUgdG8gZW5hYmxlIGF1dG8gcHJvcHMgaW4gdGhl
IHN1YnZlcnNpb24gY29uZmlnIGZpbGUgKCIgKyBjb25maWdfZmlsZV9wYXRoICsgIiBcImVuYWJs
ZS1hdXRvLXByb3BzID0geWVzXCIpLiAiCisKKworZGVmIGVycm9yc3RyX3BuZyhjb25maWdfZmls
ZV9wYXRoKToKKyAgICByZXR1cm4gIkhhdmUgdG8gc2V0IHRoZSBzdm46bWltZS10eXBlIGluIHRo
ZSBzdWJ2ZXJzaW9uIGNvbmZpZyBmaWxlICgiICsgY29uZmlnX2ZpbGVfcGF0aCArICIgXCIqLnBu
ZyA9IHN2bjptaW1lLXR5cGU9aW1hZ2UvcG5nXCIpLiIKZGlmZiAtLWdpdCBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvcG5nLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9zdHlsZS9jaGVja2Vycy9wbmcucHkKaW5kZXggODViMTg5NS4uMzE1ZTI4NyAxMDA2NDQKLS0t
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9wbmcucHkKKysrIGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9wbmcucHkKQEAgLTI3LDYgKzI3LDcg
QEAKIGltcG9ydCBvcwogaW1wb3J0IHJlCiAKK2Zyb20gd2Via2l0cHkuY29tbW9uIGltcG9ydCBj
aGVja3N2bmNvbmZpZ2ZpbGUKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5zeXN0ZW1ob3N0
IGltcG9ydCBTeXN0ZW1Ib3N0CiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5jaGVja291dC5zY20uZGV0
ZWN0aW9uIGltcG9ydCBTQ01EZXRlY3RvcgogCkBAIC00MCw1OCArNDEsMjggQEAgY2xhc3MgUE5H
Q2hlY2tlcihvYmplY3QpOgogICAgICAgICBzZWxmLl9maWxlX3BhdGggPSBmaWxlX3BhdGgKICAg
ICAgICAgc2VsZi5faGFuZGxlX3N0eWxlX2Vycm9yID0gaGFuZGxlX3N0eWxlX2Vycm9yCiAgICAg
ICAgIHNlbGYuX2hvc3QgPSBob3N0IG9yIFN5c3RlbUhvc3QoKQotICAgICAgICBzZWxmLl9mcyA9
IGhvc3QuZmlsZXN5c3RlbQorICAgICAgICBzZWxmLl9mcyA9IHNlbGYuX2hvc3QuZmlsZXN5c3Rl
bQogICAgICAgICBzZWxmLl9kZXRlY3RvciA9IHNjbSBvciBTQ01EZXRlY3RvcihzZWxmLl9mcywg
c2VsZi5faG9zdC5leGVjdXRpdmUpLmRldGVjdF9zY21fc3lzdGVtKHNlbGYuX2ZzLmdldGN3ZCgp
KQogCiAgICAgZGVmIGNoZWNrKHNlbGYsIGlubGluZT1Ob25lKToKLSAgICAgICAgZXJyb3JzdHIg
PSAiIgogICAgICAgICBjb25maWdfZmlsZV9wYXRoID0gIiIKICAgICAgICAgZGV0ZWN0aW9uID0g
c2VsZi5fZGV0ZWN0b3IuZGlzcGxheV9uYW1lKCkKIAogICAgICAgICBpZiBkZXRlY3Rpb24gPT0g
ImdpdCI6Ci0gICAgICAgICAgICBjb25maWdfZmlsZV9wYXRoID0gc2VsZi5fY29uZmlnX2ZpbGVf
cGF0aCgpCi0gICAgICAgICAgICB0aGVyZV9pc19lbmFibGVfbGluZSA9IEZhbHNlCi0gICAgICAg
ICAgICB0aGVyZV9pc19wbmdfbGluZSA9IEZhbHNlCi0KLSAgICAgICAgICAgIHRyeToKLSAgICAg
ICAgICAgICAgICBjb25maWdfZmlsZSA9IHNlbGYuX2ZzLnJlYWRfdGV4dF9maWxlKGNvbmZpZ19m
aWxlX3BhdGgpCi0gICAgICAgICAgICBleGNlcHQgSU9FcnJvcjoKLSAgICAgICAgICAgICAgICBl
cnJvcnN0ciA9ICJUaGVyZSBpcyBubyAiICsgY29uZmlnX2ZpbGVfcGF0aAotICAgICAgICAgICAg
ICAgIHNlbGYuX2hhbmRsZV9zdHlsZV9lcnJvcigwLCAnaW1hZ2UvcG5nJywgNSwgZXJyb3JzdHIp
Ci0gICAgICAgICAgICAgICAgcmV0dXJuCi0KLSAgICAgICAgICAgIGVycm9yc3RyX2F1dG9wcm9w
ID0gIkhhdmUgdG8gZW5hYmxlIGF1dG8gcHJvcHMgaW4gdGhlIHN1YnZlcnNpb24gY29uZmlnIGZp
bGUgKCIgKyBjb25maWdfZmlsZV9wYXRoICsgIiBcImVuYWJsZS1hdXRvLXByb3BzID0geWVzXCIp
LiAiCi0gICAgICAgICAgICBlcnJvcnN0cl9wbmcgPSAiSGF2ZSB0byBzZXQgdGhlIHN2bjptaW1l
LXR5cGUgaW4gdGhlIHN1YnZlcnNpb24gY29uZmlnIGZpbGUgKCIgKyBjb25maWdfZmlsZV9wYXRo
ICsgIiBcIioucG5nID0gc3ZuOm1pbWUtdHlwZT1pbWFnZS9wbmdcIikuIgotCi0gICAgICAgICAg
ICBmb3IgbGluZSBpbiBjb25maWdfZmlsZS5zcGxpdCgnXG4nKToKLSAgICAgICAgICAgICAgICBp
ZiBub3QgdGhlcmVfaXNfZW5hYmxlX2xpbmU6Ci0gICAgICAgICAgICAgICAgICAgIG1hdGNoID0g
cmUuc2VhcmNoKCJeXHMqZW5hYmxlLWF1dG8tcHJvcHNccyo9XHMqeWVzIiwgbGluZSkKLSAgICAg
ICAgICAgICAgICAgICAgaWYgbWF0Y2g6Ci0gICAgICAgICAgICAgICAgICAgICAgICB0aGVyZV9p
c19lbmFibGVfbGluZSA9IFRydWUKLSAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yc3RyX2F1
dG9wcm9wID0gIiIKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0KLSAgICAgICAg
ICAgICAgICBpZiBub3QgdGhlcmVfaXNfcG5nX2xpbmU6Ci0gICAgICAgICAgICAgICAgICAgIG1h
dGNoID0gcmUuc2VhcmNoKCJeXHMqXCpcLnBuZ1xzKj1ccypzdm46bWltZS10eXBlPWltYWdlL3Bu
ZyIsIGxpbmUpCi0gICAgICAgICAgICAgICAgICAgIGlmIG1hdGNoOgotICAgICAgICAgICAgICAg
ICAgICAgICAgdGhlcmVfaXNfcG5nX2xpbmUgPSBUcnVlCi0gICAgICAgICAgICAgICAgICAgICAg
ICBlcnJvcnN0cl9wbmcgPSAiIgotICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUKLQot
ICAgICAgICAgICAgZXJyb3JzdHIgPSBlcnJvcnN0cl9hdXRvcHJvcCArIGVycm9yc3RyX3BuZwot
ICAgICAgICAgICAgaWYgZXJyb3JzdHI6Ci0gICAgICAgICAgICAgICAgc2VsZi5faGFuZGxlX3N0
eWxlX2Vycm9yKDAsICdpbWFnZS9wbmcnLCA1LCBlcnJvcnN0cikKKyAgICAgICAgICAgIChmaWxl
X3JlYWQsIGF1dG9wcm9wLCBwbmcpID0gY2hlY2tzdm5jb25maWdmaWxlLmNoZWNrKHNlbGYsIHNl
bGYuX2hvc3QsIHNlbGYuX2ZzKQorICAgICAgICAgICAgY29uZmlnX2ZpbGVfcGF0aCA9IGNoZWNr
c3ZuY29uZmlnZmlsZS5fY29uZmlnX2ZpbGVfcGF0aChzZWxmLCBzZWxmLl9ob3N0LCBzZWxmLl9m
cykKKworICAgICAgICAgICAgaWYgZmlsZV9yZWFkOgorICAgICAgICAgICAgICAgIHNlbGYuX2hh
bmRsZV9zdHlsZV9lcnJvcigwLCAnaW1hZ2UvcG5nJywgNSwgIlRoZXJlIGlzIG5vIFNWTiBjb25m
aWcgZmlsZS4gKCIgKyBjb25maWdfZmlsZV9wYXRoICsgIikiKQorICAgICAgICAgICAgZWxpZiBh
dXRvcHJvcCBhbmQgcG5nOgorICAgICAgICAgICAgICAgIHNlbGYuX2hhbmRsZV9zdHlsZV9lcnJv
cigwLCAnaW1hZ2UvcG5nJywgNSwgY2hlY2tzdm5jb25maWdmaWxlLmVycm9yc3RyX2F1dG9wcm9w
KGNvbmZpZ19maWxlX3BhdGgpICsgY2hlY2tzdm5jb25maWdmaWxlLmVycm9yc3RyX3BuZyhjb25m
aWdfZmlsZV9wYXRoKSkKKyAgICAgICAgICAgIGVsaWYgYXV0b3Byb3A6CisgICAgICAgICAgICAg
ICAgc2VsZi5faGFuZGxlX3N0eWxlX2Vycm9yKDAsICdpbWFnZS9wbmcnLCA1LCBjaGVja3N2bmNv
bmZpZ2ZpbGUuZXJyb3JzdHJfYXV0b3Byb3AoY29uZmlnX2ZpbGVfcGF0aCkpCisgICAgICAgICAg
ICBlbGlmIHBuZzoKKyAgICAgICAgICAgICAgICBzZWxmLl9oYW5kbGVfc3R5bGVfZXJyb3IoMCwg
J2ltYWdlL3BuZycsIDUsIGNoZWNrc3ZuY29uZmlnZmlsZS5lcnJvcnN0cl9wbmcoY29uZmlnX2Zp
bGVfcGF0aCkpCiAKICAgICAgICAgZWxpZiBkZXRlY3Rpb24gPT0gInN2biI6CiAgICAgICAgICAg
ICBwcm9wX2dldCA9IHNlbGYuX2RldGVjdG9yLnByb3BnZXQoInN2bjptaW1lLXR5cGUiLCBzZWxm
Ll9maWxlX3BhdGgpCiAgICAgICAgICAgICBpZiBwcm9wX2dldCAhPSAiaW1hZ2UvcG5nIjoKICAg
ICAgICAgICAgICAgICBlcnJvcnN0ciA9ICJTZXQgdGhlIHN2bjptaW1lLXR5cGUgcHJvcGVydHkg
KHN2biBwcm9wc2V0IHN2bjptaW1lLXR5cGUgaW1hZ2UvcG5nICIgKyBzZWxmLl9maWxlX3BhdGgg
KyAiKS4iCiAgICAgICAgICAgICAgICAgc2VsZi5faGFuZGxlX3N0eWxlX2Vycm9yKDAsICdpbWFn
ZS9wbmcnLCA1LCBlcnJvcnN0cikKLQotICAgIGRlZiBfY29uZmlnX2ZpbGVfcGF0aChzZWxmKToK
LSAgICAgICAgY29uZmlnX2ZpbGUgPSAiIgotICAgICAgICBpZiBzZWxmLl9ob3N0LnBsYXRmb3Jt
LmlzX3dpbigpOgotICAgICAgICAgICAgY29uZmlnX2ZpbGVfcGF0aCA9IHNlbGYuX2ZzLmpvaW4o
b3MuZW52aXJvblsnQVBQREFUQSddLCAiU3VidmVyc2lvblxjb25maWciKQotICAgICAgICBlbHNl
OgotICAgICAgICAgICAgY29uZmlnX2ZpbGVfcGF0aCA9IHNlbGYuX2ZzLmpvaW4oc2VsZi5fZnMu
ZXhwYW5kdXNlcigifiIpLCAiLnN1YnZlcnNpb24vY29uZmlnIikKLSAgICAgICAgcmV0dXJuIGNv
bmZpZ19maWxlX3BhdGgKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9j
b21tYW5kcy9kb3dubG9hZC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5k
cy9kb3dubG9hZC5weQppbmRleCA0ZjZiNzM3Li42MGM4OTIwIDEwMDY0NAotLS0gYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZG93bmxvYWQucHkKKysrIGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Rvd25sb2FkLnB5CkBAIC05MCw2ICs5MCw3IEBA
IGNsYXNzIExhbmQoQWJzdHJhY3RTZXF1ZW5jZWRDb21tYW5kKToKICAgICBhcmd1bWVudF9uYW1l
cyA9ICJbQlVHSURdIgogICAgIHNob3dfaW5fbWFpbl9oZWxwID0gVHJ1ZQogICAgIHN0ZXBzID0g
WworICAgICAgICBzdGVwcy5BZGRTdm5NaW1ldHlwZUZvclBuZywKICAgICAgICAgc3RlcHMuVXBk
YXRlQ2hhbmdlTG9nc1dpdGhSZXZpZXdlciwKICAgICAgICAgc3RlcHMuVmFsaWRhdGVSZXZpZXdl
ciwKICAgICAgICAgc3RlcHMuVmFsaWRhdGVDaGFuZ2VMb2dzLCAjIFdlIGRvIHRoaXMgYWZ0ZXIg
VXBkYXRlQ2hhbmdlTG9nc1dpdGhSZXZpZXdlciB0byBhdm9pZCBub3QgaGF2aW5nIHRvIGNhY2hl
IHRoZSBkaWZmIHR3aWNlLgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29s
L3N0ZXBzL19faW5pdF9fLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL19f
aW5pdF9fLnB5CmluZGV4IGFjYTk3MDYuLjU2NDI5ZTggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9zdGVwcy9fX2luaXRfXy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvc3RlcHMvX19pbml0X18ucHkKQEAgLTI3LDYgKzI3LDcgQEAKICMgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KIAogIyBGSVhNRTogSXMgdGhpcyB0aGUgcmlnaHQgd2F5IHRvIGRvIHRoaXM/Citmcm9t
IHdlYmtpdHB5LnRvb2wuc3RlcHMuYWRkc3ZubWltZXR5cGVmb3JwbmcgaW1wb3J0IEFkZFN2bk1p
bWV0eXBlRm9yUG5nCiBmcm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMuYXBwbHlwYXRjaCBpbXBvcnQg
QXBwbHlQYXRjaAogZnJvbSB3ZWJraXRweS50b29sLnN0ZXBzLmFwcGx5cGF0Y2h3aXRobG9jYWxj
b21taXQgaW1wb3J0IEFwcGx5UGF0Y2hXaXRoTG9jYWxDb21taXQKIGZyb20gd2Via2l0cHkudG9v
bC5zdGVwcy5hcHBseXdhdGNobGlzdCBpbXBvcnQgQXBwbHlXYXRjaExpc3QKZGlmZiAtLWdpdCBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9hZGRzdm5taW1ldHlwZWZvcnBuZy5w
eSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9hZGRzdm5taW1ldHlwZWZvcnBu
Zy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zOTFiYzk2Ci0tLSAvZGV2
L251bGwKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2FkZHN2bm1pbWV0
eXBlZm9ycG5nLnB5CkBAIC0wLDAgKzEsNzIgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDEyIEJhbGF6
cyBBbmtlcyAoYmFua0BpbmYudS1zemVnZWQuaHUpIFVuaXZlcnNpdHkgb2YgU3plZ2VkCisjCisj
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKKyMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitmcm9t
IHdlYmtpdHB5LnRvb2wuc3RlcHMuYWJzdHJhY3RzdGVwIGltcG9ydCBBYnN0cmFjdFN0ZXAKK2Zy
b20gd2Via2l0cHkuY29tbW9uIGltcG9ydCBjaGVja3N2bmNvbmZpZ2ZpbGUKK2Zyb20gd2Via2l0
cHkuY29tbW9uLmNoZWNrb3V0LnNjbS5kZXRlY3Rpb24gaW1wb3J0IFNDTURldGVjdG9yCitmcm9t
IHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uc3lzdGVtaG9zdCBpbXBvcnQgU3lzdGVtSG9zdAorCisK
K2NsYXNzIEFkZFN2bk1pbWV0eXBlRm9yUG5nKEFic3RyYWN0U3RlcCk6CisKKyAgICBkZWYgcnVu
KHNlbGYsIHN0YXRlKToKKyAgICAgICAgaG9zdCA9IFN5c3RlbUhvc3QoKQorICAgICAgICBmcyA9
IGhvc3QuZmlsZXN5c3RlbQorICAgICAgICBwbmdfZmlsZXMgPSBzZWxmLl9jaGVja19wbmdzKHNl
bGYuX2NoYW5nZWRfZmlsZXMoc3RhdGUpKQorCisgICAgICAgIGlmIGxlbihwbmdfZmlsZXMpID4g
MDoKKyAgICAgICAgICAgIGRldGVjdG9yID0gU0NNRGV0ZWN0b3IoZnMsIGhvc3QuZXhlY3V0aXZl
KS5kZXRlY3Rfc2NtX3N5c3RlbShmcy5nZXRjd2QoKSkKKyAgICAgICAgICAgIGRldGVjdGlvbiA9
IGRldGVjdG9yLmRpc3BsYXlfbmFtZSgpCisKKyAgICAgICAgICAgIGlmIGRldGVjdGlvbiA9PSAi
Z2l0IjoKKyAgICAgICAgICAgICAgICAoZmlsZV9yZWFkLCBhdXRvcHJvcCwgcG5nKSA9IGNoZWNr
c3ZuY29uZmlnZmlsZS5jaGVjayhzZWxmLCBob3N0LCBmcykKKyAgICAgICAgICAgICAgICBjb25m
aWdfZmlsZV9wYXRoID0gY2hlY2tzdm5jb25maWdmaWxlLl9jb25maWdfZmlsZV9wYXRoKHNlbGYs
IGhvc3QsIGZzKQorCisgICAgICAgICAgICAgICAgaWYgZmlsZV9yZWFkOgorICAgICAgICAgICAg
ICAgICAgICBpZiBub3Qgc2VsZi5fdG9vbC51c2VyLmNvbmZpcm0oIlRoZXJlIGlzIG5vIFNWTiBj
b25maWcgZmlsZS4gVGhlIHN2bjptaW1lLXR5cGUgb2YgcG5ncyB3b24ndCBzZXQuIEFyZSB5b3Ug
c3VyZSB5b3Ugd2FudCB0byBjb250aW51ZT8iLCBkZWZhdWx0PSJuIik6CisgICAgICAgICAgICAg
ICAgICAgICAgICBzZWxmLl9leGl0KDEpCisgICAgICAgICAgICAgICAgZWxpZiBhdXRvcHJvcCBh
bmQgcG5nOgorICAgICAgICAgICAgICAgICAgICBwcmludCBjaGVja3N2bmNvbmZpZ2ZpbGUuZXJy
b3JzdHJfYXV0b3Byb3AoY29uZmlnX2ZpbGVfcGF0aCkgKyBjaGVja3N2bmNvbmZpZ2ZpbGUuZXJy
b3JzdHJfcG5nKGNvbmZpZ19maWxlX3BhdGgpCisgICAgICAgICAgICAgICAgICAgIGlmIG5vdCBz
ZWxmLl90b29sLnVzZXIuY29uZmlybSgiRG8geW91IHdhbnQgdG8gY29udGludWU/IiwgZGVmYXVs
dD0ibiIpOgorICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fZXhpdCgxKQorICAgICAgICAg
ICAgICAgIGVsaWYgYXV0b3Byb3A6CisgICAgICAgICAgICAgICAgICAgIHByaW50IGNoZWNrc3Zu
Y29uZmlnZmlsZS5lcnJvcnN0cl9hdXRvcHJvcChjb25maWdfZmlsZV9wYXRoKQorICAgICAgICAg
ICAgICAgICAgICBpZiBub3Qgc2VsZi5fdG9vbC51c2VyLmNvbmZpcm0oIkRvIHlvdSB3YW50IHRv
IGNvbnRpbnVlPyIsIGRlZmF1bHQ9Im4iKToKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu
X2V4aXQoMSkKKyAgICAgICAgICAgICAgICBlbGlmIHBuZzoKKyAgICAgICAgICAgICAgICAgICAg
cHJpbnQgY2hlY2tzdm5jb25maWdmaWxlLmVycm9yc3RyX3BuZyhjb25maWdfZmlsZV9wYXRoKQor
ICAgICAgICAgICAgICAgICAgICBpZiBub3Qgc2VsZi5fdG9vbC51c2VyLmNvbmZpcm0oIkRvIHlv
dSB3YW50IHRvIGNvbnRpbnVlPyIsIGRlZmF1bHQ9Im4iKToKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHNlbGYuX2V4aXQoMSkKKworICAgICAgICAgICAgZWxpZiBkZXRlY3Rpb24gPT0gInN2biI6
CisgICAgICAgICAgICAgICAgZm9yIGZpbGVuYW1lIGluIHBuZ19maWxlczoKKyAgICAgICAgICAg
ICAgICAgICAgaWYgZmlsZW5hbWUuZW5kc3dpdGgoJy5wbmcnKSBhbmQgZGV0ZWN0b3IuZXhpc3Rz
KGZpbGVuYW1lKSBhbmQgZGV0ZWN0b3IucHJvcGdldCgnc3ZuOm1pbWUtdHlwZScsIGZpbGVuYW1l
KSA9PSAiIjoKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ICJBZGRpbmcgaW1hZ2UvcG5n
IG1pbWUtdHlwZSB0byAlcyIgJSBmaWxlbmFtZQorICAgICAgICAgICAgICAgICAgICAgICAgZGV0
ZWN0b3IucHJvcHNldCgnc3ZuOm1pbWUtdHlwZScsICdpbWFnZS9wbmcnLCBmaWxlbmFtZSkKKwor
ICAgIGRlZiBfY2hlY2tfcG5ncyhzZWxmLCBjaGFuZ2VkX2ZpbGVzKToKKyAgICAgICAgcG5nX2Zp
bGVzID0gW10KKyAgICAgICAgZm9yIGZpbGVuYW1lIGluIGNoYW5nZWRfZmlsZXM6CisgICAgICAg
ICAgICBpZiBmaWxlbmFtZS5lbmRzd2l0aCgnLnBuZycpOgorICAgICAgICAgICAgICAgIHBuZ19m
aWxlcy5hcHBlbmQoZmlsZW5hbWUpCisgICAgICAgIHJldHVybiBwbmdfZmlsZXMK
</data>
<flag name="review"
          id="145777"
          type_id="1"
          status="-"
          setter="dpranke"
    />
    <flag name="commit-queue"
          id="145778"
          type_id="3"
          status="-"
          setter="dpranke"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>140967</attachid>
            <date>2012-05-09 10:04:55 -0700</date>
            <delta_ts>2012-05-10 05:58:23 -0700</delta_ts>
            <desc>proposed fix</desc>
            <filename>2012-05-09_wk_patch_land.patch</filename>
            <type>text/plain</type>
            <size>17447</size>
            <attacher name="Balazs Ankes">bank</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBjMjJl
NWYzLi43YTdiYTZjIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTItMDUtMDkgIEJhbGF6cyBBbmtlcyAgPGJhbmtA
aW5mLnUtc3plZ2VkLmh1PgorCisgICAgICAgIHdlYmtpdC1wYXRjaCBsYW5kIHNob3VsZCBhdXRv
bWF0aWNhbGx5IGFkZCBzdm46bWltZS10eXBlIGZvciAucG5nIGZpbGVzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NTgyNQorICAgICAgICBJIHJlZmFj
dG9yZWQgdGhlIHBuZy5weSB0byBhdm9pZCBjb2RlIGR1cGxpY2F0aW9uLgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9j
b21tb24vY2hlY2tzdm5jb25maWdmaWxlLnB5OiBBZGRlZC4KKyAgICAgICAgKGNoZWNrKToKKyAg
ICAgICAgKF9jb25maWdfZmlsZV9wYXRoKToKKyAgICAgICAgKGVycm9yc3RyX2F1dG9wcm9wKToK
KyAgICAgICAgKGVycm9yc3RyX3BuZyk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9zdHls
ZS9jaGVja2Vycy9wbmcucHk6CisgICAgICAgIChQTkdDaGVja2VyLmNoZWNrKToKKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZG93bmxvYWQucHk6CisgICAgICAgIChM
YW5kKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvX19pbml0X18ucHk6
CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2FkZHN2bm1pbWV0eXBlZm9y
cG5nLnB5OiBBZGRlZC4KKyAgICAgICAgKEFkZFN2bk1pbWV0eXBlRm9yUG5nKToKKyAgICAgICAg
KEFkZFN2bk1pbWV0eXBlRm9yUG5nLl9faW5pdF9fKToKKyAgICAgICAgKEFkZFN2bk1pbWV0eXBl
Rm9yUG5nLnJ1bik6CisgICAgICAgIChBZGRTdm5NaW1ldHlwZUZvclBuZy5fY2hlY2tfcG5ncyk6
CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2FkZHN2bm1pbWV0eXBlZm9y
cG5nX3VuaXR0ZXN0LnB5OiBBZGRlZC4KKyAgICAgICAgKE1vY2tTQ01EZXRlY3Rvcik6CisgICAg
ICAgIChNb2NrU0NNRGV0ZWN0b3IuX19pbml0X18pOgorICAgICAgICAoTW9ja1NDTURldGVjdG9y
LmRpc3BsYXlfbmFtZSk6CisgICAgICAgIChBZGRTdm5NaW1ldHlwZUZvclBuZ1Rlc3QpOgorICAg
ICAgICAoQWRkU3ZuTWltZXR5cGVGb3JQbmdUZXN0LnRlc3RfcnVuKToKKwogMjAxMi0wNS0wOSAg
RG9taW5payBSw7Z0dHNjaGVzICA8ZG9taW5pay5yb3R0c2NoZXNAaW50ZWwuY29tPgogCiAgICAg
ICAgIHdlYmtpdC1wYXRjaCB1cGxvYWQgRmFpbHMgQmVoaW5kIExvYWQtYmFsYW5jaW5nIFByb3hp
ZXMKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrc3ZuY29u
ZmlnZmlsZS5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrc3ZuY29uZmln
ZmlsZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ODViYzY4Ci0tLSAv
ZGV2L251bGwKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tzdm5jb25m
aWdmaWxlLnB5CkBAIC0wLDAgKzEsODMgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDEyIEJhbGF6cyBB
bmtlcyAoYmFua0BpbmYudS1zemVnZWQuaHUpIFVuaXZlcnNpdHkgb2YgU3plZ2VkCisjCisjIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMK
KyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQK
KyMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjIFRoaXMg
ZmlsZSBpcyB1c2VkIGJ5OgorIyB3ZWJraXRweS90b29sL3N0ZXBzL2FkZHN2bm1pbWV0eXBlZm9y
cG5nLnB5CisjIHdlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL3BuZy5weQorCitpbXBvcnQgb3MKK2lt
cG9ydCByZQorCisKK2RlZiBjaGVjayhzZWxmLCBob3N0LCBmcyk6CisgICAgIiIiCisgICAgY2hl
Y2sgdGhlIHN2biBjb25maWcgZmlsZQorICAgIHJldHVybiB3aXRoIHRocmVlIGxvZ2ljYWwgdmFs
dWU6CisgICAgd2FzIHRoZSBmaWxlIHJlYWQgc3VjY2Vzc2Z1bCwgaXMgdGhlcmUgZW5hYmxlIHRo
ZSBhdXRvLXByb3BzLCBpcyB0aGVyZSBlbmFibGUgdGhlIHN2bjptaW1lLXR5cGUgZm9yIHBuZwor
ICAgICIiIgorCisgICAgY29uZmlnX2ZpbGVfcGF0aCA9IF9jb25maWdfZmlsZV9wYXRoKHNlbGYs
IGhvc3QsIGZzKQorICAgIHRoZXJlX2lzX2VuYWJsZV9saW5lID0gRmFsc2UKKyAgICB0aGVyZV9p
c19wbmdfbGluZSA9IEZhbHNlCisKKyAgICB0cnk6CisgICAgICAgIGNvbmZpZ19maWxlID0gZnMu
cmVhZF90ZXh0X2ZpbGUoY29uZmlnX2ZpbGVfcGF0aCkKKyAgICBleGNlcHQgSU9FcnJvcjoKKyAg
ICAgICAgcmV0dXJuIChUcnVlLCBUcnVlLCBUcnVlKQorCisgICAgZXJyb3Jjb2RlX2F1dG9wcm9w
ID0gVHJ1ZQorICAgIGVycm9yY29kZV9wbmcgPSBUcnVlCisKKyAgICBmb3IgbGluZSBpbiBjb25m
aWdfZmlsZS5zcGxpdCgnXG4nKToKKyAgICAgICAgaWYgbm90IHRoZXJlX2lzX2VuYWJsZV9saW5l
OgorICAgICAgICAgICAgbWF0Y2ggPSByZS5zZWFyY2goIl5ccyplbmFibGUtYXV0by1wcm9wc1xz
Kj1ccyp5ZXMiLCBsaW5lKQorICAgICAgICAgICAgaWYgbWF0Y2g6CisgICAgICAgICAgICAgICAg
dGhlcmVfaXNfZW5hYmxlX2xpbmUgPSBUcnVlCisgICAgICAgICAgICAgICAgZXJyb3Jjb2RlX2F1
dG9wcm9wID0gRmFsc2UKKyAgICAgICAgICAgICAgICBjb250aW51ZQorCisgICAgICAgIGlmIG5v
dCB0aGVyZV9pc19wbmdfbGluZToKKyAgICAgICAgICAgIG1hdGNoID0gcmUuc2VhcmNoKCJeXHMq
XCpcLnBuZ1xzKj1ccypzdm46bWltZS10eXBlPWltYWdlL3BuZyIsIGxpbmUpCisgICAgICAgICAg
ICBpZiBtYXRjaDoKKyAgICAgICAgICAgICAgICB0aGVyZV9pc19wbmdfbGluZSA9IFRydWUKKyAg
ICAgICAgICAgICAgICBlcnJvcmNvZGVfcG5nID0gRmFsc2UKKyAgICAgICAgICAgICAgICBjb250
aW51ZQorCisgICAgcmV0dXJuIChGYWxzZSwgZXJyb3Jjb2RlX2F1dG9wcm9wLCBlcnJvcmNvZGVf
cG5nKQorCisKK2RlZiBfY29uZmlnX2ZpbGVfcGF0aChzZWxmLCBob3N0LCBmcyk6CisgICAgY29u
ZmlnX2ZpbGUgPSAiIgorICAgIGlmIGhvc3QucGxhdGZvcm0uaXNfd2luKCk6CisgICAgICAgIGNv
bmZpZ19maWxlX3BhdGggPSBmcy5qb2luKG9zLmVudmlyb25bJ0FQUERBVEEnXSwgIlN1YnZlcnNp
b25cY29uZmlnIikKKyAgICBlbHNlOgorICAgICAgICBjb25maWdfZmlsZV9wYXRoID0gZnMuam9p
bihmcy5leHBhbmR1c2VyKCJ+IiksICIuc3VidmVyc2lvbi9jb25maWciKQorICAgIHJldHVybiBj
b25maWdfZmlsZV9wYXRoCisKKworZGVmIGVycm9yc3RyX2F1dG9wcm9wKGNvbmZpZ19maWxlX3Bh
dGgpOgorICAgIHJldHVybiAiSGF2ZSB0byBlbmFibGUgYXV0byBwcm9wcyBpbiB0aGUgc3VidmVy
c2lvbiBjb25maWcgZmlsZSAoIiArIGNvbmZpZ19maWxlX3BhdGggKyAiIFwiZW5hYmxlLWF1dG8t
cHJvcHMgPSB5ZXNcIikuICIKKworCitkZWYgZXJyb3JzdHJfcG5nKGNvbmZpZ19maWxlX3BhdGgp
OgorICAgIHJldHVybiAiSGF2ZSB0byBzZXQgdGhlIHN2bjptaW1lLXR5cGUgaW4gdGhlIHN1YnZl
cnNpb24gY29uZmlnIGZpbGUgKCIgKyBjb25maWdfZmlsZV9wYXRoICsgIiBcIioucG5nID0gc3Zu
Om1pbWUtdHlwZT1pbWFnZS9wbmdcIikuIgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9zdHlsZS9jaGVja2Vycy9wbmcucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxl
L2NoZWNrZXJzL3BuZy5weQppbmRleCBlMGI3OWUyLi4zMTVlMjg3IDEwMDY0NAotLS0gYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL3BuZy5weQorKysgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL3BuZy5weQpAQCAtMjcsNiArMjcsNyBAQAogaW1w
b3J0IG9zCiBpbXBvcnQgcmUKIAorZnJvbSB3ZWJraXRweS5jb21tb24gaW1wb3J0IGNoZWNrc3Zu
Y29uZmlnZmlsZQogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLnN5c3RlbWhvc3QgaW1wb3J0
IFN5c3RlbUhvc3QKIGZyb20gd2Via2l0cHkuY29tbW9uLmNoZWNrb3V0LnNjbS5kZXRlY3Rpb24g
aW1wb3J0IFNDTURldGVjdG9yCiAKQEAgLTQ0LDU0ICs0NSwyNCBAQCBjbGFzcyBQTkdDaGVja2Vy
KG9iamVjdCk6CiAgICAgICAgIHNlbGYuX2RldGVjdG9yID0gc2NtIG9yIFNDTURldGVjdG9yKHNl
bGYuX2ZzLCBzZWxmLl9ob3N0LmV4ZWN1dGl2ZSkuZGV0ZWN0X3NjbV9zeXN0ZW0oc2VsZi5fZnMu
Z2V0Y3dkKCkpCiAKICAgICBkZWYgY2hlY2soc2VsZiwgaW5saW5lPU5vbmUpOgotICAgICAgICBl
cnJvcnN0ciA9ICIiCiAgICAgICAgIGNvbmZpZ19maWxlX3BhdGggPSAiIgogICAgICAgICBkZXRl
Y3Rpb24gPSBzZWxmLl9kZXRlY3Rvci5kaXNwbGF5X25hbWUoKQogCiAgICAgICAgIGlmIGRldGVj
dGlvbiA9PSAiZ2l0IjoKLSAgICAgICAgICAgIGNvbmZpZ19maWxlX3BhdGggPSBzZWxmLl9jb25m
aWdfZmlsZV9wYXRoKCkKLSAgICAgICAgICAgIHRoZXJlX2lzX2VuYWJsZV9saW5lID0gRmFsc2UK
LSAgICAgICAgICAgIHRoZXJlX2lzX3BuZ19saW5lID0gRmFsc2UKLQotICAgICAgICAgICAgdHJ5
OgotICAgICAgICAgICAgICAgIGNvbmZpZ19maWxlID0gc2VsZi5fZnMucmVhZF90ZXh0X2ZpbGUo
Y29uZmlnX2ZpbGVfcGF0aCkKLSAgICAgICAgICAgIGV4Y2VwdCBJT0Vycm9yOgotICAgICAgICAg
ICAgICAgIGVycm9yc3RyID0gIlRoZXJlIGlzIG5vICIgKyBjb25maWdfZmlsZV9wYXRoCi0gICAg
ICAgICAgICAgICAgc2VsZi5faGFuZGxlX3N0eWxlX2Vycm9yKDAsICdpbWFnZS9wbmcnLCA1LCBl
cnJvcnN0cikKLSAgICAgICAgICAgICAgICByZXR1cm4KLQotICAgICAgICAgICAgZXJyb3JzdHJf
YXV0b3Byb3AgPSAiSGF2ZSB0byBlbmFibGUgYXV0byBwcm9wcyBpbiB0aGUgc3VidmVyc2lvbiBj
b25maWcgZmlsZSAoIiArIGNvbmZpZ19maWxlX3BhdGggKyAiIFwiZW5hYmxlLWF1dG8tcHJvcHMg
PSB5ZXNcIikuICIKLSAgICAgICAgICAgIGVycm9yc3RyX3BuZyA9ICJIYXZlIHRvIHNldCB0aGUg
c3ZuOm1pbWUtdHlwZSBpbiB0aGUgc3VidmVyc2lvbiBjb25maWcgZmlsZSAoIiArIGNvbmZpZ19m
aWxlX3BhdGggKyAiIFwiKi5wbmcgPSBzdm46bWltZS10eXBlPWltYWdlL3BuZ1wiKS4iCi0KLSAg
ICAgICAgICAgIGZvciBsaW5lIGluIGNvbmZpZ19maWxlLnNwbGl0KCdcbicpOgotICAgICAgICAg
ICAgICAgIGlmIG5vdCB0aGVyZV9pc19lbmFibGVfbGluZToKLSAgICAgICAgICAgICAgICAgICAg
bWF0Y2ggPSByZS5zZWFyY2goIl5ccyplbmFibGUtYXV0by1wcm9wc1xzKj1ccyp5ZXMiLCBsaW5l
KQotICAgICAgICAgICAgICAgICAgICBpZiBtYXRjaDoKLSAgICAgICAgICAgICAgICAgICAgICAg
IHRoZXJlX2lzX2VuYWJsZV9saW5lID0gVHJ1ZQotICAgICAgICAgICAgICAgICAgICAgICAgZXJy
b3JzdHJfYXV0b3Byb3AgPSAiIgotICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUKLQot
ICAgICAgICAgICAgICAgIGlmIG5vdCB0aGVyZV9pc19wbmdfbGluZToKLSAgICAgICAgICAgICAg
ICAgICAgbWF0Y2ggPSByZS5zZWFyY2goIl5ccypcKlwucG5nXHMqPVxzKnN2bjptaW1lLXR5cGU9
aW1hZ2UvcG5nIiwgbGluZSkKLSAgICAgICAgICAgICAgICAgICAgaWYgbWF0Y2g6Ci0gICAgICAg
ICAgICAgICAgICAgICAgICB0aGVyZV9pc19wbmdfbGluZSA9IFRydWUKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGVycm9yc3RyX3BuZyA9ICIiCi0gICAgICAgICAgICAgICAgICAgICAgICBjb250
aW51ZQotCi0gICAgICAgICAgICBlcnJvcnN0ciA9IGVycm9yc3RyX2F1dG9wcm9wICsgZXJyb3Jz
dHJfcG5nCi0gICAgICAgICAgICBpZiBlcnJvcnN0cjoKLSAgICAgICAgICAgICAgICBzZWxmLl9o
YW5kbGVfc3R5bGVfZXJyb3IoMCwgJ2ltYWdlL3BuZycsIDUsIGVycm9yc3RyKQorICAgICAgICAg
ICAgKGZpbGVfcmVhZCwgYXV0b3Byb3AsIHBuZykgPSBjaGVja3N2bmNvbmZpZ2ZpbGUuY2hlY2so
c2VsZiwgc2VsZi5faG9zdCwgc2VsZi5fZnMpCisgICAgICAgICAgICBjb25maWdfZmlsZV9wYXRo
ID0gY2hlY2tzdm5jb25maWdmaWxlLl9jb25maWdfZmlsZV9wYXRoKHNlbGYsIHNlbGYuX2hvc3Qs
IHNlbGYuX2ZzKQorCisgICAgICAgICAgICBpZiBmaWxlX3JlYWQ6CisgICAgICAgICAgICAgICAg
c2VsZi5faGFuZGxlX3N0eWxlX2Vycm9yKDAsICdpbWFnZS9wbmcnLCA1LCAiVGhlcmUgaXMgbm8g
U1ZOIGNvbmZpZyBmaWxlLiAoIiArIGNvbmZpZ19maWxlX3BhdGggKyAiKSIpCisgICAgICAgICAg
ICBlbGlmIGF1dG9wcm9wIGFuZCBwbmc6CisgICAgICAgICAgICAgICAgc2VsZi5faGFuZGxlX3N0
eWxlX2Vycm9yKDAsICdpbWFnZS9wbmcnLCA1LCBjaGVja3N2bmNvbmZpZ2ZpbGUuZXJyb3JzdHJf
YXV0b3Byb3AoY29uZmlnX2ZpbGVfcGF0aCkgKyBjaGVja3N2bmNvbmZpZ2ZpbGUuZXJyb3JzdHJf
cG5nKGNvbmZpZ19maWxlX3BhdGgpKQorICAgICAgICAgICAgZWxpZiBhdXRvcHJvcDoKKyAgICAg
ICAgICAgICAgICBzZWxmLl9oYW5kbGVfc3R5bGVfZXJyb3IoMCwgJ2ltYWdlL3BuZycsIDUsIGNo
ZWNrc3ZuY29uZmlnZmlsZS5lcnJvcnN0cl9hdXRvcHJvcChjb25maWdfZmlsZV9wYXRoKSkKKyAg
ICAgICAgICAgIGVsaWYgcG5nOgorICAgICAgICAgICAgICAgIHNlbGYuX2hhbmRsZV9zdHlsZV9l
cnJvcigwLCAnaW1hZ2UvcG5nJywgNSwgY2hlY2tzdm5jb25maWdmaWxlLmVycm9yc3RyX3BuZyhj
b25maWdfZmlsZV9wYXRoKSkKIAogICAgICAgICBlbGlmIGRldGVjdGlvbiA9PSAic3ZuIjoKICAg
ICAgICAgICAgIHByb3BfZ2V0ID0gc2VsZi5fZGV0ZWN0b3IucHJvcGdldCgic3ZuOm1pbWUtdHlw
ZSIsIHNlbGYuX2ZpbGVfcGF0aCkKICAgICAgICAgICAgIGlmIHByb3BfZ2V0ICE9ICJpbWFnZS9w
bmciOgogICAgICAgICAgICAgICAgIGVycm9yc3RyID0gIlNldCB0aGUgc3ZuOm1pbWUtdHlwZSBw
cm9wZXJ0eSAoc3ZuIHByb3BzZXQgc3ZuOm1pbWUtdHlwZSBpbWFnZS9wbmcgIiArIHNlbGYuX2Zp
bGVfcGF0aCArICIpLiIKICAgICAgICAgICAgICAgICBzZWxmLl9oYW5kbGVfc3R5bGVfZXJyb3Io
MCwgJ2ltYWdlL3BuZycsIDUsIGVycm9yc3RyKQotCi0gICAgZGVmIF9jb25maWdfZmlsZV9wYXRo
KHNlbGYpOgotICAgICAgICBjb25maWdfZmlsZSA9ICIiCi0gICAgICAgIGlmIHNlbGYuX2hvc3Qu
cGxhdGZvcm0uaXNfd2luKCk6Ci0gICAgICAgICAgICBjb25maWdfZmlsZV9wYXRoID0gc2VsZi5f
ZnMuam9pbihvcy5lbnZpcm9uWydBUFBEQVRBJ10sICJTdWJ2ZXJzaW9uXGNvbmZpZyIpCi0gICAg
ICAgIGVsc2U6Ci0gICAgICAgICAgICBjb25maWdfZmlsZV9wYXRoID0gc2VsZi5fZnMuam9pbihz
ZWxmLl9mcy5leHBhbmR1c2VyKCJ+IiksICIuc3VidmVyc2lvbi9jb25maWciKQotICAgICAgICBy
ZXR1cm4gY29uZmlnX2ZpbGVfcGF0aApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90b29sL2NvbW1hbmRzL2Rvd25sb2FkLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29s
L2NvbW1hbmRzL2Rvd25sb2FkLnB5CmluZGV4IDRmNmI3MzcuLjYwYzg5MjAgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9kb3dubG9hZC5weQorKysgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZG93bmxvYWQucHkKQEAgLTkwLDYg
KzkwLDcgQEAgY2xhc3MgTGFuZChBYnN0cmFjdFNlcXVlbmNlZENvbW1hbmQpOgogICAgIGFyZ3Vt
ZW50X25hbWVzID0gIltCVUdJRF0iCiAgICAgc2hvd19pbl9tYWluX2hlbHAgPSBUcnVlCiAgICAg
c3RlcHMgPSBbCisgICAgICAgIHN0ZXBzLkFkZFN2bk1pbWV0eXBlRm9yUG5nLAogICAgICAgICBz
dGVwcy5VcGRhdGVDaGFuZ2VMb2dzV2l0aFJldmlld2VyLAogICAgICAgICBzdGVwcy5WYWxpZGF0
ZVJldmlld2VyLAogICAgICAgICBzdGVwcy5WYWxpZGF0ZUNoYW5nZUxvZ3MsICMgV2UgZG8gdGhp
cyBhZnRlciBVcGRhdGVDaGFuZ2VMb2dzV2l0aFJldmlld2VyIHRvIGF2b2lkIG5vdCBoYXZpbmcg
dG8gY2FjaGUgdGhlIGRpZmYgdHdpY2UuCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvc3RlcHMvX19pbml0X18ucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
c3RlcHMvX19pbml0X18ucHkKaW5kZXggYWNhOTcwNi4uNTY0MjllOCAxMDA2NDQKLS0tIGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL19faW5pdF9fLnB5CisrKyBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9fX2luaXRfXy5weQpAQCAtMjcsNiArMjcsNyBAQAog
IyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgogCiAjIEZJWE1FOiBJcyB0aGlzIHRoZSByaWdodCB3YXkgdG8gZG8gdGhp
cz8KK2Zyb20gd2Via2l0cHkudG9vbC5zdGVwcy5hZGRzdm5taW1ldHlwZWZvcnBuZyBpbXBvcnQg
QWRkU3ZuTWltZXR5cGVGb3JQbmcKIGZyb20gd2Via2l0cHkudG9vbC5zdGVwcy5hcHBseXBhdGNo
IGltcG9ydCBBcHBseVBhdGNoCiBmcm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMuYXBwbHlwYXRjaHdp
dGhsb2NhbGNvbW1pdCBpbXBvcnQgQXBwbHlQYXRjaFdpdGhMb2NhbENvbW1pdAogZnJvbSB3ZWJr
aXRweS50b29sLnN0ZXBzLmFwcGx5d2F0Y2hsaXN0IGltcG9ydCBBcHBseVdhdGNoTGlzdApkaWZm
IC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2FkZHN2bm1pbWV0eXBl
Zm9ycG5nLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2FkZHN2bm1pbWV0
eXBlZm9ycG5nLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQxOWUzMmIK
LS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvYWRk
c3ZubWltZXR5cGVmb3JwbmcucHkKQEAgLTAsMCArMSw3NyBAQAorIyBDb3B5cmlnaHQgKEMpIDIw
MTIgQmFsYXpzIEFua2VzIChiYW5rQGluZi51LXN6ZWdlZC5odSkgVW5pdmVyc2l0eSBvZiBTemVn
ZWQKKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisKK2Zyb20gd2Via2l0cHkudG9vbC5zdGVwcy5hYnN0cmFjdHN0ZXAgaW1wb3J0IEFic3RyYWN0
U3RlcAorZnJvbSB3ZWJraXRweS5jb21tb24gaW1wb3J0IGNoZWNrc3ZuY29uZmlnZmlsZQorZnJv
bSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmRlcHJlY2F0ZWRfbG9nZ2luZyBpbXBvcnQgbG9nCitm
cm9tIHdlYmtpdHB5LmNvbW1vbi5jaGVja291dC5zY20uZGV0ZWN0aW9uIGltcG9ydCBTQ01EZXRl
Y3RvcgorZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLnN5c3RlbWhvc3QgaW1wb3J0IFN5c3Rl
bUhvc3QKKworCitjbGFzcyBBZGRTdm5NaW1ldHlwZUZvclBuZyhBYnN0cmFjdFN0ZXApOgorICAg
IGRlZiBfX2luaXRfXyhzZWxmLCB0b29sLCBvcHRpb25zLCBob3N0PU5vbmUsIHNjbT1Ob25lKToK
KyAgICAgICAgc2VsZi5fdG9vbCA9IHRvb2wKKyAgICAgICAgc2VsZi5fb3B0aW9ucyA9IG9wdGlv
bnMKKyAgICAgICAgc2VsZi5faG9zdCA9IGhvc3Qgb3IgU3lzdGVtSG9zdCgpCisgICAgICAgIHNl
bGYuX2ZzID0gc2VsZi5faG9zdC5maWxlc3lzdGVtCisgICAgICAgIHNlbGYuX2RldGVjdG9yID0g
c2NtIG9yIFNDTURldGVjdG9yKHNlbGYuX2ZzLCBzZWxmLl9ob3N0LmV4ZWN1dGl2ZSkuZGV0ZWN0
X3NjbV9zeXN0ZW0oc2VsZi5fZnMuZ2V0Y3dkKCkpCisKKyAgICBkZWYgcnVuKHNlbGYsIHN0YXRl
KToKKyAgICAgICAgcG5nX2ZpbGVzID0gc2VsZi5fY2hlY2tfcG5ncyhzZWxmLl9jaGFuZ2VkX2Zp
bGVzKHN0YXRlKSkKKworICAgICAgICBpZiBsZW4ocG5nX2ZpbGVzKSA+IDA6CisgICAgICAgICAg
ICBkZXRlY3Rpb24gPSBzZWxmLl9kZXRlY3Rvci5kaXNwbGF5X25hbWUoKQorCisgICAgICAgICAg
ICBpZiBkZXRlY3Rpb24gPT0gImdpdCI6CisgICAgICAgICAgICAgICAgKGZpbGVfcmVhZCwgYXV0
b3Byb3AsIHBuZykgPSBjaGVja3N2bmNvbmZpZ2ZpbGUuY2hlY2soc2VsZiwgc2VsZi5faG9zdCwg
c2VsZi5fZnMpCisgICAgICAgICAgICAgICAgY29uZmlnX2ZpbGVfcGF0aCA9IGNoZWNrc3ZuY29u
ZmlnZmlsZS5fY29uZmlnX2ZpbGVfcGF0aChzZWxmLCBzZWxmLl9ob3N0LCBzZWxmLl9mcykKKwor
ICAgICAgICAgICAgICAgIGlmIGZpbGVfcmVhZDoKKyAgICAgICAgICAgICAgICAgICAgbG9nKCJU
aGVyZSBpcyBubyBTVk4gY29uZmlnIGZpbGUuIFRoZSBzdm46bWltZS10eXBlIG9mIHBuZ3Mgd29u
J3Qgc2V0LiIpCisgICAgICAgICAgICAgICAgICAgIGlmIG5vdCBzZWxmLl90b29sLnVzZXIuY29u
ZmlybSgiQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGNvbnRpbnVlPyIsIGRlZmF1bHQ9Im4iKToK
KyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2V4aXQoMSkKKyAgICAgICAgICAgICAgICBl
bGlmIGF1dG9wcm9wIGFuZCBwbmc6CisgICAgICAgICAgICAgICAgICAgIGxvZyhjaGVja3N2bmNv
bmZpZ2ZpbGUuZXJyb3JzdHJfYXV0b3Byb3AoY29uZmlnX2ZpbGVfcGF0aCkgKyBjaGVja3N2bmNv
bmZpZ2ZpbGUuZXJyb3JzdHJfcG5nKGNvbmZpZ19maWxlX3BhdGgpKQorICAgICAgICAgICAgICAg
ICAgICBpZiBub3Qgc2VsZi5fdG9vbC51c2VyLmNvbmZpcm0oIkRvIHlvdSB3YW50IHRvIGNvbnRp
bnVlPyIsIGRlZmF1bHQ9Im4iKToKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2V4aXQo
MSkKKyAgICAgICAgICAgICAgICBlbGlmIGF1dG9wcm9wOgorICAgICAgICAgICAgICAgICAgICBs
b2coY2hlY2tzdm5jb25maWdmaWxlLmVycm9yc3RyX2F1dG9wcm9wKGNvbmZpZ19maWxlX3BhdGgp
KQorICAgICAgICAgICAgICAgICAgICBpZiBub3Qgc2VsZi5fdG9vbC51c2VyLmNvbmZpcm0oIkRv
IHlvdSB3YW50IHRvIGNvbnRpbnVlPyIsIGRlZmF1bHQ9Im4iKToKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHNlbGYuX2V4aXQoMSkKKyAgICAgICAgICAgICAgICBlbGlmIHBuZzoKKyAgICAgICAg
ICAgICAgICAgICAgbG9nKGNoZWNrc3ZuY29uZmlnZmlsZS5lcnJvcnN0cl9wbmcoY29uZmlnX2Zp
bGVfcGF0aCkpCisgICAgICAgICAgICAgICAgICAgIGlmIG5vdCBzZWxmLl90b29sLnVzZXIuY29u
ZmlybSgiRG8geW91IHdhbnQgdG8gY29udGludWU/IiwgZGVmYXVsdD0ibiIpOgorICAgICAgICAg
ICAgICAgICAgICAgICAgc2VsZi5fZXhpdCgxKQorCisgICAgICAgICAgICBlbGlmIGRldGVjdGlv
biA9PSAic3ZuIjoKKyAgICAgICAgICAgICAgICBmb3IgZmlsZW5hbWUgaW4gcG5nX2ZpbGVzOgor
ICAgICAgICAgICAgICAgICAgICBpZiBmaWxlbmFtZS5lbmRzd2l0aCgnLnBuZycpIGFuZCBkZXRl
Y3Rvci5leGlzdHMoZmlsZW5hbWUpIGFuZCBkZXRlY3Rvci5wcm9wZ2V0KCdzdm46bWltZS10eXBl
JywgZmlsZW5hbWUpID09ICIiOgorICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQgIkFkZGlu
ZyBpbWFnZS9wbmcgbWltZS10eXBlIHRvICVzIiAlIGZpbGVuYW1lCisgICAgICAgICAgICAgICAg
ICAgICAgICBkZXRlY3Rvci5wcm9wc2V0KCdzdm46bWltZS10eXBlJywgJ2ltYWdlL3BuZycsIGZp
bGVuYW1lKQorCisgICAgZGVmIF9jaGVja19wbmdzKHNlbGYsIGNoYW5nZWRfZmlsZXMpOgorICAg
ICAgICBwbmdfZmlsZXMgPSBbXQorICAgICAgICBmb3IgZmlsZW5hbWUgaW4gY2hhbmdlZF9maWxl
czoKKyAgICAgICAgICAgIGlmIGZpbGVuYW1lLmVuZHN3aXRoKCcucG5nJyk6CisgICAgICAgICAg
ICAgICAgcG5nX2ZpbGVzLmFwcGVuZChmaWxlbmFtZSkKKyAgICAgICAgcmV0dXJuIHBuZ19maWxl
cwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2FkZHN2bm1p
bWV0eXBlZm9ycG5nX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0
ZXBzL2FkZHN2bm1pbWV0eXBlZm9ycG5nX3VuaXR0ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjMwZWQwNzQKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L3Rvb2wvc3RlcHMvYWRkc3ZubWltZXR5cGVmb3JwbmdfdW5pdHRlc3QucHkKQEAg
LTAsMCArMSw2MCBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTIgQmFsYXpzIEFua2VzIChiYW5rQGlu
Zi51LXN6ZWdlZC5odSkgVW5pdmVyc2l0eSBvZiBTemVnZWQKKyMKKyMgUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
CisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorIyBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisjIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2ltcG9ydCB1bml0dGVzdAorCitm
cm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMuYWRkc3ZubWltZXR5cGVmb3JwbmcgaW1wb3J0IEFkZFN2
bk1pbWV0eXBlRm9yUG5nCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZmlsZXN5c3RlbV9t
b2NrIGltcG9ydCBNb2NrRmlsZVN5c3RlbQorZnJvbSB3ZWJraXRweS50b29sLm1vY2t0b29sIGlt
cG9ydCBNb2NrT3B0aW9ucywgTW9ja1Rvb2wKK2Zyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5z
eXN0ZW1ob3N0X21vY2sgaW1wb3J0IE1vY2tTeXN0ZW1Ib3N0Citmcm9tIHdlYmtpdHB5LmNvbW1v
bi5zeXN0ZW0ub3V0cHV0Y2FwdHVyZSBpbXBvcnQgT3V0cHV0Q2FwdHVyZQorCisKK2NsYXNzIE1v
Y2tTQ01EZXRlY3RvcihvYmplY3QpOgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHNjbSk6Cisg
ICAgICAgIHNlbGYuX3NjbSA9IHNjbQorCisgICAgZGVmIGRpc3BsYXlfbmFtZShzZWxmKToKKyAg
ICAgICAgcmV0dXJuIHNlbGYuX3NjbQorCisKK2NsYXNzIEFkZFN2bk1pbWV0eXBlRm9yUG5nVGVz
dCh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgZGVmIHRlc3RfcnVuKHNlbGYpOgorICAgICAgICBj
YXB0dXJlID0gT3V0cHV0Q2FwdHVyZSgpCisgICAgICAgIG9wdGlvbnMgPSBNb2NrT3B0aW9ucygp
CisgICAgICAgIG9wdGlvbnMuZ2l0X2NvbW1pdCA9ICdNT0NLIGdpdCBjb21taXQnCisKKyAgICAg
ICAgZmlsZXMgPSB7Jy9Vc2Vycy9tb2NrLy5zdWJ2ZXJzaW9uL2NvbmZpZyc6ICdlbmFibGUtYXV0
by1wcm9wcyA9IHllc1xuKi5wbmcgPSBzdm46bWltZS10eXBlPWltYWdlL3BuZyd9CisgICAgICAg
IGZzID0gTW9ja0ZpbGVTeXN0ZW0oZmlsZXMpCisgICAgICAgIHNjbSA9IE1vY2tTQ01EZXRlY3Rv
cignZ2l0JykKKworICAgICAgICBzdGVwID0gQWRkU3ZuTWltZXR5cGVGb3JQbmcoTW9ja1Rvb2wo
KSwgb3B0aW9ucywgTW9ja1N5c3RlbUhvc3Qob3NfbmFtZT0nbGludXgnLCBmaWxlc3lzdGVtPWZz
KSwgc2NtKQorICAgICAgICBzdGF0ZSA9IHsKKyAgICAgICAgICAgICJjaGFuZ2VkX2ZpbGVzIjog
WyJ0ZXN0LnBuZyJdLAorICAgICAgICB9CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGNhcHR1
cmUuYXNzZXJ0X291dHB1dHMoc2VsZiwgc3RlcC5ydW4sIFtzdGF0ZV0pCisgICAgICAgIGV4Y2Vw
dCBTeXN0ZW1FeGl0LCBlOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHModHlwZShlKSwg
dHlwZShTeXN0ZW1FeGl0KCkpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoZS5jb2Rl
LCAxKQo=
</data>
<flag name="review"
          id="147008"
          type_id="1"
          status="+"
          setter="dpranke"
    />
    <flag name="commit-queue"
          id="147009"
          type_id="3"
          status="-"
          setter="dpranke"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141155</attachid>
            <date>2012-05-10 05:58:23 -0700</date>
            <delta_ts>2012-05-10 09:15:23 -0700</delta_ts>
            <desc>proposed fix</desc>
            <filename>2012-05-10_wk_patch_land.patch</filename>
            <type>text/plain</type>
            <size>16975</size>
            <attacher name="Balazs Ankes">bank</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBjMjJl
NWYzLi43YTdiYTZjIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTItMDUtMDkgIEJhbGF6cyBBbmtlcyAgPGJhbmtA
aW5mLnUtc3plZ2VkLmh1PgorCisgICAgICAgIHdlYmtpdC1wYXRjaCBsYW5kIHNob3VsZCBhdXRv
bWF0aWNhbGx5IGFkZCBzdm46bWltZS10eXBlIGZvciAucG5nIGZpbGVzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NTgyNQorICAgICAgICBJIHJlZmFj
dG9yZWQgdGhlIHBuZy5weSB0byBhdm9pZCBjb2RlIGR1cGxpY2F0aW9uLgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9j
b21tb24vY2hlY2tzdm5jb25maWdmaWxlLnB5OiBBZGRlZC4KKyAgICAgICAgKGNoZWNrKToKKyAg
ICAgICAgKF9jb25maWdfZmlsZV9wYXRoKToKKyAgICAgICAgKGVycm9yc3RyX2F1dG9wcm9wKToK
KyAgICAgICAgKGVycm9yc3RyX3BuZyk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9zdHls
ZS9jaGVja2Vycy9wbmcucHk6CisgICAgICAgIChQTkdDaGVja2VyLmNoZWNrKToKKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZG93bmxvYWQucHk6CisgICAgICAgIChM
YW5kKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvX19pbml0X18ucHk6
CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2FkZHN2bm1pbWV0eXBlZm9y
cG5nLnB5OiBBZGRlZC4KKyAgICAgICAgKEFkZFN2bk1pbWV0eXBlRm9yUG5nKToKKyAgICAgICAg
KEFkZFN2bk1pbWV0eXBlRm9yUG5nLl9faW5pdF9fKToKKyAgICAgICAgKEFkZFN2bk1pbWV0eXBl
Rm9yUG5nLnJ1bik6CisgICAgICAgIChBZGRTdm5NaW1ldHlwZUZvclBuZy5fY2hlY2tfcG5ncyk6
CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2FkZHN2bm1pbWV0eXBlZm9y
cG5nX3VuaXR0ZXN0LnB5OiBBZGRlZC4KKyAgICAgICAgKE1vY2tTQ01EZXRlY3Rvcik6CisgICAg
ICAgIChNb2NrU0NNRGV0ZWN0b3IuX19pbml0X18pOgorICAgICAgICAoTW9ja1NDTURldGVjdG9y
LmRpc3BsYXlfbmFtZSk6CisgICAgICAgIChBZGRTdm5NaW1ldHlwZUZvclBuZ1Rlc3QpOgorICAg
ICAgICAoQWRkU3ZuTWltZXR5cGVGb3JQbmdUZXN0LnRlc3RfcnVuKToKKwogMjAxMi0wNS0wOSAg
RG9taW5payBSw7Z0dHNjaGVzICA8ZG9taW5pay5yb3R0c2NoZXNAaW50ZWwuY29tPgogCiAgICAg
ICAgIHdlYmtpdC1wYXRjaCB1cGxvYWQgRmFpbHMgQmVoaW5kIExvYWQtYmFsYW5jaW5nIFByb3hp
ZXMKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrc3ZuY29u
ZmlnZmlsZS5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrc3ZuY29uZmln
ZmlsZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMTA5MGQzCi0tLSAv
ZGV2L251bGwKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tzdm5jb25m
aWdmaWxlLnB5CkBAIC0wLDAgKzEsNjYgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDEyIEJhbGF6cyBB
bmtlcyAoYmFua0BpbmYudS1zemVnZWQuaHUpIFVuaXZlcnNpdHkgb2YgU3plZ2VkCisjCisjIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMK
KyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQK
KyMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjIFRoaXMg
ZmlsZSBpcyB1c2VkIGJ5OgorIyB3ZWJraXRweS90b29sL3N0ZXBzL2FkZHN2bm1pbWV0eXBlZm9y
cG5nLnB5CisjIHdlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL3BuZy5weQorCitpbXBvcnQgb3MKK2lt
cG9ydCByZQorCisKK2RlZiBjaGVjayhzZWxmLCBob3N0LCBmcyk6CisgICAgIiIiCisgICAgY2hl
Y2sgdGhlIHN2biBjb25maWcgZmlsZQorICAgIHJldHVybiB3aXRoIHRocmVlIGxvZ2ljYWwgdmFs
dWU6CisgICAgd2FzIHRoZSBmaWxlIHJlYWQgc3VjY2Vzc2Z1bCwgaXMgdGhlcmUgZW5hYmxlIHRo
ZSBhdXRvLXByb3BzLCBpcyB0aGVyZSBlbmFibGUgdGhlIHN2bjptaW1lLXR5cGUgZm9yIHBuZwor
ICAgICIiIgorCisgICAgY29uZmlnX2ZpbGVfcGF0aCA9IF9jb25maWdfZmlsZV9wYXRoKHNlbGYs
IGhvc3QsIGZzKQorCisgICAgdHJ5OgorICAgICAgICBjb25maWdfZmlsZSA9IGZzLnJlYWRfdGV4
dF9maWxlKGNvbmZpZ19maWxlX3BhdGgpCisgICAgZXhjZXB0IElPRXJyb3I6CisgICAgICAgIHJl
dHVybiAoVHJ1ZSwgVHJ1ZSwgVHJ1ZSkKKworICAgIGVycm9yY29kZV9hdXRvcHJvcCA9IG5vdCBy
ZS5zZWFyY2goIi4qXG5ccyplbmFibGUtYXV0by1wcm9wc1xzKj1ccyp5ZXMuKiIsIGNvbmZpZ19m
aWxlKQorICAgIGVycm9yY29kZV9wbmcgPSBub3QgcmUuc2VhcmNoKCIuKlxuXHMqXCpcLnBuZ1xz
Kj1ccypzdm46bWltZS10eXBlPWltYWdlL3BuZy4qIiwgY29uZmlnX2ZpbGUpCisKKyAgICByZXR1
cm4gKEZhbHNlLCBlcnJvcmNvZGVfYXV0b3Byb3AsIGVycm9yY29kZV9wbmcpCisKKworZGVmIF9j
b25maWdfZmlsZV9wYXRoKHNlbGYsIGhvc3QsIGZzKToKKyAgICBjb25maWdfZmlsZSA9ICIiCisg
ICAgaWYgaG9zdC5wbGF0Zm9ybS5pc193aW4oKToKKyAgICAgICAgY29uZmlnX2ZpbGVfcGF0aCA9
IGZzLmpvaW4ob3MuZW52aXJvblsnQVBQREFUQSddLCAiU3VidmVyc2lvblxjb25maWciKQorICAg
IGVsc2U6CisgICAgICAgIGNvbmZpZ19maWxlX3BhdGggPSBmcy5qb2luKGZzLmV4cGFuZHVzZXIo
In4iKSwgIi5zdWJ2ZXJzaW9uL2NvbmZpZyIpCisgICAgcmV0dXJuIGNvbmZpZ19maWxlX3BhdGgK
KworCitkZWYgZXJyb3JzdHJfYXV0b3Byb3AoY29uZmlnX2ZpbGVfcGF0aCk6CisgICAgcmV0dXJu
ICJIYXZlIHRvIGVuYWJsZSBhdXRvIHByb3BzIGluIHRoZSBzdWJ2ZXJzaW9uIGNvbmZpZyBmaWxl
ICgiICsgY29uZmlnX2ZpbGVfcGF0aCArICIgXCJlbmFibGUtYXV0by1wcm9wcyA9IHllc1wiKS4g
IgorCisKK2RlZiBlcnJvcnN0cl9wbmcoY29uZmlnX2ZpbGVfcGF0aCk6CisgICAgcmV0dXJuICJI
YXZlIHRvIHNldCB0aGUgc3ZuOm1pbWUtdHlwZSBpbiB0aGUgc3VidmVyc2lvbiBjb25maWcgZmls
ZSAoIiArIGNvbmZpZ19maWxlX3BhdGggKyAiIFwiKi5wbmcgPSBzdm46bWltZS10eXBlPWltYWdl
L3BuZ1wiKS4iCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNr
ZXJzL3BuZy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvcG5nLnB5
CmluZGV4IGUwYjc5ZTIuLjMxNWUyODcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvc3R5bGUvY2hlY2tlcnMvcG5nLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5
bGUvY2hlY2tlcnMvcG5nLnB5CkBAIC0yNyw2ICsyNyw3IEBACiBpbXBvcnQgb3MKIGltcG9ydCBy
ZQogCitmcm9tIHdlYmtpdHB5LmNvbW1vbiBpbXBvcnQgY2hlY2tzdm5jb25maWdmaWxlCiBmcm9t
IHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uc3lzdGVtaG9zdCBpbXBvcnQgU3lzdGVtSG9zdAogZnJv
bSB3ZWJraXRweS5jb21tb24uY2hlY2tvdXQuc2NtLmRldGVjdGlvbiBpbXBvcnQgU0NNRGV0ZWN0
b3IKIApAQCAtNDQsNTQgKzQ1LDI0IEBAIGNsYXNzIFBOR0NoZWNrZXIob2JqZWN0KToKICAgICAg
ICAgc2VsZi5fZGV0ZWN0b3IgPSBzY20gb3IgU0NNRGV0ZWN0b3Ioc2VsZi5fZnMsIHNlbGYuX2hv
c3QuZXhlY3V0aXZlKS5kZXRlY3Rfc2NtX3N5c3RlbShzZWxmLl9mcy5nZXRjd2QoKSkKIAogICAg
IGRlZiBjaGVjayhzZWxmLCBpbmxpbmU9Tm9uZSk6Ci0gICAgICAgIGVycm9yc3RyID0gIiIKICAg
ICAgICAgY29uZmlnX2ZpbGVfcGF0aCA9ICIiCiAgICAgICAgIGRldGVjdGlvbiA9IHNlbGYuX2Rl
dGVjdG9yLmRpc3BsYXlfbmFtZSgpCiAKICAgICAgICAgaWYgZGV0ZWN0aW9uID09ICJnaXQiOgot
ICAgICAgICAgICAgY29uZmlnX2ZpbGVfcGF0aCA9IHNlbGYuX2NvbmZpZ19maWxlX3BhdGgoKQot
ICAgICAgICAgICAgdGhlcmVfaXNfZW5hYmxlX2xpbmUgPSBGYWxzZQotICAgICAgICAgICAgdGhl
cmVfaXNfcG5nX2xpbmUgPSBGYWxzZQotCi0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAg
ICAgY29uZmlnX2ZpbGUgPSBzZWxmLl9mcy5yZWFkX3RleHRfZmlsZShjb25maWdfZmlsZV9wYXRo
KQotICAgICAgICAgICAgZXhjZXB0IElPRXJyb3I6Ci0gICAgICAgICAgICAgICAgZXJyb3JzdHIg
PSAiVGhlcmUgaXMgbm8gIiArIGNvbmZpZ19maWxlX3BhdGgKLSAgICAgICAgICAgICAgICBzZWxm
Ll9oYW5kbGVfc3R5bGVfZXJyb3IoMCwgJ2ltYWdlL3BuZycsIDUsIGVycm9yc3RyKQotICAgICAg
ICAgICAgICAgIHJldHVybgotCi0gICAgICAgICAgICBlcnJvcnN0cl9hdXRvcHJvcCA9ICJIYXZl
IHRvIGVuYWJsZSBhdXRvIHByb3BzIGluIHRoZSBzdWJ2ZXJzaW9uIGNvbmZpZyBmaWxlICgiICsg
Y29uZmlnX2ZpbGVfcGF0aCArICIgXCJlbmFibGUtYXV0by1wcm9wcyA9IHllc1wiKS4gIgotICAg
ICAgICAgICAgZXJyb3JzdHJfcG5nID0gIkhhdmUgdG8gc2V0IHRoZSBzdm46bWltZS10eXBlIGlu
IHRoZSBzdWJ2ZXJzaW9uIGNvbmZpZyBmaWxlICgiICsgY29uZmlnX2ZpbGVfcGF0aCArICIgXCIq
LnBuZyA9IHN2bjptaW1lLXR5cGU9aW1hZ2UvcG5nXCIpLiIKLQotICAgICAgICAgICAgZm9yIGxp
bmUgaW4gY29uZmlnX2ZpbGUuc3BsaXQoJ1xuJyk6Ci0gICAgICAgICAgICAgICAgaWYgbm90IHRo
ZXJlX2lzX2VuYWJsZV9saW5lOgotICAgICAgICAgICAgICAgICAgICBtYXRjaCA9IHJlLnNlYXJj
aCgiXlxzKmVuYWJsZS1hdXRvLXByb3BzXHMqPVxzKnllcyIsIGxpbmUpCi0gICAgICAgICAgICAg
ICAgICAgIGlmIG1hdGNoOgotICAgICAgICAgICAgICAgICAgICAgICAgdGhlcmVfaXNfZW5hYmxl
X2xpbmUgPSBUcnVlCi0gICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnN0cl9hdXRvcHJvcCA9
ICIiCi0gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZQotCi0gICAgICAgICAgICAgICAg
aWYgbm90IHRoZXJlX2lzX3BuZ19saW5lOgotICAgICAgICAgICAgICAgICAgICBtYXRjaCA9IHJl
LnNlYXJjaCgiXlxzKlwqXC5wbmdccyo9XHMqc3ZuOm1pbWUtdHlwZT1pbWFnZS9wbmciLCBsaW5l
KQotICAgICAgICAgICAgICAgICAgICBpZiBtYXRjaDoKLSAgICAgICAgICAgICAgICAgICAgICAg
IHRoZXJlX2lzX3BuZ19saW5lID0gVHJ1ZQotICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3Jz
dHJfcG5nID0gIiIKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0KLSAgICAgICAg
ICAgIGVycm9yc3RyID0gZXJyb3JzdHJfYXV0b3Byb3AgKyBlcnJvcnN0cl9wbmcKLSAgICAgICAg
ICAgIGlmIGVycm9yc3RyOgotICAgICAgICAgICAgICAgIHNlbGYuX2hhbmRsZV9zdHlsZV9lcnJv
cigwLCAnaW1hZ2UvcG5nJywgNSwgZXJyb3JzdHIpCisgICAgICAgICAgICAoZmlsZV9yZWFkLCBh
dXRvcHJvcCwgcG5nKSA9IGNoZWNrc3ZuY29uZmlnZmlsZS5jaGVjayhzZWxmLCBzZWxmLl9ob3N0
LCBzZWxmLl9mcykKKyAgICAgICAgICAgIGNvbmZpZ19maWxlX3BhdGggPSBjaGVja3N2bmNvbmZp
Z2ZpbGUuX2NvbmZpZ19maWxlX3BhdGgoc2VsZiwgc2VsZi5faG9zdCwgc2VsZi5fZnMpCisKKyAg
ICAgICAgICAgIGlmIGZpbGVfcmVhZDoKKyAgICAgICAgICAgICAgICBzZWxmLl9oYW5kbGVfc3R5
bGVfZXJyb3IoMCwgJ2ltYWdlL3BuZycsIDUsICJUaGVyZSBpcyBubyBTVk4gY29uZmlnIGZpbGUu
ICgiICsgY29uZmlnX2ZpbGVfcGF0aCArICIpIikKKyAgICAgICAgICAgIGVsaWYgYXV0b3Byb3Ag
YW5kIHBuZzoKKyAgICAgICAgICAgICAgICBzZWxmLl9oYW5kbGVfc3R5bGVfZXJyb3IoMCwgJ2lt
YWdlL3BuZycsIDUsIGNoZWNrc3ZuY29uZmlnZmlsZS5lcnJvcnN0cl9hdXRvcHJvcChjb25maWdf
ZmlsZV9wYXRoKSArIGNoZWNrc3ZuY29uZmlnZmlsZS5lcnJvcnN0cl9wbmcoY29uZmlnX2ZpbGVf
cGF0aCkpCisgICAgICAgICAgICBlbGlmIGF1dG9wcm9wOgorICAgICAgICAgICAgICAgIHNlbGYu
X2hhbmRsZV9zdHlsZV9lcnJvcigwLCAnaW1hZ2UvcG5nJywgNSwgY2hlY2tzdm5jb25maWdmaWxl
LmVycm9yc3RyX2F1dG9wcm9wKGNvbmZpZ19maWxlX3BhdGgpKQorICAgICAgICAgICAgZWxpZiBw
bmc6CisgICAgICAgICAgICAgICAgc2VsZi5faGFuZGxlX3N0eWxlX2Vycm9yKDAsICdpbWFnZS9w
bmcnLCA1LCBjaGVja3N2bmNvbmZpZ2ZpbGUuZXJyb3JzdHJfcG5nKGNvbmZpZ19maWxlX3BhdGgp
KQogCiAgICAgICAgIGVsaWYgZGV0ZWN0aW9uID09ICJzdm4iOgogICAgICAgICAgICAgcHJvcF9n
ZXQgPSBzZWxmLl9kZXRlY3Rvci5wcm9wZ2V0KCJzdm46bWltZS10eXBlIiwgc2VsZi5fZmlsZV9w
YXRoKQogICAgICAgICAgICAgaWYgcHJvcF9nZXQgIT0gImltYWdlL3BuZyI6CiAgICAgICAgICAg
ICAgICAgZXJyb3JzdHIgPSAiU2V0IHRoZSBzdm46bWltZS10eXBlIHByb3BlcnR5IChzdm4gcHJv
cHNldCBzdm46bWltZS10eXBlIGltYWdlL3BuZyAiICsgc2VsZi5fZmlsZV9wYXRoICsgIikuIgog
ICAgICAgICAgICAgICAgIHNlbGYuX2hhbmRsZV9zdHlsZV9lcnJvcigwLCAnaW1hZ2UvcG5nJywg
NSwgZXJyb3JzdHIpCi0KLSAgICBkZWYgX2NvbmZpZ19maWxlX3BhdGgoc2VsZik6Ci0gICAgICAg
IGNvbmZpZ19maWxlID0gIiIKLSAgICAgICAgaWYgc2VsZi5faG9zdC5wbGF0Zm9ybS5pc193aW4o
KToKLSAgICAgICAgICAgIGNvbmZpZ19maWxlX3BhdGggPSBzZWxmLl9mcy5qb2luKG9zLmVudmly
b25bJ0FQUERBVEEnXSwgIlN1YnZlcnNpb25cY29uZmlnIikKLSAgICAgICAgZWxzZToKLSAgICAg
ICAgICAgIGNvbmZpZ19maWxlX3BhdGggPSBzZWxmLl9mcy5qb2luKHNlbGYuX2ZzLmV4cGFuZHVz
ZXIoIn4iKSwgIi5zdWJ2ZXJzaW9uL2NvbmZpZyIpCi0gICAgICAgIHJldHVybiBjb25maWdfZmls
ZV9wYXRoCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMv
ZG93bmxvYWQucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZG93bmxv
YWQucHkKaW5kZXggNGY2YjczNy4uNjBjODkyMCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS90b29sL2NvbW1hbmRzL2Rvd25sb2FkLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9jb21tYW5kcy9kb3dubG9hZC5weQpAQCAtOTAsNiArOTAsNyBAQCBjbGFzcyBM
YW5kKEFic3RyYWN0U2VxdWVuY2VkQ29tbWFuZCk6CiAgICAgYXJndW1lbnRfbmFtZXMgPSAiW0JV
R0lEXSIKICAgICBzaG93X2luX21haW5faGVscCA9IFRydWUKICAgICBzdGVwcyA9IFsKKyAgICAg
ICAgc3RlcHMuQWRkU3ZuTWltZXR5cGVGb3JQbmcsCiAgICAgICAgIHN0ZXBzLlVwZGF0ZUNoYW5n
ZUxvZ3NXaXRoUmV2aWV3ZXIsCiAgICAgICAgIHN0ZXBzLlZhbGlkYXRlUmV2aWV3ZXIsCiAgICAg
ICAgIHN0ZXBzLlZhbGlkYXRlQ2hhbmdlTG9ncywgIyBXZSBkbyB0aGlzIGFmdGVyIFVwZGF0ZUNo
YW5nZUxvZ3NXaXRoUmV2aWV3ZXIgdG8gYXZvaWQgbm90IGhhdmluZyB0byBjYWNoZSB0aGUgZGlm
ZiB0d2ljZS4KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9f
X2luaXRfXy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9fX2luaXRfXy5w
eQppbmRleCBhY2E5NzA2Li41NjQyOWU4IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvc3RlcHMvX19pbml0X18ucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90
b29sL3N0ZXBzL19faW5pdF9fLnB5CkBAIC0yNyw2ICsyNyw3IEBACiAjIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAK
ICMgRklYTUU6IElzIHRoaXMgdGhlIHJpZ2h0IHdheSB0byBkbyB0aGlzPworZnJvbSB3ZWJraXRw
eS50b29sLnN0ZXBzLmFkZHN2bm1pbWV0eXBlZm9ycG5nIGltcG9ydCBBZGRTdm5NaW1ldHlwZUZv
clBuZwogZnJvbSB3ZWJraXRweS50b29sLnN0ZXBzLmFwcGx5cGF0Y2ggaW1wb3J0IEFwcGx5UGF0
Y2gKIGZyb20gd2Via2l0cHkudG9vbC5zdGVwcy5hcHBseXBhdGNod2l0aGxvY2FsY29tbWl0IGlt
cG9ydCBBcHBseVBhdGNoV2l0aExvY2FsQ29tbWl0CiBmcm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMu
YXBwbHl3YXRjaGxpc3QgaW1wb3J0IEFwcGx5V2F0Y2hMaXN0CmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvYWRkc3ZubWltZXR5cGVmb3JwbmcucHkgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvYWRkc3ZubWltZXR5cGVmb3JwbmcucHkKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDE5ZTMyYgotLS0gL2Rldi9udWxsCisr
KyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9hZGRzdm5taW1ldHlwZWZvcnBu
Zy5weQpAQCAtMCwwICsxLDc3IEBACisjIENvcHlyaWdodCAoQykgMjAxMiBCYWxhenMgQW5rZXMg
KGJhbmtAaW5mLnUtc3plZ2VkLmh1KSBVbml2ZXJzaXR5IG9mIFN6ZWdlZAorIworIyBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAy
LiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisjIE9X
TkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworZnJvbSB3ZWJraXRw
eS50b29sLnN0ZXBzLmFic3RyYWN0c3RlcCBpbXBvcnQgQWJzdHJhY3RTdGVwCitmcm9tIHdlYmtp
dHB5LmNvbW1vbiBpbXBvcnQgY2hlY2tzdm5jb25maWdmaWxlCitmcm9tIHdlYmtpdHB5LmNvbW1v
bi5zeXN0ZW0uZGVwcmVjYXRlZF9sb2dnaW5nIGltcG9ydCBsb2cKK2Zyb20gd2Via2l0cHkuY29t
bW9uLmNoZWNrb3V0LnNjbS5kZXRlY3Rpb24gaW1wb3J0IFNDTURldGVjdG9yCitmcm9tIHdlYmtp
dHB5LmNvbW1vbi5zeXN0ZW0uc3lzdGVtaG9zdCBpbXBvcnQgU3lzdGVtSG9zdAorCisKK2NsYXNz
IEFkZFN2bk1pbWV0eXBlRm9yUG5nKEFic3RyYWN0U3RlcCk6CisgICAgZGVmIF9faW5pdF9fKHNl
bGYsIHRvb2wsIG9wdGlvbnMsIGhvc3Q9Tm9uZSwgc2NtPU5vbmUpOgorICAgICAgICBzZWxmLl90
b29sID0gdG9vbAorICAgICAgICBzZWxmLl9vcHRpb25zID0gb3B0aW9ucworICAgICAgICBzZWxm
Ll9ob3N0ID0gaG9zdCBvciBTeXN0ZW1Ib3N0KCkKKyAgICAgICAgc2VsZi5fZnMgPSBzZWxmLl9o
b3N0LmZpbGVzeXN0ZW0KKyAgICAgICAgc2VsZi5fZGV0ZWN0b3IgPSBzY20gb3IgU0NNRGV0ZWN0
b3Ioc2VsZi5fZnMsIHNlbGYuX2hvc3QuZXhlY3V0aXZlKS5kZXRlY3Rfc2NtX3N5c3RlbShzZWxm
Ll9mcy5nZXRjd2QoKSkKKworICAgIGRlZiBydW4oc2VsZiwgc3RhdGUpOgorICAgICAgICBwbmdf
ZmlsZXMgPSBzZWxmLl9jaGVja19wbmdzKHNlbGYuX2NoYW5nZWRfZmlsZXMoc3RhdGUpKQorCisg
ICAgICAgIGlmIGxlbihwbmdfZmlsZXMpID4gMDoKKyAgICAgICAgICAgIGRldGVjdGlvbiA9IHNl
bGYuX2RldGVjdG9yLmRpc3BsYXlfbmFtZSgpCisKKyAgICAgICAgICAgIGlmIGRldGVjdGlvbiA9
PSAiZ2l0IjoKKyAgICAgICAgICAgICAgICAoZmlsZV9yZWFkLCBhdXRvcHJvcCwgcG5nKSA9IGNo
ZWNrc3ZuY29uZmlnZmlsZS5jaGVjayhzZWxmLCBzZWxmLl9ob3N0LCBzZWxmLl9mcykKKyAgICAg
ICAgICAgICAgICBjb25maWdfZmlsZV9wYXRoID0gY2hlY2tzdm5jb25maWdmaWxlLl9jb25maWdf
ZmlsZV9wYXRoKHNlbGYsIHNlbGYuX2hvc3QsIHNlbGYuX2ZzKQorCisgICAgICAgICAgICAgICAg
aWYgZmlsZV9yZWFkOgorICAgICAgICAgICAgICAgICAgICBsb2coIlRoZXJlIGlzIG5vIFNWTiBj
b25maWcgZmlsZS4gVGhlIHN2bjptaW1lLXR5cGUgb2YgcG5ncyB3b24ndCBzZXQuIikKKyAgICAg
ICAgICAgICAgICAgICAgaWYgbm90IHNlbGYuX3Rvb2wudXNlci5jb25maXJtKCJBcmUgeW91IHN1
cmUgeW91IHdhbnQgdG8gY29udGludWU/IiwgZGVmYXVsdD0ibiIpOgorICAgICAgICAgICAgICAg
ICAgICAgICAgc2VsZi5fZXhpdCgxKQorICAgICAgICAgICAgICAgIGVsaWYgYXV0b3Byb3AgYW5k
IHBuZzoKKyAgICAgICAgICAgICAgICAgICAgbG9nKGNoZWNrc3ZuY29uZmlnZmlsZS5lcnJvcnN0
cl9hdXRvcHJvcChjb25maWdfZmlsZV9wYXRoKSArIGNoZWNrc3ZuY29uZmlnZmlsZS5lcnJvcnN0
cl9wbmcoY29uZmlnX2ZpbGVfcGF0aCkpCisgICAgICAgICAgICAgICAgICAgIGlmIG5vdCBzZWxm
Ll90b29sLnVzZXIuY29uZmlybSgiRG8geW91IHdhbnQgdG8gY29udGludWU/IiwgZGVmYXVsdD0i
biIpOgorICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fZXhpdCgxKQorICAgICAgICAgICAg
ICAgIGVsaWYgYXV0b3Byb3A6CisgICAgICAgICAgICAgICAgICAgIGxvZyhjaGVja3N2bmNvbmZp
Z2ZpbGUuZXJyb3JzdHJfYXV0b3Byb3AoY29uZmlnX2ZpbGVfcGF0aCkpCisgICAgICAgICAgICAg
ICAgICAgIGlmIG5vdCBzZWxmLl90b29sLnVzZXIuY29uZmlybSgiRG8geW91IHdhbnQgdG8gY29u
dGludWU/IiwgZGVmYXVsdD0ibiIpOgorICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fZXhp
dCgxKQorICAgICAgICAgICAgICAgIGVsaWYgcG5nOgorICAgICAgICAgICAgICAgICAgICBsb2co
Y2hlY2tzdm5jb25maWdmaWxlLmVycm9yc3RyX3BuZyhjb25maWdfZmlsZV9wYXRoKSkKKyAgICAg
ICAgICAgICAgICAgICAgaWYgbm90IHNlbGYuX3Rvb2wudXNlci5jb25maXJtKCJEbyB5b3Ugd2Fu
dCB0byBjb250aW51ZT8iLCBkZWZhdWx0PSJuIik6CisgICAgICAgICAgICAgICAgICAgICAgICBz
ZWxmLl9leGl0KDEpCisKKyAgICAgICAgICAgIGVsaWYgZGV0ZWN0aW9uID09ICJzdm4iOgorICAg
ICAgICAgICAgICAgIGZvciBmaWxlbmFtZSBpbiBwbmdfZmlsZXM6CisgICAgICAgICAgICAgICAg
ICAgIGlmIGZpbGVuYW1lLmVuZHN3aXRoKCcucG5nJykgYW5kIGRldGVjdG9yLmV4aXN0cyhmaWxl
bmFtZSkgYW5kIGRldGVjdG9yLnByb3BnZXQoJ3N2bjptaW1lLXR5cGUnLCBmaWxlbmFtZSkgPT0g
IiI6CisgICAgICAgICAgICAgICAgICAgICAgICBwcmludCAiQWRkaW5nIGltYWdlL3BuZyBtaW1l
LXR5cGUgdG8gJXMiICUgZmlsZW5hbWUKKyAgICAgICAgICAgICAgICAgICAgICAgIGRldGVjdG9y
LnByb3BzZXQoJ3N2bjptaW1lLXR5cGUnLCAnaW1hZ2UvcG5nJywgZmlsZW5hbWUpCisKKyAgICBk
ZWYgX2NoZWNrX3BuZ3Moc2VsZiwgY2hhbmdlZF9maWxlcyk6CisgICAgICAgIHBuZ19maWxlcyA9
IFtdCisgICAgICAgIGZvciBmaWxlbmFtZSBpbiBjaGFuZ2VkX2ZpbGVzOgorICAgICAgICAgICAg
aWYgZmlsZW5hbWUuZW5kc3dpdGgoJy5wbmcnKToKKyAgICAgICAgICAgICAgICBwbmdfZmlsZXMu
YXBwZW5kKGZpbGVuYW1lKQorICAgICAgICByZXR1cm4gcG5nX2ZpbGVzCmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvYWRkc3ZubWltZXR5cGVmb3JwbmdfdW5p
dHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvYWRkc3ZubWltZXR5
cGVmb3JwbmdfdW5pdHRlc3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
MzBlZDA3NAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9z
dGVwcy9hZGRzdm5taW1ldHlwZWZvcnBuZ191bml0dGVzdC5weQpAQCAtMCwwICsxLDYwIEBACisj
IENvcHlyaWdodCAoQykgMjAxMiBCYWxhenMgQW5rZXMgKGJhbmtAaW5mLnUtc3plZ2VkLmh1KSBV
bml2ZXJzaXR5IG9mIFN6ZWdlZAorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBt
ZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyMgIkFTIElTIiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyMg
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SCisjIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisjIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorIyBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisj
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IHVuaXR0ZXN0CisKK2Zyb20gd2Via2l0cHkudG9v
bC5zdGVwcy5hZGRzdm5taW1ldHlwZWZvcnBuZyBpbXBvcnQgQWRkU3ZuTWltZXR5cGVGb3JQbmcK
K2Zyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5maWxlc3lzdGVtX21vY2sgaW1wb3J0IE1vY2tG
aWxlU3lzdGVtCitmcm9tIHdlYmtpdHB5LnRvb2wubW9ja3Rvb2wgaW1wb3J0IE1vY2tPcHRpb25z
LCBNb2NrVG9vbAorZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLnN5c3RlbWhvc3RfbW9jayBp
bXBvcnQgTW9ja1N5c3RlbUhvc3QKK2Zyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5vdXRwdXRj
YXB0dXJlIGltcG9ydCBPdXRwdXRDYXB0dXJlCisKKworY2xhc3MgTW9ja1NDTURldGVjdG9yKG9i
amVjdCk6CisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgc2NtKToKKyAgICAgICAgc2VsZi5fc2Nt
ID0gc2NtCisKKyAgICBkZWYgZGlzcGxheV9uYW1lKHNlbGYpOgorICAgICAgICByZXR1cm4gc2Vs
Zi5fc2NtCisKKworY2xhc3MgQWRkU3ZuTWltZXR5cGVGb3JQbmdUZXN0KHVuaXR0ZXN0LlRlc3RD
YXNlKToKKyAgICBkZWYgdGVzdF9ydW4oc2VsZik6CisgICAgICAgIGNhcHR1cmUgPSBPdXRwdXRD
YXB0dXJlKCkKKyAgICAgICAgb3B0aW9ucyA9IE1vY2tPcHRpb25zKCkKKyAgICAgICAgb3B0aW9u
cy5naXRfY29tbWl0ID0gJ01PQ0sgZ2l0IGNvbW1pdCcKKworICAgICAgICBmaWxlcyA9IHsnL1Vz
ZXJzL21vY2svLnN1YnZlcnNpb24vY29uZmlnJzogJ2VuYWJsZS1hdXRvLXByb3BzID0geWVzXG4q
LnBuZyA9IHN2bjptaW1lLXR5cGU9aW1hZ2UvcG5nJ30KKyAgICAgICAgZnMgPSBNb2NrRmlsZVN5
c3RlbShmaWxlcykKKyAgICAgICAgc2NtID0gTW9ja1NDTURldGVjdG9yKCdnaXQnKQorCisgICAg
ICAgIHN0ZXAgPSBBZGRTdm5NaW1ldHlwZUZvclBuZyhNb2NrVG9vbCgpLCBvcHRpb25zLCBNb2Nr
U3lzdGVtSG9zdChvc19uYW1lPSdsaW51eCcsIGZpbGVzeXN0ZW09ZnMpLCBzY20pCisgICAgICAg
IHN0YXRlID0geworICAgICAgICAgICAgImNoYW5nZWRfZmlsZXMiOiBbInRlc3QucG5nIl0sCisg
ICAgICAgIH0KKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgY2FwdHVyZS5hc3NlcnRfb3V0cHV0
cyhzZWxmLCBzdGVwLnJ1biwgW3N0YXRlXSkKKyAgICAgICAgZXhjZXB0IFN5c3RlbUV4aXQsIGU6
CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscyh0eXBlKGUpLCB0eXBlKFN5c3RlbUV4aXQo
KSkpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhlLmNvZGUsIDEpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141181</attachid>
            <date>2012-05-10 09:15:23 -0700</date>
            <delta_ts>2012-05-15 07:06:04 -0700</delta_ts>
            <desc>proposed fix</desc>
            <filename>2012-05-10_wk_patch_land_02.patch</filename>
            <type>text/plain</type>
            <size>16993</size>
            <attacher name="Balazs Ankes">bank</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBjMjJl
NWYzLi43YTdiYTZjIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTItMDUtMDkgIEJhbGF6cyBBbmtlcyAgPGJhbmtA
aW5mLnUtc3plZ2VkLmh1PgorCisgICAgICAgIHdlYmtpdC1wYXRjaCBsYW5kIHNob3VsZCBhdXRv
bWF0aWNhbGx5IGFkZCBzdm46bWltZS10eXBlIGZvciAucG5nIGZpbGVzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NTgyNQorICAgICAgICBJIHJlZmFj
dG9yZWQgdGhlIHBuZy5weSB0byBhdm9pZCBjb2RlIGR1cGxpY2F0aW9uLgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9j
b21tb24vY2hlY2tzdm5jb25maWdmaWxlLnB5OiBBZGRlZC4KKyAgICAgICAgKGNoZWNrKToKKyAg
ICAgICAgKF9jb25maWdfZmlsZV9wYXRoKToKKyAgICAgICAgKGVycm9yc3RyX2F1dG9wcm9wKToK
KyAgICAgICAgKGVycm9yc3RyX3BuZyk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9zdHls
ZS9jaGVja2Vycy9wbmcucHk6CisgICAgICAgIChQTkdDaGVja2VyLmNoZWNrKToKKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZG93bmxvYWQucHk6CisgICAgICAgIChM
YW5kKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvX19pbml0X18ucHk6
CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2FkZHN2bm1pbWV0eXBlZm9y
cG5nLnB5OiBBZGRlZC4KKyAgICAgICAgKEFkZFN2bk1pbWV0eXBlRm9yUG5nKToKKyAgICAgICAg
KEFkZFN2bk1pbWV0eXBlRm9yUG5nLl9faW5pdF9fKToKKyAgICAgICAgKEFkZFN2bk1pbWV0eXBl
Rm9yUG5nLnJ1bik6CisgICAgICAgIChBZGRTdm5NaW1ldHlwZUZvclBuZy5fY2hlY2tfcG5ncyk6
CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2FkZHN2bm1pbWV0eXBlZm9y
cG5nX3VuaXR0ZXN0LnB5OiBBZGRlZC4KKyAgICAgICAgKE1vY2tTQ01EZXRlY3Rvcik6CisgICAg
ICAgIChNb2NrU0NNRGV0ZWN0b3IuX19pbml0X18pOgorICAgICAgICAoTW9ja1NDTURldGVjdG9y
LmRpc3BsYXlfbmFtZSk6CisgICAgICAgIChBZGRTdm5NaW1ldHlwZUZvclBuZ1Rlc3QpOgorICAg
ICAgICAoQWRkU3ZuTWltZXR5cGVGb3JQbmdUZXN0LnRlc3RfcnVuKToKKwogMjAxMi0wNS0wOSAg
RG9taW5payBSw7Z0dHNjaGVzICA8ZG9taW5pay5yb3R0c2NoZXNAaW50ZWwuY29tPgogCiAgICAg
ICAgIHdlYmtpdC1wYXRjaCB1cGxvYWQgRmFpbHMgQmVoaW5kIExvYWQtYmFsYW5jaW5nIFByb3hp
ZXMKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrc3ZuY29u
ZmlnZmlsZS5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrc3ZuY29uZmln
ZmlsZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMTA5MGQzCi0tLSAv
ZGV2L251bGwKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tzdm5jb25m
aWdmaWxlLnB5CkBAIC0wLDAgKzEsNjYgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDEyIEJhbGF6cyBB
bmtlcyAoYmFua0BpbmYudS1zemVnZWQuaHUpIFVuaXZlcnNpdHkgb2YgU3plZ2VkCisjCisjIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMK
KyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQK
KyMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjIFRoaXMg
ZmlsZSBpcyB1c2VkIGJ5OgorIyB3ZWJraXRweS90b29sL3N0ZXBzL2FkZHN2bm1pbWV0eXBlZm9y
cG5nLnB5CisjIHdlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL3BuZy5weQorCitpbXBvcnQgb3MKK2lt
cG9ydCByZQorCisKK2RlZiBjaGVjayhzZWxmLCBob3N0LCBmcyk6CisgICAgIiIiCisgICAgY2hl
Y2sgdGhlIHN2biBjb25maWcgZmlsZQorICAgIHJldHVybiB3aXRoIHRocmVlIGxvZ2ljYWwgdmFs
dWU6CisgICAgd2FzIHRoZSBmaWxlIHJlYWQgc3VjY2Vzc2Z1bCwgaXMgdGhlcmUgZW5hYmxlIHRo
ZSBhdXRvLXByb3BzLCBpcyB0aGVyZSBlbmFibGUgdGhlIHN2bjptaW1lLXR5cGUgZm9yIHBuZwor
ICAgICIiIgorCisgICAgY29uZmlnX2ZpbGVfcGF0aCA9IF9jb25maWdfZmlsZV9wYXRoKHNlbGYs
IGhvc3QsIGZzKQorCisgICAgdHJ5OgorICAgICAgICBjb25maWdfZmlsZSA9IGZzLnJlYWRfdGV4
dF9maWxlKGNvbmZpZ19maWxlX3BhdGgpCisgICAgZXhjZXB0IElPRXJyb3I6CisgICAgICAgIHJl
dHVybiAoVHJ1ZSwgVHJ1ZSwgVHJ1ZSkKKworICAgIGVycm9yY29kZV9hdXRvcHJvcCA9IG5vdCBy
ZS5zZWFyY2goIl5ccyplbmFibGUtYXV0by1wcm9wc1xzKj1ccyp5ZXMiLCBjb25maWdfZmlsZSwg
cmUuTVVMVElMSU5FKQorICAgIGVycm9yY29kZV9wbmcgPSBub3QgcmUuc2VhcmNoKCJeXHMqXCpc
LnBuZ1xzKj1ccypzdm46bWltZS10eXBlPWltYWdlL3BuZyIsIGNvbmZpZ19maWxlLCByZS5NVUxU
SUxJTkUpCisKKyAgICByZXR1cm4gKEZhbHNlLCBlcnJvcmNvZGVfYXV0b3Byb3AsIGVycm9yY29k
ZV9wbmcpCisKKworZGVmIF9jb25maWdfZmlsZV9wYXRoKHNlbGYsIGhvc3QsIGZzKToKKyAgICBj
b25maWdfZmlsZSA9ICIiCisgICAgaWYgaG9zdC5wbGF0Zm9ybS5pc193aW4oKToKKyAgICAgICAg
Y29uZmlnX2ZpbGVfcGF0aCA9IGZzLmpvaW4ob3MuZW52aXJvblsnQVBQREFUQSddLCAiU3VidmVy
c2lvblxjb25maWciKQorICAgIGVsc2U6CisgICAgICAgIGNvbmZpZ19maWxlX3BhdGggPSBmcy5q
b2luKGZzLmV4cGFuZHVzZXIoIn4iKSwgIi5zdWJ2ZXJzaW9uL2NvbmZpZyIpCisgICAgcmV0dXJu
IGNvbmZpZ19maWxlX3BhdGgKKworCitkZWYgZXJyb3JzdHJfYXV0b3Byb3AoY29uZmlnX2ZpbGVf
cGF0aCk6CisgICAgcmV0dXJuICJIYXZlIHRvIGVuYWJsZSBhdXRvIHByb3BzIGluIHRoZSBzdWJ2
ZXJzaW9uIGNvbmZpZyBmaWxlICgiICsgY29uZmlnX2ZpbGVfcGF0aCArICIgXCJlbmFibGUtYXV0
by1wcm9wcyA9IHllc1wiKS4gIgorCisKK2RlZiBlcnJvcnN0cl9wbmcoY29uZmlnX2ZpbGVfcGF0
aCk6CisgICAgcmV0dXJuICJIYXZlIHRvIHNldCB0aGUgc3ZuOm1pbWUtdHlwZSBpbiB0aGUgc3Vi
dmVyc2lvbiBjb25maWcgZmlsZSAoIiArIGNvbmZpZ19maWxlX3BhdGggKyAiIFwiKi5wbmcgPSBz
dm46bWltZS10eXBlPWltYWdlL3BuZ1wiKS4iCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3N0eWxlL2NoZWNrZXJzL3BuZy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5
bGUvY2hlY2tlcnMvcG5nLnB5CmluZGV4IGUwYjc5ZTIuLjMxNWUyODcgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvcG5nLnB5CisrKyBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvcG5nLnB5CkBAIC0yNyw2ICsyNyw3IEBACiBp
bXBvcnQgb3MKIGltcG9ydCByZQogCitmcm9tIHdlYmtpdHB5LmNvbW1vbiBpbXBvcnQgY2hlY2tz
dm5jb25maWdmaWxlCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uc3lzdGVtaG9zdCBpbXBv
cnQgU3lzdGVtSG9zdAogZnJvbSB3ZWJraXRweS5jb21tb24uY2hlY2tvdXQuc2NtLmRldGVjdGlv
biBpbXBvcnQgU0NNRGV0ZWN0b3IKIApAQCAtNDQsNTQgKzQ1LDI0IEBAIGNsYXNzIFBOR0NoZWNr
ZXIob2JqZWN0KToKICAgICAgICAgc2VsZi5fZGV0ZWN0b3IgPSBzY20gb3IgU0NNRGV0ZWN0b3Io
c2VsZi5fZnMsIHNlbGYuX2hvc3QuZXhlY3V0aXZlKS5kZXRlY3Rfc2NtX3N5c3RlbShzZWxmLl9m
cy5nZXRjd2QoKSkKIAogICAgIGRlZiBjaGVjayhzZWxmLCBpbmxpbmU9Tm9uZSk6Ci0gICAgICAg
IGVycm9yc3RyID0gIiIKICAgICAgICAgY29uZmlnX2ZpbGVfcGF0aCA9ICIiCiAgICAgICAgIGRl
dGVjdGlvbiA9IHNlbGYuX2RldGVjdG9yLmRpc3BsYXlfbmFtZSgpCiAKICAgICAgICAgaWYgZGV0
ZWN0aW9uID09ICJnaXQiOgotICAgICAgICAgICAgY29uZmlnX2ZpbGVfcGF0aCA9IHNlbGYuX2Nv
bmZpZ19maWxlX3BhdGgoKQotICAgICAgICAgICAgdGhlcmVfaXNfZW5hYmxlX2xpbmUgPSBGYWxz
ZQotICAgICAgICAgICAgdGhlcmVfaXNfcG5nX2xpbmUgPSBGYWxzZQotCi0gICAgICAgICAgICB0
cnk6Ci0gICAgICAgICAgICAgICAgY29uZmlnX2ZpbGUgPSBzZWxmLl9mcy5yZWFkX3RleHRfZmls
ZShjb25maWdfZmlsZV9wYXRoKQotICAgICAgICAgICAgZXhjZXB0IElPRXJyb3I6Ci0gICAgICAg
ICAgICAgICAgZXJyb3JzdHIgPSAiVGhlcmUgaXMgbm8gIiArIGNvbmZpZ19maWxlX3BhdGgKLSAg
ICAgICAgICAgICAgICBzZWxmLl9oYW5kbGVfc3R5bGVfZXJyb3IoMCwgJ2ltYWdlL3BuZycsIDUs
IGVycm9yc3RyKQotICAgICAgICAgICAgICAgIHJldHVybgotCi0gICAgICAgICAgICBlcnJvcnN0
cl9hdXRvcHJvcCA9ICJIYXZlIHRvIGVuYWJsZSBhdXRvIHByb3BzIGluIHRoZSBzdWJ2ZXJzaW9u
IGNvbmZpZyBmaWxlICgiICsgY29uZmlnX2ZpbGVfcGF0aCArICIgXCJlbmFibGUtYXV0by1wcm9w
cyA9IHllc1wiKS4gIgotICAgICAgICAgICAgZXJyb3JzdHJfcG5nID0gIkhhdmUgdG8gc2V0IHRo
ZSBzdm46bWltZS10eXBlIGluIHRoZSBzdWJ2ZXJzaW9uIGNvbmZpZyBmaWxlICgiICsgY29uZmln
X2ZpbGVfcGF0aCArICIgXCIqLnBuZyA9IHN2bjptaW1lLXR5cGU9aW1hZ2UvcG5nXCIpLiIKLQot
ICAgICAgICAgICAgZm9yIGxpbmUgaW4gY29uZmlnX2ZpbGUuc3BsaXQoJ1xuJyk6Ci0gICAgICAg
ICAgICAgICAgaWYgbm90IHRoZXJlX2lzX2VuYWJsZV9saW5lOgotICAgICAgICAgICAgICAgICAg
ICBtYXRjaCA9IHJlLnNlYXJjaCgiXlxzKmVuYWJsZS1hdXRvLXByb3BzXHMqPVxzKnllcyIsIGxp
bmUpCi0gICAgICAgICAgICAgICAgICAgIGlmIG1hdGNoOgotICAgICAgICAgICAgICAgICAgICAg
ICAgdGhlcmVfaXNfZW5hYmxlX2xpbmUgPSBUcnVlCi0gICAgICAgICAgICAgICAgICAgICAgICBl
cnJvcnN0cl9hdXRvcHJvcCA9ICIiCi0gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZQot
Ci0gICAgICAgICAgICAgICAgaWYgbm90IHRoZXJlX2lzX3BuZ19saW5lOgotICAgICAgICAgICAg
ICAgICAgICBtYXRjaCA9IHJlLnNlYXJjaCgiXlxzKlwqXC5wbmdccyo9XHMqc3ZuOm1pbWUtdHlw
ZT1pbWFnZS9wbmciLCBsaW5lKQotICAgICAgICAgICAgICAgICAgICBpZiBtYXRjaDoKLSAgICAg
ICAgICAgICAgICAgICAgICAgIHRoZXJlX2lzX3BuZ19saW5lID0gVHJ1ZQotICAgICAgICAgICAg
ICAgICAgICAgICAgZXJyb3JzdHJfcG5nID0gIiIKLSAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnRpbnVlCi0KLSAgICAgICAgICAgIGVycm9yc3RyID0gZXJyb3JzdHJfYXV0b3Byb3AgKyBlcnJv
cnN0cl9wbmcKLSAgICAgICAgICAgIGlmIGVycm9yc3RyOgotICAgICAgICAgICAgICAgIHNlbGYu
X2hhbmRsZV9zdHlsZV9lcnJvcigwLCAnaW1hZ2UvcG5nJywgNSwgZXJyb3JzdHIpCisgICAgICAg
ICAgICAoZmlsZV9yZWFkLCBhdXRvcHJvcCwgcG5nKSA9IGNoZWNrc3ZuY29uZmlnZmlsZS5jaGVj
ayhzZWxmLCBzZWxmLl9ob3N0LCBzZWxmLl9mcykKKyAgICAgICAgICAgIGNvbmZpZ19maWxlX3Bh
dGggPSBjaGVja3N2bmNvbmZpZ2ZpbGUuX2NvbmZpZ19maWxlX3BhdGgoc2VsZiwgc2VsZi5faG9z
dCwgc2VsZi5fZnMpCisKKyAgICAgICAgICAgIGlmIGZpbGVfcmVhZDoKKyAgICAgICAgICAgICAg
ICBzZWxmLl9oYW5kbGVfc3R5bGVfZXJyb3IoMCwgJ2ltYWdlL3BuZycsIDUsICJUaGVyZSBpcyBu
byBTVk4gY29uZmlnIGZpbGUuICgiICsgY29uZmlnX2ZpbGVfcGF0aCArICIpIikKKyAgICAgICAg
ICAgIGVsaWYgYXV0b3Byb3AgYW5kIHBuZzoKKyAgICAgICAgICAgICAgICBzZWxmLl9oYW5kbGVf
c3R5bGVfZXJyb3IoMCwgJ2ltYWdlL3BuZycsIDUsIGNoZWNrc3ZuY29uZmlnZmlsZS5lcnJvcnN0
cl9hdXRvcHJvcChjb25maWdfZmlsZV9wYXRoKSArIGNoZWNrc3ZuY29uZmlnZmlsZS5lcnJvcnN0
cl9wbmcoY29uZmlnX2ZpbGVfcGF0aCkpCisgICAgICAgICAgICBlbGlmIGF1dG9wcm9wOgorICAg
ICAgICAgICAgICAgIHNlbGYuX2hhbmRsZV9zdHlsZV9lcnJvcigwLCAnaW1hZ2UvcG5nJywgNSwg
Y2hlY2tzdm5jb25maWdmaWxlLmVycm9yc3RyX2F1dG9wcm9wKGNvbmZpZ19maWxlX3BhdGgpKQor
ICAgICAgICAgICAgZWxpZiBwbmc6CisgICAgICAgICAgICAgICAgc2VsZi5faGFuZGxlX3N0eWxl
X2Vycm9yKDAsICdpbWFnZS9wbmcnLCA1LCBjaGVja3N2bmNvbmZpZ2ZpbGUuZXJyb3JzdHJfcG5n
KGNvbmZpZ19maWxlX3BhdGgpKQogCiAgICAgICAgIGVsaWYgZGV0ZWN0aW9uID09ICJzdm4iOgog
ICAgICAgICAgICAgcHJvcF9nZXQgPSBzZWxmLl9kZXRlY3Rvci5wcm9wZ2V0KCJzdm46bWltZS10
eXBlIiwgc2VsZi5fZmlsZV9wYXRoKQogICAgICAgICAgICAgaWYgcHJvcF9nZXQgIT0gImltYWdl
L3BuZyI6CiAgICAgICAgICAgICAgICAgZXJyb3JzdHIgPSAiU2V0IHRoZSBzdm46bWltZS10eXBl
IHByb3BlcnR5IChzdm4gcHJvcHNldCBzdm46bWltZS10eXBlIGltYWdlL3BuZyAiICsgc2VsZi5f
ZmlsZV9wYXRoICsgIikuIgogICAgICAgICAgICAgICAgIHNlbGYuX2hhbmRsZV9zdHlsZV9lcnJv
cigwLCAnaW1hZ2UvcG5nJywgNSwgZXJyb3JzdHIpCi0KLSAgICBkZWYgX2NvbmZpZ19maWxlX3Bh
dGgoc2VsZik6Ci0gICAgICAgIGNvbmZpZ19maWxlID0gIiIKLSAgICAgICAgaWYgc2VsZi5faG9z
dC5wbGF0Zm9ybS5pc193aW4oKToKLSAgICAgICAgICAgIGNvbmZpZ19maWxlX3BhdGggPSBzZWxm
Ll9mcy5qb2luKG9zLmVudmlyb25bJ0FQUERBVEEnXSwgIlN1YnZlcnNpb25cY29uZmlnIikKLSAg
ICAgICAgZWxzZToKLSAgICAgICAgICAgIGNvbmZpZ19maWxlX3BhdGggPSBzZWxmLl9mcy5qb2lu
KHNlbGYuX2ZzLmV4cGFuZHVzZXIoIn4iKSwgIi5zdWJ2ZXJzaW9uL2NvbmZpZyIpCi0gICAgICAg
IHJldHVybiBjb25maWdfZmlsZV9wYXRoCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvY29tbWFuZHMvZG93bmxvYWQucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvY29tbWFuZHMvZG93bmxvYWQucHkKaW5kZXggNGY2YjczNy4uNjBjODkyMCAxMDA2NDQKLS0t
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Rvd25sb2FkLnB5CisrKyBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9kb3dubG9hZC5weQpAQCAtOTAs
NiArOTAsNyBAQCBjbGFzcyBMYW5kKEFic3RyYWN0U2VxdWVuY2VkQ29tbWFuZCk6CiAgICAgYXJn
dW1lbnRfbmFtZXMgPSAiW0JVR0lEXSIKICAgICBzaG93X2luX21haW5faGVscCA9IFRydWUKICAg
ICBzdGVwcyA9IFsKKyAgICAgICAgc3RlcHMuQWRkU3ZuTWltZXR5cGVGb3JQbmcsCiAgICAgICAg
IHN0ZXBzLlVwZGF0ZUNoYW5nZUxvZ3NXaXRoUmV2aWV3ZXIsCiAgICAgICAgIHN0ZXBzLlZhbGlk
YXRlUmV2aWV3ZXIsCiAgICAgICAgIHN0ZXBzLlZhbGlkYXRlQ2hhbmdlTG9ncywgIyBXZSBkbyB0
aGlzIGFmdGVyIFVwZGF0ZUNoYW5nZUxvZ3NXaXRoUmV2aWV3ZXIgdG8gYXZvaWQgbm90IGhhdmlu
ZyB0byBjYWNoZSB0aGUgZGlmZiB0d2ljZS4KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9zdGVwcy9fX2luaXRfXy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9v
bC9zdGVwcy9fX2luaXRfXy5weQppbmRleCBhY2E5NzA2Li41NjQyOWU4IDEwMDY0NAotLS0gYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvX19pbml0X18ucHkKKysrIGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL19faW5pdF9fLnB5CkBAIC0yNyw2ICsyNyw3IEBA
CiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCiAKICMgRklYTUU6IElzIHRoaXMgdGhlIHJpZ2h0IHdheSB0byBkbyB0
aGlzPworZnJvbSB3ZWJraXRweS50b29sLnN0ZXBzLmFkZHN2bm1pbWV0eXBlZm9ycG5nIGltcG9y
dCBBZGRTdm5NaW1ldHlwZUZvclBuZwogZnJvbSB3ZWJraXRweS50b29sLnN0ZXBzLmFwcGx5cGF0
Y2ggaW1wb3J0IEFwcGx5UGF0Y2gKIGZyb20gd2Via2l0cHkudG9vbC5zdGVwcy5hcHBseXBhdGNo
d2l0aGxvY2FsY29tbWl0IGltcG9ydCBBcHBseVBhdGNoV2l0aExvY2FsQ29tbWl0CiBmcm9tIHdl
YmtpdHB5LnRvb2wuc3RlcHMuYXBwbHl3YXRjaGxpc3QgaW1wb3J0IEFwcGx5V2F0Y2hMaXN0CmRp
ZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvYWRkc3ZubWltZXR5
cGVmb3JwbmcucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvYWRkc3ZubWlt
ZXR5cGVmb3JwbmcucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDE5ZTMy
YgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9h
ZGRzdm5taW1ldHlwZWZvcnBuZy5weQpAQCAtMCwwICsxLDc3IEBACisjIENvcHlyaWdodCAoQykg
MjAxMiBCYWxhenMgQW5rZXMgKGJhbmtAaW5mLnUtc3plZ2VkLmh1KSBVbml2ZXJzaXR5IG9mIFN6
ZWdlZAorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisj
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCisjIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAor
IyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKworZnJvbSB3ZWJraXRweS50b29sLnN0ZXBzLmFic3RyYWN0c3RlcCBpbXBvcnQgQWJzdHJh
Y3RTdGVwCitmcm9tIHdlYmtpdHB5LmNvbW1vbiBpbXBvcnQgY2hlY2tzdm5jb25maWdmaWxlCitm
cm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZGVwcmVjYXRlZF9sb2dnaW5nIGltcG9ydCBsb2cK
K2Zyb20gd2Via2l0cHkuY29tbW9uLmNoZWNrb3V0LnNjbS5kZXRlY3Rpb24gaW1wb3J0IFNDTURl
dGVjdG9yCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uc3lzdGVtaG9zdCBpbXBvcnQgU3lz
dGVtSG9zdAorCisKK2NsYXNzIEFkZFN2bk1pbWV0eXBlRm9yUG5nKEFic3RyYWN0U3RlcCk6Cisg
ICAgZGVmIF9faW5pdF9fKHNlbGYsIHRvb2wsIG9wdGlvbnMsIGhvc3Q9Tm9uZSwgc2NtPU5vbmUp
OgorICAgICAgICBzZWxmLl90b29sID0gdG9vbAorICAgICAgICBzZWxmLl9vcHRpb25zID0gb3B0
aW9ucworICAgICAgICBzZWxmLl9ob3N0ID0gaG9zdCBvciBTeXN0ZW1Ib3N0KCkKKyAgICAgICAg
c2VsZi5fZnMgPSBzZWxmLl9ob3N0LmZpbGVzeXN0ZW0KKyAgICAgICAgc2VsZi5fZGV0ZWN0b3Ig
PSBzY20gb3IgU0NNRGV0ZWN0b3Ioc2VsZi5fZnMsIHNlbGYuX2hvc3QuZXhlY3V0aXZlKS5kZXRl
Y3Rfc2NtX3N5c3RlbShzZWxmLl9mcy5nZXRjd2QoKSkKKworICAgIGRlZiBydW4oc2VsZiwgc3Rh
dGUpOgorICAgICAgICBwbmdfZmlsZXMgPSBzZWxmLl9jaGVja19wbmdzKHNlbGYuX2NoYW5nZWRf
ZmlsZXMoc3RhdGUpKQorCisgICAgICAgIGlmIGxlbihwbmdfZmlsZXMpID4gMDoKKyAgICAgICAg
ICAgIGRldGVjdGlvbiA9IHNlbGYuX2RldGVjdG9yLmRpc3BsYXlfbmFtZSgpCisKKyAgICAgICAg
ICAgIGlmIGRldGVjdGlvbiA9PSAiZ2l0IjoKKyAgICAgICAgICAgICAgICAoZmlsZV9yZWFkLCBh
dXRvcHJvcCwgcG5nKSA9IGNoZWNrc3ZuY29uZmlnZmlsZS5jaGVjayhzZWxmLCBzZWxmLl9ob3N0
LCBzZWxmLl9mcykKKyAgICAgICAgICAgICAgICBjb25maWdfZmlsZV9wYXRoID0gY2hlY2tzdm5j
b25maWdmaWxlLl9jb25maWdfZmlsZV9wYXRoKHNlbGYsIHNlbGYuX2hvc3QsIHNlbGYuX2ZzKQor
CisgICAgICAgICAgICAgICAgaWYgZmlsZV9yZWFkOgorICAgICAgICAgICAgICAgICAgICBsb2co
IlRoZXJlIGlzIG5vIFNWTiBjb25maWcgZmlsZS4gVGhlIHN2bjptaW1lLXR5cGUgb2YgcG5ncyB3
b24ndCBzZXQuIikKKyAgICAgICAgICAgICAgICAgICAgaWYgbm90IHNlbGYuX3Rvb2wudXNlci5j
b25maXJtKCJBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gY29udGludWU/IiwgZGVmYXVsdD0ibiIp
OgorICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fZXhpdCgxKQorICAgICAgICAgICAgICAg
IGVsaWYgYXV0b3Byb3AgYW5kIHBuZzoKKyAgICAgICAgICAgICAgICAgICAgbG9nKGNoZWNrc3Zu
Y29uZmlnZmlsZS5lcnJvcnN0cl9hdXRvcHJvcChjb25maWdfZmlsZV9wYXRoKSArIGNoZWNrc3Zu
Y29uZmlnZmlsZS5lcnJvcnN0cl9wbmcoY29uZmlnX2ZpbGVfcGF0aCkpCisgICAgICAgICAgICAg
ICAgICAgIGlmIG5vdCBzZWxmLl90b29sLnVzZXIuY29uZmlybSgiRG8geW91IHdhbnQgdG8gY29u
dGludWU/IiwgZGVmYXVsdD0ibiIpOgorICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fZXhp
dCgxKQorICAgICAgICAgICAgICAgIGVsaWYgYXV0b3Byb3A6CisgICAgICAgICAgICAgICAgICAg
IGxvZyhjaGVja3N2bmNvbmZpZ2ZpbGUuZXJyb3JzdHJfYXV0b3Byb3AoY29uZmlnX2ZpbGVfcGF0
aCkpCisgICAgICAgICAgICAgICAgICAgIGlmIG5vdCBzZWxmLl90b29sLnVzZXIuY29uZmlybSgi
RG8geW91IHdhbnQgdG8gY29udGludWU/IiwgZGVmYXVsdD0ibiIpOgorICAgICAgICAgICAgICAg
ICAgICAgICAgc2VsZi5fZXhpdCgxKQorICAgICAgICAgICAgICAgIGVsaWYgcG5nOgorICAgICAg
ICAgICAgICAgICAgICBsb2coY2hlY2tzdm5jb25maWdmaWxlLmVycm9yc3RyX3BuZyhjb25maWdf
ZmlsZV9wYXRoKSkKKyAgICAgICAgICAgICAgICAgICAgaWYgbm90IHNlbGYuX3Rvb2wudXNlci5j
b25maXJtKCJEbyB5b3Ugd2FudCB0byBjb250aW51ZT8iLCBkZWZhdWx0PSJuIik6CisgICAgICAg
ICAgICAgICAgICAgICAgICBzZWxmLl9leGl0KDEpCisKKyAgICAgICAgICAgIGVsaWYgZGV0ZWN0
aW9uID09ICJzdm4iOgorICAgICAgICAgICAgICAgIGZvciBmaWxlbmFtZSBpbiBwbmdfZmlsZXM6
CisgICAgICAgICAgICAgICAgICAgIGlmIGZpbGVuYW1lLmVuZHN3aXRoKCcucG5nJykgYW5kIGRl
dGVjdG9yLmV4aXN0cyhmaWxlbmFtZSkgYW5kIGRldGVjdG9yLnByb3BnZXQoJ3N2bjptaW1lLXR5
cGUnLCBmaWxlbmFtZSkgPT0gIiI6CisgICAgICAgICAgICAgICAgICAgICAgICBwcmludCAiQWRk
aW5nIGltYWdlL3BuZyBtaW1lLXR5cGUgdG8gJXMiICUgZmlsZW5hbWUKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGRldGVjdG9yLnByb3BzZXQoJ3N2bjptaW1lLXR5cGUnLCAnaW1hZ2UvcG5nJywg
ZmlsZW5hbWUpCisKKyAgICBkZWYgX2NoZWNrX3BuZ3Moc2VsZiwgY2hhbmdlZF9maWxlcyk6Cisg
ICAgICAgIHBuZ19maWxlcyA9IFtdCisgICAgICAgIGZvciBmaWxlbmFtZSBpbiBjaGFuZ2VkX2Zp
bGVzOgorICAgICAgICAgICAgaWYgZmlsZW5hbWUuZW5kc3dpdGgoJy5wbmcnKToKKyAgICAgICAg
ICAgICAgICBwbmdfZmlsZXMuYXBwZW5kKGZpbGVuYW1lKQorICAgICAgICByZXR1cm4gcG5nX2Zp
bGVzCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvYWRkc3Zu
bWltZXR5cGVmb3JwbmdfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
c3RlcHMvYWRkc3ZubWltZXR5cGVmb3JwbmdfdW5pdHRlc3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uMzBlZDA3NAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9zdGVwcy9hZGRzdm5taW1ldHlwZWZvcnBuZ191bml0dGVzdC5weQpA
QCAtMCwwICsxLDYwIEBACisjIENvcHlyaWdodCAoQykgMjAxMiBCYWxhenMgQW5rZXMgKGJhbmtA
aW5mLnUtc3plZ2VkLmh1KSBVbml2ZXJzaXR5IG9mIFN6ZWdlZAorIworIyBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMg
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisjIE9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IHVuaXR0ZXN0CisK
K2Zyb20gd2Via2l0cHkudG9vbC5zdGVwcy5hZGRzdm5taW1ldHlwZWZvcnBuZyBpbXBvcnQgQWRk
U3ZuTWltZXR5cGVGb3JQbmcKK2Zyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5maWxlc3lzdGVt
X21vY2sgaW1wb3J0IE1vY2tGaWxlU3lzdGVtCitmcm9tIHdlYmtpdHB5LnRvb2wubW9ja3Rvb2wg
aW1wb3J0IE1vY2tPcHRpb25zLCBNb2NrVG9vbAorZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVt
LnN5c3RlbWhvc3RfbW9jayBpbXBvcnQgTW9ja1N5c3RlbUhvc3QKK2Zyb20gd2Via2l0cHkuY29t
bW9uLnN5c3RlbS5vdXRwdXRjYXB0dXJlIGltcG9ydCBPdXRwdXRDYXB0dXJlCisKKworY2xhc3Mg
TW9ja1NDTURldGVjdG9yKG9iamVjdCk6CisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgc2NtKToK
KyAgICAgICAgc2VsZi5fc2NtID0gc2NtCisKKyAgICBkZWYgZGlzcGxheV9uYW1lKHNlbGYpOgor
ICAgICAgICByZXR1cm4gc2VsZi5fc2NtCisKKworY2xhc3MgQWRkU3ZuTWltZXR5cGVGb3JQbmdU
ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICBkZWYgdGVzdF9ydW4oc2VsZik6CisgICAgICAg
IGNhcHR1cmUgPSBPdXRwdXRDYXB0dXJlKCkKKyAgICAgICAgb3B0aW9ucyA9IE1vY2tPcHRpb25z
KCkKKyAgICAgICAgb3B0aW9ucy5naXRfY29tbWl0ID0gJ01PQ0sgZ2l0IGNvbW1pdCcKKworICAg
ICAgICBmaWxlcyA9IHsnL1VzZXJzL21vY2svLnN1YnZlcnNpb24vY29uZmlnJzogJ2VuYWJsZS1h
dXRvLXByb3BzID0geWVzXG4qLnBuZyA9IHN2bjptaW1lLXR5cGU9aW1hZ2UvcG5nJ30KKyAgICAg
ICAgZnMgPSBNb2NrRmlsZVN5c3RlbShmaWxlcykKKyAgICAgICAgc2NtID0gTW9ja1NDTURldGVj
dG9yKCdnaXQnKQorCisgICAgICAgIHN0ZXAgPSBBZGRTdm5NaW1ldHlwZUZvclBuZyhNb2NrVG9v
bCgpLCBvcHRpb25zLCBNb2NrU3lzdGVtSG9zdChvc19uYW1lPSdsaW51eCcsIGZpbGVzeXN0ZW09
ZnMpLCBzY20pCisgICAgICAgIHN0YXRlID0geworICAgICAgICAgICAgImNoYW5nZWRfZmlsZXMi
OiBbInRlc3QucG5nIl0sCisgICAgICAgIH0KKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgY2Fw
dHVyZS5hc3NlcnRfb3V0cHV0cyhzZWxmLCBzdGVwLnJ1biwgW3N0YXRlXSkKKyAgICAgICAgZXhj
ZXB0IFN5c3RlbUV4aXQsIGU6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscyh0eXBlKGUp
LCB0eXBlKFN5c3RlbUV4aXQoKSkpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhlLmNv
ZGUsIDEpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141960</attachid>
            <date>2012-05-15 07:06:04 -0700</date>
            <delta_ts>2012-06-14 02:23:33 -0700</delta_ts>
            <desc>proposed fix</desc>
            <filename>2012-05-15_wk_patch_land.patch</filename>
            <type>text/plain</type>
            <size>16997</size>
            <attacher name="Balazs Ankes">bank</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAzM2E1
YzM5Li5jYjhiODk1IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTItMDUtMTUgIEJhbGF6cyBBbmtlcyAgPGJhbmtA
aW5mLnUtc3plZ2VkLmh1PgorCisgICAgICAgIHdlYmtpdC1wYXRjaCBsYW5kIHNob3VsZCBhdXRv
bWF0aWNhbGx5IGFkZCBzdm46bWltZS10eXBlIGZvciAucG5nIGZpbGVzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NTgyNQorICAgICAgICBJIHJlZmFj
dG9yZWQgdGhlIHBuZy5weSB0byBhdm9pZCBjb2RlIGR1cGxpY2F0aW9uLgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9j
b21tb24vY2hlY2tzdm5jb25maWdmaWxlLnB5OiBBZGRlZC4KKyAgICAgICAgKGNoZWNrKToKKyAg
ICAgICAgKF9jb25maWdfZmlsZV9wYXRoKToKKyAgICAgICAgKGVycm9yc3RyX2F1dG9wcm9wKToK
KyAgICAgICAgKGVycm9yc3RyX3BuZyk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9zdHls
ZS9jaGVja2Vycy9wbmcucHk6CisgICAgICAgIChQTkdDaGVja2VyLmNoZWNrKToKKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZG93bmxvYWQucHk6CisgICAgICAgIChM
YW5kKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvX19pbml0X18ucHk6
CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2FkZHN2bm1pbWV0eXBlZm9y
cG5nLnB5OiBBZGRlZC4KKyAgICAgICAgKEFkZFN2bk1pbWV0eXBlRm9yUG5nKToKKyAgICAgICAg
KEFkZFN2bk1pbWV0eXBlRm9yUG5nLl9faW5pdF9fKToKKyAgICAgICAgKEFkZFN2bk1pbWV0eXBl
Rm9yUG5nLnJ1bik6CisgICAgICAgIChBZGRTdm5NaW1ldHlwZUZvclBuZy5fY2hlY2tfcG5ncyk6
CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2FkZHN2bm1pbWV0eXBlZm9y
cG5nX3VuaXR0ZXN0LnB5OiBBZGRlZC4KKyAgICAgICAgKE1vY2tTQ01EZXRlY3Rvcik6CisgICAg
ICAgIChNb2NrU0NNRGV0ZWN0b3IuX19pbml0X18pOgorICAgICAgICAoTW9ja1NDTURldGVjdG9y
LmRpc3BsYXlfbmFtZSk6CisgICAgICAgIChBZGRTdm5NaW1ldHlwZUZvclBuZ1Rlc3QpOgorICAg
ICAgICAoQWRkU3ZuTWltZXR5cGVGb3JQbmdUZXN0LnRlc3RfcnVuKToKKwogMjAxMi0wNS0xNSAg
Q3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQub3JnPgogCiAgICAgICAgIEludHJvZHVj
ZSBFTkFCTEVfQ1NTX1ZBUklBQkxFUyBjb21waWxlIGZsYWcuCmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja3N2bmNvbmZpZ2ZpbGUucHkgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja3N2bmNvbmZpZ2ZpbGUucHkKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uNmQzOTdmOQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrc3ZuY29uZmlnZmlsZS5weQpAQCAtMCwwICsxLDY2
IEBACisjIENvcHlyaWdodCAoQykgMjAxMiBCYWxhenMgQW5rZXMgKGJhbmtAaW5mLnUtc3plZ2Vk
Lmh1KSBVbml2ZXJzaXR5IG9mIFN6ZWdlZAorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisj
IGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyMgIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisjIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorIyBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UCisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworIyBUaGlzIGZpbGUgaXMgdXNlZCBieToKKyMgd2Vi
a2l0cHkvdG9vbC9zdGVwcy9hZGRzdm5taW1ldHlwZWZvcnBuZy5weQorIyB3ZWJraXRweS9zdHls
ZS9jaGVja2Vycy9wbmcucHkKKworaW1wb3J0IG9zCitpbXBvcnQgcmUKKworCitkZWYgY2hlY2so
c2VsZiwgaG9zdCwgZnMpOgorICAgICIiIgorICAgIGNoZWNrIHRoZSBzdm4gY29uZmlnIGZpbGUK
KyAgICByZXR1cm4gd2l0aCB0aHJlZSBsb2dpY2FsIHZhbHVlOgorICAgIHdhcyB0aGUgZmlsZSBy
ZWFkIHN1Y2Nlc3NmdWwsIGlzIHRoZXJlIGVuYWJsZSB0aGUgYXV0by1wcm9wcywgaXMgdGhlcmUg
ZW5hYmxlIHRoZSBzdm46bWltZS10eXBlIGZvciBwbmcKKyAgICAiIiIKKworICAgIGNvbmZpZ19m
aWxlX3BhdGggPSBfY29uZmlnX2ZpbGVfcGF0aChzZWxmLCBob3N0LCBmcykKKworICAgIHRyeToK
KyAgICAgICAgY29uZmlnX2ZpbGUgPSBmcy5yZWFkX3RleHRfZmlsZShjb25maWdfZmlsZV9wYXRo
KQorICAgIGV4Y2VwdCBJT0Vycm9yOgorICAgICAgICByZXR1cm4gKFRydWUsIFRydWUsIFRydWUp
CisKKyAgICBlcnJvcmNvZGVfYXV0b3Byb3AgPSBub3QgcmUuc2VhcmNoKCJeXHMqZW5hYmxlLWF1
dG8tcHJvcHNccyo9XHMqeWVzIiwgY29uZmlnX2ZpbGUsIHJlLk1VTFRJTElORSkKKyAgICBlcnJv
cmNvZGVfcG5nID0gbm90IHJlLnNlYXJjaCgiXlxzKlwqXC5wbmdccyo9XHMqc3ZuOm1pbWUtdHlw
ZT1pbWFnZS9wbmciLCBjb25maWdfZmlsZSwgcmUuTVVMVElMSU5FKQorCisgICAgcmV0dXJuIChG
YWxzZSwgZXJyb3Jjb2RlX2F1dG9wcm9wLCBlcnJvcmNvZGVfcG5nKQorCisKK2RlZiBfY29uZmln
X2ZpbGVfcGF0aChzZWxmLCBob3N0LCBmcyk6CisgICAgY29uZmlnX2ZpbGUgPSAiIgorICAgIGlm
IGhvc3QucGxhdGZvcm0uaXNfd2luKCk6CisgICAgICAgIGNvbmZpZ19maWxlX3BhdGggPSBmcy5q
b2luKG9zLmVudmlyb25bJ0FQUERBVEEnXSwgIlN1YnZlcnNpb25cY29uZmlnIikKKyAgICBlbHNl
OgorICAgICAgICBjb25maWdfZmlsZV9wYXRoID0gZnMuam9pbihmcy5leHBhbmR1c2VyKCJ+Iiks
ICIuc3VidmVyc2lvbi9jb25maWciKQorICAgIHJldHVybiBjb25maWdfZmlsZV9wYXRoCisKKwor
ZGVmIGVycm9yc3RyX2F1dG9wcm9wKGNvbmZpZ19maWxlX3BhdGgpOgorICAgIHJldHVybiAiSGF2
ZSB0byBlbmFibGUgYXV0byBwcm9wcyBpbiB0aGUgc3VidmVyc2lvbiBjb25maWcgZmlsZSAoIiAr
IGNvbmZpZ19maWxlX3BhdGggKyAiIFwiZW5hYmxlLWF1dG8tcHJvcHMgPSB5ZXNcIikuICIKKwor
CitkZWYgZXJyb3JzdHJfcG5nKGNvbmZpZ19maWxlX3BhdGgpOgorICAgIHJldHVybiAiSGF2ZSB0
byBzZXQgdGhlIHN2bjptaW1lLXR5cGUgaW4gdGhlIHN1YnZlcnNpb24gY29uZmlnIGZpbGUgKCIg
KyBjb25maWdfZmlsZV9wYXRoICsgIiBcIioucG5nID0gc3ZuOm1pbWUtdHlwZT1pbWFnZS9wbmdc
IikuIgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9w
bmcucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL3BuZy5weQppbmRl
eCBlMGI3OWUyLi4zMTVlMjg3IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0
eWxlL2NoZWNrZXJzL3BuZy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2No
ZWNrZXJzL3BuZy5weQpAQCAtMjcsNiArMjcsNyBAQAogaW1wb3J0IG9zCiBpbXBvcnQgcmUKIAor
ZnJvbSB3ZWJraXRweS5jb21tb24gaW1wb3J0IGNoZWNrc3ZuY29uZmlnZmlsZQogZnJvbSB3ZWJr
aXRweS5jb21tb24uc3lzdGVtLnN5c3RlbWhvc3QgaW1wb3J0IFN5c3RlbUhvc3QKIGZyb20gd2Vi
a2l0cHkuY29tbW9uLmNoZWNrb3V0LnNjbS5kZXRlY3Rpb24gaW1wb3J0IFNDTURldGVjdG9yCiAK
QEAgLTQ0LDU0ICs0NSwyNCBAQCBjbGFzcyBQTkdDaGVja2VyKG9iamVjdCk6CiAgICAgICAgIHNl
bGYuX2RldGVjdG9yID0gc2NtIG9yIFNDTURldGVjdG9yKHNlbGYuX2ZzLCBzZWxmLl9ob3N0LmV4
ZWN1dGl2ZSkuZGV0ZWN0X3NjbV9zeXN0ZW0oc2VsZi5fZnMuZ2V0Y3dkKCkpCiAKICAgICBkZWYg
Y2hlY2soc2VsZiwgaW5saW5lPU5vbmUpOgotICAgICAgICBlcnJvcnN0ciA9ICIiCiAgICAgICAg
IGNvbmZpZ19maWxlX3BhdGggPSAiIgogICAgICAgICBkZXRlY3Rpb24gPSBzZWxmLl9kZXRlY3Rv
ci5kaXNwbGF5X25hbWUoKQogCiAgICAgICAgIGlmIGRldGVjdGlvbiA9PSAiZ2l0IjoKLSAgICAg
ICAgICAgIGNvbmZpZ19maWxlX3BhdGggPSBzZWxmLl9jb25maWdfZmlsZV9wYXRoKCkKLSAgICAg
ICAgICAgIHRoZXJlX2lzX2VuYWJsZV9saW5lID0gRmFsc2UKLSAgICAgICAgICAgIHRoZXJlX2lz
X3BuZ19saW5lID0gRmFsc2UKLQotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIGNv
bmZpZ19maWxlID0gc2VsZi5fZnMucmVhZF90ZXh0X2ZpbGUoY29uZmlnX2ZpbGVfcGF0aCkKLSAg
ICAgICAgICAgIGV4Y2VwdCBJT0Vycm9yOgotICAgICAgICAgICAgICAgIGVycm9yc3RyID0gIlRo
ZXJlIGlzIG5vICIgKyBjb25maWdfZmlsZV9wYXRoCi0gICAgICAgICAgICAgICAgc2VsZi5faGFu
ZGxlX3N0eWxlX2Vycm9yKDAsICdpbWFnZS9wbmcnLCA1LCBlcnJvcnN0cikKLSAgICAgICAgICAg
ICAgICByZXR1cm4KLQotICAgICAgICAgICAgZXJyb3JzdHJfYXV0b3Byb3AgPSAiSGF2ZSB0byBl
bmFibGUgYXV0byBwcm9wcyBpbiB0aGUgc3VidmVyc2lvbiBjb25maWcgZmlsZSAoIiArIGNvbmZp
Z19maWxlX3BhdGggKyAiIFwiZW5hYmxlLWF1dG8tcHJvcHMgPSB5ZXNcIikuICIKLSAgICAgICAg
ICAgIGVycm9yc3RyX3BuZyA9ICJIYXZlIHRvIHNldCB0aGUgc3ZuOm1pbWUtdHlwZSBpbiB0aGUg
c3VidmVyc2lvbiBjb25maWcgZmlsZSAoIiArIGNvbmZpZ19maWxlX3BhdGggKyAiIFwiKi5wbmcg
PSBzdm46bWltZS10eXBlPWltYWdlL3BuZ1wiKS4iCi0KLSAgICAgICAgICAgIGZvciBsaW5lIGlu
IGNvbmZpZ19maWxlLnNwbGl0KCdcbicpOgotICAgICAgICAgICAgICAgIGlmIG5vdCB0aGVyZV9p
c19lbmFibGVfbGluZToKLSAgICAgICAgICAgICAgICAgICAgbWF0Y2ggPSByZS5zZWFyY2goIl5c
cyplbmFibGUtYXV0by1wcm9wc1xzKj1ccyp5ZXMiLCBsaW5lKQotICAgICAgICAgICAgICAgICAg
ICBpZiBtYXRjaDoKLSAgICAgICAgICAgICAgICAgICAgICAgIHRoZXJlX2lzX2VuYWJsZV9saW5l
ID0gVHJ1ZQotICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JzdHJfYXV0b3Byb3AgPSAiIgot
ICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUKLQotICAgICAgICAgICAgICAgIGlmIG5v
dCB0aGVyZV9pc19wbmdfbGluZToKLSAgICAgICAgICAgICAgICAgICAgbWF0Y2ggPSByZS5zZWFy
Y2goIl5ccypcKlwucG5nXHMqPVxzKnN2bjptaW1lLXR5cGU9aW1hZ2UvcG5nIiwgbGluZSkKLSAg
ICAgICAgICAgICAgICAgICAgaWYgbWF0Y2g6Ci0gICAgICAgICAgICAgICAgICAgICAgICB0aGVy
ZV9pc19wbmdfbGluZSA9IFRydWUKLSAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yc3RyX3Bu
ZyA9ICIiCi0gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZQotCi0gICAgICAgICAgICBl
cnJvcnN0ciA9IGVycm9yc3RyX2F1dG9wcm9wICsgZXJyb3JzdHJfcG5nCi0gICAgICAgICAgICBp
ZiBlcnJvcnN0cjoKLSAgICAgICAgICAgICAgICBzZWxmLl9oYW5kbGVfc3R5bGVfZXJyb3IoMCwg
J2ltYWdlL3BuZycsIDUsIGVycm9yc3RyKQorICAgICAgICAgICAgKGZpbGVfcmVhZCwgYXV0b3By
b3AsIHBuZykgPSBjaGVja3N2bmNvbmZpZ2ZpbGUuY2hlY2soc2VsZiwgc2VsZi5faG9zdCwgc2Vs
Zi5fZnMpCisgICAgICAgICAgICBjb25maWdfZmlsZV9wYXRoID0gY2hlY2tzdm5jb25maWdmaWxl
Ll9jb25maWdfZmlsZV9wYXRoKHNlbGYsIHNlbGYuX2hvc3QsIHNlbGYuX2ZzKQorCisgICAgICAg
ICAgICBpZiBmaWxlX3JlYWQ6CisgICAgICAgICAgICAgICAgc2VsZi5faGFuZGxlX3N0eWxlX2Vy
cm9yKDAsICdpbWFnZS9wbmcnLCA1LCAiVGhlcmUgaXMgbm8gU1ZOIGNvbmZpZyBmaWxlLiAoIiAr
IGNvbmZpZ19maWxlX3BhdGggKyAiKSIpCisgICAgICAgICAgICBlbGlmIGF1dG9wcm9wIGFuZCBw
bmc6CisgICAgICAgICAgICAgICAgc2VsZi5faGFuZGxlX3N0eWxlX2Vycm9yKDAsICdpbWFnZS9w
bmcnLCA1LCBjaGVja3N2bmNvbmZpZ2ZpbGUuZXJyb3JzdHJfYXV0b3Byb3AoY29uZmlnX2ZpbGVf
cGF0aCkgKyBjaGVja3N2bmNvbmZpZ2ZpbGUuZXJyb3JzdHJfcG5nKGNvbmZpZ19maWxlX3BhdGgp
KQorICAgICAgICAgICAgZWxpZiBhdXRvcHJvcDoKKyAgICAgICAgICAgICAgICBzZWxmLl9oYW5k
bGVfc3R5bGVfZXJyb3IoMCwgJ2ltYWdlL3BuZycsIDUsIGNoZWNrc3ZuY29uZmlnZmlsZS5lcnJv
cnN0cl9hdXRvcHJvcChjb25maWdfZmlsZV9wYXRoKSkKKyAgICAgICAgICAgIGVsaWYgcG5nOgor
ICAgICAgICAgICAgICAgIHNlbGYuX2hhbmRsZV9zdHlsZV9lcnJvcigwLCAnaW1hZ2UvcG5nJywg
NSwgY2hlY2tzdm5jb25maWdmaWxlLmVycm9yc3RyX3BuZyhjb25maWdfZmlsZV9wYXRoKSkKIAog
ICAgICAgICBlbGlmIGRldGVjdGlvbiA9PSAic3ZuIjoKICAgICAgICAgICAgIHByb3BfZ2V0ID0g
c2VsZi5fZGV0ZWN0b3IucHJvcGdldCgic3ZuOm1pbWUtdHlwZSIsIHNlbGYuX2ZpbGVfcGF0aCkK
ICAgICAgICAgICAgIGlmIHByb3BfZ2V0ICE9ICJpbWFnZS9wbmciOgogICAgICAgICAgICAgICAg
IGVycm9yc3RyID0gIlNldCB0aGUgc3ZuOm1pbWUtdHlwZSBwcm9wZXJ0eSAoc3ZuIHByb3BzZXQg
c3ZuOm1pbWUtdHlwZSBpbWFnZS9wbmcgIiArIHNlbGYuX2ZpbGVfcGF0aCArICIpLiIKICAgICAg
ICAgICAgICAgICBzZWxmLl9oYW5kbGVfc3R5bGVfZXJyb3IoMCwgJ2ltYWdlL3BuZycsIDUsIGVy
cm9yc3RyKQotCi0gICAgZGVmIF9jb25maWdfZmlsZV9wYXRoKHNlbGYpOgotICAgICAgICBjb25m
aWdfZmlsZSA9ICIiCi0gICAgICAgIGlmIHNlbGYuX2hvc3QucGxhdGZvcm0uaXNfd2luKCk6Ci0g
ICAgICAgICAgICBjb25maWdfZmlsZV9wYXRoID0gc2VsZi5fZnMuam9pbihvcy5lbnZpcm9uWydB
UFBEQVRBJ10sICJTdWJ2ZXJzaW9uXGNvbmZpZyIpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAg
ICBjb25maWdfZmlsZV9wYXRoID0gc2VsZi5fZnMuam9pbihzZWxmLl9mcy5leHBhbmR1c2VyKCJ+
IiksICIuc3VidmVyc2lvbi9jb25maWciKQotICAgICAgICByZXR1cm4gY29uZmlnX2ZpbGVfcGF0
aApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Rvd25s
b2FkLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Rvd25sb2FkLnB5
CmluZGV4IDRmNmI3MzcuLjYwYzg5MjAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdG9vbC9jb21tYW5kcy9kb3dubG9hZC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvY29tbWFuZHMvZG93bmxvYWQucHkKQEAgLTkwLDYgKzkwLDcgQEAgY2xhc3MgTGFuZChB
YnN0cmFjdFNlcXVlbmNlZENvbW1hbmQpOgogICAgIGFyZ3VtZW50X25hbWVzID0gIltCVUdJRF0i
CiAgICAgc2hvd19pbl9tYWluX2hlbHAgPSBUcnVlCiAgICAgc3RlcHMgPSBbCisgICAgICAgIHN0
ZXBzLkFkZFN2bk1pbWV0eXBlRm9yUG5nLAogICAgICAgICBzdGVwcy5VcGRhdGVDaGFuZ2VMb2dz
V2l0aFJldmlld2VyLAogICAgICAgICBzdGVwcy5WYWxpZGF0ZVJldmlld2VyLAogICAgICAgICBz
dGVwcy5WYWxpZGF0ZUNoYW5nZUxvZ3MsICMgV2UgZG8gdGhpcyBhZnRlciBVcGRhdGVDaGFuZ2VM
b2dzV2l0aFJldmlld2VyIHRvIGF2b2lkIG5vdCBoYXZpbmcgdG8gY2FjaGUgdGhlIGRpZmYgdHdp
Y2UuCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvX19pbml0
X18ucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvX19pbml0X18ucHkKaW5k
ZXggYWNhOTcwNi4uNTY0MjllOCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90
b29sL3N0ZXBzL19faW5pdF9fLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9z
dGVwcy9fX2luaXRfXy5weQpAQCAtMjcsNiArMjcsNyBAQAogIyBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCiAjIEZJ
WE1FOiBJcyB0aGlzIHRoZSByaWdodCB3YXkgdG8gZG8gdGhpcz8KK2Zyb20gd2Via2l0cHkudG9v
bC5zdGVwcy5hZGRzdm5taW1ldHlwZWZvcnBuZyBpbXBvcnQgQWRkU3ZuTWltZXR5cGVGb3JQbmcK
IGZyb20gd2Via2l0cHkudG9vbC5zdGVwcy5hcHBseXBhdGNoIGltcG9ydCBBcHBseVBhdGNoCiBm
cm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMuYXBwbHlwYXRjaHdpdGhsb2NhbGNvbW1pdCBpbXBvcnQg
QXBwbHlQYXRjaFdpdGhMb2NhbENvbW1pdAogZnJvbSB3ZWJraXRweS50b29sLnN0ZXBzLmFwcGx5
d2F0Y2hsaXN0IGltcG9ydCBBcHBseVdhdGNoTGlzdApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS90b29sL3N0ZXBzL2FkZHN2bm1pbWV0eXBlZm9ycG5nLnB5IGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2FkZHN2bm1pbWV0eXBlZm9ycG5nLnB5Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRmZWI0ZTcKLS0tIC9kZXYvbnVsbAorKysgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvYWRkc3ZubWltZXR5cGVmb3JwbmcucHkK
QEAgLTAsMCArMSw3NyBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTIgQmFsYXpzIEFua2VzIChiYW5r
QGluZi51LXN6ZWdlZC5odSkgVW5pdmVyc2l0eSBvZiBTemVnZWQKKyMKKyMgUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisj
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVU
T1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorIyBPV05FUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisjIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2Zyb20gd2Via2l0cHkudG9v
bC5zdGVwcy5hYnN0cmFjdHN0ZXAgaW1wb3J0IEFic3RyYWN0U3RlcAorZnJvbSB3ZWJraXRweS5j
b21tb24gaW1wb3J0IGNoZWNrc3ZuY29uZmlnZmlsZQorZnJvbSB3ZWJraXRweS5jb21tb24uc3lz
dGVtLmRlcHJlY2F0ZWRfbG9nZ2luZyBpbXBvcnQgbG9nCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5j
aGVja291dC5zY20uZGV0ZWN0aW9uIGltcG9ydCBTQ01EZXRlY3RvcgorZnJvbSB3ZWJraXRweS5j
b21tb24uc3lzdGVtLnN5c3RlbWhvc3QgaW1wb3J0IFN5c3RlbUhvc3QKKworCitjbGFzcyBBZGRT
dm5NaW1ldHlwZUZvclBuZyhBYnN0cmFjdFN0ZXApOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCB0
b29sLCBvcHRpb25zLCBob3N0PU5vbmUsIHNjbT1Ob25lKToKKyAgICAgICAgc2VsZi5fdG9vbCA9
IHRvb2wKKyAgICAgICAgc2VsZi5fb3B0aW9ucyA9IG9wdGlvbnMKKyAgICAgICAgc2VsZi5faG9z
dCA9IGhvc3Qgb3IgU3lzdGVtSG9zdCgpCisgICAgICAgIHNlbGYuX2ZzID0gc2VsZi5faG9zdC5m
aWxlc3lzdGVtCisgICAgICAgIHNlbGYuX2RldGVjdG9yID0gc2NtIG9yIFNDTURldGVjdG9yKHNl
bGYuX2ZzLCBzZWxmLl9ob3N0LmV4ZWN1dGl2ZSkuZGV0ZWN0X3NjbV9zeXN0ZW0oc2VsZi5fZnMu
Z2V0Y3dkKCkpCisKKyAgICBkZWYgcnVuKHNlbGYsIHN0YXRlKToKKyAgICAgICAgcG5nX2ZpbGVz
ID0gc2VsZi5fY2hlY2tfcG5ncyhzZWxmLl9jaGFuZ2VkX2ZpbGVzKHN0YXRlKSkKKworICAgICAg
ICBpZiBsZW4ocG5nX2ZpbGVzKSA+IDA6CisgICAgICAgICAgICBkZXRlY3Rpb24gPSBzZWxmLl9k
ZXRlY3Rvci5kaXNwbGF5X25hbWUoKQorCisgICAgICAgICAgICBpZiBkZXRlY3Rpb24gPT0gImdp
dCI6CisgICAgICAgICAgICAgICAgKGZpbGVfcmVhZCwgYXV0b3Byb3AsIHBuZykgPSBjaGVja3N2
bmNvbmZpZ2ZpbGUuY2hlY2soc2VsZiwgc2VsZi5faG9zdCwgc2VsZi5fZnMpCisgICAgICAgICAg
ICAgICAgY29uZmlnX2ZpbGVfcGF0aCA9IGNoZWNrc3ZuY29uZmlnZmlsZS5fY29uZmlnX2ZpbGVf
cGF0aChzZWxmLCBzZWxmLl9ob3N0LCBzZWxmLl9mcykKKworICAgICAgICAgICAgICAgIGlmIGZp
bGVfcmVhZDoKKyAgICAgICAgICAgICAgICAgICAgbG9nKCJUaGVyZSBpcyBubyBTVk4gY29uZmln
IGZpbGUuIFRoZSBzdm46bWltZS10eXBlIG9mIHBuZ3Mgd29uJ3Qgc2V0LiIpCisgICAgICAgICAg
ICAgICAgICAgIGlmIG5vdCBzZWxmLl90b29sLnVzZXIuY29uZmlybSgiQXJlIHlvdSBzdXJlIHlv
dSB3YW50IHRvIGNvbnRpbnVlPyIsIGRlZmF1bHQ9Im4iKToKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHNlbGYuX2V4aXQoMSkKKyAgICAgICAgICAgICAgICBlbGlmIGF1dG9wcm9wIGFuZCBwbmc6
CisgICAgICAgICAgICAgICAgICAgIGxvZyhjaGVja3N2bmNvbmZpZ2ZpbGUuZXJyb3JzdHJfYXV0
b3Byb3AoY29uZmlnX2ZpbGVfcGF0aCkgKyBjaGVja3N2bmNvbmZpZ2ZpbGUuZXJyb3JzdHJfcG5n
KGNvbmZpZ19maWxlX3BhdGgpKQorICAgICAgICAgICAgICAgICAgICBpZiBub3Qgc2VsZi5fdG9v
bC51c2VyLmNvbmZpcm0oIkRvIHlvdSB3YW50IHRvIGNvbnRpbnVlPyIsIGRlZmF1bHQ9Im4iKToK
KyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2V4aXQoMSkKKyAgICAgICAgICAgICAgICBl
bGlmIGF1dG9wcm9wOgorICAgICAgICAgICAgICAgICAgICBsb2coY2hlY2tzdm5jb25maWdmaWxl
LmVycm9yc3RyX2F1dG9wcm9wKGNvbmZpZ19maWxlX3BhdGgpKQorICAgICAgICAgICAgICAgICAg
ICBpZiBub3Qgc2VsZi5fdG9vbC51c2VyLmNvbmZpcm0oIkRvIHlvdSB3YW50IHRvIGNvbnRpbnVl
PyIsIGRlZmF1bHQ9Im4iKToKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2V4aXQoMSkK
KyAgICAgICAgICAgICAgICBlbGlmIHBuZzoKKyAgICAgICAgICAgICAgICAgICAgbG9nKGNoZWNr
c3ZuY29uZmlnZmlsZS5lcnJvcnN0cl9wbmcoY29uZmlnX2ZpbGVfcGF0aCkpCisgICAgICAgICAg
ICAgICAgICAgIGlmIG5vdCBzZWxmLl90b29sLnVzZXIuY29uZmlybSgiRG8geW91IHdhbnQgdG8g
Y29udGludWU/IiwgZGVmYXVsdD0ibiIpOgorICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5f
ZXhpdCgxKQorCisgICAgICAgICAgICBlbGlmIGRldGVjdGlvbiA9PSAic3ZuIjoKKyAgICAgICAg
ICAgICAgICBmb3IgZmlsZW5hbWUgaW4gcG5nX2ZpbGVzOgorICAgICAgICAgICAgICAgICAgICBp
ZiBmaWxlbmFtZS5lbmRzd2l0aCgnLnBuZycpIGFuZCBzZWxmLl9kZXRlY3Rvci5leGlzdHMoZmls
ZW5hbWUpIGFuZCBzZWxmLl9kZXRlY3Rvci5wcm9wZ2V0KCdzdm46bWltZS10eXBlJywgZmlsZW5h
bWUpICE9ICdpbWFnZS9wbmcnOgorICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQgIkFkZGlu
ZyBpbWFnZS9wbmcgbWltZS10eXBlIHRvICVzIiAlIGZpbGVuYW1lCisgICAgICAgICAgICAgICAg
ICAgICAgICBzZWxmLl9kZXRlY3Rvci5wcm9wc2V0KCdzdm46bWltZS10eXBlJywgJ2ltYWdlL3Bu
ZycsIGZpbGVuYW1lKQorCisgICAgZGVmIF9jaGVja19wbmdzKHNlbGYsIGNoYW5nZWRfZmlsZXMp
OgorICAgICAgICBwbmdfZmlsZXMgPSBbXQorICAgICAgICBmb3IgZmlsZW5hbWUgaW4gY2hhbmdl
ZF9maWxlczoKKyAgICAgICAgICAgIGlmIGZpbGVuYW1lLmVuZHN3aXRoKCcucG5nJyk6CisgICAg
ICAgICAgICAgICAgcG5nX2ZpbGVzLmFwcGVuZChmaWxlbmFtZSkKKyAgICAgICAgcmV0dXJuIHBu
Z19maWxlcwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2Fk
ZHN2bm1pbWV0eXBlZm9ycG5nX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90
b29sL3N0ZXBzL2FkZHN2bm1pbWV0eXBlZm9ycG5nX3VuaXR0ZXN0LnB5Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMwZWQwNzQKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvYWRkc3ZubWltZXR5cGVmb3JwbmdfdW5pdHRlc3Qu
cHkKQEAgLTAsMCArMSw2MCBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTIgQmFsYXpzIEFua2VzIChi
YW5rQGluZi51LXN6ZWdlZC5odSkgVW5pdmVyc2l0eSBvZiBTemVnZWQKKyMKKyMgUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4g
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJ
QlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorIyBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisjIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2ltcG9ydCB1bml0dGVz
dAorCitmcm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMuYWRkc3ZubWltZXR5cGVmb3JwbmcgaW1wb3J0
IEFkZFN2bk1pbWV0eXBlRm9yUG5nCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZmlsZXN5
c3RlbV9tb2NrIGltcG9ydCBNb2NrRmlsZVN5c3RlbQorZnJvbSB3ZWJraXRweS50b29sLm1vY2t0
b29sIGltcG9ydCBNb2NrT3B0aW9ucywgTW9ja1Rvb2wKK2Zyb20gd2Via2l0cHkuY29tbW9uLnN5
c3RlbS5zeXN0ZW1ob3N0X21vY2sgaW1wb3J0IE1vY2tTeXN0ZW1Ib3N0Citmcm9tIHdlYmtpdHB5
LmNvbW1vbi5zeXN0ZW0ub3V0cHV0Y2FwdHVyZSBpbXBvcnQgT3V0cHV0Q2FwdHVyZQorCisKK2Ns
YXNzIE1vY2tTQ01EZXRlY3RvcihvYmplY3QpOgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHNj
bSk6CisgICAgICAgIHNlbGYuX3NjbSA9IHNjbQorCisgICAgZGVmIGRpc3BsYXlfbmFtZShzZWxm
KToKKyAgICAgICAgcmV0dXJuIHNlbGYuX3NjbQorCisKK2NsYXNzIEFkZFN2bk1pbWV0eXBlRm9y
UG5nVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgZGVmIHRlc3RfcnVuKHNlbGYpOgorICAg
ICAgICBjYXB0dXJlID0gT3V0cHV0Q2FwdHVyZSgpCisgICAgICAgIG9wdGlvbnMgPSBNb2NrT3B0
aW9ucygpCisgICAgICAgIG9wdGlvbnMuZ2l0X2NvbW1pdCA9ICdNT0NLIGdpdCBjb21taXQnCisK
KyAgICAgICAgZmlsZXMgPSB7Jy9Vc2Vycy9tb2NrLy5zdWJ2ZXJzaW9uL2NvbmZpZyc6ICdlbmFi
bGUtYXV0by1wcm9wcyA9IHllc1xuKi5wbmcgPSBzdm46bWltZS10eXBlPWltYWdlL3BuZyd9Cisg
ICAgICAgIGZzID0gTW9ja0ZpbGVTeXN0ZW0oZmlsZXMpCisgICAgICAgIHNjbSA9IE1vY2tTQ01E
ZXRlY3RvcignZ2l0JykKKworICAgICAgICBzdGVwID0gQWRkU3ZuTWltZXR5cGVGb3JQbmcoTW9j
a1Rvb2woKSwgb3B0aW9ucywgTW9ja1N5c3RlbUhvc3Qob3NfbmFtZT0nbGludXgnLCBmaWxlc3lz
dGVtPWZzKSwgc2NtKQorICAgICAgICBzdGF0ZSA9IHsKKyAgICAgICAgICAgICJjaGFuZ2VkX2Zp
bGVzIjogWyJ0ZXN0LnBuZyJdLAorICAgICAgICB9CisgICAgICAgIHRyeToKKyAgICAgICAgICAg
IGNhcHR1cmUuYXNzZXJ0X291dHB1dHMoc2VsZiwgc3RlcC5ydW4sIFtzdGF0ZV0pCisgICAgICAg
IGV4Y2VwdCBTeXN0ZW1FeGl0LCBlOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHModHlw
ZShlKSwgdHlwZShTeXN0ZW1FeGl0KCkpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMo
ZS5jb2RlLCAxKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147528</attachid>
            <date>2012-06-14 02:23:33 -0700</date>
            <delta_ts>2012-06-15 06:50:29 -0700</delta_ts>
            <desc>proposed fix</desc>
            <filename>2012-06-14_75825.patch</filename>
            <type>text/plain</type>
            <size>16969</size>
            <attacher name="Balazs Ankes">bank</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBkNWEx
MDJlLi5mMWYyNTQ2IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTItMDYtMTQgIEJhbGF6cyBBbmtlcyAgPGJhbmtA
aW5mLnUtc3plZ2VkLmh1PgorCisgICAgICAgIHdlYmtpdC1wYXRjaCBsYW5kIHNob3VsZCBhdXRv
bWF0aWNhbGx5IGFkZCBzdm46bWltZS10eXBlIGZvciAucG5nIGZpbGVzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NTgyNQorICAgICAgICBJIHJlZmFj
dG9yZWQgdGhlIHBuZy5weSB0byBhdm9pZCBjb2RlIGR1cGxpY2F0aW9uLgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9j
b21tb24vY2hlY2tzdm5jb25maWdmaWxlLnB5OiBBZGRlZC4KKyAgICAgICAgKGNoZWNrKToKKyAg
ICAgICAgKF9jb25maWdfZmlsZV9wYXRoKToKKyAgICAgICAgKGVycm9yc3RyX2F1dG9wcm9wKToK
KyAgICAgICAgKGVycm9yc3RyX3BuZyk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9zdHls
ZS9jaGVja2Vycy9wbmcucHk6CisgICAgICAgIChQTkdDaGVja2VyLmNoZWNrKToKKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZG93bmxvYWQucHk6CisgICAgICAgIChM
YW5kKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvX19pbml0X18ucHk6
CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2FkZHN2bm1pbWV0eXBlZm9y
cG5nLnB5OiBBZGRlZC4KKyAgICAgICAgKEFkZFN2bk1pbWV0eXBlRm9yUG5nKToKKyAgICAgICAg
KEFkZFN2bk1pbWV0eXBlRm9yUG5nLl9faW5pdF9fKToKKyAgICAgICAgKEFkZFN2bk1pbWV0eXBl
Rm9yUG5nLnJ1bik6CisgICAgICAgIChBZGRTdm5NaW1ldHlwZUZvclBuZy5fY2hlY2tfcG5ncyk6
CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2FkZHN2bm1pbWV0eXBlZm9y
cG5nX3VuaXR0ZXN0LnB5OiBBZGRlZC4KKyAgICAgICAgKE1vY2tTQ01EZXRlY3Rvcik6CisgICAg
ICAgIChNb2NrU0NNRGV0ZWN0b3IuX19pbml0X18pOgorICAgICAgICAoTW9ja1NDTURldGVjdG9y
LmRpc3BsYXlfbmFtZSk6CisgICAgICAgIChBZGRTdm5NaW1ldHlwZUZvclBuZ1Rlc3QpOgorICAg
ICAgICAoQWRkU3ZuTWltZXR5cGVGb3JQbmdUZXN0LnRlc3RfcnVuKToKKwogMjAxMi0wNi0xMyAg
UWkgWmhhbmcgIDxxaS4yLnpoYW5nQG5va2lhLmNvbT4KIAogICAgICAgICBbUXRdIEFkZCBjb25m
aWd1cmUgdGVzdCBmb3IgemxpYiBhbmQgc2V0IFdURl9VU0VfWkxJQiBpZiBmb3VuZApkaWZmIC0t
Z2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tzdm5jb25maWdmaWxlLnB5
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tzdm5jb25maWdmaWxlLnB5Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZkMzk3ZjkKLS0tIC9kZXYvbnVsbAor
KysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja3N2bmNvbmZpZ2ZpbGUucHkK
QEAgLTAsMCArMSw2NiBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTIgQmFsYXpzIEFua2VzIChiYW5r
QGluZi51LXN6ZWdlZC5odSkgVW5pdmVyc2l0eSBvZiBTemVnZWQKKyMKKyMgUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisj
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVU
T1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorIyBPV05FUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisjIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyMgVGhpcyBmaWxlIGlzIHVz
ZWQgYnk6CisjIHdlYmtpdHB5L3Rvb2wvc3RlcHMvYWRkc3ZubWltZXR5cGVmb3JwbmcucHkKKyMg
d2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvcG5nLnB5CisKK2ltcG9ydCBvcworaW1wb3J0IHJlCisK
KworZGVmIGNoZWNrKHNlbGYsIGhvc3QsIGZzKToKKyAgICAiIiIKKyAgICBjaGVjayB0aGUgc3Zu
IGNvbmZpZyBmaWxlCisgICAgcmV0dXJuIHdpdGggdGhyZWUgbG9naWNhbCB2YWx1ZToKKyAgICB3
YXMgdGhlIGZpbGUgcmVhZCBzdWNjZXNzZnVsLCBpcyB0aGVyZSBlbmFibGUgdGhlIGF1dG8tcHJv
cHMsIGlzIHRoZXJlIGVuYWJsZSB0aGUgc3ZuOm1pbWUtdHlwZSBmb3IgcG5nCisgICAgIiIiCisK
KyAgICBjb25maWdfZmlsZV9wYXRoID0gX2NvbmZpZ19maWxlX3BhdGgoc2VsZiwgaG9zdCwgZnMp
CisKKyAgICB0cnk6CisgICAgICAgIGNvbmZpZ19maWxlID0gZnMucmVhZF90ZXh0X2ZpbGUoY29u
ZmlnX2ZpbGVfcGF0aCkKKyAgICBleGNlcHQgSU9FcnJvcjoKKyAgICAgICAgcmV0dXJuIChUcnVl
LCBUcnVlLCBUcnVlKQorCisgICAgZXJyb3Jjb2RlX2F1dG9wcm9wID0gbm90IHJlLnNlYXJjaCgi
XlxzKmVuYWJsZS1hdXRvLXByb3BzXHMqPVxzKnllcyIsIGNvbmZpZ19maWxlLCByZS5NVUxUSUxJ
TkUpCisgICAgZXJyb3Jjb2RlX3BuZyA9IG5vdCByZS5zZWFyY2goIl5ccypcKlwucG5nXHMqPVxz
KnN2bjptaW1lLXR5cGU9aW1hZ2UvcG5nIiwgY29uZmlnX2ZpbGUsIHJlLk1VTFRJTElORSkKKwor
ICAgIHJldHVybiAoRmFsc2UsIGVycm9yY29kZV9hdXRvcHJvcCwgZXJyb3Jjb2RlX3BuZykKKwor
CitkZWYgX2NvbmZpZ19maWxlX3BhdGgoc2VsZiwgaG9zdCwgZnMpOgorICAgIGNvbmZpZ19maWxl
ID0gIiIKKyAgICBpZiBob3N0LnBsYXRmb3JtLmlzX3dpbigpOgorICAgICAgICBjb25maWdfZmls
ZV9wYXRoID0gZnMuam9pbihvcy5lbnZpcm9uWydBUFBEQVRBJ10sICJTdWJ2ZXJzaW9uXGNvbmZp
ZyIpCisgICAgZWxzZToKKyAgICAgICAgY29uZmlnX2ZpbGVfcGF0aCA9IGZzLmpvaW4oZnMuZXhw
YW5kdXNlcigifiIpLCAiLnN1YnZlcnNpb24vY29uZmlnIikKKyAgICByZXR1cm4gY29uZmlnX2Zp
bGVfcGF0aAorCisKK2RlZiBlcnJvcnN0cl9hdXRvcHJvcChjb25maWdfZmlsZV9wYXRoKToKKyAg
ICByZXR1cm4gIkhhdmUgdG8gZW5hYmxlIGF1dG8gcHJvcHMgaW4gdGhlIHN1YnZlcnNpb24gY29u
ZmlnIGZpbGUgKCIgKyBjb25maWdfZmlsZV9wYXRoICsgIiBcImVuYWJsZS1hdXRvLXByb3BzID0g
eWVzXCIpLiAiCisKKworZGVmIGVycm9yc3RyX3BuZyhjb25maWdfZmlsZV9wYXRoKToKKyAgICBy
ZXR1cm4gIkhhdmUgdG8gc2V0IHRoZSBzdm46bWltZS10eXBlIGluIHRoZSBzdWJ2ZXJzaW9uIGNv
bmZpZyBmaWxlICgiICsgY29uZmlnX2ZpbGVfcGF0aCArICIgXCIqLnBuZyA9IHN2bjptaW1lLXR5
cGU9aW1hZ2UvcG5nXCIpLiIKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5
bGUvY2hlY2tlcnMvcG5nLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vy
cy9wbmcucHkKaW5kZXggMzBiN2ExNC4uMGJlYmMwZiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9wbmcucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9zdHlsZS9jaGVja2Vycy9wbmcucHkKQEAgLTI3LDYgKzI3LDcgQEAKIGltcG9ydCBvcwog
aW1wb3J0IHJlCiAKK2Zyb20gd2Via2l0cHkuY29tbW9uIGltcG9ydCBjaGVja3N2bmNvbmZpZ2Zp
bGUKIGZyb20gd2Via2l0cHkuY29tbW9uIGltcG9ydCByZWFkX2NoZWNrc3VtX2Zyb21fcG5nCiBm
cm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uc3lzdGVtaG9zdCBpbXBvcnQgU3lzdGVtSG9zdAog
ZnJvbSB3ZWJraXRweS5jb21tb24uY2hlY2tvdXQuc2NtLmRldGVjdGlvbiBpbXBvcnQgU0NNRGV0
ZWN0b3IKQEAgLTU0LDM4ICs1NSwxNyBAQCBjbGFzcyBQTkdDaGVja2VyKG9iamVjdCk6CiAgICAg
ICAgICAgICAgICAgICAgIHNlbGYuX2hhbmRsZV9zdHlsZV9lcnJvcigwLCAnaW1hZ2UvcG5nJywg
NSwgIkltYWdlIGxhY2tzIGEgY2hlY2tzdW0uIEdlbmVyYXRlIHBuZ3MgdXNpbmcgcnVuLXdlYmtp
dC10ZXN0cyB0byBlbnN1cmUgdGhleSBoYXZlIGEgY2hlY2tzdW0uIikKIAogICAgICAgICBpZiBk
ZXRlY3Rpb24gPT0gImdpdCI6Ci0gICAgICAgICAgICBjb25maWdfZmlsZV9wYXRoID0gc2VsZi5f
Y29uZmlnX2ZpbGVfcGF0aCgpCi0gICAgICAgICAgICB0aGVyZV9pc19lbmFibGVfbGluZSA9IEZh
bHNlCi0gICAgICAgICAgICB0aGVyZV9pc19wbmdfbGluZSA9IEZhbHNlCi0KLSAgICAgICAgICAg
IHRyeToKLSAgICAgICAgICAgICAgICBjb25maWdfZmlsZSA9IHNlbGYuX2ZzLnJlYWRfdGV4dF9m
aWxlKGNvbmZpZ19maWxlX3BhdGgpCi0gICAgICAgICAgICBleGNlcHQgSU9FcnJvcjoKLSAgICAg
ICAgICAgICAgICBlcnJvcnN0ciA9ICJUaGVyZSBpcyBubyAiICsgY29uZmlnX2ZpbGVfcGF0aAot
ICAgICAgICAgICAgICAgIHNlbGYuX2hhbmRsZV9zdHlsZV9lcnJvcigwLCAnaW1hZ2UvcG5nJywg
NSwgZXJyb3JzdHIpCi0gICAgICAgICAgICAgICAgcmV0dXJuCi0KLSAgICAgICAgICAgIGVycm9y
c3RyX2F1dG9wcm9wID0gIkhhdmUgdG8gZW5hYmxlIGF1dG8gcHJvcHMgaW4gdGhlIHN1YnZlcnNp
b24gY29uZmlnIGZpbGUgKCIgKyBjb25maWdfZmlsZV9wYXRoICsgIiBcImVuYWJsZS1hdXRvLXBy
b3BzID0geWVzXCIpLiAiCi0gICAgICAgICAgICBlcnJvcnN0cl9wbmcgPSAiSGF2ZSB0byBzZXQg
dGhlIHN2bjptaW1lLXR5cGUgaW4gdGhlIHN1YnZlcnNpb24gY29uZmlnIGZpbGUgKCIgKyBjb25m
aWdfZmlsZV9wYXRoICsgIiBcIioucG5nID0gc3ZuOm1pbWUtdHlwZT1pbWFnZS9wbmdcIikuIgot
Ci0gICAgICAgICAgICBmb3IgbGluZSBpbiBjb25maWdfZmlsZS5zcGxpdCgnXG4nKToKLSAgICAg
ICAgICAgICAgICBpZiBub3QgdGhlcmVfaXNfZW5hYmxlX2xpbmU6Ci0gICAgICAgICAgICAgICAg
ICAgIG1hdGNoID0gcmUuc2VhcmNoKCJeXHMqZW5hYmxlLWF1dG8tcHJvcHNccyo9XHMqeWVzIiwg
bGluZSkKLSAgICAgICAgICAgICAgICAgICAgaWYgbWF0Y2g6Ci0gICAgICAgICAgICAgICAgICAg
ICAgICB0aGVyZV9pc19lbmFibGVfbGluZSA9IFRydWUKLSAgICAgICAgICAgICAgICAgICAgICAg
IGVycm9yc3RyX2F1dG9wcm9wID0gIiIKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVl
Ci0KLSAgICAgICAgICAgICAgICBpZiBub3QgdGhlcmVfaXNfcG5nX2xpbmU6Ci0gICAgICAgICAg
ICAgICAgICAgIG1hdGNoID0gcmUuc2VhcmNoKCJeXHMqXCpcLnBuZ1xzKj1ccypzdm46bWltZS10
eXBlPWltYWdlL3BuZyIsIGxpbmUpCi0gICAgICAgICAgICAgICAgICAgIGlmIG1hdGNoOgotICAg
ICAgICAgICAgICAgICAgICAgICAgdGhlcmVfaXNfcG5nX2xpbmUgPSBUcnVlCi0gICAgICAgICAg
ICAgICAgICAgICAgICBlcnJvcnN0cl9wbmcgPSAiIgotICAgICAgICAgICAgICAgICAgICAgICAg
Y29udGludWUKLQotICAgICAgICAgICAgZXJyb3JzdHIgPSBlcnJvcnN0cl9hdXRvcHJvcCArIGVy
cm9yc3RyX3BuZwotICAgICAgICAgICAgaWYgZXJyb3JzdHI6Ci0gICAgICAgICAgICAgICAgc2Vs
Zi5faGFuZGxlX3N0eWxlX2Vycm9yKDAsICdpbWFnZS9wbmcnLCA1LCBlcnJvcnN0cikKKyAgICAg
ICAgICAgIChmaWxlX3JlYWQsIGF1dG9wcm9wLCBwbmcpID0gY2hlY2tzdm5jb25maWdmaWxlLmNo
ZWNrKHNlbGYsIHNlbGYuX2hvc3QsIHNlbGYuX2ZzKQorICAgICAgICAgICAgY29uZmlnX2ZpbGVf
cGF0aCA9IGNoZWNrc3ZuY29uZmlnZmlsZS5fY29uZmlnX2ZpbGVfcGF0aChzZWxmLCBzZWxmLl9o
b3N0LCBzZWxmLl9mcykKKworICAgICAgICAgICAgaWYgZmlsZV9yZWFkOgorICAgICAgICAgICAg
ICAgIHNlbGYuX2hhbmRsZV9zdHlsZV9lcnJvcigwLCAnaW1hZ2UvcG5nJywgNSwgIlRoZXJlIGlz
IG5vIFNWTiBjb25maWcgZmlsZS4gKCIgKyBjb25maWdfZmlsZV9wYXRoICsgIikiKQorICAgICAg
ICAgICAgZWxpZiBhdXRvcHJvcCBhbmQgcG5nOgorICAgICAgICAgICAgICAgIHNlbGYuX2hhbmRs
ZV9zdHlsZV9lcnJvcigwLCAnaW1hZ2UvcG5nJywgNSwgY2hlY2tzdm5jb25maWdmaWxlLmVycm9y
c3RyX2F1dG9wcm9wKGNvbmZpZ19maWxlX3BhdGgpICsgY2hlY2tzdm5jb25maWdmaWxlLmVycm9y
c3RyX3BuZyhjb25maWdfZmlsZV9wYXRoKSkKKyAgICAgICAgICAgIGVsaWYgYXV0b3Byb3A6Cisg
ICAgICAgICAgICAgICAgc2VsZi5faGFuZGxlX3N0eWxlX2Vycm9yKDAsICdpbWFnZS9wbmcnLCA1
LCBjaGVja3N2bmNvbmZpZ2ZpbGUuZXJyb3JzdHJfYXV0b3Byb3AoY29uZmlnX2ZpbGVfcGF0aCkp
CisgICAgICAgICAgICBlbGlmIHBuZzoKKyAgICAgICAgICAgICAgICBzZWxmLl9oYW5kbGVfc3R5
bGVfZXJyb3IoMCwgJ2ltYWdlL3BuZycsIDUsIGNoZWNrc3ZuY29uZmlnZmlsZS5lcnJvcnN0cl9w
bmcoY29uZmlnX2ZpbGVfcGF0aCkpCiAKICAgICAgICAgZWxpZiBkZXRlY3Rpb24gPT0gInN2biI6
CiAgICAgICAgICAgICBwcm9wX2dldCA9IHNlbGYuX2RldGVjdG9yLnByb3BnZXQoInN2bjptaW1l
LXR5cGUiLCBzZWxmLl9maWxlX3BhdGgpCkBAIC05MywxMCArNzMsMyBAQCBjbGFzcyBQTkdDaGVj
a2VyKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgZXJyb3JzdHIgPSAiU2V0IHRoZSBzdm46bWlt
ZS10eXBlIHByb3BlcnR5IChzdm4gcHJvcHNldCBzdm46bWltZS10eXBlIGltYWdlL3BuZyAiICsg
c2VsZi5fZmlsZV9wYXRoICsgIikuIgogICAgICAgICAgICAgICAgIHNlbGYuX2hhbmRsZV9zdHls
ZV9lcnJvcigwLCAnaW1hZ2UvcG5nJywgNSwgZXJyb3JzdHIpCiAKLSAgICBkZWYgX2NvbmZpZ19m
aWxlX3BhdGgoc2VsZik6Ci0gICAgICAgIGNvbmZpZ19maWxlID0gIiIKLSAgICAgICAgaWYgc2Vs
Zi5faG9zdC5wbGF0Zm9ybS5pc193aW4oKToKLSAgICAgICAgICAgIGNvbmZpZ19maWxlX3BhdGgg
PSBzZWxmLl9mcy5qb2luKG9zLmVudmlyb25bJ0FQUERBVEEnXSwgIlN1YnZlcnNpb25cY29uZmln
IikKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGNvbmZpZ19maWxlX3BhdGggPSBzZWxmLl9m
cy5qb2luKHNlbGYuX2ZzLmV4cGFuZHVzZXIoIn4iKSwgIi5zdWJ2ZXJzaW9uL2NvbmZpZyIpCi0g
ICAgICAgIHJldHVybiBjb25maWdfZmlsZV9wYXRoCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZG93bmxvYWQucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvY29tbWFuZHMvZG93bmxvYWQucHkKaW5kZXggNGY2YjczNy4uNjBjODkyMCAxMDA2
NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Rvd25sb2FkLnB5
CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9kb3dubG9hZC5weQpA
QCAtOTAsNiArOTAsNyBAQCBjbGFzcyBMYW5kKEFic3RyYWN0U2VxdWVuY2VkQ29tbWFuZCk6CiAg
ICAgYXJndW1lbnRfbmFtZXMgPSAiW0JVR0lEXSIKICAgICBzaG93X2luX21haW5faGVscCA9IFRy
dWUKICAgICBzdGVwcyA9IFsKKyAgICAgICAgc3RlcHMuQWRkU3ZuTWltZXR5cGVGb3JQbmcsCiAg
ICAgICAgIHN0ZXBzLlVwZGF0ZUNoYW5nZUxvZ3NXaXRoUmV2aWV3ZXIsCiAgICAgICAgIHN0ZXBz
LlZhbGlkYXRlUmV2aWV3ZXIsCiAgICAgICAgIHN0ZXBzLlZhbGlkYXRlQ2hhbmdlTG9ncywgIyBX
ZSBkbyB0aGlzIGFmdGVyIFVwZGF0ZUNoYW5nZUxvZ3NXaXRoUmV2aWV3ZXIgdG8gYXZvaWQgbm90
IGhhdmluZyB0byBjYWNoZSB0aGUgZGlmZiB0d2ljZS4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9zdGVwcy9fX2luaXRfXy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdG9vbC9zdGVwcy9fX2luaXRfXy5weQppbmRleCBhY2E5NzA2Li41NjQyOWU4IDEwMDY0NAot
LS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvX19pbml0X18ucHkKKysrIGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL19faW5pdF9fLnB5CkBAIC0yNyw2ICsy
Nyw3IEBACiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKICMgRklYTUU6IElzIHRoaXMgdGhlIHJpZ2h0IHdheSB0
byBkbyB0aGlzPworZnJvbSB3ZWJraXRweS50b29sLnN0ZXBzLmFkZHN2bm1pbWV0eXBlZm9ycG5n
IGltcG9ydCBBZGRTdm5NaW1ldHlwZUZvclBuZwogZnJvbSB3ZWJraXRweS50b29sLnN0ZXBzLmFw
cGx5cGF0Y2ggaW1wb3J0IEFwcGx5UGF0Y2gKIGZyb20gd2Via2l0cHkudG9vbC5zdGVwcy5hcHBs
eXBhdGNod2l0aGxvY2FsY29tbWl0IGltcG9ydCBBcHBseVBhdGNoV2l0aExvY2FsQ29tbWl0CiBm
cm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMuYXBwbHl3YXRjaGxpc3QgaW1wb3J0IEFwcGx5V2F0Y2hM
aXN0CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvYWRkc3Zu
bWltZXR5cGVmb3JwbmcucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvYWRk
c3ZubWltZXR5cGVmb3JwbmcucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
ZGZlYjRlNwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9z
dGVwcy9hZGRzdm5taW1ldHlwZWZvcnBuZy5weQpAQCAtMCwwICsxLDc3IEBACisjIENvcHlyaWdo
dCAoQykgMjAxMiBCYWxhenMgQW5rZXMgKGJhbmtAaW5mLnUtc3plZ2VkLmh1KSBVbml2ZXJzaXR5
IG9mIFN6ZWdlZAorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEu
ICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMg
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SCisjIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCisjIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAorIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKworZnJvbSB3ZWJraXRweS50b29sLnN0ZXBzLmFic3RyYWN0c3RlcCBpbXBvcnQg
QWJzdHJhY3RTdGVwCitmcm9tIHdlYmtpdHB5LmNvbW1vbiBpbXBvcnQgY2hlY2tzdm5jb25maWdm
aWxlCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZGVwcmVjYXRlZF9sb2dnaW5nIGltcG9y
dCBsb2cKK2Zyb20gd2Via2l0cHkuY29tbW9uLmNoZWNrb3V0LnNjbS5kZXRlY3Rpb24gaW1wb3J0
IFNDTURldGVjdG9yCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uc3lzdGVtaG9zdCBpbXBv
cnQgU3lzdGVtSG9zdAorCisKK2NsYXNzIEFkZFN2bk1pbWV0eXBlRm9yUG5nKEFic3RyYWN0U3Rl
cCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHRvb2wsIG9wdGlvbnMsIGhvc3Q9Tm9uZSwgc2Nt
PU5vbmUpOgorICAgICAgICBzZWxmLl90b29sID0gdG9vbAorICAgICAgICBzZWxmLl9vcHRpb25z
ID0gb3B0aW9ucworICAgICAgICBzZWxmLl9ob3N0ID0gaG9zdCBvciBTeXN0ZW1Ib3N0KCkKKyAg
ICAgICAgc2VsZi5fZnMgPSBzZWxmLl9ob3N0LmZpbGVzeXN0ZW0KKyAgICAgICAgc2VsZi5fZGV0
ZWN0b3IgPSBzY20gb3IgU0NNRGV0ZWN0b3Ioc2VsZi5fZnMsIHNlbGYuX2hvc3QuZXhlY3V0aXZl
KS5kZXRlY3Rfc2NtX3N5c3RlbShzZWxmLl9mcy5nZXRjd2QoKSkKKworICAgIGRlZiBydW4oc2Vs
Ziwgc3RhdGUpOgorICAgICAgICBwbmdfZmlsZXMgPSBzZWxmLl9jaGVja19wbmdzKHNlbGYuX2No
YW5nZWRfZmlsZXMoc3RhdGUpKQorCisgICAgICAgIGlmIGxlbihwbmdfZmlsZXMpID4gMDoKKyAg
ICAgICAgICAgIGRldGVjdGlvbiA9IHNlbGYuX2RldGVjdG9yLmRpc3BsYXlfbmFtZSgpCisKKyAg
ICAgICAgICAgIGlmIGRldGVjdGlvbiA9PSAiZ2l0IjoKKyAgICAgICAgICAgICAgICAoZmlsZV9y
ZWFkLCBhdXRvcHJvcCwgcG5nKSA9IGNoZWNrc3ZuY29uZmlnZmlsZS5jaGVjayhzZWxmLCBzZWxm
Ll9ob3N0LCBzZWxmLl9mcykKKyAgICAgICAgICAgICAgICBjb25maWdfZmlsZV9wYXRoID0gY2hl
Y2tzdm5jb25maWdmaWxlLl9jb25maWdfZmlsZV9wYXRoKHNlbGYsIHNlbGYuX2hvc3QsIHNlbGYu
X2ZzKQorCisgICAgICAgICAgICAgICAgaWYgZmlsZV9yZWFkOgorICAgICAgICAgICAgICAgICAg
ICBsb2coIlRoZXJlIGlzIG5vIFNWTiBjb25maWcgZmlsZS4gVGhlIHN2bjptaW1lLXR5cGUgb2Yg
cG5ncyB3b24ndCBzZXQuIikKKyAgICAgICAgICAgICAgICAgICAgaWYgbm90IHNlbGYuX3Rvb2wu
dXNlci5jb25maXJtKCJBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gY29udGludWU/IiwgZGVmYXVs
dD0ibiIpOgorICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fZXhpdCgxKQorICAgICAgICAg
ICAgICAgIGVsaWYgYXV0b3Byb3AgYW5kIHBuZzoKKyAgICAgICAgICAgICAgICAgICAgbG9nKGNo
ZWNrc3ZuY29uZmlnZmlsZS5lcnJvcnN0cl9hdXRvcHJvcChjb25maWdfZmlsZV9wYXRoKSArIGNo
ZWNrc3ZuY29uZmlnZmlsZS5lcnJvcnN0cl9wbmcoY29uZmlnX2ZpbGVfcGF0aCkpCisgICAgICAg
ICAgICAgICAgICAgIGlmIG5vdCBzZWxmLl90b29sLnVzZXIuY29uZmlybSgiRG8geW91IHdhbnQg
dG8gY29udGludWU/IiwgZGVmYXVsdD0ibiIpOgorICAgICAgICAgICAgICAgICAgICAgICAgc2Vs
Zi5fZXhpdCgxKQorICAgICAgICAgICAgICAgIGVsaWYgYXV0b3Byb3A6CisgICAgICAgICAgICAg
ICAgICAgIGxvZyhjaGVja3N2bmNvbmZpZ2ZpbGUuZXJyb3JzdHJfYXV0b3Byb3AoY29uZmlnX2Zp
bGVfcGF0aCkpCisgICAgICAgICAgICAgICAgICAgIGlmIG5vdCBzZWxmLl90b29sLnVzZXIuY29u
ZmlybSgiRG8geW91IHdhbnQgdG8gY29udGludWU/IiwgZGVmYXVsdD0ibiIpOgorICAgICAgICAg
ICAgICAgICAgICAgICAgc2VsZi5fZXhpdCgxKQorICAgICAgICAgICAgICAgIGVsaWYgcG5nOgor
ICAgICAgICAgICAgICAgICAgICBsb2coY2hlY2tzdm5jb25maWdmaWxlLmVycm9yc3RyX3BuZyhj
b25maWdfZmlsZV9wYXRoKSkKKyAgICAgICAgICAgICAgICAgICAgaWYgbm90IHNlbGYuX3Rvb2wu
dXNlci5jb25maXJtKCJEbyB5b3Ugd2FudCB0byBjb250aW51ZT8iLCBkZWZhdWx0PSJuIik6Cisg
ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9leGl0KDEpCisKKyAgICAgICAgICAgIGVsaWYg
ZGV0ZWN0aW9uID09ICJzdm4iOgorICAgICAgICAgICAgICAgIGZvciBmaWxlbmFtZSBpbiBwbmdf
ZmlsZXM6CisgICAgICAgICAgICAgICAgICAgIGlmIGZpbGVuYW1lLmVuZHN3aXRoKCcucG5nJykg
YW5kIHNlbGYuX2RldGVjdG9yLmV4aXN0cyhmaWxlbmFtZSkgYW5kIHNlbGYuX2RldGVjdG9yLnBy
b3BnZXQoJ3N2bjptaW1lLXR5cGUnLCBmaWxlbmFtZSkgIT0gJ2ltYWdlL3BuZyc6CisgICAgICAg
ICAgICAgICAgICAgICAgICBwcmludCAiQWRkaW5nIGltYWdlL3BuZyBtaW1lLXR5cGUgdG8gJXMi
ICUgZmlsZW5hbWUKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2RldGVjdG9yLnByb3Bz
ZXQoJ3N2bjptaW1lLXR5cGUnLCAnaW1hZ2UvcG5nJywgZmlsZW5hbWUpCisKKyAgICBkZWYgX2No
ZWNrX3BuZ3Moc2VsZiwgY2hhbmdlZF9maWxlcyk6CisgICAgICAgIHBuZ19maWxlcyA9IFtdCisg
ICAgICAgIGZvciBmaWxlbmFtZSBpbiBjaGFuZ2VkX2ZpbGVzOgorICAgICAgICAgICAgaWYgZmls
ZW5hbWUuZW5kc3dpdGgoJy5wbmcnKToKKyAgICAgICAgICAgICAgICBwbmdfZmlsZXMuYXBwZW5k
KGZpbGVuYW1lKQorICAgICAgICByZXR1cm4gcG5nX2ZpbGVzCmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvYWRkc3ZubWltZXR5cGVmb3JwbmdfdW5pdHRlc3Qu
cHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvYWRkc3ZubWltZXR5cGVmb3Jw
bmdfdW5pdHRlc3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzBlZDA3
NAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9h
ZGRzdm5taW1ldHlwZWZvcnBuZ191bml0dGVzdC5weQpAQCAtMCwwICsxLDYwIEBACisjIENvcHly
aWdodCAoQykgMjAxMiBCYWxhenMgQW5rZXMgKGJhbmtAaW5mLnUtc3plZ2VkLmh1KSBVbml2ZXJz
aXR5IG9mIFN6ZWdlZAorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6Cisj
IDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRF
RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SCisjIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCisjIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAorIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMg
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKworaW1wb3J0IHVuaXR0ZXN0CisKK2Zyb20gd2Via2l0cHkudG9vbC5zdGVw
cy5hZGRzdm5taW1ldHlwZWZvcnBuZyBpbXBvcnQgQWRkU3ZuTWltZXR5cGVGb3JQbmcKK2Zyb20g
d2Via2l0cHkuY29tbW9uLnN5c3RlbS5maWxlc3lzdGVtX21vY2sgaW1wb3J0IE1vY2tGaWxlU3lz
dGVtCitmcm9tIHdlYmtpdHB5LnRvb2wubW9ja3Rvb2wgaW1wb3J0IE1vY2tPcHRpb25zLCBNb2Nr
VG9vbAorZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLnN5c3RlbWhvc3RfbW9jayBpbXBvcnQg
TW9ja1N5c3RlbUhvc3QKK2Zyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5vdXRwdXRjYXB0dXJl
IGltcG9ydCBPdXRwdXRDYXB0dXJlCisKKworY2xhc3MgTW9ja1NDTURldGVjdG9yKG9iamVjdCk6
CisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgc2NtKToKKyAgICAgICAgc2VsZi5fc2NtID0gc2Nt
CisKKyAgICBkZWYgZGlzcGxheV9uYW1lKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fc2Nt
CisKKworY2xhc3MgQWRkU3ZuTWltZXR5cGVGb3JQbmdUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToK
KyAgICBkZWYgdGVzdF9ydW4oc2VsZik6CisgICAgICAgIGNhcHR1cmUgPSBPdXRwdXRDYXB0dXJl
KCkKKyAgICAgICAgb3B0aW9ucyA9IE1vY2tPcHRpb25zKCkKKyAgICAgICAgb3B0aW9ucy5naXRf
Y29tbWl0ID0gJ01PQ0sgZ2l0IGNvbW1pdCcKKworICAgICAgICBmaWxlcyA9IHsnL1VzZXJzL21v
Y2svLnN1YnZlcnNpb24vY29uZmlnJzogJ2VuYWJsZS1hdXRvLXByb3BzID0geWVzXG4qLnBuZyA9
IHN2bjptaW1lLXR5cGU9aW1hZ2UvcG5nJ30KKyAgICAgICAgZnMgPSBNb2NrRmlsZVN5c3RlbShm
aWxlcykKKyAgICAgICAgc2NtID0gTW9ja1NDTURldGVjdG9yKCdnaXQnKQorCisgICAgICAgIHN0
ZXAgPSBBZGRTdm5NaW1ldHlwZUZvclBuZyhNb2NrVG9vbCgpLCBvcHRpb25zLCBNb2NrU3lzdGVt
SG9zdChvc19uYW1lPSdsaW51eCcsIGZpbGVzeXN0ZW09ZnMpLCBzY20pCisgICAgICAgIHN0YXRl
ID0geworICAgICAgICAgICAgImNoYW5nZWRfZmlsZXMiOiBbInRlc3QucG5nIl0sCisgICAgICAg
IH0KKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgY2FwdHVyZS5hc3NlcnRfb3V0cHV0cyhzZWxm
LCBzdGVwLnJ1biwgW3N0YXRlXSkKKyAgICAgICAgZXhjZXB0IFN5c3RlbUV4aXQsIGU6CisgICAg
ICAgICAgICBzZWxmLmFzc2VydEVxdWFscyh0eXBlKGUpLCB0eXBlKFN5c3RlbUV4aXQoKSkpCisg
ICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhlLmNvZGUsIDEpCg==
</data>
<flag name="review"
          id="155042"
          type_id="1"
          status="+"
          setter="dpranke"
    />
    <flag name="commit-queue"
          id="155043"
          type_id="3"
          status="-"
          setter="dpranke"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147802</attachid>
            <date>2012-06-15 06:50:29 -0700</date>
            <delta_ts>2012-06-26 02:40:12 -0700</delta_ts>
            <desc>proposed fix</desc>
            <filename>2012-06-15_75825.patch</filename>
            <type>text/plain</type>
            <size>16986</size>
            <attacher name="Balazs Ankes">bank</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBmMzVl
ZGI1Li43YjQ3NTczIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMTItMDYtMTUgIEJhbGF6cyBBbmtlcyAgPGJhbmtA
aW5mLnUtc3plZ2VkLmh1PgorCisgICAgICAgIHdlYmtpdC1wYXRjaCBsYW5kIHNob3VsZCBhdXRv
bWF0aWNhbGx5IGFkZCBzdm46bWltZS10eXBlIGZvciAucG5nIGZpbGVzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NTgyNQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlZmFjdG9yIHRoZSBwbmcucHkgdG8g
YXZvaWQgY29kZSBkdXBsaWNhdGlvbi4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29t
bW9uL2NoZWNrc3ZuY29uZmlnZmlsZS5weTogQWRkZWQuCisgICAgICAgIChjaGVjayk6CisgICAg
ICAgIChfY29uZmlnX2ZpbGVfcGF0aCk6CisgICAgICAgIChlcnJvcnN0cl9hdXRvcHJvcCk6Cisg
ICAgICAgIChlcnJvcnN0cl9wbmcpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvc3R5bGUv
Y2hlY2tlcnMvcG5nLnB5OgorICAgICAgICAoUE5HQ2hlY2tlci5jaGVjayk6CisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Rvd25sb2FkLnB5OgorICAgICAgICAoTGFu
ZCk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL19faW5pdF9fLnB5Ogor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9hZGRzdm5taW1ldHlwZWZvcnBu
Zy5weTogQWRkZWQuCisgICAgICAgIChBZGRTdm5NaW1ldHlwZUZvclBuZyk6CisgICAgICAgIChB
ZGRTdm5NaW1ldHlwZUZvclBuZy5fX2luaXRfXyk6CisgICAgICAgIChBZGRTdm5NaW1ldHlwZUZv
clBuZy5ydW4pOgorICAgICAgICAoQWRkU3ZuTWltZXR5cGVGb3JQbmcuX2NoZWNrX3BuZ3MpOgor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9hZGRzdm5taW1ldHlwZWZvcnBu
Z191bml0dGVzdC5weTogQWRkZWQuCisgICAgICAgIChNb2NrU0NNRGV0ZWN0b3IpOgorICAgICAg
ICAoTW9ja1NDTURldGVjdG9yLl9faW5pdF9fKToKKyAgICAgICAgKE1vY2tTQ01EZXRlY3Rvci5k
aXNwbGF5X25hbWUpOgorICAgICAgICAoQWRkU3ZuTWltZXR5cGVGb3JQbmdUZXN0KToKKyAgICAg
ICAgKEFkZFN2bk1pbWV0eXBlRm9yUG5nVGVzdC50ZXN0X3J1bik6CisKIDIwMTItMDYtMTUgIENz
YWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KIAogICAgICAgICBBZGQgRm9yY2VT
Y2hlZHVsZXIgdG8gYnVpbGQud2Via2l0Lm9yZwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9jb21tb24vY2hlY2tzdm5jb25maWdmaWxlLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9jb21tb24vY2hlY2tzdm5jb25maWdmaWxlLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLmZjNTNlMjIKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2NvbW1vbi9jaGVja3N2bmNvbmZpZ2ZpbGUucHkKQEAgLTAsMCArMSw2NiBAQAorIyBD
b3B5cmlnaHQgKEMpIDIwMTIgQmFsYXpzIEFua2VzIChiYW5rQGluZi51LXN6ZWdlZC5odSkgVW5p
dmVyc2l0eSBvZiBTemVnZWQKKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0
OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgorIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKKyMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisKKyMgVGhpcyBmaWxlIGlzIHVzZWQgYnk6CisjIHdlYmtpdHB5L3Rv
b2wvc3RlcHMvYWRkc3ZubWltZXR5cGVmb3JwbmcucHkKKyMgd2Via2l0cHkvc3R5bGUvY2hlY2tl
cnMvcG5nLnB5CisKK2ltcG9ydCBvcworaW1wb3J0IHJlCisKKworZGVmIGNoZWNrKHNlbGYsIGhv
c3QsIGZzKToKKyAgICAiIiIKKyAgICBjaGVjayB0aGUgc3ZuIGNvbmZpZyBmaWxlCisgICAgcmV0
dXJuIHdpdGggdGhyZWUgbG9naWNhbCB2YWx1ZToKKyAgICBpcyBzdm4gY29uZmlnIGZpbGUgbWlz
c2luZywgaXMgYXV0by1wcm9wcyBtaXNzaW5nLCBpcyB0aGUgc3ZuOm1pbWUtdHlwZSBmb3IgcG5n
IG1pc3NpbmcKKyAgICAiIiIKKworICAgIGNvbmZpZ19maWxlX3BhdGggPSBfY29uZmlnX2ZpbGVf
cGF0aChzZWxmLCBob3N0LCBmcykKKworICAgIHRyeToKKyAgICAgICAgY29uZmlnX2ZpbGUgPSBm
cy5yZWFkX3RleHRfZmlsZShjb25maWdfZmlsZV9wYXRoKQorICAgIGV4Y2VwdCBJT0Vycm9yOgor
ICAgICAgICByZXR1cm4gKFRydWUsIFRydWUsIFRydWUpCisKKyAgICBlcnJvcmNvZGVfYXV0b3By
b3AgPSBub3QgcmUuc2VhcmNoKCJeXHMqZW5hYmxlLWF1dG8tcHJvcHNccyo9XHMqeWVzIiwgY29u
ZmlnX2ZpbGUsIHJlLk1VTFRJTElORSkKKyAgICBlcnJvcmNvZGVfcG5nID0gbm90IHJlLnNlYXJj
aCgiXlxzKlwqXC5wbmdccyo9XHMqc3ZuOm1pbWUtdHlwZT1pbWFnZS9wbmciLCBjb25maWdfZmls
ZSwgcmUuTVVMVElMSU5FKQorCisgICAgcmV0dXJuIChGYWxzZSwgZXJyb3Jjb2RlX2F1dG9wcm9w
LCBlcnJvcmNvZGVfcG5nKQorCisKK2RlZiBfY29uZmlnX2ZpbGVfcGF0aChzZWxmLCBob3N0LCBm
cyk6CisgICAgY29uZmlnX2ZpbGUgPSAiIgorICAgIGlmIGhvc3QucGxhdGZvcm0uaXNfd2luKCk6
CisgICAgICAgIGNvbmZpZ19maWxlX3BhdGggPSBmcy5qb2luKG9zLmVudmlyb25bJ0FQUERBVEEn
XSwgIlN1YnZlcnNpb25cY29uZmlnIikKKyAgICBlbHNlOgorICAgICAgICBjb25maWdfZmlsZV9w
YXRoID0gZnMuam9pbihmcy5leHBhbmR1c2VyKCJ+IiksICIuc3VidmVyc2lvbi9jb25maWciKQor
ICAgIHJldHVybiBjb25maWdfZmlsZV9wYXRoCisKKworZGVmIGVycm9yc3RyX2F1dG9wcm9wKGNv
bmZpZ19maWxlX3BhdGgpOgorICAgIHJldHVybiAiSGF2ZSB0byBlbmFibGUgYXV0byBwcm9wcyBp
biB0aGUgc3VidmVyc2lvbiBjb25maWcgZmlsZSAoIiArIGNvbmZpZ19maWxlX3BhdGggKyAiIFwi
ZW5hYmxlLWF1dG8tcHJvcHMgPSB5ZXNcIikuICIKKworCitkZWYgZXJyb3JzdHJfcG5nKGNvbmZp
Z19maWxlX3BhdGgpOgorICAgIHJldHVybiAiSGF2ZSB0byBzZXQgdGhlIHN2bjptaW1lLXR5cGUg
aW4gdGhlIHN1YnZlcnNpb24gY29uZmlnIGZpbGUgKCIgKyBjb25maWdfZmlsZV9wYXRoICsgIiBc
IioucG5nID0gc3ZuOm1pbWUtdHlwZT1pbWFnZS9wbmdcIikuIgpkaWZmIC0tZ2l0IGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9wbmcucHkgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3N0eWxlL2NoZWNrZXJzL3BuZy5weQppbmRleCAzMGI3YTE0Li41OWRkNmZmIDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL3BuZy5weQorKysg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL3BuZy5weQpAQCAtMjcsNiAr
MjcsNyBAQAogaW1wb3J0IG9zCiBpbXBvcnQgcmUKIAorZnJvbSB3ZWJraXRweS5jb21tb24gaW1w
b3J0IGNoZWNrc3ZuY29uZmlnZmlsZQogZnJvbSB3ZWJraXRweS5jb21tb24gaW1wb3J0IHJlYWRf
Y2hlY2tzdW1fZnJvbV9wbmcKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5zeXN0ZW1ob3N0
IGltcG9ydCBTeXN0ZW1Ib3N0CiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5jaGVja291dC5zY20uZGV0
ZWN0aW9uIGltcG9ydCBTQ01EZXRlY3RvcgpAQCAtNTQsMzggKzU1LDE3IEBAIGNsYXNzIFBOR0No
ZWNrZXIob2JqZWN0KToKICAgICAgICAgICAgICAgICAgICAgc2VsZi5faGFuZGxlX3N0eWxlX2Vy
cm9yKDAsICdpbWFnZS9wbmcnLCA1LCAiSW1hZ2UgbGFja3MgYSBjaGVja3N1bS4gR2VuZXJhdGUg
cG5ncyB1c2luZyBydW4td2Via2l0LXRlc3RzIHRvIGVuc3VyZSB0aGV5IGhhdmUgYSBjaGVja3N1
bS4iKQogCiAgICAgICAgIGlmIGRldGVjdGlvbiA9PSAiZ2l0IjoKLSAgICAgICAgICAgIGNvbmZp
Z19maWxlX3BhdGggPSBzZWxmLl9jb25maWdfZmlsZV9wYXRoKCkKLSAgICAgICAgICAgIHRoZXJl
X2lzX2VuYWJsZV9saW5lID0gRmFsc2UKLSAgICAgICAgICAgIHRoZXJlX2lzX3BuZ19saW5lID0g
RmFsc2UKLQotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIGNvbmZpZ19maWxlID0g
c2VsZi5fZnMucmVhZF90ZXh0X2ZpbGUoY29uZmlnX2ZpbGVfcGF0aCkKLSAgICAgICAgICAgIGV4
Y2VwdCBJT0Vycm9yOgotICAgICAgICAgICAgICAgIGVycm9yc3RyID0gIlRoZXJlIGlzIG5vICIg
KyBjb25maWdfZmlsZV9wYXRoCi0gICAgICAgICAgICAgICAgc2VsZi5faGFuZGxlX3N0eWxlX2Vy
cm9yKDAsICdpbWFnZS9wbmcnLCA1LCBlcnJvcnN0cikKLSAgICAgICAgICAgICAgICByZXR1cm4K
LQotICAgICAgICAgICAgZXJyb3JzdHJfYXV0b3Byb3AgPSAiSGF2ZSB0byBlbmFibGUgYXV0byBw
cm9wcyBpbiB0aGUgc3VidmVyc2lvbiBjb25maWcgZmlsZSAoIiArIGNvbmZpZ19maWxlX3BhdGgg
KyAiIFwiZW5hYmxlLWF1dG8tcHJvcHMgPSB5ZXNcIikuICIKLSAgICAgICAgICAgIGVycm9yc3Ry
X3BuZyA9ICJIYXZlIHRvIHNldCB0aGUgc3ZuOm1pbWUtdHlwZSBpbiB0aGUgc3VidmVyc2lvbiBj
b25maWcgZmlsZSAoIiArIGNvbmZpZ19maWxlX3BhdGggKyAiIFwiKi5wbmcgPSBzdm46bWltZS10
eXBlPWltYWdlL3BuZ1wiKS4iCi0KLSAgICAgICAgICAgIGZvciBsaW5lIGluIGNvbmZpZ19maWxl
LnNwbGl0KCdcbicpOgotICAgICAgICAgICAgICAgIGlmIG5vdCB0aGVyZV9pc19lbmFibGVfbGlu
ZToKLSAgICAgICAgICAgICAgICAgICAgbWF0Y2ggPSByZS5zZWFyY2goIl5ccyplbmFibGUtYXV0
by1wcm9wc1xzKj1ccyp5ZXMiLCBsaW5lKQotICAgICAgICAgICAgICAgICAgICBpZiBtYXRjaDoK
LSAgICAgICAgICAgICAgICAgICAgICAgIHRoZXJlX2lzX2VuYWJsZV9saW5lID0gVHJ1ZQotICAg
ICAgICAgICAgICAgICAgICAgICAgZXJyb3JzdHJfYXV0b3Byb3AgPSAiIgotICAgICAgICAgICAg
ICAgICAgICAgICAgY29udGludWUKLQotICAgICAgICAgICAgICAgIGlmIG5vdCB0aGVyZV9pc19w
bmdfbGluZToKLSAgICAgICAgICAgICAgICAgICAgbWF0Y2ggPSByZS5zZWFyY2goIl5ccypcKlwu
cG5nXHMqPVxzKnN2bjptaW1lLXR5cGU9aW1hZ2UvcG5nIiwgbGluZSkKLSAgICAgICAgICAgICAg
ICAgICAgaWYgbWF0Y2g6Ci0gICAgICAgICAgICAgICAgICAgICAgICB0aGVyZV9pc19wbmdfbGlu
ZSA9IFRydWUKLSAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yc3RyX3BuZyA9ICIiCi0gICAg
ICAgICAgICAgICAgICAgICAgICBjb250aW51ZQotCi0gICAgICAgICAgICBlcnJvcnN0ciA9IGVy
cm9yc3RyX2F1dG9wcm9wICsgZXJyb3JzdHJfcG5nCi0gICAgICAgICAgICBpZiBlcnJvcnN0cjoK
LSAgICAgICAgICAgICAgICBzZWxmLl9oYW5kbGVfc3R5bGVfZXJyb3IoMCwgJ2ltYWdlL3BuZycs
IDUsIGVycm9yc3RyKQorICAgICAgICAgICAgKGZpbGVfbWlzc2luZywgYXV0b3Byb3BfbWlzc2lu
ZywgcG5nX21pc3NpbmcpID0gY2hlY2tzdm5jb25maWdmaWxlLmNoZWNrKHNlbGYsIHNlbGYuX2hv
c3QsIHNlbGYuX2ZzKQorICAgICAgICAgICAgY29uZmlnX2ZpbGVfcGF0aCA9IGNoZWNrc3ZuY29u
ZmlnZmlsZS5fY29uZmlnX2ZpbGVfcGF0aChzZWxmLCBzZWxmLl9ob3N0LCBzZWxmLl9mcykKKwor
ICAgICAgICAgICAgaWYgZmlsZV9taXNzaW5nOgorICAgICAgICAgICAgICAgIHNlbGYuX2hhbmRs
ZV9zdHlsZV9lcnJvcigwLCAnaW1hZ2UvcG5nJywgNSwgIlRoZXJlIGlzIG5vIFNWTiBjb25maWcg
ZmlsZS4gKCIgKyBjb25maWdfZmlsZV9wYXRoICsgIikiKQorICAgICAgICAgICAgZWxpZiBhdXRv
cHJvcF9taXNzaW5nIGFuZCBwbmdfbWlzc2luZzoKKyAgICAgICAgICAgICAgICBzZWxmLl9oYW5k
bGVfc3R5bGVfZXJyb3IoMCwgJ2ltYWdlL3BuZycsIDUsIGNoZWNrc3ZuY29uZmlnZmlsZS5lcnJv
cnN0cl9hdXRvcHJvcChjb25maWdfZmlsZV9wYXRoKSArIGNoZWNrc3ZuY29uZmlnZmlsZS5lcnJv
cnN0cl9wbmcoY29uZmlnX2ZpbGVfcGF0aCkpCisgICAgICAgICAgICBlbGlmIGF1dG9wcm9wX21p
c3Npbmc6CisgICAgICAgICAgICAgICAgc2VsZi5faGFuZGxlX3N0eWxlX2Vycm9yKDAsICdpbWFn
ZS9wbmcnLCA1LCBjaGVja3N2bmNvbmZpZ2ZpbGUuZXJyb3JzdHJfYXV0b3Byb3AoY29uZmlnX2Zp
bGVfcGF0aCkpCisgICAgICAgICAgICBlbGlmIHBuZ19taXNzaW5nOgorICAgICAgICAgICAgICAg
IHNlbGYuX2hhbmRsZV9zdHlsZV9lcnJvcigwLCAnaW1hZ2UvcG5nJywgNSwgY2hlY2tzdm5jb25m
aWdmaWxlLmVycm9yc3RyX3BuZyhjb25maWdfZmlsZV9wYXRoKSkKIAogICAgICAgICBlbGlmIGRl
dGVjdGlvbiA9PSAic3ZuIjoKICAgICAgICAgICAgIHByb3BfZ2V0ID0gc2VsZi5fZGV0ZWN0b3Iu
cHJvcGdldCgic3ZuOm1pbWUtdHlwZSIsIHNlbGYuX2ZpbGVfcGF0aCkKQEAgLTkzLDEwICs3Mywz
IEBAIGNsYXNzIFBOR0NoZWNrZXIob2JqZWN0KToKICAgICAgICAgICAgICAgICBlcnJvcnN0ciA9
ICJTZXQgdGhlIHN2bjptaW1lLXR5cGUgcHJvcGVydHkgKHN2biBwcm9wc2V0IHN2bjptaW1lLXR5
cGUgaW1hZ2UvcG5nICIgKyBzZWxmLl9maWxlX3BhdGggKyAiKS4iCiAgICAgICAgICAgICAgICAg
c2VsZi5faGFuZGxlX3N0eWxlX2Vycm9yKDAsICdpbWFnZS9wbmcnLCA1LCBlcnJvcnN0cikKIAot
ICAgIGRlZiBfY29uZmlnX2ZpbGVfcGF0aChzZWxmKToKLSAgICAgICAgY29uZmlnX2ZpbGUgPSAi
IgotICAgICAgICBpZiBzZWxmLl9ob3N0LnBsYXRmb3JtLmlzX3dpbigpOgotICAgICAgICAgICAg
Y29uZmlnX2ZpbGVfcGF0aCA9IHNlbGYuX2ZzLmpvaW4ob3MuZW52aXJvblsnQVBQREFUQSddLCAi
U3VidmVyc2lvblxjb25maWciKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgY29uZmlnX2Zp
bGVfcGF0aCA9IHNlbGYuX2ZzLmpvaW4oc2VsZi5fZnMuZXhwYW5kdXNlcigifiIpLCAiLnN1YnZl
cnNpb24vY29uZmlnIikKLSAgICAgICAgcmV0dXJuIGNvbmZpZ19maWxlX3BhdGgKZGlmZiAtLWdp
dCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9kb3dubG9hZC5weSBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9kb3dubG9hZC5weQppbmRleCA0ZjZi
NzM3Li42MGM4OTIwIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29t
bWFuZHMvZG93bmxvYWQucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1h
bmRzL2Rvd25sb2FkLnB5CkBAIC05MCw2ICs5MCw3IEBAIGNsYXNzIExhbmQoQWJzdHJhY3RTZXF1
ZW5jZWRDb21tYW5kKToKICAgICBhcmd1bWVudF9uYW1lcyA9ICJbQlVHSURdIgogICAgIHNob3df
aW5fbWFpbl9oZWxwID0gVHJ1ZQogICAgIHN0ZXBzID0gWworICAgICAgICBzdGVwcy5BZGRTdm5N
aW1ldHlwZUZvclBuZywKICAgICAgICAgc3RlcHMuVXBkYXRlQ2hhbmdlTG9nc1dpdGhSZXZpZXdl
ciwKICAgICAgICAgc3RlcHMuVmFsaWRhdGVSZXZpZXdlciwKICAgICAgICAgc3RlcHMuVmFsaWRh
dGVDaGFuZ2VMb2dzLCAjIFdlIGRvIHRoaXMgYWZ0ZXIgVXBkYXRlQ2hhbmdlTG9nc1dpdGhSZXZp
ZXdlciB0byBhdm9pZCBub3QgaGF2aW5nIHRvIGNhY2hlIHRoZSBkaWZmIHR3aWNlLgpkaWZmIC0t
Z2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL19faW5pdF9fLnB5IGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL19faW5pdF9fLnB5CmluZGV4IGFjYTk3MDYu
LjU2NDI5ZTggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9f
X2luaXRfXy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvX19pbml0
X18ucHkKQEAgLTI3LDYgKzI3LDcgQEAKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAogIyBGSVhNRTogSXMgdGhp
cyB0aGUgcmlnaHQgd2F5IHRvIGRvIHRoaXM/Citmcm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMuYWRk
c3ZubWltZXR5cGVmb3JwbmcgaW1wb3J0IEFkZFN2bk1pbWV0eXBlRm9yUG5nCiBmcm9tIHdlYmtp
dHB5LnRvb2wuc3RlcHMuYXBwbHlwYXRjaCBpbXBvcnQgQXBwbHlQYXRjaAogZnJvbSB3ZWJraXRw
eS50b29sLnN0ZXBzLmFwcGx5cGF0Y2h3aXRobG9jYWxjb21taXQgaW1wb3J0IEFwcGx5UGF0Y2hX
aXRoTG9jYWxDb21taXQKIGZyb20gd2Via2l0cHkudG9vbC5zdGVwcy5hcHBseXdhdGNobGlzdCBp
bXBvcnQgQXBwbHlXYXRjaExpc3QKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
dG9vbC9zdGVwcy9hZGRzdm5taW1ldHlwZWZvcnBuZy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdG9vbC9zdGVwcy9hZGRzdm5taW1ldHlwZWZvcnBuZy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5kZmViNGU3Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS90b29sL3N0ZXBzL2FkZHN2bm1pbWV0eXBlZm9ycG5nLnB5CkBAIC0wLDAgKzEs
NzcgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDEyIEJhbGF6cyBBbmtlcyAoYmFua0BpbmYudS1zemVn
ZWQuaHUpIFVuaXZlcnNpdHkgb2YgU3plZ2VkCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworIyAiQVMg
SVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyMgT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisjIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorIyBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitmcm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMuYWJz
dHJhY3RzdGVwIGltcG9ydCBBYnN0cmFjdFN0ZXAKK2Zyb20gd2Via2l0cHkuY29tbW9uIGltcG9y
dCBjaGVja3N2bmNvbmZpZ2ZpbGUKK2Zyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5kZXByZWNh
dGVkX2xvZ2dpbmcgaW1wb3J0IGxvZworZnJvbSB3ZWJraXRweS5jb21tb24uY2hlY2tvdXQuc2Nt
LmRldGVjdGlvbiBpbXBvcnQgU0NNRGV0ZWN0b3IKK2Zyb20gd2Via2l0cHkuY29tbW9uLnN5c3Rl
bS5zeXN0ZW1ob3N0IGltcG9ydCBTeXN0ZW1Ib3N0CisKKworY2xhc3MgQWRkU3ZuTWltZXR5cGVG
b3JQbmcoQWJzdHJhY3RTdGVwKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgdG9vbCwgb3B0aW9u
cywgaG9zdD1Ob25lLCBzY209Tm9uZSk6CisgICAgICAgIHNlbGYuX3Rvb2wgPSB0b29sCisgICAg
ICAgIHNlbGYuX29wdGlvbnMgPSBvcHRpb25zCisgICAgICAgIHNlbGYuX2hvc3QgPSBob3N0IG9y
IFN5c3RlbUhvc3QoKQorICAgICAgICBzZWxmLl9mcyA9IHNlbGYuX2hvc3QuZmlsZXN5c3RlbQor
ICAgICAgICBzZWxmLl9kZXRlY3RvciA9IHNjbSBvciBTQ01EZXRlY3RvcihzZWxmLl9mcywgc2Vs
Zi5faG9zdC5leGVjdXRpdmUpLmRldGVjdF9zY21fc3lzdGVtKHNlbGYuX2ZzLmdldGN3ZCgpKQor
CisgICAgZGVmIHJ1bihzZWxmLCBzdGF0ZSk6CisgICAgICAgIHBuZ19maWxlcyA9IHNlbGYuX2No
ZWNrX3BuZ3Moc2VsZi5fY2hhbmdlZF9maWxlcyhzdGF0ZSkpCisKKyAgICAgICAgaWYgbGVuKHBu
Z19maWxlcykgPiAwOgorICAgICAgICAgICAgZGV0ZWN0aW9uID0gc2VsZi5fZGV0ZWN0b3IuZGlz
cGxheV9uYW1lKCkKKworICAgICAgICAgICAgaWYgZGV0ZWN0aW9uID09ICJnaXQiOgorICAgICAg
ICAgICAgICAgIChmaWxlX3JlYWQsIGF1dG9wcm9wLCBwbmcpID0gY2hlY2tzdm5jb25maWdmaWxl
LmNoZWNrKHNlbGYsIHNlbGYuX2hvc3QsIHNlbGYuX2ZzKQorICAgICAgICAgICAgICAgIGNvbmZp
Z19maWxlX3BhdGggPSBjaGVja3N2bmNvbmZpZ2ZpbGUuX2NvbmZpZ19maWxlX3BhdGgoc2VsZiwg
c2VsZi5faG9zdCwgc2VsZi5fZnMpCisKKyAgICAgICAgICAgICAgICBpZiBmaWxlX3JlYWQ6Cisg
ICAgICAgICAgICAgICAgICAgIGxvZygiVGhlcmUgaXMgbm8gU1ZOIGNvbmZpZyBmaWxlLiBUaGUg
c3ZuOm1pbWUtdHlwZSBvZiBwbmdzIHdvbid0IHNldC4iKQorICAgICAgICAgICAgICAgICAgICBp
ZiBub3Qgc2VsZi5fdG9vbC51c2VyLmNvbmZpcm0oIkFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBj
b250aW51ZT8iLCBkZWZhdWx0PSJuIik6CisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9l
eGl0KDEpCisgICAgICAgICAgICAgICAgZWxpZiBhdXRvcHJvcCBhbmQgcG5nOgorICAgICAgICAg
ICAgICAgICAgICBsb2coY2hlY2tzdm5jb25maWdmaWxlLmVycm9yc3RyX2F1dG9wcm9wKGNvbmZp
Z19maWxlX3BhdGgpICsgY2hlY2tzdm5jb25maWdmaWxlLmVycm9yc3RyX3BuZyhjb25maWdfZmls
ZV9wYXRoKSkKKyAgICAgICAgICAgICAgICAgICAgaWYgbm90IHNlbGYuX3Rvb2wudXNlci5jb25m
aXJtKCJEbyB5b3Ugd2FudCB0byBjb250aW51ZT8iLCBkZWZhdWx0PSJuIik6CisgICAgICAgICAg
ICAgICAgICAgICAgICBzZWxmLl9leGl0KDEpCisgICAgICAgICAgICAgICAgZWxpZiBhdXRvcHJv
cDoKKyAgICAgICAgICAgICAgICAgICAgbG9nKGNoZWNrc3ZuY29uZmlnZmlsZS5lcnJvcnN0cl9h
dXRvcHJvcChjb25maWdfZmlsZV9wYXRoKSkKKyAgICAgICAgICAgICAgICAgICAgaWYgbm90IHNl
bGYuX3Rvb2wudXNlci5jb25maXJtKCJEbyB5b3Ugd2FudCB0byBjb250aW51ZT8iLCBkZWZhdWx0
PSJuIik6CisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9leGl0KDEpCisgICAgICAgICAg
ICAgICAgZWxpZiBwbmc6CisgICAgICAgICAgICAgICAgICAgIGxvZyhjaGVja3N2bmNvbmZpZ2Zp
bGUuZXJyb3JzdHJfcG5nKGNvbmZpZ19maWxlX3BhdGgpKQorICAgICAgICAgICAgICAgICAgICBp
ZiBub3Qgc2VsZi5fdG9vbC51c2VyLmNvbmZpcm0oIkRvIHlvdSB3YW50IHRvIGNvbnRpbnVlPyIs
IGRlZmF1bHQ9Im4iKToKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2V4aXQoMSkKKwor
ICAgICAgICAgICAgZWxpZiBkZXRlY3Rpb24gPT0gInN2biI6CisgICAgICAgICAgICAgICAgZm9y
IGZpbGVuYW1lIGluIHBuZ19maWxlczoKKyAgICAgICAgICAgICAgICAgICAgaWYgZmlsZW5hbWUu
ZW5kc3dpdGgoJy5wbmcnKSBhbmQgc2VsZi5fZGV0ZWN0b3IuZXhpc3RzKGZpbGVuYW1lKSBhbmQg
c2VsZi5fZGV0ZWN0b3IucHJvcGdldCgnc3ZuOm1pbWUtdHlwZScsIGZpbGVuYW1lKSAhPSAnaW1h
Z2UvcG5nJzoKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ICJBZGRpbmcgaW1hZ2UvcG5n
IG1pbWUtdHlwZSB0byAlcyIgJSBmaWxlbmFtZQorICAgICAgICAgICAgICAgICAgICAgICAgc2Vs
Zi5fZGV0ZWN0b3IucHJvcHNldCgnc3ZuOm1pbWUtdHlwZScsICdpbWFnZS9wbmcnLCBmaWxlbmFt
ZSkKKworICAgIGRlZiBfY2hlY2tfcG5ncyhzZWxmLCBjaGFuZ2VkX2ZpbGVzKToKKyAgICAgICAg
cG5nX2ZpbGVzID0gW10KKyAgICAgICAgZm9yIGZpbGVuYW1lIGluIGNoYW5nZWRfZmlsZXM6Cisg
ICAgICAgICAgICBpZiBmaWxlbmFtZS5lbmRzd2l0aCgnLnBuZycpOgorICAgICAgICAgICAgICAg
IHBuZ19maWxlcy5hcHBlbmQoZmlsZW5hbWUpCisgICAgICAgIHJldHVybiBwbmdfZmlsZXMKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9hZGRzdm5taW1ldHlw
ZWZvcnBuZ191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9h
ZGRzdm5taW1ldHlwZWZvcnBuZ191bml0dGVzdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi4zMGVkMDc0Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS90b29sL3N0ZXBzL2FkZHN2bm1pbWV0eXBlZm9ycG5nX3VuaXR0ZXN0LnB5CkBAIC0wLDAg
KzEsNjAgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDEyIEJhbGF6cyBBbmtlcyAoYmFua0BpbmYudS1z
emVnZWQuaHUpIFVuaXZlcnNpdHkgb2YgU3plZ2VkCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
IyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworIyAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyMgT1dORVIgT1IgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisj
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorIyBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisj
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitpbXBvcnQgdW5pdHRlc3QKKworZnJvbSB3
ZWJraXRweS50b29sLnN0ZXBzLmFkZHN2bm1pbWV0eXBlZm9ycG5nIGltcG9ydCBBZGRTdm5NaW1l
dHlwZUZvclBuZworZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmZpbGVzeXN0ZW1fbW9jayBp
bXBvcnQgTW9ja0ZpbGVTeXN0ZW0KK2Zyb20gd2Via2l0cHkudG9vbC5tb2NrdG9vbCBpbXBvcnQg
TW9ja09wdGlvbnMsIE1vY2tUb29sCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uc3lzdGVt
aG9zdF9tb2NrIGltcG9ydCBNb2NrU3lzdGVtSG9zdAorZnJvbSB3ZWJraXRweS5jb21tb24uc3lz
dGVtLm91dHB1dGNhcHR1cmUgaW1wb3J0IE91dHB1dENhcHR1cmUKKworCitjbGFzcyBNb2NrU0NN
RGV0ZWN0b3Iob2JqZWN0KToKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzY20pOgorICAgICAg
ICBzZWxmLl9zY20gPSBzY20KKworICAgIGRlZiBkaXNwbGF5X25hbWUoc2VsZik6CisgICAgICAg
IHJldHVybiBzZWxmLl9zY20KKworCitjbGFzcyBBZGRTdm5NaW1ldHlwZUZvclBuZ1Rlc3QodW5p
dHRlc3QuVGVzdENhc2UpOgorICAgIGRlZiB0ZXN0X3J1bihzZWxmKToKKyAgICAgICAgY2FwdHVy
ZSA9IE91dHB1dENhcHR1cmUoKQorICAgICAgICBvcHRpb25zID0gTW9ja09wdGlvbnMoKQorICAg
ICAgICBvcHRpb25zLmdpdF9jb21taXQgPSAnTU9DSyBnaXQgY29tbWl0JworCisgICAgICAgIGZp
bGVzID0geycvVXNlcnMvbW9jay8uc3VidmVyc2lvbi9jb25maWcnOiAnZW5hYmxlLWF1dG8tcHJv
cHMgPSB5ZXNcbioucG5nID0gc3ZuOm1pbWUtdHlwZT1pbWFnZS9wbmcnfQorICAgICAgICBmcyA9
IE1vY2tGaWxlU3lzdGVtKGZpbGVzKQorICAgICAgICBzY20gPSBNb2NrU0NNRGV0ZWN0b3IoJ2dp
dCcpCisKKyAgICAgICAgc3RlcCA9IEFkZFN2bk1pbWV0eXBlRm9yUG5nKE1vY2tUb29sKCksIG9w
dGlvbnMsIE1vY2tTeXN0ZW1Ib3N0KG9zX25hbWU9J2xpbnV4JywgZmlsZXN5c3RlbT1mcyksIHNj
bSkKKyAgICAgICAgc3RhdGUgPSB7CisgICAgICAgICAgICAiY2hhbmdlZF9maWxlcyI6IFsidGVz
dC5wbmciXSwKKyAgICAgICAgfQorICAgICAgICB0cnk6CisgICAgICAgICAgICBjYXB0dXJlLmFz
c2VydF9vdXRwdXRzKHNlbGYsIHN0ZXAucnVuLCBbc3RhdGVdKQorICAgICAgICBleGNlcHQgU3lz
dGVtRXhpdCwgZToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHR5cGUoZSksIHR5cGUo
U3lzdGVtRXhpdCgpKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGUuY29kZSwgMSkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>149495</attachid>
            <date>2012-06-26 02:40:28 -0700</date>
            <delta_ts>2012-07-11 01:34:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-75825-20120626024027.patch</filename>
            <type>text/plain</type>
            <size>17449</size>
            <attacher name="Csaba Osztrogonác">ossy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxMjQzCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYWI1ZjJiM2FiODBjYmFiY2EwNzA5YWRiNmZlMDRjZDVj
OWE2OTRkOC4uYmY1MDljYjQyOWFhY2NkODk4NjhmYzgxNjY0MTMyZDMwZTNhODY0ZiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0
IEBACisyMDEyLTA2LTI2ICBCYWxhenMgQW5rZXMgIDxiYW5rQGluZi51LXN6ZWdlZC5odT4KKwor
ICAgICAgICB3ZWJraXQtcGF0Y2ggbGFuZCBzaG91bGQgYXV0b21hdGljYWxseSBhZGQgc3ZuOm1p
bWUtdHlwZSBmb3IgLnBuZyBmaWxlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NzU4MjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBSZWZhY3RvciB0aGUgcG5nLnB5IHRvIGF2b2lkIGNvZGUgZHVwbGljYXRp
b24uCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja3N2bmNvbmZpZ2Zp
bGUucHk6IEFkZGVkLgorICAgICAgICAoY2hlY2spOgorICAgICAgICAoY29uZmlnX2ZpbGVfcGF0
aCk6CisgICAgICAgIChlcnJvcnN0cl9hdXRvcHJvcCk6CisgICAgICAgIChlcnJvcnN0cl9wbmcp
OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvcG5nLnB5OgorICAg
ICAgICAoUE5HQ2hlY2tlci5jaGVjayk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29s
L2NvbW1hbmRzL2Rvd25sb2FkLnB5OgorICAgICAgICAoTGFuZCk6CisgICAgICAgICogU2NyaXB0
cy93ZWJraXRweS90b29sL3N0ZXBzL19faW5pdF9fLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9zdGVwcy9hZGRzdm5taW1ldHlwZWZvcnBuZy5weTogQWRkZWQuCisgICAgICAg
IChBZGRTdm5NaW1ldHlwZUZvclBuZyk6CisgICAgICAgIChBZGRTdm5NaW1ldHlwZUZvclBuZy5f
X2luaXRfXyk6CisgICAgICAgIChBZGRTdm5NaW1ldHlwZUZvclBuZy5ydW4pOgorICAgICAgICAo
QWRkU3ZuTWltZXR5cGVGb3JQbmcuX2NoZWNrX3BuZ3MpOgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9zdGVwcy9hZGRzdm5taW1ldHlwZWZvcnBuZ191bml0dGVzdC5weTogQWRkZWQu
CisgICAgICAgIChNb2NrU0NNRGV0ZWN0b3IpOgorICAgICAgICAoTW9ja1NDTURldGVjdG9yLl9f
aW5pdF9fKToKKyAgICAgICAgKE1vY2tTQ01EZXRlY3Rvci5kaXNwbGF5X25hbWUpOgorICAgICAg
ICAoQWRkU3ZuTWltZXR5cGVGb3JQbmdUZXN0KToKKyAgICAgICAgKEFkZFN2bk1pbWV0eXBlRm9y
UG5nVGVzdC50ZXN0X3J1bik6CisKIDIwMTItMDYtMjYgIFRvbnkgQ2hhbmcgIDx0b255QGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBbUXRdIEVuYWJsZSBncmlkIGxheW91dCBMYXlvdXRUZXN0cwpk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tzdm5jb25maWdm
aWxlLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tzdm5jb25maWdmaWxl
LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmU2MTY1ZjY0YjRiYmUyNjg2OTIwNmY1MDU0Zjk5YzVjYjMzNDc3MTUK
LS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja3N2
bmNvbmZpZ2ZpbGUucHkKQEAgLTAsMCArMSw2NSBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTIgQmFs
YXpzIEFua2VzIChiYW5rQGluZi51LXN6ZWdlZC5odSkgVW5pdmVyc2l0eSBvZiBTemVnZWQKKyMK
KyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyMg
VGhpcyBmaWxlIGlzIHVzZWQgYnk6CisjIHdlYmtpdHB5L3Rvb2wvc3RlcHMvYWRkc3ZubWltZXR5
cGVmb3JwbmcucHkKKyMgd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvcG5nLnB5CisKK2ltcG9ydCBv
cworaW1wb3J0IHJlCisKKworZGVmIGNoZWNrKGhvc3QsIGZzKToKKyAgICAiIiIKKyAgICBjaGVj
ayB0aGUgc3ZuIGNvbmZpZyBmaWxlCisgICAgcmV0dXJuIHdpdGggdGhyZWUgbG9naWNhbCB2YWx1
ZToKKyAgICBpcyBzdm4gY29uZmlnIGZpbGUgbWlzc2luZywgaXMgYXV0by1wcm9wcyBtaXNzaW5n
LCBpcyB0aGUgc3ZuOm1pbWUtdHlwZSBmb3IgcG5nIG1pc3NpbmcKKyAgICAiIiIKKworICAgIGNm
Z19maWxlX3BhdGggPSBjb25maWdfZmlsZV9wYXRoKGhvc3QsIGZzKQorCisgICAgdHJ5OgorICAg
ICAgICBjb25maWdfZmlsZSA9IGZzLnJlYWRfdGV4dF9maWxlKGNmZ19maWxlX3BhdGgpCisgICAg
ZXhjZXB0IElPRXJyb3I6CisgICAgICAgIHJldHVybiAoVHJ1ZSwgVHJ1ZSwgVHJ1ZSkKKworICAg
IGVycm9yY29kZV9hdXRvcHJvcCA9IG5vdCByZS5zZWFyY2goIl5ccyplbmFibGUtYXV0by1wcm9w
c1xzKj1ccyp5ZXMiLCBjb25maWdfZmlsZSwgcmUuTVVMVElMSU5FKQorICAgIGVycm9yY29kZV9w
bmcgPSBub3QgcmUuc2VhcmNoKCJeXHMqXCpcLnBuZ1xzKj1ccypzdm46bWltZS10eXBlPWltYWdl
L3BuZyIsIGNvbmZpZ19maWxlLCByZS5NVUxUSUxJTkUpCisKKyAgICByZXR1cm4gKEZhbHNlLCBl
cnJvcmNvZGVfYXV0b3Byb3AsIGVycm9yY29kZV9wbmcpCisKKworZGVmIGNvbmZpZ19maWxlX3Bh
dGgoaG9zdCwgZnMpOgorICAgIGlmIGhvc3QucGxhdGZvcm0uaXNfd2luKCk6CisgICAgICAgIGNv
bmZpZ19maWxlX3BhdGggPSBmcy5qb2luKG9zLmVudmlyb25bJ0FQUERBVEEnXSwgIlN1YnZlcnNp
b24iLCAiY29uZmlnIikKKyAgICBlbHNlOgorICAgICAgICBjb25maWdfZmlsZV9wYXRoID0gZnMu
am9pbihmcy5leHBhbmR1c2VyKCJ+IiksICIuc3VidmVyc2lvbiIsICJjb25maWciKQorICAgIHJl
dHVybiBjb25maWdfZmlsZV9wYXRoCisKKworZGVmIGVycm9yc3RyX2F1dG9wcm9wKGNvbmZpZ19m
aWxlX3BhdGgpOgorICAgIHJldHVybiAnSGF2ZSB0byBlbmFibGUgYXV0byBwcm9wcyBpbiB0aGUg
c3VidmVyc2lvbiBjb25maWcgZmlsZSAoJXMgImVuYWJsZS1hdXRvLXByb3BzID0geWVzIikuICcg
JSBjb25maWdfZmlsZV9wYXRoCisKKworZGVmIGVycm9yc3RyX3BuZyhjb25maWdfZmlsZV9wYXRo
KToKKyAgICByZXR1cm4gJ0hhdmUgdG8gc2V0IHRoZSBzdm46bWltZS10eXBlIGluIHRoZSBzdWJ2
ZXJzaW9uIGNvbmZpZyBmaWxlICglcyAiKi5wbmcgPSBzdm46bWltZS10eXBlPWltYWdlL3BuZyIp
LicgJSBjb25maWdfZmlsZV9wYXRoCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3N0eWxlL2NoZWNrZXJzL3BuZy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hl
Y2tlcnMvcG5nLnB5CmluZGV4IDMwYjdhMTQzOWUzNTg4Y2JkOTNkMGZmNDJkMTUzMjBhN2EwMjE1
OTMuLjQzMGQ2ZjBhMGUxNmYxOWQxNWNmMDE2MzI5MGUxMjExYTZjMTgyYjEgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvcG5nLnB5CisrKyBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvcG5nLnB5CkBAIC0yNyw2ICsyNyw3IEBA
CiBpbXBvcnQgb3MKIGltcG9ydCByZQogCitmcm9tIHdlYmtpdHB5LmNvbW1vbiBpbXBvcnQgY2hl
Y2tzdm5jb25maWdmaWxlCiBmcm9tIHdlYmtpdHB5LmNvbW1vbiBpbXBvcnQgcmVhZF9jaGVja3N1
bV9mcm9tX3BuZwogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLnN5c3RlbWhvc3QgaW1wb3J0
IFN5c3RlbUhvc3QKIGZyb20gd2Via2l0cHkuY29tbW9uLmNoZWNrb3V0LnNjbS5kZXRlY3Rpb24g
aW1wb3J0IFNDTURldGVjdG9yCkBAIC01NCw0OSArNTUsMjEgQEAgY2xhc3MgUE5HQ2hlY2tlcihv
YmplY3QpOgogICAgICAgICAgICAgICAgICAgICBzZWxmLl9oYW5kbGVfc3R5bGVfZXJyb3IoMCwg
J2ltYWdlL3BuZycsIDUsICJJbWFnZSBsYWNrcyBhIGNoZWNrc3VtLiBHZW5lcmF0ZSBwbmdzIHVz
aW5nIHJ1bi13ZWJraXQtdGVzdHMgdG8gZW5zdXJlIHRoZXkgaGF2ZSBhIGNoZWNrc3VtLiIpCiAK
ICAgICAgICAgaWYgZGV0ZWN0aW9uID09ICJnaXQiOgotICAgICAgICAgICAgY29uZmlnX2ZpbGVf
cGF0aCA9IHNlbGYuX2NvbmZpZ19maWxlX3BhdGgoKQotICAgICAgICAgICAgdGhlcmVfaXNfZW5h
YmxlX2xpbmUgPSBGYWxzZQotICAgICAgICAgICAgdGhlcmVfaXNfcG5nX2xpbmUgPSBGYWxzZQot
Ci0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgY29uZmlnX2ZpbGUgPSBzZWxmLl9m
cy5yZWFkX3RleHRfZmlsZShjb25maWdfZmlsZV9wYXRoKQotICAgICAgICAgICAgZXhjZXB0IElP
RXJyb3I6Ci0gICAgICAgICAgICAgICAgZXJyb3JzdHIgPSAiVGhlcmUgaXMgbm8gIiArIGNvbmZp
Z19maWxlX3BhdGgKLSAgICAgICAgICAgICAgICBzZWxmLl9oYW5kbGVfc3R5bGVfZXJyb3IoMCwg
J2ltYWdlL3BuZycsIDUsIGVycm9yc3RyKQotICAgICAgICAgICAgICAgIHJldHVybgotCi0gICAg
ICAgICAgICBlcnJvcnN0cl9hdXRvcHJvcCA9ICJIYXZlIHRvIGVuYWJsZSBhdXRvIHByb3BzIGlu
IHRoZSBzdWJ2ZXJzaW9uIGNvbmZpZyBmaWxlICgiICsgY29uZmlnX2ZpbGVfcGF0aCArICIgXCJl
bmFibGUtYXV0by1wcm9wcyA9IHllc1wiKS4gIgotICAgICAgICAgICAgZXJyb3JzdHJfcG5nID0g
IkhhdmUgdG8gc2V0IHRoZSBzdm46bWltZS10eXBlIGluIHRoZSBzdWJ2ZXJzaW9uIGNvbmZpZyBm
aWxlICgiICsgY29uZmlnX2ZpbGVfcGF0aCArICIgXCIqLnBuZyA9IHN2bjptaW1lLXR5cGU9aW1h
Z2UvcG5nXCIpLiIKLQotICAgICAgICAgICAgZm9yIGxpbmUgaW4gY29uZmlnX2ZpbGUuc3BsaXQo
J1xuJyk6Ci0gICAgICAgICAgICAgICAgaWYgbm90IHRoZXJlX2lzX2VuYWJsZV9saW5lOgotICAg
ICAgICAgICAgICAgICAgICBtYXRjaCA9IHJlLnNlYXJjaCgiXlxzKmVuYWJsZS1hdXRvLXByb3Bz
XHMqPVxzKnllcyIsIGxpbmUpCi0gICAgICAgICAgICAgICAgICAgIGlmIG1hdGNoOgotICAgICAg
ICAgICAgICAgICAgICAgICAgdGhlcmVfaXNfZW5hYmxlX2xpbmUgPSBUcnVlCi0gICAgICAgICAg
ICAgICAgICAgICAgICBlcnJvcnN0cl9hdXRvcHJvcCA9ICIiCi0gICAgICAgICAgICAgICAgICAg
ICAgICBjb250aW51ZQotCi0gICAgICAgICAgICAgICAgaWYgbm90IHRoZXJlX2lzX3BuZ19saW5l
OgotICAgICAgICAgICAgICAgICAgICBtYXRjaCA9IHJlLnNlYXJjaCgiXlxzKlwqXC5wbmdccyo9
XHMqc3ZuOm1pbWUtdHlwZT1pbWFnZS9wbmciLCBsaW5lKQotICAgICAgICAgICAgICAgICAgICBp
ZiBtYXRjaDoKLSAgICAgICAgICAgICAgICAgICAgICAgIHRoZXJlX2lzX3BuZ19saW5lID0gVHJ1
ZQotICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JzdHJfcG5nID0gIiIKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnRpbnVlCi0KLSAgICAgICAgICAgIGVycm9yc3RyID0gZXJyb3JzdHJf
YXV0b3Byb3AgKyBlcnJvcnN0cl9wbmcKLSAgICAgICAgICAgIGlmIGVycm9yc3RyOgotICAgICAg
ICAgICAgICAgIHNlbGYuX2hhbmRsZV9zdHlsZV9lcnJvcigwLCAnaW1hZ2UvcG5nJywgNSwgZXJy
b3JzdHIpCisgICAgICAgICAgICAoZmlsZV9taXNzaW5nLCBhdXRvcHJvcF9taXNzaW5nLCBwbmdf
bWlzc2luZykgPSBjaGVja3N2bmNvbmZpZ2ZpbGUuY2hlY2soc2VsZi5faG9zdCwgc2VsZi5fZnMp
CisgICAgICAgICAgICBjb25maWdfZmlsZV9wYXRoID0gY2hlY2tzdm5jb25maWdmaWxlLmNvbmZp
Z19maWxlX3BhdGgoc2VsZi5faG9zdCwgc2VsZi5fZnMpCisKKyAgICAgICAgICAgIGlmIGZpbGVf
bWlzc2luZzoKKyAgICAgICAgICAgICAgICBzZWxmLl9oYW5kbGVfc3R5bGVfZXJyb3IoMCwgJ2lt
YWdlL3BuZycsIDUsICJUaGVyZSBpcyBubyBTVk4gY29uZmlnIGZpbGUuICglcykiICUgY29uZmln
X2ZpbGVfcGF0aCkKKyAgICAgICAgICAgIGVsaWYgYXV0b3Byb3BfbWlzc2luZyBhbmQgcG5nX21p
c3Npbmc6CisgICAgICAgICAgICAgICAgc2VsZi5faGFuZGxlX3N0eWxlX2Vycm9yKDAsICdpbWFn
ZS9wbmcnLCA1LCBjaGVja3N2bmNvbmZpZ2ZpbGUuZXJyb3JzdHJfYXV0b3Byb3AoY29uZmlnX2Zp
bGVfcGF0aCkgKyBjaGVja3N2bmNvbmZpZ2ZpbGUuZXJyb3JzdHJfcG5nKGNvbmZpZ19maWxlX3Bh
dGgpKQorICAgICAgICAgICAgZWxpZiBhdXRvcHJvcF9taXNzaW5nOgorICAgICAgICAgICAgICAg
IHNlbGYuX2hhbmRsZV9zdHlsZV9lcnJvcigwLCAnaW1hZ2UvcG5nJywgNSwgY2hlY2tzdm5jb25m
aWdmaWxlLmVycm9yc3RyX2F1dG9wcm9wKGNvbmZpZ19maWxlX3BhdGgpKQorICAgICAgICAgICAg
ZWxpZiBwbmdfbWlzc2luZzoKKyAgICAgICAgICAgICAgICBzZWxmLl9oYW5kbGVfc3R5bGVfZXJy
b3IoMCwgJ2ltYWdlL3BuZycsIDUsIGNoZWNrc3ZuY29uZmlnZmlsZS5lcnJvcnN0cl9wbmcoY29u
ZmlnX2ZpbGVfcGF0aCkpCiAKICAgICAgICAgZWxpZiBkZXRlY3Rpb24gPT0gInN2biI6CiAgICAg
ICAgICAgICBwcm9wX2dldCA9IHNlbGYuX2RldGVjdG9yLnByb3BnZXQoInN2bjptaW1lLXR5cGUi
LCBzZWxmLl9maWxlX3BhdGgpCiAgICAgICAgICAgICBpZiBwcm9wX2dldCAhPSAiaW1hZ2UvcG5n
IjoKLSAgICAgICAgICAgICAgICBlcnJvcnN0ciA9ICJTZXQgdGhlIHN2bjptaW1lLXR5cGUgcHJv
cGVydHkgKHN2biBwcm9wc2V0IHN2bjptaW1lLXR5cGUgaW1hZ2UvcG5nICIgKyBzZWxmLl9maWxl
X3BhdGggKyAiKS4iCisgICAgICAgICAgICAgICAgZXJyb3JzdHIgPSAiU2V0IHRoZSBzdm46bWlt
ZS10eXBlIHByb3BlcnR5IChzdm4gcHJvcHNldCBzdm46bWltZS10eXBlIGltYWdlL3BuZyAlcyku
IiAlIHNlbGYuX2ZpbGVfcGF0aAogICAgICAgICAgICAgICAgIHNlbGYuX2hhbmRsZV9zdHlsZV9l
cnJvcigwLCAnaW1hZ2UvcG5nJywgNSwgZXJyb3JzdHIpCiAKLSAgICBkZWYgX2NvbmZpZ19maWxl
X3BhdGgoc2VsZik6Ci0gICAgICAgIGNvbmZpZ19maWxlID0gIiIKLSAgICAgICAgaWYgc2VsZi5f
aG9zdC5wbGF0Zm9ybS5pc193aW4oKToKLSAgICAgICAgICAgIGNvbmZpZ19maWxlX3BhdGggPSBz
ZWxmLl9mcy5qb2luKG9zLmVudmlyb25bJ0FQUERBVEEnXSwgIlN1YnZlcnNpb25cY29uZmlnIikK
LSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGNvbmZpZ19maWxlX3BhdGggPSBzZWxmLl9mcy5q
b2luKHNlbGYuX2ZzLmV4cGFuZHVzZXIoIn4iKSwgIi5zdWJ2ZXJzaW9uL2NvbmZpZyIpCi0gICAg
ICAgIHJldHVybiBjb25maWdfZmlsZV9wYXRoCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvY29tbWFuZHMvZG93bmxvYWQucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvY29tbWFuZHMvZG93bmxvYWQucHkKaW5kZXggNGY2YjczNzBlMGIwNTA2YTRhNmZjYzUy
ZGUwZmNlNGI0MmEzNTBiOC4uNjBjODkyMDhmNGMyYTMwZDc3NWY3MjE3YzU1N2FmY2Y1NjYwZjM2
NiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Rvd25s
b2FkLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9kb3dubG9h
ZC5weQpAQCAtOTAsNiArOTAsNyBAQCBjbGFzcyBMYW5kKEFic3RyYWN0U2VxdWVuY2VkQ29tbWFu
ZCk6CiAgICAgYXJndW1lbnRfbmFtZXMgPSAiW0JVR0lEXSIKICAgICBzaG93X2luX21haW5faGVs
cCA9IFRydWUKICAgICBzdGVwcyA9IFsKKyAgICAgICAgc3RlcHMuQWRkU3ZuTWltZXR5cGVGb3JQ
bmcsCiAgICAgICAgIHN0ZXBzLlVwZGF0ZUNoYW5nZUxvZ3NXaXRoUmV2aWV3ZXIsCiAgICAgICAg
IHN0ZXBzLlZhbGlkYXRlUmV2aWV3ZXIsCiAgICAgICAgIHN0ZXBzLlZhbGlkYXRlQ2hhbmdlTG9n
cywgIyBXZSBkbyB0aGlzIGFmdGVyIFVwZGF0ZUNoYW5nZUxvZ3NXaXRoUmV2aWV3ZXIgdG8gYXZv
aWQgbm90IGhhdmluZyB0byBjYWNoZSB0aGUgZGlmZiB0d2ljZS4KZGlmZiAtLWdpdCBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9fX2luaXRfXy5weSBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9zdGVwcy9fX2luaXRfXy5weQppbmRleCBhY2E5NzA2ZjVhODhkZjI1ZTdh
OGEzMTlkZjUxNzUyY2I4MTRlZTk1Li41NjQyOWU4ZmUyNGViYzQ3Y2I0OTg5ZWZiNzBjNzBiYzhi
NTJmYzQxIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvX19p
bml0X18ucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL19faW5pdF9f
LnB5CkBAIC0yNyw2ICsyNyw3IEBACiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKICMgRklYTUU6IElzIHRoaXMg
dGhlIHJpZ2h0IHdheSB0byBkbyB0aGlzPworZnJvbSB3ZWJraXRweS50b29sLnN0ZXBzLmFkZHN2
bm1pbWV0eXBlZm9ycG5nIGltcG9ydCBBZGRTdm5NaW1ldHlwZUZvclBuZwogZnJvbSB3ZWJraXRw
eS50b29sLnN0ZXBzLmFwcGx5cGF0Y2ggaW1wb3J0IEFwcGx5UGF0Y2gKIGZyb20gd2Via2l0cHku
dG9vbC5zdGVwcy5hcHBseXBhdGNod2l0aGxvY2FsY29tbWl0IGltcG9ydCBBcHBseVBhdGNoV2l0
aExvY2FsQ29tbWl0CiBmcm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMuYXBwbHl3YXRjaGxpc3QgaW1w
b3J0IEFwcGx5V2F0Y2hMaXN0CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvc3RlcHMvYWRkc3ZubWltZXR5cGVmb3JwbmcucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvc3RlcHMvYWRkc3ZubWltZXR5cGVmb3JwbmcucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzNiZWMxNWRi
NmIzYjU3YmU5NmMzNWMwYzMwNWEwNDNlYTY4Mzc1MQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9hZGRzdm5taW1ldHlwZWZvcnBuZy5weQpAQCAt
MCwwICsxLDc3IEBACisjIENvcHlyaWdodCAoQykgMjAxMiBCYWxhenMgQW5rZXMgKGJhbmtAaW5m
LnUtc3plZ2VkLmh1KSBVbml2ZXJzaXR5IG9mIFN6ZWdlZAorIworIyBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
KyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisjIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworZnJvbSB3ZWJraXRweS50b29sLnN0
ZXBzLmFic3RyYWN0c3RlcCBpbXBvcnQgQWJzdHJhY3RTdGVwCitmcm9tIHdlYmtpdHB5LmNvbW1v
biBpbXBvcnQgY2hlY2tzdm5jb25maWdmaWxlCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0u
ZGVwcmVjYXRlZF9sb2dnaW5nIGltcG9ydCBsb2cKK2Zyb20gd2Via2l0cHkuY29tbW9uLmNoZWNr
b3V0LnNjbS5kZXRlY3Rpb24gaW1wb3J0IFNDTURldGVjdG9yCitmcm9tIHdlYmtpdHB5LmNvbW1v
bi5zeXN0ZW0uc3lzdGVtaG9zdCBpbXBvcnQgU3lzdGVtSG9zdAorCisKK2NsYXNzIEFkZFN2bk1p
bWV0eXBlRm9yUG5nKEFic3RyYWN0U3RlcCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHRvb2ws
IG9wdGlvbnMsIGhvc3Q9Tm9uZSwgc2NtPU5vbmUpOgorICAgICAgICBzZWxmLl90b29sID0gdG9v
bAorICAgICAgICBzZWxmLl9vcHRpb25zID0gb3B0aW9ucworICAgICAgICBzZWxmLl9ob3N0ID0g
aG9zdCBvciBTeXN0ZW1Ib3N0KCkKKyAgICAgICAgc2VsZi5fZnMgPSBzZWxmLl9ob3N0LmZpbGVz
eXN0ZW0KKyAgICAgICAgc2VsZi5fZGV0ZWN0b3IgPSBzY20gb3IgU0NNRGV0ZWN0b3Ioc2VsZi5f
ZnMsIHNlbGYuX2hvc3QuZXhlY3V0aXZlKS5kZXRlY3Rfc2NtX3N5c3RlbShzZWxmLl9mcy5nZXRj
d2QoKSkKKworICAgIGRlZiBydW4oc2VsZiwgc3RhdGUpOgorICAgICAgICBwbmdfZmlsZXMgPSBz
ZWxmLl9jaGVja19wbmdzKHNlbGYuX2NoYW5nZWRfZmlsZXMoc3RhdGUpKQorCisgICAgICAgIGlm
IHBuZ19maWxlczoKKyAgICAgICAgICAgIGRldGVjdGlvbiA9IHNlbGYuX2RldGVjdG9yLmRpc3Bs
YXlfbmFtZSgpCisKKyAgICAgICAgICAgIGlmIGRldGVjdGlvbiA9PSAiZ2l0IjoKKyAgICAgICAg
ICAgICAgICAoZmlsZV9taXNzaW5nLCBhdXRvcHJvcF9taXNzaW5nLCBwbmdfbWlzc2luZykgPSBj
aGVja3N2bmNvbmZpZ2ZpbGUuY2hlY2soc2VsZi5faG9zdCwgc2VsZi5fZnMpCisgICAgICAgICAg
ICAgICAgY29uZmlnX2ZpbGVfcGF0aCA9IGNoZWNrc3ZuY29uZmlnZmlsZS5jb25maWdfZmlsZV9w
YXRoKHNlbGYuX2hvc3QsIHNlbGYuX2ZzKQorCisgICAgICAgICAgICAgICAgaWYgZmlsZV9taXNz
aW5nOgorICAgICAgICAgICAgICAgICAgICBsb2coIlRoZXJlIGlzIG5vIFNWTiBjb25maWcgZmls
ZS4gVGhlIHN2bjptaW1lLXR5cGUgb2YgcG5ncyB3b24ndCBzZXQuIikKKyAgICAgICAgICAgICAg
ICAgICAgaWYgbm90IHNlbGYuX3Rvb2wudXNlci5jb25maXJtKCJBcmUgeW91IHN1cmUgeW91IHdh
bnQgdG8gY29udGludWU/IiwgZGVmYXVsdD0ibiIpOgorICAgICAgICAgICAgICAgICAgICAgICAg
c2VsZi5fZXhpdCgxKQorICAgICAgICAgICAgICAgIGVsaWYgYXV0b3Byb3BfbWlzc2luZyBhbmQg
cG5nX21pc3Npbmc6CisgICAgICAgICAgICAgICAgICAgIGxvZyhjaGVja3N2bmNvbmZpZ2ZpbGUu
ZXJyb3JzdHJfYXV0b3Byb3AoY29uZmlnX2ZpbGVfcGF0aCkgKyBjaGVja3N2bmNvbmZpZ2ZpbGUu
ZXJyb3JzdHJfcG5nKGNvbmZpZ19maWxlX3BhdGgpKQorICAgICAgICAgICAgICAgICAgICBpZiBu
b3Qgc2VsZi5fdG9vbC51c2VyLmNvbmZpcm0oIkRvIHlvdSB3YW50IHRvIGNvbnRpbnVlPyIsIGRl
ZmF1bHQ9Im4iKToKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2V4aXQoMSkKKyAgICAg
ICAgICAgICAgICBlbGlmIGF1dG9wcm9wX21pc3Npbmc6CisgICAgICAgICAgICAgICAgICAgIGxv
ZyhjaGVja3N2bmNvbmZpZ2ZpbGUuZXJyb3JzdHJfYXV0b3Byb3AoY29uZmlnX2ZpbGVfcGF0aCkp
CisgICAgICAgICAgICAgICAgICAgIGlmIG5vdCBzZWxmLl90b29sLnVzZXIuY29uZmlybSgiRG8g
eW91IHdhbnQgdG8gY29udGludWU/IiwgZGVmYXVsdD0ibiIpOgorICAgICAgICAgICAgICAgICAg
ICAgICAgc2VsZi5fZXhpdCgxKQorICAgICAgICAgICAgICAgIGVsaWYgcG5nX21pc3Npbmc6Cisg
ICAgICAgICAgICAgICAgICAgIGxvZyhjaGVja3N2bmNvbmZpZ2ZpbGUuZXJyb3JzdHJfcG5nKGNv
bmZpZ19maWxlX3BhdGgpKQorICAgICAgICAgICAgICAgICAgICBpZiBub3Qgc2VsZi5fdG9vbC51
c2VyLmNvbmZpcm0oIkRvIHlvdSB3YW50IHRvIGNvbnRpbnVlPyIsIGRlZmF1bHQ9Im4iKToKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2V4aXQoMSkKKworICAgICAgICAgICAgZWxpZiBk
ZXRlY3Rpb24gPT0gInN2biI6CisgICAgICAgICAgICAgICAgZm9yIGZpbGVuYW1lIGluIHBuZ19m
aWxlczoKKyAgICAgICAgICAgICAgICAgICAgaWYgc2VsZi5fZGV0ZWN0b3IuZXhpc3RzKGZpbGVu
YW1lKSBhbmQgc2VsZi5fZGV0ZWN0b3IucHJvcGdldCgnc3ZuOm1pbWUtdHlwZScsIGZpbGVuYW1l
KSAhPSAnaW1hZ2UvcG5nJzoKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ICJBZGRpbmcg
aW1hZ2UvcG5nIG1pbWUtdHlwZSB0byAlcyIgJSBmaWxlbmFtZQorICAgICAgICAgICAgICAgICAg
ICAgICAgc2VsZi5fZGV0ZWN0b3IucHJvcHNldCgnc3ZuOm1pbWUtdHlwZScsICdpbWFnZS9wbmcn
LCBmaWxlbmFtZSkKKworICAgIGRlZiBfY2hlY2tfcG5ncyhzZWxmLCBjaGFuZ2VkX2ZpbGVzKToK
KyAgICAgICAgcG5nX2ZpbGVzID0gW10KKyAgICAgICAgZm9yIGZpbGVuYW1lIGluIGNoYW5nZWRf
ZmlsZXM6CisgICAgICAgICAgICBpZiBmaWxlbmFtZS5lbmRzd2l0aCgnLnBuZycpOgorICAgICAg
ICAgICAgICAgIHBuZ19maWxlcy5hcHBlbmQoZmlsZW5hbWUpCisgICAgICAgIHJldHVybiBwbmdf
ZmlsZXMKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9hZGRz
dm5taW1ldHlwZWZvcnBuZ191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9v
bC9zdGVwcy9hZGRzdm5taW1ldHlwZWZvcnBuZ191bml0dGVzdC5weQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMjFj
NmJjOTQzYTI0MGEyODFjYjQzMWYxNmZjMTgxY2FmYWFmN2NkCi0tLSAvZGV2L251bGwKKysrIGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2FkZHN2bm1pbWV0eXBlZm9ycG5nX3Vu
aXR0ZXN0LnB5CkBAIC0wLDAgKzEsNTggQEAKKyMgQ29weXJpZ2h0IChDKSAyMDEyIEJhbGF6cyBB
bmtlcyAoYmFua0BpbmYudS1zemVnZWQuaHUpIFVuaXZlcnNpdHkgb2YgU3plZ2VkCisjCisjIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMK
KyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQK
KyMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitpbXBvcnQg
dW5pdHRlc3QKKworZnJvbSB3ZWJraXRweS50b29sLnN0ZXBzLmFkZHN2bm1pbWV0eXBlZm9ycG5n
IGltcG9ydCBBZGRTdm5NaW1ldHlwZUZvclBuZworZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVt
LmZpbGVzeXN0ZW1fbW9jayBpbXBvcnQgTW9ja0ZpbGVTeXN0ZW0KK2Zyb20gd2Via2l0cHkudG9v
bC5tb2NrdG9vbCBpbXBvcnQgTW9ja09wdGlvbnMsIE1vY2tUb29sCitmcm9tIHdlYmtpdHB5LmNv
bW1vbi5zeXN0ZW0uc3lzdGVtaG9zdF9tb2NrIGltcG9ydCBNb2NrU3lzdGVtSG9zdAorZnJvbSB3
ZWJraXRweS5jb21tb24uc3lzdGVtLm91dHB1dGNhcHR1cmUgaW1wb3J0IE91dHB1dENhcHR1cmUK
KworCitjbGFzcyBNb2NrU0NNRGV0ZWN0b3Iob2JqZWN0KToKKworICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBzY20pOgorICAgICAgICBzZWxmLl9zY20gPSBzY20KKworICAgIGRlZiBkaXNwbGF5X25h
bWUoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9zY20KKworCitjbGFzcyBBZGRTdm5NaW1l
dHlwZUZvclBuZ1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorICAgIGRlZiB0ZXN0X3J1bihzZWxm
KToKKyAgICAgICAgY2FwdHVyZSA9IE91dHB1dENhcHR1cmUoKQorICAgICAgICBvcHRpb25zID0g
TW9ja09wdGlvbnMoZ2l0X2NvbW1pdD0nTU9DSyBnaXQgY29tbWl0JykKKworICAgICAgICBmaWxl
cyA9IHsnL1VzZXJzL21vY2svLnN1YnZlcnNpb24vY29uZmlnJzogJ2VuYWJsZS1hdXRvLXByb3Bz
ID0geWVzXG4qLnBuZyA9IHN2bjptaW1lLXR5cGU9aW1hZ2UvcG5nJ30KKyAgICAgICAgZnMgPSBN
b2NrRmlsZVN5c3RlbShmaWxlcykKKyAgICAgICAgc2NtID0gTW9ja1NDTURldGVjdG9yKCdnaXQn
KQorCisgICAgICAgIHN0ZXAgPSBBZGRTdm5NaW1ldHlwZUZvclBuZyhNb2NrVG9vbCgpLCBvcHRp
b25zLCBNb2NrU3lzdGVtSG9zdChvc19uYW1lPSdsaW51eCcsIGZpbGVzeXN0ZW09ZnMpLCBzY20p
CisgICAgICAgIHN0YXRlID0geworICAgICAgICAgICAgImNoYW5nZWRfZmlsZXMiOiBbInRlc3Qu
cG5nIiwgInRlc3QudHh0Il0sCisgICAgICAgIH0KKyAgICAgICAgdHJ5OgorICAgICAgICAgICAg
Y2FwdHVyZS5hc3NlcnRfb3V0cHV0cyhzZWxmLCBzdGVwLnJ1biwgW3N0YXRlXSkKKyAgICAgICAg
ZXhjZXB0IFN5c3RlbUV4aXQsIGU6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhlLmNv
ZGUsIDEpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>