<?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>57481</bug_id>
          
          <creation_ts>2011-03-30 11:22:52 -0700</creation_ts>
          <short_desc>[chromium] update the rebaseline tool to know about pngs with checksums</short_desc>
          <delta_ts>2011-04-01 10:29:23 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>56286</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Tony Chang">tony</reporter>
          <assigned_to name="Tony Chang">tony</assigned_to>
          <cc>abarth</cc>
    
    <cc>dpranke</cc>
    
    <cc>eric</cc>
    
    <cc>mihaip</cc>
    
    <cc>ojan</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>376498</commentid>
    <comment_count>0</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-03-30 11:22:52 -0700</bug_when>
    <thetext>[chromium] update the rebaseline tool to know about pngs with checksums</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>376504</commentid>
    <comment_count>1</comment_count>
      <attachid>87578</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-03-30 11:25:10 -0700</bug_when>
    <thetext>Created attachment 87578
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>376542</commentid>
    <comment_count>2</comment_count>
      <attachid>87578</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-03-30 11:49:46 -0700</bug_when>
    <thetext>Comment on attachment 87578
Patch

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

&gt; Tools/Scripts/webkitpy/layout_tests/rebaseline_chromium_webkit_tests.py:399
&gt; +

So the logic here is that if the checksum is embedded in the PNG, we don&apos;t need the .checksum file?

If it isn&apos;t, then presumably either the PNG doesn&apos;t have a checksum and we behave as before (which is fine), or it does have a checksum and they don&apos;t match. What should happen in that case, and how can you distinguish it from the other?

Also, what happens if the file we&apos;re rebaselining is in a directory shared with other ports (e.g. platform/mac, or a generic file) that may not support embedded PNGs?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>376556</commentid>
    <comment_count>3</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-03-30 11:58:20 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 87578 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=87578&amp;action=review
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/layout_tests/rebaseline_chromium_webkit_tests.py:399
&gt; &gt; +
&gt; 
&gt; So the logic here is that if the checksum is embedded in the PNG, we don&apos;t need the .checksum file?

Yes.

&gt; If it isn&apos;t, then presumably either the PNG doesn&apos;t have a checksum and we behave as before (which is fine), or it does have a checksum and they don&apos;t match. What should happen in that case, and how can you distinguish it from the other?

If the checksums don&apos;t match, we prefer the .checksum file and go ahead and copy it into place.  This matches NRWT which also prefers the .checksum file to the png.

In practice, I don&apos;t think this can happen, but if it does, I think the user should just use the .checksum file and move on.

&gt; Also, what happens if the file we&apos;re rebaselining is in a directory shared with other ports (e.g. platform/mac, or a generic file) that may not support embedded PNGs?

I thought this script only writes to platform/chromium* directories.  How do I use the script to write files to platform/mac?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>376564</commentid>
    <comment_count>4</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-03-30 12:01:07 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; I thought this script only writes to platform/chromium* directories.  How do I use the script to write files to platform/mac?

Oh, I see, there&apos;s a --target-platform flag.  Does any port other than chromium use this script (I mean, it has chromium in the file name)?  Wouldn&apos;t they just use webkit-patch rebaseline?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>376567</commentid>
    <comment_count>5</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-03-30 12:07:22 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; (From update of attachment 87578 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=87578&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Tools/Scripts/webkitpy/layout_tests/rebaseline_chromium_webkit_tests.py:399
&gt; &gt; &gt; +
&gt; &gt; 
&gt; &gt; So the logic here is that if the checksum is embedded in the PNG, we don&apos;t need the .checksum file?
&gt; 
&gt; Yes.
&gt; 
&gt; &gt; If it isn&apos;t, then presumably either the PNG doesn&apos;t have a checksum and we behave as before (which is fine), or it does have a checksum and they don&apos;t match. What should happen in that case, and how can you distinguish it from the other?
&gt; 
&gt; If the checksums don&apos;t match, we prefer the .checksum file and go ahead and copy it into place.  This matches NRWT which also prefers the .checksum file to the png.
&gt; 
&gt; In practice, I don&apos;t think this can happen, but if it does, I think the user should just use the .checksum file and move on.
&gt; 

Hm. I wonder if raising an error and bailing out might be better in this case.

&gt; &gt; Also, what happens if the file we&apos;re rebaselining is in a directory shared with other ports (e.g. platform/mac, or a generic file) that may not support embedded PNGs?
&gt; 
&gt; I thought this script only writes to platform/chromium* directories.  How do I use the script to write files to platform/mac?

Ah, you&apos;re right. I was thinking it would update the generic baseline if it needed to, but it doesn&apos;t, it writes to the baseline_path() and counts on de-duping later bubble the files up.

While the tool theoretically supports non-chromium ports, I don&apos;t think anyone actually uses it for that, and theoretically the same logic should apply there anyway, so I wasn&apos;t worried about that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>376569</commentid>
    <comment_count>6</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-03-30 12:08:03 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; I thought this script only writes to platform/chromium* directories.  How do I use the script to write files to platform/mac?
&gt; 
&gt; Oh, I see, there&apos;s a --target-platform flag.  Does any port other than chromium use this script (I mean, it has chromium in the file name)?  Wouldn&apos;t they just use webkit-patch rebaseline?

I don&apos;t know if anyone does (or should) use the --target-platform flag. Frankly, I should probably remove all of the flags that likely lead to broken behavior.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>376572</commentid>
    <comment_count>7</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-03-30 12:11:22 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #3)
&gt; &gt; If the checksums don&apos;t match, we prefer the .checksum file and go ahead and copy it into place.  This matches NRWT which also prefers the .checksum file to the png.
&gt; &gt; 
&gt; &gt; In practice, I don&apos;t think this can happen, but if it does, I think the user should just use the .checksum file and move on.
&gt; &gt; 
&gt; 
&gt; Hm. I wonder if raising an error and bailing out might be better in this case.

Raising an error is easy, but what would the user do in this case?  For someone gardening, I think it&apos;s easier to just check in the file that will cause the tree to go green.

When the time comes to try to actively remove all .checksum files from the tree, we can verify that these all match and handle the mismatch files on a case by case basis.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>376593</commentid>
    <comment_count>8</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-03-30 12:28:32 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #5)
&gt; &gt; (In reply to comment #3)
&gt; &gt; &gt; If the checksums don&apos;t match, we prefer the .checksum file and go ahead and copy it into place.  This matches NRWT which also prefers the .checksum file to the png.
&gt; &gt; &gt; 
&gt; &gt; &gt; In practice, I don&apos;t think this can happen, but if it does, I think the user should just use the .checksum file and move on.
&gt; &gt; &gt; 
&gt; &gt; 
&gt; &gt; Hm. I wonder if raising an error and bailing out might be better in this case.
&gt; 
&gt; Raising an error is easy, but what would the user do in this case?  For someone gardening, I think it&apos;s easier to just check in the file that will cause the tree to go green.
&gt; 

Well, let&apos;s consider what the implications of a checksum mismatch would be.

1) The .checksum file is wrong. Presumably DRT is either somehow generating the checksum two different ways, or somehow the wrong checksum is getting copied into the .checksum file (e.g., from a bug in NRWT). In this case, subsequent NRWT runs will complain about a hash mismatch. Not the end of the world, but the tree still won&apos;t be green, and we&apos;ll be papering over a bug.

On the other hand, if we raised an error, the gardener would either have to roll out the change that caused this to fail, or suppress it in test_expectations instead of rebaselining. 

2) The embedded checksum is wrong. No big deal, because we&apos;ll ignore it until we eventually delete the .checksums, at which point the bug will be revealed. Again, we&apos;d be ignoring a bug.

In either case, papering over a bug seems bad.

&gt; When the time comes to try to actively remove all .checksum files from the tree, we can verify that these all match and handle the mismatch files on a case by case basis.

Which will be long after it actually happened, presumably, making it harder to figure out what the heck happened.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>376605</commentid>
    <comment_count>9</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-03-30 12:53:36 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; 1) The .checksum file is wrong. Presumably DRT is either somehow generating the checksum two different ways, or somehow the wrong checksum is getting copied into the .checksum file (e.g., from a bug in NRWT). In this case, subsequent NRWT runs will complain about a hash mismatch. Not the end of the world, but the tree still won&apos;t be green, and we&apos;ll be papering over a bug.
&gt; 
&gt; On the other hand, if we raised an error, the gardener would either have to roll out the change that caused this to fail, or suppress it in test_expectations instead of rebaselining. 

If the .checksum file is wrong, then this is no different than before this change.  As in, the gardener would still check in the .checksum file and the tree would stay red.

&gt; 2) The embedded checksum is wrong. No big deal, because we&apos;ll ignore it until we eventually delete the .checksums, at which point the bug will be revealed. Again, we&apos;d be ignoring a bug.
&gt; 
&gt; In either case, papering over a bug seems bad.

I agree that papering over a bug seems bad, I don&apos;t think raising an error about this helps fix either error because it&apos;s not clear which checksum is wrong.  As a gardener, I don&apos;t think one has the time to investigate this and should just try to get the tree green.

How do you anticipate the gardener would figure out what caused the error and fix it?

Both of these errors exist today, you just can&apos;t see them.  It won&apos;t be until we try to eliminate all .checksum files from the tree that we will see the existing errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>376624</commentid>
    <comment_count>10</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-03-30 13:23:39 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #8)
&gt; &gt; 1) The .checksum file is wrong. Presumably DRT is either somehow generating the checksum two different ways, or somehow the wrong checksum is getting copied into the .checksum file (e.g., from a bug in NRWT). In this case, subsequent NRWT runs will complain about a hash mismatch. Not the end of the world, but the tree still won&apos;t be green, and we&apos;ll be papering over a bug.
&gt; &gt; 
&gt; &gt; On the other hand, if we raised an error, the gardener would either have to roll out the change that caused this to fail, or suppress it in test_expectations instead of rebaselining. 
&gt; 
&gt; If the .checksum file is wrong, then this is no different than before this change.  As in, the gardener would still check in the .checksum file and the tree would stay red.
&gt; 

Well, since the (presumably correct) checksum is now embedded in the file, we can now notice and catch bugs in NRWT that we couldn&apos;t before, so there is a difference.

