<?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>85938</bug_id>
          
          <creation_ts>2012-05-08 18:03:32 -0700</creation_ts>
          <short_desc>[BlackBerry]  Refactor data scheme support</short_desc>
          <delta_ts>2012-06-01 02:39:35 -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>WebKit BlackBerry</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="Charles Wei">charles.wei</reporter>
          <assigned_to name="Charles Wei">charles.wei</assigned_to>
          <cc>mawu</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>staikos</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>619033</commentid>
    <comment_count>0</comment_count>
    <who name="Charles Wei">charles.wei</who>
    <bug_when>2012-05-08 18:03:32 -0700</bug_when>
    <thetext>Data scheme support is now implemented in NetworkJob.cpp,  but NetworkJob.cpp is not re-useable by Download, because NetworkJob.cpp is supposed to feed the data to webkit only. 

So we need to refractor the data scheme support,  move the data scheme out of NetworkJob to it&apos;s own stream, DataStream,  which can be wrapped up by both NetworkJob and Download Jobs.

Internal PR: 154804</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>619375</commentid>
    <comment_count>1</comment_count>
      <attachid>140914</attachid>
    <who name="Charles Wei">charles.wei</who>
    <bug_when>2012-05-09 04:38:58 -0700</bug_when>
    <thetext>Created attachment 140914
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>619376</commentid>
    <comment_count>2</comment_count>
    <who name="Charles Wei">charles.wei</who>
    <bug_when>2012-05-09 04:40:33 -0700</bug_when>
    <thetext>Above patch was internally reviewed by Joe Mason, Lyon Chen, Jason Liu and Mary</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>619647</commentid>
    <comment_count>3</comment_count>
      <attachid>140914</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-05-09 10:57:03 -0700</bug_when>
    <thetext>Comment on attachment 140914
Patch

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

LGTM.

&gt; Source/WebCore/platform/network/blackberry/NetworkJob.cpp:-90
&gt; -    out.resize(dst - out.data());

Is there anything more you can remove because this gets removed? Maybe #include &lt;wtf/ASCIICType.h&gt; ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>620116</commentid>
    <comment_count>4</comment_count>
      <attachid>141066</attachid>
    <who name="Charles Wei">charles.wei</who>
    <bug_when>2012-05-09 17:47:10 -0700</bug_when>
    <thetext>Created attachment 141066
final patch for landing

Landing the patch after fixing minor comments from the reviewer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>620134</commentid>
    <comment_count>5</comment_count>
      <attachid>141066</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-09 18:12:51 -0700</bug_when>
    <thetext>Comment on attachment 141066
final patch for landing

Clearing flags on attachment: 141066

Committed r116591: &lt;http://trac.webkit.org/changeset/116591&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>639127</commentid>
    <comment_count>6</comment_count>
    <who name="Charles Wei">charles.wei</who>
    <bug_when>2012-06-01 02:39:35 -0700</bug_when>
    <thetext>Patch has landed.  Mark it as Resolved.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>140914</attachid>
            <date>2012-05-09 04:38:58 -0700</date>
            <delta_ts>2012-06-01 02:39:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85938-20120509194636.patch</filename>
            <type>text/plain</type>
            <size>11390</size>
            <attacher name="Charles Wei">charles.wei</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2NTEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjE1NTk4NjMwMzJkNmQ0
