<?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>54700</bug_id>
          
          <creation_ts>2011-02-17 18:00:07 -0800</creation_ts>
          <short_desc>fix various bugs causing test-webkitpy to fail on win32</short_desc>
          <delta_ts>2011-02-20 21:08:43 -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>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>48728</blocked>
    
    <blocked>54788</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dirk Pranke">dpranke</reporter>
          <assigned_to name="Dirk Pranke">dpranke</assigned_to>
          <cc>abarth</cc>
    
    <cc>aroben</cc>
    
    <cc>eric</cc>
    
    <cc>ojan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>353288</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-02-17 18:00:07 -0800</bug_when>
    <thetext>There are various failures being caused by the way we&apos;re handling directory separators and mixing up the use of fake filesystems with real ones. Details in the ChangeLog :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>353338</commentid>
    <comment_count>1</comment_count>
      <attachid>82903</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-02-17 19:26:33 -0800</bug_when>
    <thetext>Created attachment 82903
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>353342</commentid>
    <comment_count>2</comment_count>
      <attachid>82903</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-02-17 19:35:21 -0800</bug_when>
    <thetext>Comment on attachment 82903
Patch

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

&gt; Tools/Scripts/webkitpy/common/net/testoutput_unittest.py:70
&gt;      def _check_name(self, filename, expected_test_name):
&gt; +        filename = filename.replace(&apos;/&apos;, os.path.sep)
&gt; +        expected_test_name = expected_test_name.replace(&apos;/&apos;, os.path.sep)
&gt;          r = testoutput.TextTestOutput(None, FakeFile(filename))
&gt;          self.assertEquals(expected_test_name, r.name())
&gt;  
&gt;      def _check_platform(self, filename, expected_platform):
&gt; +        filename = filename.replace(&apos;/&apos;, os.path.sep)

Can/should we be fixing the paths at a higher level? It seems like ideally we&apos;d construct them with the correct separator right from the start.

&gt; Tools/Scripts/webkitpy/layout_tests/port/chromium_unittest.py:120
&gt; +    class TestWinPort(chromium_win.ChromiumWinPort):
&gt; +        def __init__(self, options):
&gt; +            chromium_win.ChromiumWinPort.__init__(self,
&gt; +                                                  options=options,
&gt; +                                                  filesystem=filesystem_mock.MockFileSystem())
&gt; +
&gt; +        def default_configuration(self):
&gt; +            self.default_configuration_called = True
&gt; +            return &apos;default&apos;
&gt; +

I don&apos;t see this mentioned in your ChangeLog.

&gt; Tools/Scripts/webkitpy/layout_tests/port/chromium_unittest.py:125
&gt; -            &apos;/out/default/ImageDiff&apos;), msg=port._path_to_image_diff())
&gt; +            &apos;out/default/ImageDiff&apos;))

I don&apos;t understand this change, but it&apos;s probably at least partly because I&apos;m not familiar with this code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>353377</commentid>
    <comment_count>3</comment_count>
      <attachid>82903</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2011-02-17 20:44:13 -0800</bug_when>
    <thetext>Comment on attachment 82903
Patch

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

&gt; Tools/Scripts/webkitpy/common/net/testoutput.py:51
&gt; +        path = re.split(re.escape(os.path.sep), filename)

Can&apos;t you just do filename.split(os.path.sep)?

&gt; Tools/Scripts/webkitpy/common/net/testoutput.py:57
&gt; +        path = re.split(re.escape(os.path.sep), filename)

ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>353971</commentid>
    <comment_count>4</comment_count>
      <attachid>83047</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-02-18 18:51:36 -0800</bug_when>
    <thetext>Created attachment 83047
update w/ review feedback, more testing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354326</commentid>
    <comment_count>5</comment_count>
      <attachid>83047</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2011-02-20 16:27:31 -0800</bug_when>
    <thetext>Comment on attachment 83047
update w/ review feedback, more testing

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

&gt; Tools/Scripts/webkitpy/common/net/testoutput_unittest.py:67
&gt; +        filename = filename.replace(&apos;/&apos;, os.path.sep)
&gt; +        expected_test_name = expected_test_name.replace(&apos;/&apos;, os.path.sep)

Maybe to be more clear we should only be doing this on non-cygwin windows? That&apos;s the only case where this does something, right?

&gt; Tools/Scripts/webkitpy/common/net/testoutput_unittest.py:74
&gt; +        filename = filename.replace(&apos;/&apos;, os.path.sep)

ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354403</commentid>
    <comment_count>6</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-02-20 21:08:35 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 83047 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=83047&amp;action=review
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/common/net/testoutput_unittest.py:67
&gt; &gt; +        filename = filename.replace(&apos;/&apos;, os.path.sep)
&gt; &gt; +        expected_test_name = expected_test_name.replace(&apos;/&apos;, os.path.sep)
&gt; 
&gt; Maybe to be more clear we should only be doing this on non-cygwin windows? That&apos;s the only case where this does something, right?
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/common/net/testoutput_unittest.py:74
&gt; &gt; +        filename = filename.replace(&apos;/&apos;, os.path.sep)
&gt; 
&gt; ditto

Done, although I&apos;m not sure that I think that&apos;s clearer, myself.

Committed in http://trac.webkit.org/changeset/79176 .</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82903</attachid>
            <date>2011-02-17 19:26:33 -0800</date>
            <delta_ts>2011-02-18 18:51:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-54700-20110217192632.patch</filename>
            <type>text/plain</type>
            <size>10175</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBiZjlh
ZGU3ZTY1NzVlZDkzOGZlMzIyZjk4MGM2MTM3ZWY0Y2YwZTI0Li43MDEyNmIxMWIzMDRiZjNhNzU3
NDkwMWVmMGRmNDk3NjU0ODE4MDUyIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIv
VG9vbHMvQ2hhbmdlTG9nCkBAIC0yLDYgKzIsMzkgQEAKIAogICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KIAorICAgICAgICBGaXggdmFyaW91cyBidWdzIHJlbGF0ZWQgdG8gaGFu
ZGxpbmcgb2YgZGlyIHNlcGFyYXRvcnMgYW5kIHJlYWwKKyAgICAgICAgdnMuIGZha2UgZmlsZXN5
c3RlbXMgdGhhdCB3ZXJlIGNhdXNpbmcgdGVzdC13ZWJraXRweSB0byBmYWlsCisgICAgICAgIHRl
c3RzIG9uIHdpbjMyLiBUaGVzZSBidWdzIGhhdmUgYSB2YXJpZXR5IG9mIGNhdXNlcyBidXQgYXJl
CisgICAgICAgIGx1bXBlZCB0b2dldGhlciBiZWNhdXNlIHRoZXkgc2hvdWxkIGJlIGVhc3kgdG8g
cmV2aWV3LgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD01NDcwMAorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L3Rlc3RvdXRw
dXQucHk6CisgICAgICAgICAgSGVyZSB3ZSB3ZXJlIHVzaW5nIG9zLnBhdGguc2VwIGJ1dCBub3Qg
ZXNjYXBpbmcgaXQgcHJpb3IgdG8KKyAgICAgICAgICB1c2luZyBpbiBhIHJlZ2V4cCwgd2hpY2gg
IGNhdXNlZCBiYWQgdGhpbmdzIG9uIHdpbjMyLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkv
Y29tbW9uL25ldC90ZXN0b3V0cHV0X3VuaXR0ZXN0LnB5OgorICAgICAgICAgIFNhbWUgaGVyZS4K
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX3Vu
aXR0ZXN0LnB5OgorICAgICAgICAgIEhlcmUgd2Ugd2VyZSB1c2luZyB0aGUgbmF0aXZlIGZpbGVz
eXN0ZW0gaW5zdGVhZCBvZiB0aGUgbW9jaworICAgICAgICAgIGZpbGVzeXN0ZW0sIG1ha2luZyBz
b21lIHRlc3RzIHVubmVjZXNzYXJpbHkgcGxhdGZvcm0gZGVwZW5kZW50LgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3VwZGF0ZV93ZWJnbF9jb25mb3JtYW5jZV90ZXN0
cy5weToKKyAgICAgICAgICBIZXJlIHdlICpzaG91bGRuJ3QqIHVzZSBvcy5wYXRoLmpvaW4oKSwg
anVzdCBzbyB0aGUgY29kZSBiZWNvbWVzCisgICAgICAgICAgbGVzcyBwbGF0Zm9ybSBkZXBlbmRl
bnQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyLnB5OgorICAgICAg
ICAgIEhlcmUgd2Ugc2hvdWxkIGJlIHVzaW5nIG9zLnBhdGguc2VwIGluc3RlYWQgb2YgIi8iOyB0
aGUgdGVzdHMKKyAgICAgICAgICByZXF1aXJlIHRoZSBuYXRpdmUgZmlsZXN5c3RlbS4KKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2NwcF91bml0dGVzdC5weToKKyAg
ICAgICAgICBIZXJlIHRoZSB1bmRlcmx5aW5nIGNvZGUgaXMgdXNpbmcgb3MucGF0aC5zZXAsIHNv
IHdlIHByb2JhYmx5CisgICAgICAgICAgc2hvdWxkIGFzIHdlbGwuCisgICAgICAgICogU2NyaXB0
cy93ZWJraXRweS9zdHlsZS90ZXN0X2V4cGVjdGF0aW9uc191bml0dGVzdC5weToKKyAgICAgICAg
ICBIZXJlIHdlIHNob3VsZCBiZSB1c2luZyB0aGUgZmlsZXN5c3RlbSBoYW5naW5nIG9mIHRoZSBw
b3J0CisgICAgICAgICAgb2JqZWN0ICh3aGljaCBpcyB0aGUgbW9ja2VkIGZpbGVzeXN0ZW0pIHJh
dGhlciB0aGFuIHRoZSBuYXRpdmUKKyAgICAgICAgICBvbmUuCisKKzIwMTEtMDItMTcgIERpcmsg
UHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKICAgICAgICAgU2tpcCBwcmV0dHkgcGF0Y2ggdW5pdCB0ZXN0cyBpZiBy
dWJ5IGlzbid0IGluc3RhbGxlZC4KIAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NTQ2OTkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
Y29tbW9uL25ldC90ZXN0b3V0cHV0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24v
bmV0L3Rlc3RvdXRwdXQucHkKaW5kZXggMzdjMTQ0NWIxMTMzYWJlNDU3YzJmOGFlYTUxNjI5ZGRi
MzBkNjNlOC4uZWY3ZjFjMzk0N2JhZGFhZDI3ODFmM2EzNzllYmQxYTJlOWVhMjdkMyAxMDA2NDQK
LS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L3Rlc3RvdXRwdXQucHkKKysr
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L3Rlc3RvdXRwdXQucHkKQEAgLTQ4
LDEzICs0OCwxMyBAQCBjbGFzcyBUZXN0T3V0cHV0KG9iamVjdCk6CiAKICAgICBkZWYgX2V4dHJh
Y3RfcGxhdGZvcm0oc2VsZiwgZmlsZW5hbWUpOgogICAgICAgICAiIiJDYWxjdWxhdGVzIHRoZSBw
bGF0Zm9ybSBmcm9tIHRoZSBuYW1lIG9mIHRoZSBmaWxlIGlmIGl0IGlzbid0IGtub3duIGFscmVh
ZHkiIiIKLSAgICAgICAgcGF0aCA9IHJlLnNwbGl0KG9zLnBhdGguc2VwLCBmaWxlbmFtZSkKKyAg
ICAgICAgcGF0aCA9IHJlLnNwbGl0KHJlLmVzY2FwZShvcy5wYXRoLnNlcCksIGZpbGVuYW1lKQog
ICAgICAgICBpZiAncGxhdGZvcm0nIGluIHBhdGg6CiAgICAgICAgICAgICByZXR1cm4gcGF0aFtw
YXRoLmluZGV4KCdwbGF0Zm9ybScpICsgMV0KICAgICAgICAgcmV0dXJuIE5vbmUKIAogICAgIGRl
ZiBfZXh0cmFjdF90ZXN0X25hbWUoc2VsZiwgZmlsZW5hbWUpOgotICAgICAgICBwYXRoID0gcmUu
c3BsaXQob3MucGF0aC5zZXAsIGZpbGVuYW1lKQorICAgICAgICBwYXRoID0gcmUuc3BsaXQocmUu
ZXNjYXBlKG9zLnBhdGguc2VwKSwgZmlsZW5hbWUpCiAgICAgICAgIGlmICdMYXlvdXRUZXN0cycg
aW4gcGF0aDoKICAgICAgICAgICAgIHBhdGggPSBwYXRoWzEgKyBwYXRoLmluZGV4KCdMYXlvdXRU
ZXN0cycpOl0KICAgICAgICAgaWYgJ2xheW91dC10ZXN0LXJlc3VsdHMnIGluIHBhdGg6CmRpZmYg
LS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvdGVzdG91dHB1dF91bml0
dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC90ZXN0b3V0cHV0X3Vu
aXR0ZXN0LnB5CmluZGV4IGFkMzhjYTYxMjU0ZjE1NGIwMzZiYTM2YjA1OGYzNTIwM2Y5MWUyODYu
LjQ0MTFjMGM5MWY0NWNjM2M2NTU3Mjk4NWQ3YThiOTIyNzU1MGM0YTQgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC90ZXN0b3V0cHV0X3VuaXR0ZXN0LnB5Cisr
KyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC90ZXN0b3V0cHV0X3VuaXR0ZXN0
LnB5CkBAIC0yMiw2ICsyMiw3IEBACiAjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgogIyBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCitp
bXBvcnQgb3MKIGltcG9ydCByZQogaW1wb3J0IHRlc3RvdXRwdXQKIGltcG9ydCB1bml0dGVzdApA
QCAtNjAsMTAgKzYxLDEzIEBAIGNsYXNzIEZha2VUZXN0T3V0cHV0KHRlc3RvdXRwdXQuVGVzdE91
dHB1dCk6CiAKIGNsYXNzIFRlc3RPdXRwdXRUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICBk
ZWYgX2NoZWNrX25hbWUoc2VsZiwgZmlsZW5hbWUsIGV4cGVjdGVkX3Rlc3RfbmFtZSk6CisgICAg
ICAgIGZpbGVuYW1lID0gZmlsZW5hbWUucmVwbGFjZSgnLycsIG9zLnBhdGguc2VwKQorICAgICAg
ICBleHBlY3RlZF90ZXN0X25hbWUgPSBleHBlY3RlZF90ZXN0X25hbWUucmVwbGFjZSgnLycsIG9z
LnBhdGguc2VwKQogICAgICAgICByID0gdGVzdG91dHB1dC5UZXh0VGVzdE91dHB1dChOb25lLCBG
YWtlRmlsZShmaWxlbmFtZSkpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGV4cGVjdGVkX3Rl
c3RfbmFtZSwgci5uYW1lKCkpCiAKICAgICBkZWYgX2NoZWNrX3BsYXRmb3JtKHNlbGYsIGZpbGVu
YW1lLCBleHBlY3RlZF9wbGF0Zm9ybSk6CisgICAgICAgIGZpbGVuYW1lID0gZmlsZW5hbWUucmVw
bGFjZSgnLycsIG9zLnBhdGguc2VwKQogICAgICAgICByID0gdGVzdG91dHB1dC5UZXh0VGVzdE91
dHB1dChOb25lLCBGYWtlRmlsZShmaWxlbmFtZSkpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxz
KGV4cGVjdGVkX3BsYXRmb3JtLCByLnBsYXRmb3JtKCkpCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fdW5pdHRlc3QucHkgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX3VuaXR0ZXN0
LnB5CmluZGV4IDY4MTVlNWQ5YTg3ZjlkYTI5M2ZlMGJlNTMzYmJhNjNlZGE4MzBmMTQuLjRiMGVk
ZmUxYmQyZGEzZjM2ZmZjYmUwMzAwNjJjZGZlNmQwNjQ3YjAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fdW5pdHRlc3QucHkKKysr
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV91bml0
dGVzdC5weQpAQCAtMjYsNiArMjYsNyBAQAogIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICMgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
IAoraW1wb3J0IHN5cwogaW1wb3J0IHVuaXR0ZXN0CiBpbXBvcnQgU3RyaW5nSU8KIApAQCAtOTAs
NyArOTEsOCBAQCBjbGFzcyBDaHJvbWl1bVBvcnRUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAg
ICBjbGFzcyBUZXN0TWFjUG9ydChjaHJvbWl1bV9tYWMuQ2hyb21pdW1NYWNQb3J0KToKICAgICAg
ICAgZGVmIF9faW5pdF9fKHNlbGYsIG9wdGlvbnMpOgogICAgICAgICAgICAgY2hyb21pdW1fbWFj
LkNocm9taXVtTWFjUG9ydC5fX2luaXRfXyhzZWxmLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zPW9wdGlvbnMpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnM9b3B0aW9ucywKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZXN5c3Rl
bT1maWxlc3lzdGVtX21vY2suTW9ja0ZpbGVTeXN0ZW0oKSkKIAogICAgICAgICBkZWYgZGVmYXVs
dF9jb25maWd1cmF0aW9uKHNlbGYpOgogICAgICAgICAgICAgc2VsZi5kZWZhdWx0X2NvbmZpZ3Vy
YXRpb25fY2FsbGVkID0gVHJ1ZQpAQCAtMTA2LDE2ICsxMDgsMjYgQEAgY2xhc3MgQ2hyb21pdW1Q
b3J0VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICAgICBzZWxmLmRlZmF1bHRfY29u
ZmlndXJhdGlvbl9jYWxsZWQgPSBUcnVlCiAgICAgICAgICAgICByZXR1cm4gJ2RlZmF1bHQnCiAK
KyAgICBjbGFzcyBUZXN0V2luUG9ydChjaHJvbWl1bV93aW4uQ2hyb21pdW1XaW5Qb3J0KToKKyAg
ICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIG9wdGlvbnMpOgorICAgICAgICAgICAgY2hyb21pdW1f
d2luLkNocm9taXVtV2luUG9ydC5fX2luaXRfXyhzZWxmLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zPW9wdGlvbnMsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVzeXN0ZW09ZmlsZXN5
c3RlbV9tb2NrLk1vY2tGaWxlU3lzdGVtKCkpCisKKyAgICAgICAgZGVmIGRlZmF1bHRfY29uZmln
dXJhdGlvbihzZWxmKToKKyAgICAgICAgICAgIHNlbGYuZGVmYXVsdF9jb25maWd1cmF0aW9uX2Nh
bGxlZCA9IFRydWUKKyAgICAgICAgICAgIHJldHVybiAnZGVmYXVsdCcKKwogICAgIGRlZiB0ZXN0
X3BhdGhfdG9faW1hZ2VfZGlmZihzZWxmKToKICAgICAgICAgbW9ja19vcHRpb25zID0gbW9ja3Rv
b2wuTW9ja09wdGlvbnMoKQogICAgICAgICBwb3J0ID0gQ2hyb21pdW1Qb3J0VGVzdC5UZXN0TGlu
dXhQb3J0KG9wdGlvbnM9bW9ja19vcHRpb25zKQogICAgICAgICBzZWxmLmFzc2VydFRydWUocG9y
dC5fcGF0aF90b19pbWFnZV9kaWZmKCkuZW5kc3dpdGgoCi0gICAgICAgICAgICAnL291dC9kZWZh
dWx0L0ltYWdlRGlmZicpLCBtc2c9cG9ydC5fcGF0aF90b19pbWFnZV9kaWZmKCkpCisgICAgICAg
ICAgICAnb3V0L2RlZmF1bHQvSW1hZ2VEaWZmJykpCiAgICAgICAgIHBvcnQgPSBDaHJvbWl1bVBv
cnRUZXN0LlRlc3RNYWNQb3J0KG9wdGlvbnM9bW9ja19vcHRpb25zKQogICAgICAgICBzZWxmLmFz
c2VydFRydWUocG9ydC5fcGF0aF90b19pbWFnZV9kaWZmKCkuZW5kc3dpdGgoCi0gICAgICAgICAg
ICAnL3hjb2RlYnVpbGQvZGVmYXVsdC9JbWFnZURpZmYnKSkKLSAgICAgICAgIyBGSVhNRTogRmln
dXJlIG91dCBob3cgdGhpcyBpcyBnb2luZyB0byB3b3JrIG9uIFdpbmRvd3MuCi0gICAgICAgICNw
b3J0ID0gY2hyb21pdW1fd2luLkNocm9taXVtV2luUG9ydCgndGVzdC1wb3J0Jywgb3B0aW9ucz1N
b2NrT3B0aW9ucygpKQorICAgICAgICAgICAgICAgICd4Y29kZWJ1aWxkL2RlZmF1bHQvSW1hZ2VE
aWZmJykpCisgICAgICAgIHBvcnQgPSBDaHJvbWl1bVBvcnRUZXN0LlRlc3RXaW5Qb3J0KG9wdGlv
bnM9bW9ja19vcHRpb25zKQorICAgICAgICBzZWxmLmFzc2VydFRydWUocG9ydC5fcGF0aF90b19p
bWFnZV9kaWZmKCkuZW5kc3dpdGgoJ2RlZmF1bHQvSW1hZ2VEaWZmLmV4ZScpKQogCiAgICAgZGVm
IHRlc3Rfc2tpcHBlZF9sYXlvdXRfdGVzdHMoc2VsZik6CiAgICAgICAgIG1vY2tfb3B0aW9ucyA9
IG1vY2t0b29sLk1vY2tPcHRpb25zKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3VwZGF0ZV93ZWJnbF9jb25mb3JtYW5jZV90ZXN0cy5weSBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3VwZGF0ZV93ZWJnbF9jb25mb3JtYW5jZV90
ZXN0cy5weQppbmRleCA3MjY3YWE2Y2YwNzdhYjgyYzMwMzkyYWZkNjEzZWVlOTRlYjVhMTMzLi4y
NTZkMDgxMzkxYzllMTVlYWIzN2VjYWQ4MTRiOGFjZmIyMjc3NTJjIDEwMDc1NQotLS0gYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy91cGRhdGVfd2ViZ2xfY29uZm9ybWFuY2Vf
dGVzdHMucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdXBkYXRl
X3dlYmdsX2NvbmZvcm1hbmNlX3Rlc3RzLnB5CkBAIC01Myw3ICs1Myw5IEBAIGRlZiB0cmFuc2xh
dGVfaW5jbHVkZXModGV4dCk6CiAKICAgICBmb3IgZmlsZW5hbWUsIHBhdGggaW4gaW5jbHVkZV9t
YXBwaW5nLml0ZW1zKCk6CiAgICAgICAgIHNlYXJjaCA9IHInKD86W14iXCc9IF0qLyk/JyArIHJl
LmVzY2FwZShmaWxlbmFtZSkKLSAgICAgICAgcmVwbGFjZSA9IG9zLnBhdGguam9pbihwYXRoLCBm
aWxlbmFtZSkKKyAgICAgICAgIyBXZSB1c2UgJy8nIGluc3RlYWQgb2Ygb3MucGF0aC5qb2luIGlu
IG9yZGVyIHRvIHByb2R1Y2UgY29uc2lzdGVudAorICAgICAgICAjIG91dHB1dCBjcm9zcy1wbGF0
Zm9ybS4KKyAgICAgICAgcmVwbGFjZSA9IHBhdGggKyAnLycgKyBmaWxlbmFtZQogICAgICAgICB0
ZXh0ID0gcmUuc3ViKHNlYXJjaCwgcmVwbGFjZSwgdGV4dCkKIAogICAgIHJldHVybiB0ZXh0CmRp
ZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIucHkgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIucHkKaW5kZXggMjNiOWFiMzMyZDNiMGVm
ZDM5N2M5ZWYxMjY1Y2IyODJiMDVkNDM4ZS4uMWU3ODFhM2YzZTRhMGZlNzNiMDVjM2QzNDE3MDNj
NDYxZTQ5N2IwNiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVj
a2VyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlci5weQpAQCAt
MjUzLDcgKzI1Myw3IEBAIF9TS0lQUEVEX0ZJTEVTX1dJVEhfV0FSTklORyA9IFsKICMgVGhpcyBs
aXN0IHNob3VsZCBiZSBpbiBhZGRpdGlvbiB0byBmaWxlcyB3aXRoIEZpbGVUeXBlLk5PTkUuICBG
aWxlcwogIyB3aXRoIEZpbGVUeXBlLk5PTkUgYXJlIGF1dG9tYXRpY2FsbHkgc2tpcHBlZCB3aXRo
b3V0IHdhcm5pbmcuCiBfU0tJUFBFRF9GSUxFU19XSVRIT1VUX1dBUk5JTkcgPSBbCi0gICAgIkxh
eW91dFRlc3RzLyIsCisgICAgIkxheW91dFRlc3RzIiArIG9zLnBhdGguc2VwLAogICAgIF0KIAog
IyBFeHRlbnNpb25zIG9mIGZpbGVzIHdoaWNoIGFyZSBhbGxvd2VkIHRvIGNvbnRhaW4gY2Fycmlh
Z2UgcmV0dXJucy4KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hl
Y2tlcnMvY3BwX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVj
a2Vycy9jcHBfdW5pdHRlc3QucHkKaW5kZXggODc3YTYyZGQyYjQwMWE1ZGJkMWIwNWI0OTBkNmZl
ZjI2MWJkNzljZC4uZWRkMTBkMzFjOTFmNjA0Y2RiNTlmNWIwZGIyOGQ2NjVjOWE4YWJmNyAxMDA2
NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9jcHBfdW5pdHRl
c3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9jcHBfdW5p
dHRlc3QucHkKQEAgLTEwMDIsOSArMTAwMiw5IEBAIGNsYXNzIENwcFN0eWxlVGVzdChDcHBTdHls
ZVRlc3RCYXNlKToKICAgICAgICAgbW9ja19oZWFkZXJfY29udGVudHMgPSBbJyddCiAgICAgICAg
IG1lc3NhZ2UgPSBzZWxmLnBlcmZvcm1faW5jbHVkZV93aGF0X3lvdV91c2UoCiAgICAgICAgICAg
ICAnJycjaW5jbHVkZSAiY29uZmlnLmgiCi0gICAgICAgICAgICAgICAjaW5jbHVkZSAiJXMvYS5o
IgorICAgICAgICAgICAgICAgI2luY2x1ZGUgIiVzJXNhLmgiCiAKLSAgICAgICAgICAgICAgIHN0
ZDo6c2V0PGludD4gZm9vOycnJyAlIG9zLnBhdGguYmFzZW5hbWUob3MuZ2V0Y3dkKCkpLAorICAg
ICAgICAgICAgICAgc3RkOjpzZXQ8aW50PiBmb287JycnICUgKG9zLnBhdGguYmFzZW5hbWUob3Mu
Z2V0Y3dkKCkpLCBvcy5wYXRoLnNlcCksCiAgICAgICAgICAgICBmaWxlbmFtZT0nYS5jcHAnLAog
ICAgICAgICAgICAgaW89TW9ja0lvKG1vY2tfaGVhZGVyX2NvbnRlbnRzKSkKICAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbHMobWVzc2FnZSwgJ0FkZCAjaW5jbHVkZSA8c2V0PiBmb3Igc2V0PD4gICcK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvdGVzdF9l
eHBlY3RhdGlvbnNfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2No
ZWNrZXJzL3Rlc3RfZXhwZWN0YXRpb25zX3VuaXR0ZXN0LnB5CmluZGV4IGYwODEzZTE0NGU1YWNj
YzFmMGRhM2YyMTQzMTU5ZWQ5MTg0MDIwNjcuLjlkMDNhY2NlOTRkZWFlY2FiMjVmOTk0NDBlMmE3
ZWJkMTYxYzBhZTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hl
Y2tlcnMvdGVzdF9leHBlY3RhdGlvbnNfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9zdHlsZS9jaGVja2Vycy90ZXN0X2V4cGVjdGF0aW9uc191bml0dGVzdC5weQpAQCAt
NjcsNyArNjcsNyBAQCBjbGFzcyBUZXN0RXhwZWN0YXRpb25zVGVzdENhc2UodW5pdHRlc3QuVGVz
dENhc2UpOgogICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICAgc2VsZi5fZXJyb3JfY29sbGVj
dG9yID0gRXJyb3JDb2xsZWN0b3IoKQogICAgICAgICBwb3J0X29iaiA9IHBvcnQuZ2V0KCd0ZXN0
JykKLSAgICAgICAgc2VsZi5fdGVzdF9maWxlID0gb3MucGF0aC5qb2luKHBvcnRfb2JqLmxheW91
dF90ZXN0c19kaXIoKSwgJ3Bhc3Nlcy90ZXh0Lmh0bWwnKQorICAgICAgICBzZWxmLl90ZXN0X2Zp
bGUgPSBwb3J0X29iai5fZmlsZXN5c3RlbS5qb2luKHBvcnRfb2JqLmxheW91dF90ZXN0c19kaXIo
KSwgJ3Bhc3Nlcy90ZXh0Lmh0bWwnKQogCiAgICAgZGVmIHByb2Nlc3NfZXhwZWN0YXRpb25zKHNl
bGYsIGV4cGVjdGF0aW9ucywgb3ZlcnJpZGVzPU5vbmUpOgogICAgICAgICBzZWxmLl9jaGVja2Vy
ID0gVGVzdEV4cGVjdGF0aW9uc0NoZWNrZXIoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83047</attachid>
            <date>2011-02-18 18:51:36 -0800</date>
            <delta_ts>2011-02-20 16:27:31 -0800</delta_ts>
            <desc>update w/ review feedback, more testing</desc>
            <filename>bug-54700-20110218185135.patch</filename>
            <type>text/plain</type>
            <size>10782</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzkwNDcKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCBmYjQ0MWMwODRjZjY0NzNkMmY4MGM5MDliYWEzMTVkMWE0
