<?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>151392</bug_id>
          
          <creation_ts>2015-11-18 10:12:57 -0800</creation_ts>
          <short_desc>[iOS] ASSERTION FAILED: temporaryFilePath.last() == &apos;/&apos; in WebCore::openTemporaryFile()</short_desc>
          <delta_ts>2015-11-18 11:47:13 -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>WebCore Misc.</component>
          <version>WebKit Local Build</version>
          <rep_platform>iPhone / iPad</rep_platform>
          <op_sys>iOS 9.0</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Daniel Bates">dbates</reporter>
          <assigned_to name="Daniel Bates">dbates</assigned_to>
          <cc>andersca</cc>
    
    <cc>ap</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>msaboff</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1142860</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2015-11-18 10:12:57 -0800</bug_when>
    <thetext>When I run run-test-api --debug --ios-simulator I see messages in the iOS simulator system log of the form:

Nov 18 09:57:17 dbates2-ruby TestWebKitAPI[96829]: ASSERTION FAILED: temporaryFilePath.last() == &apos;/&apos;
Nov 18 09:57:17 dbates2-ruby TestWebKitAPI[96829]: /Volumes/Data/WebKitDevGit/OpenSource/Source/WebCore/platform/mac/FileSystemMac.mm(72) : WTF::String WebCore::openTemporaryFile(const WTF::String &amp;, PlatformFileHandle &amp;)
Nov 18 09:57:17 dbates2-ruby TestWebKitAPI[96829]: 1   0x105de427d WTFCrash
Nov 18 09:57:17 dbates2-ruby TestWebKitAPI[96829]: 2   0x10a4f08b7 WebCore::openTemporaryFile(WTF::String const&amp;, int&amp;)
Nov 18 09:57:17 dbates2-ruby TestWebKitAPI[96829]: 3   0x104e16b16 TestWebKitAPI::FileSystemTest::SetUp()
Nov 18 09:57:17 dbates2-ruby TestWebKitAPI[96829]: 4   0x104e3266e testing::Test::Run()
Nov 18 09:57:17 dbates2-ruby TestWebKitAPI[96829]: 5   0x104e32f7d testing::internal::TestInfoImpl::Run()
Nov 18 09:57:17 dbates2-ruby TestWebKitAPI[96829]: 6   0x104e33abd testing::TestCase::Run()
Nov 18 09:57:17 dbates2-ruby TestWebKitAPI[96829]: 7   0x104e398bb testing::internal::UnitTestImpl::RunAllTests()
Nov 18 09:57:17 dbates2-ruby TestWebKitAPI[96829]: 8   0x104e39539 testing::UnitTest::Run()
Nov 18 09:57:17 dbates2-ruby TestWebKitAPI[96829]: 9   0x104daaf6c TestWebKitAPI::TestsController::run(int, char**)
Nov 18 09:57:17 dbates2-ruby TestWebKitAPI[96829]: 10  0x104dfe3d5 main
Nov 18 09:57:17 dbates2-ruby TestWebKitAPI[96829]: 11  0x1132c592d start</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1142861</commentid>
    <comment_count>1</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2015-11-18 10:13:06 -0800</bug_when>
    <thetext>&lt;rdar://problem/23595341&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1142863</commentid>
    <comment_count>2</comment_count>
      <attachid>265751</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2015-11-18 10:15:31 -0800</bug_when>
    <thetext>Created attachment 265751
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1142870</commentid>
    <comment_count>3</comment_count>
      <attachid>265751</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-11-18 10:25:50 -0800</bug_when>
    <thetext>Comment on attachment 265751
Patch

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

&gt; Source/WTF/wtf/DataLog.cpp:-86
&gt; -    size_t lastComponentLength = strlen(logBasename) + suffixLength;

suffixLength is ignored in the new code path, which doesn&apos;t seem right.

&gt; Source/WTF/wtf/DataLog.cpp:91
&gt; +        bool shouldAddPathSeparator = filenameBuffer[dirnameLength - 1] != &apos;/&apos; &amp;&amp; logBasename[0] != &apos;/&apos;;

It would be nice to check that these accesses are valid.

&gt; Source/WTF/wtf/DataLog.cpp:94
&gt; +                strcat(filenameBuffer, &quot;/&quot;);

I think that attempting to use strcat will make some security tools yell at us. Please change to strncat. But also, is it feasible to switch this code over to Vector&lt;char&gt;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1142878</commentid>
    <comment_count>4</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2015-11-18 10:46:05 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 265751 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=265751&amp;action=review
&gt; 
&gt; &gt; Source/WTF/wtf/DataLog.cpp:-86
&gt; &gt; -    size_t lastComponentLength = strlen(logBasename) + suffixLength;
&gt; 
&gt; suffixLength is ignored in the new code path, which doesn&apos;t seem right.
&gt; 

You&apos;re right!

&gt; &gt; Source/WTF/wtf/DataLog.cpp:91
&gt; &gt; +        bool shouldAddPathSeparator = filenameBuffer[dirnameLength - 1] != &apos;/&apos; &amp;&amp; logBasename[0] != &apos;/&apos;;
&gt; 
&gt; It would be nice to check that these accesses are valid.
&gt; 

Notice that confstr() returns a non-zero return value when the configuration-defined value exists. Specifically, when the configuration-defined value exists it returns the number bytes needed to hold the configuration-defined value.

&gt; &gt; Source/WTF/wtf/DataLog.cpp:94
&gt; &gt; +                strcat(filenameBuffer, &quot;/&quot;);
&gt; 
&gt; I think that attempting to use strcat will make some security tools yell at
&gt; us. Please change to strncat. 

Will change to read:

strncat(filenameBuffer, &quot;/&quot;, 1);

&gt; But also, is it feasible to switch this code over to Vector&lt;char&gt;?