NTA2NmE3ZDFkNzFhNmJiZDc1N2E4MDIzZC4uMGYzOGZlM2UyZWEyNDBlYWZjMzVlZmViMWEwOTA4
Yzk3ZWU3ZDBiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEyLTA1LTA5ICBDaGFy
bGVzIFdlaSAgPGNoYXJsZXMud2VpQHRvcmNobW9iaWxlLmNvbS5jbj4KKworICAgICAgICBbQmxh
Y2tCZXJyeV0gIFJlZmFjdG9yIGRhdGEgc2NoZW1lIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1OTM4CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2Ugd2lsbCBjcmVhdGUgYSBEYXRhU3RyZWFt
IGluIG91ciBwbGF0Zm9ybSByZXBvc2l0b3J5LAorICAgICAgICBzbyB0aGF0IGNhbiBiZSB3cmFw
cGVkIHVwIGJ5IE5ldHdvcmtKb2IgZm9yIHdlYmtpdCByZW5kZXJpbmcsCisgICAgICAgIGFuZCBi
eSBEb3dubG9hZFN0cmVhbSBmb3IgZG93bmxvYWRpbmcuCisKKyAgICAgICAgUmVmYWN0b3IsIG5v
IG5ldyB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9OZXR3
b3JrSm9iLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtKb2I6Ok5ldHdvcmtKb2IpOgor
ICAgICAgICAoV2ViQ29yZTo6TmV0d29ya0pvYjo6aW5pdGlhbGl6ZSk6CisgICAgICAgIChXZWJD
b3JlOjpOZXR3b3JrSm9iOjpjYW5jZWxKb2IpOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya0pv
Yjo6c2VuZFJlc3BvbnNlSWZOZWVkZWQpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvYmxh
Y2tiZXJyeS9OZXR3b3JrSm9iLmg6CisgICAgICAgIChOZXR3b3JrSm9iKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvTmV0d29ya01hbmFnZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TmV0d29ya01hbmFnZXI6OnN0YXJ0Sm9iKToKKwogMjAxMi0wNS0wOSAgU2hpbnlh
IEthd2FuYWthICA8c2hpbnlha0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUG9zaXRpb24gc2hv
dWxkIGJlIGFibGUgdG8gaGF2ZSBTaGFkb3dSb290IGFzIGEgY29udGFpbmVyLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L05ldHdvcmtKb2Iu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L05ldHdvcmtK
b2IuY3BwCmluZGV4IDQyYTljM2UxMWZmNDBlYjNkNmU2MWE1NzQ0YTM4NjIxMWIwMmEzNDguLjUw
ZTAzZjg2NDMxZDVhMmI1YTQ0YzEyODAzNzAyMzg2OWU3YTE3MzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9OZXR3b3JrSm9iLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvTmV0d29ya0pvYi5j
cHAKQEAgLTIwLDcgKzIwLDYgQEAKICNpbmNsdWRlICJOZXR3b3JrSm9iLmgiCiAKICNpbmNsdWRl
ICJBYm91dERhdGEuaCIKLSNpbmNsdWRlICJCYXNlNjQuaCIKICNpbmNsdWRlICJDaHJvbWUuaCIK
ICNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKICNpbmNsdWRlICJDb29raWVNYW5hZ2VyLmgiCkBA
IC00MSw2ICs0MCw3IEBACiAjaW5jbHVkZSA8QmxhY2tCZXJyeVBsYXRmb3JtTG9nLmg+CiAjaW5j
bHVkZSA8QmxhY2tCZXJyeVBsYXRmb3JtV2ViS2l0Q3JlZGl0cy5oPgogI2luY2x1ZGUgPEJ1aWxk
SW5mb3JtYXRpb24uaD4KKyNpbmNsdWRlIDxMb2NhbGl6ZVJlc291cmNlLmg+CiAjaW5jbHVkZSA8
bmV0d29yay9NdWx0aXBhcnRTdHJlYW0uaD4KICNpbmNsdWRlIDxuZXR3b3JrL05ldHdvcmtSZXF1
ZXN0Lmg+CiAjaW5jbHVkZSA8bmV0d29yay9OZXR3b3JrU3RyZWFtRmFjdG9yeS5oPgpAQCAtNjUs
MzkgKzY1LDEyIEBAIGlubGluZSBzdGF0aWMgYm9vbCBpc1VuYXV0aG9yaXplZChpbnQgc3RhdHVz
Q29kZSkKICAgICByZXR1cm4gc3RhdHVzQ29kZSA9PSA0MDE7CiB9CiAKLXN0YXRpYyB2b2lkIGVz
Y2FwZURlY29kZShjb25zdCBjaGFyKiBzcmMsIGludCBsZW5ndGgsIFZlY3RvcjxjaGFyPiYgb3V0
KQotewotICAgIG91dC5yZXNpemUobGVuZ3RoKTsKLSAgICBjb25zdCBjaGFyKiBjb25zdCBzcmNF
bmQgPSBzcmMgKyBsZW5ndGg7Ci0gICAgY2hhciogZHN0ID0gb3V0LmRhdGEoKTsKLSAgICBmb3Ig
KDsgc3JjIDwgc3JjRW5kOyApIHsKLSAgICAgICAgY2hhciBpbnB1dENoYXIgPSAqc3JjKys7Ci0g
ICAgICAgIGlmIChpbnB1dENoYXIgPT0gJyUnICYmIHNyYyArIDIgPD0gc3JjRW5kKSB7Ci0gICAg
ICAgICAgICBpbnQgZGlnaXQxID0gMDsKLSAgICAgICAgICAgIGNoYXIgY2hhcmFjdGVyID0gKnNy
YysrOwotICAgICAgICAgICAgaWYgKGlzQVNDSUlIZXhEaWdpdChjaGFyYWN0ZXIpKQotICAgICAg
ICAgICAgICAgIGRpZ2l0MSA9IHRvQVNDSUlIZXhWYWx1ZShjaGFyYWN0ZXIpOwotCi0gICAgICAg
ICAgICBpbnQgZGlnaXQyID0gMDsKLSAgICAgICAgICAgIGNoYXJhY3RlciA9ICpzcmMrKzsKLSAg
ICAgICAgICAgIGlmIChpc0FTQ0lJSGV4RGlnaXQoY2hhcmFjdGVyKSkKLSAgICAgICAgICAgICAg
ICBkaWdpdDIgPSB0b0FTQ0lJSGV4VmFsdWUoY2hhcmFjdGVyKTsKLQotICAgICAgICAgICAgKmRz
dCsrID0gKGRpZ2l0MSA8PCA0KSB8IGRpZ2l0MjsKLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAg
ICAqZHN0KysgPSBpbnB1dENoYXI7Ci0gICAgfQotICAgIG91dC5yZXNpemUoZHN0IC0gb3V0LmRh
dGEoKSk7Ci19Ci0KIE5ldHdvcmtKb2I6Ok5ldHdvcmtKb2IoKQogICAgIDogbV9wbGF5ZXJJZCgw
KQotICAgICwgbV9sb2FkRGF0YVRpbWVyKHRoaXMsICZOZXR3b3JrSm9iOjpmaXJlTG9hZERhdGFU
aW1lcikKICAgICAsIG1fbG9hZEFib3V0VGltZXIodGhpcywgJk5ldHdvcmtKb2I6OmZpcmVMb2Fk
QWJvdXRUaW1lcikKICAgICAsIG1fZGVsZXRlSm9iVGltZXIodGhpcywgJk5ldHdvcmtKb2I6OmZp
cmVEZWxldGVKb2JUaW1lcikKICAgICAsIG1fc3RyZWFtRmFjdG9yeSgwKQogICAgICwgbV9pc0Zp
bGUoZmFsc2UpCi0gICAgLCBtX2lzRGF0YShmYWxzZSkKICAgICAsIG1faXNBYm91dChmYWxzZSkK
ICAgICAsIG1faXNGVFAoZmFsc2UpCiAgICAgLCBtX2lzRlRQRGlyKHRydWUpCkBAIC0xMzQsNyAr
MTA3LDYgQEAgYm9vbCBOZXR3b3JrSm9iOjppbml0aWFsaXplKGludCBwbGF5ZXJJZCwKIAogICAg
IG1fcmVzcG9uc2Uuc2V0VVJMKHVybCk7CiAgICAgbV9pc0ZpbGUgPSB1cmwucHJvdG9jb2xJcygi
ZmlsZSIpIHx8IHVybC5wcm90b2NvbElzKCJsb2NhbCIpOwotICAgIG1faXNEYXRhID0gdXJsLnBy
b3RvY29sSXMoImRhdGEiKTsKICAgICBtX2lzQWJvdXQgPSB1cmwucHJvdG9jb2xJcygiYWJvdXQi
KTsKICAgICBtX2lzRlRQID0gdXJsLnByb3RvY29sSXMoImZ0cCIpOwogCkBAIC0xNjAsOCArMTMy
LDggQEAgYm9vbCBOZXR3b3JrSm9iOjppbml0aWFsaXplKGludCBwbGF5ZXJJZCwKICAgICAgICAg
bV9pc092ZXJyaWRlQ29udGVudFR5cGUgPSB0cnVlOwogICAgIH0KIAotICAgIC8vIE5vIG5lZWQg
dG8gY3JlYXRlIHRoZSBzdHJlYW1zIGZvciBkYXRhIGFuZCBhYm91dC4KLSAgICBpZiAobV9pc0Rh
dGEgfHwgbV9pc0Fib3V0KQorICAgIC8vIE5vIG5lZWQgdG8gY3JlYXRlIHRoZSBzdHJlYW1zIGZv
ciBhYm91dC4KKyAgICBpZiAobV9pc0Fib3V0KQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAg
IGlmICghcmVxdWVzdC5nZXRTdWdnZXN0ZWRTYXZlTmFtZSgpLmVtcHR5KCkpIHsKQEAgLTE4OCwx
MSArMTYwLDYgQEAgaW50IE5ldHdvcmtKb2I6OmNhbmNlbEpvYigpCiAKICAgICAvLyBDYW5jZWwg
am9icyBsb2FkaW5nIGxvY2FsIGRhdGEgYnkga2lsbGluZyB0aGUgdGltZXIsIGFuZCBqb2JzCiAg
ICAgLy8gZ2V0dGluZyBkYXRhIGZyb20gdGhlIG5ldHdvcmsgYnkgY2FsbGluZyB0aGUgaW5oZXJp
dGVkIFVSTFN0cmVhbTo6Y2FuY2VsLgotICAgIGlmIChtX2xvYWREYXRhVGltZXIuaXNBY3RpdmUo
KSkgewotICAgICAgICBtX2xvYWREYXRhVGltZXIuc3RvcCgpOwotICAgICAgICBub3RpZnlDbG9z
ZShCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6RmlsdGVyU3RyZWFtOjpTdGF0dXNDYW5jZWxsZWQpOwot
ICAgICAgICByZXR1cm4gMDsKLSAgICB9CiAKICAgICBpZiAobV9sb2FkQWJvdXRUaW1lci5pc0Fj
dGl2ZSgpKSB7CiAgICAgICAgIG1fbG9hZEFib3V0VGltZXIuc3RvcCgpOwpAQCAtNjEyLDcgKzU3
OSw5IEBAIHZvaWQgTmV0d29ya0pvYjo6c2VuZFJlc3BvbnNlSWZOZWVkZWQoKQogICAgIGlmIChp
c0Vycm9yKG1fZXh0ZW5kZWRTdGF0dXNDb2RlKSAmJiAhbV9kYXRhUmVjZWl2ZWQpCiAgICAgICAg
IHJldHVybjsKIAotICAgIFN0cmluZyB1cmxGaWxlbmFtZSA9IG1fcmVzcG9uc2UudXJsKCkubGFz
dFBhdGhDb21wb25lbnQoKTsKKyAgICBTdHJpbmcgdXJsRmlsZW5hbWU7CisgICAgaWYgKCFtX3Jl
c3BvbnNlLnVybCgpLnByb3RvY29sSXNEYXRhKCkgJiYgIW1fcmVzcG9uc2UudXJsKCkucHJvdG9j
b2xJcygiYWJvdXQiKSkKKyAgICAgICAgdXJsRmlsZW5hbWUgPSBtX3Jlc3BvbnNlLnVybCgpLmxh
c3RQYXRoQ29tcG9uZW50KCk7CiAKICAgICAvLyBHZXQgdGhlIE1JTUUgdHlwZSB0aGF0IHdhcyBz
ZXQgYnkgdGhlIGNvbnRlbnQgc25pZmZlcgogICAgIC8vIGlmIHRoZXJlJ3Mgbm8gY3VzdG9tIHNu
aWZmZXIgaGVhZGVyLCB0cnkgdG8gc2V0IGl0IGZyb20gdGhlIENvbnRlbnQtVHlwZSBoZWFkZXIK
QEAgLTYzNSwxOCArNjA0LDE4IEBAIHZvaWQgTmV0d29ya0pvYjo6c2VuZFJlc3BvbnNlSWZOZWVk
ZWQoKQogICAgICAgICBtX3Jlc3BvbnNlLnNldEV4cGVjdGVkQ29udGVudExlbmd0aChjb250ZW50
TGVuZ3RoLnRvSW50NjQoKSk7CiAKICAgICAvLyBTZXQgc3VnZ2VzdGVkIGZpbGVuYW1lIGZvciBk
b3dubG9hZHMgZnJvbSB0aGUgQ29udGVudC1EaXNwb3NpdGlvbiBoZWFkZXI7IGlmIHRoaXMgZmFp
bHMsCi0gICAgLy8gZmlsbCBpdCBpbiBmcm9tIHRoZSB1cmwgYW5kIHNuaWZmZWQgbWltZSB0eXBl
O1NraXAgdGhpcyBmb3IgZGF0YSBhbmQgYWJvdXQgVVJMcywKKyAgICAvLyBmaWxsIGl0IGluIGZy
b20gdGhlIHVybCBhbmQgc25pZmZlZCBtaW1lIHR5cGU7U2tpcCB0aGlzIGZvciBhYm91dCBVUkxz
LAogICAgIC8vIGJlY2F1c2UgdGhleSBoYXZlIG5vIENvbnRlbnQtRGlzcG9zaXRpb24gaGVhZGVy
IGFuZCB0aGUgZm9ybWF0IGlzIHdyb25nIHRvIGJlIGEgZmlsZW5hbWUuCi0gICAgaWYgKCFtX2lz
RGF0YSAmJiAhbV9pc0Fib3V0KSB7CisgICAgaWYgKCFtX2lzQWJvdXQpIHsKICAgICAgICAgU3Ry
aW5nIHN1Z2dlc3RlZEZpbGVuYW1lID0gZmlsZW5hbWVGcm9tSFRUUENvbnRlbnREaXNwb3NpdGlv
bihtX2NvbnRlbnREaXNwb3NpdGlvbik7CiAgICAgICAgIGlmIChzdWdnZXN0ZWRGaWxlbmFtZS5p
c0VtcHR5KCkpIHsKICAgICAgICAgICAgIC8vIENoZWNrIGFuZCBzZWUgaWYgYW4gZXh0ZW5zaW9u
IGFscmVhZHkgZXhpc3RzLgogICAgICAgICAgICAgU3RyaW5nIG1pbWVFeHRlbnNpb24gPSBNSU1F
VHlwZVJlZ2lzdHJ5OjpnZXRQcmVmZXJyZWRFeHRlbnNpb25Gb3JNSU1FVHlwZShtaW1lVHlwZSk7
CiAgICAgICAgICAgICBpZiAodXJsRmlsZW5hbWUuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICAg
ICAgaWYgKG1pbWVFeHRlbnNpb24uaXNFbXB0eSgpKSAvLyBObyBleHRlbnNpb24gZm91bmQgZm9y
IHRoZSBtaW1lVHlwZS4KLSAgICAgICAgICAgICAgICAgICAgc3VnZ2VzdGVkRmlsZW5hbWUgPSBT
dHJpbmcoIlVudGl0bGVkIik7CisgICAgICAgICAgICAgICAgICAgIHN1Z2dlc3RlZEZpbGVuYW1l
ID0gU3RyaW5nKEJsYWNrQmVycnk6OlBsYXRmb3JtOjpMb2NhbGl6ZVJlc291cmNlOjpnZXRTdHJp
bmcoQmxhY2tCZXJyeTo6UGxhdGZvcm06OkZJTEVOQU1FX1VOVElUTEVEKSk7CiAgICAgICAgICAg
ICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICBzdWdnZXN0ZWRGaWxlbmFtZSA9IFN0cmlu
ZygiVW50aXRsZWQiKSArICIuIiArIG1pbWVFeHRlbnNpb247CisgICAgICAgICAgICAgICAgICAg
IHN1Z2dlc3RlZEZpbGVuYW1lID0gU3RyaW5nKEJsYWNrQmVycnk6OlBsYXRmb3JtOjpMb2NhbGl6
ZVJlc291cmNlOjpnZXRTdHJpbmcoQmxhY2tCZXJyeTo6UGxhdGZvcm06OkZJTEVOQU1FX1VOVElU
TEVEKSkgKyAiLiIgKyBtaW1lRXh0ZW5zaW9uOwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAg
ICAgICAgICAgICBpZiAodXJsRmlsZW5hbWUucmV2ZXJzZUZpbmQoJy4nKSA9PSBub3RGb3VuZCAm
JiAhbWltZUV4dGVuc2lvbi5pc0VtcHR5KCkpCiAgICAgICAgICAgICAgICAgICAgc3VnZ2VzdGVk
RmlsZW5hbWUgPSB1cmxGaWxlbmFtZSArICcuJyArIG1pbWVFeHRlbnNpb247CkBAIC02NzUsNzIg
KzY0NCw2IEBAIHZvaWQgTmV0d29ya0pvYjo6c2VuZE11bHRpcGFydFJlc3BvbnNlSWZOZWVkZWQo
KQogICAgIH0KIH0KIAotdm9pZCBOZXR3b3JrSm9iOjpwYXJzZURhdGEoKQotewotICAgIFZlY3Rv
cjxjaGFyPiByZXN1bHQ7Ci0KLSAgICBTdHJpbmcgY29udGVudFR5cGUoInRleHQvcGxhaW47Y2hh
cnNldD1VUy1BU0NJSSIpOwotCi0gICAgU3RyaW5nIGRhdGEobV9yZXNwb25zZS51cmwoKS5zdHJp
bmcoKS5zdWJzdHJpbmcoNSkpOwotICAgIFZlY3RvcjxTdHJpbmc+IGhwYXJ0czsKLSAgICBib29s
IGlzQmFzZTY0ID0gZmFsc2U7Ci0KLSAgICBzaXplX3QgaW5kZXggPSBkYXRhLmZpbmQoJywnKTsK
LSAgICBpZiAoaW5kZXggIT0gbm90Rm91bmQgJiYgaW5kZXggPiAwKSB7Ci0gICAgICAgIGNvbnRl
bnRUeXBlID0gZGF0YS5sZWZ0KGluZGV4KS5sb3dlcigpOwotICAgICAgICBkYXRhID0gZGF0YS5z
dWJzdHJpbmcoaW5kZXggKyAxKTsKLQotICAgICAgICBjb250ZW50VHlwZS5zcGxpdCgnOycsIGhw
YXJ0cyk7Ci0gICAgICAgIFZlY3RvcjxTdHJpbmc+OjppdGVyYXRvciBpOwotICAgICAgICBmb3Ig
KGkgPSBocGFydHMuYmVnaW4oKTsgaSAhPSBocGFydHMuZW5kKCk7ICsraSkgewotICAgICAgICAg
ICAgaWYgKGktPnN0cmlwV2hpdGVTcGFjZSgpLmxvd2VyKCkgPT0gImJhc2U2NCIpIHsKLSAgICAg
ICAgICAgICAgICBpc0Jhc2U2NCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgU3RyaW5nIHZhbHVl
ID0gKmk7Ci0gICAgICAgICAgICAgICAgZG8gewotICAgICAgICAgICAgICAgICAgICBpZiAoKmkg
PT0gdmFsdWUpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGludCBwb3NpdGlvbiA9IGkgLSBo
cGFydHMuYmVnaW4oKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGhwYXJ0cy5yZW1vdmUocG9z
aXRpb24pOwotICAgICAgICAgICAgICAgICAgICAgICAgaSA9IGhwYXJ0cy5iZWdpbigpICsgcG9z
aXRpb247Ci0gICAgICAgICAgICAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgICAgICAgICAg
ICAgKytpOwotICAgICAgICAgICAgICAgIH0gd2hpbGUgKGkgIT0gaHBhcnRzLmVuZCgpKTsKLSAg
ICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBj
b250ZW50VHlwZSA9IFN0cmluZygpOwotICAgICAgICBmb3IgKGkgPSBocGFydHMuYmVnaW4oKTsg
aSAhPSBocGFydHMuZW5kKCk7ICsraSkgewotICAgICAgICAgICAgaWYgKGkgPiBocGFydHMuYmVn
aW4oKSkKLSAgICAgICAgICAgICAgICBjb250ZW50VHlwZSArPSAiLCI7Ci0KLSAgICAgICAgICAg
IGNvbnRlbnRUeXBlICs9ICppOwotICAgICAgICB9Ci0gICAgfSBlbHNlIGlmICghaW5kZXgpCi0g
ICAgICAgIGRhdGEgPSBkYXRhLnN1YnN0cmluZygxKTsgLy8gQnJva2VuIGhlYWRlci4KLQotICAg
IHsKLSAgICAgICAgQ1N0cmluZyBsYXRpbiA9IGRhdGEubGF0aW4xKCk7Ci0gICAgICAgIGVzY2Fw
ZURlY29kZShsYXRpbi5kYXRhKCksIGxhdGluLmxlbmd0aCgpLCByZXN1bHQpOwotICAgIH0KLQot
ICAgIGlmIChpc0Jhc2U2NCkgewotICAgICAgICBTdHJpbmcgcyhyZXN1bHQuZGF0YSgpLCByZXN1
bHQuc2l6ZSgpKTsKLSAgICAgICAgQ1N0cmluZyBsYXRpbiA9IHMucmVtb3ZlQ2hhcmFjdGVycyhp
c1NwYWNlT3JOZXdsaW5lKS5sYXRpbjEoKTsKLSAgICAgICAgcmVzdWx0LmNsZWFyKCk7Ci0gICAg
ICAgIHJlc3VsdC5hcHBlbmQobGF0aW4uZGF0YSgpLCBsYXRpbi5sZW5ndGgoKSk7Ci0gICAgICAg
IFZlY3RvcjxjaGFyPiBieXRlc091dDsKLSAgICAgICAgaWYgKGJhc2U2NERlY29kZShyZXN1bHQs
IGJ5dGVzT3V0KSkKLSAgICAgICAgICAgIHJlc3VsdC5zd2FwKGJ5dGVzT3V0KTsKLSAgICAgICAg
ZWxzZQotICAgICAgICAgICAgcmVzdWx0LmNsZWFyKCk7Ci0gICAgfQotCi0gICAgbm90aWZ5U3Rh
dHVzUmVjZWl2ZWQocmVzdWx0LmlzRW1wdHkoKSA/IDQwNCA6IDIwMCwgMCk7Ci0gICAgbm90aWZ5
U3RyaW5nSGVhZGVyUmVjZWl2ZWQoIkNvbnRlbnQtVHlwZSIsIGNvbnRlbnRUeXBlKTsKLSAgICBu
b3RpZnlTdHJpbmdIZWFkZXJSZWNlaXZlZCgiQ29udGVudC1MZW5ndGgiLCBTdHJpbmc6Om51bWJl
cihyZXN1bHQuc2l6ZSgpKSk7Ci0gICAgbm90aWZ5RGF0YVJlY2VpdmVkUGxhaW4ocmVzdWx0LmRh
dGEoKSwgcmVzdWx0LnNpemUoKSk7Ci0gICAgbm90aWZ5Q2xvc2UoQmxhY2tCZXJyeTo6UGxhdGZv
cm06OkZpbHRlclN0cmVhbTo6U3RhdHVzU3VjY2Vzcyk7Ci19Ci0KIGJvb2wgTmV0d29ya0pvYjo6
aGFuZGxlQXV0aEhlYWRlcihjb25zdCBQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBlIHNwYWNlLCBj
b25zdCBTdHJpbmcmIGhlYWRlcikKIHsKICAgICBpZiAoIW1faGFuZGxlKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L05ldHdvcmtKb2IuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9OZXR3b3JrSm9iLmgK
aW5kZXggYTE2MTE3YWMwNjBlMDZmODk1OWI3MmUzMzRjYmNjZjI5N2QxMDAzOS4uMmJiNTU3OTYw
Y2Y1MmU2MmE2MjM3ZDhkMzA5MTRkZjVlYTQyODNlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L05ldHdvcmtKb2IuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvTmV0d29ya0pvYi5oCkBAIC02MCw3
ICs2MCw2IEBAIHB1YmxpYzoKICAgICBib29sIGlzUnVubmluZygpIGNvbnN0IHsgcmV0dXJuIG1f
aXNSdW5uaW5nOyB9CiAjZW5kaWYKICAgICBib29sIGlzQ2FuY2VsbGVkKCkgY29uc3QgeyByZXR1
cm4gbV9jYW5jZWxsZWQ7IH0KLSAgICB2b2lkIGxvYWREYXRhVVJMKCkgeyBtX2xvYWREYXRhVGlt
ZXIuc3RhcnRPbmVTaG90KDApOyB9CiAgICAgdm9pZCBsb2FkQWJvdXRVUkwoKTsKICAgICBpbnQg
Y2FuY2VsSm9iKCk7CiAgICAgYm9vbCBpc0RlZmVycmluZ0xvYWRpbmcoKSBjb25zdCB7IHJldHVy
biBtX2RlZmVyTG9hZGluZ0NvdW50ID4gMDsgfQpAQCAtMTEzLDExICsxMTIsNiBAQCBwcml2YXRl
OgogICAgIHZvaWQgc2VuZFJlc3BvbnNlSWZOZWVkZWQoKTsKICAgICB2b2lkIHNlbmRNdWx0aXBh
cnRSZXNwb25zZUlmTmVlZGVkKCk7CiAKLSAgICB2b2lkIGZpcmVMb2FkRGF0YVRpbWVyKFRpbWVy
PE5ldHdvcmtKb2I+KikKLSAgICB7Ci0gICAgICAgIHBhcnNlRGF0YSgpOwotICAgIH0KLQogICAg
IHZvaWQgZmlyZUxvYWRBYm91dFRpbWVyKFRpbWVyPE5ldHdvcmtKb2I+KikKICAgICB7CiAgICAg
ICAgIGhhbmRsZUFib3V0KCk7CkBAIC0xMjUsOCArMTE5LDYgQEAgcHJpdmF0ZToKIAogICAgIHZv
aWQgZmlyZURlbGV0ZUpvYlRpbWVyKFRpbWVyPE5ldHdvcmtKb2I+Kik7CiAKLSAgICB2b2lkIHBh
cnNlRGF0YSgpOwotCiAgICAgdm9pZCBoYW5kbGVBYm91dCgpOwogCiAgICAgLy8gVGhlIHNlcnZl
ciBuZWVkcyBhdXRoZW50aWNhdGlvbiBjcmVkZW50aWFscy4gU2VhcmNoIGluIHRoZQpAQCAtMTUx
LDcgKzE0Myw2IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fcGFnZUdyb3VwTmFtZTsKICAgICBS
ZWZQdHI8UmVzb3VyY2VIYW5kbGU+IG1faGFuZGxlOwogICAgIFJlc291cmNlUmVzcG9uc2UgbV9y
ZXNwb25zZTsKLSAgICBUaW1lcjxOZXR3b3JrSm9iPiBtX2xvYWREYXRhVGltZXI7CiAgICAgVGlt
ZXI8TmV0d29ya0pvYj4gbV9sb2FkQWJvdXRUaW1lcjsKICAgICBPd25QdHI8UmVzb3VyY2VSZXNw
b25zZT4gbV9tdWx0aXBhcnRSZXNwb25zZTsKICAgICBUaW1lcjxOZXR3b3JrSm9iPiBtX2RlbGV0
ZUpvYlRpbWVyOwpAQCAtMTYwLDcgKzE1MSw2IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fY29u
dGVudERpc3Bvc2l0aW9uOwogICAgIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpOZXR3b3JrU3RyZWFt
RmFjdG9yeSogbV9zdHJlYW1GYWN0b3J5OwogICAgIGJvb2wgbV9pc0ZpbGU7Ci0gICAgYm9vbCBt
X2lzRGF0YTsKICAgICBib29sIG1faXNBYm91dDsKICAgICBib29sIG1faXNGVFA7CiAgICAgYm9v
bCBtX2lzRlRQRGlyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9ibGFja2JlcnJ5L05ldHdvcmtNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvYmxhY2tiZXJyeS9OZXR3b3JrTWFuYWdlci5jcHAKaW5kZXggNDU4ZWZiMDMyMjQz
NWM4OTBjYTA4ZTViMGI3NTk5YTU0NTM1OWVjMC4uYmNlYjFkYTE4ZjdmNWJlMjE3NTcyNDM1OGY1
NWUxNWUzZjA1MzdlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9ibGFja2JlcnJ5L05ldHdvcmtNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvTmV0d29ya01hbmFnZXIuY3BwCkBAIC0xMzYsMTEgKzEz
Niw2IEBAIGJvb2wgTmV0d29ya01hbmFnZXI6OnN0YXJ0Sm9iKGludCBwbGF5ZXJJZCwgY29uc3Qg
U3RyaW5nJiBwYWdlR3JvdXBOYW1lLCBQYXNzUmVmCiAKICAgICBtX2pvYnMuYXBwZW5kKG5ldHdv
cmtKb2IpOwogCi0gICAgaWYgKHVybC5wcm90b2NvbElzKCJkYXRhIikpIHsKLSAgICAgICAgbmV0
d29ya0pvYi0+bG9hZERhdGFVUkwoKTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCiAg
ICAgaWYgKHVybC5wcm90b2NvbElzKCJhYm91dCIpKSB7CiAgICAgICAgIC8vIElmIHRoZSBwcm90
b2NvbCBtYXRjaGVzICJhYm91dCIsIGxvYWRBYm91dFVSTCBzaG91bGQgcmVjb2duaXplIGFuZCBo
YW5kbGUgaXQuCiAgICAgICAgIG5ldHdvcmtKb2ItPmxvYWRBYm91dFVSTCgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141066</attachid>
            <date>2012-05-09 17:47:10 -0700</date>
            <delta_ts>2012-05-09 18:12:51 -0700</delta_ts>
            <desc>final patch for landing</desc>
            <filename>final_data_scheme_refactor.patch</filename>
            <type>text/plain</type>
            <size>12299</size>
            <attacher name="Charles Wei">charles.wei</attacher>
            
              <data encoding="base64">RnJvbSAxMTcyNmRmZTkxYjU1ODZmZmU4YWU0NWE0MTcxZWM1NDg3YmRhYTk1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBDaGFybGVzIFdlaSA8Y2hhcmxlcy53ZWlAdG9yY2htb2JpbGUu
