<?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>73226</bug_id>
          
          <creation_ts>2011-11-28 10:06:38 -0800</creation_ts>
          <short_desc>make chromium layout_tests observe use_skia_on_mac.gypi from chromium/build</short_desc>
          <delta_ts>2012-02-13 10:39:02 -0800</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>Mac</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>epoger</reporter>
          <assigned_to>epoger</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric</cc>
    
    <cc>ojan</cc>
    
    <cc>reed</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>509913</commentid>
    <comment_count>0</comment_count>
    <who name="">epoger</who>
    <bug_when>2011-11-28 10:06:38 -0800</bug_when>
    <thetext>Make chromium_mac port look at chromium&apos;s src/build/use_skia_on_mac.gypi to determine whether Skia is turned on by default.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>509917</commentid>
    <comment_count>1</comment_count>
      <attachid>116775</attachid>
    <who name="">epoger</who>
    <bug_when>2011-11-28 10:11:16 -0800</bug_when>
    <thetext>Created attachment 116775
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>509920</commentid>
    <comment_count>2</comment_count>
      <attachid>116775</attachid>
    <who name="">epoger</who>
    <bug_when>2011-11-28 10:12:57 -0800</bug_when>
    <thetext>Comment on attachment 116775
Patch

This patch won&apos;t work until http://codereview.chromium.org/8716011/ (&apos;Move use_skia_on_mac setting into its own gypi file, so that WebKit scripts can&apos;) has landed in Chromium and been deps-rolled into WebKit.  I will update this bug once all that has happened.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>509925</commentid>
    <comment_count>3</comment_count>
      <attachid>116775</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-11-28 10:20:20 -0800</bug_when>
    <thetext>Comment on attachment 116775
Patch

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

&gt; Tools/Scripts/webkitpy/layout_tests/port/chromium_mac.py:59
&gt; +def is_using_skia_by_default():
&gt; +    &quot;&quot;&quot;Returns True if the Chromium build sets use_skia=1 by default.&quot;&quot;&quot;
&gt; +    gypi_path = os.path.join(
&gt; +        os.path.dirname(__file__),
&gt; +        os.path.pardir, os.path.pardir, os.path.pardir, os.path.pardir, os.path.pardir,
&gt; +        &apos;Source&apos;, &apos;WebKit&apos;, &apos;chromium&apos;, &apos;build&apos;, &apos;use_skia_on_mac.gypi&apos;)
&gt; +    # If this open() fails with &quot;No such file or directory&quot;, make sure that you
&gt; +    # have updated the Chromium DEPS within your WebKit tree.
&gt; +    # (Run update-webkit --chromium to pick up chromium/build/use_skia_on_mac.gypi )
&gt; +    with open(gypi_path) as gypi_file:
&gt; +        use_skia_dict = eval(gypi_file.read())
&gt; +        if use_skia_dict[&apos;use_skia_on_mac%&apos;] == 1:
&gt; +            return True
&gt; +        else:
&gt; +            return False

Woah, crazy.  This seems like something of a hack.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>509930</commentid>
    <comment_count>4</comment_count>
    <who name="">epoger</who>
    <bug_when>2011-11-28 10:28:57 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Woah, crazy.  This seems like something of a hack.

I suppose so.  But maybe it is a good hack...

Given that the correct layout test behavior depends on this Chromium build flag, it seems to me that the layout test code should depend on that same build flag.  Otherwise, we have to deal with mismatching expectations until deps rolls happen (in both directions).

Is there a better way to make this change happen in sync?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>509935</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-11-28 10:32:10 -0800</bug_when>
    <thetext>Maybe the best course of action is to add a FIXME comment about this code just being useful for the transition and saying it should be removed when such-and-such happens.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>509940</commentid>
    <comment_count>6</comment_count>
    <who name="">epoger</who>
    <bug_when>2011-11-28 10:35:13 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; Maybe the best course of action is to add a FIXME comment about this code just being useful for the transition and saying it should be removed when such-and-such happens.

That certainly sounds reasonable to me.

If/when the chromium CL lands, I will make that change (along with any other changes) and ping you.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>509953</commentid>
    <comment_count>7</comment_count>
      <attachid>116775</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-11-28 10:54:16 -0800</bug_when>
    <thetext>Comment on attachment 116775
Patch

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

&gt; Tools/Scripts/webkitpy/layout_tests/port/chromium_mac.py:50
&gt; +    gypi_path = os.path.join(
&gt; +        os.path.dirname(__file__),
&gt; +        os.path.pardir, os.path.pardir, os.path.pardir, os.path.pardir, os.path.pardir,
&gt; +        &apos;Source&apos;, &apos;WebKit&apos;, &apos;chromium&apos;, &apos;build&apos;, &apos;use_skia_on_mac.gypi&apos;)

Filesystem, please.  Also Checkout can point you to the chromium directory I believe.  Certainly Port can.

&gt; Tools/Scripts/webkitpy/layout_tests/port/chromium_mac.py:54
&gt; +    with open(gypi_path) as gypi_file:

Please use FileSystem.  Please move this to a class so it can have a pointer to a Host/FileSystem so it can be mocked and tested.

&gt; Tools/Scripts/webkitpy/layout_tests/port/chromium_mac.py:55
&gt; +        use_skia_dict = eval(gypi_file.read())

Is this the expected way to parse gypi&apos;s?

&gt; Tools/Scripts/webkitpy/layout_tests/port/chromium_mac.py:58
&gt; +        if use_skia_dict[&apos;use_skia_on_mac%&apos;] == 1:
&gt; +            return True
&gt; +        else:

This could just be return use_skia_dict[&apos;use_skia_on_mac%&apos;] == 1 instead of this 4-line if.

&gt;&gt; Tools/Scripts/webkitpy/layout_tests/port/chromium_mac.py:59
&gt;&gt; +            return False
&gt; 
&gt; Woah, crazy.  This seems like something of a hack.

