<?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>198985</bug_id>
          
          <creation_ts>2019-06-18 17:05:03 -0700</creation_ts>
          <short_desc>[WHLSL] Hook up RWTextures</short_desc>
          <delta_ts>2020-05-05 00:42:38 -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>WebGPU</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</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>195813</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Myles C. Maxfield">mmaxfield</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1545897</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2019-06-18 17:05:03 -0700</bug_when>
    <thetext>Hooking them up is tricky because writable textures don&apos;t have either default constructors or copy assignment operators in High Sierra. Therefore, we can probably model RWTextures under the &quot;logical mode&quot; restrictions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1545909</commentid>
    <comment_count>1</comment_count>
      <attachid>372411</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2019-06-18 17:33:05 -0700</bug_when>
    <thetext>Created attachment 372411
Test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1546619</commentid>
    <comment_count>2</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2019-06-20 12:49:07 -0700</bug_when>
    <thetext>Turns out writable textures aren’t supported in argument buffers. https://developer.apple.com/documentation/metal/buffers/about_argument_buffers?language=objc

We probably need a hybrid approach where some resources are put in argument buffers and some are attached directly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1547562</commentid>
    <comment_count>3</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2019-06-24 15:14:32 -0700</bug_when>
    <thetext>Also, MSL doesn&apos;t support putting RWTextures in tier 1 hardware, meaning we&apos;ll have to demote them to regular arguments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649059</commentid>
    <comment_count>4</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2020-05-05 00:42:38 -0700</bug_when>
    <thetext>WHLSL is no longer relevant.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>372411</attachid>
            <date>2019-06-18 17:33:05 -0700</date>
            <delta_ts>2019-06-18 17:33:05 -0700</delta_ts>
            <desc>Test</desc>
            <filename>whlsl-textures-store.html</filename>
            <type>text/html</type>
            <size>6953</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8aGVhZD4KPC9oZWFkPgo8Ym9keT4KPGNhbnZhcyBpZD0i