&gt; &gt; 2) The embedded checksum is wrong. No big deal, because we&apos;ll ignore it until we eventually delete the .checksums, at which point the bug will be revealed. Again, we&apos;d be ignoring a bug.
&gt; &gt; 
&gt; &gt; In either case, papering over a bug seems bad.
&gt; 
&gt; I agree that papering over a bug seems bad, I don&apos;t think raising an error about this helps fix either error because it&apos;s not clear which checksum is wrong.  As a gardener, I don&apos;t think one has the time to investigate this and should just try to get the tree green.

I agree that the gardener may not have the time or knowledge to investigate this, but checking in a potentially incorrect file seems like the wrong way to work around it. Better to add a line to test_expectations.txt so that the failure is less likely to be forgotten.

&gt; 
&gt; How do you anticipate the gardener would figure out what caused the error and fix it?
&gt; 

The same way he or she finds any other cause of a problem ... by investigating and/or asking around.

&gt; Both of these errors exist today, you just can&apos;t see them.  It won&apos;t be until we try to eliminate all .checksum files from the tree that we will see the existing errors.

Not true; see above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>376631</commentid>
    <comment_count>11</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-03-30 13:29:50 -0700</bug_when>
    <thetext>Note that admittedly this is a pretty minor issue and I don&apos;t want to beat it to death.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>376643</commentid>
    <comment_count>12</comment_count>
      <attachid>87607</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-03-30 13:49:10 -0700</bug_when>
    <thetext>Created attachment 87607
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>376645</commentid>
    <comment_count>13</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-03-30 13:51:47 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; Created an attachment (id=87607) [details]
&gt; Patch

The only difference with the last patch is that this will now log an error if the .checksum and checksum in png file don&apos;t match.  In practice, I don&apos;t think this will happen and if it does, the gardener can notice when the change has both a .checksum and .png file.