This is a huge hack. :(  Doubly so that it&apos;s a free function. :(

&gt; Tools/Scripts/webkitpy/layout_tests/port/chromium_mac_unittest.py:54
&gt; +        if chromium_mac.is_using_skia_by_default():
&gt; +            self.assertTrue(self.make_port().name() in (
&gt; +                &apos;chromium-mac-leopard&apos;, &apos;chromium-mac-snowleopard&apos;, &apos;chromium-mac-lion&apos;, &apos;chromium-mac-future&apos;))
&gt; +        else:
&gt; +            self.assertTrue(self.make_port().name() in (
&gt; +                &apos;chromium-cg-mac-leopard&apos;, &apos;chromium-cg-mac-snowleopard&apos;, &apos;chromium-cg-mac-lion&apos;, &apos;chromium-cg-mac-future&apos;))

No, no.  Please do not make the unittests depend on the environment anymore than they already do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510011</commentid>
    <comment_count>8</comment_count>
    <who name="">epoger</who>
    <bug_when>2011-11-28 11:29:51 -0800</bug_when>
    <thetext>(In reply to comment #7)

Thanks for the feedback, Eric; I will try to incorporate the specific changes you requested and update the bug when I have done so.

&gt; &gt;&gt; Tools/Scripts/webkitpy/layout_tests/port/chromium_mac.py:59
&gt; &gt;&gt; +            return False
&gt; &gt; 
&gt; &gt; Woah, crazy.  This seems like something of a hack.
&gt; 
&gt; This is a huge hack. :(  Doubly so that it&apos;s a free function. :(
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/layout_tests/port/chromium_mac_unittest.py:54
&gt; &gt; +        if chromium_mac.is_using_skia_by_default():
&gt; &gt; +            self.assertTrue(self.make_port().name() in (
&gt; &gt; +                &apos;chromium-mac-leopard&apos;, &apos;chromium-mac-snowleopard&apos;, &apos;chromium-mac-lion&apos;, &apos;chromium-mac-future&apos;))
&gt; &gt; +        else:
&gt; &gt; +            self.assertTrue(self.make_port().name() in (
&gt; &gt; +                &apos;chromium-cg-mac-leopard&apos;, &apos;chromium-cg-mac-snowleopard&apos;, &apos;chromium-cg-mac-lion&apos;, &apos;chromium-cg-mac-future&apos;))
&gt; 
&gt; No, no.  Please do not make the unittests depend on the environment anymore than they already do.

Stepping back a bit, is there a preferable way to accomplish the overarching goal here?  We need some way of synchronizing the chromium and webkit trees, because the chromium tree decides whether to use CG or Skia and that affects the results of NRWT (in the webkit tree).

It&apos;s not really an &quot;environment&quot; parameter... it&apos;s a characteristic of the DumpRenderTree binary that is being tested by NRWT.

I suppose I could add a flag to DumpRenderTree that would make it report whether it was built using Skia or CG, and NRWT could use that information rather than looking in the chromium build configuration.  Would that be preferable?

Or maybe there is some other clever way of synchronizing this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510033</commentid>
    <comment_count>9</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-11-28 11:49:27 -0800</bug_when>
    <thetext>A couple less hacky suggestions:

1) Run nm on DumpRenderTree and grep for a symbol that&apos;s only in Skia builds.
2) Update the gyp files so that if use_skia is true, it writes a file to disk with the word &quot;skia&quot; or &quot;cg&quot; in it.  NRWT can read this file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510037</commentid>
    <comment_count>10</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-11-28 11:52:48 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; I suppose I could add a flag to DumpRenderTree that would make it report whether it was built using Skia or CG, and NRWT could use that information rather than looking in the chromium build configuration.  Would that be preferable?

Oh, I didn&apos;t see this.  This seems fine too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510044</commentid>
    <comment_count>11</comment_count>
    <who name="">epoger</who>
    <bug_when>2011-11-28 11:58:05 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #8)
&gt; &gt; I suppose I could add a flag to DumpRenderTree that would make it report whether it was built using Skia or CG, and NRWT could use that information rather than looking in the chromium build configuration.  Would that be preferable?
&gt; 
&gt; Oh, I didn&apos;t see this.  This seems fine too.

Do others agree that it is better to depend on the DumpRenderTree binary rather than the gyp that was used to build it?  If so, I can go down that road instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512820</commentid>
    <comment_count>12</comment_count>
      <attachid>117432</attachid>
    <who name="">epoger</who>
    <bug_when>2011-12-01 09:05:46 -0800</bug_when>
    <thetext>Created attachment 117432
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512821</commentid>
    <comment_count>13</comment_count>
      <attachid>116775</attachid>
    <who name="">epoger</who>
    <bug_when>2011-12-01 09:06:37 -0800</bug_when>
    <thetext>Comment on attachment 116775
Patch

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

&gt;&gt; Tools/Scripts/webkitpy/layout_tests/port/chromium_mac.py:50
&gt;&gt; +        &apos;Source&apos;, &apos;WebKit&apos;, &apos;chromium&apos;, &apos;build&apos;, &apos;use_skia_on_mac.gypi&apos;)
&gt; 
&gt; Filesystem, please.  Also Checkout can point you to the chromium directory I believe.  Certainly Port can.

Now using filesystem.  See new comment indicating why I am unable to call ChromiumPort.path_from_chromium_base() to get the path.

&gt;&gt; Tools/Scripts/webkitpy/layout_tests/port/chromium_mac.py:54
&gt;&gt; +    with open(gypi_path) as gypi_file:
&gt; 
&gt; Please use FileSystem.  Please move this to a class so it can have a pointer to a Host/FileSystem so it can be mocked and tested.

Using filesystem. I&apos;d prefer to not go to the trouble of adding a new class (or adding unittests), since it&apos;s just a temporary thing while we transition to use_skia=1.

&gt;&gt; Tools/Scripts/webkitpy/layout_tests/port/chromium_mac.py:55
&gt;&gt; +        use_skia_dict = eval(gypi_file.read())
&gt; 
&gt; Is this the expected way to parse gypi&apos;s?

Yes. Added documentation about this.

&gt;&gt; Tools/Scripts/webkitpy/layout_tests/port/chromium_mac.py:58
&gt;&gt; +        else:
&gt; 
&gt; This could just be return use_skia_dict[&apos;use_skia_on_mac%&apos;] == 1 instead of this 4-line if.

Done.

&gt;&gt;&gt; Tools/Scripts/webkitpy/layout_tests/port/chromium_mac.py:59
&gt;&gt;&gt; +            return False
&gt;&gt; 
&gt;&gt; Woah, crazy.  This seems like something of a hack.
&gt; 
&gt; This is a huge hack. :(  Doubly so that it&apos;s a free function. :(

Less hacky now, but admittedly still on the hacky side... but I think it&apos;s a fair tradeoff in order to keep things green during a transition period.

&gt;&gt; Tools/Scripts/webkitpy/layout_tests/port/chromium_mac_unittest.py:54
&gt;&gt; +                &apos;chromium-cg-mac-leopard&apos;, &apos;chromium-cg-mac-snowleopard&apos;, &apos;chromium-cg-mac-lion&apos;, &apos;chromium-cg-mac-future&apos;))
&gt; 
&gt; No, no.  Please do not make the unittests depend on the environment anymore than they already do.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512825</commentid>
    <comment_count>14</comment_count>
    <who name="">epoger</who>
    <bug_when>2011-12-01 09:09:28 -0800</bug_when>
    <thetext>abarth/eric/tony: please see new patch.  I&apos;m still parsing the gypi to see if use_skia=1 , but given that this is just a transitional thing I think it&apos;s a pretty good balance.  If you still have objections, maybe we can talk live to figure out a reasonably simple way to deal with the transition phase?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513005</commentid>
    <comment_count>15</comment_count>
    <who name="">epoger</who>
    <bug_when>2011-12-01 12:48:37 -0800</bug_when>
    <thetext>abarth and I have been discussing this on #webkit.  synopsis:

abarth says: why bother with this when we can just &quot;flip the switch&quot; to turn skia on in Chrome, and then live with red buildbots until chromium-&gt;webkit and webkit-&gt;chromium deps rolls are completed a few hours later?

epoger says: I think it&apos;s more likely for those deps rolls to take a day or two to complete, and given that this temporary &quot;hack&quot; will prevent that synchronization problem, why not take advantage of that and keep the buildbots green?

Adam and Eric: I must say I am mystified by this preference for breaking developers&apos; layout_test results rather than allowing &quot;hacky&quot; code into webkit for a few days.  But you guys are WebKit reviewers and I&apos;m not, so I will let you decide.  Please let me know what approach you want me to take, and I&apos;ll take it:

a) commit this patch so layout_test results stay valid during the transition phase, but in a &quot;hacky&quot; way
b) commit the use_skia=1 change to chromium, knowing that it will break layout_test results, and then try to get webkit-&gt;chromium and chromium-&gt;webkit deps rolls done ASAP
c) take some other approach to keeping the buildbots green, even though that&apos;s more effort (and please tell me what approach you will find acceptable)
d) something else I haven&apos;t thought of</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513074</commentid>
    <comment_count>16</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-12-01 14:00:08 -0800</bug_when>
    <thetext>I guess I don&apos;t understand why this needs to break things for more than a few hours.  Can&apos;t you just use the following plan:

1) Roll Chromium DEPS in WebKit to tip-of-tree.  This should be doable all the time.
2) Enable skia downstream.
3) Roll Chromium DEPS in WebKit to tip-of-tree again.  There shouldn&apos;t be any latency between step (2) and (3).
4) Edit webkitpy now that Skia is the default.  We can review that patch ahead of time so you can land it within minutes of step (3).

Nothing on that list should take any substantial amount of time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513705</commentid>
    <comment_count>17</comment_count>
    <who name="">epoger</who>
    <bug_when>2011-12-02 05:53:26 -0800</bug_when>
    <thetext>(In reply to comment #16)
&gt; I guess I don&apos;t understand why this needs to break things for more than a few hours.  Can&apos;t you just use the following plan:
&gt; 
&gt; 1) Roll Chromium DEPS in WebKit to tip-of-tree.  This should be doable all the time.
&gt; 2) Enable skia downstream.
&gt; 3) Roll Chromium DEPS in WebKit to tip-of-tree again.  There shouldn&apos;t be any latency between step (2) and (3).
&gt; 4) Edit webkitpy now that Skia is the default.  We can review that patch ahead of time so you can land it within minutes of step (3).
&gt; 
&gt; Nothing on that list should take any substantial amount of time.