Y2FudmFzIiB3aWR0aD0iNDAwIiBoZWlnaHQ9IjQwMCI+PC9jYW52YXM+CjxzY3JpcHQ+CmNvbnN0
IHNoYWRlclNvdXJjZSA9IGAKW251bXRocmVhZHMoMSwgMSwgMSldCmNvbXB1dGUgdm9pZCBjb21w
dXRlU2hhZGVyKFJXVGV4dHVyZTJEPGZsb2F0ND4gdGhlVGV4dHVyZSA6IHJlZ2lzdGVyKHQwKSkg
ewogICAgU3RvcmUodGhlVGV4dHVyZSwgZmxvYXQ0KDEuMCwgMS4wLCAxLjAsIDEuMCksIHVpbnQy
KDAsIDApKTsKfQp2ZXJ0ZXggZmxvYXQ0IHZlcnRleFNoYWRlcihmbG9hdDQgcG9zaXRpb24gOiBh
dHRyaWJ1dGUoMCkpIDogU1ZfUG9zaXRpb24gewogICAgcmV0dXJuIHBvc2l0aW9uOwp9CgpmcmFn
bWVudCBmbG9hdDQgZnJhZ21lbnRTaGFkZXIoUldUZXh0dXJlMkQ8ZmxvYXQ0PiB0aGVUZXh0dXJl
IDogcmVnaXN0ZXIodDApKSA6IFNWX1RhcmdldCAwIHsKICAgIHJldHVybiBMb2FkKHRoZVRleHR1
cmUsIGludDIoMCwgMCkpOwp9CmA7CmxldCByZXN1bHRzVWludDhBcnJheTsKYXN5bmMgZnVuY3Rp
b24gc3RhcnQoKSB7CiAgICBjb25zdCBhZGFwdGVyID0gYXdhaXQgbmF2aWdhdG9yLmdwdS5yZXF1
ZXN0QWRhcHRlcigpOwogICAgY29uc3QgZGV2aWNlID0gYXdhaXQgYWRhcHRlci5yZXF1ZXN0RGV2
aWNlKCk7CgogICAgY29uc3Qgc2hhZGVyTW9kdWxlID0gZGV2aWNlLmNyZWF0ZVNoYWRlck1vZHVs
ZSh7Y29kZTogc2hhZGVyU291cmNlLCBpc1dITFNMOiB0cnVlfSk7CiAgICBjb25zdCBjb21wdXRl
U3RhZ2UgPSB7bW9kdWxlOiBzaGFkZXJNb2R1bGUsIGVudHJ5UG9pbnQ6ICJjb21wdXRlU2hhZGVy
In07CiAgICBjb25zdCB2ZXJ0ZXhTdGFnZSA9IHttb2R1bGU6IHNoYWRlck1vZHVsZSwgZW50cnlQ
b2ludDogInZlcnRleFNoYWRlciJ9OwogICAgY29uc3QgZnJhZ21lbnRTdGFnZSA9IHttb2R1bGU6
IHNoYWRlck1vZHVsZSwgZW50cnlQb2ludDogImZyYWdtZW50U2hhZGVyIn07CiAgICAKICAgIGNv
bnN0IGF0dHJpYnV0ZSA9IHtzaGFkZXJMb2NhdGlvbjogMCwgZm9ybWF0OiAiZmxvYXQ0In07CiAg
ICBjb25zdCBpbnB1dCA9IHtzdHJpZGU6IDE2LCBhdHRyaWJ1dGVTZXQ6IFthdHRyaWJ1dGVdfTsK
ICAgIGNvbnN0IHZlcnRleElucHV0ID0ge3ZlcnRleEJ1ZmZlcnM6IFtpbnB1dF19OwoKICAgIGNv
bnN0IGJpbmRHcm91cExheW91dERlc2NyaXB0b3IgPSB7YmluZGluZ3M6IFt7YmluZGluZzogMCwg
dmlzaWJpbGl0eTogNywgdHlwZTogInNhbXBsZWQtdGV4dHVyZSJ9XX07CiAgICBjb25zdCBiaW5k
R3JvdXBMYXlvdXQgPSBkZXZpY2UuY3JlYXRlQmluZEdyb3VwTGF5b3V0KGJpbmRHcm91cExheW91
dERlc2NyaXB0b3IpOwogICAgY29uc3QgcGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yID0ge2JpbmRH
cm91cExheW91dHM6IFtiaW5kR3JvdXBMYXlvdXRdfTsKICAgIGNvbnN0IHBpcGVsaW5lTGF5b3V0
ID0gZGV2aWNlLmNyZWF0ZVBpcGVsaW5lTGF5b3V0KHBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvcik7
CgogICAgY29uc3QgY29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvciA9IHtjb21wdXRlU3RhZ2UsIGxh
eW91dDogcGlwZWxpbmVMYXlvdXR9OwogICAgY29uc3QgY29tcHV0ZVBpcGVsaW5lID0gZGV2aWNl
LmNyZWF0ZUNvbXB1dGVQaXBlbGluZShjb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yKTsKCiAgICBj
b25zdCBwcmltaXRpdmVUb3BvbG9neSA9ICJ0cmlhbmdsZS1zdHJpcCI7CiAgICBjb25zdCByYXN0
ZXJpemF0aW9uU3RhdGUgPSB7ZnJvbnRGYWNlOiAiY3ciLCBjdWxsTW9kZTogIm5vbmUifTsKICAg
IGNvbnN0IGFscGhhQmxlbmQgPSB7fTsKICAgIGNvbnN0IGNvbG9yQmxlbmQgPSB7fTsKICAgIGNv
bnN0IGNvbG9yU3RhdGVzID0gW3tmb3JtYXQ6ICJyZ2JhOHVub3JtIiwgYWxwaGFCbGVuZCwgY29s
b3JCbGVuZCwgd3JpdGVNYXNrOiAxNX1dOyAvLyBHUFVDb2xvcldyaXRlQml0cy5BTEwKICAgIGNv
bnN0IGRlcHRoU3RlbmNpbFN0YXRlID0gbnVsbDsKICAgIGNvbnN0IHJlbmRlclBpcGVsaW5lRGVz
Y3JpcHRvciA9IHt2ZXJ0ZXhTdGFnZSwgZnJhZ21lbnRTdGFnZSwgcHJpbWl0aXZlVG9wb2xvZ3ks
IHJhc3Rlcml6YXRpb25TdGF0ZSwgY29sb3JTdGF0ZXMsIGRlcHRoU3RlbmNpbFN0YXRlLCB2ZXJ0
ZXhJbnB1dCwgc2FtcGxlQ291bnQ6IDEsIGxheW91dDogcGlwZWxpbmVMYXlvdXR9OwogICAgY29u
c3QgcmVuZGVyUGlwZWxpbmUgPSBkZXZpY2UuY3JlYXRlUmVuZGVyUGlwZWxpbmUocmVuZGVyUGlw
ZWxpbmVEZXNjcmlwdG9yKTsKCiAgICBjb25zdCB2ZXJ0ZXhCdWZmZXJEZXNjcmlwdG9yID0ge3Np
emU6IEZsb2F0MzJBcnJheS5CWVRFU19QRVJfRUxFTUVOVCAqIDQgKiA0LCB1c2FnZTogR1BVQnVm
ZmVyVXNhZ2UuVkVSVEVYIHwgR1BVQnVmZmVyVXNhZ2UuTUFQX1dSSVRFfTsKICAgIGNvbnN0IHZl
cnRleEJ1ZmZlciA9IGRldmljZS5jcmVhdGVCdWZmZXIodmVydGV4QnVmZmVyRGVzY3JpcHRvcik7
CiAgICBjb25zdCB2ZXJ0ZXhCdWZmZXJBcnJheUJ1ZmZlciA9IGF3YWl0IHZlcnRleEJ1ZmZlci5t
YXBXcml0ZUFzeW5jKCk7CiAgICBjb25zdCB2ZXJ0ZXhCdWZmZXJGbG9hdDMyQXJyYXkgPSBuZXcg
RmxvYXQzMkFycmF5KHZlcnRleEJ1ZmZlckFycmF5QnVmZmVyKTsKICAgIHZlcnRleEJ1ZmZlckZs
b2F0MzJBcnJheVswXSA9IC0wLjU7CiAgICB2ZXJ0ZXhCdWZmZXJGbG9hdDMyQXJyYXlbMV0gPSAt
MC41OwogICAgdmVydGV4QnVmZmVyRmxvYXQzMkFycmF5WzJdID0gMS4wOwogICAgdmVydGV4QnVm
ZmVyRmxvYXQzMkFycmF5WzNdID0gMTsKICAgIHZlcnRleEJ1ZmZlckZsb2F0MzJBcnJheVs0XSA9
IC0wLjU7CiAgICB2ZXJ0ZXhCdWZmZXJGbG9hdDMyQXJyYXlbNV0gPSAwLjU7CiAgICB2ZXJ0ZXhC
dWZmZXJGbG9hdDMyQXJyYXlbNl0gPSAxLjA7CiAgICB2ZXJ0ZXhCdWZmZXJGbG9hdDMyQXJyYXlb
N10gPSAxOwogICAgdmVydGV4QnVmZmVyRmxvYXQzMkFycmF5WzhdID0gMC41OwogICAgdmVydGV4
QnVmZmVyRmxvYXQzMkFycmF5WzldID0gLTAuNTsKICAgIHZlcnRleEJ1ZmZlckZsb2F0MzJBcnJh
eVsxMF0gPSAxLjA7CiAgICB2ZXJ0ZXhCdWZmZXJGbG9hdDMyQXJyYXlbMTFdID0gMTsKICAgIHZl
cnRleEJ1ZmZlckZsb2F0MzJBcnJheVsxMl0gPSAwLjU7CiAgICB2ZXJ0ZXhCdWZmZXJGbG9hdDMy
QXJyYXlbMTNdID0gMC41OwogICAgdmVydGV4QnVmZmVyRmxvYXQzMkFycmF5WzE0XSA9IDEuMDsK
ICAgIHZlcnRleEJ1ZmZlckZsb2F0MzJBcnJheVsxNV0gPSAxOwogICAgdmVydGV4QnVmZmVyLnVu
bWFwKCk7CgogICAgY29uc3QgdGV4dHVyZURhdGFCdWZmZXJEZXNjcmlwdG9yID0ge3NpemU6IFVp
bnQ4QXJyYXkuQllURVNfUEVSX0VMRU1FTlQgKiA0ICogMiAqIDIsIHVzYWdlOiBHUFVCdWZmZXJV
c2FnZS5UUkFOU0ZFUl9TUkMgfCBHUFVCdWZmZXJVc2FnZS5NQVBfV1JJVEV9OwogICAgY29uc3Qg
dGV4dHVyZURhdGFCdWZmZXIgPSBkZXZpY2UuY3JlYXRlQnVmZmVyKHRleHR1cmVEYXRhQnVmZmVy
RGVzY3JpcHRvcik7CiAgICBjb25zdCB0ZXh0dXJlRGF0YUJ1ZmZlckFycmF5QnVmZmVyID0gYXdh
aXQgdGV4dHVyZURhdGFCdWZmZXIubWFwV3JpdGVBc3luYygpOwogICAgY29uc3QgdGV4dHVyZURh
dGFCdWZmZXJVaW50OEFycmF5ID0gbmV3IFVpbnQ4QXJyYXkodGV4dHVyZURhdGFCdWZmZXJBcnJh
eUJ1ZmZlcik7CiAgICB0ZXh0dXJlRGF0YUJ1ZmZlclVpbnQ4QXJyYXlbMF0gPSAwOwogICAgdGV4
dHVyZURhdGFCdWZmZXJVaW50OEFycmF5WzFdID0gMDsKICAgIHRleHR1cmVEYXRhQnVmZmVyVWlu
dDhBcnJheVsyXSA9IDA7CiAgICB0ZXh0dXJlRGF0YUJ1ZmZlclVpbnQ4QXJyYXlbM10gPSAwOwog
ICAgdGV4dHVyZURhdGFCdWZmZXJVaW50OEFycmF5WzRdID0gMDsKICAgIHRleHR1cmVEYXRhQnVm
ZmVyVWludDhBcnJheVs1XSA9IDA7CiAgICB0ZXh0dXJlRGF0YUJ1ZmZlclVpbnQ4QXJyYXlbNl0g
PSAwOwogICAgdGV4dHVyZURhdGFCdWZmZXJVaW50OEFycmF5WzddID0gMDsKICAgIHRleHR1cmVE
YXRhQnVmZmVyVWludDhBcnJheVs4XSA9IDA7CiAgICB0ZXh0dXJlRGF0YUJ1ZmZlclVpbnQ4QXJy
YXlbOV0gPSAwOwogICAgdGV4dHVyZURhdGFCdWZmZXJVaW50OEFycmF5WzEwXSA9IDA7CiAgICB0
ZXh0dXJlRGF0YUJ1ZmZlclVpbnQ4QXJyYXlbMTFdID0gMDsKICAgIHRleHR1cmVEYXRhQnVmZmVy
VWludDhBcnJheVsxMl0gPSAwOwogICAgdGV4dHVyZURhdGFCdWZmZXJVaW50OEFycmF5WzEzXSA9
IDA7CiAgICB0ZXh0dXJlRGF0YUJ1ZmZlclVpbnQ4QXJyYXlbMTRdID0gMDsKICAgIHRleHR1cmVE
YXRhQnVmZmVyVWludDhBcnJheVsxNV0gPSAwOwogICAgdGV4dHVyZURhdGFCdWZmZXIudW5tYXAo
KTsKCiAgICBjb25zdCB0ZXh0dXJlRGVzY3JpcHRvciA9IHtzaXplOiB7d2lkdGg6IDIsIGhlaWdo
dDogMiwgZGVwdGg6IDF9LCBmb3JtYXQ6ICJyZ2JhOHVub3JtIiwgdXNhZ2U6IEdQVVRleHR1cmVV
c2FnZS5TVE9SQUdFIHwgR1BVVGV4dHVyZVVzYWdlLlRSQU5TRkVSX0RTVH07CiAgICBjb25zdCB0
ZXh0dXJlID0gZGV2aWNlLmNyZWF0ZVRleHR1cmUodGV4dHVyZURlc2NyaXB0b3IpOwogICAgY29u
c3QgdGV4dHVyZVZpZXcgPSB0ZXh0dXJlLmNyZWF0ZURlZmF1bHRWaWV3KCk7CgogICAgY29uc3Qg
YmluZEdyb3VwQmluZGluZyA9IHtiaW5kaW5nOiAwLCByZXNvdXJjZTogdGV4dHVyZVZpZXd9Owog
ICAgY29uc3QgYmluZEdyb3VwRGVzY3JpcHRvciA9IHtsYXlvdXQ6IGJpbmRHcm91cExheW91dCwg
YmluZGluZ3M6IFtiaW5kR3JvdXBCaW5kaW5nXX07CiAgICBjb25zdCBiaW5kR3JvdXAgPSBkZXZp
Y2UuY3JlYXRlQmluZEdyb3VwKGJpbmRHcm91cERlc2NyaXB0b3IpOwoKICAgIGNvbnN0IGNhbnZh
cyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYW52YXMiKTsKICAgIGNvbnN0IGNvbnRleHQg
PSBjYW52YXMuZ2V0Q29udGV4dCgiZ3B1Iik7CiAgICBjb25zdCBzd2FwQ2hhaW5EZXNjcmlwdG9y
ID0ge2RldmljZSwgZm9ybWF0OiAiYmdyYTh1bm9ybSJ9OwogICAgY29uc3Qgc3dhcENoYWluID0g
Y29udGV4dC5jb25maWd1cmVTd2FwQ2hhaW4oc3dhcENoYWluRGVzY3JpcHRvcik7CiAgICBjb25z
dCBvdXRwdXRUZXh0dXJlID0gc3dhcENoYWluLmdldEN1cnJlbnRUZXh0dXJlKCk7CiAgICBjb25z
dCBvdXRwdXRUZXh0dXJlVmlldyA9IG91dHB1dFRleHR1cmUuY3JlYXRlRGVmYXVsdFZpZXcoKTsK
CiAgICBjb25zdCBidWZmZXJDb3B5VmlldyA9IHtidWZmZXI6IHRleHR1cmVEYXRhQnVmZmVyLCBy
b3dQaXRjaDogVWludDhBcnJheS5CWVRFU19QRVJfRUxFTUVOVCAqIDQgKiAyLCBpbWFnZUhlaWdo
dDogVWludDhBcnJheS5CWVRFU19QRVJfRUxFTUVOVCAqIDQgKiAyICogMn07CiAgICBjb25zdCB0
ZXh0dXJlQ29weVZpZXcgPSB7dGV4dHVyZX07CiAgICBjb25zdCBjb3B5U2l6ZSA9IHt3aWR0aDog
MiwgaGVpZ2h0OiAyLCBkZXB0aDogMX07CgogICAgY29uc3QgY29tbWFuZEVuY29kZXIgPSBkZXZp
Y2UuY3JlYXRlQ29tbWFuZEVuY29kZXIoKTsgLy8ge30KICAgIGNvbW1hbmRFbmNvZGVyLmNvcHlC
dWZmZXJUb1RleHR1cmUoYnVmZmVyQ29weVZpZXcsIHRleHR1cmVDb3B5VmlldywgY29weVNpemUp
OwogICAgY29uc3QgY29tcHV0ZVBhc3NFbmNvZGVyID0gY29tbWFuZEVuY29kZXIuYmVnaW5Db21w
dXRlUGFzcygpOwogICAgY29tcHV0ZVBhc3NFbmNvZGVyLnNldFBpcGVsaW5lKGNvbXB1dGVQaXBl
bGluZSk7CiAgICBjb21wdXRlUGFzc0VuY29kZXIuc2V0QmluZEdyb3VwKDAsIGJpbmRHcm91cCk7
CiAgICBjb21wdXRlUGFzc0VuY29kZXIuZGlzcGF0Y2goMSwgMSwgMSk7CiAgICBjb21wdXRlUGFz
c0VuY29kZXIuZW5kUGFzcygpOwogICAgY29uc3QgcmVkID0ge3I6IDAsIGc6IDAsIGI6IDEsIGE6
IDF9OwogICAgY29uc3QgY29sb3JBdHRhY2htZW50cyA9IFt7YXR0YWNobWVudDogb3V0cHV0VGV4
dHVyZVZpZXcsIHJlc29sdmVUYXJnZXQ6IG51bGwsIGxvYWRPcDogImNsZWFyIiwgc3RvcmVPcDog
InN0b3JlIiwgY2xlYXJDb2xvcjogcmVkfV07CiAgICBjb25zdCBkZXB0aFN0ZW5jaWxBdHRhY2ht
ZW50ID0gbnVsbDsKICAgIGNvbnN0IHJlbmRlclBhc3NEZXNjcmlwdG9yID0ge2NvbG9yQXR0YWNo
bWVudHMsIGRlcHRoU3RlbmNpbEF0dGFjaG1lbnR9OwogICAgY29uc3QgcmVuZGVyUGFzc0VuY29k
ZXIgPSBjb21tYW5kRW5jb2Rlci5iZWdpblJlbmRlclBhc3MocmVuZGVyUGFzc0Rlc2NyaXB0b3Ip
OwogICAgcmVuZGVyUGFzc0VuY29kZXIuc2V0UGlwZWxpbmUocmVuZGVyUGlwZWxpbmUpOwogICAg
cmVuZGVyUGFzc0VuY29kZXIuc2V0QmluZEdyb3VwKDAsIGJpbmRHcm91cCk7CiAgICByZW5kZXJQ
YXNzRW5jb2Rlci5zZXRWZXJ0ZXhCdWZmZXJzKDAsIFt2ZXJ0ZXhCdWZmZXJdLCBbMF0pOwogICAg
cmVuZGVyUGFzc0VuY29kZXIuZHJhdyg0LCAxLCAwLCAwKTsKICAgIHJlbmRlclBhc3NFbmNvZGVy
LmVuZFBhc3MoKTsKICAgIGNvbnN0IGNvbW1hbmRCdWZmZXIgPSBjb21tYW5kRW5jb2Rlci5maW5p
c2goKTsKICAgIGRldmljZS5nZXRRdWV1ZSgpLnN1Ym1pdChbY29tbWFuZEJ1ZmZlcl0pOwp9Cmlm
ICh3aW5kb3cudGVzdFJ1bm5lcikKICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwp3aW5k
b3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGZ1bmN0aW9uKCkgewogICAgc3RhcnQoKS50aGVu
KGZ1bmN0aW9uKCkgewogICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKICAgICAgICAgICAg
dGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgICB9LCBmdW5jdGlvbihlKSB7CiAgICAgICAgYWxl
cnQoZSk7CiAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQogICAgICAgICAgICB0ZXN0UnVu
bmVyLm5vdGlmeURvbmUoKTsKICAgIH0pOwp9KTsKPC9zY3JpcHQ+CjwvYm9keT4KPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>