<?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>28897</bug_id>
          
          <creation_ts>2009-09-01 16:53:15 -0700</creation_ts>
          <short_desc>SharedWorkers &quot;name&quot; attribute is now optional</short_desc>
          <delta_ts>2009-09-22 21:17:00 -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>WebCore JavaScript</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andrew Wilson">atwilson</reporter>
          <assigned_to name="Andrew Wilson">atwilson</assigned_to>
          <cc>michaeln</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>144051</commentid>
    <comment_count>0</comment_count>
    <who name="Andrew Wilson">atwilson</who>
    <bug_when>2009-09-01 16:53:15 -0700</bug_when>
    <thetext>There&apos;s new language in the spec regarding the name parameter to the SharedWorker constructor:

1) The name param is optional. If omitted, it becomes the empty string (&quot;&quot;).
2) If the name param is the empty string, then it is ignored (the URL becomes the sole identifier of the shared worker).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>147427</commentid>
    <comment_count>1</comment_count>
      <attachid>39625</attachid>
    <who name="Andrew Wilson">atwilson</who>
    <bug_when>2009-09-15 17:24:47 -0700</bug_when>
    <thetext>Created attachment 39625
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148948</commentid>
    <comment_count>2</comment_count>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2009-09-21 21:25:35 -0700</bug_when>
    <thetext>Hurray for workers identified by the url!

Lonely patch... fwiw, some review comments.

First, Looks Great!

File: LayoutTests/fast/workers/resources/shared-worker-name.js
Maybe add a case for creating a worker with the same name as an existing worker, but a different url (or is that covered in other layout tests?).

60     v8::Handle&lt;v8::String&gt; scriptUrl = args[0]-&gt;ToString();
Maybe go straight toWebCoreString as the v8::Stuff&lt;v8::Is&gt; inscrutible :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>149219</commentid>
    <comment_count>3</comment_count>
    <who name="Andrew Wilson">atwilson</who>
    <bug_when>2009-09-22 15:24:47 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Hurray for workers identified by the url!
&gt; 
&gt; Lonely patch... fwiw, some review comments.
&gt; 
&gt; First, Looks Great!
&gt; 
&gt; File: LayoutTests/fast/workers/resources/shared-worker-name.js
&gt; Maybe add a case for creating a worker with the same name as an existing
&gt; worker, but a different url (or is that covered in other layout tests?).

That case is already covered by shared-worker-shared.html.

&gt; 
&gt; 60     v8::Handle&lt;v8::String&gt; scriptUrl = args[0]-&gt;ToString();
&gt; Maybe go straight toWebCoreString as the v8::Stuff&lt;v8::Is&gt; inscrutible :)

There&apos;s some logic further on in that routine that checks for emptiness and aborts the routine which might get broken by calling toWebCoreString earlier. I&apos;d rather not make extraneous changes to the code that might have unexpected side-effects.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>149271</commentid>
    <comment_count>4</comment_count>
      <attachid>39625</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2009-09-22 16:52:18 -0700</bug_when>
    <thetext>Comment on attachment 39625
proposed patch

Just a few things that you can fix on landing.

&gt; diff --git a/LayoutTests/fast/workers/resources/shared-worker-name.js b/LayoutTests/fast/workers/resources/shared-worker-name.js
&gt; +var curTest = 0;

Use whole words: currentTest?


&gt; +// Iterates through the tests until none are left

Add .