OK, I&apos;ll do it as a series of changes as close together as possible, rather than committing a synchronization &quot;hack&quot;.  It&apos;s actually slightly different from how you describe (there is also a needed chromium-&gt;webkit deps roll).  Here are the steps I will take, and the state we can expect to be in after each step.

I will either start this process this morning or in about a week (after Chromium M17 branch), depending on some other conversations.  I will update this bug once I know more about the timing.


Current state: 
- chromium tree builds Chromium-Mac using CG
- webkit tree runs layout tests assuming that Chromium-Mac uses CG

1) Roll Chromium DEPS in WebKit (elsewhere I have referred to this as &quot;webkit-&gt;chromium deps&quot;) to tip-of-tree.  I actually did this yesterday, in https://bugs.webkit.org/show_bug.cgi?id=73231 (&apos;webkit-&gt;chromium DEPS roll 111575-&gt;112463&apos;).

State is unchanged.

2) Change chromium tree to build Chromium-Mac using Skia.

State:
- chromium.webkit bots will fail because layout tests (brought in from webkit) assume CG
- build.webkit.org bots will stay green because they haven&apos;t picked up the change in chromium yet

3) Update webkitpy scripts to assume Chromium-Mac uses Skia AND roll Chromium DEPS in WebKit, in the same commit.

State:
- chromium.webkit &quot;canary&quot; bots will go green because webkit tip-of-tree now agrees with Chromium again
- chromium.webkit &quot;deps&quot; bots will be red until we roll WebKit DEPS in Chromium to pick up new layout_test assumptions
- build.webkit.org bots will stay green because Chromium build and layout_test assumptions changed simultaneously

4) Roll WebKit DEPS in Chromium to tip-of-tree to pick up layout_test changes.

