<?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>19796</bug_id>
          
          <creation_ts>2008-06-27 22:58:58 -0700</creation_ts>
          <short_desc>optimize expressions with ignored results (especially post-increment)</short_desc>
          <delta_ts>2008-06-28 22:25:50 -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>Mac</rep_platform>
          <op_sys>OS X 10.5</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="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>84631</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-06-27 22:58:58 -0700</bug_when>
    <thetext>There was a FIXME in the VM alluding to the fact that we lost this optimization. I got it back for an 0.9% speedup.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>84632</commentid>
    <comment_count>1</comment_count>
      <attachid>21982</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-06-27 23:10:33 -0700</bug_when>
    <thetext>Created attachment 21982
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>84637</commentid>
    <comment_count>2</comment_count>
      <attachid>21982</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2008-06-28 00:33:45 -0700</bug_when>
    <thetext>Comment on attachment 21982
patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>84681</commentid>
    <comment_count>3</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-06-28 22:25:50 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/34852</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>21982</attachid>
            <date>2008-06-27 23:10:33 -0700</date>
            <delta_ts>2008-06-28 00:33:45 -0700</delta_ts>
            <desc>patch</desc>
            <filename>PostIncPatch.txt</filename>
            <type>text/plain</type>
            <size>23041</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDM0ODQ0KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNjggQEAKKzIwMDgtMDYtMjcgIERhcmluIEFk