Y2U4MzA1Li4wZjI0NTI1ZTVmMDYwODMxNDkxY2ZiZjk3ZDExYjQ2Yzk0ZGJlNzBhIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNDAg
QEAKIDIwMTEtMDItMTggIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CiAKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4IHZhcmlvdXMg
YnVncyByZWxhdGVkIHRvIGhhbmRsaW5nIG9mIGRpciBzZXBhcmF0b3JzIGFuZCByZWFsCisgICAg
ICAgIHZzLiBmYWtlIGZpbGVzeXN0ZW1zIHRoYXQgd2VyZSBjYXVzaW5nIHRlc3Qtd2Via2l0cHkg
dG8gZmFpbAorICAgICAgICB0ZXN0cyBvbiB3aW4zMi4gVGhlc2UgYnVncyBoYXZlIGEgdmFyaWV0
eSBvZiBjYXVzZXMgYnV0IGFyZQorICAgICAgICBsdW1wZWQgdG9nZXRoZXIgYmVjYXVzZSB0aGV5
IHNob3VsZCBiZSBlYXN5IHRvIHJldmlldy4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTQ3MDAKKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkv
Y29tbW9uL25ldC90ZXN0b3V0cHV0LnB5OgorICAgICAgICAgIEhlcmUgd2Ugd2VyZSB1c2luZyBv
cy5wYXRoLnNlcCBidXQgbm90IGVzY2FwaW5nIGl0IHByaW9yIHRvCisgICAgICAgICAgdXNpbmcg
aW4gYSByZWdleHAsIHdoaWNoICBjYXVzZWQgYmFkIHRoaW5ncyBvbiB3aW4zMi4KKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvdGVzdG91dHB1dF91bml0dGVzdC5weToKKyAg
ICAgICAgICBTYW1lIGhlcmUuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcG9ydC9jaHJvbWl1bV91bml0dGVzdC5weToKKyAgICAgICAgICBIZXJlIHdlIHdlcmUgdXNp
bmcgdGhlIG5hdGl2ZSBmaWxlc3lzdGVtIGluc3RlYWQgb2YgdGhlIG1vY2sKKyAgICAgICAgICBm
aWxlc3lzdGVtLCBtYWtpbmcgc29tZSB0ZXN0cyB1bm5lY2Vzc2FyaWx5IHBsYXRmb3JtIGRlcGVu
ZGVudC4KKyAgICAgICAgICBBbHNvIHdlIHdlcmVuJ3Qgc2V0dGluZyB0aGUgZGVmYXVsdCBjb25m
aWd1cmF0aW9uIGZvciB0aGUKKyAgICAgICAgICBUZXN0Q2hyb21pdW1XaW5Qb3J0LgorICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3VwZGF0ZV93ZWJnbF9jb25mb3JtYW5j
ZV90ZXN0cy5weToKKyAgICAgICAgICBIZXJlIHdlICpzaG91bGRuJ3QqIHVzZSBvcy5wYXRoLmpv
aW4oKSwganVzdCBzbyB0aGUgY29kZSBiZWNvbWVzCisgICAgICAgICAgbGVzcyBwbGF0Zm9ybSBk
ZXBlbmRlbnQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyLnB5Ogor
ICAgICAgICAgIEhlcmUgd2Ugc2hvdWxkIGJlIHVzaW5nIG9zLnBhdGguc2VwIGluc3RlYWQgb2Yg
Ii8iOyB0aGUgdGVzdHMKKyAgICAgICAgICByZXF1aXJlIHRoZSBuYXRpdmUgZmlsZXN5c3RlbS4K
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2NwcF91bml0dGVzdC5w
eToKKyAgICAgICAgICBIZXJlIHRoZSB1bmRlcmx5aW5nIGNvZGUgaXMgdXNpbmcgb3MucGF0aC5z
ZXAsIHNvIHdlIHByb2JhYmx5CisgICAgICAgICAgc2hvdWxkIGFzIHdlbGwuCisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS9zdHlsZS90ZXN0X2V4cGVjdGF0aW9uc191bml0dGVzdC5weToKKyAg
ICAgICAgICBIZXJlIHdlIHNob3VsZCBiZSB1c2luZyB0aGUgZmlsZXN5c3RlbSBoYW5naW5nIG9m
IHRoZSBwb3J0CisgICAgICAgICAgb2JqZWN0ICh3aGljaCBpcyB0aGUgbW9ja2VkIGZpbGVzeXN0
ZW0pIHJhdGhlciB0aGFuIHRoZSBuYXRpdmUKKyAgICAgICAgICBvbmUuCisKKzIwMTEtMDItMTgg
IERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CisKICAgICAgICAgUmV2aWV3ZWQg
YnkgT2phbiBWYWZhaS4KIAogICAgICAgICBuZXctcnVuLXdlYmtpdC10ZXN0czogZW5hYmxlIG11
bHRpcGxlIHByb2Nlc3NlcyBieSBkZWZhdWx0IG9uIG1hYwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9jb21tb24vbmV0L3Rlc3RvdXRwdXQucHkgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2NvbW1vbi9uZXQvdGVzdG91dHB1dC5weQppbmRleCAzN2MxNDQ1YjExMzNhYmU0NTdj
MmY4YWVhNTE2MjlkZGIzMGQ2M2U4Li43ZTE4MWVkMmQxMzkzZTc5YTMzMTMzZDdhM2Q5ZjEyMDlm
OGVmYjQwIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvdGVz
dG91dHB1dC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvdGVzdG91
dHB1dC5weQpAQCAtNDgsMTMgKzQ4LDEzIEBAIGNsYXNzIFRlc3RPdXRwdXQob2JqZWN0KToKIAog
ICAgIGRlZiBfZXh0cmFjdF9wbGF0Zm9ybShzZWxmLCBmaWxlbmFtZSk6CiAgICAgICAgICIiIkNh
bGN1bGF0ZXMgdGhlIHBsYXRmb3JtIGZyb20gdGhlIG5hbWUgb2YgdGhlIGZpbGUgaWYgaXQgaXNu
J3Qga25vd24gYWxyZWFkeSIiIgotICAgICAgICBwYXRoID0gcmUuc3BsaXQob3MucGF0aC5zZXAs
IGZpbGVuYW1lKQorICAgICAgICBwYXRoID0gZmlsZW5hbWUuc3BsaXQob3MucGF0aC5zZXApCiAg
ICAgICAgIGlmICdwbGF0Zm9ybScgaW4gcGF0aDoKICAgICAgICAgICAgIHJldHVybiBwYXRoW3Bh
dGguaW5kZXgoJ3BsYXRmb3JtJykgKyAxXQogICAgICAgICByZXR1cm4gTm9uZQogCiAgICAgZGVm
IF9leHRyYWN0X3Rlc3RfbmFtZShzZWxmLCBmaWxlbmFtZSk6Ci0gICAgICAgIHBhdGggPSByZS5z
cGxpdChvcy5wYXRoLnNlcCwgZmlsZW5hbWUpCisgICAgICAgIHBhdGggPSBmaWxlbmFtZS5zcGxp
dChvcy5wYXRoLnNlcCkKICAgICAgICAgaWYgJ0xheW91dFRlc3RzJyBpbiBwYXRoOgogICAgICAg
ICAgICAgcGF0aCA9IHBhdGhbMSArIHBhdGguaW5kZXgoJ0xheW91dFRlc3RzJyk6XQogICAgICAg
ICBpZiAnbGF5b3V0LXRlc3QtcmVzdWx0cycgaW4gcGF0aDoKZGlmZiAtLWdpdCBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC90ZXN0b3V0cHV0X3VuaXR0ZXN0LnB5IGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L3Rlc3RvdXRwdXRfdW5pdHRlc3QucHkKaW5kZXgg
YWQzOGNhNjEyNTRmMTU0YjAzNmJhMzZiMDU4ZjM1MjAzZjkxZTI4Ni4uMTk4YzBjOThlOTQ5MmE4
ZWJlZjRlNzY4ZTM1ZGRjY2VlNGRiZDE3OSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9jb21tb24vbmV0L3Rlc3RvdXRwdXRfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9jb21tb24vbmV0L3Rlc3RvdXRwdXRfdW5pdHRlc3QucHkKQEAgLTIyLDYgKzIy
LDcgQEAKICMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCiAjIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKK2ltcG9ydCBvcwogaW1wb3J0
IHJlCiBpbXBvcnQgdGVzdG91dHB1dAogaW1wb3J0IHVuaXR0ZXN0CkBAIC02MCwxMCArNjEsMTcg
QEAgY2xhc3MgRmFrZVRlc3RPdXRwdXQodGVzdG91dHB1dC5UZXN0T3V0cHV0KToKIAogY2xhc3Mg
VGVzdE91dHB1dFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiBfY2hlY2tfbmFtZShz
ZWxmLCBmaWxlbmFtZSwgZXhwZWN0ZWRfdGVzdF9uYW1lKToKKyAgICAgICAgIyBGSVhNRTogc2hv
dWxkIGNvbnNpZGVyIHVzaW5nIE1vY2tGaWxlU3lzdGVtIGhlcmUgc28gYXMgdG8gbm90CisgICAg
ICAgICMgaGF2ZSB0byB3b3JyeSBhYm91dCBwbGF0Zm9ybS1zcGVjaWZpYyBwYXRoIHNlcGFyYXRv
cnMuCisgICAgICAgIGZpbGVuYW1lID0gZmlsZW5hbWUucmVwbGFjZSgnLycsIG9zLnBhdGguc2Vw
KQorICAgICAgICBleHBlY3RlZF90ZXN0X25hbWUgPSBleHBlY3RlZF90ZXN0X25hbWUucmVwbGFj
ZSgnLycsIG9zLnBhdGguc2VwKQogICAgICAgICByID0gdGVzdG91dHB1dC5UZXh0VGVzdE91dHB1
dChOb25lLCBGYWtlRmlsZShmaWxlbmFtZSkpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGV4
cGVjdGVkX3Rlc3RfbmFtZSwgci5uYW1lKCkpCiAKICAgICBkZWYgX2NoZWNrX3BsYXRmb3JtKHNl
bGYsIGZpbGVuYW1lLCBleHBlY3RlZF9wbGF0Zm9ybSk6CisgICAgICAgICMgRklYTUU6IHNob3Vs
ZCBjb25zaWRlciB1c2luZyBNb2NrRmlsZVN5c3RlbSBoZXJlIHNvIGFzIHRvIG5vdAorICAgICAg
ICAjIGhhdmUgdG8gd29ycnkgYWJvdXQgcGxhdGZvcm0tc3BlY2lmaWMgcGF0aCBzZXBhcmF0b3Jz
LgorICAgICAgICBmaWxlbmFtZSA9IGZpbGVuYW1lLnJlcGxhY2UoJy8nLCBvcy5wYXRoLnNlcCkK
ICAgICAgICAgciA9IHRlc3RvdXRwdXQuVGV4dFRlc3RPdXRwdXQoTm9uZSwgRmFrZUZpbGUoZmls
ZW5hbWUpKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhleHBlY3RlZF9wbGF0Zm9ybSwgci5w
bGF0Zm9ybSgpKQogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9wb3J0L2Nocm9taXVtX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV91bml0dGVzdC5weQppbmRleCA2ODE1ZTVkOWE4N2Y5
ZGEyOTNmZTBiZTUzM2JiYTYzZWRhODMwZjE0Li5iMjg3ODc1ZjlkY2NhMDRjMTRmZWE3MjZiNjFi
MjRjOWExNTk2Y2E0IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9wb3J0L2Nocm9taXVtX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fdW5pdHRlc3QucHkKQEAgLTkwLDcgKzkwLDgg
QEAgY2xhc3MgQ2hyb21pdW1Qb3J0VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgY2xhc3Mg
VGVzdE1hY1BvcnQoY2hyb21pdW1fbWFjLkNocm9taXVtTWFjUG9ydCk6CiAgICAgICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBvcHRpb25zKToKICAgICAgICAgICAgIGNocm9taXVtX21hYy5DaHJvbWl1
bU1hY1BvcnQuX19pbml0X18oc2VsZiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgb3B0aW9ucz1vcHRpb25zKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zPW9wdGlvbnMsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVzeXN0ZW09ZmlsZXN5
c3RlbV9tb2NrLk1vY2tGaWxlU3lzdGVtKCkpCiAKICAgICAgICAgZGVmIGRlZmF1bHRfY29uZmln
dXJhdGlvbihzZWxmKToKICAgICAgICAgICAgIHNlbGYuZGVmYXVsdF9jb25maWd1cmF0aW9uX2Nh
bGxlZCA9IFRydWUKQEAgLTEwNiwxNiArMTA3LDI3IEBAIGNsYXNzIENocm9taXVtUG9ydFRlc3Qo
dW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICAgICAgc2VsZi5kZWZhdWx0X2NvbmZpZ3VyYXRp
b25fY2FsbGVkID0gVHJ1ZQogICAgICAgICAgICAgcmV0dXJuICdkZWZhdWx0JwogCisgICAgY2xh
c3MgVGVzdFdpblBvcnQoY2hyb21pdW1fd2luLkNocm9taXVtV2luUG9ydCk6CisgICAgICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCBvcHRpb25zKToKKyAgICAgICAgICAgIGNocm9taXVtX3dpbi5DaHJv
bWl1bVdpblBvcnQuX19pbml0X18oc2VsZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucz1vcHRpb25zLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlc3lzdGVtPWZpbGVzeXN0ZW1fbW9j
ay5Nb2NrRmlsZVN5c3RlbSgpKQorCisgICAgICAgIGRlZiBkZWZhdWx0X2NvbmZpZ3VyYXRpb24o
c2VsZik6CisgICAgICAgICAgICBzZWxmLmRlZmF1bHRfY29uZmlndXJhdGlvbl9jYWxsZWQgPSBU
cnVlCisgICAgICAgICAgICByZXR1cm4gJ2RlZmF1bHQnCisKICAgICBkZWYgdGVzdF9wYXRoX3Rv
X2ltYWdlX2RpZmYoc2VsZik6CiAgICAgICAgIG1vY2tfb3B0aW9ucyA9IG1vY2t0b29sLk1vY2tP
cHRpb25zKCkKICAgICAgICAgcG9ydCA9IENocm9taXVtUG9ydFRlc3QuVGVzdExpbnV4UG9ydChv
cHRpb25zPW1vY2tfb3B0aW9ucykKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHBvcnQuX3BhdGhf
dG9faW1hZ2VfZGlmZigpLmVuZHN3aXRoKAotICAgICAgICAgICAgJy9vdXQvZGVmYXVsdC9JbWFn
ZURpZmYnKSwgbXNnPXBvcnQuX3BhdGhfdG9faW1hZ2VfZGlmZigpKQorICAgICAgICAgICAgJy9v
dXQvZGVmYXVsdC9JbWFnZURpZmYnKSkKICAgICAgICAgcG9ydCA9IENocm9taXVtUG9ydFRlc3Qu
VGVzdE1hY1BvcnQob3B0aW9ucz1tb2NrX29wdGlvbnMpCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1
ZShwb3J0Ll9wYXRoX3RvX2ltYWdlX2RpZmYoKS5lbmRzd2l0aCgKICAgICAgICAgICAgICcveGNv
ZGVidWlsZC9kZWZhdWx0L0ltYWdlRGlmZicpKQotICAgICAgICAjIEZJWE1FOiBGaWd1cmUgb3V0
IGhvdyB0aGlzIGlzIGdvaW5nIHRvIHdvcmsgb24gV2luZG93cy4KLSAgICAgICAgI3BvcnQgPSBj
aHJvbWl1bV93aW4uQ2hyb21pdW1XaW5Qb3J0KCd0ZXN0LXBvcnQnLCBvcHRpb25zPU1vY2tPcHRp
b25zKCkpCisgICAgICAgIHBvcnQgPSBDaHJvbWl1bVBvcnRUZXN0LlRlc3RXaW5Qb3J0KG9wdGlv
bnM9bW9ja19vcHRpb25zKQorICAgICAgICBzZWxmLmFzc2VydFRydWUocG9ydC5fcGF0aF90b19p
bWFnZV9kaWZmKCkuZW5kc3dpdGgoCisgICAgICAgICAgICAnL2RlZmF1bHQvSW1hZ2VEaWZmLmV4
ZScpKQogCiAgICAgZGVmIHRlc3Rfc2tpcHBlZF9sYXlvdXRfdGVzdHMoc2VsZik6CiAgICAgICAg
IG1vY2tfb3B0aW9ucyA9IG1vY2t0b29sLk1vY2tPcHRpb25zKCkKZGlmZiAtLWdpdCBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3VwZGF0ZV93ZWJnbF9jb25mb3JtYW5jZV90
ZXN0cy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3VwZGF0ZV93ZWJn
bF9jb25mb3JtYW5jZV90ZXN0cy5weQppbmRleCA3MjY3YWE2Y2YwNzdhYjgyYzMwMzkyYWZkNjEz
ZWVlOTRlYjVhMTMzLi4yNTZkMDgxMzkxYzllMTVlYWIzN2VjYWQ4MTRiOGFjZmIyMjc3NTJjIDEw
MDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy91cGRhdGVfd2Vi
Z2xfY29uZm9ybWFuY2VfdGVzdHMucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvdXBkYXRlX3dlYmdsX2NvbmZvcm1hbmNlX3Rlc3RzLnB5CkBAIC01Myw3ICs1Myw5
IEBAIGRlZiB0cmFuc2xhdGVfaW5jbHVkZXModGV4dCk6CiAKICAgICBmb3IgZmlsZW5hbWUsIHBh
dGggaW4gaW5jbHVkZV9tYXBwaW5nLml0ZW1zKCk6CiAgICAgICAgIHNlYXJjaCA9IHInKD86W14i
XCc9IF0qLyk/JyArIHJlLmVzY2FwZShmaWxlbmFtZSkKLSAgICAgICAgcmVwbGFjZSA9IG9zLnBh
dGguam9pbihwYXRoLCBmaWxlbmFtZSkKKyAgICAgICAgIyBXZSB1c2UgJy8nIGluc3RlYWQgb2Yg
b3MucGF0aC5qb2luIGluIG9yZGVyIHRvIHByb2R1Y2UgY29uc2lzdGVudAorICAgICAgICAjIG91
dHB1dCBjcm9zcy1wbGF0Zm9ybS4KKyAgICAgICAgcmVwbGFjZSA9IHBhdGggKyAnLycgKyBmaWxl
bmFtZQogICAgICAgICB0ZXh0ID0gcmUuc3ViKHNlYXJjaCwgcmVwbGFjZSwgdGV4dCkKIAogICAg
IHJldHVybiB0ZXh0CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2No
ZWNrZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIucHkKaW5kZXgg
MjNiOWFiMzMyZDNiMGVmZDM5N2M5ZWYxMjY1Y2IyODJiMDVkNDM4ZS4uZjBhN2MzNDJhYTY3Y2Yy
YmQ1YTI5ZGRiMjYwODQxMTU4NTE3ODkwYiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9zdHlsZS9jaGVja2VyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUv
Y2hlY2tlci5weQpAQCAtMjUzLDcgKzI1Myw3IEBAIF9TS0lQUEVEX0ZJTEVTX1dJVEhfV0FSTklO
RyA9IFsKICMgVGhpcyBsaXN0IHNob3VsZCBiZSBpbiBhZGRpdGlvbiB0byBmaWxlcyB3aXRoIEZp
bGVUeXBlLk5PTkUuICBGaWxlcwogIyB3aXRoIEZpbGVUeXBlLk5PTkUgYXJlIGF1dG9tYXRpY2Fs
bHkgc2tpcHBlZCB3aXRob3V0IHdhcm5pbmcuCiBfU0tJUFBFRF9GSUxFU19XSVRIT1VUX1dBUk5J
TkcgPSBbCi0gICAgIkxheW91dFRlc3RzLyIsCisgICAgIkxheW91dFRlc3RzIiArIG9zLnBhdGgu
c2VwLAogICAgIF0KIAogIyBFeHRlbnNpb25zIG9mIGZpbGVzIHdoaWNoIGFyZSBhbGxvd2VkIHRv
IGNvbnRhaW4gY2FycmlhZ2UgcmV0dXJucy4KQEAgLTQ3NSw3ICs0NzUsNyBAQCBjbGFzcyBDaGVj
a2VyRGlzcGF0Y2hlcihvYmplY3QpOgogICAgICAgICBlbGlmIGZpbGVfZXh0ZW5zaW9uIGluIF9Y
TUxfRklMRV9FWFRFTlNJT05TOgogICAgICAgICAgICAgcmV0dXJuIEZpbGVUeXBlLlhNTAogICAg
ICAgICBlbGlmIChvcy5wYXRoLmJhc2VuYW1lKGZpbGVfcGF0aCkuc3RhcnRzd2l0aCgnQ2hhbmdl
TG9nJykgb3IKLSAgICAgICAgICAgICAgKG5vdCBmaWxlX2V4dGVuc2lvbiBhbmQgIlRvb2xzL1Nj
cmlwdHMvIiBpbiBmaWxlX3BhdGgpIG9yCisgICAgICAgICAgICAgIChub3QgZmlsZV9leHRlbnNp
b24gYW5kIG9zLnBhdGguam9pbigiVG9vbHMiLCAiU2NyaXB0cyIpIGluIGZpbGVfcGF0aCkgb3IK
ICAgICAgICAgICAgICAgZmlsZV9leHRlbnNpb24gaW4gX1RFWFRfRklMRV9FWFRFTlNJT05TKToK
ICAgICAgICAgICAgIHJldHVybiBGaWxlVHlwZS5URVhUCiAgICAgICAgIGVsc2U6CmRpZmYgLS1n
aXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2NwcF91bml0dGVzdC5w
eSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvY3BwX3VuaXR0ZXN0LnB5
CmluZGV4IDg3N2E2MmRkMmI0MDFhNWRiZDFiMDViNDkwZDZmZWYyNjFiZDc5Y2QuLmVkZDEwZDMx
YzkxZjYwNGNkYjU5ZjViMGRiMjhkNjY1YzlhOGFiZjcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvY3BwX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvY3BwX3VuaXR0ZXN0LnB5CkBAIC0xMDAyLDkg
KzEwMDIsOSBAQCBjbGFzcyBDcHBTdHlsZVRlc3QoQ3BwU3R5bGVUZXN0QmFzZSk6CiAgICAgICAg
IG1vY2tfaGVhZGVyX2NvbnRlbnRzID0gWycnXQogICAgICAgICBtZXNzYWdlID0gc2VsZi5wZXJm
b3JtX2luY2x1ZGVfd2hhdF95b3VfdXNlKAogICAgICAgICAgICAgJycnI2luY2x1ZGUgImNvbmZp
Zy5oIgotICAgICAgICAgICAgICAgI2luY2x1ZGUgIiVzL2EuaCIKKyAgICAgICAgICAgICAgICNp
bmNsdWRlICIlcyVzYS5oIgogCi0gICAgICAgICAgICAgICBzdGQ6OnNldDxpbnQ+IGZvbzsnJycg
JSBvcy5wYXRoLmJhc2VuYW1lKG9zLmdldGN3ZCgpKSwKKyAgICAgICAgICAgICAgIHN0ZDo6c2V0
PGludD4gZm9vOycnJyAlIChvcy5wYXRoLmJhc2VuYW1lKG9zLmdldGN3ZCgpKSwgb3MucGF0aC5z
ZXApLAogICAgICAgICAgICAgZmlsZW5hbWU9J2EuY3BwJywKICAgICAgICAgICAgIGlvPU1vY2tJ
byhtb2NrX2hlYWRlcl9jb250ZW50cykpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKG1lc3Nh
Z2UsICdBZGQgI2luY2x1ZGUgPHNldD4gZm9yIHNldDw+ICAnCmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL3Rlc3RfZXhwZWN0YXRpb25zX3VuaXR0ZXN0
LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy90ZXN0X2V4cGVjdGF0
aW9uc191bml0dGVzdC5weQppbmRleCBmMDgxM2UxNDRlNWFjY2MxZjBkYTNmMjE0MzE1OWVkOTE4
NDAyMDY3Li45ZDAzYWNjZTk0ZGVhZWNhYjI1Zjk5NDQwZTJhN2ViZDE2MWMwYWU0IDEwMDY0NAot
LS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL3Rlc3RfZXhwZWN0YXRp
b25zX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tl
cnMvdGVzdF9leHBlY3RhdGlvbnNfdW5pdHRlc3QucHkKQEAgLTY3LDcgKzY3LDcgQEAgY2xhc3Mg
VGVzdEV4cGVjdGF0aW9uc1Rlc3RDYXNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICBkZWYgc2V0
VXAoc2VsZik6CiAgICAgICAgIHNlbGYuX2Vycm9yX2NvbGxlY3RvciA9IEVycm9yQ29sbGVjdG9y
KCkKICAgICAgICAgcG9ydF9vYmogPSBwb3J0LmdldCgndGVzdCcpCi0gICAgICAgIHNlbGYuX3Rl
c3RfZmlsZSA9IG9zLnBhdGguam9pbihwb3J0X29iai5sYXlvdXRfdGVzdHNfZGlyKCksICdwYXNz
ZXMvdGV4dC5odG1sJykKKyAgICAgICAgc2VsZi5fdGVzdF9maWxlID0gcG9ydF9vYmouX2ZpbGVz
eXN0ZW0uam9pbihwb3J0X29iai5sYXlvdXRfdGVzdHNfZGlyKCksICdwYXNzZXMvdGV4dC5odG1s
JykKIAogICAgIGRlZiBwcm9jZXNzX2V4cGVjdGF0aW9ucyhzZWxmLCBleHBlY3RhdGlvbnMsIG92
ZXJyaWRlcz1Ob25lKToKICAgICAgICAgc2VsZi5fY2hlY2tlciA9IFRlc3RFeHBlY3RhdGlvbnND
aGVja2VyKCkK
</data>
<flag name="review"
          id="74790"
          type_id="1"
          status="+"
          setter="ojan"
    />
          </attachment>
      

    </bug>

</bugzilla>