State: all buildbots should be green.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513857</commentid>
    <comment_count>18</comment_count>
    <who name="">epoger</who>
    <bug_when>2011-12-02 09:44:37 -0800</bug_when>
    <thetext>(In reply to comment #17)
&gt; I will either start this process this morning or in about a week (after Chromium M17 branch), depending on some other conversations.  I will update this bug once I know more about the timing.

M17 branch is slated for the first part of next week; we will wait until after that.

Unless I hear otherwise, I will abandon the synchronization &quot;hack&quot; patch in this bug, and just follow the steps Adam and I described above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513862</commentid>
    <comment_count>19</comment_count>
    <who name="">epoger</who>
    <bug_when>2011-12-02 09:45:25 -0800</bug_when>
    <thetext>(In reply to comment #18)
&gt; (In reply to comment #17)
&gt; &gt; I will either start this process this morning or in about a week (after Chromium M17 branch), depending on some other conversations.  I will update this bug once I know more about the timing.
&gt; 
&gt; M17 branch is slated for the first part of next week; we will wait until after that.
&gt; 
&gt; Unless I hear otherwise, I will abandon the synchronization &quot;hack&quot; patch in this bug, and just follow the steps Adam and I described above.

P.S. Progress in &quot;flipping the switch&quot; will be tracked in http://crbug.com/101731 (&apos;re-enable use_skia by default&apos;).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555367</commentid>
    <comment_count>20</comment_count>
      <attachid>117432</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-02-13 10:36:36 -0800</bug_when>
    <thetext>Comment on attachment 117432
Patch

Isn&apos;t the CG port dead?  Does this patch still make sense?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555370</commentid>
    <comment_count>21</comment_count>
      <attachid>117432</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-02-13 10:38:43 -0800</bug_when>
    <thetext>Comment on attachment 117432
Patch

Chromium-CG is gone.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116775</attachid>
            <date>2011-11-28 10:11:16 -0800</date>
            <delta_ts>2011-12-01 09:06:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73226-20111128131115.patch</filename>
            <type>text/plain</type>
            <size>8817</size>
            <attacher>epoger</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDEwMTI2MykKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDIwIEBACisyMDExLTExLTI4ICBFbGxpb3QgUG9nZXIgIDxlcG9nZXJAZ29vZ2xlLmNvbT4K
KworICAgICAgICBtYWtlIGNocm9taXVtIGxheW91dF90ZXN0cyBvYnNlcnZlIHVzZV9za2lhX29u
X21hYy5neXBpIGZyb20gY2hyb21pdW0vYnVpbGQKKyAgICAgICAgdG8gZGV0ZXJtaW5lIHdoZXRo
ZXIgU2tpYSBpcyB0dXJuZWQgb24gYnkgZGVmYXVsdC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczMjI2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9w
b3J0L2Nocm9taXVtX2dwdS5weToKKyAgICAgICAgKGdldCk6CisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9tYWMucHk6CisgICAgICAgIChpc191
c2luZ19za2lhX2J5X2RlZmF1bHQpOgorICAgICAgICAoQ2hyb21pdW1NYWNQb3J0Ll9faW5pdF9f
KToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVt
X21hY191bml0dGVzdC5weToKKyAgICAgICAgKENocm9taXVtTWFjUG9ydFRlc3QudGVzdF92ZXJz
aW9ucyk6CisgICAgICAgIChDaHJvbWl1bU1hY1BvcnRUZXN0LnRlc3RfZ3JhcGhpY3NfdHlwZSk6
CisKIDIwMTEtMTEtMjggIFNpbW9uIEhhdXNtYW5uICA8c2ltb24uaGF1c21hbm5Abm9raWEuY29t
PgogCiAgICAgICAgIFtRdF0gQnVpbGQgc3lzdGVtIGZpeGVzIGFnYWluc3QgVjguCkluZGV4OiBU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX2dwdS5weQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2No
cm9taXVtX2dwdS5weQkocmV2aXNpb24gMTAxMjU1KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9ncHUucHkJKHdvcmtpbmcgY29weSkKQEAgLTQ0
LDcgKzQ0LDEwIEBAIGRlZiBnZXQoaG9zdCwgcGxhdGZvcm09Tm9uZSwgcG9ydF9uYW1lPScKICAg
ICAgICAgZWxpZiBwbGF0Zm9ybS5zdGFydHN3aXRoKCdsaW51eCcpOgogICAgICAgICAgICAgcG9y
dF9uYW1lID0gJ2Nocm9taXVtLWdwdS1saW51eCcKICAgICAgICAgZWxpZiBwbGF0Zm9ybSA9PSAn
ZGFyd2luJzoKLSAgICAgICAgICAgIHBvcnRfbmFtZSA9ICdjaHJvbWl1bS1ncHUtY2ctbWFjJwor
ICAgICAgICAgICAgaWYgY2hyb21pdW1fbWFjLmlzX3VzaW5nX3NraWFfYnlfZGVmYXVsdCgpOgor
ICAgICAgICAgICAgICAgIHBvcnRfbmFtZSA9ICdjaHJvbWl1bS1ncHUtbWFjJworICAgICAgICAg
ICAgZWxzZToKKyAgICAgICAgICAgICAgICBwb3J0X25hbWUgPSAnY2hyb21pdW0tZ3B1LWNnLW1h
YycKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3Io
J3Vuc3VwcG9ydGVkIHBsYXRmb3JtOiAlcycgJSBwbGF0Zm9ybSkKIApJbmRleDogVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9tYWMucHkKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9t
YWMucHkJKHJldmlzaW9uIDEwMTI1NSkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3BvcnQvY2hyb21pdW1fbWFjLnB5CSh3b3JraW5nIGNvcHkpCkBAIC00Miw4ICs0Miwy
OSBAQCBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGltCiBfbG9nID0gbG9n
Z2luZy5nZXRMb2dnZXIoX19uYW1lX18pCiAKIAorZGVmIGlzX3VzaW5nX3NraWFfYnlfZGVmYXVs
dCgpOgorICAgICIiIlJldHVybnMgVHJ1ZSBpZiB0aGUgQ2hyb21pdW0gYnVpbGQgc2V0cyB1c2Vf
c2tpYT0xIGJ5IGRlZmF1bHQuIiIiCisgICAgZ3lwaV9wYXRoID0gb3MucGF0aC5qb2luKAorICAg
ICAgICBvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pLAorICAgICAgICBvcy5wYXRoLnBhcmRpciwg
b3MucGF0aC5wYXJkaXIsIG9zLnBhdGgucGFyZGlyLCBvcy5wYXRoLnBhcmRpciwgb3MucGF0aC5w
YXJkaXIsCisgICAgICAgICdTb3VyY2UnLCAnV2ViS2l0JywgJ2Nocm9taXVtJywgJ2J1aWxkJywg
J3VzZV9za2lhX29uX21hYy5neXBpJykKKyAgICAjIElmIHRoaXMgb3BlbigpIGZhaWxzIHdpdGgg
Ik5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkiLCBtYWtlIHN1cmUgdGhhdCB5b3UKKyAgICAjIGhh
dmUgdXBkYXRlZCB0aGUgQ2hyb21pdW0gREVQUyB3aXRoaW4geW91ciBXZWJLaXQgdHJlZS4KKyAg
ICAjIChSdW4gdXBkYXRlLXdlYmtpdCAtLWNocm9taXVtIHRvIHBpY2sgdXAgY2hyb21pdW0vYnVp
bGQvdXNlX3NraWFfb25fbWFjLmd5cGkgKQorICAgIHdpdGggb3BlbihneXBpX3BhdGgpIGFzIGd5
cGlfZmlsZToKKyAgICAgICAgdXNlX3NraWFfZGljdCA9IGV2YWwoZ3lwaV9maWxlLnJlYWQoKSkK
KyAgICAgICAgaWYgdXNlX3NraWFfZGljdFsndXNlX3NraWFfb25fbWFjJSddID09IDE6CisgICAg
ICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJuIEZh
bHNlCisKKwogY2xhc3MgQ2hyb21pdW1NYWNQb3J0KGNocm9taXVtLkNocm9taXVtUG9ydCk6CiAg
ICAgU1VQUE9SVEVEX09TX1ZFUlNJT05TID0gKCdsZW9wYXJkJywgJ3Nub3dsZW9wYXJkJywgJ2xp
b24nLCAnZnV0dXJlJykKKyAgICBpZiBpc191c2luZ19za2lhX2J5X2RlZmF1bHQoKToKKyAgICAg
ICAgREVGQVVMVF9QT1JUX05BTUUgPSAnY2hyb21pdW0tbWFjJworICAgIGVsc2U6CisgICAgICAg
IERFRkFVTFRfUE9SVF9OQU1FID0gJ2Nocm9taXVtLWNnLW1hYycKIAogICAgIEZBTExCQUNLX1BB
VEhTID0gewogICAgICAgICAnbGVvcGFyZCc6IFsKQEAgLTExMiw3ICsxMzMsNyBAQCBjbGFzcyBD
aHJvbWl1bU1hY1BvcnQoY2hyb21pdW0uQ2hyb21pdW1QCiAgICAgZGVmIF9faW5pdF9fKHNlbGYs
IGhvc3QsIHBvcnRfbmFtZT1Ob25lLCBvc192ZXJzaW9uX3N0cmluZz1Ob25lLCAqKmt3YXJncyk6
CiAgICAgICAgICMgV2UncmUgYSBsaXR0bGUgZ2VuZXJpYyBoZXJlIGJlY2F1c2UgdGhpcyBjb2Rl
IGlzIHJldXNlZCBieSB0aGUKICAgICAgICAgIyAnZ29vZ2xlLWNocm9tZScgcG9ydCBhcyB3ZWxs
IGFzIHRoZSAnbW9jay0nIGFuZCAnZHJ5cnVuLScgcG9ydHMuCi0gICAgICAgIHBvcnRfbmFtZSA9
IHBvcnRfbmFtZSBvciAnY2hyb21pdW0tY2ctbWFjJworICAgICAgICBwb3J0X25hbWUgPSBwb3J0
X25hbWUgb3Igc2VsZi5ERUZBVUxUX1BPUlRfTkFNRQogICAgICAgICBjaHJvbWl1bS5DaHJvbWl1
bVBvcnQuX19pbml0X18oc2VsZiwgaG9zdCwgcG9ydF9uYW1lPXBvcnRfbmFtZSwgKiprd2FyZ3Mp
CiAgICAgICAgIGlmIHBvcnRfbmFtZS5lbmRzd2l0aCgnLW1hYycpOgogICAgICAgICAgICAgc2Vs
Zi5fdmVyc2lvbiA9IG1hYy5vc192ZXJzaW9uKG9zX3ZlcnNpb25fc3RyaW5nLCBzZWxmLlNVUFBP
UlRFRF9PU19WRVJTSU9OUykKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3BvcnQvY2hyb21pdW1fbWFjX3VuaXR0ZXN0LnB5Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fbWFjX3VuaXR0ZXN0LnB5
CShyZXZpc2lvbiAxMDEyNTUpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9wb3J0L2Nocm9taXVtX21hY191bml0dGVzdC5weQkod29ya2luZyBjb3B5KQpAQCAtNDYsMjYg
KzQ2LDQyIEBAIGNsYXNzIENocm9taXVtTWFjUG9ydFRlc3QocG9ydF90ZXN0Y2FzZS4KICAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbHMoZXhwZWN0ZWQsIHBvcnQubmFtZSgpKQogCiAgICAgZGVmIHRl
c3RfdmVyc2lvbnMoc2VsZik6Ci0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShzZWxmLm1ha2VfcG9y
dCgpLm5hbWUoKSBpbiAoJ2Nocm9taXVtLWNnLW1hYy1sZW9wYXJkJywgJ2Nocm9taXVtLWNnLW1h
Yy1zbm93bGVvcGFyZCcsICdjaHJvbWl1bS1jZy1tYWMtbGlvbicsICdjaHJvbWl1bS1jZy1tYWMt
ZnV0dXJlJykpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRfbmFtZShOb25lLCAnMTAuNS4zJywgJ2No
cm9taXVtLWNnLW1hYy1sZW9wYXJkJykKLSAgICAgICAgc2VsZi5hc3NlcnRfbmFtZSgnY2hyb21p
dW0tY2ctbWFjJywgJzEwLjUuMycsICdjaHJvbWl1bS1jZy1tYWMtbGVvcGFyZCcpCi0gICAgICAg
IHNlbGYuYXNzZXJ0X25hbWUoJ2Nocm9taXVtLWNnLW1hYy1sZW9wYXJkJywgJzEwLjUuMycsICdj
aHJvbWl1bS1jZy1tYWMtbGVvcGFyZCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0X25hbWUoJ2Nocm9t
aXVtLWNnLW1hYy1sZW9wYXJkJywgJzEwLjYuMycsICdjaHJvbWl1bS1jZy1tYWMtbGVvcGFyZCcp
Ci0KLSAgICAgICAgc2VsZi5hc3NlcnRfbmFtZShOb25lLCAnMTAuNi4zJywgJ2Nocm9taXVtLWNn
LW1hYy1zbm93bGVvcGFyZCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0X25hbWUoJ2Nocm9taXVtLWNn
LW1hYycsICcxMC42LjMnLCAnY2hyb21pdW0tY2ctbWFjLXNub3dsZW9wYXJkJykKLSAgICAgICAg
c2VsZi5hc3NlcnRfbmFtZSgnY2hyb21pdW0tY2ctbWFjLXNub3dsZW9wYXJkJywgJzEwLjUuMycs
ICdjaHJvbWl1bS1jZy1tYWMtc25vd2xlb3BhcmQnKQotICAgICAgICBzZWxmLmFzc2VydF9uYW1l
KCdjaHJvbWl1bS1jZy1tYWMtc25vd2xlb3BhcmQnLCAnMTAuNi4zJywgJ2Nocm9taXVtLWNnLW1h
Yy1zbm93bGVvcGFyZCcpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRfbmFtZShOb25lLCAnMTAuNycs
ICdjaHJvbWl1bS1jZy1tYWMtbGlvbicpCi0gICAgICAgIHNlbGYuYXNzZXJ0X25hbWUoTm9uZSwg
JzEwLjcuMycsICdjaHJvbWl1bS1jZy1tYWMtbGlvbicpCi0gICAgICAgIHNlbGYuYXNzZXJ0X25h
bWUoTm9uZSwgJzEwLjgnLCAnY2hyb21pdW0tY2ctbWFjLWZ1dHVyZScpCi0gICAgICAgIHNlbGYu
YXNzZXJ0X25hbWUoJ2Nocm9taXVtLWNnLW1hYycsICcxMC43LjMnLCAnY2hyb21pdW0tY2ctbWFj
LWxpb24nKQotICAgICAgICBzZWxmLmFzc2VydF9uYW1lKCdjaHJvbWl1bS1jZy1tYWMtZnV0dXJl
JywgJzEwLjQuMycsICdjaHJvbWl1bS1jZy1tYWMtZnV0dXJlJykKLSAgICAgICAgc2VsZi5hc3Nl
cnRfbmFtZSgnY2hyb21pdW0tY2ctbWFjLWZ1dHVyZScsICcxMC41LjMnLCAnY2hyb21pdW0tY2ct
bWFjLWZ1dHVyZScpCi0gICAgICAgIHNlbGYuYXNzZXJ0X25hbWUoJ2Nocm9taXVtLWNnLW1hYy1m
dXR1cmUnLCAnMTAuNi4zJywgJ2Nocm9taXVtLWNnLW1hYy1mdXR1cmUnKQotICAgICAgICBzZWxm
LmFzc2VydF9uYW1lKCdjaHJvbWl1bS1jZy1tYWMtZnV0dXJlJywgJzEwLjcuMycsICdjaHJvbWl1
bS1jZy1tYWMtZnV0dXJlJykKKyAgICAgICAgaWYgY2hyb21pdW1fbWFjLmlzX3VzaW5nX3NraWFf
YnlfZGVmYXVsdCgpOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHNlbGYubWFrZV9wb3J0
KCkubmFtZSgpIGluICgKKyAgICAgICAgICAgICAgICAnY2hyb21pdW0tbWFjLWxlb3BhcmQnLCAn
Y2hyb21pdW0tbWFjLXNub3dsZW9wYXJkJywgJ2Nocm9taXVtLW1hYy1saW9uJywgJ2Nocm9taXVt
LW1hYy1mdXR1cmUnKSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1
ZShzZWxmLm1ha2VfcG9ydCgpLm5hbWUoKSBpbiAoCisgICAgICAgICAgICAgICAgJ2Nocm9taXVt
LWNnLW1hYy1sZW9wYXJkJywgJ2Nocm9taXVtLWNnLW1hYy1zbm93bGVvcGFyZCcsICdjaHJvbWl1
bS1jZy1tYWMtbGlvbicsICdjaHJvbWl1bS1jZy1tYWMtZnV0dXJlJykpCisKKyAgICAgICAgaWYg
Y2hyb21pdW1fbWFjLmlzX3VzaW5nX3NraWFfYnlfZGVmYXVsdCgpOgorICAgICAgICAgICAgc2Vs
Zi5hc3NlcnRfbmFtZShOb25lLCAnMTAuNS4zJywgJ2Nocm9taXVtLW1hYy1sZW9wYXJkJykKKyAg
ICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0X25hbWUoTm9uZSwgJzEwLjUuMycs
ICdjaHJvbWl1bS1jZy1tYWMtbGVvcGFyZCcpCisgICAgICAgIHNlbGYuYXNzZXJ0X25hbWUoJ2No
cm9taXVtLW1hYycsICcxMC41LjMnLCAnY2hyb21pdW0tbWFjLWxlb3BhcmQnKQorICAgICAgICBz
ZWxmLmFzc2VydF9uYW1lKCdjaHJvbWl1bS1tYWMtbGVvcGFyZCcsICcxMC41LjMnLCAnY2hyb21p
dW0tbWFjLWxlb3BhcmQnKQorICAgICAgICBzZWxmLmFzc2VydF9uYW1lKCdjaHJvbWl1bS1tYWMt
bGVvcGFyZCcsICcxMC42LjMnLCAnY2hyb21pdW0tbWFjLWxlb3BhcmQnKQorCisgICAgICAgIGlm
IGNocm9taXVtX21hYy5pc191c2luZ19za2lhX2J5X2RlZmF1bHQoKToKKyAgICAgICAgICAgIHNl
bGYuYXNzZXJ0X25hbWUoTm9uZSwgJzEwLjYuMycsICdjaHJvbWl1bS1tYWMtc25vd2xlb3BhcmQn
KQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRfbmFtZShOb25lLCAnMTAu
Ni4zJywgJ2Nocm9taXVtLWNnLW1hYy1zbm93bGVvcGFyZCcpCisgICAgICAgIHNlbGYuYXNzZXJ0
X25hbWUoJ2Nocm9taXVtLW1hYycsICcxMC42LjMnLCAnY2hyb21pdW0tbWFjLXNub3dsZW9wYXJk
JykKKyAgICAgICAgc2VsZi5hc3NlcnRfbmFtZSgnY2hyb21pdW0tbWFjLXNub3dsZW9wYXJkJywg
JzEwLjUuMycsICdjaHJvbWl1bS1tYWMtc25vd2xlb3BhcmQnKQorICAgICAgICBzZWxmLmFzc2Vy
dF9uYW1lKCdjaHJvbWl1bS1tYWMtc25vd2xlb3BhcmQnLCAnMTAuNi4zJywgJ2Nocm9taXVtLW1h
Yy1zbm93bGVvcGFyZCcpCisKKyAgICAgICAgaWYgY2hyb21pdW1fbWFjLmlzX3VzaW5nX3NraWFf
YnlfZGVmYXVsdCgpOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRfbmFtZShOb25lLCAnMTAuNycs
ICdjaHJvbWl1bS1tYWMtbGlvbicpCisgICAgICAgICAgICBzZWxmLmFzc2VydF9uYW1lKE5vbmUs
ICcxMC43LjMnLCAnY2hyb21pdW0tbWFjLWxpb24nKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRf
bmFtZShOb25lLCAnMTAuOCcsICdjaHJvbWl1bS1tYWMtZnV0dXJlJykKKyAgICAgICAgZWxzZToK
KyAgICAgICAgICAgIHNlbGYuYXNzZXJ0X25hbWUoTm9uZSwgJzEwLjcnLCAnY2hyb21pdW0tY2ct
bWFjLWxpb24nKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRfbmFtZShOb25lLCAnMTAuNy4zJywg
J2Nocm9taXVtLWNnLW1hYy1saW9uJykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0X25hbWUoTm9u
ZSwgJzEwLjgnLCAnY2hyb21pdW0tY2ctbWFjLWZ1dHVyZScpCisgICAgICAgIHNlbGYuYXNzZXJ0
X25hbWUoJ2Nocm9taXVtLW1hYycsICcxMC43LjMnLCAnY2hyb21pdW0tbWFjLWxpb24nKQorICAg
ICAgICBzZWxmLmFzc2VydF9uYW1lKCdjaHJvbWl1bS1tYWMtZnV0dXJlJywgJzEwLjQuMycsICdj
aHJvbWl1bS1tYWMtZnV0dXJlJykKKyAgICAgICAgc2VsZi5hc3NlcnRfbmFtZSgnY2hyb21pdW0t
bWFjLWZ1dHVyZScsICcxMC41LjMnLCAnY2hyb21pdW0tbWFjLWZ1dHVyZScpCisgICAgICAgIHNl
bGYuYXNzZXJ0X25hbWUoJ2Nocm9taXVtLW1hYy1mdXR1cmUnLCAnMTAuNi4zJywgJ2Nocm9taXVt
LW1hYy1mdXR1cmUnKQorICAgICAgICBzZWxmLmFzc2VydF9uYW1lKCdjaHJvbWl1bS1tYWMtZnV0
dXJlJywgJzEwLjcuMycsICdjaHJvbWl1bS1tYWMtZnV0dXJlJykKIAogICAgICAgICBzZWxmLmFz
c2VydFJhaXNlcyhBc3NlcnRpb25FcnJvciwgc2VsZi5hc3NlcnRfbmFtZSwgTm9uZSwgJzEwLjQu
MScsICdzaG91bGQtcmFpc2UtYXNzZXJ0aW9uLXNvLXRoaXMtdmFsdWUtZG9lcy1ub3QtbWF0dGVy
JykKIApAQCAtODIsOCArOTgsMTAgQEAgY2xhc3MgQ2hyb21pdW1NYWNQb3J0VGVzdChwb3J0X3Rl
c3RjYXNlLgogICAgIGRlZiB0ZXN0X2dyYXBoaWNzX3R5cGUoc2VsZik6CiAgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWxzKCdjcHUtY2cnLCBzZWxmLm1ha2VfcG9ydChwb3J0X25hbWU9J2Nocm9taXVt
LWNnLW1hYycpLmdyYXBoaWNzX3R5cGUoKSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoJ2Nw
dScsIHNlbGYubWFrZV9wb3J0KHBvcnRfbmFtZT0nY2hyb21pdW0tbWFjJykuZ3JhcGhpY3NfdHlw
ZSgpKQotICAgICAgICAjIEZvciBub3csIE1hYyBkZWZhdWx0cyB0byBjcHUtY2cgZ3JhcGhpY3Mg
dHlwZS4KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoJ2NwdS1jZycsIHNlbGYubWFrZV9wb3J0
KCkuZ3JhcGhpY3NfdHlwZSgpKQorICAgICAgICBpZiBjaHJvbWl1bV9tYWMuaXNfdXNpbmdfc2tp
YV9ieV9kZWZhdWx0KCk6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscygnY3B1Jywgc2Vs
Zi5tYWtlX3BvcnQoKS5ncmFwaGljc190eXBlKCkpCisgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICBzZWxmLmFzc2VydEVxdWFscygnY3B1LWNnJywgc2VsZi5tYWtlX3BvcnQoKS5ncmFwaGljc190
eXBlKCkpCiAKIAogaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117432</attachid>
            <date>2011-12-01 09:05:46 -0800</date>
            <delta_ts>2012-02-13 10:38:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73226-20111201120545.patch</filename>
            <type>text/plain</type>
            <size>8763</size>
            <attacher>epoger</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDEwMTY2MykKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDIwIEBACisyMDExLTEyLTAxICBFbGxpb3QgUG9nZXIgIDxlcG9nZXJAZ29vZ2xlLmNvbT4K
KworICAgICAgICBtYWtlIGNocm9taXVtIGxheW91dF90ZXN0cyBvYnNlcnZlIHVzZV9za2lhX29u
X21hYy5neXBpIGZyb20gY2hyb21pdW0vYnVpbGQKKyAgICAgICAgdG8gZGV0ZXJtaW5lIHdoZXRo
ZXIgU2tpYSBpcyB0dXJuZWQgb24gYnkgZGVmYXVsdC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczMjI2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9w
b3J0L2Nocm9taXVtX2dwdS5weToKKyAgICAgICAgKGdldCk6CisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9tYWMucHk6CisgICAgICAgIChpc191
c2luZ19za2lhX2J5X2RlZmF1bHQpOgorICAgICAgICAoQ2hyb21pdW1NYWNQb3J0Ll9faW5pdF9f
KToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVt
X21hY191bml0dGVzdC5weToKKyAgICAgICAgKENocm9taXVtTWFjUG9ydFRlc3QudGVzdF92ZXJz
aW9ucyk6CisgICAgICAgIChDaHJvbWl1bU1hY1BvcnRUZXN0LnRlc3RfZ3JhcGhpY3NfdHlwZSk6
CisKIDIwMTEtMTItMDEgIEFkYW0gUm9iZW4gIDxhcm9iZW5AYXBwbGUuY29tPgogCiAgICAgICAg
IEJ1aWxkYm90IGZpeApJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cG9ydC9jaHJvbWl1bV9ncHUucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9ncHUucHkJKHJldmlzaW9uIDEwMTY2MykKKysr
IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fZ3B1LnB5
CSh3b3JraW5nIGNvcHkpCkBAIC00Miw3ICs0MiwxMCBAQCBkZWYgZ2V0KGhvc3QsIHBsYXRmb3Jt
PU5vbmUsIHBvcnRfbmFtZT0nCiAgICAgICAgIGVsaWYgcGxhdGZvcm0uc3RhcnRzd2l0aCgnbGlu
dXgnKToKICAgICAgICAgICAgIHBvcnRfbmFtZSA9ICdjaHJvbWl1bS1ncHUtbGludXgnCiAgICAg
ICAgIGVsaWYgcGxhdGZvcm0gPT0gJ2Rhcndpbic6Ci0gICAgICAgICAgICBwb3J0X25hbWUgPSAn
Y2hyb21pdW0tZ3B1LWNnLW1hYycKKyAgICAgICAgICAgIGlmIGNocm9taXVtX21hYy5pc191c2lu
Z19za2lhX2J5X2RlZmF1bHQoaG9zdCk6CisgICAgICAgICAgICAgICAgcG9ydF9uYW1lID0gJ2No
cm9taXVtLWdwdS1tYWMnCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHBvcnRf
bmFtZSA9ICdjaHJvbWl1bS1ncHUtY2ctbWFjJwogICAgICAgICBlbHNlOgogICAgICAgICAgICAg
cmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigndW5zdXBwb3J0ZWQgcGxhdGZvcm06ICVzJyAlIHBs
YXRmb3JtKQogCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0
L2Nocm9taXVtX21hYy5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX21hYy5weQkocmV2aXNpb24gMTAxNjYzKQorKysgVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9tYWMucHkJKHdv
cmtpbmcgY29weSkKQEAgLTQyLDYgKzQyLDUwIEBAIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3Rl
bS5leGVjdXRpdmUgaW0KIF9sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKIAogCitk
ZWYgaXNfdXNpbmdfc2tpYV9ieV9kZWZhdWx0KGhvc3QsIG1vZHVsZT1Ob25lKToKKyAgICAiIiJS
ZXR1cm5zIFRydWUgaWYgdGhlIENocm9taXVtLU1hYyBidWlsZCBzZXRzIHVzZV9za2lhPTEgYnkg
ZGVmYXVsdC4KKyAgICBGSVhNRTogVGhpcyBpcyBhIHN0b3BnYXAgbWVhc3VyZSwgb25seSBuZWVk
ZWQgZHVyaW5nIHRoZSB0cmFuc2l0aW9uCisgICAgZGVzY3JpYmVkIGluIGh0dHA6Ly9jcmJ1Zy5j
b20vMTAxNzMxICgncmUtZW5hYmxlIHVzZV9za2lhIGJ5IGRlZmF1bHQnKS4KKyAgICBPbmNlIHVz
ZV9za2lhIGhhcyBiZWVuIHR1cm5lZCBvbiBhbmQgd29ya3MgT0ssIHdlIGNhbiByZW1vdmUgdGhp
cyBmdW5jdGlvbgorICAgIGFuZCBhc3N1bWUgdGhhdCBpdCB3b3VsZCBhbHdheXMgcmV0dXJuIFRy
dWUuCisgICAgIiIiCisgICAgIyBJbiBvcmRlciB0byBsb29rIHVwIHRoZSBwYXRoIHRvIHRoZSBj
aHJvbWl1bSBzb3VyY2UsIHdlIG5lZWQgYQorICAgICMgcmVmZXJlbmNlIHRvIENocm9taXVtUG9y
dC5fX21vZHVsZV9fLiAgSWYgdGhlIGNhbGxlciB3YXMgdW5hYmxlIHRvCisgICAgIyBwcm92aWRl
IG9uZSwgdGhlbiBjcmVhdGUgYSB0ZW1wb3JhcnkgQ2hyb21pdW1Qb3J0IGhlcmUsIGp1c3QgdG8g
Z2V0CisgICAgIyB0aGF0IF9fbW9kdWxlX18gcmVmZXJlbmNlLgorICAgIGlmIG5vdCBtb2R1bGU6
CisgICAgICAgIG1vZHVsZSA9IENocm9taXVtTWFjUG9ydChob3N0LCBwb3J0X25hbWU9J2Nocm9t
aXVtLW1hYycpLl9fbW9kdWxlX18KKworICAgICMgSSB3b3VsZCBjYWxsIENocm9taXVtUG9ydC5w
YXRoX2Zyb21fY2hyb21pdW1fYmFzZSgpIGhlcmUsIGJ1dCB0aGVyZSdzIGEKKyAgICAjIGNoaWNr
ZW4tYW5kLWVnZyBwcm9ibGVtOiBJIGNhbid0IGNhbGwgQ2hyb21pdW1Qb3J0LnBhdGhfZnJvbV9j
aHJvbWl1bV9iYXNlKCkKKyAgICAjIHVudGlsIEkgaGF2ZSBjb25zdHJ1Y3RlZCB0aGUgQ2hyb21p
dW1Qb3J0IG9iamVjdCwgYW5kIEkgY2FuJ3QgY29uc3RydWN0CisgICAgIyB0aGUgQ2hyb21pdW1Q
b3J0IG9iamVjdCB3aXRob3V0IGRlY2xhcmluZyB0aGUgcG9ydCBuYW1lICh3aGljaCBkZXBlbmRz
IG9uCisgICAgIyB3aGV0aGVyIHdlJ3JlIHVzaW5nIFNraWEgb3Igbm90KS4KKyAgICAjIFNpbmNl
IHRoaXMgZnVuY3Rpb24gaXMgc2hvcnQtbGl2ZWQgYW55d2F5LCBJIGhhdmUganVzdCBjb3BpZWQg
dGhlIGNvZGUgZnJvbQorICAgICMgQ2hyb21pdW1Qb3J0LnBhdGhfZnJvbV9jaHJvbWl1bV9iYXNl
KCkgaW50byBoZXJlLgorICAgIGNocm9taXVtX21vZHVsZV9wYXRoID0gaG9zdC5maWxlc3lzdGVt
LnBhdGhfdG9fbW9kdWxlKG1vZHVsZSkKKyAgICBvZmZzZXQgPSBjaHJvbWl1bV9tb2R1bGVfcGF0
aC5maW5kKCd0aGlyZF9wYXJ0eScpCisgICAgaWYgb2Zmc2V0ID09IC0xOgorICAgICAgICBjaHJv
bWl1bV9iYXNlX2RpciA9IGhvc3QuZmlsZXN5c3RlbS5qb2luKGNocm9taXVtX21vZHVsZV9wYXRo
WzA6Y2hyb21pdW1fbW9kdWxlX3BhdGguZmluZCgnVG9vbHMnKV0sICdTb3VyY2UnLCAnV2ViS2l0
JywgJ2Nocm9taXVtJykKKyAgICBlbHNlOgorICAgICAgICBjaHJvbWl1bV9iYXNlX2RpciA9IGNo
cm9taXVtX21vZHVsZV9wYXRoWzA6b2Zmc2V0XQorICAgIGd5cGlfcGF0aCA9IGhvc3QuZmlsZXN5
c3RlbS5qb2luKGNocm9taXVtX2Jhc2VfZGlyLCAnYnVpbGQnLCAndXNlX3NraWFfb25fbWFjLmd5
cGknKQorCisgICAgIyBJZiB0aGUgc3BlY2lhbCB1c2Vfc2tpYV9vbl9tYWMuZ3lwaSBmaWxlIGNh
biBiZSBmb3VuZCwgcGFyc2UgaXQgKGd5cCB1c2VzCisgICAgIyBweXRob24gc3ludGF4LCBzbyB3
ZSBjYW4ganVzdCB1c2UgZXZhbCgpIGZvciB0aGF0KS4KKyAgICAjIElmIHRoZSBmaWxlIGNhbm5v
dCBiZSBmb3VuZCwgdGhlbiB3ZSBjYW4gYXNzdW1lIHRoYXQgdGhlIENocm9taXVtIHRyZWUKKyAg
ICAjIGhhcyBub3QgYmVlbiB1cGRhdGVkIHBhc3QgaHR0cDovL2NycmV2LmNvbS8xMTE3MzQgeWV0
LCBhbmQgdGh1cyB1c2Vfc2tpYQorICAgICMgaXMgc3RpbGwgMC4KKyAgICB0cnk6CisgICAgICAg
IGd5cGlfZmlsZSA9IG9wZW4oZ3lwaV9wYXRoKQorICAgICAgICBneXBpX2RpY3QgPSBldmFsKGd5
cGlfZmlsZS5yZWFkKCkpCisgICAgICAgIGd5cGlfZmlsZS5jbG9zZSgpCisgICAgICAgIHJldHVy
biBneXBpX2RpY3RbJ3VzZV9za2lhX29uX21hYyUnXSA9PSAxCisgICAgZXhjZXB0IElPRXJyb3I6
CisgICAgICAgIF9sb2cud2FybmluZygndW5hYmxlIHRvIGZpbmQgZmlsZSAlcywgYXNzdW1pbmcg
dXNlX3NraWE9MCcgJSBneXBpX3BhdGgpCisgICAgICAgIHJldHVybiBGYWxzZQorCisKIGNsYXNz
IENocm9taXVtTWFjUG9ydChjaHJvbWl1bS5DaHJvbWl1bVBvcnQpOgogICAgIFNVUFBPUlRFRF9P
U19WRVJTSU9OUyA9ICgnbGVvcGFyZCcsICdzbm93bGVvcGFyZCcsICdsaW9uJywgJ2Z1dHVyZScp
CiAKQEAgLTExMCw5ICsxNTQsMTQgQEAgY2xhc3MgQ2hyb21pdW1NYWNQb3J0KGNocm9taXVtLkNo
cm9taXVtUAogICAgIH0KIAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBob3N0LCBwb3J0X25hbWU9
Tm9uZSwgb3NfdmVyc2lvbl9zdHJpbmc9Tm9uZSwgKiprd2FyZ3MpOgorICAgICAgICBpZiBpc191
c2luZ19za2lhX2J5X2RlZmF1bHQoaG9zdCwgc2VsZi5fX21vZHVsZV9fKToKKyAgICAgICAgICAg
IGRlZmF1bHRfcG9ydF9uYW1lID0gJ2Nocm9taXVtLW1hYycKKyAgICAgICAgZWxzZToKKyAgICAg
ICAgICAgIGRlZmF1bHRfcG9ydF9uYW1lID0gJ2Nocm9taXVtLWNnLW1hYycKKyAgICAgICAgcG9y
dF9uYW1lID0gcG9ydF9uYW1lIG9yIGRlZmF1bHRfcG9ydF9uYW1lCisKICAgICAgICAgIyBXZSdy
ZSBhIGxpdHRsZSBnZW5lcmljIGhlcmUgYmVjYXVzZSB0aGlzIGNvZGUgaXMgcmV1c2VkIGJ5IHRo
ZQogICAgICAgICAjICdnb29nbGUtY2hyb21lJyBwb3J0IGFzIHdlbGwgYXMgdGhlICdtb2NrLScg
YW5kICdkcnlydW4tJyBwb3J0cy4KLSAgICAgICAgcG9ydF9uYW1lID0gcG9ydF9uYW1lIG9yICdj
aHJvbWl1bS1jZy1tYWMnCiAgICAgICAgIGNocm9taXVtLkNocm9taXVtUG9ydC5fX2luaXRfXyhz
ZWxmLCBob3N0LCBwb3J0X25hbWU9cG9ydF9uYW1lLCAqKmt3YXJncykKICAgICAgICAgaWYgcG9y
dF9uYW1lLmVuZHN3aXRoKCctbWFjJyk6CiAgICAgICAgICAgICBzZWxmLl92ZXJzaW9uID0gbWFj
Lm9zX3ZlcnNpb24ob3NfdmVyc2lvbl9zdHJpbmcsIHNlbGYuU1VQUE9SVEVEX09TX1ZFUlNJT05T
KQpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1
bV9tYWNfdW5pdHRlc3QucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9tYWNfdW5pdHRlc3QucHkJKHJldmlzaW9uIDEwMTY2
MykKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1f
bWFjX3VuaXR0ZXN0LnB5CSh3b3JraW5nIGNvcHkpCkBAIC00NiwyMSArNDYsMjkgQEAgY2xhc3Mg
Q2hyb21pdW1NYWNQb3J0VGVzdChwb3J0X3Rlc3RjYXNlLgogICAgICAgICBzZWxmLmFzc2VydEVx
dWFscyhleHBlY3RlZCwgcG9ydC5uYW1lKCkpCiAKICAgICBkZWYgdGVzdF92ZXJzaW9ucyhzZWxm
KToKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHNlbGYubWFrZV9wb3J0KCkubmFtZSgpIGluICgn
Y2hyb21pdW0tY2ctbWFjLWxlb3BhcmQnLCAnY2hyb21pdW0tY2ctbWFjLXNub3dsZW9wYXJkJywg
J2Nocm9taXVtLWNnLW1hYy1saW9uJywgJ2Nocm9taXVtLWNnLW1hYy1mdXR1cmUnKSkKLQotICAg
ICAgICBzZWxmLmFzc2VydF9uYW1lKE5vbmUsICcxMC41LjMnLCAnY2hyb21pdW0tY2ctbWFjLWxl
b3BhcmQnKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoc2VsZi5tYWtlX3BvcnQoKS5uYW1lKCkg
aW4gKAorICAgICAgICAgICAgJ2Nocm9taXVtLW1hYy1sZW9wYXJkJywgJ2Nocm9taXVtLW1hYy1z
bm93bGVvcGFyZCcsICdjaHJvbWl1bS1tYWMtbGlvbicsICdjaHJvbWl1bS1tYWMtZnV0dXJlJywK
KyAgICAgICAgICAgICdjaHJvbWl1bS1jZy1tYWMtbGVvcGFyZCcsICdjaHJvbWl1bS1jZy1tYWMt
c25vd2xlb3BhcmQnLCAnY2hyb21pdW0tY2ctbWFjLWxpb24nLCAnY2hyb21pdW0tY2ctbWFjLWZ1
dHVyZScpKQorCisgICAgICAgIHNlbGYuYXNzZXJ0X25hbWUoJ2Nocm9taXVtLW1hYycsICcxMC41
LjMnLCAnY2hyb21pdW0tbWFjLWxlb3BhcmQnKQorICAgICAgICBzZWxmLmFzc2VydF9uYW1lKCdj
aHJvbWl1bS1tYWMtbGVvcGFyZCcsICcxMC41LjMnLCAnY2hyb21pdW0tbWFjLWxlb3BhcmQnKQor
ICAgICAgICBzZWxmLmFzc2VydF9uYW1lKCdjaHJvbWl1bS1tYWMtbGVvcGFyZCcsICcxMC42LjMn
LCAnY2hyb21pdW0tbWFjLWxlb3BhcmQnKQogICAgICAgICBzZWxmLmFzc2VydF9uYW1lKCdjaHJv
bWl1bS1jZy1tYWMnLCAnMTAuNS4zJywgJ2Nocm9taXVtLWNnLW1hYy1sZW9wYXJkJykKICAgICAg
ICAgc2VsZi5hc3NlcnRfbmFtZSgnY2hyb21pdW0tY2ctbWFjLWxlb3BhcmQnLCAnMTAuNS4zJywg
J2Nocm9taXVtLWNnLW1hYy1sZW9wYXJkJykKICAgICAgICAgc2VsZi5hc3NlcnRfbmFtZSgnY2hy
b21pdW0tY2ctbWFjLWxlb3BhcmQnLCAnMTAuNi4zJywgJ2Nocm9taXVtLWNnLW1hYy1sZW9wYXJk
JykKIAotICAgICAgICBzZWxmLmFzc2VydF9uYW1lKE5vbmUsICcxMC42LjMnLCAnY2hyb21pdW0t
Y2ctbWFjLXNub3dsZW9wYXJkJykKKyAgICAgICAgc2VsZi5hc3NlcnRfbmFtZSgnY2hyb21pdW0t
bWFjJywgJzEwLjYuMycsICdjaHJvbWl1bS1tYWMtc25vd2xlb3BhcmQnKQorICAgICAgICBzZWxm
LmFzc2VydF9uYW1lKCdjaHJvbWl1bS1tYWMtc25vd2xlb3BhcmQnLCAnMTAuNS4zJywgJ2Nocm9t
aXVtLW1hYy1zbm93bGVvcGFyZCcpCisgICAgICAgIHNlbGYuYXNzZXJ0X25hbWUoJ2Nocm9taXVt
LW1hYy1zbm93bGVvcGFyZCcsICcxMC42LjMnLCAnY2hyb21pdW0tbWFjLXNub3dsZW9wYXJkJykK
ICAgICAgICAgc2VsZi5hc3NlcnRfbmFtZSgnY2hyb21pdW0tY2ctbWFjJywgJzEwLjYuMycsICdj
aHJvbWl1bS1jZy1tYWMtc25vd2xlb3BhcmQnKQogICAgICAgICBzZWxmLmFzc2VydF9uYW1lKCdj
aHJvbWl1bS1jZy1tYWMtc25vd2xlb3BhcmQnLCAnMTAuNS4zJywgJ2Nocm9taXVtLWNnLW1hYy1z
bm93bGVvcGFyZCcpCiAgICAgICAgIHNlbGYuYXNzZXJ0X25hbWUoJ2Nocm9taXVtLWNnLW1hYy1z
bm93bGVvcGFyZCcsICcxMC42LjMnLCAnY2hyb21pdW0tY2ctbWFjLXNub3dsZW9wYXJkJykKIAot
ICAgICAgICBzZWxmLmFzc2VydF9uYW1lKE5vbmUsICcxMC43JywgJ2Nocm9taXVtLWNnLW1hYy1s
aW9uJykKLSAgICAgICAgc2VsZi5hc3NlcnRfbmFtZShOb25lLCAnMTAuNy4zJywgJ2Nocm9taXVt
LWNnLW1hYy1saW9uJykKLSAgICAgICAgc2VsZi5hc3NlcnRfbmFtZShOb25lLCAnMTAuOCcsICdj
aHJvbWl1bS1jZy1tYWMtZnV0dXJlJykKKyAgICAgICAgc2VsZi5hc3NlcnRfbmFtZSgnY2hyb21p
dW0tbWFjJywgJzEwLjcuMycsICdjaHJvbWl1bS1tYWMtbGlvbicpCisgICAgICAgIHNlbGYuYXNz
ZXJ0X25hbWUoJ2Nocm9taXVtLW1hYy1mdXR1cmUnLCAnMTAuNC4zJywgJ2Nocm9taXVtLW1hYy1m
dXR1cmUnKQorICAgICAgICBzZWxmLmFzc2VydF9uYW1lKCdjaHJvbWl1bS1tYWMtZnV0dXJlJywg
JzEwLjUuMycsICdjaHJvbWl1bS1tYWMtZnV0dXJlJykKKyAgICAgICAgc2VsZi5hc3NlcnRfbmFt
ZSgnY2hyb21pdW0tbWFjLWZ1dHVyZScsICcxMC42LjMnLCAnY2hyb21pdW0tbWFjLWZ1dHVyZScp
CisgICAgICAgIHNlbGYuYXNzZXJ0X25hbWUoJ2Nocm9taXVtLW1hYy1mdXR1cmUnLCAnMTAuNy4z
JywgJ2Nocm9taXVtLW1hYy1mdXR1cmUnKQogICAgICAgICBzZWxmLmFzc2VydF9uYW1lKCdjaHJv
bWl1bS1jZy1tYWMnLCAnMTAuNy4zJywgJ2Nocm9taXVtLWNnLW1hYy1saW9uJykKICAgICAgICAg
c2VsZi5hc3NlcnRfbmFtZSgnY2hyb21pdW0tY2ctbWFjLWZ1dHVyZScsICcxMC40LjMnLCAnY2hy
b21pdW0tY2ctbWFjLWZ1dHVyZScpCiAgICAgICAgIHNlbGYuYXNzZXJ0X25hbWUoJ2Nocm9taXVt
LWNnLW1hYy1mdXR1cmUnLCAnMTAuNS4zJywgJ2Nocm9taXVtLWNnLW1hYy1mdXR1cmUnKQpAQCAt
ODIsOCArOTAsNiBAQCBjbGFzcyBDaHJvbWl1bU1hY1BvcnRUZXN0KHBvcnRfdGVzdGNhc2UuCiAg
ICAgZGVmIHRlc3RfZ3JhcGhpY3NfdHlwZShzZWxmKToKICAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bHMoJ2NwdS1jZycsIHNlbGYubWFrZV9wb3J0KHBvcnRfbmFtZT0nY2hyb21pdW0tY2ctbWFjJyku
Z3JhcGhpY3NfdHlwZSgpKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFscygnY3B1Jywgc2VsZi5t
YWtlX3BvcnQocG9ydF9uYW1lPSdjaHJvbWl1bS1tYWMnKS5ncmFwaGljc190eXBlKCkpCi0gICAg
ICAgICMgRm9yIG5vdywgTWFjIGRlZmF1bHRzIHRvIGNwdS1jZyBncmFwaGljcyB0eXBlLgotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFscygnY3B1LWNnJywgc2VsZi5tYWtlX3BvcnQoKS5ncmFwaGlj
c190eXBlKCkpCiAKIAogaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoK
</data>

          </attachment>
      

    </bug>

</bugzilla>