From my understanding we want to support using data log functions anywhere for debugging purposes, including in Vector. Implementing data log in terms of Vector could lead to re-entrancy issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1142879</commentid>
    <comment_count>5</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2015-11-18 10:50:15 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; Comment on attachment 265751 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=265751&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WTF/wtf/DataLog.cpp:-86
&gt; &gt; &gt; -    size_t lastComponentLength = strlen(logBasename) + suffixLength;
&gt; &gt; 
&gt; &gt; suffixLength is ignored in the new code path, which doesn&apos;t seem right.
&gt; &gt; 
&gt; 
&gt; You&apos;re right!
&gt; 
&gt; &gt; &gt; Source/WTF/wtf/DataLog.cpp:91
&gt; &gt; &gt; +        bool shouldAddPathSeparator = filenameBuffer[dirnameLength - 1] != &apos;/&apos; &amp;&amp; logBasename[0] != &apos;/&apos;;
&gt; &gt; 
&gt; &gt; It would be nice to check that these accesses are valid.
&gt; &gt; 
&gt; 
&gt; Notice that confstr() returns a non-zero return value when the
&gt; configuration-defined value exists. Specifically, when the
&gt; configuration-defined value exists it returns the number bytes needed to
&gt; hold the configuration-defined value.
&gt; 

I forgot to add that dirnameLength will always be &gt;= 1 when confstr() returns a non-zero return value.

Notice that logBasename is initialized with a string literal, DATA_LOG_FILENAME. So, it is always non-null. Having said that, logBasename is a char*. I take it you feel that future code may nullify logBasename?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1142881</commentid>
    <comment_count>6</comment_count>
      <attachid>265753</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2015-11-18 10:55:54 -0800</bug_when>
    <thetext>Created attachment 265753
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1142890</commentid>
    <comment_count>7</comment_count>
      <attachid>265753</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-11-18 11:02:39 -0800</bug_when>
    <thetext>Comment on attachment 265753
Patch

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

&gt; Source/WTF/wtf/DataLog.cpp:89
&gt; +        // FIXME: As a workaround for &lt;rdar://problem/23579077&gt; - path retrieved by confstr(_CS_DARWIN_USER_TEMP_DIR, ..., ...)
&gt; +        // may not have a trailing slash in iOS Simulator - we add a path separator, if needed.

This FIXME is not a call for action. It should either say something like &quot;FIXME: Change to a runtime assertion that the path ends with a slash once &lt;rdar://problem/23579077&gt; is fixed in all iOS Simulator versions that we use&quot;, or not be a FIXME.

&gt; Source/WebCore/platform/mac/FileSystemMac.mm:73
&gt; +    // FIXME: As a workaround for &lt;rdar://problem/23579077&gt; - path retrieved by confstr(_CS_DARWIN_USER_TEMP_DIR, ..., ...)

Ditto.

&gt; Source/WebKit2/Shared/mac/SandboxExtensionMac.mm:253
&gt; +    // FIXME: As a workaround for &lt;rdar://problem/23579077&gt; - path retrieved by confstr(_CS_DARWIN_USER_TEMP_DIR, ..., ...)

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1142921</commentid>
    <comment_count>8</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2015-11-18 11:44:38 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; Comment on attachment 265753 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=265753&amp;action=review
&gt; 
&gt; &gt; Source/WTF/wtf/DataLog.cpp:89
&gt; &gt; +        // FIXME: As a workaround for &lt;rdar://problem/23579077&gt; - path retrieved by confstr(_CS_DARWIN_USER_TEMP_DIR, ..., ...)
&gt; &gt; +        // may not have a trailing slash in iOS Simulator - we add a path separator, if needed.
&gt; 
&gt; This FIXME is not a call for action. It should either say something like
&gt; &quot;FIXME: Change to a runtime assertion that the path ends with a slash once
&gt; &lt;rdar://problem/23579077&gt; is fixed in all iOS Simulator versions that we
&gt; use&quot;, or not be a FIXME.
&gt; 

Will change this FIXME comment to read &quot;FIXME: Assert that the path ends with a slash instead adding a slash if it does not exist once &lt;rdar://problem/23579077&gt; is fixed in all iOS Simulator versions that we use.&quot;

&gt; &gt; Source/WebCore/platform/mac/FileSystemMac.mm:73
&gt; &gt; +    // FIXME: As a workaround for &lt;rdar://problem/23579077&gt; - path retrieved by confstr(_CS_DARWIN_USER_TEMP_DIR, ..., ...)
&gt; 
&gt; Ditto.

Will change FIXME comment to read &quot;FIXME: Change to a runtime assertion that the path ends with a slash once &lt;rdar://problem/23579077&gt; is fixed in all iOS Simulator versions that we use.&quot;

&gt; 
&gt; &gt; Source/WebKit2/Shared/mac/SandboxExtensionMac.mm:253
&gt; &gt; +    // FIXME: As a workaround for &lt;rdar://problem/23579077&gt; - path retrieved by confstr(_CS_DARWIN_USER_TEMP_DIR, ..., ...)
&gt; 
&gt; Ditto.

Will change FIXME comment to read &quot;FIXME: Change to a runtime assertion that the path ends with a slash once &lt;rdar://problem/23579077&gt; is fixed in all iOS Simulator versions that we use.&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1142922</commentid>
    <comment_count>9</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2015-11-18 11:45:53 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #7)
