<?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>12307</bug_id>
          
          <creation_ts>2007-01-17 17:40:10 -0800</creation_ts>
          <short_desc>No way to test error condition of synchronous XMLHttpRequest to file:///</short_desc>
          <delta_ts>2014-06-13 17:04:44 -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>XML</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></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>10489</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jesse Costello-Good">jesse</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>emacemac7</cc>
    
    <cc>jchaffraix</cc>
    
    <cc>marcus</cc>
    
    <cc>tom</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>34419</commentid>
    <comment_count>0</comment_count>
    <who name="Jesse Costello-Good">jesse</who>
    <bug_when>2007-01-17 17:40:10 -0800</bug_when>
    <thetext>There is no way to tell whether an asynchronous XML HTTP request to the local disk (when running a page from file:///) has failed. 

// #1 works ok from HTTP
var r = new XMLHttpRequest();
r.open(&quot;GET&quot;, &quot;http://www.apple.com/nowhere.html&quot;, true);
r.send();
// wait ...
r.status == 404

// #2 works ok synchronously
var r = new XMLHttpRequest();
r.open(&quot;GET&quot;, &quot;nowhere.html&quot;, false);
r.send(); // throws an error 

// #3 but asynchronously ... no way to detect the error
var r = new XMLHttpRequest();
r.open(&quot;GET&quot;, &quot;nowhere.html&quot;, true);
r.send();
// wait ... no error thrown
r.status == 0


Both Internet Explorer and Firefox seem to ignore async when requesting a resource from the local disk. They both throw an exception like Safari does in the second example. But they also both throw an exception in the third example whereas Safari doesn&apos;t.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>23202</commentid>
    <comment_count>1</comment_count>
      <attachid>13181</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2007-02-15 02:55:43 -0800</bug_when>
    <thetext>Created attachment 13181
test case

In the future, we will probably dispatch an error event for XMLHttpRequest.

From my testing, it appears that IE 7 refuses to load local files altogether. Firefox 2 does raise an exception in send(), but if a local file is accessible, then the actual loading happens asynchronously. This behavior is not in accordance with draft XMLHttpRequest spec AFAICT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>89167</commentid>
    <comment_count>2</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2008-08-23 03:36:12 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; Created an attachment (id=13181) [edit]
&gt; test case
&gt; 
&gt; In the future, we will probably dispatch an error event for XMLHttpRequest.

We have implemented &apos;onerror&apos; from XMLHttpRequest level 2, which means that we now have a way to check for asynchronous request failures.

However during my quick testing, I have tried doing a synchronous one to a non-existent file (just modify the given test case to do a synchronous request) and we do not dispatch an error event nor do we throw an exception.

We do not raise an exception because it breaks some website (see http://trac.webkit.org/changeset/23889) but we could at least dispatch an event so there is a way to determine that an error occurred.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>110733</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-02-24 07:25:32 -0800</bug_when>
    <thetext>Renaming the bug, as it now tracks sync requests, not async ones.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>149041</commentid>
    <comment_count>4</comment_count>
    <who name="Marcus Better">marcus</who>
    <bug_when>2009-09-22 07:07:25 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; From my testing, it appears that IE 7 refuses to load local files
&gt; altogether.

This is not quite accurate, it can load local files if the native XHR implementation is switched on in the &quot;Advanced&quot; tab of the &quot;Internet Options&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1015559</commentid>
    <comment_count>5</comment_count>
      <attachid>233084</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-06-13 15:56:51 -0700</bug_when>
    <thetext>Created attachment 233084
WIP patch

Fails some tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1015584</commentid>
    <comment_count>6</comment_count>
      <attachid>233094</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-06-13 17:04:44 -0700</bug_when>
    <thetext>Created attachment 233094
slightly better, but still fails tests</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>13181</attachid>
            <date>2007-02-15 02:55:43 -0800</date>
            <delta_ts>2007-02-15 02:55:43 -0800</delta_ts>
            <desc>test case</desc>
            <filename>async-error.html</filename>
            <type>text/html</type>
            <size>1241</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">PGJvZHk+Cjx1bCBpZD1yZXN1bHQ+PC91bD4KPHNjcmlwdD4KaWYgKCFkb2N1bWVudC5VUkwubWF0
Y2goL15maWxlOlwvXC8vKSkKICBkb2N1bWVudC53cml0ZSgiUGxlYXNlIHNhdmUgdGhpcyB0ZXN0
IHRvIGEgbG9jYWwgZmlsZSB0byBydW4gaXQ8YnI+Iik7CgpmdW5jdGlvbiBsb2cobWVzc2FnZSkg
ewogIGVsZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaSIpOwogIGVsZW0uYXBwZW5kQ2hp
bGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobWVzc2FnZSkpOwogIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJyZXN1bHQiKS5hcHBlbmRDaGlsZChlbGVtKTsKfQoKZnVuY3Rpb24gc3RhdGVOYW1l
KG4pIHsKICBpZiAobiA9PSAwKQogICAgcmV0dXJuICJVbmluaXRpYWxpemVkIjsKICBpZiAobiA9
PSAxKQogICAgcmV0dXJuICJPcGVuIjsKICBpZiAobiA9PSAyKQogICAgcmV0dXJuICJTZW50IjsK
ICBpZiAobiA9PSAzKQogICAgcmV0dXJuICJSZWNlaXZpbmciOwogIGlmIChuID09IDQpCiAgICBy
ZXR1cm4gIkxvYWRlZCI7CiAgcmV0dXJuICJVbmtub3duICgiICsgbiArICIpIjsKfQoKdmFyIHJl
cSA9IG5ldyBYTUxIdHRwUmVxdWVzdDsKCnJlcS5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlv
bigpIHsKICBzdGF0dXMgPSAiPHVuYXZhaWxhYmxlPiI7CiAgdHJ5IHsKICAgIHN0YXR1cyA9IHJl
cS5zdGF0dXM7CiAgfSBjYXRjaCAoZXgpCiAgewogIH0KICBsb2coIm9ucmVhZHlzdGF0ZWNoYW5n
ZTogIiArIHN0YXRlTmFtZShyZXEucmVhZHlTdGF0ZSkgKyAiOyBzdGF0dXM6ICIgKyBzdGF0dXMp
OwogIGlmIChyZXEucmVhZHlTdGF0ZSA9PSA0KQogICAgbG9nKCJyZXNwb25zZVRleHQgPSAiICsg
cmVxLnJlc3BvbnNlVGV4dCk7Cn0KCnJlcS5vbmVycm9yID0gZnVuY3Rpb24oKSB7IGxvZygib25l
cnJvciIpIH0KCnRyeSB7CiAgcmVxLm9wZW4oIkdFVCIsICJ0aGlzX2ZpbGVfZG9lc19ub3RfZXhp
c3QudHh0IiwgdHJ1ZSk7CgogIHRyeSB7CiAgICByZXEuc2VuZChudWxsKTsKICAgIGxvZygic2Vu
dDsgc3RhdGUgPSAiICsgc3RhdGVOYW1lKHJlcS5yZWFkeVN0YXRlKSk7CiAgfSBjYXRjaChleCkg
ewogICAgbG9nKCJzZW5kOiAiICsgKGV4LmRlc2NyaXB0aW9uID8gZXguZGVzY3JpcHRpb24gOiBl
eCkpOwogIH0KfSBjYXRjaChleCkgewogIGxvZygib3BlbjogIiArIChleC5kZXNjcmlwdGlvbiA/
IGV4LmRlc2NyaXB0aW9uIDogZXgpKTsKfQo8L3NjcmlwdD4KPC9ib2R5Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>233084</attachid>
            <date>2014-06-13 15:56:51 -0700</date>
            <delta_ts>2014-06-13 17:04:44 -0700</delta_ts>
            <desc>WIP patch</desc>
            <filename>SyncXHR.txt</filename>
            <type>text/plain</type>
            <size>7199</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2OTk1MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDE0LTA2LTEzICBBbGV4ZXkg
UHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIE5vIHdheSB0byB0ZXN0IGVy
cm9yIGNvbmRpdGlvbiBvZiBzeW5jaHJvbm91cyBYTUxIdHRwUmVxdWVzdCB0byBmaWxlOi8vLwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIzMDcKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzE3MTgxNjg0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGZhc3QveG1saHR0cHJlcXVlc3QvbG9jYWwt
ZmlsZS1zeW5jLWVycm9yLmh0bWwKKworICAgICAgICBQcmlvciB0byA8aHR0cDovL3RyYWMud2Vi
a2l0Lm9yZy9jaGFuZ2VzZXQvMTY5MjQzPiwgd2UgdXNlZCB0byBsZWF2ZSBhIHN0YXR1cyBvZiAt
MTEwMAorICAgICAgICBpbiB0aGUgcmVzcG9uc2UsIGJ1dCBvbmx5IHdoZW4gbm90IHVzaW5nIE5l
dHdvcmtQcm9jZXNzLiBUaGlzIHN0YXR1cyBhbGxvd2VkIGpxdWVyeQorICAgICAgICB0byBjYWxs
IGVycm9yIGV2ZW50IGhhbmRsZXIuCisKKyAgICAgICAgQWZ0ZXIgdGhlIGFmb3JlbWVudGlvbmVk
IGNoYW5nZSwgd2Ugbm8gbG9uZ2VyIGRvIHRoYXQgKHdoaWNoIHdhcyB0aGUgd3JuZyB0aGluZyBh
bnl3YXkuCisgICAgICAgIC0xMTAwIGlzIG5vdCBhIHByb3BlciBlcnJvciBjb2RlKS4KKworICAg
ICAgICBUaGUgZml4IGlzIHRvIGRpc3BhdGNoIGFuIGVycm9yIGV2ZW50LCBub3QgYSBsb2FkIGV2
ZW50LgorCisgICAgICAgICogbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRocmVhZGFibGVMb2FkZXI6OmxvYWRSZXF1ZXN0KToK
KyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1M
SHR0cFJlcXVlc3Q6OmNyZWF0ZVJlcXVlc3QpOgorCiAyMDE0LTA2LTEzICBBbGV4IENocmlzdGVu
c2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgTWFrZSBjc3Mgaml0IGFs
bG9jYXRvciBzbWFydGVyLgpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhy
ZWFkYWJsZUxvYWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL0Rv
Y3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAJKHJldmlzaW9uIDE2OTkwMCkKKysrIFNvdXJjZS9X
ZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC00MDcsMTMgKzQwNyw2IEBAIHZvaWQgRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyOjpsb2Fk
UmVxdWUKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRvY3VtZW50VGhyZWFkYWJsZUxv
YWRlclN0YXJ0ZWRMb2FkaW5nRm9yQ2xpZW50KCZtX2RvY3VtZW50LCBpZGVudGlmaWVyLCBtX2Ns
aWVudCk7CiAKICAgICBpZiAoIWVycm9yLmlzTnVsbCgpICYmIHJlc3BvbnNlLmh0dHBTdGF0dXND
b2RlKCkgPD0gMCkgewotICAgICAgICBpZiAocmVxdWVzdFVSTC5pc0xvY2FsRmlsZSgpKSB7Ci0g
ICAgICAgICAgICAvLyBXZSBkb24ndCB3YW50IFhNTEh0dHBSZXF1ZXN0IHRvIHJhaXNlIGFuIGV4
Y2VwdGlvbiBmb3IgZmlsZTovLyByZXNvdXJjZXMsIHNlZSA8cmRhcjovL3Byb2JsZW0vNDk2MjI5
OD4uCi0gICAgICAgICAgICAvLyBGSVhNRTogWE1MSHR0cFJlcXVlc3QgcXVpcmtzIHNob3VsZCBi
ZSBpbiBYTUxIdHRwUmVxdWVzdCBjb2RlLCBub3QgaW4gRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVy
LmNwcC4KLSAgICAgICAgICAgIGRpZFJlY2VpdmVSZXNwb25zZShpZGVudGlmaWVyLCByZXNwb25z
ZSk7Ci0gICAgICAgICAgICBkaWRGaW5pc2hMb2FkaW5nKGlkZW50aWZpZXIsIDAuMCk7Ci0gICAg
ICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KICAgICAgICAgbV9jbGllbnQtPmRpZEZhaWwoZXJy
b3IpOwogICAgICAgICByZXR1cm47CiAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUveG1sL1hN
TEh0dHBSZXF1ZXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0
cFJlcXVlc3QuY3BwCShyZXZpc2lvbiAxNjk5MDApCisrKyBTb3VyY2UvV2ViQ29yZS94bWwvWE1M
SHR0cFJlcXVlc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04MDEsNiArODAxLDExIEBAIHZvaWQg
WE1MSHR0cFJlcXVlc3Q6OmNyZWF0ZVJlcXVlc3QoRXhjZXAKICAgICAgICAgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjpkaWRMb2FkWEhSU3luY2hyb25vdXNseShzY3JpcHRFeGVjdXRpb25Db250
ZXh0KCkpOwogICAgIH0KIAorICAgIGlmIChtX3VybC5pc0xvY2FsRmlsZSgpKSB7CisgICAgICAg
IC8vIFdlIGRvbid0IHdhbnQgWE1MSHR0cFJlcXVlc3QgdG8gcmFpc2UgZXhjZXB0aW9ucyBmb3Ig
bWlzc2luZyBmaWxlOi8vIHJlc291cmNlcywgc2VlIDxyZGFyOi8vcHJvYmxlbS80OTYyMjk4Pi4K
KyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGlmICghbV9leGNlcHRpb25Db2RlICYmIG1f
ZXJyb3IpCiAgICAgICAgIG1fZXhjZXB0aW9uQ29kZSA9IFhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9u
OjpORVRXT1JLX0VSUjsKICAgICBlYyA9IG1fZXhjZXB0aW9uQ29kZTsKQEAgLTEwNTgsNyArMTA2
Myw2IEBAIFN0cmluZyBYTUxIdHRwUmVxdWVzdDo6c3RhdHVzVGV4dCgpIGNvbnMKIAogdm9pZCBY
TUxIdHRwUmVxdWVzdDo6ZGlkRmFpbChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKIHsKLQog
ICAgIC8vIElmIHdlIGFyZSBhbHJlYWR5IGluIGFuIGVycm9yIHN0YXRlLCBmb3IgaW5zdGFuY2Ug
d2UgY2FsbGVkIGFib3J0KCksIGJhaWwgb3V0IGVhcmx5LgogICAgIGlmIChtX2Vycm9yKQogICAg
ICAgICByZXR1cm47CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNjk5NTMpCisrKyBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAxNC0wNi0xMyAgQWxl
eGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KKworICAgICAgICBObyB3YXkgdG8gdGVz
dCBlcnJvciBjb25kaXRpb24gb2Ygc3luY2hyb25vdXMgWE1MSHR0cFJlcXVlc3QgdG8gZmlsZTov
Ly8KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMzA3
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xNzE4MTY4ND4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QveG1saHR0cHJlcXVlc3QvbG9jYWwt
ZmlsZS1zeW5jLWVycm9yLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC94bWxo
dHRwcmVxdWVzdC9sb2NhbC1maWxlLXN5bmMtZXJyb3IuaHRtbDogQWRkZWQuCisKIDIwMTQtMDYt
MTMgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVu
cmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxNjk5MzkuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3ht
bGh0dHByZXF1ZXN0L2xvY2FsLWZpbGUtc3luYy1lcnJvci1leHBlY3RlZC50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC94bWxodHRwcmVxdWVzdC9sb2NhbC1maWxlLXN5bmMtZXJy
b3ItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC94bWxodHRw
cmVxdWVzdC9sb2NhbC1maWxlLXN5bmMtZXJyb3ItZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3Qgd2hpY2ggZXZlbnRzIGdldCBzZW50IHdoZW4gdHJ5aW5n
IHRvIGxvYWQgYSBtaXNzaW5nIGxvY2FsIHJlc291cmNlIHdpdGggc3luYyBYSFIuCisKK1Bhc3Nl
cyBpZiB0aGVyZSBpcyBhbiBlcnJvciBldmVudCwgYW5kIG5vIGV4Y2VwdGlvbi4KKworb25yZWFk
eXN0YXRlY2hhbmdlOiBPcGVuOyBzdGF0dXM6IDAKK29ucmVhZHlzdGF0ZWNoYW5nZTogTG9hZGVk
OyBzdGF0dXM6IDAKK3Jlc3BvbnNlVGV4dCA9CitvbmVycm9yOiBMb2FkZWQ7IHN0YXR1czogMAor
b25sb2FkZW5kOiBMb2FkZWQ7IHN0YXR1czogMAorc2VudDsgc3RhdGUgPSBMb2FkZWQ7IHN0YXR1
czogMAoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvZmFzdC94bWxodHRwcmVxdWVz
dC9sb2NhbC1maWxlLXN5bmMtZXJyb3ItZXhwZWN0ZWQudHh0Cl9fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2
bjptaW1lLXR5cGUKIyMgLTAsMCArMSAjIwordGV4dC9wbGFpbgpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIHByb3BlcnR5CkFkZGVkOiBzdm46ZW9sLXN0eWxlCiMjIC0wLDAgKzEgIyMKK25hdGl2ZQpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3ht
bGh0dHByZXF1ZXN0L2xvY2FsLWZpbGUtc3luYy1lcnJvci5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QveG1saHR0cHJlcXVlc3QvbG9jYWwtZmlsZS1zeW5jLWVycm9yLmh0bWwJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L3htbGh0dHByZXF1ZXN0L2xvY2FsLWZp
bGUtc3luYy1lcnJvci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjMgQEAKKzxib2R5
PgorPHA+VGVzdCB3aGljaCBldmVudHMgZ2V0IHNlbnQgd2hlbiB0cnlpbmcgdG8gbG9hZCBhIG1p
c3NpbmcgbG9jYWwgcmVzb3VyY2Ugd2l0aCBzeW5jIFhIUi48L3A+Cis8cD5QYXNzZXMgaWYgdGhl
cmUgaXMgYW4gZXJyb3IgZXZlbnQsIGFuZCBubyBleGNlcHRpb24uPC9wPgorPHVsIGlkPXJlc3Vs
dD48L3VsPgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVy
LmR1bXBBc1RleHQoKTsKKworaWYgKCFkb2N1bWVudC5VUkwubWF0Y2goL15maWxlOlwvXC8vKSkK
KyAgZG9jdW1lbnQud3JpdGUoIlBsZWFzZSBzYXZlIHRoaXMgdGVzdCB0byBhIGxvY2FsIGZpbGUg
dG8gcnVuIGl0PGJyPiIpOworCitmdW5jdGlvbiBsb2cobWVzc2FnZSkgeworICBlbGVtID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgibGkiKTsKKyAgZWxlbS5hcHBlbmRDaGlsZChkb2N1bWVudC5j
cmVhdGVUZXh0Tm9kZShtZXNzYWdlKSk7CisgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1
bHQiKS5hcHBlbmRDaGlsZChlbGVtKTsKK30KKworZnVuY3Rpb24gc3RhdGVOYW1lKG4pIHsKKyAg
aWYgKG4gPT0gMCkKKyAgICByZXR1cm4gIlVuaW5pdGlhbGl6ZWQiOworICBpZiAobiA9PSAxKQor
ICAgIHJldHVybiAiT3BlbiI7CisgIGlmIChuID09IDIpCisgICAgcmV0dXJuICJTZW50IjsKKyAg
aWYgKG4gPT0gMykKKyAgICByZXR1cm4gIlJlY2VpdmluZyI7CisgIGlmIChuID09IDQpCisgICAg
cmV0dXJuICJMb2FkZWQiOworICByZXR1cm4gIlVua25vd24gKCIgKyBuICsgIikiOworfQorCit2
YXIgcmVxID0gbmV3IFhNTEh0dHBSZXF1ZXN0OworCityZXEub25yZWFkeXN0YXRlY2hhbmdlID0g
ZnVuY3Rpb24oKSB7CisgIHN0YXR1cyA9ICI8dW5hdmFpbGFibGU+IjsKKyAgdHJ5IHsKKyAgICBz
dGF0dXMgPSByZXEuc3RhdHVzOworICB9IGNhdGNoIChleCkKKyAgeworICB9CisgIGxvZygib25y
ZWFkeXN0YXRlY2hhbmdlOiAiICsgc3RhdGVOYW1lKHJlcS5yZWFkeVN0YXRlKSArICI7IHN0YXR1
czogIiArIHN0YXR1cyk7CisgIGlmIChyZXEucmVhZHlTdGF0ZSA9PSA0KQorICAgIGxvZygicmVz
cG9uc2VUZXh0ID0gIiArIHJlcS5yZXNwb25zZVRleHQpOworfQorCityZXEub25lcnJvciA9IGZ1
bmN0aW9uKCkgeyBsb2coIm9uZXJyb3I6ICIgKyBzdGF0ZU5hbWUocmVxLnJlYWR5U3RhdGUpICsg
Ijsgc3RhdHVzOiAiICsgc3RhdHVzKTsgfQorcmVxLm9ubG9hZCA9IGZ1bmN0aW9uKCkgeyBsb2co
Im9ubG9hZDogIiArIHN0YXRlTmFtZShyZXEucmVhZHlTdGF0ZSkgKyAiOyBzdGF0dXM6ICIgKyBz
dGF0dXMpOyB9CityZXEub25sb2FkZW5kID0gZnVuY3Rpb24oKSB7IGxvZygib25sb2FkZW5kOiAi
ICsgc3RhdGVOYW1lKHJlcS5yZWFkeVN0YXRlKSArICI7IHN0YXR1czogIiArIHN0YXR1cyk7IH0K
KwordHJ5IHsKKyAgcmVxLm9wZW4oIkdFVCIsICJ0aGlzX2ZpbGVfZG9lc19ub3RfZXhpc3QudHh0
IiwgZmFsc2UpOworCisgIHRyeSB7CisgICAgcmVxLnNlbmQobnVsbCk7CisgICAgbG9nKCJzZW50
OyBzdGF0ZSA9ICIgKyBzdGF0ZU5hbWUocmVxLnJlYWR5U3RhdGUpICsgIjsgc3RhdHVzOiAiICsg
c3RhdHVzKTsKKyAgfSBjYXRjaChleCkgeworICAgIGxvZygic2VuZDogIiArIChleC5kZXNjcmlw
dGlvbiA/IGV4LmRlc2NyaXB0aW9uIDogZXgpKTsKKyAgfQorfSBjYXRjaChleCkgeworICBsb2co
Im9wZW46ICIgKyAoZXguZGVzY3JpcHRpb24gPyBleC5kZXNjcmlwdGlvbiA6IGV4KSk7Cit9Cis8
L3NjcmlwdD4KKzwvYm9keT4KClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2Zhc3Qv
eG1saHR0cHJlcXVlc3QvbG9jYWwtZmlsZS1zeW5jLWVycm9yLmh0bWwKX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRl
ZDogc3ZuOm1pbWUtdHlwZQojIyAtMCwwICsxICMjCit0ZXh0L2h0bWwKXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBwcm9wZXJ0eQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>233094</attachid>
            <date>2014-06-13 17:04:44 -0700</date>
            <delta_ts>2014-06-13 17:04:44 -0700</delta_ts>
            <desc>slightly better, but still fails tests</desc>
            <filename>SyncXHR.txt</filename>
            <type>text/plain</type>
            <size>9683</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2OTk1MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDE0LTA2LTEzICBBbGV4ZXkg
UHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIE5vIHdheSB0byB0ZXN0IGVy
cm9yIGNvbmRpdGlvbiBvZiBzeW5jaHJvbm91cyBYTUxIdHRwUmVxdWVzdCB0byBmaWxlOi8vLwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIzMDcKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzE3MTgxNjg0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGZhc3QveG1saHR0cHJlcXVlc3QvbG9jYWwt
ZmlsZS1zeW5jLWVycm9yLmh0bWwKKworICAgICAgICBQcmlvciB0byA8aHR0cDovL3RyYWMud2Vi
a2l0Lm9yZy9jaGFuZ2VzZXQvMTY5MjQzPiwgd2UgdXNlZCB0byBsZWF2ZSBhIHN0YXR1cyBvZiAt
MTEwMAorICAgICAgICBpbiB0aGUgcmVzcG9uc2UsIGJ1dCBvbmx5IHdoZW4gbm90IHVzaW5nIE5l
dHdvcmtQcm9jZXNzLiBUaGlzIHN0YXR1cyBhbGxvd2VkIGpxdWVyeQorICAgICAgICB0byBjYWxs
IGVycm9yIGV2ZW50IGhhbmRsZXIuCisKKyAgICAgICAgQWZ0ZXIgdGhlIGFmb3JlbWVudGlvbmVk
IGNoYW5nZSwgd2Ugbm8gbG9uZ2VyIGRvIHRoYXQgKHdoaWNoIHdhcyB0aGUgd3JuZyB0aGluZyBh
bnl3YXkuCisgICAgICAgIC0xMTAwIGlzIG5vdCBhIHByb3BlciBlcnJvciBjb2RlKS4KKworICAg
ICAgICBUaGUgZml4IGlzIHRvIGRpc3BhdGNoIGFuIGVycm9yIGV2ZW50LCBub3QgYSBsb2FkIGV2
ZW50LgorCisgICAgICAgICogbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRocmVhZGFibGVMb2FkZXI6OmxvYWRSZXF1ZXN0KToK
KyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1M
SHR0cFJlcXVlc3Q6OmNyZWF0ZVJlcXVlc3QpOgorCiAyMDE0LTA2LTEzICBBbGV4IENocmlzdGVu
c2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgTWFrZSBjc3Mgaml0IGFs
bG9jYXRvciBzbWFydGVyLgpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhy
ZWFkYWJsZUxvYWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL0Rv
Y3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAJKHJldmlzaW9uIDE2OTkwMCkKKysrIFNvdXJjZS9X
ZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC00MDcsMTMgKzQwNyw2IEBAIHZvaWQgRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyOjpsb2Fk
UmVxdWUKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRvY3VtZW50VGhyZWFkYWJsZUxv
YWRlclN0YXJ0ZWRMb2FkaW5nRm9yQ2xpZW50KCZtX2RvY3VtZW50LCBpZGVudGlmaWVyLCBtX2Ns
aWVudCk7CiAKICAgICBpZiAoIWVycm9yLmlzTnVsbCgpICYmIHJlc3BvbnNlLmh0dHBTdGF0dXND
b2RlKCkgPD0gMCkgewotICAgICAgICBpZiAocmVxdWVzdFVSTC5pc0xvY2FsRmlsZSgpKSB7Ci0g
ICAgICAgICAgICAvLyBXZSBkb24ndCB3YW50IFhNTEh0dHBSZXF1ZXN0IHRvIHJhaXNlIGFuIGV4
Y2VwdGlvbiBmb3IgZmlsZTovLyByZXNvdXJjZXMsIHNlZSA8cmRhcjovL3Byb2JsZW0vNDk2MjI5
OD4uCi0gICAgICAgICAgICAvLyBGSVhNRTogWE1MSHR0cFJlcXVlc3QgcXVpcmtzIHNob3VsZCBi
ZSBpbiBYTUxIdHRwUmVxdWVzdCBjb2RlLCBub3QgaW4gRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVy
LmNwcC4KLSAgICAgICAgICAgIGRpZFJlY2VpdmVSZXNwb25zZShpZGVudGlmaWVyLCByZXNwb25z
ZSk7Ci0gICAgICAgICAgICBkaWRGaW5pc2hMb2FkaW5nKGlkZW50aWZpZXIsIDAuMCk7Ci0gICAg
ICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KICAgICAgICAgbV9jbGllbnQtPmRpZEZhaWwoZXJy
b3IpOwogICAgICAgICByZXR1cm47CiAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUveG1sL1hN
TEh0dHBSZXF1ZXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0
cFJlcXVlc3QuY3BwCShyZXZpc2lvbiAxNjk5MDApCisrKyBTb3VyY2UvV2ViQ29yZS94bWwvWE1M
SHR0cFJlcXVlc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04MDEsNyArODAxLDggQEAgdm9pZCBY
TUxIdHRwUmVxdWVzdDo6Y3JlYXRlUmVxdWVzdChFeGNlcAogICAgICAgICBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OmRpZExvYWRYSFJTeW5jaHJvbm91c2x5KHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSk7CiAgICAgfQogCi0gICAgaWYgKCFtX2V4Y2VwdGlvbkNvZGUgJiYgbV9lcnJvcikKKyAg
ICAvLyBXZSBkb24ndCB3YW50IFhNTEh0dHBSZXF1ZXN0IHRvIHJhaXNlIGV4Y2VwdGlvbnMgZm9y
IG1pc3NpbmcgZmlsZTovLyByZXNvdXJjZXMsIHNlZSA8cmRhcjovL3Byb2JsZW0vNDk2MjI5OD4u
CisgICAgaWYgKCFtX2V4Y2VwdGlvbkNvZGUgJiYgbV9lcnJvciAmJiAhbV91cmwuaXNMb2NhbEZp
bGUoKSkKICAgICAgICAgbV9leGNlcHRpb25Db2RlID0gWE1MSHR0cFJlcXVlc3RFeGNlcHRpb246
Ok5FVFdPUktfRVJSOwogICAgIGVjID0gbV9leGNlcHRpb25Db2RlOwogfQpAQCAtMTA1OCw3ICsx
MDU5LDYgQEAgU3RyaW5nIFhNTEh0dHBSZXF1ZXN0OjpzdGF0dXNUZXh0KCkgY29ucwogCiB2b2lk
IFhNTEh0dHBSZXF1ZXN0OjpkaWRGYWlsKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQogewot
CiAgICAgLy8gSWYgd2UgYXJlIGFscmVhZHkgaW4gYW4gZXJyb3Igc3RhdGUsIGZvciBpbnN0YW5j
ZSB3ZSBjYWxsZWQgYWJvcnQoKSwgYmFpbCBvdXQgZWFybHkuCiAgICAgaWYgKG1fZXJyb3IpCiAg
ICAgICAgIHJldHVybjsKQEAgLTEwODAsNyArMTA4MCw2IEBAIHZvaWQgWE1MSHR0cFJlcXVlc3Q6
OmRpZEZhaWwoY29uc3QgUmVzb3UKICAgICBpZiAoZXJyb3IuZG9tYWluKCkgPT0gZXJyb3JEb21h
aW5XZWJLaXRJbnRlcm5hbCkKICAgICAgICAgbG9nQ29uc29sZUVycm9yKHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKSwgIlhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2FkICIgKyBlcnJvci5mYWlsaW5n
VVJMKCkgKyAiLiAiICsgZXJyb3IubG9jYWxpemVkRGVzY3JpcHRpb24oKSk7CiAKLSAgICBtX2V4
Y2VwdGlvbkNvZGUgPSBYTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbjo6TkVUV09SS19FUlI7CiAgICAg
bmV0d29ya0Vycm9yKCk7CiB9CiAKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2OTk1NSkKKysrIExheW91
dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDE0LTA2
LTEzICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIE5vIHdh
eSB0byB0ZXN0IGVycm9yIGNvbmRpdGlvbiBvZiBzeW5jaHJvbm91cyBYTUxIdHRwUmVxdWVzdCB0
byBmaWxlOi8vLworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTIzMDcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzE3MTgxNjg0PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC94bWxodHRwcmVxdWVz
dC9sb2NhbC1maWxlLXN5bmMtZXJyb3ItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L3htbGh0dHByZXF1ZXN0L2xvY2FsLWZpbGUtc3luYy1lcnJvci5odG1sOiBBZGRlZC4KKwor
ICAgICAgICAqIGZhc3QveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3Qtbm9uZXhpc3RlbnQt
ZmlsZS1leHBlY3RlZC50eHQ6IAorICAgICAgICAqIGZhc3QveG1saHR0cHJlcXVlc3QveG1saHR0
cHJlcXVlc3Qtbm9uZXhpc3RlbnQtZmlsZS5odG1sOiAKKyAgICAgICAgVXBkYXRlZCB0ZXh0dWFs
IGV4cGxhbmF0aW9uIHRvIGJlIGNvcnJlY3QgYWdhaW4gKHJldmVydGluZyBwYXJ0IG9mIHIxNjky
NDMpLgorCiAyMDE0LTA2LTEzICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9y
Zz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTY5OTM5LgpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC94bWxodHRwcmVxdWVzdC9sb2NhbC1maWxlLXN5bmMtZXJyb3ItZXhwZWN0
ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QveG1saHR0cHJlcXVlc3QvbG9j
YWwtZmlsZS1zeW5jLWVycm9yLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRl
c3RzL2Zhc3QveG1saHR0cHJlcXVlc3QvbG9jYWwtZmlsZS1zeW5jLWVycm9yLWV4cGVjdGVkLnR4
dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEwIEBACitUZXN0IHdoaWNoIGV2ZW50cyBnZXQg
c2VudCB3aGVuIHRyeWluZyB0byBsb2FkIGEgbWlzc2luZyBsb2NhbCByZXNvdXJjZSB3aXRoIHN5
bmMgWEhSLgorCitQYXNzZXMgaWYgdGhlcmUgaXMgYW4gZXJyb3IgZXZlbnQsIGFuZCBubyBleGNl
cHRpb24uCisKK29ucmVhZHlzdGF0ZWNoYW5nZTogT3Blbjsgc3RhdHVzOiAwCitvbnJlYWR5c3Rh
dGVjaGFuZ2U6IExvYWRlZDsgc3RhdHVzOiAwCityZXNwb25zZVRleHQgPQorb25lcnJvcjogTG9h
ZGVkOyBzdGF0dXM6IDAKK29ubG9hZGVuZDogTG9hZGVkOyBzdGF0dXM6IDAKK3NlbnQ7IHN0YXRl
ID0gTG9hZGVkOyBzdGF0dXM6IDAKClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2Zh
c3QveG1saHR0cHJlcXVlc3QvbG9jYWwtZmlsZS1zeW5jLWVycm9yLWV4cGVjdGVkLnR4dApfX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fCkFkZGVkOiBzdm46bWltZS10eXBlCiMjIC0wLDAgKzEgIyMKK3RleHQvcGxhaW4KXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpBZGRlZDogc3ZuOmVvbC1zdHlsZQojIyAtMCww
ICsxICMjCituYXRpdmUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC94bWxodHRwcmVxdWVzdC9sb2NhbC1maWxlLXN5bmMtZXJyb3IuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3htbGh0dHByZXF1ZXN0L2xvY2FsLWZpbGUt
c3luYy1lcnJvci5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC94bWxodHRw
cmVxdWVzdC9sb2NhbC1maWxlLXN5bmMtZXJyb3IuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDYzIEBACis8Ym9keT4KKzxwPlRlc3Qgd2hpY2ggZXZlbnRzIGdldCBzZW50IHdoZW4gdHJ5
aW5nIHRvIGxvYWQgYSBtaXNzaW5nIGxvY2FsIHJlc291cmNlIHdpdGggc3luYyBYSFIuPC9wPgor
PHA+UGFzc2VzIGlmIHRoZXJlIGlzIGFuIGVycm9yIGV2ZW50LCBhbmQgbm8gZXhjZXB0aW9uLjwv
cD4KKzx1bCBpZD1yZXN1bHQ+PC91bD4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIp
CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisKK2lmICghZG9jdW1lbnQuVVJMLm1hdGNo
KC9eZmlsZTpcL1wvLykpCisgIGRvY3VtZW50LndyaXRlKCJQbGVhc2Ugc2F2ZSB0aGlzIHRlc3Qg
dG8gYSBsb2NhbCBmaWxlIHRvIHJ1biBpdDxicj4iKTsKKworZnVuY3Rpb24gbG9nKG1lc3NhZ2Up
IHsKKyAgZWxlbSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxpIik7CisgIGVsZW0uYXBwZW5k
Q2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobWVzc2FnZSkpOworICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgicmVzdWx0IikuYXBwZW5kQ2hpbGQoZWxlbSk7Cit9CisKK2Z1bmN0aW9uIHN0
YXRlTmFtZShuKSB7CisgIGlmIChuID09IDApCisgICAgcmV0dXJuICJVbmluaXRpYWxpemVkIjsK
KyAgaWYgKG4gPT0gMSkKKyAgICByZXR1cm4gIk9wZW4iOworICBpZiAobiA9PSAyKQorICAgIHJl
dHVybiAiU2VudCI7CisgIGlmIChuID09IDMpCisgICAgcmV0dXJuICJSZWNlaXZpbmciOworICBp
ZiAobiA9PSA0KQorICAgIHJldHVybiAiTG9hZGVkIjsKKyAgcmV0dXJuICJVbmtub3duICgiICsg
biArICIpIjsKK30KKwordmFyIHJlcSA9IG5ldyBYTUxIdHRwUmVxdWVzdDsKKworcmVxLm9ucmVh
ZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uKCkgeworICBzdGF0dXMgPSAiPHVuYXZhaWxhYmxlPiI7
CisgIHRyeSB7CisgICAgc3RhdHVzID0gcmVxLnN0YXR1czsKKyAgfSBjYXRjaCAoZXgpCisgIHsK
KyAgfQorICBsb2coIm9ucmVhZHlzdGF0ZWNoYW5nZTogIiArIHN0YXRlTmFtZShyZXEucmVhZHlT
dGF0ZSkgKyAiOyBzdGF0dXM6ICIgKyBzdGF0dXMpOworICBpZiAocmVxLnJlYWR5U3RhdGUgPT0g
NCkKKyAgICBsb2coInJlc3BvbnNlVGV4dCA9ICIgKyByZXEucmVzcG9uc2VUZXh0KTsKK30KKwor
cmVxLm9uZXJyb3IgPSBmdW5jdGlvbigpIHsgbG9nKCJvbmVycm9yOiAiICsgc3RhdGVOYW1lKHJl
cS5yZWFkeVN0YXRlKSArICI7IHN0YXR1czogIiArIHN0YXR1cyk7IH0KK3JlcS5vbmxvYWQgPSBm
dW5jdGlvbigpIHsgbG9nKCJvbmxvYWQ6ICIgKyBzdGF0ZU5hbWUocmVxLnJlYWR5U3RhdGUpICsg
Ijsgc3RhdHVzOiAiICsgc3RhdHVzKTsgfQorcmVxLm9ubG9hZGVuZCA9IGZ1bmN0aW9uKCkgeyBs
b2coIm9ubG9hZGVuZDogIiArIHN0YXRlTmFtZShyZXEucmVhZHlTdGF0ZSkgKyAiOyBzdGF0dXM6
ICIgKyBzdGF0dXMpOyB9CisKK3RyeSB7CisgIHJlcS5vcGVuKCJHRVQiLCAidGhpc19maWxlX2Rv
ZXNfbm90X2V4aXN0LnR4dCIsIGZhbHNlKTsKKworICB0cnkgeworICAgIHJlcS5zZW5kKG51bGwp
OworICAgIGxvZygic2VudDsgc3RhdGUgPSAiICsgc3RhdGVOYW1lKHJlcS5yZWFkeVN0YXRlKSAr
ICI7IHN0YXR1czogIiArIHN0YXR1cyk7CisgIH0gY2F0Y2goZXgpIHsKKyAgICBsb2coInNlbmQ6
ICIgKyAoZXguZGVzY3JpcHRpb24gPyBleC5kZXNjcmlwdGlvbiA6IGV4KSk7CisgIH0KK30gY2F0
Y2goZXgpIHsKKyAgbG9nKCJvcGVuOiAiICsgKGV4LmRlc2NyaXB0aW9uID8gZXguZGVzY3JpcHRp
b24gOiBleCkpOworfQorPC9zY3JpcHQ+Cis8L2JvZHk+CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBM
YXlvdXRUZXN0cy9mYXN0L3htbGh0dHByZXF1ZXN0L2xvY2FsLWZpbGUtc3luYy1lcnJvci5odG1s
Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX18KQWRkZWQ6IHN2bjptaW1lLXR5cGUKIyMgLTAsMCArMSAjIwordGV4dC9odG1s
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
eG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3Qtbm9uZXhpc3RlbnQtZmlsZS1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC94bWxodHRwcmVxdWVzdC94bWxodHRw
cmVxdWVzdC1ub25leGlzdGVudC1maWxlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTY5OTAwKQor
KysgTGF5b3V0VGVzdHMvZmFzdC94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1ub25leGlz
dGVudC1maWxlLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSw3ICsxLDcgQEAKIAog
QnVnIDIyNDc1OiBSRUdSRVNTSU9OOiBBc3luYyBYTUxIdHRwUmVxdWVzdCBuZXZlciBmaW5pc2hl
cyBvbiBub25leGlzdGVudCBmaWxlcyBhbnltb3JlCiAKLUluIGJvdGggY2FzZXMsIHJlYWR5U3Rh
dGUgNCBzaG91bGQgYmUgcmVhY2hlZC4gQmVjYXVzZSBvbmUgb2YgdGhlIHJlcXVlc3RzIGlzIHN5
bmNocm9ub3VzIGFuZCBmb3IgYSBmaWxlOiBVUkwsIG9ubHkgYSBzaW5nbGUgZXJyb3IgaGFuZGxl
ciBzaG91bGQgYmUgaW52b2tlZC4KK0luIGJvdGggY2FzZXMsIHJlYWR5U3RhdGUgNCBzaG91bGQg
YmUgcmVhY2hlZCwgYW5kIGVycm9yIGhhbmRsZXIgc2hvdWxkIGJlIGludm9rZWQuCiAKIERvaW5n
IGFuIFhIUiB0byBhIG5vbmV4aXN0ZW50IGZpbGUuCiBSZWFkeVN0YXRlIGhhbmRsZXI6IHJlYWR5
U3RhdGUgPSAxCkBAIC0xMSw0ICsxMSw1IEBAIEVycm9yIGhhbmRsZXI6IHJlYWR5U3RhdGUgPSA0
CiBEb2luZyBhbiBYSFIgdG8gYSBkaXJlY3RvcnkuCiBSZWFkeVN0YXRlIGhhbmRsZXI6IHJlYWR5
U3RhdGUgPSAxCiBSZWFkeVN0YXRlIGhhbmRsZXI6IHJlYWR5U3RhdGUgPSA0CitFcnJvciBoYW5k
bGVyOiByZWFkeVN0YXRlID0gNAogCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3htbGh0dHByZXF1
ZXN0L3Jlc291cmNlcy94bWxodHRwcmVxdWVzdC1ub25leGlzdGVudC1maWxlLXJlYWwuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy94
bWxodHRwcmVxdWVzdC1ub25leGlzdGVudC1maWxlLXJlYWwuaHRtbAkocmV2aXNpb24gMTY5OTAw
KQorKysgTGF5b3V0VGVzdHMvZmFzdC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMveG1saHR0cHJl
cXVlc3Qtbm9uZXhpc3RlbnQtZmlsZS1yZWFsLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTcxLDcg
KzcxLDcgQEAKICAgICA8L2hlYWQ+CiAgICAgPGJvZHkgb25sb2FkPSJ0ZXN0WEhSTm9uRXhpc3Rl
bnRGaWxlKCkiPgogICAgICAgICA8cD4gQnVnIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMjQ3NSI+MjI0NzU8L2E+OiBSRUdSRVNTSU9OOiBBc3luYyBY
TUxIdHRwUmVxdWVzdCBuZXZlciBmaW5pc2hlcyBvbiBub25leGlzdGVudCBmaWxlcyBhbnltb3Jl
IDwvcD4KLSAgICAgICAgPHA+IEluIGJvdGggY2FzZXMsIHJlYWR5U3RhdGUgNCBzaG91bGQgYmUg
cmVhY2hlZC4gQmVjYXVzZSBvbmUgb2YgdGhlIHJlcXVlc3RzIGlzIHN5bmNocm9ub3VzIGFuZCBm
b3IgYSBmaWxlOiBVUkwsIG9ubHkgYSBzaW5nbGUgZXJyb3IgaGFuZGxlciBzaG91bGQgYmUgaW52
b2tlZC4gPC9wPgorICAgICAgICA8cD4gSW4gYm90aCBjYXNlcywgcmVhZHlTdGF0ZSA0IHNob3Vs
ZCBiZSByZWFjaGVkLCBhbmQgZXJyb3IgaGFuZGxlciBzaG91bGQgYmUgaW52b2tlZC4gPC9wPgog
ICAgICAgICA8ZGl2IGlkPSJjb25zb2xlIi8+CiAgICAgPC9ib2R5PgogPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>