bGVyICA8ZGFyaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIC0gZml4IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xOTc5NgorICAgICAgICAgIG9wdGltaXplIGV4cHJlc3Npb25zIHdpdGggaWdub3JlZCBy
ZXN1bHRzIChlc3BlY2lhbGx5IHBvc3QtaW5jcmVtZW50KQorCisgICAgICAgIFN1blNwaWRlciBz
YXlzIDAuOSUgZmFzdGVyLgorCisgICAgICAgICogVk0vQ29kZUdlbmVyYXRvci5oOgorICAgICAg
ICAoS0pTOjpDb2RlR2VuZXJhdG9yOjp0ZW1wRGVzdGluYXRpb24pOiBDcmVhdGUgYSBuZXcgdGVt
cG9yYXJ5IGZvcgorICAgICAgICBpZ25vcmVkUmVzdWx0KCkgdG9vLCBqdXN0IGFzIHdlIHdvdWxk
IGZvciAwLgorICAgICAgICAoS0pTOjpDb2RlR2VuZXJhdG9yOjpmaW5hbERlc3RpbmF0aW9uKTog
VXNlIHRoZSB0ZW1wb3JhcnkgaWYgdGhlCisgICAgICAgIHJlZ2lzdGVyIHBhc3NlZCBpbiBpcyBp
Z25vcmVkUmVzdWx0KCkgdG9vLCBqdXN0IGFzIHdlIHdvdWxkIGZvciAwLgorICAgICAgICAoS0pT
OjpDb2RlR2VuZXJhdG9yOjpkZXN0aW5hdGlvbkZvckFzc2lnblJlc3VsdCk6IFJldHVybiAwIGlm
IHRoZQorICAgICAgICBwYXNzZWQgaW4gcmVnaXN0ZXIgaXMgaWdub3JlZFJlc3VsdCgpLCBqdXN0
IGFzIHdlIHdvdWxkIGZvciAwLgorICAgICAgICAoS0pTOjpDb2RlR2VuZXJhdG9yOjptb3ZlVG9E
ZXN0aW5hdGlvbklmTmVlZGVkKTogUmV0dXJuIDAgaWYgdGhlCisgICAgICAgIHJlZ2lzdGVyIHBh
c3NlZCBpbiBpcyBpZ25vcmVkUmVzdWx0KCkuIFdoYXQgbWF0dGVycyBpcyB0aGF0IHdlCisgICAg
ICAgIGRvbid0IHdhbnQgdG8gZW1pdCBhIG1vdmUuIFRoZSByZXR1cm4gdmFsdWUgd29uJ3QgYmUg
bG9va2VkIGF0LgorICAgICAgICAoS0pTOjpDb2RlR2VuZXJhdG9yOjplbWl0Tm9kZSk6IEFsbG93
IGlnbm9yZWRSZXN1bHQoKSBhbmQgcGFzcyBpdAorICAgICAgICB0aHJvdWdoIHRvIHRoZSBub2Rl
J3MgZW1pdENvZGUgZnVuY3Rpb24uCisKKyAgICAgICAgKiBWTS9SZWdpc3RlcklELmg6CisgICAg
ICAgIChLSlM6Omlnbm9yZWRSZXN1bHQpOiBBZGRlZC4gU3BlY2lhbCB2YWx1ZSB0byBpbmRpY2F0
ZSB0aGUgcmVzdWx0IG9mCisgICAgICAgIGEgbm9kZSB3aWxsIGJlIGlnbm9yZWQgYW5kIG5lZWQg
bm90IGJlIHB1dCBpbiBhbnkgcmVnaXN0ZXIuCisKKyAgICAgICAgKiBranMvbm9kZXMuY3BwOgor
ICAgICAgICAoS0pTOjpOdWxsTm9kZTo6ZW1pdENvZGUpOiBEbyBub3RoaW5nIGlmIGRzdCA9PSBp
Z25vcmVkUmVzdWx0KCkuCisgICAgICAgIChLSlM6OkJvb2xlYW5Ob2RlOjplbWl0Q29kZSk6IERp
dHRvLgorICAgICAgICAoS0pTOjpOdW1iZXJOb2RlOjplbWl0Q29kZSk6IERpdHRvLgorICAgICAg
ICAoS0pTOjpTdHJpbmdOb2RlOjplbWl0Q29kZSk6IERpdHRvLgorICAgICAgICAoS0pTOjpSZWdF
eHBOb2RlOjplbWl0Q29kZSk6IERpdHRvLgorICAgICAgICAoS0pTOjpUaGlzTm9kZTo6ZW1pdENv
ZGUpOiBEaXR0by4KKyAgICAgICAgKEtKUzo6UmVzb2x2ZU5vZGU6OmVtaXRDb2RlKTogRG8gbm90
aGluZyBpZiBkc3QgPT0gaWdub3JlZFJlc3VsdCgpIGFuZAorICAgICAgICB0aGUgaWRlbnRpZmll
ciByZXNvbHZlcyB0byBhIGxvY2FsIHZhcmlhYmxlLgorICAgICAgICAoS0pTOjpPYmplY3RMaXRl
cmFsTm9kZTo6ZW1pdENvZGUpOiBEbyBub3RoaW5nIGlmIGRzdCA9PSBpZ25vcmVkUmVzdWx0KCkK
KyAgICAgICAgYW5kIHRoZSBvYmplY3QgaXMgZW1wdHkuCisgICAgICAgIChLSlM6OlBvc3RJbmNS
ZXNvbHZlTm9kZTo6ZW1pdENvZGUpOiBJZiBkc3QgPT0gaWdub3JlZFJlc3VsdCgpLCB0aGVuIGRv
CisgICAgICAgIG5vdGhpbmcgZm9yIHRoZSBsb2NhbCBjb25zdGFudCBjYXNlLCBhbmQgZG8gYSBw
cmUtaW5jcmVtZW50IGluIGFsbCB0aGUKKyAgICAgICAgb3RoZXIgY2FzZXMuCisgICAgICAgIChL
SlM6OlBvc3REZWNSZXNvbHZlTm9kZTo6ZW1pdENvZGUpOiBEaXR0by4KKyAgICAgICAgKEtKUzo6
UG9zdEluY0JyYWNrZXROb2RlOjplbWl0Q29kZSk6IERpdHRvLgorICAgICAgICAoS0pTOjpQb3N0
RGVjQnJhY2tldE5vZGU6OmVtaXRDb2RlKTogRGl0dG8uCisgICAgICAgIChLSlM6OlBvc3RJbmNE
b3ROb2RlOjplbWl0Q29kZSk6IERpdHRvLgorICAgICAgICAoS0pTOjpQb3N0RGVjRG90Tm9kZTo6
ZW1pdENvZGUpOiBEaXR0by4KKyAgICAgICAgKEtKUzo6RGVsZXRlVmFsdWVOb2RlOjplbWl0Q29k
ZSk6IFBhc3MgaWdub3JlZFJlc3VsdCgpIHdoZW4gZXZhbHVhdGluZworICAgICAgICB0aGUgZXhw
cmVzc2lvbi4KKyAgICAgICAgKEtKUzo6Vm9pZE5vZGU6OmVtaXRDb2RlKTogRGl0dG8uCisgICAg
ICAgIChLSlM6OlR5cGVPZlJlc29sdmVOb2RlOjplbWl0Q29kZSk6IElmIGRzdCA9PSBpZ25vcmVk
UmVzdWx0KCksIGRvIG5vdGhpbmcKKyAgICAgICAgaWYgdGhlIGlkZW50aWZpZXIgcmVzb2x2ZXMg
dG8gYSBsb2NhbCB2YXJpYWJsZSwgYW5kIGRvbid0IGJvdGhlciBnZW5lcmF0aW5nCisgICAgICAg
IGEgdHlwZW9mIG9wY29kZSBpbiB0aGUgb3RoZXIgY2FzZS4KKyAgICAgICAgKEtKUzo6VHlwZU9m
VmFsdWVOb2RlOjplbWl0Q29kZSk6IERpdHRvLgorICAgICAgICAoS0pTOjpQcmVJbmNSZXNvbHZl
Tm9kZTo6ZW1pdENvZGUpOiBEbyBub3RoaW5nIGlmIGRzdCA9PSBpZ25vcmVkUmVzdWx0KCkgYW5k
CisgICAgICAgIHRoZSBpZGVudGlmaWVyIHJlc29sdmVzIHRvIGEgbG9jYWwgY29uc3RhbnQuCisg
ICAgICAgIChLSlM6OlByZURlY1Jlc29sdmVOb2RlOjplbWl0Q29kZSk6IERpdHRvLgorICAgICAg
ICAoS0pTOjpBc3NpZ25SZXNvbHZlTm9kZTo6ZW1pdENvZGUpOiBUdXJuIGlnbm9yZWRSZXN1bHQo
KSBpbnRvIDAgaW4gYSBjb3VwbGUKKyAgICAgICAgcGxhY2VzLCBiZWNhdXNlIHdlIG5lZWQgdG8g
cHV0IHRoZSByZXN1bHQgaW50byBhIHJlZ2lzdGVyIHNvIHdlIGNhbiBhc3NpZ24KKyAgICAgICAg
aXQuIEF0IG90aGVyIHNpdGVzIHRoaXMgaXMgdGFrZW4gY2FyZSBvZiBieSBmdW5jdGlvbnMgbGlr
ZSBmaW5hbERlc3RpbmF0aW9uLgorICAgICAgICAoS0pTOjpDb21tYU5vZGU6OmVtaXRDb2RlKTog
UGFzcyBpZ25vcmVkUmVzdWx0KCkgd2hlbiBldmFsdWF0aW5nIHRoZSBmaXJzdAorICAgICAgICBl
eHByZXNzaW9uLgorICAgICAgICAoS0pTOjpGb3JOb2RlOjplbWl0Q29kZSk6IFBhc3MgaWdub3Jl
ZFJlc3VsdCgpIHdoZW4gZXZhbHVhdGluZyB0aGUgZmlyc3QgYW5kCisgICAgICAgIHRoaXJkIGV4
cHJlc3Npb25zLgorICAgICAgICAoS0pTOjpGb3JJbk5vZGU6OmVtaXRDb2RlKTogUGFzcyBpZ25v
cmVkUmVzdWx0KCkgd2hlbiBldmFsdWF0aW5nIHRoZSBmaXJzdAorICAgICAgICBleHByZXNzaW9u
LgorCiAyMDA4LTA2LTI3ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgT2xpdmVyIEh1bnQuCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9WTS9Db2RlR2Vu
ZXJhdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvVk0vQ29kZUdlbmVyYXRvci5o
CShyZXZpc2lvbiAzNDg0NCkKKysrIEphdmFTY3JpcHRDb3JlL1ZNL0NvZGVHZW5lcmF0b3IuaAko
d29ya2luZyBjb3B5KQpAQCAtMTI4LDE2ICsxMjgsMTkgQEAgbmFtZXNwYWNlIEtKUyB7CiAKICAg
ICAgICAgLy8gRnVuY3Rpb25zIGZvciBoYW5kbGluZyBvZiBkc3QgcmVnaXN0ZXIKIAotICAgICAg
ICAvLyBSZXR1cm5zICBhIHBsYWNlIHRvIHdyaXRlIGludGVybWVkaWF0ZSB2YWx1ZXMgb2YgYW4g
b3BlcmF0aW9uCisgICAgICAgIC8vIFJldHVybnMgYSBwbGFjZSB0byB3cml0ZSBpbnRlcm1lZGlh
dGUgdmFsdWVzIG9mIGFuIG9wZXJhdGlvbgogICAgICAgICAvLyB3aGljaCByZXVzZXMgZHN0IGlm
IGl0IGlzIHNhZmUgdG8gZG8gc28uCi0KLSAgICAgICAgUmVnaXN0ZXJJRCogdGVtcERlc3RpbmF0
aW9uKFJlZ2lzdGVySUQqIGRzdCkgeyByZXR1cm4gKGRzdCAmJiBkc3QtPmlzVGVtcG9yYXJ5KCkp
ID8gZHN0IDogbmV3VGVtcG9yYXJ5KCk7IH0KKyAgICAgICAgUmVnaXN0ZXJJRCogdGVtcERlc3Rp
bmF0aW9uKFJlZ2lzdGVySUQqIGRzdCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIChk
c3QgJiYgZHN0ICE9IGlnbm9yZWRSZXN1bHQoKSAmJiBkc3QtPmlzVGVtcG9yYXJ5KCkpID8gZHN0
IDogbmV3VGVtcG9yYXJ5KCk7CisgICAgICAgIH0KIAogICAgICAgICAvLyBSZXR1cm5zIHRoZSBw
bGFjZSB0byB3cml0ZSB0aGUgZmluYWwgb3V0cHV0IG9mIGFuIG9wZXJhdGlvbi4KICAgICAgICAg
UmVnaXN0ZXJJRCogZmluYWxEZXN0aW5hdGlvbihSZWdpc3RlcklEKiBvcmlnaW5hbERzdCwgUmVn
aXN0ZXJJRCogdGVtcERzdCA9IDApCiAgICAgICAgIHsKLSAgICAgICAgICAgIGlmIChvcmlnaW5h
bERzdCkKKyAgICAgICAgICAgIGlmIChvcmlnaW5hbERzdCAmJiBvcmlnaW5hbERzdCAhPSBpZ25v
cmVkUmVzdWx0KCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIG9yaWdpbmFsRHN0OworICAgICAg
ICAgICAgQVNTRVJUKHRlbXBEc3QgIT0gaWdub3JlZFJlc3VsdCgpKTsKICAgICAgICAgICAgIGlm
ICh0ZW1wRHN0ICYmIHRlbXBEc3QtPmlzVGVtcG9yYXJ5KCkpCiAgICAgICAgICAgICAgICAgcmV0
dXJuIHRlbXBEc3Q7CiAgICAgICAgICAgICByZXR1cm4gbmV3VGVtcG9yYXJ5KCk7CkBAIC0xNDUs
MjIgKzE0OCwyOCBAQCBuYW1lc3BhY2UgS0pTIHsKIAogICAgICAgICBSZWdpc3RlcklEKiBkZXN0
aW5hdGlvbkZvckFzc2lnblJlc3VsdChSZWdpc3RlcklEKiBkc3QpCiAgICAgICAgIHsKLSAgICAg
ICAgICAgIGlmIChkc3QgJiYgbV9jb2RlQmxvY2stPm5lZWRzRnVsbFNjb3BlQ2hhaW4pCisgICAg
ICAgICAgICBpZiAoZHN0ICYmIGRzdCAhPSBpZ25vcmVkUmVzdWx0KCkgJiYgbV9jb2RlQmxvY2st
Pm5lZWRzRnVsbFNjb3BlQ2hhaW4pCiAgICAgICAgICAgICAgICAgcmV0dXJuIGRzdC0+aXNUZW1w
b3JhcnkoKSA/IGRzdCA6IG5ld1RlbXBvcmFyeSgpOwogICAgICAgICAgICAgcmV0dXJuIDA7CiAg
ICAgICAgIH0KIAotICAgICAgICAvLyBtb3ZlcyBzcmMgdG8gZHN0IGlmIGRzdCBpcyBub3QgbnVs
bCBhbmQgaXMgZGlmZmVyZW50IGZyb20gc3JjLCBvdGhlcndpc2UganVzdCByZXR1cm5zIHNyYwot
ICAgICAgICBSZWdpc3RlcklEKiBtb3ZlVG9EZXN0aW5hdGlvbklmTmVlZGVkKFJlZ2lzdGVySUQq
IGRzdCwgUmVnaXN0ZXJJRCogc3JjKSB7IHJldHVybiAoZHN0ICYmIGRzdCAhPSBzcmMpID8gZW1p
dE1vdmUoZHN0LCBzcmMpIDogc3JjOyB9CisgICAgICAgIC8vIE1vdmVzIHNyYyB0byBkc3QgaWYg
ZHN0IGlzIG5vdCBudWxsIGFuZCBpcyBkaWZmZXJlbnQgZnJvbSBzcmMsIG90aGVyd2lzZSBqdXN0
IHJldHVybnMgc3JjLgorICAgICAgICBSZWdpc3RlcklEKiBtb3ZlVG9EZXN0aW5hdGlvbklmTmVl
ZGVkKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogc3JjKQorICAgICAgICB7CisgICAgICAg
ICAgICByZXR1cm4gZHN0ID09IGlnbm9yZWRSZXN1bHQoKSA/IDAgOiAoZHN0ICYmIGRzdCAhPSBz
cmMpID8gZW1pdE1vdmUoZHN0LCBzcmMpIDogc3JjOworICAgICAgICB9CiAKICAgICAgICAgUGFz
c1JlZlB0cjxMYWJlbElEPiBuZXdMYWJlbCgpOwogCiAgICAgICAgIC8vIFRoZSBlbWl0Tm9kZSBm
dW5jdGlvbnMgYXJlIGp1c3Qgc3ludGFjdGljIHN1Z2FyIGZvciBjYWxsaW5nCi0gICAgICAgIC8v
IE5vZGU6OmVtaXRDb2RlLiBUaGV5J3JlIHRoZSBvbmx5IGZ1bmN0aW9ucyB0aGF0IGFjY2VwdCBh
IE5VTEwgcmVnaXN0ZXIuCisgICAgICAgIC8vIE5vZGU6OmVtaXRDb2RlLiBUaGVzZSBmdW5jdGlv
bnMgYWNjZXB0IGEgMCBmb3IgdGhlIHJlZ2lzdGVyLAorICAgICAgICAvLyBtZWFuaW5nIHRoYXQg
dGhlIG5vZGUgc2hvdWxkIGFsbG9jYXRlIGEgcmVnaXN0ZXIsIG9yIGlnbm9yZWRSZXN1bHQoKSwK
KyAgICAgICAgLy8gbWVhbmluZyB0aGF0IHRoZSBub2RlIG5lZWQgbm90IHB1dCB0aGUgcmVzdWx0
IGluIGEgcmVnaXN0ZXIuCisgICAgICAgIC8vIE90aGVyIGVtaXQgZnVuY3Rpb25zIGRvIG5vdCBh
Y2NlcHQgMCBvciBpZ25vcmVkUmVzdWx0KCkuCiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXROb2Rl
KFJlZ2lzdGVySUQqIGRzdCwgTm9kZSogbikKICAgICAgICAgewogICAgICAgICAgICAgLy8gTm9k
ZTo6ZW1pdENvZGUgYXNzdW1lcyB0aGF0IGRzdCwgaWYgcHJvdmlkZWQsIGlzIGVpdGhlciBhIGxv
Y2FsIG9yIGEgcmVmZXJlbmNlZCB0ZW1wb3JhcnkuCi0gICAgICAgICAgICBBU1NFUlQoIWRzdCB8
fCAhZHN0LT5pc1RlbXBvcmFyeSgpIHx8IGRzdC0+cmVmQ291bnQoKSk7CisgICAgICAgICAgICBB
U1NFUlQoIWRzdCB8fCBkc3QgPT0gaWdub3JlZFJlc3VsdCgpIHx8ICFkc3QtPmlzVGVtcG9yYXJ5
KCkgfHwgZHN0LT5yZWZDb3VudCgpKTsKICAgICAgICAgICAgIGlmICghbV9jb2RlQmxvY2stPmxp
bmVJbmZvLnNpemUoKSB8fCBtX2NvZGVCbG9jay0+bGluZUluZm8ubGFzdCgpLmxpbmVOdW1iZXIg
IT0gbi0+bGluZU5vKCkpIHsKICAgICAgICAgICAgICAgICBMaW5lSW5mbyBpbmZvID0geyBpbnN0
cnVjdGlvbnMoKS5zaXplKCksIG4tPmxpbmVObygpIH07CiAgICAgICAgICAgICAgICAgbV9jb2Rl
QmxvY2stPmxpbmVJbmZvLmFwcGVuZChpbmZvKTsKSW5kZXg6IEphdmFTY3JpcHRDb3JlL1ZNL1Jl
Z2lzdGVySUQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9WTS9SZWdpc3RlcklELmgJ
KHJldmlzaW9uIDM0ODQ0KQorKysgSmF2YVNjcmlwdENvcmUvVk0vUmVnaXN0ZXJJRC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC05OSw2ICs5OSw4IEBAIG5hbWVzcGFjZSBLSlMgewogI2VuZGlmCiAgICAg
fTsKIAorICAgIGlubGluZSBSZWdpc3RlcklEKiBpZ25vcmVkUmVzdWx0KCkgeyByZXR1cm4gcmVp
bnRlcnByZXRfY2FzdDxSZWdpc3RlcklEKj4oMSk7IH0KKwogfSAvLyBuYW1lc3BhY2UgS0pTCiAK
IG5hbWVzcGFjZSBXVEYgewpJbmRleDogSmF2YVNjcmlwdENvcmUva2pzL25vZGVzLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9ranMvbm9kZXMuY3BwCShyZXZpc2lvbiAzNDg0NCkK
KysrIEphdmFTY3JpcHRDb3JlL2tqcy9ub2Rlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4Nyw2
ICsyODcsOCBAQCB2b2lkIEJyZWFrcG9pbnRDaGVja1N0YXRlbWVudDo6c3RyZWFtVG8oCiAKIFJl
Z2lzdGVySUQqIE51bGxOb2RlOjplbWl0Q29kZShDb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJl
Z2lzdGVySUQqIGRzdCkKIHsKKyAgICBpZiAoZHN0ID09IGlnbm9yZWRSZXN1bHQoKSkKKyAgICAg
ICAgcmV0dXJuIDA7CiAgICAgcmV0dXJuIGdlbmVyYXRvci5lbWl0TG9hZChnZW5lcmF0b3IuZmlu
YWxEZXN0aW5hdGlvbihkc3QpLCBqc051bGwoKSk7CiB9CiAKQEAgLTI5NCw2ICsyOTYsOCBAQCBS
ZWdpc3RlcklEKiBOdWxsTm9kZTo6ZW1pdENvZGUoQ29kZUdlbmVyCiAKIFJlZ2lzdGVySUQqIEJv
b2xlYW5Ob2RlOjplbWl0Q29kZShDb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQq
IGRzdCkKIHsKKyAgICBpZiAoZHN0ID09IGlnbm9yZWRSZXN1bHQoKSkKKyAgICAgICAgcmV0dXJu
IDA7CiAgICAgcmV0dXJuIGdlbmVyYXRvci5lbWl0TG9hZChnZW5lcmF0b3IuZmluYWxEZXN0aW5h
dGlvbihkc3QpLCBtX3ZhbHVlKTsKIH0KIApAQCAtMzAxLDYgKzMwNSw4IEBAIFJlZ2lzdGVySUQq
IEJvb2xlYW5Ob2RlOjplbWl0Q29kZShDb2RlR2UKIAogUmVnaXN0ZXJJRCogTnVtYmVyTm9kZTo6
ZW1pdENvZGUoQ29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKiBkc3QpCiB7Cisg
ICAgaWYgKGRzdCA9PSBpZ25vcmVkUmVzdWx0KCkpCisgICAgICAgIHJldHVybiAwOwogICAgIHJl
dHVybiBnZW5lcmF0b3IuZW1pdExvYWQoZ2VuZXJhdG9yLmZpbmFsRGVzdGluYXRpb24oZHN0KSwg
bV9kb3VibGUpOwogfQogCkBAIC0zMDgsNiArMzE0LDggQEAgUmVnaXN0ZXJJRCogTnVtYmVyTm9k
ZTo6ZW1pdENvZGUoQ29kZUdlbgogCiBSZWdpc3RlcklEKiBTdHJpbmdOb2RlOjplbWl0Q29kZShD
b2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqIGRzdCkKIHsKKyAgICBpZiAoZHN0
ID09IGlnbm9yZWRSZXN1bHQoKSkKKyAgICAgICAgcmV0dXJuIDA7CiAgICAgLy8gRklYTUU6IHNo
b3VsZCB3ZSB0cnkgdG8gYXRvbWl6ZSBjb25zdGFudCBzdHJpbmdzPwogICAgIHJldHVybiBnZW5l
cmF0b3IuZW1pdExvYWQoZ2VuZXJhdG9yLmZpbmFsRGVzdGluYXRpb24oZHN0KSwganNPd25lZFN0
cmluZyhnZW5lcmF0b3IuZ2xvYmFsRXhlYygpLCBtX3ZhbHVlKSk7CiB9CkBAIC0zMTgsNiArMzI2
LDggQEAgUmVnaXN0ZXJJRCogUmVnRXhwTm9kZTo6ZW1pdENvZGUoQ29kZUdlbgogewogICAgIGlm
ICghbV9yZWdFeHAtPmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIGVtaXRUaHJvd0Vycm9yKGdl
bmVyYXRvciwgU3ludGF4RXJyb3IsICgiSW52YWxpZCByZWd1bGFyIGV4cHJlc3Npb246ICIgKyBV
U3RyaW5nKG1fcmVnRXhwLT5lcnJvck1lc3NhZ2UoKSkpLlVURjhTdHJpbmcoKS5jX3N0cigpKTsK
KyAgICBpZiAoZHN0ID09IGlnbm9yZWRSZXN1bHQoKSkKKyAgICAgICAgcmV0dXJuIDA7CiAgICAg
cmV0dXJuIGdlbmVyYXRvci5lbWl0TmV3UmVnRXhwKGdlbmVyYXRvci5maW5hbERlc3RpbmF0aW9u
KGRzdCksIG1fcmVnRXhwLmdldCgpKTsKIH0KIApAQCAtMzI1LDYgKzMzNSw4IEBAIFJlZ2lzdGVy
SUQqIFJlZ0V4cE5vZGU6OmVtaXRDb2RlKENvZGVHZW4KIAogUmVnaXN0ZXJJRCogVGhpc05vZGU6
OmVtaXRDb2RlKENvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJRCogZHN0KQogewor
ICAgIGlmIChkc3QgPT0gaWdub3JlZFJlc3VsdCgpKQorICAgICAgICByZXR1cm4gMDsKICAgICBy
ZXR1cm4gZ2VuZXJhdG9yLm1vdmVUb0Rlc3RpbmF0aW9uSWZOZWVkZWQoZHN0LCBnZW5lcmF0b3Iu
dGhpc1JlZ2lzdGVyKCkpOwogfQogCkBAIC0zMzcsOCArMzQ5LDExIEBAIGJvb2wgUmVzb2x2ZU5v
ZGU6OmlzUHVyZShDb2RlR2VuZXJhdG9yJiAKIAogUmVnaXN0ZXJJRCogUmVzb2x2ZU5vZGU6OmVt
aXRDb2RlKENvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJRCogZHN0KQogewotICAg
IGlmIChSZWdpc3RlcklEKiBsb2NhbCA9IGdlbmVyYXRvci5yZWdpc3RlckZvckxvY2FsKG1faWRl
bnQpKQorICAgIGlmIChSZWdpc3RlcklEKiBsb2NhbCA9IGdlbmVyYXRvci5yZWdpc3RlckZvckxv
Y2FsKG1faWRlbnQpKSB7CisgICAgICAgIGlmIChkc3QgPT0gaWdub3JlZFJlc3VsdCgpKQorICAg
ICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIHJldHVybiBnZW5lcmF0b3IubW92ZVRvRGVzdGlu
YXRpb25JZk5lZWRlZChkc3QsIGxvY2FsKTsKKyAgICB9CiAKICAgICByZXR1cm4gZ2VuZXJhdG9y
LmVtaXRSZXNvbHZlKGdlbmVyYXRvci5maW5hbERlc3RpbmF0aW9uKGRzdCksIG1faWRlbnQpOwog
fQpAQCAtMzY4LDEwICszODMsMTIgQEAgUmVnaXN0ZXJJRCogQXJyYXlOb2RlOjplbWl0Q29kZShD
b2RlR2VuZQogCiBSZWdpc3RlcklEKiBPYmplY3RMaXRlcmFsTm9kZTo6ZW1pdENvZGUoQ29kZUdl
bmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKiBkc3QpCiB7Ci0gICAgaWYgKG1fbGlzdCkK
LSAgICAgICAgcmV0dXJuIGdlbmVyYXRvci5lbWl0Tm9kZShkc3QsIG1fbGlzdC5nZXQoKSk7Ci0g
ICAgZWxzZQorICAgIGlmICghbV9saXN0KSB7CisgICAgICAgIGlmIChkc3QgPT0gaWdub3JlZFJl
c3VsdCgpKQorICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIHJldHVybiBnZW5lcmF0b3Iu
ZW1pdE5ld09iamVjdChnZW5lcmF0b3IuZmluYWxEZXN0aW5hdGlvbihkc3QpKTsKKyAgICB9Cisg
ICAgcmV0dXJuIGdlbmVyYXRvci5lbWl0Tm9kZShkc3QsIG1fbGlzdC5nZXQoKSk7CiB9CiAKIC8v
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBQcm9wZXJ0eUxpc3ROb2RlIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC00OTEsMTMgKzUwOCwxNSBAQCBSZWdpc3RlcklEKiBG
dW5jdGlvbkNhbGxEb3ROb2RlOjplbWl0Q29kCiAKIFJlZ2lzdGVySUQqIFBvc3RJbmNSZXNvbHZl
Tm9kZTo6ZW1pdENvZGUoQ29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKiBkc3Qp
CiB7Ci0gICAgLy8gRklYTUU6IEkgdGhpbmsgd2UgY2FuIGRldGVjdCB0aGUgYWJzZW5zZSBvZiBk
ZXBlbmRlbnQgZXhwcmVzc2lvbnMgaGVyZSwgCi0gICAgLy8gYW5kIGVtaXQgYSBQcmVJbmMgaW5z
dGVhZCBvZiBhIFBvc3RJbmMuIEEgcG9zdC1wYXNzIHRvIGVsaW1pbmF0ZSBkZWFkCi0gICAgLy8g
Y29kZSB3b3VsZCB3b3JrLCB0b28uCiAgICAgaWYgKFJlZ2lzdGVySUQqIGxvY2FsID0gZ2VuZXJh
dG9yLnJlZ2lzdGVyRm9yTG9jYWwobV9pZGVudCkpIHsKLSAgICAgICAgaWYgKGdlbmVyYXRvci5p
c0xvY2FsQ29uc3RhbnQobV9pZGVudCkpCisgICAgICAgIGlmIChnZW5lcmF0b3IuaXNMb2NhbENv
bnN0YW50KG1faWRlbnQpKSB7CisgICAgICAgICAgICBpZiAoZHN0ID09IGlnbm9yZWRSZXN1bHQo
KSkKKyAgICAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgICAgIHJldHVybiBnZW5lcmF0
b3IuZW1pdFRvSlNOdW1iZXIoZ2VuZXJhdG9yLmZpbmFsRGVzdGluYXRpb24oZHN0KSwgbG9jYWwp
OwotICAgICAgICAKKyAgICAgICAgfQorCisgICAgICAgIGlmIChkc3QgPT0gaWdub3JlZFJlc3Vs
dCgpKQorICAgICAgICAgICAgcmV0dXJuIGdlbmVyYXRvci5lbWl0UHJlSW5jKGxvY2FsKTsKICAg
ICAgICAgcmV0dXJuIGdlbmVyYXRvci5lbWl0UG9zdEluYyhnZW5lcmF0b3IuZmluYWxEZXN0aW5h
dGlvbihkc3QpLCBsb2NhbCk7CiAgICAgfQogCkBAIC01MDUsMjcgKzUyNCw0MSBAQCBSZWdpc3Rl
cklEKiBQb3N0SW5jUmVzb2x2ZU5vZGU6OmVtaXRDb2RlCiAgICAgc2l6ZV90IGRlcHRoID0gMDsK
ICAgICBpZiAoZ2VuZXJhdG9yLmZpbmRTY29wZWRQcm9wZXJ0eShtX2lkZW50LCBpbmRleCwgZGVw
dGgpICYmIGluZGV4ICE9IG1pc3NpbmdTeW1ib2xNYXJrZXIoKSkgewogICAgICAgICBSZWZQdHI8
UmVnaXN0ZXJJRD4gdmFsdWUgPSBnZW5lcmF0b3IuZW1pdEdldFNjb3BlZFZhcihnZW5lcmF0b3Iu
bmV3VGVtcG9yYXJ5KCksIGRlcHRoLCBpbmRleCk7Ci0gICAgICAgIFJlZ2lzdGVySUQqIG9sZFZh
bHVlID0gZ2VuZXJhdG9yLmVtaXRQb3N0SW5jKGdlbmVyYXRvci5maW5hbERlc3RpbmF0aW9uKGRz
dCksIHZhbHVlLmdldCgpKTsKKyAgICAgICAgUmVnaXN0ZXJJRCogb2xkVmFsdWU7CisgICAgICAg
IGlmIChkc3QgPT0gaWdub3JlZFJlc3VsdCgpKSB7CisgICAgICAgICAgICBvbGRWYWx1ZSA9IDA7
CisgICAgICAgICAgICBnZW5lcmF0b3IuZW1pdFByZUluYyh2YWx1ZS5nZXQoKSk7CisgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICBvbGRWYWx1ZSA9IGdlbmVyYXRvci5lbWl0UG9zdEluYyhn
ZW5lcmF0b3IuZmluYWxEZXN0aW5hdGlvbihkc3QpLCB2YWx1ZS5nZXQoKSk7CisgICAgICAgIH0K
ICAgICAgICAgZ2VuZXJhdG9yLmVtaXRQdXRTY29wZWRWYXIoZGVwdGgsIGluZGV4LCB2YWx1ZS5n
ZXQoKSk7CiAgICAgICAgIHJldHVybiBvbGRWYWx1ZTsKICAgICB9CiAKICAgICBSZWZQdHI8UmVn
aXN0ZXJJRD4gdmFsdWUgPSBnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCk7CiAgICAgUmVmUHRyPFJl
Z2lzdGVySUQ+IGJhc2UgPSBnZW5lcmF0b3IuZW1pdFJlc29sdmVXaXRoQmFzZShnZW5lcmF0b3Iu
bmV3VGVtcG9yYXJ5KCksIHZhbHVlLmdldCgpLCBtX2lkZW50KTsKLSAgICBSZWdpc3RlcklEKiBv
bGRWYWx1ZSA9IGdlbmVyYXRvci5lbWl0UG9zdEluYyhnZW5lcmF0b3IuZmluYWxEZXN0aW5hdGlv
bihkc3QpLCB2YWx1ZS5nZXQoKSk7CisgICAgUmVnaXN0ZXJJRCogb2xkVmFsdWU7CisgICAgaWYg
KGRzdCA9PSBpZ25vcmVkUmVzdWx0KCkpIHsKKyAgICAgICAgb2xkVmFsdWUgPSAwOworICAgICAg
ICBnZW5lcmF0b3IuZW1pdFByZUluYyh2YWx1ZS5nZXQoKSk7CisgICAgfSBlbHNlIHsKKyAgICAg
ICAgb2xkVmFsdWUgPSBnZW5lcmF0b3IuZW1pdFBvc3RJbmMoZ2VuZXJhdG9yLmZpbmFsRGVzdGlu
YXRpb24oZHN0KSwgdmFsdWUuZ2V0KCkpOworICAgIH0KICAgICBnZW5lcmF0b3IuZW1pdFB1dEJ5
SWQoYmFzZS5nZXQoKSwgbV9pZGVudCwgdmFsdWUuZ2V0KCkpOwogICAgIHJldHVybiBvbGRWYWx1
ZTsKIH0KIAogUmVnaXN0ZXJJRCogUG9zdERlY1Jlc29sdmVOb2RlOjplbWl0Q29kZShDb2RlR2Vu
ZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqIGRzdCkKIHsKLSAgICAvLyBGSVhNRTogSSB0
aGluayB3ZSBjYW4gZGV0ZWN0IHRoZSBhYnNlbnNlIG9mIGRlcGVuZGVudCBleHByZXNzaW9ucyBo
ZXJlLCAKLSAgICAvLyBhbmQgZW1pdCBhIFByZURlYyBpbnN0ZWFkIG9mIGEgUG9zdERlYy4gQSBw
b3N0LXBhc3MgdG8gZWxpbWluYXRlIGRlYWQKLSAgICAvLyBjb2RlIHdvdWxkIHdvcmssIHRvby4K
ICAgICBpZiAoUmVnaXN0ZXJJRCogbG9jYWwgPSBnZW5lcmF0b3IucmVnaXN0ZXJGb3JMb2NhbCht
X2lkZW50KSkgewotICAgICAgICBpZiAoZ2VuZXJhdG9yLmlzTG9jYWxDb25zdGFudChtX2lkZW50
KSkKKyAgICAgICAgaWYgKGdlbmVyYXRvci5pc0xvY2FsQ29uc3RhbnQobV9pZGVudCkpIHsKKyAg
ICAgICAgICAgIGlmIChkc3QgPT0gaWdub3JlZFJlc3VsdCgpKQorICAgICAgICAgICAgICAgIHJl
dHVybiAwOwogICAgICAgICAgICAgcmV0dXJuIGdlbmVyYXRvci5lbWl0VG9KU051bWJlcihnZW5l
cmF0b3IuZmluYWxEZXN0aW5hdGlvbihkc3QpLCBsb2NhbCk7Ci0gICAgICAgIAorICAgICAgICB9
CisKKyAgICAgICAgaWYgKGRzdCA9PSBpZ25vcmVkUmVzdWx0KCkpCisgICAgICAgICAgICByZXR1
cm4gZ2VuZXJhdG9yLmVtaXRQcmVEZWMobG9jYWwpOwogICAgICAgICByZXR1cm4gZ2VuZXJhdG9y
LmVtaXRQb3N0RGVjKGdlbmVyYXRvci5maW5hbERlc3RpbmF0aW9uKGRzdCksIGxvY2FsKTsKICAg
ICB9CiAKQEAgLTUzMywxNCArNTY2LDI2IEBAIFJlZ2lzdGVySUQqIFBvc3REZWNSZXNvbHZlTm9k
ZTo6ZW1pdENvZGUKICAgICBzaXplX3QgZGVwdGggPSAwOwogICAgIGlmIChnZW5lcmF0b3IuZmlu
ZFNjb3BlZFByb3BlcnR5KG1faWRlbnQsIGluZGV4LCBkZXB0aCkgJiYgaW5kZXggIT0gbWlzc2lu
Z1N5bWJvbE1hcmtlcigpKSB7CiAgICAgICAgIFJlZlB0cjxSZWdpc3RlcklEPiB2YWx1ZSA9IGdl
bmVyYXRvci5lbWl0R2V0U2NvcGVkVmFyKGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKSwgZGVwdGgs
IGluZGV4KTsKLSAgICAgICAgUmVnaXN0ZXJJRCogb2xkVmFsdWUgPSBnZW5lcmF0b3IuZW1pdFBv
c3REZWMoZ2VuZXJhdG9yLmZpbmFsRGVzdGluYXRpb24oZHN0KSwgdmFsdWUuZ2V0KCkpOworICAg
ICAgICBSZWdpc3RlcklEKiBvbGRWYWx1ZTsKKyAgICAgICAgaWYgKGRzdCA9PSBpZ25vcmVkUmVz
dWx0KCkpIHsKKyAgICAgICAgICAgIG9sZFZhbHVlID0gMDsKKyAgICAgICAgICAgIGdlbmVyYXRv
ci5lbWl0UHJlRGVjKHZhbHVlLmdldCgpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg
IG9sZFZhbHVlID0gZ2VuZXJhdG9yLmVtaXRQb3N0RGVjKGdlbmVyYXRvci5maW5hbERlc3RpbmF0
aW9uKGRzdCksIHZhbHVlLmdldCgpKTsKKyAgICAgICAgfQogICAgICAgICBnZW5lcmF0b3IuZW1p
dFB1dFNjb3BlZFZhcihkZXB0aCwgaW5kZXgsIHZhbHVlLmdldCgpKTsKICAgICAgICAgcmV0dXJu
IG9sZFZhbHVlOwogICAgIH0KIAogICAgIFJlZlB0cjxSZWdpc3RlcklEPiB2YWx1ZSA9IGdlbmVy
YXRvci5uZXdUZW1wb3JhcnkoKTsKICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gYmFzZSA9IGdlbmVy
YXRvci5lbWl0UmVzb2x2ZVdpdGhCYXNlKGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKSwgdmFsdWUu
Z2V0KCksIG1faWRlbnQpOwotICAgIFJlZ2lzdGVySUQqIG9sZFZhbHVlID0gZ2VuZXJhdG9yLmVt
aXRQb3N0RGVjKGdlbmVyYXRvci5maW5hbERlc3RpbmF0aW9uKGRzdCksIHZhbHVlLmdldCgpKTsK
KyAgICBSZWdpc3RlcklEKiBvbGRWYWx1ZTsKKyAgICBpZiAoZHN0ID09IGlnbm9yZWRSZXN1bHQo
KSkgeworICAgICAgICBvbGRWYWx1ZSA9IDA7CisgICAgICAgIGdlbmVyYXRvci5lbWl0UHJlRGVj
KHZhbHVlLmdldCgpKTsKKyAgICB9IGVsc2UgeworICAgICAgICBvbGRWYWx1ZSA9IGdlbmVyYXRv
ci5lbWl0UG9zdERlYyhnZW5lcmF0b3IuZmluYWxEZXN0aW5hdGlvbihkc3QpLCB2YWx1ZS5nZXQo
KSk7CisgICAgfQogICAgIGdlbmVyYXRvci5lbWl0UHV0QnlJZChiYXNlLmdldCgpLCBtX2lkZW50
LCB2YWx1ZS5nZXQoKSk7CiAgICAgcmV0dXJuIG9sZFZhbHVlOwogfQpAQCAtNTUyLDcgKzU5Nywx
MyBAQCBSZWdpc3RlcklEKiBQb3N0SW5jQnJhY2tldE5vZGU6OmVtaXRDb2RlCiAgICAgUmVmUHRy
PFJlZ2lzdGVySUQ+IGJhc2UgPSBnZW5lcmF0b3IuZW1pdE5vZGUobV9iYXNlLmdldCgpKTsKICAg
ICBSZWZQdHI8UmVnaXN0ZXJJRD4gcHJvcGVydHkgPSBnZW5lcmF0b3IuZW1pdE5vZGUobV9zdWJz
Y3JpcHQuZ2V0KCkpOwogICAgIFJlZlB0cjxSZWdpc3RlcklEPiB2YWx1ZSA9IGdlbmVyYXRvci5l
bWl0R2V0QnlWYWwoZ2VuZXJhdG9yLm5ld1RlbXBvcmFyeSgpLCBiYXNlLmdldCgpLCBwcm9wZXJ0
eS5nZXQoKSk7Ci0gICAgUmVnaXN0ZXJJRCogb2xkVmFsdWUgPSBnZW5lcmF0b3IuZW1pdFBvc3RJ
bmMoZ2VuZXJhdG9yLmZpbmFsRGVzdGluYXRpb24oZHN0KSwgdmFsdWUuZ2V0KCkpOworICAgIFJl
Z2lzdGVySUQqIG9sZFZhbHVlOworICAgIGlmIChkc3QgPT0gaWdub3JlZFJlc3VsdCgpKSB7Cisg
ICAgICAgIG9sZFZhbHVlID0gMDsKKyAgICAgICAgZ2VuZXJhdG9yLmVtaXRQcmVJbmModmFsdWUu
Z2V0KCkpOworICAgIH0gZWxzZSB7CisgICAgICAgIG9sZFZhbHVlID0gZ2VuZXJhdG9yLmVtaXRQ
b3N0SW5jKGdlbmVyYXRvci5maW5hbERlc3RpbmF0aW9uKGRzdCksIHZhbHVlLmdldCgpKTsKKyAg
ICB9CiAgICAgZ2VuZXJhdG9yLmVtaXRQdXRCeVZhbChiYXNlLmdldCgpLCBwcm9wZXJ0eS5nZXQo
KSwgdmFsdWUuZ2V0KCkpOwogICAgIHJldHVybiBvbGRWYWx1ZTsKIH0KQEAgLTU2Miw3ICs2MTMs
MTMgQEAgUmVnaXN0ZXJJRCogUG9zdERlY0JyYWNrZXROb2RlOjplbWl0Q29kZQogICAgIFJlZlB0
cjxSZWdpc3RlcklEPiBiYXNlID0gZ2VuZXJhdG9yLmVtaXROb2RlKG1fYmFzZS5nZXQoKSk7CiAg
ICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHByb3BlcnR5ID0gZ2VuZXJhdG9yLmVtaXROb2RlKG1fc3Vi
c2NyaXB0LmdldCgpKTsKICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gdmFsdWUgPSBnZW5lcmF0b3Iu
ZW1pdEdldEJ5VmFsKGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKSwgYmFzZS5nZXQoKSwgcHJvcGVy
dHkuZ2V0KCkpOwotICAgIFJlZ2lzdGVySUQqIG9sZFZhbHVlID0gZ2VuZXJhdG9yLmVtaXRQb3N0
RGVjKGdlbmVyYXRvci5maW5hbERlc3RpbmF0aW9uKGRzdCksIHZhbHVlLmdldCgpKTsKKyAgICBS
ZWdpc3RlcklEKiBvbGRWYWx1ZTsKKyAgICBpZiAoZHN0ID09IGlnbm9yZWRSZXN1bHQoKSkgewor
ICAgICAgICBvbGRWYWx1ZSA9IDA7CisgICAgICAgIGdlbmVyYXRvci5lbWl0UHJlRGVjKHZhbHVl
LmdldCgpKTsKKyAgICB9IGVsc2UgeworICAgICAgICBvbGRWYWx1ZSA9IGdlbmVyYXRvci5lbWl0
UG9zdERlYyhnZW5lcmF0b3IuZmluYWxEZXN0aW5hdGlvbihkc3QpLCB2YWx1ZS5nZXQoKSk7Cisg
ICAgfQogICAgIGdlbmVyYXRvci5lbWl0UHV0QnlWYWwoYmFzZS5nZXQoKSwgcHJvcGVydHkuZ2V0
KCksIHZhbHVlLmdldCgpKTsKICAgICByZXR1cm4gb2xkVmFsdWU7CiB9CkBAIC01NzMsNyArNjMw
LDEzIEBAIFJlZ2lzdGVySUQqIFBvc3RJbmNEb3ROb2RlOjplbWl0Q29kZShDb2QKIHsKICAgICBS
ZWZQdHI8UmVnaXN0ZXJJRD4gYmFzZSA9IGdlbmVyYXRvci5lbWl0Tm9kZShtX2Jhc2UuZ2V0KCkp
OwogICAgIFJlZlB0cjxSZWdpc3RlcklEPiB2YWx1ZSA9IGdlbmVyYXRvci5lbWl0R2V0QnlJZChn
ZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCksIGJhc2UuZ2V0KCksIG1faWRlbnQpOwotICAgIFJlZ2lz
dGVySUQqIG9sZFZhbHVlID0gZ2VuZXJhdG9yLmVtaXRQb3N0SW5jKGdlbmVyYXRvci5maW5hbERl
c3RpbmF0aW9uKGRzdCksIHZhbHVlLmdldCgpKTsKKyAgICBSZWdpc3RlcklEKiBvbGRWYWx1ZTsK
KyAgICBpZiAoZHN0ID09IGlnbm9yZWRSZXN1bHQoKSkgeworICAgICAgICBvbGRWYWx1ZSA9IDA7
CisgICAgICAgIGdlbmVyYXRvci5lbWl0UHJlSW5jKHZhbHVlLmdldCgpKTsKKyAgICB9IGVsc2Ug
eworICAgICAgICBvbGRWYWx1ZSA9IGdlbmVyYXRvci5lbWl0UG9zdEluYyhnZW5lcmF0b3IuZmlu
YWxEZXN0aW5hdGlvbihkc3QpLCB2YWx1ZS5nZXQoKSk7CisgICAgfQogICAgIGdlbmVyYXRvci5l
bWl0UHV0QnlJZChiYXNlLmdldCgpLCBtX2lkZW50LCB2YWx1ZS5nZXQoKSk7CiAgICAgcmV0dXJu
IG9sZFZhbHVlOwogfQpAQCAtNTgyLDcgKzY0NSwxMyBAQCBSZWdpc3RlcklEKiBQb3N0RGVjRG90
Tm9kZTo6ZW1pdENvZGUoQ29kCiB7CiAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IGJhc2UgPSBnZW5l
cmF0b3IuZW1pdE5vZGUobV9iYXNlLmdldCgpKTsKICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gdmFs
dWUgPSBnZW5lcmF0b3IuZW1pdEdldEJ5SWQoZ2VuZXJhdG9yLm5ld1RlbXBvcmFyeSgpLCBiYXNl
LmdldCgpLCBtX2lkZW50KTsKLSAgICBSZWdpc3RlcklEKiBvbGRWYWx1ZSA9IGdlbmVyYXRvci5l
bWl0UG9zdERlYyhnZW5lcmF0b3IuZmluYWxEZXN0aW5hdGlvbihkc3QpLCB2YWx1ZS5nZXQoKSk7
CisgICAgUmVnaXN0ZXJJRCogb2xkVmFsdWU7CisgICAgaWYgKGRzdCA9PSBpZ25vcmVkUmVzdWx0
KCkpIHsKKyAgICAgICAgb2xkVmFsdWUgPSAwOworICAgICAgICBnZW5lcmF0b3IuZW1pdFByZURl
Yyh2YWx1ZS5nZXQoKSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgb2xkVmFsdWUgPSBnZW5lcmF0
b3IuZW1pdFBvc3REZWMoZ2VuZXJhdG9yLmZpbmFsRGVzdGluYXRpb24oZHN0KSwgdmFsdWUuZ2V0
KCkpOworICAgIH0KICAgICBnZW5lcmF0b3IuZW1pdFB1dEJ5SWQoYmFzZS5nZXQoKSwgbV9pZGVu
dCwgdmFsdWUuZ2V0KCkpOwogICAgIHJldHVybiBvbGRWYWx1ZTsKIH0KQEAgLTYyNiw3ICs2OTUs
NyBAQCBSZWdpc3RlcklEKiBEZWxldGVEb3ROb2RlOjplbWl0Q29kZShDb2RlCiAKIFJlZ2lzdGVy
SUQqIERlbGV0ZVZhbHVlTm9kZTo6ZW1pdENvZGUoQ29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBS
ZWdpc3RlcklEKiBkc3QpCiB7Ci0gICAgZ2VuZXJhdG9yLmVtaXROb2RlKG1fZXhwci5nZXQoKSk7
CisgICAgZ2VuZXJhdG9yLmVtaXROb2RlKGlnbm9yZWRSZXN1bHQoKSwgbV9leHByLmdldCgpKTsK
IAogICAgIC8vIGRlbGV0ZSBvbiBhIG5vbi1sb2NhdGlvbiBleHByZXNzaW9uIGlnbm9yZXMgdGhl
IHZhbHVlIGFuZCByZXR1cm5zIHRydWUKICAgICByZXR1cm4gZ2VuZXJhdG9yLmVtaXRMb2FkKGdl
bmVyYXRvci5maW5hbERlc3RpbmF0aW9uKGRzdCksIHRydWUpOwpAQCAtNjM2LDYgKzcwNSwxMCBA
QCBSZWdpc3RlcklEKiBEZWxldGVWYWx1ZU5vZGU6OmVtaXRDb2RlKENvCiAKIFJlZ2lzdGVySUQq
IFZvaWROb2RlOjplbWl0Q29kZShDb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQq
IGRzdCkKIHsKKyAgICBpZiAoZHN0ID09IGlnbm9yZWRSZXN1bHQoKSkgeworICAgICAgICBnZW5l
cmF0b3IuZW1pdE5vZGUoaWdub3JlZFJlc3VsdCgpLCBtX2V4cHIuZ2V0KCkpOworICAgICAgICBy
ZXR1cm4gMDsKKyAgICB9CiAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHIwID0gZ2VuZXJhdG9yLmVt
aXROb2RlKG1fZXhwci5nZXQoKSk7CiAgICAgcmV0dXJuIGdlbmVyYXRvci5lbWl0TG9hZChnZW5l
cmF0b3IuZmluYWxEZXN0aW5hdGlvbihkc3QsIHIwLmdldCgpKSwganNVbmRlZmluZWQoKSk7CiB9
CkBAIC02NDQsMTEgKzcxNywxNiBAQCBSZWdpc3RlcklEKiBWb2lkTm9kZTo6ZW1pdENvZGUoQ29k
ZUdlbmVyCiAKIFJlZ2lzdGVySUQqIFR5cGVPZlJlc29sdmVOb2RlOjplbWl0Q29kZShDb2RlR2Vu
ZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqIGRzdCkKIHsKLSAgICBpZiAoUmVnaXN0ZXJJ
RCogbG9jYWwgPSBnZW5lcmF0b3IucmVnaXN0ZXJGb3JMb2NhbChtX2lkZW50KSkKKyAgICBpZiAo
UmVnaXN0ZXJJRCogbG9jYWwgPSBnZW5lcmF0b3IucmVnaXN0ZXJGb3JMb2NhbChtX2lkZW50KSkg
eworICAgICAgICBpZiAoZHN0ID09IGlnbm9yZWRSZXN1bHQoKSkKKyAgICAgICAgICAgIHJldHVy
biAwOwogICAgICAgICByZXR1cm4gZ2VuZXJhdG9yLmVtaXRUeXBlT2YoZ2VuZXJhdG9yLmZpbmFs
RGVzdGluYXRpb24oZHN0KSwgbG9jYWwpOworICAgIH0KIAogICAgIFJlZlB0cjxSZWdpc3RlcklE
PiBzY3JhdGNoID0gZ2VuZXJhdG9yLmVtaXRSZXNvbHZlQmFzZShnZW5lcmF0b3IudGVtcERlc3Rp
bmF0aW9uKGRzdCksIG1faWRlbnQpOwogICAgIGdlbmVyYXRvci5lbWl0R2V0QnlJZChzY3JhdGNo
LmdldCgpLCBzY3JhdGNoLmdldCgpLCBtX2lkZW50KTsKKyAgICBpZiAoZHN0ID09IGlnbm9yZWRS
ZXN1bHQoKSkKKyAgICAgICAgcmV0dXJuIDA7CiAgICAgcmV0dXJuIGdlbmVyYXRvci5lbWl0VHlw
ZU9mKGdlbmVyYXRvci5maW5hbERlc3RpbmF0aW9uKGRzdCwgc2NyYXRjaC5nZXQoKSksIHNjcmF0
Y2guZ2V0KCkpOwogfQogCkBAIC02NTYsNiArNzM0LDEwIEBAIFJlZ2lzdGVySUQqIFR5cGVPZlJl
c29sdmVOb2RlOjplbWl0Q29kZSgKIAogUmVnaXN0ZXJJRCogVHlwZU9mVmFsdWVOb2RlOjplbWl0
Q29kZShDb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqIGRzdCkKIHsKKyAgICBp
ZiAoZHN0ID09IGlnbm9yZWRSZXN1bHQoKSkgeworICAgICAgICBnZW5lcmF0b3IuZW1pdE5vZGUo
aWdub3JlZFJlc3VsdCgpLCBtX2V4cHIuZ2V0KCkpOworICAgICAgICByZXR1cm4gMDsKKyAgICB9
CiAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHNyYyA9IGdlbmVyYXRvci5lbWl0Tm9kZShtX2V4cHIu
Z2V0KCkpOwogICAgIHJldHVybiBnZW5lcmF0b3IuZW1pdFR5cGVPZihnZW5lcmF0b3IuZmluYWxE
ZXN0aW5hdGlvbihkc3QpLCBzcmMuZ2V0KCkpOwogfQpAQCAtNjY2LDEwICs3NDgsMTIgQEAgUmVn
aXN0ZXJJRCogUHJlSW5jUmVzb2x2ZU5vZGU6OmVtaXRDb2RlKAogewogICAgIGlmIChSZWdpc3Rl
cklEKiBsb2NhbCA9IGdlbmVyYXRvci5yZWdpc3RlckZvckxvY2FsKG1faWRlbnQpKSB7CiAgICAg
ICAgIGlmIChnZW5lcmF0b3IuaXNMb2NhbENvbnN0YW50KG1faWRlbnQpKSB7CisgICAgICAgICAg
ICBpZiAoZHN0ID09IGlnbm9yZWRSZXN1bHQoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gMDsK
ICAgICAgICAgICAgIFJlZlB0cjxSZWdpc3RlcklEPiByMCA9IGdlbmVyYXRvci5lbWl0TG9hZChn
ZW5lcmF0b3IuZmluYWxEZXN0aW5hdGlvbihkc3QpLCAxLjApOwogICAgICAgICAgICAgcmV0dXJu
IGdlbmVyYXRvci5lbWl0QmluYXJ5T3Aob3BfYWRkLCByMC5nZXQoKSwgbG9jYWwsIHIwLmdldCgp
KTsKICAgICAgICAgfQotICAgICAgICAKKwogICAgICAgICBnZW5lcmF0b3IuZW1pdFByZUluYyhs
b2NhbCk7CiAgICAgICAgIHJldHVybiBnZW5lcmF0b3IubW92ZVRvRGVzdGluYXRpb25JZk5lZWRl
ZChkc3QsIGxvY2FsKTsKICAgICB9CkBAIC02OTQsNiArNzc4LDggQEAgUmVnaXN0ZXJJRCogUHJl
RGVjUmVzb2x2ZU5vZGU6OmVtaXRDb2RlKAogewogICAgIGlmIChSZWdpc3RlcklEKiBsb2NhbCA9
IGdlbmVyYXRvci5yZWdpc3RlckZvckxvY2FsKG1faWRlbnQpKSB7CiAgICAgICAgIGlmIChnZW5l
cmF0b3IuaXNMb2NhbENvbnN0YW50KG1faWRlbnQpKSB7CisgICAgICAgICAgICBpZiAoZHN0ID09
IGlnbm9yZWRSZXN1bHQoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgICAg
IFJlZlB0cjxSZWdpc3RlcklEPiByMCA9IGdlbmVyYXRvci5lbWl0TG9hZChnZW5lcmF0b3IuZmlu
YWxEZXN0aW5hdGlvbihkc3QpLCAtMS4wKTsKICAgICAgICAgICAgIHJldHVybiBnZW5lcmF0b3Iu
ZW1pdEJpbmFyeU9wKG9wX2FkZCwgcjAuZ2V0KCksIGxvY2FsLCByMC5nZXQoKSk7CiAgICAgICAg
IH0KQEAgLTk0OCwxMiArMTAzNCwxNiBAQCBSZWdpc3RlcklEKiBBc3NpZ25SZXNvbHZlTm9kZTo6
ZW1pdENvZGUoCiAgICAgaW50IGluZGV4ID0gMDsKICAgICBzaXplX3QgZGVwdGggPSAwOwogICAg
IGlmIChnZW5lcmF0b3IuZmluZFNjb3BlZFByb3BlcnR5KG1faWRlbnQsIGluZGV4LCBkZXB0aCkg
JiYgaW5kZXggIT0gbWlzc2luZ1N5bWJvbE1hcmtlcigpKSB7CisgICAgICAgIGlmIChkc3QgPT0g
aWdub3JlZFJlc3VsdCgpKQorICAgICAgICAgICAgZHN0ID0gMDsKICAgICAgICAgUmVnaXN0ZXJJ
RCogdmFsdWUgPSBnZW5lcmF0b3IuZW1pdE5vZGUoZHN0LCBtX3JpZ2h0LmdldCgpKTsKICAgICAg
ICAgZ2VuZXJhdG9yLmVtaXRQdXRTY29wZWRWYXIoZGVwdGgsIGluZGV4LCB2YWx1ZSk7CiAgICAg
ICAgIHJldHVybiB2YWx1ZTsKICAgICB9CiAKICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gYmFzZSA9
IGdlbmVyYXRvci5lbWl0UmVzb2x2ZUJhc2UoZ2VuZXJhdG9yLm5ld1RlbXBvcmFyeSgpLCBtX2lk
ZW50KTsKKyAgICBpZiAoZHN0ID09IGlnbm9yZWRSZXN1bHQoKSkKKyAgICAgICAgZHN0ID0gMDsK
ICAgICBSZWdpc3RlcklEKiB2YWx1ZSA9IGdlbmVyYXRvci5lbWl0Tm9kZShkc3QsIG1fcmlnaHQu
Z2V0KCkpOwogICAgIHJldHVybiBnZW5lcmF0b3IuZW1pdFB1dEJ5SWQoYmFzZS5nZXQoKSwgbV9p
ZGVudCwgdmFsdWUpOwogfQpAQCAtMTAxNyw3ICsxMTA3LDcgQEAgUmVnaXN0ZXJJRCogUmVhZE1v
ZGlmeUJyYWNrZXROb2RlOjplbWl0QwogCiBSZWdpc3RlcklEKiBDb21tYU5vZGU6OmVtaXRDb2Rl
KENvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJRCogZHN0KQogewotICAgIGdlbmVy
YXRvci5lbWl0Tm9kZShtX2V4cHIxLmdldCgpKTsKKyAgICBnZW5lcmF0b3IuZW1pdE5vZGUoaWdu
b3JlZFJlc3VsdCgpLCBtX2V4cHIxLmdldCgpKTsKICAgICByZXR1cm4gZ2VuZXJhdG9yLmVtaXRO
b2RlKGRzdCwgbV9leHByMi5nZXQoKSk7CiB9CiAKQEAgLTEyMzgsNyArMTMyOCw3IEBAIFJlZ2lz
dGVySUQqIFdoaWxlTm9kZTo6ZW1pdENvZGUoQ29kZUdlbmUKIFJlZ2lzdGVySUQqIEZvck5vZGU6
OmVtaXRDb2RlKENvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJRCogZHN0KQogewog
ICAgIGlmIChtX2V4cHIxKQotICAgICAgICBnZW5lcmF0b3IuZW1pdE5vZGUobV9leHByMS5nZXQo
KSk7CisgICAgICAgIGdlbmVyYXRvci5lbWl0Tm9kZShpZ25vcmVkUmVzdWx0KCksIG1fZXhwcjEu
Z2V0KCkpOwogICAgIAogICAgIFJlZlB0cjxMYWJlbElEPiB0b3BPZkxvb3AgPSBnZW5lcmF0b3Iu
bmV3TGFiZWwoKTsKICAgICBSZWZQdHI8TGFiZWxJRD4gYmVmb3JlQ29uZGl0aW9uID0gZ2VuZXJh
dG9yLm5ld0xhYmVsKCk7CkBAIC0xMjUyLDcgKzEzNDIsNyBAQCBSZWdpc3RlcklEKiBGb3JOb2Rl
OjplbWl0Q29kZShDb2RlR2VuZXJhCiAgICAgZ2VuZXJhdG9yLnBvcEp1bXBDb250ZXh0KCk7CiAg
ICAgZ2VuZXJhdG9yLmVtaXRMYWJlbChjb250aW51ZVRhcmdldC5nZXQoKSk7CiAgICAgaWYgKG1f
ZXhwcjMpCi0gICAgICAgIGdlbmVyYXRvci5lbWl0Tm9kZShtX2V4cHIzLmdldCgpKTsKKyAgICAg
ICAgZ2VuZXJhdG9yLmVtaXROb2RlKGlnbm9yZWRSZXN1bHQoKSwgbV9leHByMy5nZXQoKSk7CiAK
ICAgICBnZW5lcmF0b3IuZW1pdExhYmVsKGJlZm9yZUNvbmRpdGlvbi5nZXQoKSk7CiAgICAgaWYg
KG1fZXhwcjIpIHsKQEAgLTEyODYsNyArMTM3Niw3IEBAIEZvckluTm9kZTo6Rm9ySW5Ob2RlKEpT
R2xvYmFsRGF0YSogZ2xvYmEKICAgICAsIG1faWRlbnRJc1ZhckRlY2wodHJ1ZSkKIHsKICAgICBp
ZiAoaW4pCi0gICAgICAgIG1faW5pdCA9IG5ldyBBc3NpZ25SZXNvbHZlTm9kZShnbG9iYWxEYXRh
LGlkZW50LCBpbiwgdHJ1ZSk7CisgICAgICAgIG1faW5pdCA9IG5ldyBBc3NpZ25SZXNvbHZlTm9k
ZShnbG9iYWxEYXRhLCBpZGVudCwgaW4sIHRydWUpOwogICAgIC8vIGZvciggdmFyIGZvbyA9IGJh
ciBpbiBiYXogKQogfQogCkBAIC0xMjk3LDcgKzEzODcsNyBAQCBSZWdpc3RlcklEKiBGb3JJbk5v
ZGU6OmVtaXRDb2RlKENvZGVHZW5lCiAgICAgUmVmUHRyPExhYmVsSUQ+IGJyZWFrVGFyZ2V0ID0g
Z2VuZXJhdG9yLm5ld0xhYmVsKCk7IAogCiAgICAgaWYgKG1faW5pdCkKLSAgICAgICAgZ2VuZXJh
dG9yLmVtaXROb2RlKG1faW5pdC5nZXQoKSk7CisgICAgICAgIGdlbmVyYXRvci5lbWl0Tm9kZShp
Z25vcmVkUmVzdWx0KCksIG1faW5pdC5nZXQoKSk7CiAgICAgUmVnaXN0ZXJJRCogZm9ySW5CYXNl
ID0gZ2VuZXJhdG9yLmVtaXROb2RlKG1fZXhwci5nZXQoKSk7CiAgICAgUmVmUHRyPFJlZ2lzdGVy
SUQ+IGl0ZXIgPSBnZW5lcmF0b3IuZW1pdEdldFByb3BlcnR5TmFtZXMoZ2VuZXJhdG9yLm5ld1Rl
bXBvcmFyeSgpLCBmb3JJbkJhc2UpOwogICAgIGdlbmVyYXRvci5lbWl0SnVtcChjb250aW51ZVRh
cmdldC5nZXQoKSk7Cg==
</data>
<flag name="review"
          id="9664"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>