&gt; &gt; Comment on attachment 265753 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=265753&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WTF/wtf/DataLog.cpp:89
&gt; &gt; &gt; +        // FIXME: As a workaround for &lt;rdar://problem/23579077&gt; - path retrieved by confstr(_CS_DARWIN_USER_TEMP_DIR, ..., ...)
&gt; &gt; &gt; +        // may not have a trailing slash in iOS Simulator - we add a path separator, if needed.
&gt; &gt; 
&gt; &gt; This FIXME is not a call for action. It should either say something like
&gt; &gt; &quot;FIXME: Change to a runtime assertion that the path ends with a slash once
&gt; &gt; &lt;rdar://problem/23579077&gt; is fixed in all iOS Simulator versions that we
&gt; &gt; use&quot;, or not be a FIXME.
&gt; &gt; 
&gt; 
&gt; Will change this FIXME comment to read &quot;FIXME: Assert that the path ends
&gt; with a slash instead adding a slash if it does not exist once
&gt; &lt;rdar://problem/23579077&gt; is fixed in all iOS Simulator versions that we
&gt; use.&quot;

*instead of</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1142924</commentid>
    <comment_count>10</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2015-11-18 11:47:13 -0800</bug_when>
    <thetext>Committed r192583: &lt;http://trac.webkit.org/changeset/192583&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>265751</attachid>
            <date>2015-11-18 10:15:31 -0800</date>
            <delta_ts>2015-11-18 10:55:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-151392-20151118101520.patch</filename>
            <type>text/plain</type>
            <size>6506</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkyNTEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGZlMjM0NmU3ZGVjOTBhYmFmMzZmNDg2