&gt; +function test1()
&gt; +{
&gt; +    // Make sure we can create a shared worker with no name

Add .

&gt; +function test2()
&gt; +{
&gt; +    // Creating a worker with no name should match an existing worker with no name

Add .



&gt; diff --git a/WebCore/workers/DefaultSharedWorkerRepository.cpp b/WebCore/workers/DefaultSharedWorkerRepository.cpp
&gt; +bool SharedWorkerProxy::matches(const String&amp; name, PassRefPtr&lt;SecurityOrigin&gt; origin, const KURL&amp; urlToMatch) const
&gt; +    // Implements step 5 of section 4.8.3 of the HTML5 spec - if the names are both empty, compares the URLs instead.

(I think it is currently 4.8.3 step 7 substep 5. Regardless...) I really dislike comments that refer to items in the spec using precise numbering since the sections and steps are still changing in the spec, it will be likely incorrect shortly after check in.

Would you find some other way to refer to the spec? Also this is in the Web Workers spec, not the HTML 5 spec.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>149312</commentid>
    <comment_count>5</comment_count>
    <who name="Andrew Wilson">atwilson</who>
    <bug_when>2009-09-22 21:17:00 -0700</bug_when>
    <thetext>Committed as r48666</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39625</attachid>
            <date>2009-09-15 17:24:47 -0700</date>
            <delta_ts>2009-09-22 16:52:17 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>x</filename>
            <type>text/plain</type>
            <size>14042</size>
            <attacher name="Andrew Wilson">atwilson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlYThjYTUwLi5lMzhmZDRmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMDktMDkt
MTUgIERyZXcgV2lsc29uICA8YXR3aWxzb25AZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTaGFyZWRXb3JrZXJzICJuYW1lIiBhdHRy
aWJ1dGUgaXMgbm93IG9wdGlvbmFsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yODg5NworCisgICAgICAgICogZmFzdC93b3JrZXJzL3Jlc291cmNlcy93
b3JrZXItbmFtZS5qczoKKyAgICAgICAgTmV3IHRlc3RzIGZvciBvcHRpb25hbCBuYW1lIHBhcmFt
ZXRlci4KKyAgICAgICAgKiBmYXN0L3dvcmtlcnMvcmVzb3VyY2VzL3dvcmtlci11dGlsLmpzOgor
ICAgICAgICAoZG9uZSk6CisgICAgICAgIE5vdyBpbnZva2VzIGRvbmUgdmlhIGEgdGltZXIgdG8g
ZW5zdXJlIGFueSBwZW5kaW5nIGNvbnNvbGUgZXJyb3JzIGFyZSB3cml0dGVuIG91dC4KKyAgICAg
ICAgKiBmYXN0L3dvcmtlcnMvc2hhcmVkLXdvcmtlci1jb25zdHJ1Y3Rvci1leHBlY3RlZC50eHQ6
CisgICAgICAgICogZmFzdC93b3JrZXJzL3NoYXJlZC13b3JrZXItY29uc3RydWN0b3IuaHRtbDoK
KyAgICAgICAgVXBkYXRlZCB0ZXN0L2V4cGVjdGF0aW9ucyBub3cgdGhhdCBjb25zdHJ1Y3Rvcidz
ICJuYW1lIiBwYXJhbSBpcyBvcHRpb25hbC4KKyAgICAgICAgKiBmYXN0L3dvcmtlcnMvc2hhcmVk
LXdvcmtlci1uYW1lLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3dvcmtlcnMvc2hhcmVk
LXdvcmtlci1uYW1lLmh0bWw6CisgICAgICAgIE5ldyB0ZXN0cyBmb3Igb3B0aW9uYWwgbmFtZSBw
YXJhbWV0ZXIuCisKIDIwMDktMDktMTIgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBNYWNpZWogU3RhY2hvd2lhay4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3Qvd29ya2Vycy9yZXNvdXJjZXMvc2hhcmVkLXdvcmtlci1uYW1lLmpzIGIvTGF5
b3V0VGVzdHMvZmFzdC93b3JrZXJzL3Jlc291cmNlcy9zaGFyZWQtd29ya2VyLW5hbWUuanMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGVmMjY4NAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9yZXNvdXJjZXMvc2hhcmVkLXdvcmtlci1uYW1l
LmpzCkBAIC0wLDAgKzEsMTAyIEBACitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7
CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGxheW91dFRlc3RD
b250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKK30KKworZGVzY3JpcHRpb24oIkNoZWNrcyB0aGUg
dmFyaW91cyB1c2UgY2FzZXMgYXJvdW5kIHRoZSBTaGFyZWRXb3JrZXIgY29uc3RydWN0b3IncyBv
cHRpb25hbCBuYW1lIHBhcmFtZXRlciIpOworCit2YXIgY3VyVGVzdCA9IDA7CituZXh0VGVzdCgp
OworCisvLyBJdGVyYXRlcyB0aHJvdWdoIHRoZSB0ZXN0cyB1bnRpbCBub25lIGFyZSBsZWZ0Citm
dW5jdGlvbiBuZXh0VGVzdCgpCit7CisgICAgY3VyVGVzdCsrOworICAgIHZhciB0ZXN0RnVuY3Rp
b24gPSB3aW5kb3dbInRlc3QiICsgY3VyVGVzdF07CisgICAgaWYgKHRlc3RGdW5jdGlvbikKKyAg
ICAgICAgdGVzdEZ1bmN0aW9uKCk7CisgICAgZWxzZQorICAgICAgICBkb25lKCk7Cit9CisKKwor
CitmdW5jdGlvbiB0ZXN0MSgpCit7CisgICAgLy8gTWFrZSBzdXJlIHdlIGNhbiBjcmVhdGUgYSBz
aGFyZWQgd29ya2VyIHdpdGggbm8gbmFtZQorICAgIHRyeSB7CisgICAgICAgIHZhciB3b3JrZXIg
PSBuZXcgU2hhcmVkV29ya2VyKCdyZXNvdXJjZXMvc2hhcmVkLXdvcmtlci1jb21tb24uanMnKTsK
KyAgICAgICAgdGVzdFBhc3NlZCgiY3JlYXRlZCBTaGFyZWRXb3JrZXIgd2l0aCBubyBuYW1lIik7
CisgICAgICAgIHdvcmtlci5wb3J0LnBvc3RNZXNzYWdlKCJldmFsIHNlbGYuZm9vID0gMTIzNCIp
OworICAgICAgICB3b3JrZXIucG9ydC5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldmVudCkgeworICAg
ICAgICAgICAgc2hvdWxkQmVFcXVhbCgic2V0dGluZyBzZWxmLmZvbyIsIGV2ZW50LmRhdGEsICJz
ZWxmLmZvbyA9IDEyMzQ6IDEyMzQiKTsKKyAgICAgICAgICAgIG5leHRUZXN0KCk7CisgICAgICAg
IH07CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICB0ZXN0RmFpbGVkKCJTaGFyZWRXb3JrZXIg
d2l0aCBubyBuYW1lIHRocmV3IGFuIGV4Y2VwdGlvbjogIiArIGUpOworICAgICAgICBkb25lKCk7
CisgICAgfQorfQorCitmdW5jdGlvbiB0ZXN0MigpCit7CisgICAgLy8gQ3JlYXRpbmcgYSB3b3Jr
ZXIgd2l0aCBubyBuYW1lIHNob3VsZCBtYXRjaCBhbiBleGlzdGluZyB3b3JrZXIgd2l0aCBubyBu
YW1lCisgICAgdmFyIHdvcmtlciA9IG5ldyBTaGFyZWRXb3JrZXIoJ3Jlc291cmNlcy9zaGFyZWQt
d29ya2VyLWNvbW1vbi5qcycpOworICAgIHdvcmtlci5wb3J0LnBvc3RNZXNzYWdlKCJldmFsIHNl
bGYuZm9vIik7CisgICAgd29ya2VyLnBvcnQub25tZXNzYWdlID0gZnVuY3Rpb24oZXZlbnQpIHsK
KyAgICAgICAgc2hvdWxkQmVFcXVhbCgiY3JlYXRpbmcgd29ya2VyIHdpdGggbm8gbmFtZSIsIGV2
ZW50LmRhdGEsICJzZWxmLmZvbzogMTIzNCIpOworICAgICAgICBuZXh0VGVzdCgpOworICAgIH0K
K30KKworZnVuY3Rpb24gdGVzdDMoKQoreworICAgIC8vIENyZWF0aW5nIGEgd29ya2VyIHdpdGgg
YW4gZW1wdHkgbmFtZSBzaG91bGQgYmUgdGhlIHNhbWUgYXMgYSB3b3JrZXIgd2l0aCBubyBuYW1l
LgorICAgIHZhciB3b3JrZXIgPSBuZXcgU2hhcmVkV29ya2VyKCdyZXNvdXJjZXMvc2hhcmVkLXdv
cmtlci1jb21tb24uanMnLCAnJyk7CisgICAgd29ya2VyLnBvcnQucG9zdE1lc3NhZ2UoImV2YWwg
c2VsZi5mb28iKTsKKyAgICB3b3JrZXIucG9ydC5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldmVudCkg
eworICAgICAgICBzaG91bGRCZUVxdWFsKCJjcmVhdGluZyB3b3JrZXIgd2l0aCBlbXB0eSBuYW1l
IiwgZXZlbnQuZGF0YSwgInNlbGYuZm9vOiAxMjM0Iik7CisgICAgICAgIG5leHRUZXN0KCk7Cisg
ICAgfTsKK30KKworZnVuY3Rpb24gdGVzdDQoKQoreworICAgIC8vIENyZWF0aW5nIGEgd29ya2Vy
IHdpdGggYSBkaWZmZXJlbnQgbmFtZSBzaG91bGQgbm90IGJlIHRoZSBzYW1lIGFzIGEgd29ya2Vy
IHdpdGggbm8gbmFtZS4KKyAgICB2YXIgd29ya2VyID0gbmV3IFNoYXJlZFdvcmtlcigncmVzb3Vy
Y2VzL3NoYXJlZC13b3JrZXItY29tbW9uLmpzJywgJ25hbWUnKTsKKyAgICB3b3JrZXIucG9ydC5w
b3N0TWVzc2FnZSgiZXZhbCBzZWxmLmZvbyIpOworICAgIHdvcmtlci5wb3J0Lm9ubWVzc2FnZSA9
IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgIHNob3VsZEJlRXF1YWwoImNyZWF0aW5nIHdvcmtl
ciB3aXRoIGRpZmZlcmVudCBuYW1lIGJ1dCBzYW1lIFVSTCIsIGV2ZW50LmRhdGEsICJzZWxmLmZv
bzogdW5kZWZpbmVkIik7CisgICAgICAgIG5leHRUZXN0KCk7CisgICAgfTsKK30KKworZnVuY3Rp
b24gdGVzdDUoKQoreworICAgIC8vIENyZWF0aW5nIGEgd29ya2VyIGZvciBhbiBhbHRlcm5hdGUg
VVJMIHdpdGggbm8gbmFtZSBzaG91bGQgd29yay4KKyAgICB2YXIgd29ya2VyID0gbmV3IFNoYXJl
ZFdvcmtlcigncmVzb3VyY2VzL3NoYXJlZC13b3JrZXItY29tbW9uLmpzP3VybD0xJyk7CisgICAg
d29ya2VyLnBvcnQucG9zdE1lc3NhZ2UoImV2YWwgc2VsZi5mb28iKTsKKyAgICB3b3JrZXIucG9y
dC5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldmVudCkgeworICAgICAgICBzaG91bGRCZUVxdWFsKCJj
cmVhdGluZyBuby1uYW1lIHdvcmtlciB3aXRoIGFsdGVybmF0ZSBVUkwiLCBldmVudC5kYXRhLCAi
c2VsZi5mb286IHVuZGVmaW5lZCIpOworICAgICAgICBuZXh0VGVzdCgpOworICAgIH07Cit9CisK
K2Z1bmN0aW9uIHRlc3Q2KCkKK3sKKyAgICAvLyBDcmVhdGluZyBhIHdvcmtlciBmb3IgYW4gYWx0
ZXJuYXRlIFVSTCB3aXRoIGVtcHR5IG5hbWUgc2hvdWxkIHdvcmsuCisgICAgdmFyIHdvcmtlciA9
IG5ldyBTaGFyZWRXb3JrZXIoJ3Jlc291cmNlcy9zaGFyZWQtd29ya2VyLWNvbW1vbi5qcz91cmw9
MicsICcnKTsKKyAgICB3b3JrZXIucG9ydC5wb3N0TWVzc2FnZSgiZXZhbCBzZWxmLmZvbyIpOwor
ICAgIHdvcmtlci5wb3J0Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgIHNo
b3VsZEJlRXF1YWwoImNyZWF0aW5nIGVtcHR5IG5hbWUgd29ya2VyIHdpdGggYWx0ZXJuYXRlIFVS
TCIsIGV2ZW50LmRhdGEsICJzZWxmLmZvbzogdW5kZWZpbmVkIik7CisgICAgICAgIG5leHRUZXN0
KCk7CisgICAgfTsKK30KKworZnVuY3Rpb24gc2hvdWxkQmVFcXVhbChkZXNjcmlwdGlvbiwgYSwg
YikKK3sKKyAgICBpZiAoYSA9PSBiKQorICAgICAgICB0ZXN0UGFzc2VkKGRlc2NyaXB0aW9uKTsK
KyAgICBlbHNlCisgICAgICAgIHRlc3RGYWlsZWQoZGVzY3JpcHRpb24gKyAiIC0gcGFzc2VkIHZh
bHVlOiAiICsgYSArICIsIGV4cGVjdGVkIHZhbHVlOiAiICsgYik7Cit9CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvcmVzb3VyY2VzL3dvcmtlci11dGlsLmpzIGIvTGF5b3V0
VGVzdHMvZmFzdC93b3JrZXJzL3Jlc291cmNlcy93b3JrZXItdXRpbC5qcwppbmRleCAzNzk0M2U3
Li4yMDZlZWQxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvcmVzb3VyY2Vz
L3dvcmtlci11dGlsLmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9yZXNvdXJjZXMv
d29ya2VyLXV0aWwuanMKQEAgLTUzLDYgKzUzLDkgQEAgZnVuY3Rpb24gZG9uZSgpCiAgICAgZWxz
ZQogICAgICAgICBsb2coIkRPTkUiKTsKIAotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAv
LyBDYWxsIG5vdGlmeURvbmUgdmlhIHRoZSBxdWV1ZSBzbyBhbnkgcGVuZGluZyBjb25zb2xlIG1l
c3NhZ2VzL2V4Y2VwdGlvbnMgYXJlIHdyaXR0ZW4gb3V0IGZpcnN0LgorICAgIHNldFRpbWVvdXQo
ZnVuY3Rpb24oKSB7CisgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisg
ICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgfSwgMCk7
CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvc2hhcmVkLXdvcmtlci1j
b25zdHJ1Y3Rvci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvc2hhcmVk
LXdvcmtlci1jb25zdHJ1Y3Rvci1leHBlY3RlZC50eHQKaW5kZXggMjI0YzFjMy4uOWYwYzA5MCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3NoYXJlZC13b3JrZXItY29uc3Ry
dWN0b3ItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9zaGFyZWQt
d29ya2VyLWNvbnN0cnVjdG9yLWV4cGVjdGVkLnR4dApAQCAtMyw3ICszLDcgQEAgVGVzdCBTaGFy
ZWRXb3JrZXIgY29uc3RydWN0b3IgZnVuY3Rpb25hbGl0eS4gU2hvdWxkIHByaW50IGEgc2VyaWVz
IG9mIFBBU1MgbWVzc2EKIFBBU1M6IHRvU3RyaW5nIGV4Y2VwdGlvbiBwcm9wYWdhdGVkIGNvcnJl
Y3RseS4KIFBBU1M6IHRyeWluZyB0byBjcmVhdGUgd29ya2VycyByZWN1cnNpdmVseSByZXN1bHRl
ZCBpbiBhbiBleGNlcHRpb24gKFJhbmdlRXJyb3I6IE1heGltdW0gY2FsbCBzdGFjayBzaXplIGV4
Y2VlZGVkLikKIFBBU1M6IGludm9raW5nIFNoYXJlZFdvcmtlciBjb25zdHJ1Y3RvciB3aXRob3V0
IGFyZ3VtZW50cyByZXN1bHRlZCBpbiBhbiBleGNlcHRpb24gKFN5bnRheEVycm9yOiBOb3QgZW5v
dWdoIGFyZ3VtZW50cykKLVBBU1M6IGludm9raW5nIFNoYXJlZFdvcmtlciBjb25zdHJ1Y3RvciB3
aXRob3V0IG5hbWUgcmVzdWx0ZWQgaW4gYW4gZXhjZXB0aW9uIChTeW50YXhFcnJvcjogTm90IGVu
b3VnaCBhcmd1bWVudHMpCitQQVNTOiBpbnZva2luZyBTaGFyZWRXb3JrZXIgY29uc3RydWN0b3Ig
d2l0aG91dCBuYW1lIGRpZCBub3QgcmVzdWx0IGluIGFuIGV4Y2VwdGlvbgogUEFTUzogU2hhcmVk
V29ya2VyIGNvbnN0cnVjdG9yIHN1Y2NlZWRlZDogW29iamVjdCBTaGFyZWRXb3JrZXJdCiBET05F
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9zaGFyZWQtd29ya2VyLWNv
bnN0cnVjdG9yLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvc2hhcmVkLXdvcmtlci1j
b25zdHJ1Y3Rvci5odG1sCmluZGV4IGRlN2ZhM2YuLjcxNjBjYmEgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3Qvd29ya2Vycy9zaGFyZWQtd29ya2VyLWNvbnN0cnVjdG9yLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3NoYXJlZC13b3JrZXItY29uc3RydWN0b3IuaHRtbApA
QCAtMzksOSArMzksOSBAQCB0cnkgewogCiB0cnkgewogICAgIHZhciB3b3JrZXIgPSBuZXcgU2hh
cmVkV29ya2VyKCJyZXNvdXJjZXMvc2hhcmVkLXdvcmtlci1jb21tb24uanMiKTsKLSAgICBsb2co
IkZBSUw6IENvbnN0cnVjdG9yIHN1Y2NlZWRlZCB3aGVuIG5vIG5hbWUgaXMgcGFzc2VkIik7Cisg
ICAgbG9nKCJQQVNTOiBpbnZva2luZyBTaGFyZWRXb3JrZXIgY29uc3RydWN0b3Igd2l0aG91dCBu
YW1lIGRpZCBub3QgcmVzdWx0IGluIGFuIGV4Y2VwdGlvbiIpOwogfSBjYXRjaCAoZXgpIHsKLSAg
ICBsb2coIlBBU1M6IGludm9raW5nIFNoYXJlZFdvcmtlciBjb25zdHJ1Y3RvciB3aXRob3V0IG5h
bWUgcmVzdWx0ZWQgaW4gYW4gZXhjZXB0aW9uICgiICsgZXggKyAiKSIpOworICAgIGxvZygiRkFJ
TDogQ29uc3RydWN0b3IgZmFpbGVkIHdoZW4gbm8gbmFtZSBpcyBwYXNzZWQ6ICgiICsgZXggKyAi
KSIpOwogfQogCiB0cnkgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3No
YXJlZC13b3JrZXItbmFtZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMv
c2hhcmVkLXdvcmtlci1uYW1lLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi5iNjlhZmE4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC93
b3JrZXJzL3NoYXJlZC13b3JrZXItbmFtZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNSBAQAor
Q2hlY2tzIHRoZSB2YXJpb3VzIHVzZSBjYXNlcyBhcm91bmQgdGhlIFNoYXJlZFdvcmtlciBjb25z
dHJ1Y3RvcidzIG9wdGlvbmFsIG5hbWUgcGFyYW1ldGVyCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitQQVNTIGNyZWF0ZWQgU2hhcmVkV29ya2VyIHdpdGggbm8gbmFtZQorUEFTUyBz
ZXR0aW5nIHNlbGYuZm9vCitQQVNTIGNyZWF0aW5nIHdvcmtlciB3aXRoIG5vIG5hbWUKK1BBU1Mg
Y3JlYXRpbmcgd29ya2VyIHdpdGggZW1wdHkgbmFtZQorUEFTUyBjcmVhdGluZyB3b3JrZXIgd2l0
aCBkaWZmZXJlbnQgbmFtZSBidXQgc2FtZSBVUkwKK1BBU1MgY3JlYXRpbmcgbm8tbmFtZSB3b3Jr
ZXIgd2l0aCBhbHRlcm5hdGUgVVJMCitQQVNTIGNyZWF0aW5nIGVtcHR5IG5hbWUgd29ya2VyIHdp
dGggYWx0ZXJuYXRlIFVSTAorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3Qvd29ya2Vycy9zaGFyZWQtd29ya2VyLW5hbWUuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3Qvd29ya2Vycy9zaGFyZWQtd29ya2VyLW5hbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi5jZTRmZWM2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC93b3JrZXJzL3NoYXJlZC13b3JrZXItbmFtZS5odG1sCkBAIC0wLDAgKzEsMTAgQEAKKzxoZWFk
PgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1z
dHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRp
diBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3dvcmtlci11dGls
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhcmVkLXdvcmtlci1uYW1l
LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIv
V2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzZhMDFmZS4uNDdkNWJjZSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAor
MjAwOS0wOS0xNSAgRHJldyBXaWxzb24gIDxhdHdpbHNvbkBnb29nbGUuY29tPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNoYXJlZFdvcmtlcnMgIm5h
bWUiIGF0dHJpYnV0ZSBpcyBub3cgb3B0aW9uYWwuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yODg5NworCisgICAgICAgIFRlc3Q6IGZhc3Qvd29ya2Vy
cy9zaGFyZWQtd29ya2VyLW5hbWUuaHRtbAorCisgICAgICAgICogYmluZGluZ3MvanMvSlNTaGFy
ZWRXb3JrZXJDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb25zdHJ1Y3RTaGFy
ZWRXb3JrZXIpOgorICAgICAgICBEZWZhdWx0ICduYW1lJyBhdHRyaWJ1dGUgdG8gZW1wdHkgc3Ry
aW5nIGlmIGl0IGlzIG5vdCBwcm92aWRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20v
VjhTaGFyZWRXb3JrZXJDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0FMTEJBQ0tfRlVO
Q19ERUNMKToKKyAgICAgICAgRGVmYXVsdCAnbmFtZScgYXR0cmlidXRlIHRvIGVtcHR5IHN0cmlu
ZyBpZiBpdCBpcyBub3QgcHJvdmlkZWQuCisgICAgICAgICogd29ya2Vycy9EZWZhdWx0U2hhcmVk
V29ya2VyUmVwb3NpdG9yeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaGFyZWRXb3JrZXJQcm94
eTo6bWF0Y2hlcyk6CisgICAgICAgIE5vdyBtYXRjaGVzIFVSTHMgaWYgbmFtZXMgYXJlIGVtcHR5
IHN0cmluZ3MuCisgICAgICAgIChXZWJDb3JlOjpEZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9y
eTo6Z2V0UHJveHkpOgorICAgICAgICBQYXNzIFVSTCBpbiB0byBTaGFyZWRXb3JrZXJQcm94eTo6
bWF0Y2hlcygpLgorCiAyMDA5LTA5LTEyICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgTWFjaWVqIFN0YWNob3dpYWsuCmRpZmYgLS1naXQgYS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTU2hhcmVkV29ya2VyQ29uc3RydWN0b3IuY3BwIGIvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1NoYXJlZFdvcmtlckNvbnN0cnVjdG9yLmNwcAppbmRleCA2NTE4MDVjLi5j
MDViM2QyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU2hhcmVkV29ya2VyQ29u
c3RydWN0b3IuY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTaGFyZWRXb3JrZXJDb25z
dHJ1Y3Rvci5jcHAKQEAgLTU3LDExICs1NywxNCBAQCBzdGF0aWMgSlNPYmplY3QqIGNvbnN0cnVj
dFNoYXJlZFdvcmtlcihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBjb25zdHJ1Y3RvciwgYwog
ewogICAgIEpTU2hhcmVkV29ya2VyQ29uc3RydWN0b3IqIGpzQ29uc3RydWN0b3IgPSBzdGF0aWNf
Y2FzdDxKU1NoYXJlZFdvcmtlckNvbnN0cnVjdG9yKj4oY29uc3RydWN0b3IpOwogCi0gICAgaWYg
KGFyZ3Muc2l6ZSgpIDwgMikKKyAgICBpZiAoYXJncy5zaXplKCkgPCAxKQogICAgICAgICByZXR1
cm4gdGhyb3dFcnJvcihleGVjLCBTeW50YXhFcnJvciwgIk5vdCBlbm91Z2ggYXJndW1lbnRzIik7
CiAKICAgICBVU3RyaW5nIHNjcmlwdFVSTCA9IGFyZ3MuYXQoMCkudG9TdHJpbmcoZXhlYyk7Ci0g
ICAgVVN0cmluZyBuYW1lID0gYXJncy5hdCgxKS50b1N0cmluZyhleGVjKTsKKyAgICBVU3RyaW5n
IG5hbWU7CisgICAgaWYgKGFyZ3Muc2l6ZSgpID4gMSkKKyAgICAgICAgbmFtZSA9IGFyZ3MuYXQo
MSkudG9TdHJpbmcoZXhlYyk7CisKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAg
ICAgIHJldHVybiAwOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9W
OFNoYXJlZFdvcmtlckN1c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFNo
YXJlZFdvcmtlckN1c3RvbS5jcHAKaW5kZXggNzU1OTc3Yy4uZTQ3MGJjOCAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhTaGFyZWRXb3JrZXJDdXN0b20uY3BwCisrKyBi
L1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4U2hhcmVkV29ya2VyQ3VzdG9tLmNwcApAQCAt
NTMsMTIgKzUzLDE1IEBAIENBTExCQUNLX0ZVTkNfREVDTChTaGFyZWRXb3JrZXJDb25zdHJ1Y3Rv
cikKICAgICBpZiAoIWFyZ3MuSXNDb25zdHJ1Y3RDYWxsKCkpCiAgICAgICAgIHJldHVybiB0aHJv
d0Vycm9yKCJET00gb2JqZWN0IGNvbnN0cnVjdG9yIGNhbm5vdCBiZSBjYWxsZWQgYXMgYSBmdW5j
dGlvbi4iKTsKIAotICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMikKKyAgICBpZiAoYXJncy5MZW5n
dGgoKSA8IDEpCiAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCJOb3QgZW5vdWdoIGFyZ3VtZW50
cyIsIFY4UHJveHk6OlN5bnRheEVycm9yKTsKIAogICAgIHY4OjpUcnlDYXRjaCB0cnlDYXRjaDsK
ICAgICB2ODo6SGFuZGxlPHY4OjpTdHJpbmc+IHNjcmlwdFVybCA9IGFyZ3NbMF0tPlRvU3RyaW5n
KCk7Ci0gICAgdjg6OkhhbmRsZTx2ODo6U3RyaW5nPiBuYW1lID0gYXJnc1sxXS0+VG9TdHJpbmco
KTsKKyAgICBTdHJpbmcgbmFtZTsKKyAgICBpZiAoYXJncy5MZW5ndGgoKSA+IDEpCisgICAgICAg
IG5hbWUgPSB0b1dlYkNvcmVTdHJpbmcoYXJnc1sxXS0+VG9TdHJpbmcoKSk7CisKICAgICBpZiAo
dHJ5Q2F0Y2guSGFzQ2F1Z2h0KCkpCiAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKHRyeUNhdGNo
LkV4Y2VwdGlvbigpKTsKIApAQCAtNzMsNyArNzYsNyBAQCBDQUxMQkFDS19GVU5DX0RFQ0woU2hh
cmVkV29ya2VyQ29uc3RydWN0b3IpCiAgICAgLy8gQ3JlYXRlIHRoZSB3b3JrZXIgb2JqZWN0Lgog
ICAgIC8vIE5vdGU6IGl0J3MgT0sgdG8gbGV0IHRoaXMgUmVmUHRyIGdvIG91dCBvZiBzY29wZSBi
ZWNhdXNlIHdlIGFsc28gY2FsbCBTZXRET01XcmFwcGVyKCksIHdoaWNoIGVmZmVjdGl2ZWx5IGhv
bGRzIGEgcmVmZXJlbmNlIHRvIG9iai4KICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBS
ZWZQdHI8U2hhcmVkV29ya2VyPiBvYmogPSBTaGFyZWRXb3JrZXI6OmNyZWF0ZSh0b1dlYkNvcmVT
dHJpbmcoc2NyaXB0VXJsKSwgdG9XZWJDb3JlU3RyaW5nKG5hbWUpLCBjb250ZXh0LCBlYyk7Cisg
ICAgUmVmUHRyPFNoYXJlZFdvcmtlcj4gb2JqID0gU2hhcmVkV29ya2VyOjpjcmVhdGUodG9XZWJD
b3JlU3RyaW5nKHNjcmlwdFVybCksIG5hbWUsIGNvbnRleHQsIGVjKTsKIAogICAgIC8vIFNldHVw
IHRoZSBzdGFuZGFyZCB3cmFwcGVyIG9iamVjdCBpbnRlcm5hbCBmaWVsZHMuCiAgICAgdjg6Okhh
bmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVyT2JqZWN0ID0gYXJncy5Ib2xkZXIoKTsKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvd29ya2Vycy9EZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeS5jcHAgYi9X
ZWJDb3JlL3dvcmtlcnMvRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnkuY3BwCmluZGV4IGU5
NTVmMjQuLjY2OGZkMTUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvd29ya2Vycy9EZWZhdWx0U2hhcmVk
V29ya2VyUmVwb3NpdG9yeS5jcHAKKysrIGIvV2ViQ29yZS93b3JrZXJzL0RlZmF1bHRTaGFyZWRX
b3JrZXJSZXBvc2l0b3J5LmNwcApAQCAtNjQsNyArNjQsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBp
c0Nsb3NpbmcoKSBjb25zdCB7IHJldHVybiBtX2Nsb3Npbmc7IH0KICAgICBLVVJMIHVybCgpIGNv
bnN0IHsgcmV0dXJuIG1fdXJsLmNvcHkoKTsgfQogICAgIFN0cmluZyBuYW1lKCkgY29uc3QgeyBy
ZXR1cm4gbV9uYW1lLmNvcHkoKTsgfQotICAgIGJvb2wgbWF0Y2hlcyhjb25zdCBTdHJpbmcmIG5h
bWUsIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IG9yaWdpbikgY29uc3QgeyByZXR1cm4gbmFt
ZSA9PSBtX25hbWUgJiYgb3JpZ2luLT5lcXVhbChtX29yaWdpbi5nZXQoKSk7IH0KKyAgICBib29s
IG1hdGNoZXMoY29uc3QgU3RyaW5nJiBuYW1lLCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBv
cmlnaW4sIGNvbnN0IEtVUkwmIHVybFRvTWF0Y2gpIGNvbnN0OwogCiAgICAgLy8gV29ya2VyTG9h
ZGVyUHJveHkKICAgICB2aXJ0dWFsIHZvaWQgcG9zdFRhc2tUb0xvYWRlcihQYXNzUmVmUHRyPFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2s+KTsKQEAgLTEwOSw2ICsxMDksMTkgQEAgU2hhcmVk
V29ya2VyUHJveHk6OlNoYXJlZFdvcmtlclByb3h5KGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3Qg
S1VSTCYgdXJsLCBQYXNzUmUKICAgICBBU1NFUlQobV9vcmlnaW4tPmhhc09uZVJlZigpKTsKIH0K
IAorYm9vbCBTaGFyZWRXb3JrZXJQcm94eTo6bWF0Y2hlcyhjb25zdCBTdHJpbmcmIG5hbWUsIFBh
c3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IG9yaWdpbiwgY29uc3QgS1VSTCYgdXJsVG9NYXRjaCkg
Y29uc3QKK3sKKyAgICAvLyBJZiB0aGUgb3JpZ2lucyBkb24ndCBtYXRjaCwgb3IgdGhlIG5hbWVz
IGRvbid0IG1hdGNoLCB0aGVuIHRoaXMgaXMgbm90IHRoZSBwcm94eSB3ZSBhcmUgbG9va2luZyBm
b3IuCisgICAgaWYgKCFvcmlnaW4tPmVxdWFsKG1fb3JpZ2luLmdldCgpKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgLy8gSW1wbGVtZW50cyBzdGVwIDUgb2Ygc2VjdGlvbiA0LjguMyBv
ZiB0aGUgSFRNTDUgc3BlYyAtIGlmIHRoZSBuYW1lcyBhcmUgYm90aCBlbXB0eSwgY29tcGFyZXMg
dGhlIFVSTHMgaW5zdGVhZC4KKyAgICBpZiAobmFtZS5pc0VtcHR5KCkgJiYgbV9uYW1lLmlzRW1w
dHkoKSkKKyAgICAgICAgcmV0dXJuIHVybFRvTWF0Y2ggPT0gdXJsKCk7CisKKyAgICByZXR1cm4g
bmFtZSA9PSBtX25hbWU7Cit9CisKIHZvaWQgU2hhcmVkV29ya2VyUHJveHk6OnBvc3RUYXNrVG9M
b2FkZXIoUGFzc1JlZlB0cjxTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrPiB0YXNrKQogewog
ICAgIE11dGV4TG9ja2VyIGxvY2sobV93b3JrZXJEb2N1bWVudHNMb2NrKTsKQEAgLTM2NSw3ICsz
NzgsNyBAQCBQYXNzUmVmUHRyPFNoYXJlZFdvcmtlclByb3h5PiBEZWZhdWx0U2hhcmVkV29ya2Vy
UmVwb3NpdG9yeTo6Z2V0UHJveHkoY29uc3QgU3RyaQogICAgIC8vIEl0ZW1zIGluIHRoZSBjYWNo
ZSBhcmUgZnJlZWQgb24gYW5vdGhlciB0aHJlYWQsIHNvIGNvcHkgdGhlIFVSTCBiZWZvcmUgY3Jl
YXRpbmcgdGhlIG9yaWdpbiwgdG8gbWFrZSBzdXJlIG5vIHJlZmVyZW5jZXMgdG8gZXh0ZXJuYWwg
c3RyaW5ncyBsaW5nZXIuCiAgICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBvcmlnaW4gPSBTZWN1
cml0eU9yaWdpbjo6Y3JlYXRlKHVybC5jb3B5KCkpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7
IGkgPCBtX3Byb3hpZXMuc2l6ZSgpOyBpKyspIHsKLSAgICAgICAgaWYgKCFtX3Byb3hpZXNbaV0t
PmlzQ2xvc2luZygpICYmIG1fcHJveGllc1tpXS0+bWF0Y2hlcyhuYW1lLCBvcmlnaW4pKQorICAg
ICAgICBpZiAoIW1fcHJveGllc1tpXS0+aXNDbG9zaW5nKCkgJiYgbV9wcm94aWVzW2ldLT5tYXRj
aGVzKG5hbWUsIG9yaWdpbiwgdXJsKSkKICAgICAgICAgICAgIHJldHVybiBtX3Byb3hpZXNbaV07
CiAgICAgfQogICAgIC8vIFByb3h5IGlzIG5vdCBpbiB0aGUgcmVwb3NpdG9yeSBjdXJyZW50bHkg
LSBjcmVhdGUgYSBuZXcgb25lLgo=
</data>
<flag name="review"
          id="20731"
          type_id="1"
          status="+"
          setter="levin"
    />
    <flag name="commit-queue"
          id="21116"
          type_id="3"
          status="-"
          setter="levin"
    />
          </attachment>
      

    </bug>

</bugzilla>