In general, I think we should try to make the tools pick reasonable default actions and not prompt the user.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>376655</commentid>
    <comment_count>14</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-03-30 14:04:46 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; (In reply to comment #12)
&gt; &gt; Created an attachment (id=87607) [details] [details]
&gt; &gt; Patch
&gt; 
&gt; The only difference with the last patch is that this will now log an error if the .checksum and checksum in png file don&apos;t match.  In practice, I don&apos;t think this will happen and if it does, the gardener can notice when the change has both a .checksum and .png file.
&gt; 
&gt; In general, I think we should try to make the tools pick reasonable default actions and not prompt the user.

This looks fine. I agree that this shouldn&apos;t happen in practice. In fact, I think it&apos;s the very definition of &quot;exceptional&quot; and I&apos;d probably be fine with the tool aborting.

That said, it occurred to me that we should just have a presubmit hook that checked that pngs do in fact have the checksums expected by the .checksum files (or maybe even the comments as well, although I don&apos;t know if I&apos;m that paranoid). Does that seem like a good idea?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>376656</commentid>
    <comment_count>15</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-03-30 14:06:16 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; In general, I think we should try to make the tools pick reasonable default actions and not prompt the user.

I agree. However, in this case it&apos;s not obvious what the default action should be, or that there should even be one, because clearly something&apos;s quite wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>377328</commentid>
    <comment_count>16</comment_count>
      <attachid>87764</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-03-31 10:53:48 -0700</bug_when>
    <thetext>Created attachment 87764
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>377329</commentid>
    <comment_count>17</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-03-31 10:54:18 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; Created an attachment (id=87764) [details]
&gt; Patch

Fix a bug (pointed out by Ryosuke) where we don&apos;t delete stale .checksum files when writing new pngs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>377373</commentid>
    <comment_count>18</comment_count>
      <attachid>87764</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-03-31 12:12:13 -0700</bug_when>
    <thetext>Comment on attachment 87764
Patch

LGTM. One minor comment about a related issue ...

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



&gt; Tools/Scripts/webkitpy/layout_tests/rebaseline_chromium_webkit_tests.py:400
&gt; +                continue

Do we need to put this logic into NRWT for --reset-results and --new-baseline as well?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>377428</commentid>
    <comment_count>19</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-03-31 14:04:23 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; (From update of attachment 87764 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=87764&amp;action=review
&gt; &gt; Tools/Scripts/webkitpy/layout_tests/rebaseline_chromium_webkit_tests.py:400
&gt; &gt; +                continue
&gt; 
&gt; Do we need to put this logic into NRWT for --reset-results and --new-baseline as well?

Yes, that&apos;s right.  Bug 57575 filed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>377568</commentid>
    <comment_count>20</comment_count>
      <attachid>87764</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2011-03-31 17:28:50 -0700</bug_when>
    <thetext>Comment on attachment 87764
Patch

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

&gt; Tools/Scripts/webkitpy/layout_tests/rebaseline_chromium_webkit_tests.py:429
&gt; +    def _png_has_same_checksum(self, temp_name, checksum_expected_fullpath):

I know this is from the calling code, but temp_name is not the most clear variable name. temp_file_name? temp_file_path?

&gt; Tools/Scripts/webkitpy/layout_tests/rebaseline_chromium_webkit_tests.py:435
&gt; +            return False

Maybe log an error here as well? If a checksum file exists, it&apos;s an error that an associated png file doesn&apos;t, right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>377856</commentid>
    <comment_count>21</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-04-01 09:37:55 -0700</bug_when>
    <thetext>Committed r82688: &lt;http://trac.webkit.org/changeset/82688&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>377901</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-04-01 10:29:23 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/82688 might have broken SnowLeopard Intel Release (Tests)
The following tests are not passing:
platform/mac/accessibility/aria-treegrid.html</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>87578</attachid>
            <date>2011-03-30 11:25:10 -0700</date>
            <delta_ts>2011-03-30 13:49:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-57481-20110330112547.patch</filename>
            <type>text/plain</type>
            <size>6713</size>
            <attacher name="Tony Chang">tony</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODIzMjIKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCA1NDAwZGMxNjU0ZjY2Y2YyN2EzN2UxNGYwMjQ4M2NlZDcw
ZmUzMThmLi5lNjYxZTc3YjIzYzFhMTA1MTExOWZlYmU0N2Y5ODMyMWE2N2MwYzVkIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMg
QEAKKzIwMTEtMDMtMzAgIFRvbnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbY2hyb21pdW1dIHVwZGF0
ZSB0aGUgcmViYXNlbGluZSB0b29sIHRvIGtub3cgYWJvdXQgcG5ncyB3aXRoIGNoZWNrc3Vtcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTc0ODEKKwor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3JlYmFzZWxpbmVfY2hyb21p
dW1fd2Via2l0X3Rlc3RzLnB5OiBTa2lwIG92ZXIgLmNoZWNrc3VtIGZpbGVzIGlmIHRoZSBjaGVj
a3N1bSBpcyBhbHJlYWR5IGluIHRoZSBwbmcKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9yZWJhc2VsaW5lX2Nocm9taXVtX3dlYmtpdF90ZXN0c191bml0dGVzdC5weToK
KwogMjAxMS0wMy0yOSAgVG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvcmViYXNlbGluZV9jaHJvbWl1bV93ZWJraXRfdGVzdHMucHkgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9yZWJhc2VsaW5lX2Nocm9taXVtX3dl
YmtpdF90ZXN0cy5weQppbmRleCA5ZjFkMzQ3NjhiNWI1NGU0MjBmOWVhNmVjMDcwZWViZDg5YWYz
ZTJkLi4zYTZlZTIwYmFmMDYzMDE5YzViNzkxZjI0M2YxMDg0NTA3NWEzYjA0IDEwMDY0NAotLS0g
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9yZWJhc2VsaW5lX2Nocm9taXVt
X3dlYmtpdF90ZXN0cy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9yZWJhc2VsaW5lX2Nocm9taXVtX3dlYmtpdF90ZXN0cy5weQpAQCAtNDEsNiArNDEsOCBAQCBU
aGUgc2NyaXB0IGRvZXMgdGhlIGZvbGxvd2luZyBmb3IgZWFjaCBwbGF0Zm9ybSBzcGVjaWZpZWQ6
CiBBdCB0aGUgZW5kLCB0aGUgc2NyaXB0IGdlbmVyYXRlcyBhIGh0bWwgdGhhdCBjb21wYXJlcyBv
bGQgYW5kIG5ldyBiYXNlbGluZXMuCiAiIiIKIAorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCB3aXRo
X3N0YXRlbWVudAorCiBpbXBvcnQgY29weQogaW1wb3J0IGxvZ2dpbmcKIGltcG9ydCBvcHRwYXJz
ZQpAQCAtNTUsNiArNTcsNyBAQCBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0gaW1wb3J0IHVy
bGZldGNoZXIKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUgaW1wb3J0IFNj
cmlwdEVycm9yCiAKIGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzIGltcG9ydCBwb3J0Citmcm9t
IHdlYmtpdHB5LmxheW91dF90ZXN0cyBpbXBvcnQgcmVhZF9jaGVja3N1bV9mcm9tX3BuZwogZnJv
bSB3ZWJraXRweS5sYXlvdXRfdGVzdHMubGF5b3V0X3BhY2thZ2UgaW1wb3J0IHRlc3RfZXhwZWN0
YXRpb25zCiAKIF9sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKQEAgLTIzMiw4ICsy
MzUsNyBAQCBjbGFzcyBSZWJhc2VsaW5lcihvYmplY3QpOgogICAgICAgICAgIEZhbHNlIGlmIHJl
ZnRlc3RzIGFyZSB3cm9uZ2x5IG1hcmtlZCBhcyAnbmVlZHMgcmViYXNlbGluaW5nJyBvciBUcnVl
CiAgICAgICAgICIiIgogCi0gICAgICAgIHNlbGYuX3JlYmFzZWxpbmluZ190ZXN0cyA9IFwKLSAg
ICAgICAgICAgIHNlbGYuX3Rlc3RfZXhwZWN0YXRpb25zLmdldF9yZWJhc2VsaW5pbmdfZmFpbHVy
ZXMoKQorICAgICAgICBzZWxmLl9yZWJhc2VsaW5pbmdfdGVzdHMgPSBzZWxmLl90ZXN0X2V4cGVj
dGF0aW9ucy5nZXRfcmViYXNlbGluaW5nX2ZhaWx1cmVzKCkKICAgICAgICAgaWYgbm90IHNlbGYu
X3JlYmFzZWxpbmluZ190ZXN0czoKICAgICAgICAgICAgIF9sb2cud2FybignTm8gdGVzdHMgZm91
bmQgdGhhdCBuZWVkIHJlYmFzZWxpbmluZy4nKQogICAgICAgICAgICAgcmV0dXJuIFRydWUKQEAg
LTM5Miw2ICszOTQsOSBAQCBjbGFzcyBSZWJhc2VsaW5lcihvYmplY3QpOgogICAgICAgICAgICAg
ICAgIHNlbGYuX2RlbGV0ZV9iYXNlbGluZShleHBlY3RlZF9mdWxscGF0aCkKICAgICAgICAgICAg
ICAgICBjb250aW51ZQogCisgICAgICAgICAgICBpZiBzdWZmaXggPT0gJy5jaGVja3N1bScgYW5k
IHNlbGYuX3BuZ19oYXNfc2FtZV9jaGVja3N1bSh0ZW1wX25hbWUsIGV4cGVjdGVkX2Z1bGxwYXRo
KToKKyAgICAgICAgICAgICAgICBjb250aW51ZQorCiAgICAgICAgICAgICBzZWxmLl9maWxlc3lz
dGVtLm1heWJlX21ha2VfZGlyZWN0b3J5KHNlbGYuX2ZpbGVzeXN0ZW0uZGlybmFtZShleHBlY3Rl
ZF9mdWxscGF0aCkpCiAgICAgICAgICAgICBzZWxmLl9maWxlc3lzdGVtLm1vdmUodGVtcF9uYW1l
LCBleHBlY3RlZF9mdWxscGF0aCkKIApAQCAtNDE5LDggKzQyNCwxOCBAQCBjbGFzcyBSZWJhc2Vs
aW5lcihvYmplY3QpOgogICAgICAgICB0ZW1wZmlsZS5jbG9zZSgpCiAgICAgICAgIHJldHVybiB0
ZW1wX25hbWUKIAotICAgIGRlZiBfaXNfZHVwX2Jhc2VsaW5lKHNlbGYsIG5ld19iYXNlbGluZSwg
YmFzZWxpbmVfcGF0aCwgdGVzdCwgc3VmZml4LAotICAgICAgICAgICAgICAgICAgICAgICAgIHBs
YXRmb3JtKToKKyAgICBkZWYgX3BuZ19oYXNfc2FtZV9jaGVja3N1bShzZWxmLCB0ZW1wX25hbWUs
IGNoZWNrc3VtX2V4cGVjdGVkX2Z1bGxwYXRoKToKKyAgICAgICAgIiIiUmV0dXJucyBUcnVlIGlm
IHRoZSBwbmcgZmlsZSBuZXh0IHRvIHxjaGVja3N1bV9leHBlY3RlZF9mdWxscGF0aHwKKyAgICAg
ICAgY29udGFpbnMgdGhlIHNhbWUgY2hlY2tzdW0uIiIiCisgICAgICAgIGZzID0gc2VsZi5fZmls
ZXN5c3RlbQorICAgICAgICBwbmdfZnVsbHBhdGggPSBmcy5zcGxpdGV4dChjaGVja3N1bV9leHBl
Y3RlZF9mdWxscGF0aClbMF0gKyAnLnBuZycKKyAgICAgICAgaWYgbm90IGZzLmV4aXN0cyhwbmdf
ZnVsbHBhdGgpOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgIHdpdGggZnMub3Bl
bl9iaW5hcnlfZmlsZV9mb3JfcmVhZGluZyhwbmdfZnVsbHBhdGgpIGFzIGZpbGVoYW5kbGU6Cisg
ICAgICAgICAgICBjaGVja3N1bSA9IHJlYWRfY2hlY2tzdW1fZnJvbV9wbmcucmVhZF9jaGVja3N1
bShmaWxlaGFuZGxlKQorICAgICAgICAgICAgcmV0dXJuIGZzLnJlYWRfdGV4dF9maWxlKHRlbXBf
bmFtZSkgPT0gY2hlY2tzdW0KKworICAgIGRlZiBfaXNfZHVwX2Jhc2VsaW5lKHNlbGYsIG5ld19i
YXNlbGluZSwgYmFzZWxpbmVfcGF0aCwgdGVzdCwgc3VmZml4LCBwbGF0Zm9ybSk6CiAgICAgICAg
ICIiIkNoZWNrIHdoZXRoZXIgYSBiYXNlbGluZSBpcyBkdXBsaWNhdGUgYW5kIGNhbiBmYWxsYmFj
ayB0byBzYW1lCiAgICAgICAgICAgIGJhc2VsaW5lIGZvciBhbm90aGVyIHBsYXRmb3JtLiBGb3Ig
ZXhhbXBsZSwgaWYgYSB0ZXN0IGhhcyBzYW1lCiAgICAgICAgICAgIGJhc2VsaW5lIG9uIGxpbnV4
IGFuZCB3aW5kb3dzLCB0aGVuIHdlIG9ubHkgc3RvcmUgd2luZG93cwpkaWZmIC0tZ2l0IGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcmViYXNlbGluZV9jaHJvbWl1bV93ZWJr
aXRfdGVzdHNfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9yZWJhc2VsaW5lX2Nocm9taXVtX3dlYmtpdF90ZXN0c191bml0dGVzdC5weQppbmRleCA3MTc5
YmI3ZmI1NTQ2YmJiZDE1Mjg5ZmQwMTg3OGVkOTEzYmY5OGJjLi40MDc4OTQwZDA3NTc5ZTQ0ZDUx
MGY1NTlhMjUwNzBjYTU2Y2VjOGE0IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9yZWJhc2VsaW5lX2Nocm9taXVtX3dlYmtpdF90ZXN0c191bml0dGVzdC5w
eQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9yZWJhc2VsaW5lX2No
cm9taXVtX3dlYmtpdF90ZXN0c191bml0dGVzdC5weQpAQCAtOTgsNiArOTgsOSBAQCBkZWYgdGVz
dF96aXBfZmFjdG9yeSgpOgogICAgICAgICAgICAgJ2xheW91dC10ZXN0LXJlc3VsdHMvZmFpbHVy
ZXMvZXhwZWN0ZWQvaW1hZ2UtYWN0dWFsLnR4dCc6ICduZXctaW1hZ2UtdHh0JywKICAgICAgICAg
ICAgICdsYXlvdXQtdGVzdC1yZXN1bHRzL2ZhaWx1cmVzL2V4cGVjdGVkL2ltYWdlLWFjdHVhbC5j
aGVja3N1bSc6ICduZXctaW1hZ2UtY2hlY2tzdW0nLAogICAgICAgICAgICAgJ2xheW91dC10ZXN0
LXJlc3VsdHMvZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2UtYWN0dWFsLnBuZyc6ICduZXctaW1hZ2Ut
cG5nJywKKyAgICAgICAgICAgICdsYXlvdXQtdGVzdC1yZXN1bHRzL2ZhaWx1cmVzL2V4cGVjdGVk
L2ltYWdlX2NoZWNrc3VtLWFjdHVhbC50eHQnOiAncG5nLWNvbW1lbnQtdHh0JywKKyAgICAgICAg
ICAgICdsYXlvdXQtdGVzdC1yZXN1bHRzL2ZhaWx1cmVzL2V4cGVjdGVkL2ltYWdlX2NoZWNrc3Vt
LWFjdHVhbC5jaGVja3N1bSc6ICcwMTIzNDU2Nzg5JywKKyAgICAgICAgICAgICdsYXlvdXQtdGVz
dC1yZXN1bHRzL2ZhaWx1cmVzL2V4cGVjdGVkL2ltYWdlX2NoZWNrc3VtLWFjdHVhbC5wbmcnOiAn
dEVYdGNoZWNrc3VtXHgwMDAxMjM0NTY3ODknLAogICAgICAgICB9LAogICAgICAgICBBUkNISVZF
X1VSTCArICcvV2Via2l0X1dpbi8xL2xheW91dC10ZXN0LXJlc3VsdHMuemlwJzogewogICAgICAg
ICAgICAgJ2xheW91dC10ZXN0LXJlc3VsdHMvZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2UtYWN0dWFs
LnR4dCc6ICd3aW4taW1hZ2UtdHh0JywKQEAgLTIyMSw2ICsyMjQsMjEgQEAgY2xhc3MgVGVzdFJl
YmFzZWxpbmVyKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChm
aWxlc3lzdGVtLmZpbGVzWycvdGVzdC5jaGVja291dC9MYXlvdXRUZXN0cy9wbGF0Zm9ybS90ZXN0
LW1hYy9mYWlsdXJlcy9leHBlY3RlZC9pbWFnZS1leHBlY3RlZC5wbmcnXSwgJ25ldy1pbWFnZS1w
bmcnKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZpbGVzeXN0ZW0uZmlsZXNbJy90ZXN0LmNo
ZWNrb3V0L0xheW91dFRlc3RzL3BsYXRmb3JtL3Rlc3QtbWFjL2ZhaWx1cmVzL2V4cGVjdGVkL2lt
YWdlLWV4cGVjdGVkLnR4dCddLCAnbmV3LWltYWdlLXR4dCcpCiAKKyAgICBkZWYgdGVzdF9wbmdf
ZmlsZV93aXRoX2NvbW1lbnQoc2VsZik6CisgICAgICAgIHJlYmFzZWxpbmVyLCBmaWxlc3lzdGVt
ID0gc2VsZi5tYWtlX3JlYmFzZWxpbmVyKAorICAgICAgICAgICAgIkJVR1ggUkVCQVNFTElORSBN
QUMgOiBmYWlsdXJlcy9leHBlY3RlZC9pbWFnZV9jaGVja3N1bS5odG1sID0gSU1BR0UiKQorICAg
ICAgICBjb21waWxlX3N1Y2Nlc3MgPSByZWJhc2VsaW5lci5fY29tcGlsZV9yZWJhc2VsaW5pbmdf
dGVzdHMoKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoY29tcGlsZV9zdWNjZXNzKQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHNldChbJ2ZhaWx1cmVzL2V4cGVjdGVkL2ltYWdlX2NoZWNrc3Vt
Lmh0bWwnXSksIHJlYmFzZWxpbmVyLmdldF9yZWJhc2VsaW5pbmdfdGVzdHMoKSkKKyAgICAgICAg
cmViYXNlbGluZXIucnVuKEZhbHNlKQorICAgICAgICAjIFRoZXJlIGlzIG9uZSBsZXNzIGZpbGUg
d3JpdHRlbiB0aGFuIHx0ZXN0X29uZV9wbGF0Zm9ybXwgYmVjYXVzZSB3ZSBvbmx5CisgICAgICAg
ICMgd3JpdGUgMiBleHBlY3RhdGlvbnMgKHRoZSBwbmcgYW5kIHRoZSB0eHQgZmlsZSkuCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGZpbGVzeXN0ZW0ud3JpdHRlbl9maWxlcyksIDExKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZpbGVzeXN0ZW0uZmlsZXNbJy90ZXN0LmNoZWNrb3V0
L0xheW91dFRlc3RzL3BsYXRmb3JtL3Rlc3QvdGVzdF9leHBlY3RhdGlvbnMudHh0J10sICcnKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZpbGVzeXN0ZW0uZmlsZXNbJy90ZXN0LmNoZWNrb3V0
L0xheW91dFRlc3RzL3BsYXRmb3JtL3Rlc3QtbWFjL2ZhaWx1cmVzL2V4cGVjdGVkL2ltYWdlX2No
ZWNrc3VtLWV4cGVjdGVkLnBuZyddLCAndEVYdGNoZWNrc3VtXHgwMDAxMjM0NTY3ODknKQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKGZpbGVzeXN0ZW0uZmlsZXNbJy90ZXN0LmNoZWNrb3V0L0xh
eW91dFRlc3RzL3BsYXRmb3JtL3Rlc3QtbWFjL2ZhaWx1cmVzL2V4cGVjdGVkL2ltYWdlX2NoZWNr
c3VtLWV4cGVjdGVkLnR4dCddLCAncG5nLWNvbW1lbnQtdHh0JykKKyAgICAgICAgc2VsZi5hc3Nl
cnRGYWxzZShmaWxlc3lzdGVtLmZpbGVzLmdldCgnL3Rlc3QuY2hlY2tvdXQvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vdGVzdC1tYWMvZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2VfY2hlY2tzdW0tZXhwZWN0
ZWQuY2hlY2tzdW0nLCBOb25lKSkKKwogICAgIGRlZiB0ZXN0X2RpZmZfYmFzZWxpbmVzX3R4dChz
ZWxmKToKICAgICAgICAgcmViYXNlbGluZXIsIGZpbGVzeXN0ZW0gPSBzZWxmLm1ha2VfcmViYXNl
bGluZXIoIiIpCiAgICAgICAgIHBvcnQgPSByZWJhc2VsaW5lci5fcG9ydAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>87607</attachid>
            <date>2011-03-30 13:49:10 -0700</date>
            <delta_ts>2011-03-31 10:53:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-57481-20110330134949.patch</filename>
            <type>text/plain</type>
            <size>7083</size>
            <attacher name="Tony Chang">tony</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODIzMjIKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCA1NDAwZGMxNjU0ZjY2Y2YyN2EzN2UxNGYwMjQ4M2NlZDcw
ZmUzMThmLi5lNjYxZTc3YjIzYzFhMTA1MTExOWZlYmU0N2Y5ODMyMWE2N2MwYzVkIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMg
QEAKKzIwMTEtMDMtMzAgIFRvbnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbY2hyb21pdW1dIHVwZGF0
ZSB0aGUgcmViYXNlbGluZSB0b29sIHRvIGtub3cgYWJvdXQgcG5ncyB3aXRoIGNoZWNrc3Vtcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTc0ODEKKwor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3JlYmFzZWxpbmVfY2hyb21p
dW1fd2Via2l0X3Rlc3RzLnB5OiBTa2lwIG92ZXIgLmNoZWNrc3VtIGZpbGVzIGlmIHRoZSBjaGVj
a3N1bSBpcyBhbHJlYWR5IGluIHRoZSBwbmcKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9yZWJhc2VsaW5lX2Nocm9taXVtX3dlYmtpdF90ZXN0c191bml0dGVzdC5weToK
KwogMjAxMS0wMy0yOSAgVG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvcmViYXNlbGluZV9jaHJvbWl1bV93ZWJraXRfdGVzdHMucHkgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9yZWJhc2VsaW5lX2Nocm9taXVtX3dl
YmtpdF90ZXN0cy5weQppbmRleCA5ZjFkMzQ3NjhiNWI1NGU0MjBmOWVhNmVjMDcwZWViZDg5YWYz
ZTJkLi4yZjYxOTI2MjI5Nzk3YzdhYTA0NDJjYjZjN2M2MTQxYjUwOTc2OWIxIDEwMDY0NAotLS0g
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9yZWJhc2VsaW5lX2Nocm9taXVt
X3dlYmtpdF90ZXN0cy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9yZWJhc2VsaW5lX2Nocm9taXVtX3dlYmtpdF90ZXN0cy5weQpAQCAtNDEsNiArNDEsOCBAQCBU
aGUgc2NyaXB0IGRvZXMgdGhlIGZvbGxvd2luZyBmb3IgZWFjaCBwbGF0Zm9ybSBzcGVjaWZpZWQ6
CiBBdCB0aGUgZW5kLCB0aGUgc2NyaXB0IGdlbmVyYXRlcyBhIGh0bWwgdGhhdCBjb21wYXJlcyBv
bGQgYW5kIG5ldyBiYXNlbGluZXMuCiAiIiIKIAorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCB3aXRo
X3N0YXRlbWVudAorCiBpbXBvcnQgY29weQogaW1wb3J0IGxvZ2dpbmcKIGltcG9ydCBvcHRwYXJz
ZQpAQCAtNTUsNiArNTcsNyBAQCBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0gaW1wb3J0IHVy
bGZldGNoZXIKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUgaW1wb3J0IFNj
cmlwdEVycm9yCiAKIGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzIGltcG9ydCBwb3J0Citmcm9t
IHdlYmtpdHB5LmxheW91dF90ZXN0cyBpbXBvcnQgcmVhZF9jaGVja3N1bV9mcm9tX3BuZwogZnJv
bSB3ZWJraXRweS5sYXlvdXRfdGVzdHMubGF5b3V0X3BhY2thZ2UgaW1wb3J0IHRlc3RfZXhwZWN0
YXRpb25zCiAKIF9sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKQEAgLTIzMiw4ICsy
MzUsNyBAQCBjbGFzcyBSZWJhc2VsaW5lcihvYmplY3QpOgogICAgICAgICAgIEZhbHNlIGlmIHJl
ZnRlc3RzIGFyZSB3cm9uZ2x5IG1hcmtlZCBhcyAnbmVlZHMgcmViYXNlbGluaW5nJyBvciBUcnVl
CiAgICAgICAgICIiIgogCi0gICAgICAgIHNlbGYuX3JlYmFzZWxpbmluZ190ZXN0cyA9IFwKLSAg
ICAgICAgICAgIHNlbGYuX3Rlc3RfZXhwZWN0YXRpb25zLmdldF9yZWJhc2VsaW5pbmdfZmFpbHVy
ZXMoKQorICAgICAgICBzZWxmLl9yZWJhc2VsaW5pbmdfdGVzdHMgPSBzZWxmLl90ZXN0X2V4cGVj
dGF0aW9ucy5nZXRfcmViYXNlbGluaW5nX2ZhaWx1cmVzKCkKICAgICAgICAgaWYgbm90IHNlbGYu
X3JlYmFzZWxpbmluZ190ZXN0czoKICAgICAgICAgICAgIF9sb2cud2FybignTm8gdGVzdHMgZm91
bmQgdGhhdCBuZWVkIHJlYmFzZWxpbmluZy4nKQogICAgICAgICAgICAgcmV0dXJuIFRydWUKQEAg
LTM5Miw2ICszOTQsOSBAQCBjbGFzcyBSZWJhc2VsaW5lcihvYmplY3QpOgogICAgICAgICAgICAg
ICAgIHNlbGYuX2RlbGV0ZV9iYXNlbGluZShleHBlY3RlZF9mdWxscGF0aCkKICAgICAgICAgICAg
ICAgICBjb250aW51ZQogCisgICAgICAgICAgICBpZiBzdWZmaXggPT0gJy5jaGVja3N1bScgYW5k
IHNlbGYuX3BuZ19oYXNfc2FtZV9jaGVja3N1bSh0ZW1wX25hbWUsIGV4cGVjdGVkX2Z1bGxwYXRo
KToKKyAgICAgICAgICAgICAgICBjb250aW51ZQorCiAgICAgICAgICAgICBzZWxmLl9maWxlc3lz
dGVtLm1heWJlX21ha2VfZGlyZWN0b3J5KHNlbGYuX2ZpbGVzeXN0ZW0uZGlybmFtZShleHBlY3Rl
ZF9mdWxscGF0aCkpCiAgICAgICAgICAgICBzZWxmLl9maWxlc3lzdGVtLm1vdmUodGVtcF9uYW1l
LCBleHBlY3RlZF9mdWxscGF0aCkKIApAQCAtNDE5LDggKzQyNCwyNCBAQCBjbGFzcyBSZWJhc2Vs
aW5lcihvYmplY3QpOgogICAgICAgICB0ZW1wZmlsZS5jbG9zZSgpCiAgICAgICAgIHJldHVybiB0
ZW1wX25hbWUKIAotICAgIGRlZiBfaXNfZHVwX2Jhc2VsaW5lKHNlbGYsIG5ld19iYXNlbGluZSwg
YmFzZWxpbmVfcGF0aCwgdGVzdCwgc3VmZml4LAotICAgICAgICAgICAgICAgICAgICAgICAgIHBs
YXRmb3JtKToKKyAgICBkZWYgX3BuZ19oYXNfc2FtZV9jaGVja3N1bShzZWxmLCB0ZW1wX25hbWUs
IGNoZWNrc3VtX2V4cGVjdGVkX2Z1bGxwYXRoKToKKyAgICAgICAgIiIiUmV0dXJucyBUcnVlIGlm
IHRoZSBwbmcgZmlsZSBuZXh0IHRvIHxjaGVja3N1bV9leHBlY3RlZF9mdWxscGF0aHwKKyAgICAg
ICAgY29udGFpbnMgdGhlIHNhbWUgY2hlY2tzdW0uIiIiCisgICAgICAgIGZzID0gc2VsZi5fZmls
ZXN5c3RlbQorICAgICAgICBwbmdfZnVsbHBhdGggPSBmcy5zcGxpdGV4dChjaGVja3N1bV9leHBl
Y3RlZF9mdWxscGF0aClbMF0gKyAnLnBuZycKKyAgICAgICAgaWYgbm90IGZzLmV4aXN0cyhwbmdf
ZnVsbHBhdGgpOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICAgICAgd2l0aCBmcy5v
cGVuX2JpbmFyeV9maWxlX2Zvcl9yZWFkaW5nKHBuZ19mdWxscGF0aCkgYXMgZmlsZWhhbmRsZToK
KyAgICAgICAgICAgIGNoZWNrc3VtX2luX3BuZyA9IHJlYWRfY2hlY2tzdW1fZnJvbV9wbmcucmVh
ZF9jaGVja3N1bShmaWxlaGFuZGxlKQorICAgICAgICAgICAgY2hlY2tzdW1faW5fdGV4dF9maWxl
ID0gZnMucmVhZF90ZXh0X2ZpbGUodGVtcF9uYW1lKQorICAgICAgICAgICAgaWYgY2hlY2tzdW1f
aW5fcG5nIGFuZCBjaGVja3N1bV9pbl9wbmcgIT0gY2hlY2tzdW1faW5fdGV4dF9maWxlOgorICAg
ICAgICAgICAgICAgIF9sb2cuZXJyb3IoIiAgY2hlY2tzdW0gaW4gJXMgYW5kICVzIGRvbid0IG1h
dGNoISAgQ29udGludWluZyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICIgdG8gY29weSBi
dXQgcGxlYXNlIGludmVzdGlnYXRlLiIgJSAoCisgICAgICAgICAgICAgICAgICAgICAgICAgICBj
aGVja3N1bV9leHBlY3RlZF9mdWxscGF0aCwgcG5nX2Z1bGxwYXRoKSkKKyAgICAgICAgICAgIHJl
dHVybiBjaGVja3N1bV9pbl90ZXh0X2ZpbGUgPT0gY2hlY2tzdW1faW5fcG5nCisKKyAgICBkZWYg
X2lzX2R1cF9iYXNlbGluZShzZWxmLCBuZXdfYmFzZWxpbmUsIGJhc2VsaW5lX3BhdGgsIHRlc3Qs
IHN1ZmZpeCwgcGxhdGZvcm0pOgogICAgICAgICAiIiJDaGVjayB3aGV0aGVyIGEgYmFzZWxpbmUg
aXMgZHVwbGljYXRlIGFuZCBjYW4gZmFsbGJhY2sgdG8gc2FtZQogICAgICAgICAgICBiYXNlbGlu
ZSBmb3IgYW5vdGhlciBwbGF0Zm9ybS4gRm9yIGV4YW1wbGUsIGlmIGEgdGVzdCBoYXMgc2FtZQog
ICAgICAgICAgICBiYXNlbGluZSBvbiBsaW51eCBhbmQgd2luZG93cywgdGhlbiB3ZSBvbmx5IHN0
b3JlIHdpbmRvd3MKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3JlYmFzZWxpbmVfY2hyb21pdW1fd2Via2l0X3Rlc3RzX3VuaXR0ZXN0LnB5IGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcmViYXNlbGluZV9jaHJvbWl1bV93ZWJraXRf
dGVzdHNfdW5pdHRlc3QucHkKaW5kZXggNzE3OWJiN2ZiNTU0NmJiYmQxNTI4OWZkMDE4NzhlZDkx
M2JmOThiYy4uNDA3ODk0MGQwNzU3OWU0NGQ1MTBmNTU5YTI1MDcwY2E1NmNlYzhhNCAxMDA2NDQK
LS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcmViYXNlbGluZV9jaHJv
bWl1bV93ZWJraXRfdGVzdHNfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcmViYXNlbGluZV9jaHJvbWl1bV93ZWJraXRfdGVzdHNfdW5pdHRlc3Qu
cHkKQEAgLTk4LDYgKzk4LDkgQEAgZGVmIHRlc3RfemlwX2ZhY3RvcnkoKToKICAgICAgICAgICAg
ICdsYXlvdXQtdGVzdC1yZXN1bHRzL2ZhaWx1cmVzL2V4cGVjdGVkL2ltYWdlLWFjdHVhbC50eHQn
OiAnbmV3LWltYWdlLXR4dCcsCiAgICAgICAgICAgICAnbGF5b3V0LXRlc3QtcmVzdWx0cy9mYWls
dXJlcy9leHBlY3RlZC9pbWFnZS1hY3R1YWwuY2hlY2tzdW0nOiAnbmV3LWltYWdlLWNoZWNrc3Vt
JywKICAgICAgICAgICAgICdsYXlvdXQtdGVzdC1yZXN1bHRzL2ZhaWx1cmVzL2V4cGVjdGVkL2lt
YWdlLWFjdHVhbC5wbmcnOiAnbmV3LWltYWdlLXBuZycsCisgICAgICAgICAgICAnbGF5b3V0LXRl
c3QtcmVzdWx0cy9mYWlsdXJlcy9leHBlY3RlZC9pbWFnZV9jaGVja3N1bS1hY3R1YWwudHh0Jzog
J3BuZy1jb21tZW50LXR4dCcsCisgICAgICAgICAgICAnbGF5b3V0LXRlc3QtcmVzdWx0cy9mYWls
dXJlcy9leHBlY3RlZC9pbWFnZV9jaGVja3N1bS1hY3R1YWwuY2hlY2tzdW0nOiAnMDEyMzQ1Njc4
OScsCisgICAgICAgICAgICAnbGF5b3V0LXRlc3QtcmVzdWx0cy9mYWlsdXJlcy9leHBlY3RlZC9p
bWFnZV9jaGVja3N1bS1hY3R1YWwucG5nJzogJ3RFWHRjaGVja3N1bVx4MDAwMTIzNDU2Nzg5JywK
ICAgICAgICAgfSwKICAgICAgICAgQVJDSElWRV9VUkwgKyAnL1dlYmtpdF9XaW4vMS9sYXlvdXQt
dGVzdC1yZXN1bHRzLnppcCc6IHsKICAgICAgICAgICAgICdsYXlvdXQtdGVzdC1yZXN1bHRzL2Zh
aWx1cmVzL2V4cGVjdGVkL2ltYWdlLWFjdHVhbC50eHQnOiAnd2luLWltYWdlLXR4dCcsCkBAIC0y
MjEsNiArMjI0LDIxIEBAIGNsYXNzIFRlc3RSZWJhc2VsaW5lcih1bml0dGVzdC5UZXN0Q2FzZSk6
CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZmlsZXN5c3RlbS5maWxlc1snL3Rlc3QuY2hlY2tv
dXQvTGF5b3V0VGVzdHMvcGxhdGZvcm0vdGVzdC1tYWMvZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2Ut
ZXhwZWN0ZWQucG5nJ10sICduZXctaW1hZ2UtcG5nJykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChmaWxlc3lzdGVtLmZpbGVzWycvdGVzdC5jaGVja291dC9MYXlvdXRUZXN0cy9wbGF0Zm9ybS90
ZXN0LW1hYy9mYWlsdXJlcy9leHBlY3RlZC9pbWFnZS1leHBlY3RlZC50eHQnXSwgJ25ldy1pbWFn
ZS10eHQnKQogCisgICAgZGVmIHRlc3RfcG5nX2ZpbGVfd2l0aF9jb21tZW50KHNlbGYpOgorICAg
ICAgICByZWJhc2VsaW5lciwgZmlsZXN5c3RlbSA9IHNlbGYubWFrZV9yZWJhc2VsaW5lcigKKyAg
ICAgICAgICAgICJCVUdYIFJFQkFTRUxJTkUgTUFDIDogZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2Vf
Y2hlY2tzdW0uaHRtbCA9IElNQUdFIikKKyAgICAgICAgY29tcGlsZV9zdWNjZXNzID0gcmViYXNl
bGluZXIuX2NvbXBpbGVfcmViYXNlbGluaW5nX3Rlc3RzKCkKKyAgICAgICAgc2VsZi5hc3NlcnRU
cnVlKGNvbXBpbGVfc3VjY2VzcykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZXQoWydmYWls
dXJlcy9leHBlY3RlZC9pbWFnZV9jaGVja3N1bS5odG1sJ10pLCByZWJhc2VsaW5lci5nZXRfcmVi
YXNlbGluaW5nX3Rlc3RzKCkpCisgICAgICAgIHJlYmFzZWxpbmVyLnJ1bihGYWxzZSkKKyAgICAg
ICAgIyBUaGVyZSBpcyBvbmUgbGVzcyBmaWxlIHdyaXR0ZW4gdGhhbiB8dGVzdF9vbmVfcGxhdGZv
cm18IGJlY2F1c2Ugd2Ugb25seQorICAgICAgICAjIHdyaXRlIDIgZXhwZWN0YXRpb25zICh0aGUg
cG5nIGFuZCB0aGUgdHh0IGZpbGUpLgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihmaWxl
c3lzdGVtLndyaXR0ZW5fZmlsZXMpLCAxMSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmaWxl
c3lzdGVtLmZpbGVzWycvdGVzdC5jaGVja291dC9MYXlvdXRUZXN0cy9wbGF0Zm9ybS90ZXN0L3Rl
c3RfZXhwZWN0YXRpb25zLnR4dCddLCAnJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmaWxl
c3lzdGVtLmZpbGVzWycvdGVzdC5jaGVja291dC9MYXlvdXRUZXN0cy9wbGF0Zm9ybS90ZXN0LW1h
Yy9mYWlsdXJlcy9leHBlY3RlZC9pbWFnZV9jaGVja3N1bS1leHBlY3RlZC5wbmcnXSwgJ3RFWHRj
aGVja3N1bVx4MDAwMTIzNDU2Nzg5JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmaWxlc3lz
dGVtLmZpbGVzWycvdGVzdC5jaGVja291dC9MYXlvdXRUZXN0cy9wbGF0Zm9ybS90ZXN0LW1hYy9m
YWlsdXJlcy9leHBlY3RlZC9pbWFnZV9jaGVja3N1bS1leHBlY3RlZC50eHQnXSwgJ3BuZy1jb21t
ZW50LXR4dCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoZmlsZXN5c3RlbS5maWxlcy5nZXQo
Jy90ZXN0LmNoZWNrb3V0L0xheW91dFRlc3RzL3BsYXRmb3JtL3Rlc3QtbWFjL2ZhaWx1cmVzL2V4
cGVjdGVkL2ltYWdlX2NoZWNrc3VtLWV4cGVjdGVkLmNoZWNrc3VtJywgTm9uZSkpCisKICAgICBk
ZWYgdGVzdF9kaWZmX2Jhc2VsaW5lc190eHQoc2VsZik6CiAgICAgICAgIHJlYmFzZWxpbmVyLCBm
aWxlc3lzdGVtID0gc2VsZi5tYWtlX3JlYmFzZWxpbmVyKCIiKQogICAgICAgICBwb3J0ID0gcmVi
YXNlbGluZXIuX3BvcnQK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>87764</attachid>
            <date>2011-03-31 10:53:48 -0700</date>
            <delta_ts>2011-03-31 17:28:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-57481-20110331105433.patch</filename>
            <type>text/plain</type>
            <size>10741</size>
            <attacher name="Tony Chang">tony</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODI1OTkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCBjZWY5YTA2ZGFjOWM1ZjNjYzg5ODZiMzM1NjFiNjIxYmMw
OGEwY2EyLi40OWY2ZDNlM2U1ZTMyM2NhNDRlZjUxYTkzMmFlZWQxMzM4ZjMxZmVjIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMg
QEAKKzIwMTEtMDMtMzEgIFRvbnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbY2hyb21pdW1dIHVwZGF0
ZSB0aGUgcmViYXNlbGluZSB0b29sIHRvIGtub3cgYWJvdXQgcG5ncyB3aXRoIGNoZWNrc3Vtcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTc0ODEKKwor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3JlYmFzZWxpbmVfY2hyb21p
dW1fd2Via2l0X3Rlc3RzLnB5OiBTa2lwIG92ZXIgLmNoZWNrc3VtIGZpbGVzIGlmIHRoZSBjaGVj
a3N1bSBpcyBhbHJlYWR5IGluIHRoZSBwbmcKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9yZWJhc2VsaW5lX2Nocm9taXVtX3dlYmtpdF90ZXN0c191bml0dGVzdC5weToK
KwogMjAxMS0wMy0zMSAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4K
IAogICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCmRpZmYgLS1naXQgYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9yZWJhc2VsaW5lX2Nocm9taXVtX3dlYmtp
dF90ZXN0cy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3JlYmFzZWxp
bmVfY2hyb21pdW1fd2Via2l0X3Rlc3RzLnB5CmluZGV4IDlmMWQzNDc2OGI1YjU0ZTQyMGY5ZWE2
ZWMwNzBlZWJkODlhZjNlMmQuLjI1NzcxYmFhMmY4YzJiNjk5MDUzZTZjZDUxM2Q0NjYyNTg3YTUy
ZjUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3JlYmFz
ZWxpbmVfY2hyb21pdW1fd2Via2l0X3Rlc3RzLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3JlYmFzZWxpbmVfY2hyb21pdW1fd2Via2l0X3Rlc3RzLnB5CkBAIC00
MSw2ICs0MSw4IEBAIFRoZSBzY3JpcHQgZG9lcyB0aGUgZm9sbG93aW5nIGZvciBlYWNoIHBsYXRm
b3JtIHNwZWNpZmllZDoKIEF0IHRoZSBlbmQsIHRoZSBzY3JpcHQgZ2VuZXJhdGVzIGEgaHRtbCB0
aGF0IGNvbXBhcmVzIG9sZCBhbmQgbmV3IGJhc2VsaW5lcy4KICIiIgogCitmcm9tIF9fZnV0dXJl
X18gaW1wb3J0IHdpdGhfc3RhdGVtZW50CisKIGltcG9ydCBjb3B5CiBpbXBvcnQgbG9nZ2luZwog
aW1wb3J0IG9wdHBhcnNlCkBAIC01NSw2ICs1Nyw3IEBAIGZyb20gd2Via2l0cHkuY29tbW9uLnN5
c3RlbSBpbXBvcnQgdXJsZmV0Y2hlcgogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmV4ZWN1
dGl2ZSBpbXBvcnQgU2NyaXB0RXJyb3IKIAogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMgaW1w
b3J0IHBvcnQKK2Zyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzIGltcG9ydCByZWFkX2NoZWNrc3Vt
X2Zyb21fcG5nCiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5sYXlvdXRfcGFja2FnZSBpbXBv
cnQgdGVzdF9leHBlY3RhdGlvbnMKIAogX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9f
KQpAQCAtMjMyLDggKzIzNSw3IEBAIGNsYXNzIFJlYmFzZWxpbmVyKG9iamVjdCk6CiAgICAgICAg
ICAgRmFsc2UgaWYgcmVmdGVzdHMgYXJlIHdyb25nbHkgbWFya2VkIGFzICduZWVkcyByZWJhc2Vs
aW5pbmcnIG9yIFRydWUKICAgICAgICAgIiIiCiAKLSAgICAgICAgc2VsZi5fcmViYXNlbGluaW5n
X3Rlc3RzID0gXAotICAgICAgICAgICAgc2VsZi5fdGVzdF9leHBlY3RhdGlvbnMuZ2V0X3JlYmFz
ZWxpbmluZ19mYWlsdXJlcygpCisgICAgICAgIHNlbGYuX3JlYmFzZWxpbmluZ190ZXN0cyA9IHNl
bGYuX3Rlc3RfZXhwZWN0YXRpb25zLmdldF9yZWJhc2VsaW5pbmdfZmFpbHVyZXMoKQogICAgICAg
ICBpZiBub3Qgc2VsZi5fcmViYXNlbGluaW5nX3Rlc3RzOgogICAgICAgICAgICAgX2xvZy53YXJu
KCdObyB0ZXN0cyBmb3VuZCB0aGF0IG5lZWQgcmViYXNlbGluaW5nLicpCiAgICAgICAgICAgICBy
ZXR1cm4gVHJ1ZQpAQCAtMzkyLDYgKzM5NCwxMSBAQCBjbGFzcyBSZWJhc2VsaW5lcihvYmplY3Qp
OgogICAgICAgICAgICAgICAgIHNlbGYuX2RlbGV0ZV9iYXNlbGluZShleHBlY3RlZF9mdWxscGF0
aCkKICAgICAgICAgICAgICAgICBjb250aW51ZQogCisgICAgICAgICAgICBpZiBzdWZmaXggPT0g
Jy5jaGVja3N1bScgYW5kIHNlbGYuX3BuZ19oYXNfc2FtZV9jaGVja3N1bSh0ZW1wX25hbWUsIGV4
cGVjdGVkX2Z1bGxwYXRoKToKKyAgICAgICAgICAgICAgICAjIElmIGFuIG9sZCBjaGVja3N1bSBl
eGlzdHMsIGRlbGV0ZSBpdC4KKyAgICAgICAgICAgICAgICBzZWxmLl9kZWxldGVfYmFzZWxpbmUo
ZXhwZWN0ZWRfZnVsbHBhdGgpCisgICAgICAgICAgICAgICAgY29udGludWUKKwogICAgICAgICAg
ICAgc2VsZi5fZmlsZXN5c3RlbS5tYXliZV9tYWtlX2RpcmVjdG9yeShzZWxmLl9maWxlc3lzdGVt
LmRpcm5hbWUoZXhwZWN0ZWRfZnVsbHBhdGgpKQogICAgICAgICAgICAgc2VsZi5fZmlsZXN5c3Rl
bS5tb3ZlKHRlbXBfbmFtZSwgZXhwZWN0ZWRfZnVsbHBhdGgpCiAKQEAgLTQxOSw4ICs0MjYsMjQg
QEAgY2xhc3MgUmViYXNlbGluZXIob2JqZWN0KToKICAgICAgICAgdGVtcGZpbGUuY2xvc2UoKQog
ICAgICAgICByZXR1cm4gdGVtcF9uYW1lCiAKLSAgICBkZWYgX2lzX2R1cF9iYXNlbGluZShzZWxm
LCBuZXdfYmFzZWxpbmUsIGJhc2VsaW5lX3BhdGgsIHRlc3QsIHN1ZmZpeCwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICBwbGF0Zm9ybSk6CisgICAgZGVmIF9wbmdfaGFzX3NhbWVfY2hlY2tzdW0o
c2VsZiwgdGVtcF9uYW1lLCBjaGVja3N1bV9leHBlY3RlZF9mdWxscGF0aCk6CisgICAgICAgICIi
IlJldHVybnMgVHJ1ZSBpZiB0aGUgcG5nIGZpbGUgbmV4dCB0byB8Y2hlY2tzdW1fZXhwZWN0ZWRf
ZnVsbHBhdGh8CisgICAgICAgIGNvbnRhaW5zIHRoZSBzYW1lIGNoZWNrc3VtLiIiIgorICAgICAg
ICBmcyA9IHNlbGYuX2ZpbGVzeXN0ZW0KKyAgICAgICAgcG5nX2Z1bGxwYXRoID0gZnMuc3BsaXRl
eHQoY2hlY2tzdW1fZXhwZWN0ZWRfZnVsbHBhdGgpWzBdICsgJy5wbmcnCisgICAgICAgIGlmIG5v
dCBmcy5leGlzdHMocG5nX2Z1bGxwYXRoKToKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisg
ICAgICAgIHdpdGggZnMub3Blbl9iaW5hcnlfZmlsZV9mb3JfcmVhZGluZyhwbmdfZnVsbHBhdGgp
IGFzIGZpbGVoYW5kbGU6CisgICAgICAgICAgICBjaGVja3N1bV9pbl9wbmcgPSByZWFkX2NoZWNr
c3VtX2Zyb21fcG5nLnJlYWRfY2hlY2tzdW0oZmlsZWhhbmRsZSkKKyAgICAgICAgICAgIGNoZWNr
c3VtX2luX3RleHRfZmlsZSA9IGZzLnJlYWRfdGV4dF9maWxlKHRlbXBfbmFtZSkKKyAgICAgICAg
ICAgIGlmIGNoZWNrc3VtX2luX3BuZyBhbmQgY2hlY2tzdW1faW5fcG5nICE9IGNoZWNrc3VtX2lu
X3RleHRfZmlsZToKKyAgICAgICAgICAgICAgICBfbG9nLmVycm9yKCIgIGNoZWNrc3VtIGluICVz
IGFuZCAlcyBkb24ndCBtYXRjaCEgIENvbnRpbnVpbmciCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiIHRvIGNvcHkgYnV0IHBsZWFzZSBpbnZlc3RpZ2F0ZS4iICUgKAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY2hlY2tzdW1fZXhwZWN0ZWRfZnVsbHBhdGgsIHBuZ19mdWxscGF0aCkp
CisgICAgICAgICAgICByZXR1cm4gY2hlY2tzdW1faW5fdGV4dF9maWxlID09IGNoZWNrc3VtX2lu
X3BuZworCisgICAgZGVmIF9pc19kdXBfYmFzZWxpbmUoc2VsZiwgbmV3X2Jhc2VsaW5lLCBiYXNl
bGluZV9wYXRoLCB0ZXN0LCBzdWZmaXgsIHBsYXRmb3JtKToKICAgICAgICAgIiIiQ2hlY2sgd2hl
dGhlciBhIGJhc2VsaW5lIGlzIGR1cGxpY2F0ZSBhbmQgY2FuIGZhbGxiYWNrIHRvIHNhbWUKICAg
ICAgICAgICAgYmFzZWxpbmUgZm9yIGFub3RoZXIgcGxhdGZvcm0uIEZvciBleGFtcGxlLCBpZiBh
IHRlc3QgaGFzIHNhbWUKICAgICAgICAgICAgYmFzZWxpbmUgb24gbGludXggYW5kIHdpbmRvd3Ms
IHRoZW4gd2Ugb25seSBzdG9yZSB3aW5kb3dzCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9yZWJhc2VsaW5lX2Nocm9taXVtX3dlYmtpdF90ZXN0c191bml0
dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3JlYmFzZWxpbmVf
Y2hyb21pdW1fd2Via2l0X3Rlc3RzX3VuaXR0ZXN0LnB5CmluZGV4IDcxNzliYjdmYjU1NDZiYmJk
MTUyODlmZDAxODc4ZWQ5MTNiZjk4YmMuLjNiODUyNDFiYWMyNTkyMWRhMjQ3MjJlMmIyYTcyMGZi
MDhhMjg5MDcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L3JlYmFzZWxpbmVfY2hyb21pdW1fd2Via2l0X3Rlc3RzX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3JlYmFzZWxpbmVfY2hyb21pdW1fd2Via2l0
X3Rlc3RzX3VuaXR0ZXN0LnB5CkBAIC05OCw2ICs5OCw5IEBAIGRlZiB0ZXN0X3ppcF9mYWN0b3J5
KCk6CiAgICAgICAgICAgICAnbGF5b3V0LXRlc3QtcmVzdWx0cy9mYWlsdXJlcy9leHBlY3RlZC9p
bWFnZS1hY3R1YWwudHh0JzogJ25ldy1pbWFnZS10eHQnLAogICAgICAgICAgICAgJ2xheW91dC10
ZXN0LXJlc3VsdHMvZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2UtYWN0dWFsLmNoZWNrc3VtJzogJ25l
dy1pbWFnZS1jaGVja3N1bScsCiAgICAgICAgICAgICAnbGF5b3V0LXRlc3QtcmVzdWx0cy9mYWls
dXJlcy9leHBlY3RlZC9pbWFnZS1hY3R1YWwucG5nJzogJ25ldy1pbWFnZS1wbmcnLAorICAgICAg
ICAgICAgJ2xheW91dC10ZXN0LXJlc3VsdHMvZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2VfY2hlY2tz
dW0tYWN0dWFsLnR4dCc6ICdwbmctY29tbWVudC10eHQnLAorICAgICAgICAgICAgJ2xheW91dC10
ZXN0LXJlc3VsdHMvZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2VfY2hlY2tzdW0tYWN0dWFsLmNoZWNr
c3VtJzogJzAxMjM0NTY3ODknLAorICAgICAgICAgICAgJ2xheW91dC10ZXN0LXJlc3VsdHMvZmFp
bHVyZXMvZXhwZWN0ZWQvaW1hZ2VfY2hlY2tzdW0tYWN0dWFsLnBuZyc6ICd0RVh0Y2hlY2tzdW1c
eDAwMDEyMzQ1Njc4OScsCiAgICAgICAgIH0sCiAgICAgICAgIEFSQ0hJVkVfVVJMICsgJy9XZWJr
aXRfV2luLzEvbGF5b3V0LXRlc3QtcmVzdWx0cy56aXAnOiB7CiAgICAgICAgICAgICAnbGF5b3V0
LXRlc3QtcmVzdWx0cy9mYWlsdXJlcy9leHBlY3RlZC9pbWFnZS1hY3R1YWwudHh0JzogJ3dpbi1p
bWFnZS10eHQnLApAQCAtMTYyLDcgKzE2NSw3IEBAIGNsYXNzIFRlc3RSZWJhc2VsaW5lcih1bml0
dGVzdC5UZXN0Q2FzZSk6CiAKICAgICAgICAgdXJsX2ZldGNoZXIgPSB0ZXN0X3VybF9mZXRjaGVy
KGZpbGVzeXN0ZW0pCiAgICAgICAgIHppcF9mYWN0b3J5ID0gdGVzdF96aXBfZmFjdG9yeSgpCi0g
ICAgICAgIG1vY2tfc2NtID0gbW9ja3Rvb2wuTW9ja1NDTSgpCisgICAgICAgIG1vY2tfc2NtID0g
bW9ja3Rvb2wuTW9ja1NDTShmaWxlc3lzdGVtKQogICAgICAgICByZWJhc2VsaW5lciA9IHJlYmFz
ZWxpbmVfY2hyb21pdW1fd2Via2l0X3Rlc3RzLlJlYmFzZWxpbmVyKGhvc3RfcG9ydF9vYmosCiAg
ICAgICAgICAgICB0YXJnZXRfcG9ydF9vYmosIHBsYXRmb3JtLCBvcHRpb25zLCB1cmxfZmV0Y2hl
ciwgemlwX2ZhY3RvcnksIG1vY2tfc2NtKQogICAgICAgICByZXR1cm4gcmViYXNlbGluZXIsIGZp
bGVzeXN0ZW0KQEAgLTIyMSw2ICsyMjQsNDAgQEAgY2xhc3MgVGVzdFJlYmFzZWxpbmVyKHVuaXR0
ZXN0LlRlc3RDYXNlKToKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmaWxlc3lzdGVtLmZpbGVz
WycvdGVzdC5jaGVja291dC9MYXlvdXRUZXN0cy9wbGF0Zm9ybS90ZXN0LW1hYy9mYWlsdXJlcy9l
eHBlY3RlZC9pbWFnZS1leHBlY3RlZC5wbmcnXSwgJ25ldy1pbWFnZS1wbmcnKQogICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKGZpbGVzeXN0ZW0uZmlsZXNbJy90ZXN0LmNoZWNrb3V0L0xheW91dFRl
c3RzL3BsYXRmb3JtL3Rlc3QtbWFjL2ZhaWx1cmVzL2V4cGVjdGVkL2ltYWdlLWV4cGVjdGVkLnR4
dCddLCAnbmV3LWltYWdlLXR4dCcpCiAKKyAgICBkZWYgdGVzdF9wbmdfZmlsZV93aXRoX2NvbW1l
bnQoc2VsZik6CisgICAgICAgIHJlYmFzZWxpbmVyLCBmaWxlc3lzdGVtID0gc2VsZi5tYWtlX3Jl
YmFzZWxpbmVyKAorICAgICAgICAgICAgIkJVR1ggUkVCQVNFTElORSBNQUMgOiBmYWlsdXJlcy9l
eHBlY3RlZC9pbWFnZV9jaGVja3N1bS5odG1sID0gSU1BR0UiKQorICAgICAgICBjb21waWxlX3N1
Y2Nlc3MgPSByZWJhc2VsaW5lci5fY29tcGlsZV9yZWJhc2VsaW5pbmdfdGVzdHMoKQorICAgICAg
ICBzZWxmLmFzc2VydFRydWUoY29tcGlsZV9zdWNjZXNzKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKHNldChbJ2ZhaWx1cmVzL2V4cGVjdGVkL2ltYWdlX2NoZWNrc3VtLmh0bWwnXSksIHJlYmFz
ZWxpbmVyLmdldF9yZWJhc2VsaW5pbmdfdGVzdHMoKSkKKyAgICAgICAgcmViYXNlbGluZXIucnVu
KEZhbHNlKQorICAgICAgICAjIFRoZXJlIGlzIG9uZSBsZXNzIGZpbGUgd3JpdHRlbiB0aGFuIHx0
ZXN0X29uZV9wbGF0Zm9ybXwgYmVjYXVzZSB3ZSBvbmx5CisgICAgICAgICMgd3JpdGUgMiBleHBl
Y3RhdGlvbnMgKHRoZSBwbmcgYW5kIHRoZSB0eHQgZmlsZSkuCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwobGVuKGZpbGVzeXN0ZW0ud3JpdHRlbl9maWxlcyksIDExKQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKGZpbGVzeXN0ZW0uZmlsZXNbJy90ZXN0LmNoZWNrb3V0L0xheW91dFRlc3RzL3Bs
YXRmb3JtL3Rlc3QvdGVzdF9leHBlY3RhdGlvbnMudHh0J10sICcnKQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKGZpbGVzeXN0ZW0uZmlsZXNbJy90ZXN0LmNoZWNrb3V0L0xheW91dFRlc3RzL3Bs
YXRmb3JtL3Rlc3QtbWFjL2ZhaWx1cmVzL2V4cGVjdGVkL2ltYWdlX2NoZWNrc3VtLWV4cGVjdGVk
LnBuZyddLCAndEVYdGNoZWNrc3VtXHgwMDAxMjM0NTY3ODknKQorICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKGZpbGVzeXN0ZW0uZmlsZXNbJy90ZXN0LmNoZWNrb3V0L0xheW91dFRlc3RzL3BsYXRm
b3JtL3Rlc3QtbWFjL2ZhaWx1cmVzL2V4cGVjdGVkL2ltYWdlX2NoZWNrc3VtLWV4cGVjdGVkLnR4
dCddLCAncG5nLWNvbW1lbnQtdHh0JykKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShmaWxlc3lz
dGVtLmZpbGVzLmdldCgnL3Rlc3QuY2hlY2tvdXQvTGF5b3V0VGVzdHMvcGxhdGZvcm0vdGVzdC1t
YWMvZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2VfY2hlY2tzdW0tZXhwZWN0ZWQuY2hlY2tzdW0nLCBO
b25lKSkKKworICAgIGRlZiB0ZXN0X3BuZ19maWxlX3dpdGhfY29tbWVudF9yZW1vdmVfb2xkX2No
ZWNrc3VtKHNlbGYpOgorICAgICAgICByZWJhc2VsaW5lciwgZmlsZXN5c3RlbSA9IHNlbGYubWFr
ZV9yZWJhc2VsaW5lcigKKyAgICAgICAgICAgICJCVUdYIFJFQkFTRUxJTkUgTUFDIDogZmFpbHVy
ZXMvZXhwZWN0ZWQvaW1hZ2VfY2hlY2tzdW0uaHRtbCA9IElNQUdFIikKKyAgICAgICAgZmlsZXN5
c3RlbS5maWxlc1snL3Rlc3QuY2hlY2tvdXQvTGF5b3V0VGVzdHMvcGxhdGZvcm0vdGVzdC1tYWMv
ZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2VfY2hlY2tzdW0tZXhwZWN0ZWQucG5nJ10gPSAnb2xkJwor
ICAgICAgICBmaWxlc3lzdGVtLmZpbGVzWycvdGVzdC5jaGVja291dC9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS90ZXN0LW1hYy9mYWlsdXJlcy9leHBlY3RlZC9pbWFnZV9jaGVja3N1bS1leHBlY3RlZC5j
aGVja3N1bSddID0gJ29sZCcKKyAgICAgICAgZmlsZXN5c3RlbS5maWxlc1snL3Rlc3QuY2hlY2tv
dXQvTGF5b3V0VGVzdHMvcGxhdGZvcm0vdGVzdC1tYWMvZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2Vf
Y2hlY2tzdW0tZXhwZWN0ZWQudHh0J10gPSAnb2xkJworCisgICAgICAgIGNvbXBpbGVfc3VjY2Vz
cyA9IHJlYmFzZWxpbmVyLl9jb21waWxlX3JlYmFzZWxpbmluZ190ZXN0cygpCisgICAgICAgIHNl
bGYuYXNzZXJ0VHJ1ZShjb21waWxlX3N1Y2Nlc3MpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
c2V0KFsnZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2VfY2hlY2tzdW0uaHRtbCddKSwgcmViYXNlbGlu
ZXIuZ2V0X3JlYmFzZWxpbmluZ190ZXN0cygpKQorICAgICAgICByZWJhc2VsaW5lci5ydW4oRmFs
c2UpCisgICAgICAgICMgVGhlcmUgaXMgb25lIG1vcmUgZmlsZSB3cml0dGVuIHRoYW4gfHRlc3Rf
cG5nX2ZpbGVfd2l0aF9jb21tZW50X3JlbW92ZV9vbGRfY2hlY2tzdW18CisgICAgICAgICMgYmVj
YXVzZSB3ZSBhbHNvIGRlbGV0ZSB0aGUgb2xkIGNoZWNrc3VtLgorICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKGxlbihmaWxlc3lzdGVtLndyaXR0ZW5fZmlsZXMpLCAxMikKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChmaWxlc3lzdGVtLmZpbGVzWycvdGVzdC5jaGVja291dC9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS90ZXN0L3Rlc3RfZXhwZWN0YXRpb25zLnR4dCddLCAnJykKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChmaWxlc3lzdGVtLmZpbGVzWycvdGVzdC5jaGVja291dC9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS90ZXN0LW1hYy9mYWlsdXJlcy9leHBlY3RlZC9pbWFnZV9jaGVja3N1bS1leHBlY3Rl
ZC5wbmcnXSwgJ3RFWHRjaGVja3N1bVx4MDAwMTIzNDU2Nzg5JykKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChmaWxlc3lzdGVtLmZpbGVzWycvdGVzdC5jaGVja291dC9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS90ZXN0LW1hYy9mYWlsdXJlcy9leHBlY3RlZC9pbWFnZV9jaGVja3N1bS1leHBlY3RlZC50
eHQnXSwgJ3BuZy1jb21tZW50LXR4dCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZmlsZXN5
c3RlbS5maWxlcy5nZXQoJy90ZXN0LmNoZWNrb3V0L0xheW91dFRlc3RzL3BsYXRmb3JtL3Rlc3Qt
bWFjL2ZhaWx1cmVzL2V4cGVjdGVkL2ltYWdlX2NoZWNrc3VtLWV4cGVjdGVkLmNoZWNrc3VtJywg
Tm9uZSksIE5vbmUpCisKICAgICBkZWYgdGVzdF9kaWZmX2Jhc2VsaW5lc190eHQoc2VsZik6CiAg
ICAgICAgIHJlYmFzZWxpbmVyLCBmaWxlc3lzdGVtID0gc2VsZi5tYWtlX3JlYmFzZWxpbmVyKCIi
KQogICAgICAgICBwb3J0ID0gcmViYXNlbGluZXIuX3BvcnQKZGlmZiAtLWdpdCBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvdG9vbC9tb2NrdG9vbC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
dG9vbC9tb2NrdG9vbC5weQppbmRleCA3M2Y1NWE3ZTM2OTIzZDJmNzRkNWEwMDE3ZDYxZmI1NmMx
MmMyYmY1Li5jMGM3MDA3NWNmZGU1NWQ4NjlhM2ZmM2ExZTMyMWEzOWVmOTRhMWJmIDEwMDY0NAot
LS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvbW9ja3Rvb2wucHkKKysrIGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS90b29sL21vY2t0b29sLnB5CkBAIC00NTgsMTMgKzQ1OCwxNCBAQCBj
bGFzcyBNb2NrU0NNKE1vY2spOgogCiAgICAgZmFrZV9jaGVja291dF9yb290ID0gb3MucGF0aC5y
ZWFscGF0aCgiL3RtcCIpICMgcmVhbHBhdGggaXMgbmVlZGVkIHRvIGFsbG93IGZvciBNYWMgT1Mg
WCdzIC9wcml2YXRlL3RtcAogCi0gICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgIGRlZiBfX2lu
aXRfXyhzZWxmLCBmaWxlc3lzdGVtPU5vbmUpOgogICAgICAgICBNb2NrLl9faW5pdF9fKHNlbGYp
CiAgICAgICAgICMgRklYTUU6IFdlIHNob3VsZCBwcm9iYWJseSB1c2UgcmVhbCBjaGVja291dC1y
b290IGRldGVjdGlvbiBsb2dpYyBoZXJlLgogICAgICAgICAjIG9zLmdldGN3ZCgpIGNhbid0IHdv
cmsgaGVyZSBiZWNhdXNlIG90aGVyIHBhcnRzIG9mIHRoZSBjb2RlIGFzc3VtZSB0aGF0ICJjaGVj
a291dF9yb290IgogICAgICAgICAjIHdpbGwgYWN0dWFsbHkgYmUgdGhlIHJvb3QuICBTaW5jZSBn
ZXRjd2QoKSBpcyB3cm9uZywgdXNlIGEgZ2xvYmFsbHkgZmFrZSByb290IGZvciBub3cuCiAgICAg
ICAgIHNlbGYuY2hlY2tvdXRfcm9vdCA9IHNlbGYuZmFrZV9jaGVja291dF9yb290CiAgICAgICAg
IHNlbGYuYWRkZWRfcGF0aHMgPSBzZXQoKQorICAgICAgICBzZWxmLl9maWxlc3lzdGVtID0gZmls
ZXN5c3RlbQogCiAgICAgZGVmIGFkZChzZWxmLCBkZXN0aW5hdGlvbl9wYXRoLCByZXR1cm5fZXhp
dF9jb2RlPUZhbHNlKToKICAgICAgICAgc2VsZi5hZGRlZF9wYXRocy5hZGQoZGVzdGluYXRpb25f
cGF0aCkKQEAgLTUwMiw2ICs1MDMsMTIgQEAgY2xhc3MgTW9ja1NDTShNb2NrKToKICAgICBkZWYg
c3ZuX3JldmlzaW9uX2Zyb21fY29tbWl0X3RleHQoc2VsZiwgY29tbWl0X3RleHQpOgogICAgICAg
ICByZXR1cm4gIjQ5ODI0IgogCisgICAgZGVmIGRlbGV0ZShzZWxmLCBwYXRoKToKKyAgICAgICAg
aWYgbm90IHNlbGYuX2ZpbGVzeXN0ZW06CisgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgaWYg
c2VsZi5fZmlsZXN5c3RlbS5leGlzdHMocGF0aCk6CisgICAgICAgICAgICBzZWxmLl9maWxlc3lz
dGVtLnJlbW92ZShwYXRoKQorCiAKIGNsYXNzIE1vY2tERVBTKG9iamVjdCk6CiAgICAgZGVmIHJl
YWRfdmFyaWFibGUoc2VsZiwgbmFtZSk6Cg==
</data>
<flag name="review"
          id="80213"
          type_id="1"
          status="+"
          setter="ojan"
    />
          </attachment>
      

    </bug>

</bugzilla>