<?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>81261</bug_id>
          
          <creation_ts>2012-03-15 13:36:34 -0700</creation_ts>
          <short_desc>[chromium] Support file drag out using DataTransferItemList::add(File)</short_desc>
          <delta_ts>2012-03-23 15:25:26 -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>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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="Daniel Cheng">dcheng</reporter>
          <assigned_to name="Daniel Cheng">dcheng</assigned_to>
          <cc>rbyers</cc>
    
    <cc>tony</cc>
    
    <cc>varunjain</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>579688</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2012-03-15 13:36:34 -0700</bug_when>
    <thetext>Right now, file drag out isn&apos;t very well supported. We have downloadurl and the default drag handler for images, but we don&apos;t actually support image dragout using the specced method.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586010</commentid>
    <comment_count>1</comment_count>
      <attachid>133417</attachid>
    <who name="Varun Jain">varunjain</who>
    <bug_when>2012-03-22 19:38:23 -0700</bug_when>
    <thetext>Created attachment 133417
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586432</commentid>
    <comment_count>2</comment_count>
      <attachid>133417</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-03-23 09:43:55 -0700</bug_when>
    <thetext>Comment on attachment 133417
Patch

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

r- for no test.  Please add one to ManualTests or create a layout test.

&gt; Source/WebCore/ChangeLog:8
&gt; +        No new tests. Manually tested that file drag and drop doesnot crash chrome.

Please create a layout test or at least make a manual test and put it in ManualTests.  There are a few other drag&amp;drop tests in that directory already.

&gt; Source/WebCore/platform/chromium/DataTransferItemListChromium.cpp:123
&gt; +    // Note that passing file to createFromFile below transfers ownership of
&gt; +    // it, so file is 0 after this call.
&gt; +    m_itemList.append(DataTransferItemChromium::createFromFile(file));

Are you sure about this comment?  |file| is a ref counted pointer so createFromFile shouldn&apos;t delete anything.  Is the order that we add items important here?  Daniel would know.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586442</commentid>
    <comment_count>3</comment_count>
    <who name="Rick Byers">rbyers</who>
    <bug_when>2012-03-23 09:58:27 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 133417 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=133417&amp;action=review
&gt; 
&gt; r- for no test.  Please add one to ManualTests or create a layout test.

Daniel, are you taking this over now that you&apos;re back in the office?

&gt; &gt; Source/WebCore/platform/chromium/DataTransferItemListChromium.cpp:123
&gt; &gt; +    // Note that passing file to createFromFile below transfers ownership of
&gt; &gt; +    // it, so file is 0 after this call.
&gt; &gt; +    m_itemList.append(DataTransferItemChromium::createFromFile(file));
&gt; 
&gt; Are you sure about this comment?  |file| is a ref counted pointer so createFromFile shouldn&apos;t delete anything.  Is the order that we add items important here?  Daniel would know.

Moving this definitely fixed the crash I saw: crbug.com/119591
I&apos;m new to these WebKit types, but http://www.webkit.org/coding/RefPtr.html says that assigning a PassRefPtr to a RefPtr clears the original pointer, and inside createFromFile we have:
  item-&gt;m_file = file;
Transferring ownership of the File to the DataTransferItemChromium.