Y29tLmNuPgpEYXRlOiBUaHUsIDEwIE1heSAyMDEyIDA4OjUwOjE5ICswODAwClN1YmplY3Q6IFtQ
QVRDSF0gW0JsYWNrQmVycnldICBSZWZhY3RvciBkYXRhIHNjaGVtZSBzdXBwb3J0CiBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODU5MzgKClJldmlld2VkIGJ5IFJvYiBC
dWlzLgoKV2Ugd2lsbCBjcmVhdGUgYSBEYXRhU3RyZWFtIGluIG91ciBwbGF0Zm9ybSByZXBvc2l0
b3J5LApzbyB0aGF0IGNhbiBiZSB3cmFwcGVkIHVwIGJ5IE5ldHdvcmtKb2IgZm9yIHdlYmtpdCBy
ZW5kZXJpbmcsCmFuZCBieSBEb3dubG9hZFN0cmVhbSBmb3IgZG93bmxvYWRpbmcuCgpSZWZhY3Rv
ciwgbm8gbmV3IHRlc3RzLgoKKiBwbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvTmV0d29ya0pv
Yi5jcHA6CihXZWJDb3JlOjpOZXR3b3JrSm9iOjpOZXR3b3JrSm9iKToKKFdlYkNvcmU6Ok5ldHdv
cmtKb2I6OmluaXRpYWxpemUpOgooV2ViQ29yZTo6TmV0d29ya0pvYjo6Y2FuY2VsSm9iKToKKFdl
YkNvcmU6Ok5ldHdvcmtKb2I6OnNlbmRSZXNwb25zZUlmTmVlZGVkKToKKiBwbGF0Zm9ybS9uZXR3
b3JrL2JsYWNrYmVycnkvTmV0d29ya0pvYi5oOgooTmV0d29ya0pvYik6CiogcGxhdGZvcm0vbmV0
d29yay9ibGFja2JlcnJ5L05ldHdvcmtNYW5hZ2VyLmNwcDoKKFdlYkNvcmU6Ok5ldHdvcmtNYW5h
Z2VyOjpzdGFydEpvYik6Ci0tLQogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgIDIzICsrKysKIC4uLi9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVy
cnkvTmV0d29ya0pvYi5jcHAgICAgIHwgIDExOSArKy0tLS0tLS0tLS0tLS0tLS0tLQogLi4uL3Bs
YXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9OZXR3b3JrSm9iLmggICAgICAgfCAgIDEwIC0tCiAu
Li4vcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L05ldHdvcmtNYW5hZ2VyLmNwcCB8ICAgIDUg
LQogNCBmaWxlcyBjaGFuZ2VkLCAzMyBpbnNlcnRpb25zKCspLCAxMjQgZGVsZXRpb25zKC0pCgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IGYxNTU5ODYuLmM5YmI1MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBA
QAorMjAxMi0wNS0wOSAgQ2hhcmxlcyBXZWkgIDxjaGFybGVzLndlaUB0b3JjaG1vYmlsZS5jb20u
Y24+CisKKyAgICAgICAgW0JsYWNrQmVycnldICBSZWZhY3RvciBkYXRhIHNjaGVtZSBzdXBwb3J0
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTkzOAor
CisgICAgICAgIFJldmlld2VkIGJ5IFJvYiBCdWlzLgorCisgICAgICAgIFdlIHdpbGwgY3JlYXRl
IGEgRGF0YVN0cmVhbSBpbiBvdXIgcGxhdGZvcm0gcmVwb3NpdG9yeSwKKyAgICAgICAgc28gdGhh
dCBjYW4gYmUgd3JhcHBlZCB1cCBieSBOZXR3b3JrSm9iIGZvciB3ZWJraXQgcmVuZGVyaW5nLAor
ICAgICAgICBhbmQgYnkgRG93bmxvYWRTdHJlYW0gZm9yIGRvd25sb2FkaW5nLgorCisgICAgICAg
IFJlZmFjdG9yLCBubyBuZXcgdGVzdHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2Js
YWNrYmVycnkvTmV0d29ya0pvYi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrSm9iOjpO
ZXR3b3JrSm9iKToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtKb2I6OmluaXRpYWxpemUpOgor
ICAgICAgICAoV2ViQ29yZTo6TmV0d29ya0pvYjo6Y2FuY2VsSm9iKToKKyAgICAgICAgKFdlYkNv
cmU6Ok5ldHdvcmtKb2I6OnNlbmRSZXNwb25zZUlmTmVlZGVkKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9uZXR3b3JrL2JsYWNrYmVycnkvTmV0d29ya0pvYi5oOgorICAgICAgICAoTmV0d29ya0pvYik6
CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L05ldHdvcmtNYW5hZ2VyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtNYW5hZ2VyOjpzdGFydEpvYik6CisKIDIwMTIt
MDUtMDkgIFNoaW55YSBLYXdhbmFrYSAgPHNoaW55YWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFBvc2l0aW9uIHNob3VsZCBiZSBhYmxlIHRvIGhhdmUgU2hhZG93Um9vdCBhcyBhIGNvbnRhaW5l
ci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJy
eS9OZXR3b3JrSm9iLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2ti
ZXJyeS9OZXR3b3JrSm9iLmNwcAppbmRleCA0MmE5YzNlLi44MzU0YjEwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvTmV0d29ya0pvYi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L05ldHdvcmtK
b2IuY3BwCkBAIC0yMCw3ICsyMCw2IEBACiAjaW5jbHVkZSAiTmV0d29ya0pvYi5oIgogCiAjaW5j
bHVkZSAiQWJvdXREYXRhLmgiCi0jaW5jbHVkZSAiQmFzZTY0LmgiCiAjaW5jbHVkZSAiQ2hyb21l
LmgiCiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCiAjaW5jbHVkZSAiQ29va2llTWFuYWdlci5o
IgpAQCAtNDEsMTAgKzQwLDkgQEAKICNpbmNsdWRlIDxCbGFja0JlcnJ5UGxhdGZvcm1Mb2cuaD4K
ICNpbmNsdWRlIDxCbGFja0JlcnJ5UGxhdGZvcm1XZWJLaXRDcmVkaXRzLmg+CiAjaW5jbHVkZSA8
QnVpbGRJbmZvcm1hdGlvbi5oPgorI2luY2x1ZGUgPExvY2FsaXplUmVzb3VyY2UuaD4KICNpbmNs
dWRlIDxuZXR3b3JrL011bHRpcGFydFN0cmVhbS5oPgotI2luY2x1ZGUgPG5ldHdvcmsvTmV0d29y
a1JlcXVlc3QuaD4KICNpbmNsdWRlIDxuZXR3b3JrL05ldHdvcmtTdHJlYW1GYWN0b3J5Lmg+Ci0j
aW5jbHVkZSA8d3RmL0FTQ0lJQ1R5cGUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC02
NSwzOSArNjMsMTIgQEAgaW5saW5lIHN0YXRpYyBib29sIGlzVW5hdXRob3JpemVkKGludCBzdGF0
dXNDb2RlKQogICAgIHJldHVybiBzdGF0dXNDb2RlID09IDQwMTsKIH0KIAotc3RhdGljIHZvaWQg
ZXNjYXBlRGVjb2RlKGNvbnN0IGNoYXIqIHNyYywgaW50IGxlbmd0aCwgVmVjdG9yPGNoYXI+JiBv
dXQpCi17Ci0gICAgb3V0LnJlc2l6ZShsZW5ndGgpOwotICAgIGNvbnN0IGNoYXIqIGNvbnN0IHNy
Y0VuZCA9IHNyYyArIGxlbmd0aDsKLSAgICBjaGFyKiBkc3QgPSBvdXQuZGF0YSgpOwotICAgIGZv
ciAoOyBzcmMgPCBzcmNFbmQ7ICkgewotICAgICAgICBjaGFyIGlucHV0Q2hhciA9ICpzcmMrKzsK
LSAgICAgICAgaWYgKGlucHV0Q2hhciA9PSAnJScgJiYgc3JjICsgMiA8PSBzcmNFbmQpIHsKLSAg
ICAgICAgICAgIGludCBkaWdpdDEgPSAwOwotICAgICAgICAgICAgY2hhciBjaGFyYWN0ZXIgPSAq
c3JjKys7Ci0gICAgICAgICAgICBpZiAoaXNBU0NJSUhleERpZ2l0KGNoYXJhY3RlcikpCi0gICAg
ICAgICAgICAgICAgZGlnaXQxID0gdG9BU0NJSUhleFZhbHVlKGNoYXJhY3Rlcik7Ci0KLSAgICAg
ICAgICAgIGludCBkaWdpdDIgPSAwOwotICAgICAgICAgICAgY2hhcmFjdGVyID0gKnNyYysrOwot
ICAgICAgICAgICAgaWYgKGlzQVNDSUlIZXhEaWdpdChjaGFyYWN0ZXIpKQotICAgICAgICAgICAg
ICAgIGRpZ2l0MiA9IHRvQVNDSUlIZXhWYWx1ZShjaGFyYWN0ZXIpOwotCi0gICAgICAgICAgICAq
ZHN0KysgPSAoZGlnaXQxIDw8IDQpIHwgZGlnaXQyOwotICAgICAgICB9IGVsc2UKLSAgICAgICAg
ICAgICpkc3QrKyA9IGlucHV0Q2hhcjsKLSAgICB9Ci0gICAgb3V0LnJlc2l6ZShkc3QgLSBvdXQu
ZGF0YSgpKTsKLX0KLQogTmV0d29ya0pvYjo6TmV0d29ya0pvYigpCiAgICAgOiBtX3BsYXllcklk
KDApCi0gICAgLCBtX2xvYWREYXRhVGltZXIodGhpcywgJk5ldHdvcmtKb2I6OmZpcmVMb2FkRGF0
YVRpbWVyKQogICAgICwgbV9sb2FkQWJvdXRUaW1lcih0aGlzLCAmTmV0d29ya0pvYjo6ZmlyZUxv
YWRBYm91dFRpbWVyKQogICAgICwgbV9kZWxldGVKb2JUaW1lcih0aGlzLCAmTmV0d29ya0pvYjo6
ZmlyZURlbGV0ZUpvYlRpbWVyKQogICAgICwgbV9zdHJlYW1GYWN0b3J5KDApCiAgICAgLCBtX2lz
RmlsZShmYWxzZSkKLSAgICAsIG1faXNEYXRhKGZhbHNlKQogICAgICwgbV9pc0Fib3V0KGZhbHNl
KQogICAgICwgbV9pc0ZUUChmYWxzZSkKICAgICAsIG1faXNGVFBEaXIodHJ1ZSkKQEAgLTEzNCw3
ICsxMDUsNiBAQCBib29sIE5ldHdvcmtKb2I6OmluaXRpYWxpemUoaW50IHBsYXllcklkLAogCiAg
ICAgbV9yZXNwb25zZS5zZXRVUkwodXJsKTsKICAgICBtX2lzRmlsZSA9IHVybC5wcm90b2NvbElz
KCJmaWxlIikgfHwgdXJsLnByb3RvY29sSXMoImxvY2FsIik7Ci0gICAgbV9pc0RhdGEgPSB1cmwu
cHJvdG9jb2xJcygiZGF0YSIpOwogICAgIG1faXNBYm91dCA9IHVybC5wcm90b2NvbElzKCJhYm91
dCIpOwogICAgIG1faXNGVFAgPSB1cmwucHJvdG9jb2xJcygiZnRwIik7CiAKQEAgLTE2MCw4ICsx
MzAsOCBAQCBib29sIE5ldHdvcmtKb2I6OmluaXRpYWxpemUoaW50IHBsYXllcklkLAogICAgICAg
ICBtX2lzT3ZlcnJpZGVDb250ZW50VHlwZSA9IHRydWU7CiAgICAgfQogCi0gICAgLy8gTm8gbmVl
ZCB0byBjcmVhdGUgdGhlIHN0cmVhbXMgZm9yIGRhdGEgYW5kIGFib3V0LgotICAgIGlmIChtX2lz
RGF0YSB8fCBtX2lzQWJvdXQpCisgICAgLy8gTm8gbmVlZCB0byBjcmVhdGUgdGhlIHN0cmVhbXMg
Zm9yIGFib3V0LgorICAgIGlmIChtX2lzQWJvdXQpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAg
ICAgaWYgKCFyZXF1ZXN0LmdldFN1Z2dlc3RlZFNhdmVOYW1lKCkuZW1wdHkoKSkgewpAQCAtMTg4
LDExICsxNTgsNiBAQCBpbnQgTmV0d29ya0pvYjo6Y2FuY2VsSm9iKCkKIAogICAgIC8vIENhbmNl
bCBqb2JzIGxvYWRpbmcgbG9jYWwgZGF0YSBieSBraWxsaW5nIHRoZSB0aW1lciwgYW5kIGpvYnMK
ICAgICAvLyBnZXR0aW5nIGRhdGEgZnJvbSB0aGUgbmV0d29yayBieSBjYWxsaW5nIHRoZSBpbmhl
cml0ZWQgVVJMU3RyZWFtOjpjYW5jZWwuCi0gICAgaWYgKG1fbG9hZERhdGFUaW1lci5pc0FjdGl2
ZSgpKSB7Ci0gICAgICAgIG1fbG9hZERhdGFUaW1lci5zdG9wKCk7Ci0gICAgICAgIG5vdGlmeUNs
b3NlKEJsYWNrQmVycnk6OlBsYXRmb3JtOjpGaWx0ZXJTdHJlYW06OlN0YXR1c0NhbmNlbGxlZCk7
Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KIAogICAgIGlmIChtX2xvYWRBYm91dFRpbWVyLmlz
QWN0aXZlKCkpIHsKICAgICAgICAgbV9sb2FkQWJvdXRUaW1lci5zdG9wKCk7CkBAIC02MTIsNyAr
NTc3LDkgQEAgdm9pZCBOZXR3b3JrSm9iOjpzZW5kUmVzcG9uc2VJZk5lZWRlZCgpCiAgICAgaWYg
KGlzRXJyb3IobV9leHRlbmRlZFN0YXR1c0NvZGUpICYmICFtX2RhdGFSZWNlaXZlZCkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgU3RyaW5nIHVybEZpbGVuYW1lID0gbV9yZXNwb25zZS51cmwoKS5s
YXN0UGF0aENvbXBvbmVudCgpOworICAgIFN0cmluZyB1cmxGaWxlbmFtZTsKKyAgICBpZiAoIW1f
cmVzcG9uc2UudXJsKCkucHJvdG9jb2xJc0RhdGEoKSAmJiAhbV9yZXNwb25zZS51cmwoKS5wcm90
b2NvbElzKCJhYm91dCIpKQorICAgICAgICB1cmxGaWxlbmFtZSA9IG1fcmVzcG9uc2UudXJsKCku
bGFzdFBhdGhDb21wb25lbnQoKTsKIAogICAgIC8vIEdldCB0aGUgTUlNRSB0eXBlIHRoYXQgd2Fz
IHNldCBieSB0aGUgY29udGVudCBzbmlmZmVyCiAgICAgLy8gaWYgdGhlcmUncyBubyBjdXN0b20g
c25pZmZlciBoZWFkZXIsIHRyeSB0byBzZXQgaXQgZnJvbSB0aGUgQ29udGVudC1UeXBlIGhlYWRl
cgpAQCAtNjM1LDE4ICs2MDIsMTggQEAgdm9pZCBOZXR3b3JrSm9iOjpzZW5kUmVzcG9uc2VJZk5l
ZWRlZCgpCiAgICAgICAgIG1fcmVzcG9uc2Uuc2V0RXhwZWN0ZWRDb250ZW50TGVuZ3RoKGNvbnRl
bnRMZW5ndGgudG9JbnQ2NCgpKTsKIAogICAgIC8vIFNldCBzdWdnZXN0ZWQgZmlsZW5hbWUgZm9y
IGRvd25sb2FkcyBmcm9tIHRoZSBDb250ZW50LURpc3Bvc2l0aW9uIGhlYWRlcjsgaWYgdGhpcyBm
YWlscywKLSAgICAvLyBmaWxsIGl0IGluIGZyb20gdGhlIHVybCBhbmQgc25pZmZlZCBtaW1lIHR5
cGU7U2tpcCB0aGlzIGZvciBkYXRhIGFuZCBhYm91dCBVUkxzLAorICAgIC8vIGZpbGwgaXQgaW4g
ZnJvbSB0aGUgdXJsIGFuZCBzbmlmZmVkIG1pbWUgdHlwZTtTa2lwIHRoaXMgZm9yIGFib3V0IFVS
THMsCiAgICAgLy8gYmVjYXVzZSB0aGV5IGhhdmUgbm8gQ29udGVudC1EaXNwb3NpdGlvbiBoZWFk
ZXIgYW5kIHRoZSBmb3JtYXQgaXMgd3JvbmcgdG8gYmUgYSBmaWxlbmFtZS4KLSAgICBpZiAoIW1f
aXNEYXRhICYmICFtX2lzQWJvdXQpIHsKKyAgICBpZiAoIW1faXNBYm91dCkgewogICAgICAgICBT
dHJpbmcgc3VnZ2VzdGVkRmlsZW5hbWUgPSBmaWxlbmFtZUZyb21IVFRQQ29udGVudERpc3Bvc2l0
aW9uKG1fY29udGVudERpc3Bvc2l0aW9uKTsKICAgICAgICAgaWYgKHN1Z2dlc3RlZEZpbGVuYW1l
LmlzRW1wdHkoKSkgewogICAgICAgICAgICAgLy8gQ2hlY2sgYW5kIHNlZSBpZiBhbiBleHRlbnNp
b24gYWxyZWFkeSBleGlzdHMuCiAgICAgICAgICAgICBTdHJpbmcgbWltZUV4dGVuc2lvbiA9IE1J
TUVUeXBlUmVnaXN0cnk6OmdldFByZWZlcnJlZEV4dGVuc2lvbkZvck1JTUVUeXBlKG1pbWVUeXBl
KTsKICAgICAgICAgICAgIGlmICh1cmxGaWxlbmFtZS5pc0VtcHR5KCkpIHsKICAgICAgICAgICAg
ICAgICBpZiAobWltZUV4dGVuc2lvbi5pc0VtcHR5KCkpIC8vIE5vIGV4dGVuc2lvbiBmb3VuZCBm
b3IgdGhlIG1pbWVUeXBlLgotICAgICAgICAgICAgICAgICAgICBzdWdnZXN0ZWRGaWxlbmFtZSA9
IFN0cmluZygiVW50aXRsZWQiKTsKKyAgICAgICAgICAgICAgICAgICAgc3VnZ2VzdGVkRmlsZW5h
bWUgPSBTdHJpbmcoQmxhY2tCZXJyeTo6UGxhdGZvcm06OkxvY2FsaXplUmVzb3VyY2U6OmdldFN0
cmluZyhCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6RklMRU5BTUVfVU5USVRMRUQpKTsKICAgICAgICAg
ICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIHN1Z2dlc3RlZEZpbGVuYW1lID0gU3Ry
aW5nKCJVbnRpdGxlZCIpICsgIi4iICsgbWltZUV4dGVuc2lvbjsKKyAgICAgICAgICAgICAgICAg
ICAgc3VnZ2VzdGVkRmlsZW5hbWUgPSBTdHJpbmcoQmxhY2tCZXJyeTo6UGxhdGZvcm06OkxvY2Fs
aXplUmVzb3VyY2U6OmdldFN0cmluZyhCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6RklMRU5BTUVfVU5U
SVRMRUQpKSArICIuIiArIG1pbWVFeHRlbnNpb247CiAgICAgICAgICAgICB9IGVsc2UgewogICAg
ICAgICAgICAgICAgIGlmICh1cmxGaWxlbmFtZS5yZXZlcnNlRmluZCgnLicpID09IG5vdEZvdW5k
ICYmICFtaW1lRXh0ZW5zaW9uLmlzRW1wdHkoKSkKICAgICAgICAgICAgICAgICAgICBzdWdnZXN0
ZWRGaWxlbmFtZSA9IHVybEZpbGVuYW1lICsgJy4nICsgbWltZUV4dGVuc2lvbjsKQEAgLTY3NSw3
MiArNjQyLDYgQEAgdm9pZCBOZXR3b3JrSm9iOjpzZW5kTXVsdGlwYXJ0UmVzcG9uc2VJZk5lZWRl
ZCgpCiAgICAgfQogfQogCi12b2lkIE5ldHdvcmtKb2I6OnBhcnNlRGF0YSgpCi17Ci0gICAgVmVj
dG9yPGNoYXI+IHJlc3VsdDsKLQotICAgIFN0cmluZyBjb250ZW50VHlwZSgidGV4dC9wbGFpbjtj
aGFyc2V0PVVTLUFTQ0lJIik7Ci0KLSAgICBTdHJpbmcgZGF0YShtX3Jlc3BvbnNlLnVybCgpLnN0
cmluZygpLnN1YnN0cmluZyg1KSk7Ci0gICAgVmVjdG9yPFN0cmluZz4gaHBhcnRzOwotICAgIGJv
b2wgaXNCYXNlNjQgPSBmYWxzZTsKLQotICAgIHNpemVfdCBpbmRleCA9IGRhdGEuZmluZCgnLCcp
OwotICAgIGlmIChpbmRleCAhPSBub3RGb3VuZCAmJiBpbmRleCA+IDApIHsKLSAgICAgICAgY29u
dGVudFR5cGUgPSBkYXRhLmxlZnQoaW5kZXgpLmxvd2VyKCk7Ci0gICAgICAgIGRhdGEgPSBkYXRh
LnN1YnN0cmluZyhpbmRleCArIDEpOwotCi0gICAgICAgIGNvbnRlbnRUeXBlLnNwbGl0KCc7Jywg
aHBhcnRzKTsKLSAgICAgICAgVmVjdG9yPFN0cmluZz46Oml0ZXJhdG9yIGk7Ci0gICAgICAgIGZv
ciAoaSA9IGhwYXJ0cy5iZWdpbigpOyBpICE9IGhwYXJ0cy5lbmQoKTsgKytpKSB7Ci0gICAgICAg
ICAgICBpZiAoaS0+c3RyaXBXaGl0ZVNwYWNlKCkubG93ZXIoKSA9PSAiYmFzZTY0IikgewotICAg
ICAgICAgICAgICAgIGlzQmFzZTY0ID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICBTdHJpbmcgdmFs
dWUgPSAqaTsKLSAgICAgICAgICAgICAgICBkbyB7Ci0gICAgICAgICAgICAgICAgICAgIGlmICgq
aSA9PSB2YWx1ZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgaW50IHBvc2l0aW9uID0gaSAt
IGhwYXJ0cy5iZWdpbigpOwotICAgICAgICAgICAgICAgICAgICAgICAgaHBhcnRzLnJlbW92ZShw
b3NpdGlvbik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpID0gaHBhcnRzLmJlZ2luKCkgKyBw
b3NpdGlvbjsKLSAgICAgICAgICAgICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgICAg
ICAgICArK2k7Ci0gICAgICAgICAgICAgICAgfSB3aGlsZSAoaSAhPSBocGFydHMuZW5kKCkpOwot
ICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAg
IGNvbnRlbnRUeXBlID0gU3RyaW5nKCk7Ci0gICAgICAgIGZvciAoaSA9IGhwYXJ0cy5iZWdpbigp
OyBpICE9IGhwYXJ0cy5lbmQoKTsgKytpKSB7Ci0gICAgICAgICAgICBpZiAoaSA+IGhwYXJ0cy5i
ZWdpbigpKQotICAgICAgICAgICAgICAgIGNvbnRlbnRUeXBlICs9ICIsIjsKLQotICAgICAgICAg
ICAgY29udGVudFR5cGUgKz0gKmk7Ci0gICAgICAgIH0KLSAgICB9IGVsc2UgaWYgKCFpbmRleCkK
LSAgICAgICAgZGF0YSA9IGRhdGEuc3Vic3RyaW5nKDEpOyAvLyBCcm9rZW4gaGVhZGVyLgotCi0g
ICAgewotICAgICAgICBDU3RyaW5nIGxhdGluID0gZGF0YS5sYXRpbjEoKTsKLSAgICAgICAgZXNj
YXBlRGVjb2RlKGxhdGluLmRhdGEoKSwgbGF0aW4ubGVuZ3RoKCksIHJlc3VsdCk7Ci0gICAgfQot
Ci0gICAgaWYgKGlzQmFzZTY0KSB7Ci0gICAgICAgIFN0cmluZyBzKHJlc3VsdC5kYXRhKCksIHJl
c3VsdC5zaXplKCkpOwotICAgICAgICBDU3RyaW5nIGxhdGluID0gcy5yZW1vdmVDaGFyYWN0ZXJz
KGlzU3BhY2VPck5ld2xpbmUpLmxhdGluMSgpOwotICAgICAgICByZXN1bHQuY2xlYXIoKTsKLSAg
ICAgICAgcmVzdWx0LmFwcGVuZChsYXRpbi5kYXRhKCksIGxhdGluLmxlbmd0aCgpKTsKLSAgICAg
ICAgVmVjdG9yPGNoYXI+IGJ5dGVzT3V0OwotICAgICAgICBpZiAoYmFzZTY0RGVjb2RlKHJlc3Vs
dCwgYnl0ZXNPdXQpKQotICAgICAgICAgICAgcmVzdWx0LnN3YXAoYnl0ZXNPdXQpOwotICAgICAg
ICBlbHNlCi0gICAgICAgICAgICByZXN1bHQuY2xlYXIoKTsKLSAgICB9Ci0KLSAgICBub3RpZnlT
dGF0dXNSZWNlaXZlZChyZXN1bHQuaXNFbXB0eSgpID8gNDA0IDogMjAwLCAwKTsKLSAgICBub3Rp
ZnlTdHJpbmdIZWFkZXJSZWNlaXZlZCgiQ29udGVudC1UeXBlIiwgY29udGVudFR5cGUpOwotICAg
IG5vdGlmeVN0cmluZ0hlYWRlclJlY2VpdmVkKCJDb250ZW50LUxlbmd0aCIsIFN0cmluZzo6bnVt
YmVyKHJlc3VsdC5zaXplKCkpKTsKLSAgICBub3RpZnlEYXRhUmVjZWl2ZWRQbGFpbihyZXN1bHQu
ZGF0YSgpLCByZXN1bHQuc2l6ZSgpKTsKLSAgICBub3RpZnlDbG9zZShCbGFja0JlcnJ5OjpQbGF0
Zm9ybTo6RmlsdGVyU3RyZWFtOjpTdGF0dXNTdWNjZXNzKTsKLX0KLQogYm9vbCBOZXR3b3JrSm9i
OjpoYW5kbGVBdXRoSGVhZGVyKGNvbnN0IFByb3RlY3Rpb25TcGFjZVNlcnZlclR5cGUgc3BhY2Us
IGNvbnN0IFN0cmluZyYgaGVhZGVyKQogewogICAgIGlmICghbV9oYW5kbGUpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvTmV0d29ya0pvYi5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L05ldHdvcmtKb2Iu
aAppbmRleCBhMTYxMTdhLi4yYmI1NTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvTmV0d29ya0pvYi5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9OZXR3b3JrSm9iLmgKQEAgLTYwLDcgKzYwLDYg
QEAgcHVibGljOgogICAgIGJvb2wgaXNSdW5uaW5nKCkgY29uc3QgeyByZXR1cm4gbV9pc1J1bm5p
bmc7IH0KICNlbmRpZgogICAgIGJvb2wgaXNDYW5jZWxsZWQoKSBjb25zdCB7IHJldHVybiBtX2Nh
bmNlbGxlZDsgfQotICAgIHZvaWQgbG9hZERhdGFVUkwoKSB7IG1fbG9hZERhdGFUaW1lci5zdGFy
dE9uZVNob3QoMCk7IH0KICAgICB2b2lkIGxvYWRBYm91dFVSTCgpOwogICAgIGludCBjYW5jZWxK
b2IoKTsKICAgICBib29sIGlzRGVmZXJyaW5nTG9hZGluZygpIGNvbnN0IHsgcmV0dXJuIG1fZGVm
ZXJMb2FkaW5nQ291bnQgPiAwOyB9CkBAIC0xMTMsMTEgKzExMiw2IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBzZW5kUmVzcG9uc2VJZk5lZWRlZCgpOwogICAgIHZvaWQgc2VuZE11bHRpcGFydFJlc3Bv
bnNlSWZOZWVkZWQoKTsKIAotICAgIHZvaWQgZmlyZUxvYWREYXRhVGltZXIoVGltZXI8TmV0d29y
a0pvYj4qKQotICAgIHsKLSAgICAgICAgcGFyc2VEYXRhKCk7Ci0gICAgfQotCiAgICAgdm9pZCBm
aXJlTG9hZEFib3V0VGltZXIoVGltZXI8TmV0d29ya0pvYj4qKQogICAgIHsKICAgICAgICAgaGFu
ZGxlQWJvdXQoKTsKQEAgLTEyNSw4ICsxMTksNiBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBmaXJl
RGVsZXRlSm9iVGltZXIoVGltZXI8TmV0d29ya0pvYj4qKTsKIAotICAgIHZvaWQgcGFyc2VEYXRh
KCk7Ci0KICAgICB2b2lkIGhhbmRsZUFib3V0KCk7CiAKICAgICAvLyBUaGUgc2VydmVyIG5lZWRz
IGF1dGhlbnRpY2F0aW9uIGNyZWRlbnRpYWxzLiBTZWFyY2ggaW4gdGhlCkBAIC0xNTEsNyArMTQz
LDYgQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgbV9wYWdlR3JvdXBOYW1lOwogICAgIFJlZlB0cjxS
ZXNvdXJjZUhhbmRsZT4gbV9oYW5kbGU7CiAgICAgUmVzb3VyY2VSZXNwb25zZSBtX3Jlc3BvbnNl
OwotICAgIFRpbWVyPE5ldHdvcmtKb2I+IG1fbG9hZERhdGFUaW1lcjsKICAgICBUaW1lcjxOZXR3
b3JrSm9iPiBtX2xvYWRBYm91dFRpbWVyOwogICAgIE93blB0cjxSZXNvdXJjZVJlc3BvbnNlPiBt
X211bHRpcGFydFJlc3BvbnNlOwogICAgIFRpbWVyPE5ldHdvcmtKb2I+IG1fZGVsZXRlSm9iVGlt
ZXI7CkBAIC0xNjAsNyArMTUxLDYgQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgbV9jb250ZW50RGlz
cG9zaXRpb247CiAgICAgQmxhY2tCZXJyeTo6UGxhdGZvcm06Ok5ldHdvcmtTdHJlYW1GYWN0b3J5
KiBtX3N0cmVhbUZhY3Rvcnk7CiAgICAgYm9vbCBtX2lzRmlsZTsKLSAgICBib29sIG1faXNEYXRh
OwogICAgIGJvb2wgbV9pc0Fib3V0OwogICAgIGJvb2wgbV9pc0ZUUDsKICAgICBib29sIG1faXNG
VFBEaXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNr
YmVycnkvTmV0d29ya01hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9ibGFja2JlcnJ5L05ldHdvcmtNYW5hZ2VyLmNwcAppbmRleCA0NThlZmIwLi5iY2ViMWRhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvTmV0
d29ya01hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxh
Y2tiZXJyeS9OZXR3b3JrTWFuYWdlci5jcHAKQEAgLTEzNiwxMSArMTM2LDYgQEAgYm9vbCBOZXR3
b3JrTWFuYWdlcjo6c3RhcnRKb2IoaW50IHBsYXllcklkLCBjb25zdCBTdHJpbmcmIHBhZ2VHcm91
cE5hbWUsIFBhc3NSZWYKIAogICAgIG1fam9icy5hcHBlbmQobmV0d29ya0pvYik7CiAKLSAgICBp
ZiAodXJsLnByb3RvY29sSXMoImRhdGEiKSkgewotICAgICAgICBuZXR3b3JrSm9iLT5sb2FkRGF0
YVVSTCgpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0KICAgICBpZiAodXJsLnByb3Rv
Y29sSXMoImFib3V0IikpIHsKICAgICAgICAgLy8gSWYgdGhlIHByb3RvY29sIG1hdGNoZXMgImFi
b3V0IiwgbG9hZEFib3V0VVJMIHNob3VsZCByZWNvZ25pemUgYW5kIGhhbmRsZSBpdC4KICAgICAg
ICAgbmV0d29ya0pvYi0+bG9hZEFib3V0VVJMKCk7Ci0tIAoxLjcuOS4xCgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>