<?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>138143</bug_id>
          
          <creation_ts>2014-10-28 12:08:39 -0700</creation_ts>
          <short_desc>AST Nodes should keep track of their end offset</short_desc>
          <delta_ts>2014-10-30 16:51:24 -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>JavaScriptCore</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="Saam Barati">saam</reporter>
          <assigned_to name="Saam Barati">saam</assigned_to>
          <cc>buildbot</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1044575</commentid>
    <comment_count>0</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2014-10-28 12:08:39 -0700</bug_when>
    <thetext>Currently, AST nodes only keep track of their starting position (offer, line number, and offset from line number).
This patch will make AST nodes also keep track of their ending offset.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1044595</commentid>
    <comment_count>1</comment_count>
      <attachid>240566</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2014-10-28 13:09:56 -0700</bug_when>
    <thetext>Created attachment 240566
patch

Here is a patch that records the end offsets for all AST nodes.

It&apos;s a bit awkward that the endOffset property on Node is just an int. To be symmetric with node&apos;s position property, it should be a JSTextPosition.
But because we don&apos;t need the other two fields on JSTextPosition, making it an int is more efficient.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1044974</commentid>
    <comment_count>2</comment_count>
      <attachid>240656</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2014-10-29 21:22:53 -0700</bug_when>
    <thetext>Created attachment 240656
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1044976</commentid>
    <comment_count>3</comment_count>
      <attachid>240656</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-10-29 21:37:56 -0700</bug_when>
    <thetext>Comment on attachment 240656
patch

LGTM!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045139</commentid>
    <comment_count>4</comment_count>
      <attachid>240705</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2014-10-30 15:05:00 -0700</bug_when>
    <thetext>Created attachment 240705
patch

This fixes a few problems with the previous patch:
1. parseStatement should handle the case when result is null.
2. The FunctionBody and PropertyNode nodes weren&apos;t being assigned an endOffset.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045177</commentid>
    <comment_count>5</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2014-10-30 16:51:24 -0700</bug_when>
    <thetext>landed in: http://trac.webkit.org/changeset/175396</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240566</attachid>
            <date>2014-10-28 13:09:56 -0700</date>
            <delta_ts>2014-10-29 21:22:53 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>6638</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvQVNUQnVpbGRlci5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvQVNUQnVpbGRlci5oCShyZXZpc2lv
biAxNzUyNjUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0FTVEJ1aWxkZXIuaAko
d29ya2luZyBjb3B5KQpAQCAtNjg2LDYgKzY4NiwxMSBAQCBwdWJsaWM6CiAgICAgewogICAgICAg
ICByZXR1cm4gQmluZGluZ05vZGU6OmNyZWF0ZShtX3ZtLCBib3VuZFByb3BlcnR5LCBzdGFydCwg
ZW5kKTsKICAgICB9CisKKyAgICB2b2lkIHNldEVuZE9mZnNldChOb2RlKiBub2RlLCBpbnQgb2Zm
c2V0KQorICAgIHsKKyAgICAgICAgbm9kZS0+c2V0RW5kT2Zmc2V0KG9mZnNldCk7CisgICAgfQog
ICAgIAogcHJpdmF0ZToKICAgICBzdHJ1Y3QgU2NvcGUgewpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3BhcnNlci9Ob2Rlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9wYXJzZXIvTm9kZXMuaAkocmV2aXNpb24gMTc1MjY1KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL3BhcnNlci9Ob2Rlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMzIsMTEgKzEzMiwxNCBAQCBu
YW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBpbnQgbGluZU5vKCkgY29uc3QgeyByZXR1cm4gbV9w
b3NpdGlvbi5saW5lOyB9CiAgICAgICAgIGludCBzdGFydE9mZnNldCgpIGNvbnN0IHsgcmV0dXJu
IG1fcG9zaXRpb24ub2Zmc2V0OyB9CisgICAgICAgIGludCBlbmRPZmZzZXQoKSBjb25zdCB7IHJl
dHVybiBtX2VuZE9mZnNldDsgfQogICAgICAgICBpbnQgbGluZVN0YXJ0T2Zmc2V0KCkgY29uc3Qg
eyByZXR1cm4gbV9wb3NpdGlvbi5saW5lU3RhcnRPZmZzZXQ7IH0KICAgICAgICAgY29uc3QgSlNU
ZXh0UG9zaXRpb24mIHBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9wb3NpdGlvbjsgfQorICAg
ICAgICB2b2lkIHNldEVuZE9mZnNldChpbnQgb2Zmc2V0KSB7IG1fZW5kT2Zmc2V0ID0gb2Zmc2V0
OyB9CiAKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIEpTVGV4dFBvc2l0aW9uIG1fcG9zaXRpb247
CisgICAgICAgIGludCBtX2VuZE9mZnNldDsKICAgICB9OwogCiAgICAgY2xhc3MgRXhwcmVzc2lv
bk5vZGUgOiBwdWJsaWMgTm9kZSB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2Vy
L1BhcnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Q
YXJzZXIuY3BwCShyZXZpc2lvbiAxNzUyNjUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFy
c2VyL1BhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExMjUsNDUgKzExMjUsNjMgQEAgdGVt
cGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBUcmVlU3RhdGVtZQogICAgIGRpcmVjdGl2ZSA9IDA7
CiAgICAgaW50IG5vblRyaXZpYWxFeHByZXNzaW9uQ291bnQgPSAwOwogICAgIGZhaWxJZlN0YWNr
T3ZlcmZsb3coKTsKKyAgICBUcmVlU3RhdGVtZW50IHJlc3VsdCA9IDA7CiAgICAgc3dpdGNoICht
X3Rva2VuLm1fdHlwZSkgewogICAgIGNhc2UgT1BFTkJSQUNFOgotICAgICAgICByZXR1cm4gcGFy
c2VCbG9ja1N0YXRlbWVudChjb250ZXh0KTsKKyAgICAgICAgcmVzdWx0ID0gcGFyc2VCbG9ja1N0
YXRlbWVudChjb250ZXh0KTsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBWQVI6Ci0gICAgICAg
IHJldHVybiBwYXJzZVZhckRlY2xhcmF0aW9uKGNvbnRleHQpOworICAgICAgICByZXN1bHQgPSBw
YXJzZVZhckRlY2xhcmF0aW9uKGNvbnRleHQpOworICAgICAgICBicmVhazsKICAgICBjYXNlIENP
TlNUVE9LRU46Ci0gICAgICAgIHJldHVybiBwYXJzZUNvbnN0RGVjbGFyYXRpb24oY29udGV4dCk7
CisgICAgICAgIHJlc3VsdCA9IHBhcnNlQ29uc3REZWNsYXJhdGlvbihjb250ZXh0KTsKKyAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBGVU5DVElPTjoKICAgICAgICAgZmFpbElmRmFsc2VJZlN0cmlj
dChtX3N0YXRlbWVudERlcHRoID09IDEsICJTdHJpY3QgbW9kZSBkb2VzIG5vdCBhbGxvdyBmdW5j
dGlvbiBkZWNsYXJhdGlvbnMgaW4gYSBsZXhpY2FsbHkgbmVzdGVkIHN0YXRlbWVudCIpOwotICAg
ICAgICByZXR1cm4gcGFyc2VGdW5jdGlvbkRlY2xhcmF0aW9uKGNvbnRleHQpOworICAgICAgICBy
ZXN1bHQgPSBwYXJzZUZ1bmN0aW9uRGVjbGFyYXRpb24oY29udGV4dCk7CisgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgU0VNSUNPTE9OOiB7CiAgICAgICAgIEpTVG9rZW5Mb2NhdGlvbiBsb2NhdGlv
bih0b2tlbkxvY2F0aW9uKCkpOwogICAgICAgICBuZXh0KCk7Ci0gICAgICAgIHJldHVybiBjb250
ZXh0LmNyZWF0ZUVtcHR5U3RhdGVtZW50KGxvY2F0aW9uKTsKKyAgICAgICAgcmVzdWx0ID0gY29u
dGV4dC5jcmVhdGVFbXB0eVN0YXRlbWVudChsb2NhdGlvbik7CisgICAgICAgIGJyZWFrOwogICAg
IH0KICAgICBjYXNlIElGOgotICAgICAgICByZXR1cm4gcGFyc2VJZlN0YXRlbWVudChjb250ZXh0
KTsKKyAgICAgICAgcmVzdWx0ID0gcGFyc2VJZlN0YXRlbWVudChjb250ZXh0KTsKKyAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBETzoKLSAgICAgICAgcmV0dXJuIHBhcnNlRG9XaGlsZVN0YXRlbWVu
dChjb250ZXh0KTsKKyAgICAgICAgcmVzdWx0ID0gcGFyc2VEb1doaWxlU3RhdGVtZW50KGNvbnRl
eHQpOworICAgICAgICBicmVhazsKICAgICBjYXNlIFdISUxFOgotICAgICAgICByZXR1cm4gcGFy
c2VXaGlsZVN0YXRlbWVudChjb250ZXh0KTsKKyAgICAgICAgcmVzdWx0ID0gcGFyc2VXaGlsZVN0
YXRlbWVudChjb250ZXh0KTsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBGT1I6Ci0gICAgICAg
IHJldHVybiBwYXJzZUZvclN0YXRlbWVudChjb250ZXh0KTsKKyAgICAgICAgcmVzdWx0ID0gcGFy
c2VGb3JTdGF0ZW1lbnQoY29udGV4dCk7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ09OVElO
VUU6Ci0gICAgICAgIHJldHVybiBwYXJzZUNvbnRpbnVlU3RhdGVtZW50KGNvbnRleHQpOworICAg
ICAgICByZXN1bHQgPSBwYXJzZUNvbnRpbnVlU3RhdGVtZW50KGNvbnRleHQpOworICAgICAgICBi
cmVhazsKICAgICBjYXNlIEJSRUFLOgotICAgICAgICByZXR1cm4gcGFyc2VCcmVha1N0YXRlbWVu
dChjb250ZXh0KTsKKyAgICAgICAgcmVzdWx0ID0gcGFyc2VCcmVha1N0YXRlbWVudChjb250ZXh0
KTsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBSRVRVUk46Ci0gICAgICAgIHJldHVybiBwYXJz
ZVJldHVyblN0YXRlbWVudChjb250ZXh0KTsKKyAgICAgICAgcmVzdWx0ID0gcGFyc2VSZXR1cm5T
dGF0ZW1lbnQoY29udGV4dCk7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgV0lUSDoKLSAgICAg
ICAgcmV0dXJuIHBhcnNlV2l0aFN0YXRlbWVudChjb250ZXh0KTsKKyAgICAgICAgcmVzdWx0ID0g
cGFyc2VXaXRoU3RhdGVtZW50KGNvbnRleHQpOworICAgICAgICBicmVhazsKICAgICBjYXNlIFNX
SVRDSDoKLSAgICAgICAgcmV0dXJuIHBhcnNlU3dpdGNoU3RhdGVtZW50KGNvbnRleHQpOworICAg
ICAgICByZXN1bHQgPSBwYXJzZVN3aXRjaFN0YXRlbWVudChjb250ZXh0KTsKKyAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBUSFJPVzoKLSAgICAgICAgcmV0dXJuIHBhcnNlVGhyb3dTdGF0ZW1lbnQo
Y29udGV4dCk7CisgICAgICAgIHJlc3VsdCA9IHBhcnNlVGhyb3dTdGF0ZW1lbnQoY29udGV4dCk7
CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVFJZOgotICAgICAgICByZXR1cm4gcGFyc2VUcnlT
dGF0ZW1lbnQoY29udGV4dCk7CisgICAgICAgIHJlc3VsdCA9IHBhcnNlVHJ5U3RhdGVtZW50KGNv
bnRleHQpOworICAgICAgICBicmVhazsKICAgICBjYXNlIERFQlVHR0VSOgotICAgICAgICByZXR1
cm4gcGFyc2VEZWJ1Z2dlclN0YXRlbWVudChjb250ZXh0KTsKKyAgICAgICAgcmVzdWx0ID0gcGFy
c2VEZWJ1Z2dlclN0YXRlbWVudChjb250ZXh0KTsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBF
T0ZUT0s6CiAgICAgY2FzZSBDQVNFOgogICAgIGNhc2UgQ0xPU0VCUkFDRToKQEAgLTExNzEsNyAr
MTE4OSw4IEBAIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZVN0YXRlbWUKICAgICAg
ICAgLy8gVGhlc2UgdG9rZW5zIGltcGx5IHRoZSBlbmQgb2YgYSBzZXQgb2Ygc291cmNlIGVsZW1l
bnRzCiAgICAgICAgIHJldHVybiAwOwogICAgIGNhc2UgSURFTlQ6Ci0gICAgICAgIHJldHVybiBw
YXJzZUV4cHJlc3Npb25PckxhYmVsU3RhdGVtZW50KGNvbnRleHQpOworICAgICAgICByZXN1bHQg
PSBwYXJzZUV4cHJlc3Npb25PckxhYmVsU3RhdGVtZW50KGNvbnRleHQpOworICAgICAgICBicmVh
azsKICAgICBjYXNlIFNUUklORzoKICAgICAgICAgZGlyZWN0aXZlID0gbV90b2tlbi5tX2RhdGEu
aWRlbnQ7CiAgICAgICAgIGlmIChkaXJlY3RpdmVMaXRlcmFsTGVuZ3RoKQpAQCAtMTE4Miw4ICsx
MjAxLDEyIEBAIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZVN0YXRlbWUKICAgICAg
ICAgVHJlZVN0YXRlbWVudCBleHByU3RhdGVtZW50ID0gcGFyc2VFeHByZXNzaW9uU3RhdGVtZW50
KGNvbnRleHQpOwogICAgICAgICBpZiAoZGlyZWN0aXZlICYmIG5vblRyaXZpYWxFeHByZXNzaW9u
Q291bnQgIT0gbV9ub25Ucml2aWFsRXhwcmVzc2lvbkNvdW50KQogICAgICAgICAgICAgZGlyZWN0
aXZlID0gMDsKLSAgICAgICAgcmV0dXJuIGV4cHJTdGF0ZW1lbnQ7CisgICAgICAgIHJlc3VsdCA9
IGV4cHJTdGF0ZW1lbnQ7CisgICAgICAgIGJyZWFrOwogICAgIH0KKworICAgIGNvbnRleHQuc2V0
RW5kT2Zmc2V0KHJlc3VsdCwgbV9sZXhlci0+Y3VycmVudE9mZnNldCgpKTsKKyAgICByZXR1cm4g
cmVzdWx0OwogfQogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgTGV4ZXJUeXBlPgpAQCAtMTU0Miw2ICsx
NTY1LDcgQEAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBUcmVlRXhwcmVzcwogICAgIEpT
VG9rZW5Mb2NhdGlvbiBsb2NhdGlvbih0b2tlbkxvY2F0aW9uKCkpOwogICAgIFRyZWVFeHByZXNz
aW9uIG5vZGUgPSBwYXJzZUFzc2lnbm1lbnRFeHByZXNzaW9uKGNvbnRleHQpOwogICAgIGZhaWxJ
ZkZhbHNlKG5vZGUsICJDYW5ub3QgcGFyc2UgZXhwcmVzc2lvbiIpOworICAgIGNvbnRleHQuc2V0
RW5kT2Zmc2V0KG5vZGUsIG1fbGV4ZXItPmN1cnJlbnRPZmZzZXQoKSk7CiAgICAgaWYgKCFtYXRj
aChDT01NQSkpCiAgICAgICAgIHJldHVybiBub2RlOwogICAgIG5leHQoKTsKQEAgLTE1NDksMTMg
KzE1NzMsMTYgQEAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBUcmVlRXhwcmVzcwogICAg
IG1fbm9uTEhTQ291bnQrKzsKICAgICBUcmVlRXhwcmVzc2lvbiByaWdodCA9IHBhcnNlQXNzaWdu
bWVudEV4cHJlc3Npb24oY29udGV4dCk7CiAgICAgZmFpbElmRmFsc2UocmlnaHQsICJDYW5ub3Qg
cGFyc2UgZXhwcmVzc2lvbiBpbiBhIGNvbW1hIGV4cHJlc3Npb24iKTsKKyAgICBjb250ZXh0LnNl
dEVuZE9mZnNldChyaWdodCwgbV9sZXhlci0+Y3VycmVudE9mZnNldCgpKTsKICAgICB0eXBlbmFt
ZSBUcmVlQnVpbGRlcjo6Q29tbWEgY29tbWFOb2RlID0gY29udGV4dC5jcmVhdGVDb21tYUV4cHIo
bG9jYXRpb24sIG5vZGUsIHJpZ2h0KTsKICAgICB3aGlsZSAobWF0Y2goQ09NTUEpKSB7CiAgICAg
ICAgIG5leHQoVHJlZUJ1aWxkZXI6OkRvbnRCdWlsZFN0cmluZ3MpOwogICAgICAgICByaWdodCA9
IHBhcnNlQXNzaWdubWVudEV4cHJlc3Npb24oY29udGV4dCk7CiAgICAgICAgIGZhaWxJZkZhbHNl
KHJpZ2h0LCAiQ2Fubm90IHBhcnNlIGV4cHJlc3Npb24gaW4gYSBjb21tYSBleHByZXNzaW9uIik7
CisgICAgICAgIGNvbnRleHQuc2V0RW5kT2Zmc2V0KHJpZ2h0LCBtX2xleGVyLT5jdXJyZW50T2Zm
c2V0KCkpOwogICAgICAgICBjb250ZXh0LmFwcGVuZFRvQ29tbWEoY29tbWFOb2RlLCByaWdodCk7
CiAgICAgfQorICAgIGNvbnRleHQuc2V0RW5kT2Zmc2V0KGNvbW1hTm9kZSwgbV9sZXhlci0+Y3Vy
cmVudE9mZnNldCgpKTsKICAgICByZXR1cm4gY29tbWFOb2RlOwogfQogCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcGFyc2VyL1N5bnRheENoZWNrZXIuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1N5bnRheENoZWNrZXIuaAkocmV2aXNpb24gMTc1MjY1
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9TeW50YXhDaGVja2VyLmgJKHdvcmtp
bmcgY29weSkKQEAgLTI5Nyw2ICsyOTcsOCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBwYXR0
ZXJuID09IEJpbmRpbmdEZWNvbnN0cnVjdGlvbjsKICAgICB9CiAKKyAgICB2b2lkIHNldEVuZE9m
ZnNldChpbnQsIGludCkgeyB9CisKIHByaXZhdGU6CiAgICAgaW50IG1fdG9wQmluYXJ5RXhwcjsK
ICAgICBpbnQgbV90b3BVbmFyeVRva2VuOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240656</attachid>
            <date>2014-10-29 21:22:53 -0700</date>
            <delta_ts>2014-10-30 15:05:00 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>7809</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTc1MzY1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBA
CisyMDE0LTEwLTI5ICBTYWFtIEJhcmF0aSAgPHNhYW1iYXJhdGkxQGdtYWlsLmNvbT4KKworICAg
ICAgICBBU1QgTm9kZXMgc2hvdWxkIGtlZXAgdHJhY2sgb2YgdGhlaXIgZW5kIG9mZnNldAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM4MTQzCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQVNUIG5vZGVzIG5v
ZGVzIG5vdyBoYXZlIGFuIGludCBwcm9wZXJ0eSBmb3IgdGhlaXIgZW5kIHRleHQgCisgICAgICAg
IG9mZnNldHMuIFRoaXMgY2hhbmdlIGxheXMgc29tZSBmb3VuZGF0aW9uYWwgd29yayB0aGF0IHdp
bGwgYmUgCisgICAgICAgIG5lZWRlZCBpbiBwcm9maWxpbmcgd2hpY2ggYmFzaWMgYmxvY2tzIGhh
dmUgZXhlY3V0ZWQuCisKKyAgICAgICAgKiBwYXJzZXIvQVNUQnVpbGRlci5oOgorICAgICAgICAo
SlNDOjpBU1RCdWlsZGVyOjpzZXRFbmRPZmZzZXQpOgorICAgICAgICAqIHBhcnNlci9Ob2Rlcy5o
OgorICAgICAgICAoSlNDOjpOb2RlOjplbmRPZmZzZXQpOgorICAgICAgICAoSlNDOjpOb2RlOjpz
ZXRFbmRPZmZzZXQpOgorICAgICAgICAqIHBhcnNlci9QYXJzZXIuY3BwOgorICAgICAgICAoSlND
OjpQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VTdGF0ZW1lbnQpOgorICAgICAgICAoSlNDOjpQYXJz
ZXI8TGV4ZXJUeXBlPjo6cGFyc2VFeHByZXNzaW9uKToKKyAgICAgICAgKiBwYXJzZXIvU3ludGF4
Q2hlY2tlci5oOgorICAgICAgICAoSlNDOjpTeW50YXhDaGVja2VyOjpvcGVyYXRvclN0YWNrUG9w
KToKKwogMjAxNC0xMC0yOSAgQW5kcmVhcyBLbGluZyAgPGFrbGluZ0BhcHBsZS5jb20+CiAKICAg
ICAgICAgVXNlIHBsYWluIEpTQXJyYXkgZm9yIFJlZ0V4cCBtYXRjaGVzIGluc3RlYWQgb2YgYSBs
YXppbHkgcG9wdWxhdGVkIGN1c3RvbSBvYmplY3QuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcGFyc2VyL0FTVEJ1aWxkZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcGFyc2VyL0FTVEJ1aWxkZXIuaAkocmV2aXNpb24gMTc1MjY1KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3BhcnNlci9BU1RCdWlsZGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTY4Niw2ICs2
ODYsMTEgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgcmV0dXJuIEJpbmRpbmdOb2RlOjpjcmVh
dGUobV92bSwgYm91bmRQcm9wZXJ0eSwgc3RhcnQsIGVuZCk7CiAgICAgfQorCisgICAgdm9pZCBz
ZXRFbmRPZmZzZXQoTm9kZSogbm9kZSwgaW50IG9mZnNldCkKKyAgICB7CisgICAgICAgIG5vZGUt
PnNldEVuZE9mZnNldChvZmZzZXQpOworICAgIH0KICAgICAKIHByaXZhdGU6CiAgICAgc3RydWN0
IFNjb3BlIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgJKHJldmlzaW9u
IDE3NTI2NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMTMyLDExICsxMzIsMTQgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAg
aW50IGxpbmVObygpIGNvbnN0IHsgcmV0dXJuIG1fcG9zaXRpb24ubGluZTsgfQogICAgICAgICBp
bnQgc3RhcnRPZmZzZXQoKSBjb25zdCB7IHJldHVybiBtX3Bvc2l0aW9uLm9mZnNldDsgfQorICAg
ICAgICBpbnQgZW5kT2Zmc2V0KCkgY29uc3QgeyByZXR1cm4gbV9lbmRPZmZzZXQ7IH0KICAgICAg
ICAgaW50IGxpbmVTdGFydE9mZnNldCgpIGNvbnN0IHsgcmV0dXJuIG1fcG9zaXRpb24ubGluZVN0
YXJ0T2Zmc2V0OyB9CiAgICAgICAgIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBwb3NpdGlvbigpIGNv
bnN0IHsgcmV0dXJuIG1fcG9zaXRpb247IH0KKyAgICAgICAgdm9pZCBzZXRFbmRPZmZzZXQoaW50
IG9mZnNldCkgeyBtX2VuZE9mZnNldCA9IG9mZnNldDsgfQogCiAgICAgcHJvdGVjdGVkOgogICAg
ICAgICBKU1RleHRQb3NpdGlvbiBtX3Bvc2l0aW9uOworICAgICAgICBpbnQgbV9lbmRPZmZzZXQ7
CiAgICAgfTsKIAogICAgIGNsYXNzIEV4cHJlc3Npb25Ob2RlIDogcHVibGljIE5vZGUgewpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcAkocmV2aXNpb24gMTc1MjY1
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xMTI1LDQ1ICsxMTI1LDYzIEBAIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4g
VHJlZVN0YXRlbWUKICAgICBkaXJlY3RpdmUgPSAwOwogICAgIGludCBub25Ucml2aWFsRXhwcmVz
c2lvbkNvdW50ID0gMDsKICAgICBmYWlsSWZTdGFja092ZXJmbG93KCk7CisgICAgVHJlZVN0YXRl
bWVudCByZXN1bHQgPSAwOwogICAgIHN3aXRjaCAobV90b2tlbi5tX3R5cGUpIHsKICAgICBjYXNl
IE9QRU5CUkFDRToKLSAgICAgICAgcmV0dXJuIHBhcnNlQmxvY2tTdGF0ZW1lbnQoY29udGV4dCk7
CisgICAgICAgIHJlc3VsdCA9IHBhcnNlQmxvY2tTdGF0ZW1lbnQoY29udGV4dCk7CisgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgVkFSOgotICAgICAgICByZXR1cm4gcGFyc2VWYXJEZWNsYXJhdGlv
bihjb250ZXh0KTsKKyAgICAgICAgcmVzdWx0ID0gcGFyc2VWYXJEZWNsYXJhdGlvbihjb250ZXh0
KTsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDT05TVFRPS0VOOgotICAgICAgICByZXR1cm4g
cGFyc2VDb25zdERlY2xhcmF0aW9uKGNvbnRleHQpOworICAgICAgICByZXN1bHQgPSBwYXJzZUNv
bnN0RGVjbGFyYXRpb24oY29udGV4dCk7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRlVOQ1RJ
T046CiAgICAgICAgIGZhaWxJZkZhbHNlSWZTdHJpY3QobV9zdGF0ZW1lbnREZXB0aCA9PSAxLCAi
U3RyaWN0IG1vZGUgZG9lcyBub3QgYWxsb3cgZnVuY3Rpb24gZGVjbGFyYXRpb25zIGluIGEgbGV4
aWNhbGx5IG5lc3RlZCBzdGF0ZW1lbnQiKTsKLSAgICAgICAgcmV0dXJuIHBhcnNlRnVuY3Rpb25E
ZWNsYXJhdGlvbihjb250ZXh0KTsKKyAgICAgICAgcmVzdWx0ID0gcGFyc2VGdW5jdGlvbkRlY2xh
cmF0aW9uKGNvbnRleHQpOworICAgICAgICBicmVhazsKICAgICBjYXNlIFNFTUlDT0xPTjogewog
ICAgICAgICBKU1Rva2VuTG9jYXRpb24gbG9jYXRpb24odG9rZW5Mb2NhdGlvbigpKTsKICAgICAg
ICAgbmV4dCgpOwotICAgICAgICByZXR1cm4gY29udGV4dC5jcmVhdGVFbXB0eVN0YXRlbWVudChs
b2NhdGlvbik7CisgICAgICAgIHJlc3VsdCA9IGNvbnRleHQuY3JlYXRlRW1wdHlTdGF0ZW1lbnQo
bG9jYXRpb24pOworICAgICAgICBicmVhazsKICAgICB9CiAgICAgY2FzZSBJRjoKLSAgICAgICAg
cmV0dXJuIHBhcnNlSWZTdGF0ZW1lbnQoY29udGV4dCk7CisgICAgICAgIHJlc3VsdCA9IHBhcnNl
SWZTdGF0ZW1lbnQoY29udGV4dCk7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRE86Ci0gICAg
ICAgIHJldHVybiBwYXJzZURvV2hpbGVTdGF0ZW1lbnQoY29udGV4dCk7CisgICAgICAgIHJlc3Vs
dCA9IHBhcnNlRG9XaGlsZVN0YXRlbWVudChjb250ZXh0KTsKKyAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBXSElMRToKLSAgICAgICAgcmV0dXJuIHBhcnNlV2hpbGVTdGF0ZW1lbnQoY29udGV4dCk7
CisgICAgICAgIHJlc3VsdCA9IHBhcnNlV2hpbGVTdGF0ZW1lbnQoY29udGV4dCk7CisgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgRk9SOgotICAgICAgICByZXR1cm4gcGFyc2VGb3JTdGF0ZW1lbnQo
Y29udGV4dCk7CisgICAgICAgIHJlc3VsdCA9IHBhcnNlRm9yU3RhdGVtZW50KGNvbnRleHQpOwor
ICAgICAgICBicmVhazsKICAgICBjYXNlIENPTlRJTlVFOgotICAgICAgICByZXR1cm4gcGFyc2VD
b250aW51ZVN0YXRlbWVudChjb250ZXh0KTsKKyAgICAgICAgcmVzdWx0ID0gcGFyc2VDb250aW51
ZVN0YXRlbWVudChjb250ZXh0KTsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBCUkVBSzoKLSAg
ICAgICAgcmV0dXJuIHBhcnNlQnJlYWtTdGF0ZW1lbnQoY29udGV4dCk7CisgICAgICAgIHJlc3Vs
dCA9IHBhcnNlQnJlYWtTdGF0ZW1lbnQoY29udGV4dCk7CisgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgUkVUVVJOOgotICAgICAgICByZXR1cm4gcGFyc2VSZXR1cm5TdGF0ZW1lbnQoY29udGV4dCk7
CisgICAgICAgIHJlc3VsdCA9IHBhcnNlUmV0dXJuU3RhdGVtZW50KGNvbnRleHQpOworICAgICAg
ICBicmVhazsKICAgICBjYXNlIFdJVEg6Ci0gICAgICAgIHJldHVybiBwYXJzZVdpdGhTdGF0ZW1l
bnQoY29udGV4dCk7CisgICAgICAgIHJlc3VsdCA9IHBhcnNlV2l0aFN0YXRlbWVudChjb250ZXh0
KTsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBTV0lUQ0g6Ci0gICAgICAgIHJldHVybiBwYXJz
ZVN3aXRjaFN0YXRlbWVudChjb250ZXh0KTsKKyAgICAgICAgcmVzdWx0ID0gcGFyc2VTd2l0Y2hT
dGF0ZW1lbnQoY29udGV4dCk7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVEhST1c6Ci0gICAg
ICAgIHJldHVybiBwYXJzZVRocm93U3RhdGVtZW50KGNvbnRleHQpOworICAgICAgICByZXN1bHQg
PSBwYXJzZVRocm93U3RhdGVtZW50KGNvbnRleHQpOworICAgICAgICBicmVhazsKICAgICBjYXNl
IFRSWToKLSAgICAgICAgcmV0dXJuIHBhcnNlVHJ5U3RhdGVtZW50KGNvbnRleHQpOworICAgICAg
ICByZXN1bHQgPSBwYXJzZVRyeVN0YXRlbWVudChjb250ZXh0KTsKKyAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBERUJVR0dFUjoKLSAgICAgICAgcmV0dXJuIHBhcnNlRGVidWdnZXJTdGF0ZW1lbnQo
Y29udGV4dCk7CisgICAgICAgIHJlc3VsdCA9IHBhcnNlRGVidWdnZXJTdGF0ZW1lbnQoY29udGV4
dCk7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRU9GVE9LOgogICAgIGNhc2UgQ0FTRToKICAg
ICBjYXNlIENMT1NFQlJBQ0U6CkBAIC0xMTcxLDcgKzExODksOCBAQCB0ZW1wbGF0ZSA8Y2xhc3Mg
VHJlZUJ1aWxkZXI+IFRyZWVTdGF0ZW1lCiAgICAgICAgIC8vIFRoZXNlIHRva2VucyBpbXBseSB0
aGUgZW5kIG9mIGEgc2V0IG9mIHNvdXJjZSBlbGVtZW50cwogICAgICAgICByZXR1cm4gMDsKICAg
ICBjYXNlIElERU5UOgotICAgICAgICByZXR1cm4gcGFyc2VFeHByZXNzaW9uT3JMYWJlbFN0YXRl
bWVudChjb250ZXh0KTsKKyAgICAgICAgcmVzdWx0ID0gcGFyc2VFeHByZXNzaW9uT3JMYWJlbFN0
YXRlbWVudChjb250ZXh0KTsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBTVFJJTkc6CiAgICAg
ICAgIGRpcmVjdGl2ZSA9IG1fdG9rZW4ubV9kYXRhLmlkZW50OwogICAgICAgICBpZiAoZGlyZWN0
aXZlTGl0ZXJhbExlbmd0aCkKQEAgLTExODIsOCArMTIwMSwxMiBAQCB0ZW1wbGF0ZSA8Y2xhc3Mg
VHJlZUJ1aWxkZXI+IFRyZWVTdGF0ZW1lCiAgICAgICAgIFRyZWVTdGF0ZW1lbnQgZXhwclN0YXRl
bWVudCA9IHBhcnNlRXhwcmVzc2lvblN0YXRlbWVudChjb250ZXh0KTsKICAgICAgICAgaWYgKGRp
cmVjdGl2ZSAmJiBub25Ucml2aWFsRXhwcmVzc2lvbkNvdW50ICE9IG1fbm9uVHJpdmlhbEV4cHJl
c3Npb25Db3VudCkKICAgICAgICAgICAgIGRpcmVjdGl2ZSA9IDA7Ci0gICAgICAgIHJldHVybiBl
eHByU3RhdGVtZW50OworICAgICAgICByZXN1bHQgPSBleHByU3RhdGVtZW50OworICAgICAgICBi
cmVhazsKICAgICB9CisKKyAgICBjb250ZXh0LnNldEVuZE9mZnNldChyZXN1bHQsIG1fbGV4ZXIt
PmN1cnJlbnRPZmZzZXQoKSk7CisgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogdGVtcGxhdGUgPHR5
cGVuYW1lIExleGVyVHlwZT4KQEAgLTE1NDIsNiArMTU2NSw3IEBAIHRlbXBsYXRlIDxjbGFzcyBU
cmVlQnVpbGRlcj4gVHJlZUV4cHJlc3MKICAgICBKU1Rva2VuTG9jYXRpb24gbG9jYXRpb24odG9r
ZW5Mb2NhdGlvbigpKTsKICAgICBUcmVlRXhwcmVzc2lvbiBub2RlID0gcGFyc2VBc3NpZ25tZW50
RXhwcmVzc2lvbihjb250ZXh0KTsKICAgICBmYWlsSWZGYWxzZShub2RlLCAiQ2Fubm90IHBhcnNl
IGV4cHJlc3Npb24iKTsKKyAgICBjb250ZXh0LnNldEVuZE9mZnNldChub2RlLCBtX2xleGVyLT5j
dXJyZW50T2Zmc2V0KCkpOwogICAgIGlmICghbWF0Y2goQ09NTUEpKQogICAgICAgICByZXR1cm4g
bm9kZTsKICAgICBuZXh0KCk7CkBAIC0xNTQ5LDEzICsxNTczLDE2IEBAIHRlbXBsYXRlIDxjbGFz
cyBUcmVlQnVpbGRlcj4gVHJlZUV4cHJlc3MKICAgICBtX25vbkxIU0NvdW50Kys7CiAgICAgVHJl
ZUV4cHJlc3Npb24gcmlnaHQgPSBwYXJzZUFzc2lnbm1lbnRFeHByZXNzaW9uKGNvbnRleHQpOwog
ICAgIGZhaWxJZkZhbHNlKHJpZ2h0LCAiQ2Fubm90IHBhcnNlIGV4cHJlc3Npb24gaW4gYSBjb21t
YSBleHByZXNzaW9uIik7CisgICAgY29udGV4dC5zZXRFbmRPZmZzZXQocmlnaHQsIG1fbGV4ZXIt
PmN1cnJlbnRPZmZzZXQoKSk7CiAgICAgdHlwZW5hbWUgVHJlZUJ1aWxkZXI6OkNvbW1hIGNvbW1h
Tm9kZSA9IGNvbnRleHQuY3JlYXRlQ29tbWFFeHByKGxvY2F0aW9uLCBub2RlLCByaWdodCk7CiAg
ICAgd2hpbGUgKG1hdGNoKENPTU1BKSkgewogICAgICAgICBuZXh0KFRyZWVCdWlsZGVyOjpEb250
QnVpbGRTdHJpbmdzKTsKICAgICAgICAgcmlnaHQgPSBwYXJzZUFzc2lnbm1lbnRFeHByZXNzaW9u
KGNvbnRleHQpOwogICAgICAgICBmYWlsSWZGYWxzZShyaWdodCwgIkNhbm5vdCBwYXJzZSBleHBy
ZXNzaW9uIGluIGEgY29tbWEgZXhwcmVzc2lvbiIpOworICAgICAgICBjb250ZXh0LnNldEVuZE9m
ZnNldChyaWdodCwgbV9sZXhlci0+Y3VycmVudE9mZnNldCgpKTsKICAgICAgICAgY29udGV4dC5h
cHBlbmRUb0NvbW1hKGNvbW1hTm9kZSwgcmlnaHQpOwogICAgIH0KKyAgICBjb250ZXh0LnNldEVu
ZE9mZnNldChjb21tYU5vZGUsIG1fbGV4ZXItPmN1cnJlbnRPZmZzZXQoKSk7CiAgICAgcmV0dXJu
IGNvbW1hTm9kZTsKIH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9TeW50
YXhDaGVja2VyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9T
eW50YXhDaGVja2VyLmgJKHJldmlzaW9uIDE3NTI2NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9wYXJzZXIvU3ludGF4Q2hlY2tlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOTcsNiArMjk3LDgg
QEAgcHVibGljOgogICAgICAgICByZXR1cm4gcGF0dGVybiA9PSBCaW5kaW5nRGVjb25zdHJ1Y3Rp
b247CiAgICAgfQogCisgICAgdm9pZCBzZXRFbmRPZmZzZXQoaW50LCBpbnQpIHsgfQorCiBwcml2
YXRlOgogICAgIGludCBtX3RvcEJpbmFyeUV4cHI7CiAgICAgaW50IG1fdG9wVW5hcnlUb2tlbjsK
</data>
<flag name="review"
          id="265439"
          type_id="1"
          status="+"
          setter="fpizlo"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240705</attachid>
            <date>2014-10-30 15:05:00 -0700</date>
            <delta_ts>2014-10-30 15:05:49 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>11023</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTc1MzgzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBA
CisyMDE0LTEwLTMwICBTYWFtIEJhcmF0aSAgPHNhYW1iYXJhdGkxQGdtYWlsLmNvbT4KKworICAg
ICAgICBBU1QgTm9kZXMgc2hvdWxkIGtlZXAgdHJhY2sgb2YgdGhlaXIgZW5kIG9mZnNldAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM4MTQzCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQVNUIG5vZGVzIG5v
ZGVzIG5vdyBoYXZlIGFuIGludCBwcm9wZXJ0eSBmb3IgdGhlaXIgZW5kIHRleHQgCisgICAgICAg
IG9mZnNldHMuIFRoaXMgY2hhbmdlIGxheXMgc29tZSBmb3VuZGF0aW9uYWwgd29yayB0aGF0IHdp
bGwgYmUgCisgICAgICAgIG5lZWRlZCBpbiBwcm9maWxpbmcgd2hpY2ggYmFzaWMgYmxvY2tzIGhh
dmUgZXhlY3V0ZWQuCisKKyAgICAgICAgKiBwYXJzZXIvQVNUQnVpbGRlci5oOgorICAgICAgICAo
SlNDOjpBU1RCdWlsZGVyOjpzZXRFbmRPZmZzZXQpOgorICAgICAgICAqIHBhcnNlci9Ob2Rlcy5o
OgorICAgICAgICAoSlNDOjpOb2RlOjplbmRPZmZzZXQpOgorICAgICAgICAoSlNDOjpOb2RlOjpz
ZXRFbmRPZmZzZXQpOgorICAgICAgICAqIHBhcnNlci9QYXJzZXIuY3BwOgorICAgICAgICAoSlND
OjpQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VTdGF0ZW1lbnQpOgorICAgICAgICAoSlNDOjpQYXJz
ZXI8TGV4ZXJUeXBlPjo6cGFyc2VGdW5jdGlvbkluZm8pOgorICAgICAgICAoSlNDOjpQYXJzZXI8
TGV4ZXJUeXBlPjo6cGFyc2VFeHByZXNzaW9uKToKKyAgICAgICAgKEpTQzo6UGFyc2VyPExleGVy
VHlwZT46OnBhcnNlUHJvcGVydHkpOgorICAgICAgICAqIHBhcnNlci9QYXJzZXIuaDoKKyAgICAg
ICAgKEpTQzo6UGFyc2VyPExleGVyVHlwZT46OnBhcnNlKToKKyAgICAgICAgKiBwYXJzZXIvU3lu
dGF4Q2hlY2tlci5oOgorICAgICAgICAoSlNDOjpTeW50YXhDaGVja2VyOjpvcGVyYXRvclN0YWNr
UG9wKToKKwogMjAxNC0xMC0zMCAgQW5kcmVhcyBLbGluZyAgPGFrbGluZ0BhcHBsZS5jb20+CiAK
ICAgICAgICAgVW5yZXZpZXdlZCBhc3NlcnRpb24gZml4LgpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3BhcnNlci9BU1RCdWlsZGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL3BhcnNlci9BU1RCdWlsZGVyLmgJKHJldmlzaW9uIDE3NTM2NSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9wYXJzZXIvQVNUQnVpbGRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC02ODYs
NiArNjg2LDExIEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIHJldHVybiBCaW5kaW5nTm9kZTo6
Y3JlYXRlKG1fdm0sIGJvdW5kUHJvcGVydHksIHN0YXJ0LCBlbmQpOwogICAgIH0KKworICAgIHZv
aWQgc2V0RW5kT2Zmc2V0KE5vZGUqIG5vZGUsIGludCBvZmZzZXQpCisgICAgeworICAgICAgICBu
b2RlLT5zZXRFbmRPZmZzZXQob2Zmc2V0KTsKKyAgICB9CiAgICAgCiBwcml2YXRlOgogICAgIHN0
cnVjdCBTY29wZSB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oCShyZXZp
c2lvbiAxNzUzNjUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgJKHdv
cmtpbmcgY29weSkKQEAgLTEzMiwxMSArMTMyLDE0IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAg
ICAgIGludCBsaW5lTm8oKSBjb25zdCB7IHJldHVybiBtX3Bvc2l0aW9uLmxpbmU7IH0KICAgICAg
ICAgaW50IHN0YXJ0T2Zmc2V0KCkgY29uc3QgeyByZXR1cm4gbV9wb3NpdGlvbi5vZmZzZXQ7IH0K
KyAgICAgICAgaW50IGVuZE9mZnNldCgpIGNvbnN0IHsgcmV0dXJuIG1fZW5kT2Zmc2V0OyB9CiAg
ICAgICAgIGludCBsaW5lU3RhcnRPZmZzZXQoKSBjb25zdCB7IHJldHVybiBtX3Bvc2l0aW9uLmxp
bmVTdGFydE9mZnNldDsgfQogICAgICAgICBjb25zdCBKU1RleHRQb3NpdGlvbiYgcG9zaXRpb24o
KSBjb25zdCB7IHJldHVybiBtX3Bvc2l0aW9uOyB9CisgICAgICAgIHZvaWQgc2V0RW5kT2Zmc2V0
KGludCBvZmZzZXQpIHsgbV9lbmRPZmZzZXQgPSBvZmZzZXQ7IH0KIAogICAgIHByb3RlY3RlZDoK
ICAgICAgICAgSlNUZXh0UG9zaXRpb24gbV9wb3NpdGlvbjsKKyAgICAgICAgaW50IG1fZW5kT2Zm
c2V0OwogICAgIH07CiAKICAgICBjbGFzcyBFeHByZXNzaW9uTm9kZSA6IHB1YmxpYyBOb2RlIHsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAJKHJldmlzaW9uIDE3
NTM2NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTEyNSw0NSArMTEyNSw2MyBAQCB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxk
ZXI+IFRyZWVTdGF0ZW1lCiAgICAgZGlyZWN0aXZlID0gMDsKICAgICBpbnQgbm9uVHJpdmlhbEV4
cHJlc3Npb25Db3VudCA9IDA7CiAgICAgZmFpbElmU3RhY2tPdmVyZmxvdygpOworICAgIFRyZWVT
dGF0ZW1lbnQgcmVzdWx0ID0gMDsKICAgICBzd2l0Y2ggKG1fdG9rZW4ubV90eXBlKSB7CiAgICAg
Y2FzZSBPUEVOQlJBQ0U6Ci0gICAgICAgIHJldHVybiBwYXJzZUJsb2NrU3RhdGVtZW50KGNvbnRl
eHQpOworICAgICAgICByZXN1bHQgPSBwYXJzZUJsb2NrU3RhdGVtZW50KGNvbnRleHQpOworICAg
ICAgICBicmVhazsKICAgICBjYXNlIFZBUjoKLSAgICAgICAgcmV0dXJuIHBhcnNlVmFyRGVjbGFy
YXRpb24oY29udGV4dCk7CisgICAgICAgIHJlc3VsdCA9IHBhcnNlVmFyRGVjbGFyYXRpb24oY29u
dGV4dCk7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ09OU1RUT0tFTjoKLSAgICAgICAgcmV0
dXJuIHBhcnNlQ29uc3REZWNsYXJhdGlvbihjb250ZXh0KTsKKyAgICAgICAgcmVzdWx0ID0gcGFy
c2VDb25zdERlY2xhcmF0aW9uKGNvbnRleHQpOworICAgICAgICBicmVhazsKICAgICBjYXNlIEZV
TkNUSU9OOgogICAgICAgICBmYWlsSWZGYWxzZUlmU3RyaWN0KG1fc3RhdGVtZW50RGVwdGggPT0g
MSwgIlN0cmljdCBtb2RlIGRvZXMgbm90IGFsbG93IGZ1bmN0aW9uIGRlY2xhcmF0aW9ucyBpbiBh
IGxleGljYWxseSBuZXN0ZWQgc3RhdGVtZW50Iik7Ci0gICAgICAgIHJldHVybiBwYXJzZUZ1bmN0
aW9uRGVjbGFyYXRpb24oY29udGV4dCk7CisgICAgICAgIHJlc3VsdCA9IHBhcnNlRnVuY3Rpb25E
ZWNsYXJhdGlvbihjb250ZXh0KTsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBTRU1JQ09MT046
IHsKICAgICAgICAgSlNUb2tlbkxvY2F0aW9uIGxvY2F0aW9uKHRva2VuTG9jYXRpb24oKSk7CiAg
ICAgICAgIG5leHQoKTsKLSAgICAgICAgcmV0dXJuIGNvbnRleHQuY3JlYXRlRW1wdHlTdGF0ZW1l
bnQobG9jYXRpb24pOworICAgICAgICByZXN1bHQgPSBjb250ZXh0LmNyZWF0ZUVtcHR5U3RhdGVt
ZW50KGxvY2F0aW9uKTsKKyAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgSUY6Ci0gICAg
ICAgIHJldHVybiBwYXJzZUlmU3RhdGVtZW50KGNvbnRleHQpOworICAgICAgICByZXN1bHQgPSBw
YXJzZUlmU3RhdGVtZW50KGNvbnRleHQpOworICAgICAgICBicmVhazsKICAgICBjYXNlIERPOgot
ICAgICAgICByZXR1cm4gcGFyc2VEb1doaWxlU3RhdGVtZW50KGNvbnRleHQpOworICAgICAgICBy
ZXN1bHQgPSBwYXJzZURvV2hpbGVTdGF0ZW1lbnQoY29udGV4dCk7CisgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgV0hJTEU6Ci0gICAgICAgIHJldHVybiBwYXJzZVdoaWxlU3RhdGVtZW50KGNvbnRl
eHQpOworICAgICAgICByZXN1bHQgPSBwYXJzZVdoaWxlU3RhdGVtZW50KGNvbnRleHQpOworICAg
ICAgICBicmVhazsKICAgICBjYXNlIEZPUjoKLSAgICAgICAgcmV0dXJuIHBhcnNlRm9yU3RhdGVt
ZW50KGNvbnRleHQpOworICAgICAgICByZXN1bHQgPSBwYXJzZUZvclN0YXRlbWVudChjb250ZXh0
KTsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDT05USU5VRToKLSAgICAgICAgcmV0dXJuIHBh
cnNlQ29udGludWVTdGF0ZW1lbnQoY29udGV4dCk7CisgICAgICAgIHJlc3VsdCA9IHBhcnNlQ29u
dGludWVTdGF0ZW1lbnQoY29udGV4dCk7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQlJFQUs6
Ci0gICAgICAgIHJldHVybiBwYXJzZUJyZWFrU3RhdGVtZW50KGNvbnRleHQpOworICAgICAgICBy
ZXN1bHQgPSBwYXJzZUJyZWFrU3RhdGVtZW50KGNvbnRleHQpOworICAgICAgICBicmVhazsKICAg
ICBjYXNlIFJFVFVSTjoKLSAgICAgICAgcmV0dXJuIHBhcnNlUmV0dXJuU3RhdGVtZW50KGNvbnRl
eHQpOworICAgICAgICByZXN1bHQgPSBwYXJzZVJldHVyblN0YXRlbWVudChjb250ZXh0KTsKKyAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBXSVRIOgotICAgICAgICByZXR1cm4gcGFyc2VXaXRoU3Rh
dGVtZW50KGNvbnRleHQpOworICAgICAgICByZXN1bHQgPSBwYXJzZVdpdGhTdGF0ZW1lbnQoY29u
dGV4dCk7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgU1dJVENIOgotICAgICAgICByZXR1cm4g
cGFyc2VTd2l0Y2hTdGF0ZW1lbnQoY29udGV4dCk7CisgICAgICAgIHJlc3VsdCA9IHBhcnNlU3dp
dGNoU3RhdGVtZW50KGNvbnRleHQpOworICAgICAgICBicmVhazsKICAgICBjYXNlIFRIUk9XOgot
ICAgICAgICByZXR1cm4gcGFyc2VUaHJvd1N0YXRlbWVudChjb250ZXh0KTsKKyAgICAgICAgcmVz
dWx0ID0gcGFyc2VUaHJvd1N0YXRlbWVudChjb250ZXh0KTsKKyAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBUUlk6Ci0gICAgICAgIHJldHVybiBwYXJzZVRyeVN0YXRlbWVudChjb250ZXh0KTsKKyAg
ICAgICAgcmVzdWx0ID0gcGFyc2VUcnlTdGF0ZW1lbnQoY29udGV4dCk7CisgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgREVCVUdHRVI6Ci0gICAgICAgIHJldHVybiBwYXJzZURlYnVnZ2VyU3RhdGVt
ZW50KGNvbnRleHQpOworICAgICAgICByZXN1bHQgPSBwYXJzZURlYnVnZ2VyU3RhdGVtZW50KGNv
bnRleHQpOworICAgICAgICBicmVhazsKICAgICBjYXNlIEVPRlRPSzoKICAgICBjYXNlIENBU0U6
CiAgICAgY2FzZSBDTE9TRUJSQUNFOgpAQCAtMTE3MSw3ICsxMTg5LDggQEAgdGVtcGxhdGUgPGNs
YXNzIFRyZWVCdWlsZGVyPiBUcmVlU3RhdGVtZQogICAgICAgICAvLyBUaGVzZSB0b2tlbnMgaW1w
bHkgdGhlIGVuZCBvZiBhIHNldCBvZiBzb3VyY2UgZWxlbWVudHMKICAgICAgICAgcmV0dXJuIDA7
CiAgICAgY2FzZSBJREVOVDoKLSAgICAgICAgcmV0dXJuIHBhcnNlRXhwcmVzc2lvbk9yTGFiZWxT
dGF0ZW1lbnQoY29udGV4dCk7CisgICAgICAgIHJlc3VsdCA9IHBhcnNlRXhwcmVzc2lvbk9yTGFi
ZWxTdGF0ZW1lbnQoY29udGV4dCk7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgU1RSSU5HOgog
ICAgICAgICBkaXJlY3RpdmUgPSBtX3Rva2VuLm1fZGF0YS5pZGVudDsKICAgICAgICAgaWYgKGRp
cmVjdGl2ZUxpdGVyYWxMZW5ndGgpCkBAIC0xMTgyLDggKzEyMDEsMTMgQEAgdGVtcGxhdGUgPGNs
YXNzIFRyZWVCdWlsZGVyPiBUcmVlU3RhdGVtZQogICAgICAgICBUcmVlU3RhdGVtZW50IGV4cHJT
dGF0ZW1lbnQgPSBwYXJzZUV4cHJlc3Npb25TdGF0ZW1lbnQoY29udGV4dCk7CiAgICAgICAgIGlm
IChkaXJlY3RpdmUgJiYgbm9uVHJpdmlhbEV4cHJlc3Npb25Db3VudCAhPSBtX25vblRyaXZpYWxF
eHByZXNzaW9uQ291bnQpCiAgICAgICAgICAgICBkaXJlY3RpdmUgPSAwOwotICAgICAgICByZXR1
cm4gZXhwclN0YXRlbWVudDsKKyAgICAgICAgcmVzdWx0ID0gZXhwclN0YXRlbWVudDsKKyAgICAg
ICAgYnJlYWs7CiAgICAgfQorCisgICAgaWYgKHJlc3VsdCkKKyAgICAgICAgY29udGV4dC5zZXRF
bmRPZmZzZXQocmVzdWx0LCBtX2xleGVyLT5jdXJyZW50T2Zmc2V0KCkpOworICAgIHJldHVybiBy
ZXN1bHQ7CiB9CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBMZXhlclR5cGU+CkBAIC0xMjk5LDYgKzEz
MjMsOCBAQCB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IGJvb2wgUGFyc2VyCiAKICAgICAg
ICAgbV9sZXhlci0+c2V0T2Zmc2V0KG1fdG9rZW4ubV9sb2NhdGlvbi5lbmRPZmZzZXQsIG1fdG9r
ZW4ubV9sb2NhdGlvbi5saW5lU3RhcnRPZmZzZXQpOwogICAgICAgICBtX2xleGVyLT5zZXRMaW5l
TnVtYmVyKG1fdG9rZW4ubV9sb2NhdGlvbi5saW5lKTsKKworICAgICAgICBjb250ZXh0LnNldEVu
ZE9mZnNldChib2R5LCBtX2xleGVyLT5jdXJyZW50T2Zmc2V0KCkpOwogICAgICAgICAKICAgICAg
ICAgbmV4dCgpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTEzMDgsNiArMTMzNCw3IEBAIHRl
bXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gYm9vbCBQYXJzZXIKICAgICBib2R5ID0gcGFyc2VG
dW5jdGlvbkJvZHkoY29udGV4dCk7CiAgICAgcmVzdG9yZVN0YXRlKG9sZFN0YXRlKTsKICAgICBm
YWlsSWZGYWxzZShib2R5LCAiQ2Fubm90IHBhcnNlIHRoZSBib2R5IG9mIHRoaXMgIiwgc3RyaW5n
Rm9yRnVuY3Rpb25Nb2RlKG1vZGUpKTsKKyAgICBjb250ZXh0LnNldEVuZE9mZnNldChib2R5LCBt
X2xleGVyLT5jdXJyZW50T2Zmc2V0KCkpOwogICAgIGlmIChmdW5jdGlvblNjb3BlLT5zdHJpY3RN
b2RlKCkgJiYgbmFtZSkgewogICAgICAgICBSRUxFQVNFX0FTU0VSVChtb2RlID09IEZ1bmN0aW9u
TW9kZSk7CiAgICAgICAgIHNlbWFudGljRmFpbElmVHJ1ZShtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5h
cmd1bWVudHMgPT0gKm5hbWUsICInIiwgbmFtZS0+aW1wbCgpLCAiJyBpcyBub3QgYSB2YWxpZCBm
dW5jdGlvbiBuYW1lIGluIHN0cmljdCBtb2RlIik7CkBAIC0xNTQyLDYgKzE1NjksNyBAQCB0ZW1w
bGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVFeHByZXNzCiAgICAgSlNUb2tlbkxvY2F0aW9u
IGxvY2F0aW9uKHRva2VuTG9jYXRpb24oKSk7CiAgICAgVHJlZUV4cHJlc3Npb24gbm9kZSA9IHBh
cnNlQXNzaWdubWVudEV4cHJlc3Npb24oY29udGV4dCk7CiAgICAgZmFpbElmRmFsc2Uobm9kZSwg
IkNhbm5vdCBwYXJzZSBleHByZXNzaW9uIik7CisgICAgY29udGV4dC5zZXRFbmRPZmZzZXQobm9k
ZSwgbV9sZXhlci0+Y3VycmVudE9mZnNldCgpKTsKICAgICBpZiAoIW1hdGNoKENPTU1BKSkKICAg
ICAgICAgcmV0dXJuIG5vZGU7CiAgICAgbmV4dCgpOwpAQCAtMTU0OSwxMyArMTU3NywxNiBAQCB0
ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVFeHByZXNzCiAgICAgbV9ub25MSFNDb3Vu
dCsrOwogICAgIFRyZWVFeHByZXNzaW9uIHJpZ2h0ID0gcGFyc2VBc3NpZ25tZW50RXhwcmVzc2lv
bihjb250ZXh0KTsKICAgICBmYWlsSWZGYWxzZShyaWdodCwgIkNhbm5vdCBwYXJzZSBleHByZXNz
aW9uIGluIGEgY29tbWEgZXhwcmVzc2lvbiIpOworICAgIGNvbnRleHQuc2V0RW5kT2Zmc2V0KHJp
Z2h0LCBtX2xleGVyLT5jdXJyZW50T2Zmc2V0KCkpOwogICAgIHR5cGVuYW1lIFRyZWVCdWlsZGVy
OjpDb21tYSBjb21tYU5vZGUgPSBjb250ZXh0LmNyZWF0ZUNvbW1hRXhwcihsb2NhdGlvbiwgbm9k
ZSwgcmlnaHQpOwogICAgIHdoaWxlIChtYXRjaChDT01NQSkpIHsKICAgICAgICAgbmV4dChUcmVl
QnVpbGRlcjo6RG9udEJ1aWxkU3RyaW5ncyk7CiAgICAgICAgIHJpZ2h0ID0gcGFyc2VBc3NpZ25t
ZW50RXhwcmVzc2lvbihjb250ZXh0KTsKICAgICAgICAgZmFpbElmRmFsc2UocmlnaHQsICJDYW5u
b3QgcGFyc2UgZXhwcmVzc2lvbiBpbiBhIGNvbW1hIGV4cHJlc3Npb24iKTsKKyAgICAgICAgY29u
dGV4dC5zZXRFbmRPZmZzZXQocmlnaHQsIG1fbGV4ZXItPmN1cnJlbnRPZmZzZXQoKSk7CiAgICAg
ICAgIGNvbnRleHQuYXBwZW5kVG9Db21tYShjb21tYU5vZGUsIHJpZ2h0KTsKICAgICB9CisgICAg
Y29udGV4dC5zZXRFbmRPZmZzZXQoY29tbWFOb2RlLCBtX2xleGVyLT5jdXJyZW50T2Zmc2V0KCkp
OwogICAgIHJldHVybiBjb21tYU5vZGU7CiB9CiAKQEAgLTE3MzgsNiArMTc2OSw3IEBAIHRlbXBs
YXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZVByb3BlcnQKICAgICAgICAgICAgIG5leHQoKTsK
ICAgICAgICAgICAgIFRyZWVFeHByZXNzaW9uIG5vZGUgPSBwYXJzZUFzc2lnbm1lbnRFeHByZXNz
aW9uKGNvbnRleHQpOwogICAgICAgICAgICAgZmFpbElmRmFsc2Uobm9kZSwgIkNhbm5vdCBwYXJz
ZSBleHByZXNzaW9uIGZvciBwcm9wZXJ0eSBkZWNsYXJhdGlvbiIpOworICAgICAgICAgICAgY29u
dGV4dC5zZXRFbmRPZmZzZXQobm9kZSwgbV9sZXhlci0+Y3VycmVudE9mZnNldCgpKTsKICAgICAg
ICAgICAgIHJldHVybiBjb250ZXh0LmNyZWF0ZVByb3BlcnR5KGlkZW50LCBub2RlLCBQcm9wZXJ0
eU5vZGU6OkNvbnN0YW50LCBjb21wbGV0ZSk7CiAgICAgICAgIH0KICAgICAgICAgZmFpbElmRmFs
c2Uod2FzSWRlbnQsICJFeHBlY3RlZCBhbiBpZGVudGlmaWVyIGFzIHByb3BlcnR5IG5hbWUiKTsK
QEAgLTE3ODIsNiArMTgxNCw3IEBAIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZVBy
b3BlcnQKICAgICAgICAgY29uc3VtZU9yRmFpbChDT0xPTiwgIkV4cGVjdGVkICc6JyBhZnRlciBw
cm9wZXJ0eSBuYW1lIik7CiAgICAgICAgIFRyZWVFeHByZXNzaW9uIG5vZGUgPSBwYXJzZUFzc2ln
bm1lbnRFeHByZXNzaW9uKGNvbnRleHQpOwogICAgICAgICBmYWlsSWZGYWxzZShub2RlLCAiQ2Fu
bm90IHBhcnNlIGV4cHJlc3Npb24gZm9yIHByb3BlcnR5IGRlY2xhcmF0aW9uIik7CisgICAgICAg
IGNvbnRleHQuc2V0RW5kT2Zmc2V0KG5vZGUsIG1fbGV4ZXItPmN1cnJlbnRPZmZzZXQoKSk7CiAg
ICAgICAgIHJldHVybiBjb250ZXh0LmNyZWF0ZVByb3BlcnR5KGNvbnN0X2Nhc3Q8Vk0qPihtX3Zt
KSwgcHJvcGVydHlOYW1lLCBub2RlLCBQcm9wZXJ0eU5vZGU6OkNvbnN0YW50LCBjb21wbGV0ZSk7
CiAgICAgfQogICAgIGNhc2UgT1BFTkJSQUNLRVQ6IHsKQEAgLTE3OTMsNiArMTgyNiw3IEBAIHRl
bXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZVByb3BlcnQKICAgICAgICAgY29uc3VtZU9y
RmFpbChDT0xPTiwgIkV4cGVjdGVkICc6JyBhZnRlciBwcm9wZXJ0eSBuYW1lIik7CiAgICAgICAg
IFRyZWVFeHByZXNzaW9uIG5vZGUgPSBwYXJzZUFzc2lnbm1lbnRFeHByZXNzaW9uKGNvbnRleHQp
OwogICAgICAgICBmYWlsSWZGYWxzZShub2RlLCAiQ2Fubm90IHBhcnNlIGV4cHJlc3Npb24gZm9y
IHByb3BlcnR5IGRlY2xhcmF0aW9uIik7CisgICAgICAgIGNvbnRleHQuc2V0RW5kT2Zmc2V0KG5v
ZGUsIG1fbGV4ZXItPmN1cnJlbnRPZmZzZXQoKSk7CiAgICAgICAgIHJldHVybiBjb250ZXh0LmNy
ZWF0ZVByb3BlcnR5KGNvbnN0X2Nhc3Q8Vk0qPihtX3ZtKSwgcHJvcGVydHlOYW1lLCBub2RlLCBQ
cm9wZXJ0eU5vZGU6OkNvbnN0YW50LCBjb21wbGV0ZSk7CiAgICAgfQogICAgIGRlZmF1bHQ6Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmgJKHJldmlzaW9uIDE3NTM2NSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmgJKHdvcmtpbmcgY29weSkK
QEAgLTkxMiw2ICs5MTIsNyBAQCBQYXNzUmVmUHRyPFBhcnNlZE5vZGU+IFBhcnNlcjxMZXhlclR5
cGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2ZlYXR1cmVzLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9udW1Db25zdGFudHMpOwogICAgICAg
ICByZXN1bHQtPnNldExvYyhtX3NvdXJjZS0+Zmlyc3RMaW5lKCksIG1fbGV4ZXItPmxpbmVOdW1i
ZXIoKSwgbV9sZXhlci0+Y3VycmVudE9mZnNldCgpLCBtX2xleGVyLT5jdXJyZW50TGluZVN0YXJ0
T2Zmc2V0KCkpOworICAgICAgICByZXN1bHQtPnNldEVuZE9mZnNldChtX2xleGVyLT5jdXJyZW50
T2Zmc2V0KCkpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIC8vIFdlIGNhbiBuZXZlciBzZWUgYSBz
eW50YXggZXJyb3Igd2hlbiByZXBhcnNpbmcgYSBmdW5jdGlvbiwgc2luY2Ugd2Ugc2hvdWxkIGhh
dmUKICAgICAgICAgLy8gcmVwb3J0ZWQgdGhlIGVycm9yIHdoZW4gcGFyc2luZyB0aGUgY29udGFp
bmluZyBwcm9ncmFtIG9yIGV2YWwgY29kZS4gU28gaWYgd2UncmUKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9wYXJzZXIvU3ludGF4Q2hlY2tlci5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9wYXJzZXIvU3ludGF4Q2hlY2tlci5oCShyZXZpc2lvbiAxNzUzNjUpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1N5bnRheENoZWNrZXIuaAkod29ya2luZyBj
b3B5KQpAQCAtMjk3LDYgKzI5Nyw4IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHBhdHRlcm4g
PT0gQmluZGluZ0RlY29uc3RydWN0aW9uOwogICAgIH0KIAorICAgIHZvaWQgc2V0RW5kT2Zmc2V0
KGludCwgaW50KSB7IH0KKwogcHJpdmF0ZToKICAgICBpbnQgbV90b3BCaW5hcnlFeHByOwogICAg
IGludCBtX3RvcFVuYXJ5VG9rZW47Cg==
</data>
<flag name="review"
          id="265486"
          type_id="1"
          status="+"
          setter="fpizlo"
    />
          </attachment>
      

    </bug>

</bugzilla>