I assumed the order of the items was irrelevant, but Daniel is the expert.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586455</commentid>
    <comment_count>4</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-03-23 10:14:44 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; (From update of attachment 133417 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=133417&amp;action=review
&gt; &gt; &gt; Source/WebCore/platform/chromium/DataTransferItemListChromium.cpp:123
&gt; &gt; &gt; +    // Note that passing file to createFromFile below transfers ownership of
&gt; &gt; &gt; +    // it, so file is 0 after this call.
&gt; &gt; &gt; +    m_itemList.append(DataTransferItemChromium::createFromFile(file));
&gt; &gt; 
&gt; &gt; Are you sure about this comment?  |file| is a ref counted pointer so createFromFile shouldn&apos;t delete anything.  Is the order that we add items important here?  Daniel would know.
&gt; 
&gt; Moving this definitely fixed the crash I saw: crbug.com/119591
&gt; I&apos;m new to these WebKit types, but http://www.webkit.org/coding/RefPtr.html says that assigning a PassRefPtr to a RefPtr clears the original pointer, and inside createFromFile we have:
&gt;   item-&gt;m_file = file;
&gt; Transferring ownership of the File to the DataTransferItemChromium.

createFromFile gets a copy of PassRefPtr. The original copy in DataTransferItemListChromium is unmodified.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586786</commentid>
    <comment_count>5</comment_count>
      <attachid>133568</attachid>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2012-03-23 15:07:33 -0700</bug_when>
    <thetext>Created attachment 133568
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586793</commentid>
    <comment_count>6</comment_count>
      <attachid>133568</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-03-23 15:13:18 -0700</bug_when>
    <thetext>Comment on attachment 133568
Patch

Will this test pass on other ports or should it be in the Skipped files?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586800</commentid>
    <comment_count>7</comment_count>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2012-03-23 15:25:26 -0700</bug_when>
    <thetext>Committed r111919: &lt;http://trac.webkit.org/changeset/111919&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133417</attachid>
            <date>2012-03-22 19:38:23 -0700</date>
            <delta_ts>2012-03-23 15:07:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-81261-20120322223820.patch</filename>
            <type>text/plain</type>
            <size>4700</size>
            <attacher name="Varun Jain">varunjain</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTExNjUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjMyNjg2ZWVhMmVmNzgy
NDk5NjIzYWI3MDE3NGMyZGIzM2Q5M2U4My4uNGM1ZDM2YWVmMmM3NDc1ZWNlNTNlZjFlMWZkNjgz
M2UxMjBlNjQzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTAzLTIyICBWYXJ1
biBKYWluICA8dmFydW5qYWluQGdvb2dsZS5jb20+CisKKyAgICAgICAgW2Nocm9taXVtXSBTdXBw
b3J0IGZpbGUgZHJhZyBvdXQgdXNpbmcgRGF0YVRyYW5zZmVySXRlbUxpc3Q6OmFkZChGaWxlKQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODEyNjEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVz
dHMuIE1hbnVhbGx5IHRlc3RlZCB0aGF0IGZpbGUgZHJhZyBhbmQgZHJvcCBkb2Vzbm90IGNyYXNo
IGNocm9tZS4KKworICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL0RhdGFUcmFuc2Zlckl0ZW1M
aXN0Q2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRyYW5zZmVySXRlbUxpc3RD
aHJvbWl1bTo6YWRkKToKKwogMjAxMi0wMy0yMSAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBldmVudCBsaXN0ZW5lcnMgc2Vj
dGlvbiBpcyBicm9rZW4gZm9yIGFib3V0OmJsYW5rIHBhZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cKaW5kZXggMWQ3YjczMTQ2OTIwOGYxZWIwODZjMDY3ZjBmOThlZWM5ZjQzODQ4MC4uMTJiMzEx
N2QwMTFhNjExMDkxNjhlNGRlODA1OGQxNGY1NmIwYWRhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0wMy0yMiAgVmFydW4gSmFpbiAgPHZhcnVuamFp
bkBnb29nbGUuY29tPgorCisgICAgICAgIFtjaHJvbWl1bV0gU3VwcG9ydCBmaWxlIGRyYWcgb3V0
IHVzaW5nIERhdGFUcmFuc2Zlckl0ZW1MaXN0OjphZGQoRmlsZSkKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgxMjYxCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzcmMvV2ViRHJhZ0RhdGEuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJEcmFnRGF0YTo6aXRlbXMpOgorCiAyMDEyLTAzLTIxICBTaGVyaWZm
IEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2Vk
LCByb2xsaW5nIG91dCByMTExNjE2LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY2hyb21pdW0vRGF0YVRyYW5zZmVySXRlbUxpc3RDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVtTGlzdENocm9taXVtLmNwcApp
bmRleCA3YmVmYjgwNTc0MmEwOGNhODhlZTc5NTNhMWJmZDY5M2JhZTJmZWMzLi5jODIwZTlhMjcy
ZWVjOTM3NjgyOTY5NDVmY2EzNmUwNjllNmE4MzRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVtTGlzdENocm9taXVtLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVtTGlzdENo
cm9taXVtLmNwcApAQCAtMTA1LDggKzEwNSw2IEBAIHZvaWQgRGF0YVRyYW5zZmVySXRlbUxpc3RD
aHJvbWl1bTo6YWRkKFBhc3NSZWZQdHI8RmlsZT4gZmlsZSwgU2NyaXB0RXhlY3V0aW9uQ29uCiAg
ICAgaWYgKCFmaWxlKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX2l0ZW1MaXN0LmFwcGVuZChE
YXRhVHJhbnNmZXJJdGVtQ2hyb21pdW06OmNyZWF0ZUZyb21GaWxlKGZpbGUpKTsKLQogICAgIC8v
IEZJWE1FOiBBbGxvdyBtdWx0aXBsZSBmaWxlcyB0byBiZSBkcmFnZ2VkIG91dCBhdCBvbmNlIGlm
IG1vcmUgdGhhbiBvbmUgZmlsZSBpcyBhZGRlZCB0byB0aGUgc3RvcmFnZS4KICAgICBLVVJMIHVy
bEZvckRvd25sb2FkID0gQmxvYlVSTDo6Y3JlYXRlUHVibGljVVJMKGNvbnRleHQtPnNlY3VyaXR5
T3JpZ2luKCkpOwogICAgIFRocmVhZGFibGVCbG9iUmVnaXN0cnk6OnJlZ2lzdGVyQmxvYlVSTCh1
cmxGb3JEb3dubG9hZCwgZmlsZS0+dXJsKCkpOwpAQCAtMTE5LDYgKzExNywxMCBAQCB2b2lkIERh
dGFUcmFuc2Zlckl0ZW1MaXN0Q2hyb21pdW06OmFkZChQYXNzUmVmUHRyPEZpbGU+IGZpbGUsIFNj
cmlwdEV4ZWN1dGlvbkNvbgogICAgIGRvd25sb2FkVXJsLmFwcGVuZCh1cmxGb3JEb3dubG9hZC5z
dHJpbmcoKSk7CiAKICAgICBpbnRlcm5hbEFkZFN0cmluZ0l0ZW0oRGF0YVRyYW5zZmVySXRlbUNo
cm9taXVtOjpjcmVhdGVGcm9tU3RyaW5nKG1pbWVUeXBlRG93bmxvYWRVUkwsIGRvd25sb2FkVXJs
LnRvU3RyaW5nKCkpKTsKKworICAgIC8vIE5vdGUgdGhhdCBwYXNzaW5nIGZpbGUgdG8gY3JlYXRl
RnJvbUZpbGUgYmVsb3cgdHJhbnNmZXJzIG93bmVyc2hpcCBvZgorICAgIC8vIGl0LCBzbyBmaWxl
IGlzIDAgYWZ0ZXIgdGhpcyBjYWxsLgorICAgIG1faXRlbUxpc3QuYXBwZW5kKERhdGFUcmFuc2Zl
ckl0ZW1DaHJvbWl1bTo6Y3JlYXRlRnJvbUZpbGUoZmlsZSkpOwogfQogCiAvLyBGSVhNRTogTWFr
ZSBzdXJlIGl0ZW0gaXMgcmVsZWFzZWQgY29ycmVjdGx5IGluIGNhc2Ugb2YgZmFpbHVyZS4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRyYWdEYXRhLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRyYWdEYXRhLmNwcAppbmRleCBmYmY1ZGE3YmQz
Zjc0NGVhOGI4NDk4ZjJhMGE4MmQ0NWI0ZjdkZmE5Li5iNDllOTZiZDI0MTkxZjhhNDUxMzYyOGEz
YzQzYzk3NGRkZDhiOWM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJEcmFnRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRHJhZ0Rh
dGEuY3BwCkBAIC03Miw4ICs3Miw2IEBAIFdlYlZlY3RvcjxXZWJEcmFnRGF0YTo6SXRlbT4gV2Vi
RHJhZ0RhdGE6Oml0ZW1zKCkgY29uc3QKICAgICBWZWN0b3I8SXRlbT4gaXRlbUxpc3Q7CiAgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX3ByaXZhdGUtPml0ZW1zKCktPmxlbmd0aCgpOyArK2kp
IHsKICAgICAgICAgRGF0YVRyYW5zZmVySXRlbUNocm9taXVtKiBvcmlnaW5hbEl0ZW0gPSBtX3By
aXZhdGUtPml0ZW1zKCktPml0ZW0oaSkuZ2V0KCk7Ci0gICAgICAgIC8vIFdlIGRvbid0IGhhbmRs
ZSBmaWxlbmFtZXMgaGVyZSwgc2luY2UgdGhleSBhcmUgbmV2ZXIgdXNlZCBmb3IgZHJhZ2dpbmcg
b3V0LgotICAgICAgICBBU1NFUlQoIW9yaWdpbmFsSXRlbS0+aXNGaWxlbmFtZSgpKTsKICAgICAg
ICAgV2ViRHJhZ0RhdGE6Okl0ZW0gaXRlbTsKICAgICAgICAgaWYgKG9yaWdpbmFsSXRlbS0+a2lu
ZCgpID09IERhdGFUcmFuc2Zlckl0ZW06OmtpbmRTdHJpbmcpIHsKICAgICAgICAgICAgIGl0ZW0u
c3RvcmFnZVR5cGUgPSBJdGVtOjpTdG9yYWdlVHlwZVN0cmluZzsKQEAgLTgzLDEwICs4MSwxNCBA
QCBXZWJWZWN0b3I8V2ViRHJhZ0RhdGE6Okl0ZW0+IFdlYkRyYWdEYXRhOjppdGVtcygpIGNvbnN0
CiAgICAgICAgICAgICBpZiAob3JpZ2luYWxJdGVtLT5zaGFyZWRCdWZmZXIoKSkgewogICAgICAg
ICAgICAgICAgIGl0ZW0uc3RvcmFnZVR5cGUgPSBJdGVtOjpTdG9yYWdlVHlwZUJpbmFyeURhdGE7
CiAgICAgICAgICAgICAgICAgaXRlbS5iaW5hcnlEYXRhID0gb3JpZ2luYWxJdGVtLT5zaGFyZWRC
dWZmZXIoKTsKLSAgICAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBD
dXJyZW50bHkgd2Ugb25seSBoYW5kbGUgaW1hZ2UgZHJhZ291dHMgdXNpbmcgdGhlIGRlZmF1bHQg
ZHJhZyBoYW5kbGluZy4KLSAgICAgICAgICAgICAgICAvLyBJZiB3ZSB3YW50IHRvIHBsdW1iIERh
dGFUcmFuc2Zlckl0ZW1MaXN0OjphZGQoRmlsZSksIHdlJ2xsIG5lZWQgdG8gYWRkIGxvZ2ljLgot
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgICAgICBpdGVtLnN0b3JhZ2VUeXBlID0gSXRlbTo6U3RvcmFnZVR5cGVGaWxlbmFtZTsKKyAg
ICAgICAgICAgICAgICBSZWZQdHI8V2ViQ29yZTo6QmxvYj4gYmxvYiA9IG9yaWdpbmFsSXRlbS0+
Z2V0QXNGaWxlKCk7CisgICAgICAgICAgICAgICAgaWYgKGJsb2IgJiYgYmxvYi0+aXNGaWxlKCkp
IHsKKyAgICAgICAgICAgICAgICAgICAgRmlsZSogZmlsZSA9IHN0YXRpY19jYXN0PEZpbGUqPihi
bG9iLmdldCgpKTsKKyAgICAgICAgICAgICAgICAgICAgaXRlbS5maWxlbmFtZURhdGEgPSBmaWxl
LT5wYXRoKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQogICAgICAgICB9IGVs
c2UKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICBpdGVtLnRpdGxl
ID0gb3JpZ2luYWxJdGVtLT50aXRsZSgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133568</attachid>
            <date>2012-03-23 15:07:33 -0700</date>
            <delta_ts>2012-03-23 15:13:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-81261-20120323150732.patch</filename>
            <type>text/plain</type>
            <size>9752</size>
            <attacher name="Daniel Cheng">dcheng</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTExODk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWU1YWQ3ZWMwMTM4YjQ2
NDg2ZTY4ZmZkNmJhM2FhNTMwY2M3YzZiZC4uN2M0YzliYmZkOTZkZDk1MGJlMTIzM2NjNDdjYzEy
NWJmNmFkN2I2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTAzLTIzICBEYW5p
ZWwgQ2hlbmcgIDxkY2hlbmdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gU3Vw
cG9ydCBmaWxlIGRyYWcgb3V0IHVzaW5nIERhdGFUcmFuc2Zlckl0ZW1MaXN0OjphZGQoRmlsZSkK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgxMjYxCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgT3JpZ2luYWwg
cGF0Y2ggYnkgVmFydW4gSmFpbiA8dmFydW5qYWluQGNocm9taXVtLm9yZz4uCisgICAgICAgIEkn
dmUgdXBkYXRlZCB0aGUgb3JpZ2luYWwgcGF0Y2ggdG8gcmVtb3ZlICdkb3dubG9hZHVybCcgaGFu
ZGxpbmcgc2luY2UgaXQncyBub3QgdGVzdGVkLCBub3IKKyAgICAgICAgaXMgaXQgbmVjZXNzYXJ5
IGZvciBGaWxlIG9iamVjdHMsIHNpbmNlIEZpbGUgb2JqZWN0cyBjb3JyZXNwb25kIHRvIGEgbmF0
aXZlIGZpbGVzeXN0ZW0gcGF0aC4KKworICAgICAgICBUZXN0OiBmYXN0L2V2ZW50cy9kcmFnLWRh
dGFUcmFuc2Zlckl0ZW1MaXN0LWZpbGUtaGFuZGxpbmcuaHRtbAorCisgICAgICAgICogcGxhdGZv
cm0vY2hyb21pdW0vRGF0YVRyYW5zZmVySXRlbUxpc3RDaHJvbWl1bS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpEYXRhVHJhbnNmZXJJdGVtTGlzdENocm9taXVtOjphZGQpOgorCiAyMDEyLTAzLTIz
ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIERlYWwg
d2l0aCBET00gbW9kaWZpY2F0aW9ucyB3aGVuIGV2YWx1YXRpbmcgc291cmNlIGVsZW1lbnRzLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA5MjU2N2FjOTFmNzk3OGUxOWYyMGQyMWExMGZl
MzM4MmE5MWM5OWRjLi44N2YwZmIzZmZmNTBhM2M0MDAzNjU2ZWNhMzhmZGM1YTVmNWEyYjYwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTAzLTIzICBE
YW5pZWwgQ2hlbmcgIDxkY2hlbmdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0g
U3VwcG9ydCBmaWxlIGRyYWcgb3V0IHVzaW5nIERhdGFUcmFuc2Zlckl0ZW1MaXN0OjphZGQoRmls
ZSkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgxMjYx
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgT3JpZ2lu
YWwgcGF0Y2ggYnkgVmFydW4gSmFpbiA8dmFydW5qYWluQGNocm9taXVtLm9yZz4uCisgICAgICAg
IEkndmUgdXBkYXRlZCB0aGUgb3JpZ2luYWwgcGF0Y2ggdG8gYWRkIHNvbWUgYXNzZXJ0cyBmb3Ig
Y29uZGl0aW9ucyB3ZSBzaG91bGRuJ3QgZW5jb3VudGVyIGFzCisgICAgICAgIHdlbGwgYXMgcmVt
b3Zpbmcgc29tZSByZWR1bmRhbnQgbnVsbCBjaGVja3MuCisKKyAgICAgICAgKiBzcmMvV2ViRHJh
Z0RhdGEuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJEcmFnRGF0YTo6aXRlbXMpOgorCiAyMDEy
LTAzLTIzICBBZHJpZW5uZSBXYWxrZXIgIDxlbm5lQGdvb2dsZS5jb20+CiAKICAgICAgICAgW2No
cm9taXVtXSBGaXggc2Nyb2xsYmFyTGF5ZXJMb3N0Q29udGV4dCBmbGFreSB0ZXN0IGNyYXNoIG9u
IDEwLjYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RhdGFU
cmFuc2Zlckl0ZW1MaXN0Q2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hy
b21pdW0vRGF0YVRyYW5zZmVySXRlbUxpc3RDaHJvbWl1bS5jcHAKaW5kZXggN2JlZmI4MDU3NDJh
MDhjYTg4ZWU3OTUzYTFiZmQ2OTNiYWUyZmVjMy4uZGY3NjNkNzA0MTU5YWU4MTk0YTk1ZDMwODhl
MWY3NGMwMWQ1MzRhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21p
dW0vRGF0YVRyYW5zZmVySXRlbUxpc3RDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY2hyb21pdW0vRGF0YVRyYW5zZmVySXRlbUxpc3RDaHJvbWl1bS5jcHAKQEAgLTEw
NiwxOSArMTA2LDYgQEAgdm9pZCBEYXRhVHJhbnNmZXJJdGVtTGlzdENocm9taXVtOjphZGQoUGFz
c1JlZlB0cjxGaWxlPiBmaWxlLCBTY3JpcHRFeGVjdXRpb25Db24KICAgICAgICAgcmV0dXJuOwog
CiAgICAgbV9pdGVtTGlzdC5hcHBlbmQoRGF0YVRyYW5zZmVySXRlbUNocm9taXVtOjpjcmVhdGVG
cm9tRmlsZShmaWxlKSk7Ci0KLSAgICAvLyBGSVhNRTogQWxsb3cgbXVsdGlwbGUgZmlsZXMgdG8g
YmUgZHJhZ2dlZCBvdXQgYXQgb25jZSBpZiBtb3JlIHRoYW4gb25lIGZpbGUgaXMgYWRkZWQgdG8g
dGhlIHN0b3JhZ2UuCi0gICAgS1VSTCB1cmxGb3JEb3dubG9hZCA9IEJsb2JVUkw6OmNyZWF0ZVB1
YmxpY1VSTChjb250ZXh0LT5zZWN1cml0eU9yaWdpbigpKTsKLSAgICBUaHJlYWRhYmxlQmxvYlJl
Z2lzdHJ5OjpyZWdpc3RlckJsb2JVUkwodXJsRm9yRG93bmxvYWQsIGZpbGUtPnVybCgpKTsKLQot
ICAgIFN0cmluZ0J1aWxkZXIgZG93bmxvYWRVcmw7Ci0gICAgZG93bmxvYWRVcmwuYXBwZW5kKGZp
bGUtPnR5cGUoKSk7Ci0gICAgZG93bmxvYWRVcmwuYXBwZW5kKCI6Iik7Ci0gICAgZG93bmxvYWRV
cmwuYXBwZW5kKGVuY29kZVdpdGhVUkxFc2NhcGVTZXF1ZW5jZXMoZmlsZS0+bmFtZSgpKSk7Ci0g
ICAgZG93bmxvYWRVcmwuYXBwZW5kKCI6Iik7Ci0gICAgZG93bmxvYWRVcmwuYXBwZW5kKHVybEZv
ckRvd25sb2FkLnN0cmluZygpKTsKLQotICAgIGludGVybmFsQWRkU3RyaW5nSXRlbShEYXRhVHJh
bnNmZXJJdGVtQ2hyb21pdW06OmNyZWF0ZUZyb21TdHJpbmcobWltZVR5cGVEb3dubG9hZFVSTCwg
ZG93bmxvYWRVcmwudG9TdHJpbmcoKSkpOwogfQogCiAvLyBGSVhNRTogTWFrZSBzdXJlIGl0ZW0g
aXMgcmVsZWFzZWQgY29ycmVjdGx5IGluIGNhc2Ugb2YgZmFpbHVyZS4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRyYWdEYXRhLmNwcCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYkRyYWdEYXRhLmNwcAppbmRleCBmYmY1ZGE3YmQzZjc0NGVhOGI4NDk4
ZjJhMGE4MmQ0NWI0ZjdkZmE5Li5kYmVmOTVhMGNlZmRjNjY4NmE0MzkxZWUxYzE1OTdiNjA5NTEy
ZmI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEcmFnRGF0YS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRHJhZ0RhdGEuY3BwCkBAIC03
Miw4ICs3Miw2IEBAIFdlYlZlY3RvcjxXZWJEcmFnRGF0YTo6SXRlbT4gV2ViRHJhZ0RhdGE6Oml0
ZW1zKCkgY29uc3QKICAgICBWZWN0b3I8SXRlbT4gaXRlbUxpc3Q7CiAgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBtX3ByaXZhdGUtPml0ZW1zKCktPmxlbmd0aCgpOyArK2kpIHsKICAgICAgICAg
RGF0YVRyYW5zZmVySXRlbUNocm9taXVtKiBvcmlnaW5hbEl0ZW0gPSBtX3ByaXZhdGUtPml0ZW1z
KCktPml0ZW0oaSkuZ2V0KCk7Ci0gICAgICAgIC8vIFdlIGRvbid0IGhhbmRsZSBmaWxlbmFtZXMg
aGVyZSwgc2luY2UgdGhleSBhcmUgbmV2ZXIgdXNlZCBmb3IgZHJhZ2dpbmcgb3V0LgotICAgICAg
ICBBU1NFUlQoIW9yaWdpbmFsSXRlbS0+aXNGaWxlbmFtZSgpKTsKICAgICAgICAgV2ViRHJhZ0Rh
dGE6Okl0ZW0gaXRlbTsKICAgICAgICAgaWYgKG9yaWdpbmFsSXRlbS0+a2luZCgpID09IERhdGFU
cmFuc2Zlckl0ZW06OmtpbmRTdHJpbmcpIHsKICAgICAgICAgICAgIGl0ZW0uc3RvcmFnZVR5cGUg
PSBJdGVtOjpTdG9yYWdlVHlwZVN0cmluZzsKQEAgLTgzLDEwICs4MSwxNiBAQCBXZWJWZWN0b3I8
V2ViRHJhZ0RhdGE6Okl0ZW0+IFdlYkRyYWdEYXRhOjppdGVtcygpIGNvbnN0CiAgICAgICAgICAg
ICBpZiAob3JpZ2luYWxJdGVtLT5zaGFyZWRCdWZmZXIoKSkgewogICAgICAgICAgICAgICAgIGl0
ZW0uc3RvcmFnZVR5cGUgPSBJdGVtOjpTdG9yYWdlVHlwZUJpbmFyeURhdGE7CiAgICAgICAgICAg
ICAgICAgaXRlbS5iaW5hcnlEYXRhID0gb3JpZ2luYWxJdGVtLT5zaGFyZWRCdWZmZXIoKTsKKyAg
ICAgICAgICAgIH0gZWxzZSBpZiAob3JpZ2luYWxJdGVtLT5pc0ZpbGVuYW1lKCkpIHsKKyAgICAg
ICAgICAgICAgICBpdGVtLnN0b3JhZ2VUeXBlID0gSXRlbTo6U3RvcmFnZVR5cGVGaWxlbmFtZTsK
KyAgICAgICAgICAgICAgICBSZWZQdHI8V2ViQ29yZTo6QmxvYj4gYmxvYiA9IG9yaWdpbmFsSXRl
bS0+Z2V0QXNGaWxlKCk7CisgICAgICAgICAgICAgICAgaWYgKGJsb2ItPmlzRmlsZSgpKSB7Cisg
ICAgICAgICAgICAgICAgICAgIEZpbGUqIGZpbGUgPSBzdGF0aWNfY2FzdDxGaWxlKj4oYmxvYi5n
ZXQoKSk7CisgICAgICAgICAgICAgICAgICAgIGl0ZW0uZmlsZW5hbWVEYXRhID0gZmlsZS0+cGF0
aCgpOworICAgICAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKICAgICAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgICAgIC8vIEZJ
WE1FOiBDdXJyZW50bHkgd2Ugb25seSBoYW5kbGUgaW1hZ2UgZHJhZ291dHMgdXNpbmcgdGhlIGRl
ZmF1bHQgZHJhZyBoYW5kbGluZy4KLSAgICAgICAgICAgICAgICAvLyBJZiB3ZSB3YW50IHRvIHBs
dW1iIERhdGFUcmFuc2Zlckl0ZW1MaXN0OjphZGQoRmlsZSksIHdlJ2xsIG5lZWQgdG8gYWRkIGxv
Z2ljLgotICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwogICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogICAgICAgICBpdGVtLnRpdGxlID0gb3JpZ2luYWxJdGVtLT50aXRsZSgpOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IDc3MTU1MjYyZmQwMWRiYWNkYzVhYzQ2ZTUxMzkxN2JmNWViMDg5NTQuLjdmNDUyOTI0YWVh
YmRmMGRhNWQ1NDM2MTc4MjYwYmU1N2I1NWMyNTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAx
Mi0wMy0yMyAgRGFuaWVsIENoZW5nICA8ZGNoZW5nQGNocm9taXVtLm9yZz4KKworICAgICAgICBb
Y2hyb21pdW1dIFN1cHBvcnQgZmlsZSBkcmFnIG91dCB1c2luZyBEYXRhVHJhbnNmZXJJdGVtTGlz
dDo6YWRkKEZpbGUpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD04MTI2MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogZmFzdC9ldmVudHMvZHJhZy1kYXRhVHJhbnNmZXJJdGVtTGlzdC1maWxlLWhhbmRsaW5n
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvZHJhZy1kYXRhVHJh
bnNmZXJJdGVtTGlzdC1maWxlLWhhbmRsaW5nLmh0bWw6IEFkZGVkLgorCiAyMDEyLTAzLTIzICBF
cmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIERlYWwgd2l0
aCBET00gbW9kaWZpY2F0aW9ucyB3aGVuIGV2YWx1YXRpbmcgc291cmNlIGVsZW1lbnRzLgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvZHJhZy1kYXRhVHJhbnNmZXJJdGVtTGlz
dC1maWxlLWhhbmRsaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2Ry
YWctZGF0YVRyYW5zZmVySXRlbUxpc3QtZmlsZS1oYW5kbGluZy1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMDcyMGE5NzIxOWIwNzYzYzBlMzAxODUzNjdmNzE3ZjU4ZmUwYjY1MQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2RyYWctZGF0YVRyYW5zZmVySXRlbUxp
c3QtZmlsZS1oYW5kbGluZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4IEBACitUbyBtYW51YWxs
eSB0ZXN0LCBzZWxlY3QgYSB0ZXh0IGZpbGUgZm9yIHRoZSBmaWxlIGlucHV0IGVsZW1lbnQsIGFu
ZCB0aGVuIGRyYWcgJ0RyYWcgTWUnIHRvICdEcm9wIEhlcmUnIGFuZCBkcm9wLiBTZXZlcmFsIGxp
bmVzIHRoYXQgc2F5ICdQQVNTJyBzaG91bGQgYXBwZWFyIGJlbG93LiAKKworRHJhZyBNZQorRHJv
cCBIZXJlCitQQVNTOiAxID09PSAxCitQQVNTOiBmaWxlID09PSBmaWxlCitQQVNTOiB0ZXh0L3Bs
YWluID09PSB0ZXh0L3BsYWluCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L2RyYWctZGF0YVRyYW5zZmVySXRlbUxpc3QtZmlsZS1oYW5kbGluZy5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvZHJhZy1kYXRhVHJhbnNmZXJJdGVtTGlzdC1maWxlLWhhbmRsaW5nLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNDhmZmI2YjUwYzBjNTIxNGUwNGRhOTgwMGJjOWU2N2JjNzUyMjMwMgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2RyYWctZGF0YVRyYW5z
ZmVySXRlbUxpc3QtZmlsZS1oYW5kbGluZy5odG1sCkBAIC0wLDAgKzEsOTYgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKyNkcmFnIHsKKyAgICBib3JkZXI6IDFw
eCBzb2xpZCBibGFjazsKKyAgICBoZWlnaHQ6IDIwMHB4OworICAgIHdpZHRoOiAyMDBweDsKK30K
KyNkcm9wIHsKKyAgICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsKKyAgICBoZWlnaHQ6IDIwMHB4
OworICAgIHdpZHRoOiAyMDBweDsKK30KKzwvc3R5bGU+Cis8c2NyaXB0PgorZnVuY3Rpb24gYXNz
ZXJ0RXEobGVmdCwgcmlnaHQpCit7CisgICAgaWYgKGxlZnQgPT09IHJpZ2h0KQorICAgICAgICBs
b2coJ1BBU1M6ICcgKyBsZWZ0ICsgIiA9PT0gIiArIHJpZ2h0KTsKKyAgICBlbHNlCisgICAgICAg
IGxvZygnRkFJTDogJyArIGxlZnQgKyAiIChvZiB0eXBlICIgKyAodHlwZW9mIGxlZnQpICsgIikg
IT09ICIgKyByaWdodCArICIgKG9mIHR5cGUgIiArICh0eXBlb2YgcmlnaHQpICsgIikiKTsKK30K
K2Z1bmN0aW9uIGxvZyhzdHIpCit7CisgICAgdmFyIHJlc3VsdCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdyZXN1bHQnKTsKKyAgICByZXN1bHQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRl
VGV4dE5vZGUoc3RyKSk7CisgICAgcmVzdWx0LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ2JyJykpOworfQorCit2YXIgdGVzdEZpbGU7CitmdW5jdGlvbiBkcmFnc3RhcnQoZXZl
bnQpCit7CisgICAgZXZlbnQuZGF0YVRyYW5zZmVyLml0ZW1zLmFkZCh0ZXN0RmlsZSk7Cit9CisK
K2Z1bmN0aW9uIGRyYWdlbnRlcihldmVudCkKK3sKKyAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgp
OworfQorCitmdW5jdGlvbiBkcmFnb3ZlcihldmVudCkKK3sKKyAgICBldmVudC5wcmV2ZW50RGVm
YXVsdCgpOworfQorCitmdW5jdGlvbiBkcm9wKGV2ZW50KQoreworICAgIGFzc2VydEVxKDEsIGV2
ZW50LmRhdGFUcmFuc2Zlci5pdGVtcy5sZW5ndGgpOworICAgIGFzc2VydEVxKCdmaWxlJywgZXZl
bnQuZGF0YVRyYW5zZmVyLml0ZW1zWzBdLmtpbmQpOworICAgIGFzc2VydEVxKCd0ZXh0L3BsYWlu
JywgZXZlbnQuZGF0YVRyYW5zZmVyLml0ZW1zWzBdLnR5cGUpOworICAgIGxheW91dFRlc3RDb250
cm9sbGVyLm5vdGlmeURvbmUoKTsKK30KKworZnVuY3Rpb24gcnVuVGVzdCgpCit7CisgICAgLy8g
Rmlyc3QsIHdlIG5lZWQgdG8gZ2VuZXJhdGUgYSBGaWxlIG9iamVjdCB0byB1c2UgZm9yIG91ciB0
ZXN0cy4KKyAgICBldmVudFNlbmRlci5iZWdpbkRyYWdXaXRoRmlsZXMoWyd0ZXN0LnR4dCddKTsK
KyAgICB2YXIgaW5wdXRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2lu
cHV0JylbMF07CisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oaW5wdXRFbGVtZW50Lm9mZnNl
dExlZnQgKyBpbnB1dEVsZW1lbnQub2Zmc2V0V2lkdGggLyAyLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGlucHV0RWxlbWVudC5vZmZzZXRUb3AgKyBpbnB1dEVsZW1lbnQub2Zmc2V0SGVp
Z2h0IC8gMik7CisgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworICAgIHRlc3RGaWxlID0gaW5w
dXRFbGVtZW50LmZpbGVzWzBdOworCisgICAgLy8gTm93IHJ1biB0aGUgYWN0dWFsIHRlc3QuCisg
ICAgdmFyIGRyYWdFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RyYWcnKTsKKyAg
ICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhkcmFnRWxlbWVudC5vZmZzZXRMZWZ0ICsgZHJhZ0Vs
ZW1lbnQub2Zmc2V0V2lkdGggLyAyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRyYWdF
bGVtZW50Lm9mZnNldFRvcCArIGRyYWdFbGVtZW50Lm9mZnNldEhlaWdodCAvIDIpOworICAgIGV2
ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgIGV2ZW50U2VuZGVyLmxlYXBGb3J3YXJkKDEwMCk7
CisgICAgdmFyIGRyb3BFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Ryb3AnKTsK
KyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhkcm9wRWxlbWVudC5vZmZzZXRMZWZ0ICsgZHJv
cEVsZW1lbnQub2Zmc2V0V2lkdGggLyAyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRy
b3BFbGVtZW50Lm9mZnNldFRvcCArIGRyb3BFbGVtZW50Lm9mZnNldEhlaWdodCAvIDIpOworICAg
IGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKK30KKword2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkK
K3sKKyAgICBpZiAoIXdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgcmV0dXJu
OworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisKKyAgICBydW5UZXN0KCk7Cit9Cis8L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VG8gbWFudWFsbHkgdGVzdCwgc2VsZWN0IGEgdGV4dCBm
aWxlIGZvciB0aGUgZmlsZSBpbnB1dCBlbGVtZW50LCBhbmQgdGhlbiBkcmFnICdEcmFnIE1lJyB0
byAnRHJvcCBIZXJlJyBhbmQgZHJvcC4gIFNldmVyYWwgbGluZXMgdGhhdCBzYXkgJ1BBU1MnIHNo
b3VsZCBhcHBlYXIgYmVsb3cuCis8aW5wdXQgdHlwZT0iZmlsZSI+PC9pbnB1dD4KKzxkaXYgZHJh
Z2dhYmxlPSJ0cnVlIiBpZD0iZHJhZyIgb25kcmFnc3RhcnQ9ImRyYWdzdGFydChldmVudCkiPkRy
YWcgTWU8L2Rpdj4KKzxkaXYgaWQ9ImRyb3AiIG9uZHJhZ2VudGVyPSJkcmFnZW50ZXIoZXZlbnQp
IiBvbmRyYWdvdmVyPSJkcmFnb3ZlcihldmVudCkiIG9uZHJvcD0iZHJvcChldmVudCkiPkRyb3Ag
SGVyZTwvZGl2PgorPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9ib2R5PgorPC9o
dG1sPgo=
</data>
<flag name="review"
          id="137598"
          type_id="1"
          status="+"
          setter="tony"
    />
          </attachment>
      

    </bug>

</bugzilla>