NjFhODIzYzVkM2Q0YjM0NTMuLjZkZDBmOGYxNGYxMzhjZmJhZDNkOTJjNWZhZDZmMjMwY2FiNmNi
ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTUtMTEtMTggIERhbmllbCBCYXRlcyAgPGRhYmF0
ZXNAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIEFTU0VSVElPTiBGQUlMRUQ6IHRlbXBvcmFy
eUZpbGVQYXRoLmxhc3QoKSA9PSAnLycgaW4gV2ViQ29yZTo6b3BlblRlbXBvcmFyeUZpbGUoKQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxMzkyCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMzU5NTM0MT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXb3JrYXJvdW5kIDxyZGFyOi8vcHJvYmxlbS8yMzU3
OTA3Nz4gd2hlcmUgY29uZnN0cihfQ1NfREFSV0lOX1VTRVJfVEVNUF9ESVIsIC4uLiwgLi4uKSBy
ZXRyaWV2ZXMKKyAgICAgICAgdGhlIHBhdGggdG8gdGhlIHVzZXIgdGVtcG9yYXJ5IGRpcmVjdG9y
eSB3aXRob3V0IGEgdHJhaWxpbmcgc2xhc2ggaW4gdGhlIGlPUyBzaW11bGF0b3IuCisKKyAgICAg
ICAgKiB3dGYvRGF0YUxvZy5jcHA6CisgICAgICAgIChXVEY6OmluaXRpYWxpemVMb2dGaWxlT25j
ZSk6CisKIDIwMTUtMTEtMTEgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4K
IAogICAgICAgICBFbmFibGUgY3Jvc3MtcGxhdGZvcm0gY29udGV4dCBtZW51cyBieSBkZWZhdWx0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggNzY0MmVmMzcwMzNjZjgxYWNhNzhiMmZiNzJlNDdiNTliMzkxMDllNS4u
YWNhNjAzNDczYjBlYzM1MjhhOTNhNGNlOWE1ZTk3YTYyNmRkNDMwNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE3IEBACisyMDE1LTExLTE4ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNv
bT4KKworICAgICAgICBbaU9TXSBBU1NFUlRJT04gRkFJTEVEOiB0ZW1wb3JhcnlGaWxlUGF0aC5s
YXN0KCkgPT0gJy8nIGluIFdlYkNvcmU6Om9wZW5UZW1wb3JhcnlGaWxlKCkKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTM5MgorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vMjM1OTUzNDE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgV29ya2Fyb3VuZCA8cmRhcjovL3Byb2JsZW0vMjM1NzkwNzc+IHdoZXJl
IGNvbmZzdHIoX0NTX0RBUldJTl9VU0VSX1RFTVBfRElSLCAuLi4sIC4uLikgcmV0cmlldmVzCisg
ICAgICAgIHRoZSBwYXRoIHRvIHRoZSB1c2VyIHRlbXBvcmFyeSBkaXJlY3Rvcnkgd2l0aG91dCBh
IHRyYWlsaW5nIHNsYXNoIGluIHRoZSBpT1Mgc2ltdWxhdG9yLgorCisgICAgICAgICogcGxhdGZv
cm0vbWFjL0ZpbGVTeXN0ZW1NYWMubW06CisgICAgICAgIChXZWJDb3JlOjpvcGVuVGVtcG9yYXJ5
RmlsZSk6IEFkZCBhIHBhdGggc2VwYXJhdG9yICgvKSBiZXR3ZWVuIHRoZSBkaXJlY3RvcnkgcGF0
aCBhbmQgZmlsZW5hbWUuCisKIDIwMTUtMTEtMTcgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmls
bGFyQGlnYWxpYS5jb20+CiAKICAgICAgICAgQVNTRVJUSU9OIEZBSUxFRDogY29udGVudFNpemUg
Pj0gMCBpbiBXZWJDb3JlOjpSZW5kZXJGbGV4aWJsZUJveDo6YWRqdXN0Q2hpbGRTaXplRm9yTWlu
QW5kTWF4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKaW5kZXggMmFkMDg2MjljNzQxYzEwYjFiZjdkNWE4YmZhNzlmZjkyODQx
YTkwNC4uZmE3OGUyZjljZTVhMmYxZWRlMTUzN2IzMmE1MjMyMmU2MDVjZTdjZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE3IEBACisyMDE1LTExLTE4ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFw
cGxlLmNvbT4KKworICAgICAgICBbaU9TXSBBU1NFUlRJT04gRkFJTEVEOiB0ZW1wb3JhcnlGaWxl
UGF0aC5sYXN0KCkgPT0gJy8nIGluIFdlYkNvcmU6Om9wZW5UZW1wb3JhcnlGaWxlKCkKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTM5MgorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vMjM1OTUzNDE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgV29ya2Fyb3VuZCA8cmRhcjovL3Byb2JsZW0vMjM1NzkwNzc+
IHdoZXJlIGNvbmZzdHIoX0NTX0RBUldJTl9VU0VSX1RFTVBfRElSLCAuLi4sIC4uLikgcmV0cmll
dmVzCisgICAgICAgIHRoZSBwYXRoIHRvIHRoZSB1c2VyIHRlbXBvcmFyeSBkaXJlY3Rvcnkgd2l0
aG91dCBhIHRyYWlsaW5nIHNsYXNoIGluIHRoZSBpT1Mgc2ltdWxhdG9yLgorCisgICAgICAgICog
U2hhcmVkL21hYy9TYW5kYm94RXh0ZW5zaW9uTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpTYW5k
Ym94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JUZW1wb3JhcnlGaWxlKTogQWRkIGEgcGF0aCBz
ZXBhcmF0b3IgKC8pIGJldHdlZW4gdGhlIGRpcmVjdG9yeSBwYXRoIGFuZCBmaWxlbmFtZS4KKwog
MjAxNS0xMS0xNyAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAK
ICAgICAgICAgW0dUS10gV2ViIFByb2Nlc3MgY3Jhc2hlcyBvbiByZXBhcmVudGluZyBhIFdlYlZp
ZXcgd2l0aCBBQyBtb2RlIG9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9EYXRhTG9nLmNw
cCBiL1NvdXJjZS9XVEYvd3RmL0RhdGFMb2cuY3BwCmluZGV4IGVhMDRmNmZmMDMxOTE1MDAyN2Jl
ZjlhMzgyNDhlNzlkMmVlMTQzMjUuLjA1Mzg2MjBiNjAzMjA3NDNkNTk4Y2MyNjZiOWQxOGI0Yjlm
ZWI0MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0RhdGFMb2cuY3BwCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL0RhdGFMb2cuY3BwCkBAIC04MSwxMyArODEsMjAgQEAgc3RhdGljIHZvaWQgaW5p
dGlhbGl6ZUxvZ0ZpbGVPbmNlKCkKICAgICBjb25zdCBjaGFyKiBsb2dCYXNlbmFtZSA9ICJXVEZM
b2ciOwogI2VuZGlmCiAKLSAgICBjb25zdCBjaGFyKiBmaWxlbmFtZSA9IDA7Ci0KLSAgICBzaXpl
X3QgbGFzdENvbXBvbmVudExlbmd0aCA9IHN0cmxlbihsb2dCYXNlbmFtZSkgKyBzdWZmaXhMZW5n
dGg7Ci0gICAgc2l6ZV90IGRpcm5hbWVMZW5ndGggPSBjb25mc3RyKF9DU19EQVJXSU5fVVNFUl9U
RU1QX0RJUiwgZmlsZW5hbWVCdWZmZXIsIDEwMjQpOwotICAgIGlmICgoZGlybmFtZUxlbmd0aCAr
IGxhc3RDb21wb25lbnRMZW5ndGggKyBzdWZmaXhMZW5ndGgpIDwgbWF4UGF0aExlbmd0aCkgewot
ICAgICAgICBzdHJuY2F0KGZpbGVuYW1lQnVmZmVyLCBsb2dCYXNlbmFtZSwgbWF4UGF0aExlbmd0
aCAtIGRpcm5hbWVMZW5ndGgpOwotICAgICAgICBmaWxlbmFtZSA9IGZpbGVuYW1lQnVmZmVyOwor
ICAgIGNvbnN0IGNoYXIqIGZpbGVuYW1lID0gbnVsbHB0cjsKKworICAgIGJvb2wgc3VjY2VzcyA9
IGNvbmZzdHIoX0NTX0RBUldJTl9VU0VSX1RFTVBfRElSLCBmaWxlbmFtZUJ1ZmZlciwgc2l6ZW9m
KGZpbGVuYW1lQnVmZmVyKSk7CisgICAgaWYgKHN1Y2Nlc3MpIHsKKyAgICAgICAgLy8gRklYTUU6
IEFzIGEgd29ya2Fyb3VuZCBmb3IgPHJkYXI6Ly9wcm9ibGVtLzIzNTc5MDc3PiAtIHBhdGggcmV0
cmlldmVkIGJ5IGNvbmZzdHIoX0NTX0RBUldJTl9VU0VSX1RFTVBfRElSLCAuLi4sIC4uLikKKyAg
ICAgICAgLy8gbWF5IG5vdCBoYXZlIGEgdHJhaWxpbmcgc2xhc2ggaW4gaU9TIFNpbXVsYXRvciAt
IHdlIGFkZCBhIHBhdGggc2VwYXJhdG9yLCBpZiBuZWVkZWQuCisgICAgICAgIHNpemVfdCBkaXJu
YW1lTGVuZ3RoID0gc3RybGVuKGZpbGVuYW1lQnVmZmVyKTsKKyAgICAgICAgYm9vbCBzaG91bGRB
ZGRQYXRoU2VwYXJhdG9yID0gZmlsZW5hbWVCdWZmZXJbZGlybmFtZUxlbmd0aCAtIDFdICE9ICcv
JyAmJiBsb2dCYXNlbmFtZVswXSAhPSAnLyc7CisgICAgICAgIGlmIChzdHJsZW4obG9nQmFzZW5h
bWUpICsgc2hvdWxkQWRkUGF0aFNlcGFyYXRvciA8PSBzaXplb2YoZmlsZW5hbWVCdWZmZXIpIC0g
ZGlybmFtZUxlbmd0aCAtIDEpIHsKKyAgICAgICAgICAgIGlmIChzaG91bGRBZGRQYXRoU2VwYXJh
dG9yKQorICAgICAgICAgICAgICAgIHN0cmNhdChmaWxlbmFtZUJ1ZmZlciwgIi8iKTsKKyAgICAg
ICAgICAgIHN0cm5jYXQoZmlsZW5hbWVCdWZmZXIsIGxvZ0Jhc2VuYW1lLCBzaXplb2YoZmlsZW5h
bWVCdWZmZXIpIC0gc3RybGVuKGZpbGVuYW1lQnVmZmVyKSAtIDEpOworICAgICAgICAgICAgZmls
ZW5hbWUgPSBmaWxlbmFtZUJ1ZmZlcjsKKyAgICAgICAgfQogICAgIH0KICNlbGlmIGRlZmluZWQo
REFUQV9MT0dfRklMRU5BTUUpCiAgICAgY29uc3QgY2hhciogZmlsZW5hbWUgPSBEQVRBX0xPR19G
SUxFTkFNRTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9GaWxlU3lz
dGVtTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0ZpbGVTeXN0ZW1NYWMubW0K
aW5kZXggMjY3ZWQ0ZDcwODE3MzIzNmFiYzFiYjc3MDhiM2IzYmYxODhiMGYyMC4uNGQ3ODFjNzJi
ZDViOWVmZjg0NTU3MjU2MmNkYWU1YzQ5ZjQwMWE3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL0ZpbGVTeXN0ZW1NYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL0ZpbGVTeXN0ZW1NYWMubW0KQEAgLTY5LDcgKzY5LDExIEBAIFN0cmluZyBvcGVu
VGVtcG9yYXJ5RmlsZShjb25zdCBTdHJpbmcmIHByZWZpeCwgUGxhdGZvcm1GaWxlSGFuZGxlJiBw
bGF0Zm9ybUZpbGVICiAKICAgICAvLyBTaHJpbmsgdGhlIHZlY3Rvci4gICAKICAgICB0ZW1wb3Jh
cnlGaWxlUGF0aC5zaHJpbmsoc3RybGVuKHRlbXBvcmFyeUZpbGVQYXRoLmRhdGEoKSkpOwotICAg
IEFTU0VSVCh0ZW1wb3JhcnlGaWxlUGF0aC5sYXN0KCkgPT0gJy8nKTsKKworICAgIC8vIEZJWE1F
OiBBcyBhIHdvcmthcm91bmQgZm9yIDxyZGFyOi8vcHJvYmxlbS8yMzU3OTA3Nz4gLSBwYXRoIHJl
dHJpZXZlZCBieSBjb25mc3RyKF9DU19EQVJXSU5fVVNFUl9URU1QX0RJUiwgLi4uLCAuLi4pCisg
ICAgLy8gbWF5IG5vdCBoYXZlIGEgdHJhaWxpbmcgc2xhc2ggaW4gaU9TIFNpbXVsYXRvciAtIHdl
IGFkZCBhIHBhdGggc2VwYXJhdG9yLCBpZiBuZWVkZWQuCisgICAgaWYgKHRlbXBvcmFyeUZpbGVQ
YXRoLmxhc3QoKSAhPSAnLycpCisgICAgICAgIHRlbXBvcmFyeUZpbGVQYXRoLmFwcGVuZCgnLycp
OwogCiAgICAgLy8gQXBwZW5kIHRoZSBmaWxlIG5hbWUuCiAgICAgQ1N0cmluZyBwcmVmaXhVdGY4
ID0gcHJlZml4LnV0ZjgoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMv
U2FuZGJveEV4dGVuc2lvbk1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2FuZGJv
eEV4dGVuc2lvbk1hYy5tbQppbmRleCBlNzMxYTA1ZjU1ZjY1M2QyNTVjMDUxNmY0OWUwYjE1ZmUw
Y2EyYmJhLi5iMTIxZTkzNzM1MjUyNzlkYTI0MWViOTQ0ZmQ5ZjA4MGIxZGI5ZmFkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NhbmRib3hFeHRlbnNpb25NYWMubW0KKysr
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9TYW5kYm94RXh0ZW5zaW9uTWFjLm1tCkBAIC0y
NDksNyArMjQ5LDExIEBAIFN0cmluZyBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JU
ZW1wb3JhcnlGaWxlKGNvbnN0IFN0cmluZyYgcHJlZml4LCBUeXBlCiAgICAgCiAgICAgLy8gU2hy
aW5rIHRoZSB2ZWN0b3IuICAgCiAgICAgcGF0aC5zaHJpbmsoc3RybGVuKHBhdGguZGF0YSgpKSk7
Ci0gICAgQVNTRVJUKHBhdGgubGFzdCgpID09ICcvJyk7CisKKyAgICAvLyBGSVhNRTogQXMgYSB3
b3JrYXJvdW5kIGZvciA8cmRhcjovL3Byb2JsZW0vMjM1NzkwNzc+IC0gcGF0aCByZXRyaWV2ZWQg
YnkgY29uZnN0cihfQ1NfREFSV0lOX1VTRVJfVEVNUF9ESVIsIC4uLiwgLi4uKQorICAgIC8vIG1h
eSBub3QgaGF2ZSBhIHRyYWlsaW5nIHNsYXNoIGluIGlPUyBTaW11bGF0b3IgLSB3ZSBhZGQgYSBw
YXRoIHNlcGFyYXRvciwgaWYgbmVlZGVkLgorICAgIGlmIChwYXRoLmxhc3QoKSAhPSAnLycpCisg
ICAgICAgIHBhdGguYXBwZW5kKCcvJyk7CiAgICAgCiAgICAgLy8gQXBwZW5kIHRoZSBmaWxlIG5h
bWUuICAgIAogICAgIHBhdGguYXBwZW5kKHByZWZpeC51dGY4KCkuZGF0YSgpLCBwcmVmaXgubGVu
Z3RoKCkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>265753</attachid>
            <date>2015-11-18 10:55:54 -0800</date>
            <delta_ts>2015-11-18 11:02:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-151392-20151118105543.patch</filename>
            <type>text/plain</type>
            <size>6584</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkyNTEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGZlMjM0NmU3ZGVjOTBhYmFmMzZmNDg2
NjFhODIzYzVkM2Q0YjM0NTMuLjZkZDBmOGYxNGYxMzhjZmJhZDNkOTJjNWZhZDZmMjMwY2FiNmNi
ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTUtMTEtMTggIERhbmllbCBCYXRlcyAgPGRhYmF0
ZXNAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIEFTU0VSVElPTiBGQUlMRUQ6IHRlbXBvcmFy
eUZpbGVQYXRoLmxhc3QoKSA9PSAnLycgaW4gV2ViQ29yZTo6b3BlblRlbXBvcmFyeUZpbGUoKQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxMzkyCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMzU5NTM0MT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXb3JrYXJvdW5kIDxyZGFyOi8vcHJvYmxlbS8yMzU3
OTA3Nz4gd2hlcmUgY29uZnN0cihfQ1NfREFSV0lOX1VTRVJfVEVNUF9ESVIsIC4uLiwgLi4uKSBy
ZXRyaWV2ZXMKKyAgICAgICAgdGhlIHBhdGggdG8gdGhlIHVzZXIgdGVtcG9yYXJ5IGRpcmVjdG9y
eSB3aXRob3V0IGEgdHJhaWxpbmcgc2xhc2ggaW4gdGhlIGlPUyBzaW11bGF0b3IuCisKKyAgICAg
ICAgKiB3dGYvRGF0YUxvZy5jcHA6CisgICAgICAgIChXVEY6OmluaXRpYWxpemVMb2dGaWxlT25j
ZSk6CisKIDIwMTUtMTEtMTEgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4K
IAogICAgICAgICBFbmFibGUgY3Jvc3MtcGxhdGZvcm0gY29udGV4dCBtZW51cyBieSBkZWZhdWx0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggNzY0MmVmMzcwMzNjZjgxYWNhNzhiMmZiNzJlNDdiNTliMzkxMDllNS4u
YWNhNjAzNDczYjBlYzM1MjhhOTNhNGNlOWE1ZTk3YTYyNmRkNDMwNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE3IEBACisyMDE1LTExLTE4ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNv
bT4KKworICAgICAgICBbaU9TXSBBU1NFUlRJT04gRkFJTEVEOiB0ZW1wb3JhcnlGaWxlUGF0aC5s
YXN0KCkgPT0gJy8nIGluIFdlYkNvcmU6Om9wZW5UZW1wb3JhcnlGaWxlKCkKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTM5MgorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vMjM1OTUzNDE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgV29ya2Fyb3VuZCA8cmRhcjovL3Byb2JsZW0vMjM1NzkwNzc+IHdoZXJl
IGNvbmZzdHIoX0NTX0RBUldJTl9VU0VSX1RFTVBfRElSLCAuLi4sIC4uLikgcmV0cmlldmVzCisg
ICAgICAgIHRoZSBwYXRoIHRvIHRoZSB1c2VyIHRlbXBvcmFyeSBkaXJlY3Rvcnkgd2l0aG91dCBh
IHRyYWlsaW5nIHNsYXNoIGluIHRoZSBpT1Mgc2ltdWxhdG9yLgorCisgICAgICAgICogcGxhdGZv
cm0vbWFjL0ZpbGVTeXN0ZW1NYWMubW06CisgICAgICAgIChXZWJDb3JlOjpvcGVuVGVtcG9yYXJ5
RmlsZSk6IEFkZCBhIHBhdGggc2VwYXJhdG9yICgvKSBiZXR3ZWVuIHRoZSBkaXJlY3RvcnkgcGF0
aCBhbmQgZmlsZW5hbWUuCisKIDIwMTUtMTEtMTcgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmls
bGFyQGlnYWxpYS5jb20+CiAKICAgICAgICAgQVNTRVJUSU9OIEZBSUxFRDogY29udGVudFNpemUg
Pj0gMCBpbiBXZWJDb3JlOjpSZW5kZXJGbGV4aWJsZUJveDo6YWRqdXN0Q2hpbGRTaXplRm9yTWlu
QW5kTWF4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKaW5kZXggMmFkMDg2MjljNzQxYzEwYjFiZjdkNWE4YmZhNzlmZjkyODQx
YTkwNC4uZmE3OGUyZjljZTVhMmYxZWRlMTUzN2IzMmE1MjMyMmU2MDVjZTdjZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE3IEBACisyMDE1LTExLTE4ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFw
cGxlLmNvbT4KKworICAgICAgICBbaU9TXSBBU1NFUlRJT04gRkFJTEVEOiB0ZW1wb3JhcnlGaWxl
UGF0aC5sYXN0KCkgPT0gJy8nIGluIFdlYkNvcmU6Om9wZW5UZW1wb3JhcnlGaWxlKCkKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTM5MgorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vMjM1OTUzNDE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgV29ya2Fyb3VuZCA8cmRhcjovL3Byb2JsZW0vMjM1NzkwNzc+
IHdoZXJlIGNvbmZzdHIoX0NTX0RBUldJTl9VU0VSX1RFTVBfRElSLCAuLi4sIC4uLikgcmV0cmll
dmVzCisgICAgICAgIHRoZSBwYXRoIHRvIHRoZSB1c2VyIHRlbXBvcmFyeSBkaXJlY3Rvcnkgd2l0
aG91dCBhIHRyYWlsaW5nIHNsYXNoIGluIHRoZSBpT1Mgc2ltdWxhdG9yLgorCisgICAgICAgICog
U2hhcmVkL21hYy9TYW5kYm94RXh0ZW5zaW9uTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpTYW5k
Ym94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JUZW1wb3JhcnlGaWxlKTogQWRkIGEgcGF0aCBz
ZXBhcmF0b3IgKC8pIGJldHdlZW4gdGhlIGRpcmVjdG9yeSBwYXRoIGFuZCBmaWxlbmFtZS4KKwog
MjAxNS0xMS0xNyAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAK
ICAgICAgICAgW0dUS10gV2ViIFByb2Nlc3MgY3Jhc2hlcyBvbiByZXBhcmVudGluZyBhIFdlYlZp
ZXcgd2l0aCBBQyBtb2RlIG9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9EYXRhTG9nLmNw
cCBiL1NvdXJjZS9XVEYvd3RmL0RhdGFMb2cuY3BwCmluZGV4IGVhMDRmNmZmMDMxOTE1MDAyN2Jl
ZjlhMzgyNDhlNzlkMmVlMTQzMjUuLmEyN2E1NDNlZTUyZTM4NGZjYjRmNTRhZjAyMDczYTc5MDEw
YjQ2OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0RhdGFMb2cuY3BwCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL0RhdGFMb2cuY3BwCkBAIC04MSwxMyArODEsMjEgQEAgc3RhdGljIHZvaWQgaW5p
dGlhbGl6ZUxvZ0ZpbGVPbmNlKCkKICAgICBjb25zdCBjaGFyKiBsb2dCYXNlbmFtZSA9ICJXVEZM
b2ciOwogI2VuZGlmCiAKLSAgICBjb25zdCBjaGFyKiBmaWxlbmFtZSA9IDA7Ci0KLSAgICBzaXpl
X3QgbGFzdENvbXBvbmVudExlbmd0aCA9IHN0cmxlbihsb2dCYXNlbmFtZSkgKyBzdWZmaXhMZW5n
dGg7Ci0gICAgc2l6ZV90IGRpcm5hbWVMZW5ndGggPSBjb25mc3RyKF9DU19EQVJXSU5fVVNFUl9U
RU1QX0RJUiwgZmlsZW5hbWVCdWZmZXIsIDEwMjQpOwotICAgIGlmICgoZGlybmFtZUxlbmd0aCAr
IGxhc3RDb21wb25lbnRMZW5ndGggKyBzdWZmaXhMZW5ndGgpIDwgbWF4UGF0aExlbmd0aCkgewot
ICAgICAgICBzdHJuY2F0KGZpbGVuYW1lQnVmZmVyLCBsb2dCYXNlbmFtZSwgbWF4UGF0aExlbmd0
aCAtIGRpcm5hbWVMZW5ndGgpOwotICAgICAgICBmaWxlbmFtZSA9IGZpbGVuYW1lQnVmZmVyOwor
ICAgIGNvbnN0IGNoYXIqIGZpbGVuYW1lID0gbnVsbHB0cjsKKworICAgIGJvb2wgc3VjY2VzcyA9
IGNvbmZzdHIoX0NTX0RBUldJTl9VU0VSX1RFTVBfRElSLCBmaWxlbmFtZUJ1ZmZlciwgc2l6ZW9m
KGZpbGVuYW1lQnVmZmVyKSk7CisgICAgaWYgKHN1Y2Nlc3MpIHsKKyAgICAgICAgLy8gRklYTUU6
IEFzIGEgd29ya2Fyb3VuZCBmb3IgPHJkYXI6Ly9wcm9ibGVtLzIzNTc5MDc3PiAtIHBhdGggcmV0
cmlldmVkIGJ5IGNvbmZzdHIoX0NTX0RBUldJTl9VU0VSX1RFTVBfRElSLCAuLi4sIC4uLikKKyAg
ICAgICAgLy8gbWF5IG5vdCBoYXZlIGEgdHJhaWxpbmcgc2xhc2ggaW4gaU9TIFNpbXVsYXRvciAt
IHdlIGFkZCBhIHBhdGggc2VwYXJhdG9yLCBpZiBuZWVkZWQuCisgICAgICAgIHNpemVfdCBsYXN0
Q29tcG9uZW50TGVuZ3RoID0gc3RybGVuKGxvZ0Jhc2VuYW1lKSArIHN1ZmZpeExlbmd0aDsKKyAg
ICAgICAgc2l6ZV90IGRpcm5hbWVMZW5ndGggPSBzdHJsZW4oZmlsZW5hbWVCdWZmZXIpOworICAg
ICAgICBib29sIHNob3VsZEFkZFBhdGhTZXBhcmF0b3IgPSBmaWxlbmFtZUJ1ZmZlcltkaXJuYW1l
TGVuZ3RoIC0gMV0gIT0gJy8nICYmIGxvZ0Jhc2VuYW1lWzBdICE9ICcvJzsKKyAgICAgICAgaWYg
KGxhc3RDb21wb25lbnRMZW5ndGggKyBzaG91bGRBZGRQYXRoU2VwYXJhdG9yIDw9IHNpemVvZihm
aWxlbmFtZUJ1ZmZlcikgLSBkaXJuYW1lTGVuZ3RoIC0gMSkgeworICAgICAgICAgICAgaWYgKHNo
b3VsZEFkZFBhdGhTZXBhcmF0b3IpCisgICAgICAgICAgICAgICAgc3RybmNhdChmaWxlbmFtZUJ1
ZmZlciwgIi8iLCAxKTsKKyAgICAgICAgICAgIHN0cm5jYXQoZmlsZW5hbWVCdWZmZXIsIGxvZ0Jh
c2VuYW1lLCBzaXplb2YoZmlsZW5hbWVCdWZmZXIpIC0gc3RybGVuKGZpbGVuYW1lQnVmZmVyKSAt
IDEpOworICAgICAgICAgICAgZmlsZW5hbWUgPSBmaWxlbmFtZUJ1ZmZlcjsKKyAgICAgICAgfQog
ICAgIH0KICNlbGlmIGRlZmluZWQoREFUQV9MT0dfRklMRU5BTUUpCiAgICAgY29uc3QgY2hhciog
ZmlsZW5hbWUgPSBEQVRBX0xPR19GSUxFTkFNRTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9GaWxlU3lzdGVtTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL0ZpbGVTeXN0ZW1NYWMubW0KaW5kZXggMjY3ZWQ0ZDcwODE3MzIzNmFiYzFiYjc3MDhiM2Iz
YmYxODhiMGYyMC4uNGQ3ODFjNzJiZDViOWVmZjg0NTU3MjU2MmNkYWU1YzQ5ZjQwMWE3NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0ZpbGVTeXN0ZW1NYWMubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0ZpbGVTeXN0ZW1NYWMubW0KQEAgLTY5LDcg
KzY5LDExIEBAIFN0cmluZyBvcGVuVGVtcG9yYXJ5RmlsZShjb25zdCBTdHJpbmcmIHByZWZpeCwg
UGxhdGZvcm1GaWxlSGFuZGxlJiBwbGF0Zm9ybUZpbGVICiAKICAgICAvLyBTaHJpbmsgdGhlIHZl
Y3Rvci4gICAKICAgICB0ZW1wb3JhcnlGaWxlUGF0aC5zaHJpbmsoc3RybGVuKHRlbXBvcmFyeUZp
bGVQYXRoLmRhdGEoKSkpOwotICAgIEFTU0VSVCh0ZW1wb3JhcnlGaWxlUGF0aC5sYXN0KCkgPT0g
Jy8nKTsKKworICAgIC8vIEZJWE1FOiBBcyBhIHdvcmthcm91bmQgZm9yIDxyZGFyOi8vcHJvYmxl
bS8yMzU3OTA3Nz4gLSBwYXRoIHJldHJpZXZlZCBieSBjb25mc3RyKF9DU19EQVJXSU5fVVNFUl9U
RU1QX0RJUiwgLi4uLCAuLi4pCisgICAgLy8gbWF5IG5vdCBoYXZlIGEgdHJhaWxpbmcgc2xhc2gg
aW4gaU9TIFNpbXVsYXRvciAtIHdlIGFkZCBhIHBhdGggc2VwYXJhdG9yLCBpZiBuZWVkZWQuCisg
ICAgaWYgKHRlbXBvcmFyeUZpbGVQYXRoLmxhc3QoKSAhPSAnLycpCisgICAgICAgIHRlbXBvcmFy
eUZpbGVQYXRoLmFwcGVuZCgnLycpOwogCiAgICAgLy8gQXBwZW5kIHRoZSBmaWxlIG5hbWUuCiAg
ICAgQ1N0cmluZyBwcmVmaXhVdGY4ID0gcHJlZml4LnV0ZjgoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2FuZGJveEV4dGVuc2lvbk1hYy5tbSBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9tYWMvU2FuZGJveEV4dGVuc2lvbk1hYy5tbQppbmRleCBlNzMxYTA1ZjU1ZjY1
M2QyNTVjMDUxNmY0OWUwYjE1ZmUwY2EyYmJhLi5iMTIxZTkzNzM1MjUyNzlkYTI0MWViOTQ0ZmQ5
ZjA4MGIxZGI5ZmFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NhbmRi
b3hFeHRlbnNpb25NYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9TYW5kYm94
RXh0ZW5zaW9uTWFjLm1tCkBAIC0yNDksNyArMjQ5LDExIEBAIFN0cmluZyBTYW5kYm94RXh0ZW5z
aW9uOjpjcmVhdGVIYW5kbGVGb3JUZW1wb3JhcnlGaWxlKGNvbnN0IFN0cmluZyYgcHJlZml4LCBU
eXBlCiAgICAgCiAgICAgLy8gU2hyaW5rIHRoZSB2ZWN0b3IuICAgCiAgICAgcGF0aC5zaHJpbmso
c3RybGVuKHBhdGguZGF0YSgpKSk7Ci0gICAgQVNTRVJUKHBhdGgubGFzdCgpID09ICcvJyk7CisK
KyAgICAvLyBGSVhNRTogQXMgYSB3b3JrYXJvdW5kIGZvciA8cmRhcjovL3Byb2JsZW0vMjM1Nzkw
Nzc+IC0gcGF0aCByZXRyaWV2ZWQgYnkgY29uZnN0cihfQ1NfREFSV0lOX1VTRVJfVEVNUF9ESVIs
IC4uLiwgLi4uKQorICAgIC8vIG1heSBub3QgaGF2ZSBhIHRyYWlsaW5nIHNsYXNoIGluIGlPUyBT
aW11bGF0b3IgLSB3ZSBhZGQgYSBwYXRoIHNlcGFyYXRvciwgaWYgbmVlZGVkLgorICAgIGlmIChw
YXRoLmxhc3QoKSAhPSAnLycpCisgICAgICAgIHBhdGguYXBwZW5kKCcvJyk7CiAgICAgCiAgICAg
Ly8gQXBwZW5kIHRoZSBmaWxlIG5hbWUuICAgIAogICAgIHBhdGguYXBwZW5kKHByZWZpeC51dGY4
KCkuZGF0YSgpLCBwcmVmaXgubGVuZ3RoKCkpOwo=
</data>
<flag name="review"
          id="290785"
          type_id="1"
          status="+"
          setter="ap"
    />
          </attachment>
      

    </bug>

</bugzilla>