<?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>127201</bug_id>
          
          <creation_ts>2014-01-17 15:46:13 -0800</creation_ts>
          <short_desc>CStack Branch: Fix Baseline JIT for X86-32</short_desc>
          <delta_ts>2014-01-17 21:06:05 -0800</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>All</rep_platform>
          <op_sys>All</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>
          <dependson>127071</dependson>
          <blocked>127205</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Saboff">msaboff</reporter>
          <assigned_to name="Michael Saboff">msaboff</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>969295</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2014-01-17 15:46:13 -0800</bug_when>
    <thetext>This is to get the baseline JIT working again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>969310</commentid>
    <comment_count>1</comment_count>
      <attachid>221508</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2014-01-17 16:20:22 -0800</bug_when>
    <thetext>Created attachment 221508
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>969319</commentid>
    <comment_count>2</comment_count>
      <attachid>221508</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-01-17 16:39:42 -0800</bug_when>
    <thetext>Comment on attachment 221508
Patch

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

r=me

&gt; Source/JavaScriptCore/ChangeLog:9
&gt; +        epilogues) and making room on the stack for outgoiing arguments.

Should be &quot;outgoing&quot;.

&gt; Source/JavaScriptCore/jit/ThunkGenerators.cpp:523
&gt; +    // Install the new return PC.
&gt; +    // FIXME: I don&apos;t think currentReturnThunkPC is used and should be deleted.
&gt; +#  if 0
&gt; +    jit.loadPtr(&amp;vm-&gt;currentReturnThunkPC, GPRInfo::regT2);
&gt; +    jit.storePtr(GPRInfo::regT2, JSInterfaceJIT::Address(JSInterfaceJIT::callFrameRegister, CallFrame::returnPCOffset()));
&gt; +#   else
&gt; +    jit.storePtr(GPRInfo::regT5, JSInterfaceJIT::Address(JSInterfaceJIT::callFrameRegister, CallFrame::returnPCOffset()));
&gt; +#   endif

Need a bug about this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>969323</commentid>
    <comment_count>3</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2014-01-17 16:44:55 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 221508 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=221508&amp;action=review
&gt; 
&gt; r=me
&gt; 
&gt; &gt; Source/JavaScriptCore/ChangeLog:9
&gt; &gt; +        epilogues) and making room on the stack for outgoiing arguments.
&gt; 
&gt; Should be &quot;outgoing&quot;.

Fixed.
 
&gt; &gt; Source/JavaScriptCore/jit/ThunkGenerators.cpp:523
&gt; &gt; +    // Install the new return PC.
&gt; &gt; +    // FIXME: I don&apos;t think currentReturnThunkPC is used and should be deleted.
&gt; &gt; +#  if 0
&gt; &gt; +    jit.loadPtr(&amp;vm-&gt;currentReturnThunkPC, GPRInfo::regT2);
&gt; &gt; +    jit.storePtr(GPRInfo::regT2, JSInterfaceJIT::Address(JSInterfaceJIT::callFrameRegister, CallFrame::returnPCOffset()));
&gt; &gt; +#   else
&gt; &gt; +    jit.storePtr(GPRInfo::regT5, JSInterfaceJIT::Address(JSInterfaceJIT::callFrameRegister, CallFrame::returnPCOffset()));
&gt; &gt; +#   endif
&gt; 
&gt; Need a bug about this.

Added &lt;https://bugs.webkit.org/show_bug.cgi?id=127205&gt; - CStack Branch: VM::currentReturnThunkPC appears to be unused and should be removed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>969378</commentid>
    <comment_count>4</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2014-01-17 21:06:05 -0800</bug_when>
    <thetext>Committed r162242: &lt;http://trac.webkit.org/changeset/162242&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>221508</attachid>
            <date>2014-01-17 16:20:22 -0800</date>
            <delta_ts>2014-01-17 16:39:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>127201.patch</filename>
            <type>text/plain</type>
            <size>22036</size>
            <attacher name="Michael Saboff">msaboff</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTYyMjI5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ1IEBA
CisyMDE0LTAxLTE3ICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgorCisgICAg
ICAgIENTdGFjayBCcmFuY2g6IEZpeCBCYXNlbGluZSBKSVQgZm9yIFg4Ni0zMgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3MjAxCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW9zdCBvZiB0aGUgY2hhbmdl
cyBhcmUgdG8gZm9sbG93IGNhbGxpbmcgY29udmVudGlvbiAoZW1pdGluZyBmdW5jdGlvbiBwcm9s
b2d1ZXMgYW5kCisgICAgICAgIGVwaWxvZ3VlcykgYW5kIG1ha2luZyByb29tIG9uIHRoZSBzdGFj
ayBmb3Igb3V0Z29paW5nIGFyZ3VtZW50cy4KKworICAgICAgICAqIGludGVycHJldGVyL0ludGVy
cHJldGVyLmNwcDoKKyAgICAgICAgKEpTQzo6SW50ZXJwcmV0ZXI6OnVud2luZCk6CisgICAgICAg
ICogaml0L0pJVC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6cHJpdmF0ZUNvbXBpbGUpOiBFbGlt
aW5hdGVkIHN0YWNrIGFsaWdubWVudCBjaGVjayBiZWZvcmUgbW92aW5nIHRoZSBzdGFjaworICAg
ICAgICBwb2ludGVyIGRvd24gZm9yIGxvY2FscyBzaW5jZSBpdCB3aWxsIG5vdCBiZSBhbGlnbmVk
IGF0IHRoYXQgdGltZS4gIFRoZSBtb3ZlIHdpbGwgYWxpZ24KKyAgICAgICAgdGhlIHN0YWNrIHBv
aW50ZXIuCisgICAgICAgIChKU0M6OkpJVDo6ZnJhbWVSZWdpc3RlckNvdW50Rm9yKTogQ2hhbmdl
ZCB0byBhbGxvY2F0ZSB0aGUgb3V0Z29pbmcgcmVnaXN0ZXIgc3BhY2UKKyAgICAgICAgYWZ0ZXIg
cm91bmRpbmcgdGhlIG51bWJlciBvZiBsb2NhbCByZWdpc3RlcnMgYXMgdGhlIG91dGdvaW5nIHJl
Z2lzdGVyIGNvdW50IHdpbGwKKyAgICAgICAgcHJvcGVybHkgYWxpZ24gdGhlIGxvY2FsIHJlZ2lz
dGVycy4KKyAgICAgICAgKiBqaXQvSklUQ2FsbDMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6SklU
OjplbWl0X29wX3JldCk6IENoYW5nZWQgdG8gZW1pdCBlcGlsb2d1ZS4KKyAgICAgICAgKEpTQzo6
SklUOjplbWl0X29wX3JldF9vYmplY3Rfb3JfdGhpcyk6IENoYW5nZWQgdG8gZW1pdCBlcGlsb2d1
ZS4KKyAgICAgICAgKEpTQzo6SklUOjpjb21waWxlTG9hZFZhcmFyZ3MpOiBBbGlnbm1lbnQgY2hh
bmdlcyBtYXRjaGluZyB3aGF0IGlzIGluCisgICAgICAgIEpJVENhbGwuY3BwOjpKSVQ6OmNvbXBp
bGVMb2FkVmFyYXJncy4KKyAgICAgICAgKEpTQzo6SklUOjpjb21waWxlQ2FsbEV2YWxTbG93Q2Fz
ZSk6IENoYW5nZWQgdG8gdXNlIHRoZSBzdGFjayBwb2ludGVyIHRvIGZpbGwtaW4gdGhlCisgICAg
ICAgIG5ldyBjYWxsZWUgZnJhbWUuCisgICAgICAgIChKU0M6OkpJVDo6Y29tcGlsZU9wQ2FsbCk6
IENoYW5nZWQgdG8gdXNlIHRoZSBzdGFjayBwb2ludGVyIHRvIGZpbGwtaW4gdGhlCisgICAgICAg
IG5ldyBjYWxsZWUgZnJhbWUuCisgICAgICAgIChKU0M6OkpJVDo6Y29tcGlsZU9wQ2FsbFNsb3dD
YXNlKTogQ29kZSB0byByZXN0b3JlIHRoZSBzdGFjayBwb2ludGVyIGFmdGVyIHRoZSBjYWxsLgor
ICAgICAgICAqIGppdC9KSVRPcGNvZGVzLmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29w
X3JldF9vYmplY3Rfb3JfdGhpcyk6IFJlbW92ZSBkZWFkIGNvZGUgaW4gNjQgYml0IHBhdGggZm91
bmQgd2hpbGUgCisgICAgICAgIHdvcmtpbmcgb24gdGhpcyBwYXRjaC4KKyAgICAgICAgKiBqaXQv
SklUT3Bjb2RlczMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjpwcml2YXRlQ29tcGlsZUNU
SU5hdGl2ZUNhbGwpOiBDaGFuZ2VzIHRvIGZvbGxvdyBuYXRpdmUgY2FsbGluZyBjb252ZW50aW9u
LAorICAgICAgICBhbGxvY2F0ZSBzcGFjZSBhbmQgcG9wdWxhdGUgb3V0Z29pbmcgYXJncyBhbmQg
cGFzcyB0aGUgY2FsbGVyIHRvIG9wZXJhdGlvblZNSGFuZGxlRXhjZXB0aW9uLgorICAgICAgICAo
SlNDOjpKSVQ6OmVtaXRfb3BfZW5kKTogRW1pdCB0aGUgZXBpbG9ndWUuCisgICAgICAgICogaml0
L1RodW5rR2VuZXJhdG9ycy5jcHA6CisgICAgICAgIChKU0M6OnNsb3dQYXRoRm9yKTogQWxsb2Nh
dGUgc3RhY2sgc3BhY2UgZm9yIGFyZ3VtZW50cy4KKyAgICAgICAgKEpTQzo6YXJpdHlGaXh1cCk6
IENoYW5nZXMgdG8gbWF0Y2ggNjQgYml0IGNvZGUuCisgICAgICAgICogcnVudGltZS9Db21tb25T
bG93UGF0aHMuY3BwOgorICAgICAgICAoSlNDOjpTTE9XX1BBVEhfREVDTCk6IFdoaXRlc3BhY2Ug
Y2xlYW51cC4KKwogMjAxNC0wMS0xNiAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgog
CiAgICAgICAgIEpTQyBsYXlvdXQgdGVzdHMgc2hvdWxkIHJ1biB3aXRoIHRoZSBGVEwKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNw
cAkocmV2aXNpb24gMTYyMDk3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVy
L0ludGVycHJldGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjU5LDYgKzY1OSw3IEBAIE5FVkVS
X0lOTElORSBIYW5kbGVySW5mbyogSW50ZXJwcmV0ZXI6OnUKICAgICB9CiAgICAgCiAgICAgQ29k
ZUJsb2NrKiBjb2RlQmxvY2sgPSBjYWxsRnJhbWUtPmNvZGVCbG9jaygpOworICAgIEFTU0VSVChj
b2RlQmxvY2spOwogICAgIGJvb2wgaXNUZXJtaW5hdGlvbiA9IGZhbHNlOwogCiAgICAgQVNTRVJU
KCFleGNlcHRpb25WYWx1ZS5pc0VtcHR5KCkpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
LmNwcAkocmV2aXNpb24gMTYyMDk3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MzcsNyArNTM3LDYgQEAgQ29tcGlsYXRpb25SZXN1bHQg
SklUOjpwcml2YXRlQ29tcGlsZShKSQogICAgICAgICBzdGFja092ZXJmbG93ID0gYnJhbmNoUHRy
KEFib3ZlLCBBYnNvbHV0ZUFkZHJlc3MobV92bS0+YWRkcmVzc09mSlNTdGFja0xpbWl0KCkpLCBy
ZWdUMSk7CiAgICAgfQogCi0gICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQoKTsKICAgICBh
ZGRQdHIoVHJ1c3RlZEltbTMyKHN0YWNrUG9pbnRlck9mZnNldEZvcihtX2NvZGVCbG9jaykgKiBz
aXplb2YoUmVnaXN0ZXIpKSwgY2FsbEZyYW1lUmVnaXN0ZXIsIHN0YWNrUG9pbnRlclJlZ2lzdGVy
KTsKICAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCgpOwogCkBAIC01NTIsNiArNTUxLDgg
QEAgQ29tcGlsYXRpb25SZXN1bHQgSklUOjpwcml2YXRlQ29tcGlsZShKSQogICAgIGlmIChtX2Nv
ZGVCbG9jay0+Y29kZVR5cGUoKSA9PSBGdW5jdGlvbkNvZGUpIHsKICAgICAgICAgc3RhY2tPdmVy
Zmxvdy5saW5rKHRoaXMpOwogICAgICAgICBtX2J5dGVjb2RlT2Zmc2V0ID0gMDsKKyAgICAgICAg
aWYgKG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsKQorICAgICAgICAgICAgYWRkUHRyKFRy
dXN0ZWRJbW0zMigtbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpLCBzdGFja1BvaW50ZXJS
ZWdpc3Rlcik7CiAgICAgICAgIGNhbGxPcGVyYXRpb25XaXRoQ2FsbEZyYW1lUm9sbGJhY2tPbkV4
Y2VwdGlvbihvcGVyYXRpb25UaHJvd1N0YWNrT3ZlcmZsb3dFcnJvciwgbV9jb2RlQmxvY2spOwog
CiAgICAgICAgIGFyaXR5Q2hlY2sgPSBsYWJlbCgpOwpAQCAtNzI4LDkgKzcyOSw5IEBAIHZvaWQg
SklUOjpwcml2YXRlQ29tcGlsZUV4Y2VwdGlvbkhhbmRsZXIKIAogdW5zaWduZWQgSklUOjpmcmFt
ZVJlZ2lzdGVyQ291bnRGb3IoQ29kZUJsb2NrKiBjb2RlQmxvY2spCiB7Ci0gICAgc2l6ZV90IHJl
Z2lzdGVyQ291bnQgPSBjb2RlQmxvY2stPm1fbnVtQ2FsbGVlUmVnaXN0ZXJzICsgbWF4RnJhbWVF
eHRlbnRGb3JTbG93UGF0aENhbGxJblJlZ2lzdGVyczsKKyAgICBzaXplX3QgcmVnaXN0ZXJDb3Vu
dCA9IGNvZGVCbG9jay0+bV9udW1DYWxsZWVSZWdpc3RlcnM7CiAgICAgQVNTRVJUKHJlZ2lzdGVy
Q291bnQgPT0gV1RGOjpyb3VuZFVwVG9NdWx0aXBsZU9mKHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJz
KCksIHJlZ2lzdGVyQ291bnQpKTsKLSAgICByZXR1cm4gcmVnaXN0ZXJDb3VudDsKKyAgICByZXR1
cm4gcmVnaXN0ZXJDb3VudCArIG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsSW5SZWdpc3Rl
cnM7CiB9CiAKIGludCBKSVQ6OnN0YWNrUG9pbnRlck9mZnNldEZvcihDb2RlQmxvY2sqIGNvZGVC
bG9jaykKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ2FsbDMyXzY0LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENhbGwzMl82NC5jcHAJ
KHJldmlzaW9uIDE2MjA5NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ2FsbDMy
XzY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMDgsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDA4LCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzksNiArMzksNyBAQAogI2luY2x1
ZGUgIlJlcGF0Y2hCdWZmZXIuaCIKICNpbmNsdWRlICJSZXN1bHRUeXBlLmgiCiAjaW5jbHVkZSAi
U2FtcGxpbmdUb29sLmgiCisjaW5jbHVkZSAiU3RhY2tBbGlnbm1lbnQuaCIKICNpbmNsdWRlIDx3
dGYvU3RyaW5nUHJpbnRTdHJlYW0uaD4KIAogCkBAIC01NiwxMCArNTcsOSBAQCB2b2lkIEpJVDo6
ZW1pdF9vcF9yZXQoSW5zdHJ1Y3Rpb24qIGN1cnJlCiAgICAgdW5zaWduZWQgZHN0ID0gY3VycmVu
dEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKIAogICAgIGVtaXRMb2FkKGRzdCwgcmVnVDEsIHJl
Z1QwKTsKLSAgICBlbWl0R2V0UmV0dXJuUENGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKHJlZ1QyKTsK
LSAgICBlbWl0R2V0Q2FsbGVyRnJhbWVGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKGNhbGxGcmFtZVJl
Z2lzdGVyKTsKIAotICAgIHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKHJlZ1QyKTsK
KyAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCgpOworICAgIGVtaXRGdW5jdGlvbkVwaWxv
Z3VlKCk7CiAgICAgcmV0KCk7CiB9CiAKQEAgLTczLDIwICs3MywxNiBAQCB2b2lkIEpJVDo6ZW1p
dF9vcF9yZXRfb2JqZWN0X29yX3RoaXMoSW5zCiAgICAgbG9hZFB0cihBZGRyZXNzKHJlZ1QwLCBK
U0NlbGw6OnN0cnVjdHVyZU9mZnNldCgpKSwgcmVnVDIpOwogICAgIEp1bXAgbm90T2JqZWN0ID0g
ZW1pdEp1bXBJZk5vdE9iamVjdChyZWdUMik7CiAKLSAgICBlbWl0R2V0UmV0dXJuUENGcm9tQ2Fs
bEZyYW1lSGVhZGVyUHRyKHJlZ1QyKTsKLSAgICBlbWl0R2V0Q2FsbGVyRnJhbWVGcm9tQ2FsbEZy
YW1lSGVhZGVyUHRyKGNhbGxGcmFtZVJlZ2lzdGVyKTsKLQotICAgIHJlc3RvcmVSZXR1cm5BZGRy
ZXNzQmVmb3JlUmV0dXJuKHJlZ1QyKTsKKyAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCgp
OworICAgIGVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgcmV0KCk7CiAKICAgICBub3RKU0Nl
bGwubGluayh0aGlzKTsKICAgICBub3RPYmplY3QubGluayh0aGlzKTsKICAgICBlbWl0TG9hZCh0
aGlzUmVnLCByZWdUMSwgcmVnVDApOwogCi0gICAgZW1pdEdldFJldHVyblBDRnJvbUNhbGxGcmFt
ZUhlYWRlclB0cihyZWdUMik7Ci0gICAgZW1pdEdldENhbGxlckZyYW1lRnJvbUNhbGxGcmFtZUhl
YWRlclB0cihjYWxsRnJhbWVSZWdpc3Rlcik7Ci0KLSAgICByZXN0b3JlUmV0dXJuQWRkcmVzc0Jl
Zm9yZVJldHVybihyZWdUMik7CisgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQoKTsKKyAg
ICBlbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgIHJldCgpOwogfQogCkBAIC0xNTEsOCArMTQ3
LDEyIEBAIHZvaWQgSklUOjpjb21waWxlTG9hZFZhcmFyZ3MoSW5zdHJ1Y3Rpb24KICAgICAgICAg
Ly8gcmVnVDI6IGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzCiAKICAgICAgICAgbW92ZShyZWdU
MiwgcmVnVDMpOworICAgICAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKC1maXJzdEZyZWVSZWdpc3Rl
ciArIEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUpLCByZWdUMyk7CisgICAgICAgIC8vIHJl
Z1QxIG5vdyBoYXMgdGhlIHJlcXVpcmVkIGZyYW1lIHNpemUgaW4gUmVnaXN0ZXIgdW5pdHMKKyAg
ICAgICAgLy8gUm91bmQgcmVnVDEgdG8gbmV4dCBtdWx0aXBsZSBvZiBzdGFja0FsaWdubWVudFJl
Z2lzdGVycygpCisgICAgICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoc3RhY2tBbGlnbm1lbnRSZWdp
c3RlcnMoKSAtIDEpLCByZWdUMyk7CisgICAgICAgIGFuZFB0cihUcnVzdGVkSW1tMzIofihzdGFj
a0FsaWdubWVudFJlZ2lzdGVycygpIC0gMSkpLCByZWdUMyk7CiAgICAgICAgIG5lZzMyKHJlZ1Qz
KTsKLSAgICAgICAgYWRkMzIoVHJ1c3RlZEltbTMyKGZpcnN0RnJlZVJlZ2lzdGVyIC0gSlNTdGFj
azo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSksIHJlZ1QzKTsKICAgICAgICAgbHNoaWZ0MzIoVHJ1c3Rl
ZEltbTMyKDMpLCByZWdUMyk7CiAgICAgICAgIGFkZFB0cihjYWxsRnJhbWVSZWdpc3RlciwgcmVn
VDMpOwogICAgICAgICAvLyByZWdUMzogbmV3Q2FsbEZyYW1lCkBAIC0xODYsMTQgKzE4NiwxNiBA
QCB2b2lkIEpJVDo6Y29tcGlsZUxvYWRWYXJhcmdzKEluc3RydWN0aW9uCiAKICAgICBlbWl0TG9h
ZChhcmd1bWVudHMsIHJlZ1QxLCByZWdUMCk7CiAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25T
aXplRnJhbWVGb3JWYXJhcmdzLCByZWdUMSwgcmVnVDAsIGZpcnN0RnJlZVJlZ2lzdGVyKTsKLSAg
ICBtb3ZlKHJldHVyblZhbHVlR1BSLCByZWdUNSk7Ci0gICAgZW1pdExvYWQodGhpc1ZhbHVlLCBy
ZWdUMSwgcmVnVDApOworICAgIG1vdmUocmV0dXJuVmFsdWVHUFIsIHN0YWNrUG9pbnRlclJlZ2lz
dGVyKTsKKyAgICBlbWl0TG9hZCh0aGlzVmFsdWUsIHJlZ1QxLCByZWdUNCk7CiAgICAgZW1pdExv
YWQoYXJndW1lbnRzLCByZWdUMywgcmVnVDIpOwotICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9u
TG9hZFZhcmFyZ3MsIHJlZ1Q1LCByZWdUMSwgcmVnVDAsIHJlZ1QzLCByZWdUMik7CisgICAgY2Fs
bE9wZXJhdGlvbihvcGVyYXRpb25Mb2FkVmFyYXJncywgcmV0dXJuVmFsdWVHUFIsIHJlZ1QxLCBy
ZWdUNCwgcmVnVDMsIHJlZ1QyKTsKICAgICBtb3ZlKHJldHVyblZhbHVlR1BSLCByZWdUMyk7CiAK
ICAgICBpZiAoY2FuT3B0aW1pemUpCiAgICAgICAgIGVuZC5saW5rKHRoaXMpOworCisgICAgYWRk
UHRyKFRydXN0ZWRJbW0zMihzaXplb2YoQ2FsbGVyRnJhbWVBbmRQQykpLCByZWdUMywgc3RhY2tQ
b2ludGVyUmVnaXN0ZXIpOwogfQogCiB2b2lkIEpJVDo6Y29tcGlsZUNhbGxFdmFsKEluc3RydWN0
aW9uKiBpbnN0cnVjdGlvbikKQEAgLTIxMSw4ICsyMTMsMTMgQEAgdm9pZCBKSVQ6OmNvbXBpbGVD
YWxsRXZhbFNsb3dDYXNlKEluc3RydQogewogICAgIGxpbmtTbG93Q2FzZShpdGVyKTsKIAorICAg
IGxvYWRQdHIoQWRkcmVzcyhzdGFja1BvaW50ZXJSZWdpc3Rlciwgc2l6ZW9mKFJlZ2lzdGVyKSAq
IEpTU3RhY2s6OkNhbGxlZSAtIHNpemVvZihDYWxsZXJGcmFtZUFuZFBDKSksIHJlZ1QwKTsKKyAg
ICBsb2FkUHRyKEFkZHJlc3Moc3RhY2tQb2ludGVyUmVnaXN0ZXIsIHNpemVvZihSZWdpc3Rlcikg
KiBKU1N0YWNrOjpDYWxsZWUgLSBzaXplb2YoQ2FsbGVyRnJhbWVBbmRQQykpLCByZWdUMSk7CisK
ICAgICBlbWl0TG9hZChKU1N0YWNrOjpDYWxsZWUsIHJlZ1QxLCByZWdUMCk7CiAgICAgZW1pdE5h
a2VkQ2FsbChtX3ZtLT5nZXRDVElTdHViKHZpcnR1YWxDYWxsVGh1bmtHZW5lcmF0b3IpLmNvZGUo
KSk7CisgICAgYWRkUHRyKFRydXN0ZWRJbW0zMihzdGFja1BvaW50ZXJPZmZzZXRGb3IobV9jb2Rl
QmxvY2spICogc2l6ZW9mKFJlZ2lzdGVyKSksIGNhbGxGcmFtZVJlZ2lzdGVyLCBzdGFja1BvaW50
ZXJSZWdpc3Rlcik7CisgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQoKTsKIAogICAgIHNh
bXBsZUNvZGVCbG9jayhtX2NvZGVCbG9jayk7CiAgICAgCkBAIC0yNTEsMTggKzI1OCwxNyBAQCB2
b2lkIEpJVDo6Y29tcGlsZU9wQ2FsbChPcGNvZGVJRCBvcGNvZGVJCiAgICAgICAgICAgICBkb25l
LmxpbmsodGhpcyk7CiAgICAgICAgIH0KICAgICAKLSAgICAgICAgYWRkUHRyKFRydXN0ZWRJbW0z
MihyZWdpc3Rlck9mZnNldCAqIHNpemVvZihSZWdpc3RlcikpLCBjYWxsRnJhbWVSZWdpc3Rlciwg
cmVnVDMpOworICAgICAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKHJlZ2lzdGVyT2Zmc2V0ICogc2l6
ZW9mKFJlZ2lzdGVyKSArIHNpemVvZihDYWxsZXJGcmFtZUFuZFBDKSksIGNhbGxGcmFtZVJlZ2lz
dGVyLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CiAKLSAgICAgICAgc3RvcmUzMihUcnVzdGVkSW1t
MzIoYXJnQ291bnQpLCBwYXlsb2FkRm9yKEpTU3RhY2s6OkFyZ3VtZW50Q291bnQsIHJlZ1QzKSk7
Ci0gICAgfSAvLyByZWdUMyBob2xkcyBuZXdDYWxsRnJhbWUgd2l0aCBBcmd1bWVudENvdW50IGlu
aXRpYWxpemVkLgorICAgICAgICBzdG9yZTMyKFRydXN0ZWRJbW0zMihhcmdDb3VudCksIEFkZHJl
c3Moc3RhY2tQb2ludGVyUmVnaXN0ZXIsIEpTU3RhY2s6OkFyZ3VtZW50Q291bnQgKiBzdGF0aWNf
Y2FzdDxpbnQ+KHNpemVvZihSZWdpc3RlcikpICsgUGF5bG9hZE9mZnNldCAtIHNpemVvZihDYWxs
ZXJGcmFtZUFuZFBDKSkpOworICAgIH0gLy8gU1AgaG9sZHMgbmV3Q2FsbEZyYW1lICsgc2l6ZW9m
KENhbGxlckZyYW1lQW5kUEMpLCB3aXRoIEFyZ3VtZW50Q291bnQgaW5pdGlhbGl6ZWQuCiAgICAg
CiAgICAgdWludDMyX3QgbG9jYXRpb25CaXRzID0gQ2FsbEZyYW1lOjpMb2NhdGlvbjo6ZW5jb2Rl
QXNCeXRlY29kZUluc3RydWN0aW9uKGluc3RydWN0aW9uKTsKICAgICBzdG9yZTMyKFRydXN0ZWRJ
bW0zMihsb2NhdGlvbkJpdHMpLCB0YWdGb3IoSlNTdGFjazo6QXJndW1lbnRDb3VudCwgY2FsbEZy
YW1lUmVnaXN0ZXIpKTsKICAgICBlbWl0TG9hZChjYWxsZWUsIHJlZ1QxLCByZWdUMCk7IC8vIHJl
Z1QxLCByZWdUMCBob2xkcyBjYWxsZWUuCiAKLSAgICBzdG9yZVB0cihjYWxsRnJhbWVSZWdpc3Rl
ciwgQWRkcmVzcyhyZWdUMywgQ2FsbEZyYW1lOjpjYWxsZXJGcmFtZU9mZnNldCgpKSk7Ci0gICAg
ZW1pdFN0b3JlKEpTU3RhY2s6OkNhbGxlZSwgcmVnVDEsIHJlZ1QwLCByZWdUMyk7Ci0gICAgbW92
ZShyZWdUMywgY2FsbEZyYW1lUmVnaXN0ZXIpOworICAgIHN0b3JlMzIocmVnVDAsIEFkZHJlc3Mo
c3RhY2tQb2ludGVyUmVnaXN0ZXIsIEpTU3RhY2s6OkNhbGxlZSAqIHN0YXRpY19jYXN0PGludD4o
c2l6ZW9mKFJlZ2lzdGVyKSkgKyBQYXlsb2FkT2Zmc2V0IC0gc2l6ZW9mKENhbGxlckZyYW1lQW5k
UEMpKSk7CisgICAgc3RvcmUzMihyZWdUMSwgQWRkcmVzcyhzdGFja1BvaW50ZXJSZWdpc3Rlciwg
SlNTdGFjazo6Q2FsbGVlICogc3RhdGljX2Nhc3Q8aW50PihzaXplb2YoUmVnaXN0ZXIpKSArIFRh
Z09mZnNldCAtIHNpemVvZihDYWxsZXJGcmFtZUFuZFBDKSkpOwogCiAgICAgaWYgKG9wY29kZUlE
ID09IG9wX2NhbGxfZXZhbCkgewogICAgICAgICBjb21waWxlQ2FsbEV2YWwoaW5zdHJ1Y3Rpb24p
OwpAQCAtMjgxLDEwICsyODcsMTUgQEAgdm9pZCBKSVQ6OmNvbXBpbGVPcENhbGwoT3Bjb2RlSUQg
b3Bjb2RlSQogICAgIG1fY2FsbFN0cnVjdHVyZVN0dWJDb21waWxhdGlvbkluZm9bY2FsbExpbmtJ
bmZvSW5kZXhdLmNhbGxUeXBlID0gQ2FsbExpbmtJbmZvOjpjYWxsVHlwZUZvcihvcGNvZGVJRCk7
CiAgICAgbV9jYWxsU3RydWN0dXJlU3R1YkNvbXBpbGF0aW9uSW5mb1tjYWxsTGlua0luZm9JbmRl
eF0uYnl0ZWNvZGVJbmRleCA9IG1fYnl0ZWNvZGVPZmZzZXQ7CiAKLSAgICBsb2FkUHRyKEFkZHJl
c3MocmVnVDAsIE9CSkVDVF9PRkZTRVRPRihKU0Z1bmN0aW9uLCBtX3Njb3BlKSksIHJlZ1QxKTsK
LSAgICBlbWl0UHV0Q2VsbFRvQ2FsbEZyYW1lSGVhZGVyKHJlZ1QxLCBKU1N0YWNrOjpTY29wZUNo
YWluKTsKKyAgICBsb2FkUHRyKEFkZHJlc3MocmVnVDAsIE9CSkVDVF9PRkZTRVRPRihKU0Z1bmN0
aW9uLCBtX3Njb3BlKSksIHJlZ1QyKTsKKyAgICBzdG9yZTMyKHJlZ1QyLCBBZGRyZXNzKE1hY3Jv
QXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3RlciwgSlNTdGFjazo6U2NvcGVDaGFpbiAqIHNp
emVvZihSZWdpc3RlcikgKyBQYXlsb2FkT2Zmc2V0IC0gc2l6ZW9mKENhbGxlckZyYW1lQW5kUEMp
KSk7CisgICAgc3RvcmUzMihUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksIEFkZHJlc3Mo
c3RhY2tQb2ludGVyUmVnaXN0ZXIsIEpTU3RhY2s6OlNjb3BlQ2hhaW4gKiBzaXplb2YoUmVnaXN0
ZXIpICsgVGFnT2Zmc2V0IC0gc2l6ZW9mKENhbGxlckZyYW1lQW5kUEMpKSk7CisKICAgICBtX2Nh
bGxTdHJ1Y3R1cmVTdHViQ29tcGlsYXRpb25JbmZvW2NhbGxMaW5rSW5mb0luZGV4XS5ob3RQYXRo
T3RoZXIgPSBlbWl0TmFrZWRDYWxsKCk7CiAKKyAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKHN0YWNr
UG9pbnRlck9mZnNldEZvcihtX2NvZGVCbG9jaykgKiBzaXplb2YoUmVnaXN0ZXIpKSwgY2FsbEZy
YW1lUmVnaXN0ZXIsIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKyAgICBjaGVja1N0YWNrUG9pbnRl
ckFsaWdubWVudCgpOworCiAgICAgc2FtcGxlQ29kZUJsb2NrKG1fY29kZUJsb2NrKTsKICAgICBl
bWl0UHV0Q2FsbFJlc3VsdChpbnN0cnVjdGlvbik7CiB9CkBAIC0zMDUsNiArMzE2LDkgQEAgdm9p
ZCBKSVQ6OmNvbXBpbGVPcENhbGxTbG93Q2FzZShPcGNvZGVJRAogICAgIAogICAgIG1fY2FsbFN0
cnVjdHVyZVN0dWJDb21waWxhdGlvbkluZm9bY2FsbExpbmtJbmZvSW5kZXhdLmNhbGxSZXR1cm5M
b2NhdGlvbiA9IGVtaXROYWtlZENhbGwobV92bS0+Z2V0Q1RJU3R1YihnZW5lcmF0b3IpLmNvZGUo
KSk7CiAKKyAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKHN0YWNrUG9pbnRlck9mZnNldEZvcihtX2Nv
ZGVCbG9jaykgKiBzaXplb2YoUmVnaXN0ZXIpKSwgY2FsbEZyYW1lUmVnaXN0ZXIsIHN0YWNrUG9p
bnRlclJlZ2lzdGVyKTsKKyAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCgpOworCiAgICAg
c2FtcGxlQ29kZUJsb2NrKG1fY29kZUJsb2NrKTsKICAgICBlbWl0UHV0Q2FsbFJlc3VsdChpbnN0
cnVjdGlvbik7CiB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMz
Ml82NC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNv
ZGVzMzJfNjQuY3BwCShyZXZpc2lvbiAxNjIwOTcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVE9wY29kZXMzMl82NC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDA5LCAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOSwgMjAxMiwgMjAxMywgMjAxNCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgUGF0cmlj
ayBHYW5zdGVyZXIgPHBhcm9nYUBwYXJvZ2EuY29tPgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtNDks
NiArNDksNyBAQCBKSVQ6OkNvZGVSZWYgSklUOjpwcml2YXRlQ29tcGlsZUNUSU5hdGl2CiB7CiAg
ICAgQ2FsbCBuYXRpdmVDYWxsOwogCisgICAgZW1pdEZ1bmN0aW9uUHJvbG9ndWUoKTsKICAgICBl
bWl0UHV0SW1tZWRpYXRlVG9DYWxsRnJhbWVIZWFkZXIoMCwgSlNTdGFjazo6Q29kZUJsb2NrKTsK
ICAgICBzdG9yZVB0cihjYWxsRnJhbWVSZWdpc3RlciwgJm1fdm0tPnRvcENhbGxGcmFtZSk7CiAK
QEAgLTU5LDIxICs2MCwxNyBAQCBKSVQ6OkNvZGVSZWYgSklUOjpwcml2YXRlQ29tcGlsZUNUSU5h
dGl2CiAgICAgZW1pdEdldEZyb21DYWxsRnJhbWVIZWFkZXJQdHIoSlNTdGFjazo6U2NvcGVDaGFp
biwgcmVnVDEsIHJlZ1QwKTsKICAgICBlbWl0UHV0Q2VsbFRvQ2FsbEZyYW1lSGVhZGVyKHJlZ1Qx
LCBKU1N0YWNrOjpTY29wZUNoYWluKTsKIAotICAgIHBlZWsocmVnVDEpOwotICAgIGVtaXRQdXRS
ZXR1cm5QQ1RvQ2FsbEZyYW1lSGVhZGVyKHJlZ1QxKTsKLQogICAgIC8vIENhbGxpbmcgY29udmVu
dGlvbjogICAgICBmKGVjeCwgZWR4LCAuLi4pOwogICAgIC8vIEhvc3QgZnVuY3Rpb24gc2lnbmF0
dXJlOiBmKEV4ZWNTdGF0ZSopOwogICAgIG1vdmUoY2FsbEZyYW1lUmVnaXN0ZXIsIFg4NlJlZ2lz
dGVyczo6ZWN4KTsKIAotICAgIHN1YlB0cihUcnVzdGVkSW1tMzIoMTYgLSBzaXplb2Yodm9pZCop
KSwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOyAvLyBBbGlnbiBzdGFjayBhZnRlciBjYWxsLgotCi0g
ICAgbW92ZShyZWdUMCwgY2FsbEZyYW1lUmVnaXN0ZXIpOyAvLyBFYWdlcmx5IHJlc3RvcmUgY2Fs
bGVyIGZyYW1lIHJlZ2lzdGVyIHRvIGF2b2lkIGxvYWRpbmcgZnJvbSBzdGFjay4KKyAgICBzdWJQ
dHIoVHJ1c3RlZEltbTMyKDgpLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7IC8vIEFsaWduIHN0YWNr
IGZvciBjYWxsLgorICAgIHN0b3JlUHRyKFg4NlJlZ2lzdGVyczo6ZWN4LCBBZGRyZXNzKHN0YWNr
UG9pbnRlclJlZ2lzdGVyKSk7CiAKICAgICAvLyBjYWxsIHRoZSBmdW5jdGlvbgogICAgIG5hdGl2
ZUNhbGwgPSBjYWxsKCk7CiAKLSAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKDE2IC0gc2l6ZW9mKHZv
aWQqKSksIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKyAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKDgp
LCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CiAKICNlbGlmIENQVShBUk0pIHx8IENQVShTSDQpIHx8
IENQVShNSVBTKQogICAgIC8vIExvYWQgY2FsbGVyIGZyYW1lJ3Mgc2NvcGUgY2hhaW4gaW50byB0
aGlzIGNhbGxmcmFtZSBzbyB0aGF0IHdoYXRldmVyIHdlIGNhbGwgY2FuIGdldCB0byBpdHMgZ2xv
YmFsIGRhdGEuCkBAIC04MSw5ICs3OCw2IEBAIEpJVDo6Q29kZVJlZiBKSVQ6OnByaXZhdGVDb21w
aWxlQ1RJTmF0aXYKICAgICBlbWl0R2V0RnJvbUNhbGxGcmFtZUhlYWRlclB0cihKU1N0YWNrOjpT
Y29wZUNoYWluLCByZWdUMSwgcmVnVDIpOwogICAgIGVtaXRQdXRDZWxsVG9DYWxsRnJhbWVIZWFk
ZXIocmVnVDEsIEpTU3RhY2s6OlNjb3BlQ2hhaW4pOwogCi0gICAgcHJlc2VydmVSZXR1cm5BZGRy
ZXNzQWZ0ZXJDYWxsKHJlZ1QzKTsgLy8gQ2FsbGVlIHByZXNlcnZlZAotICAgIGVtaXRQdXRSZXR1
cm5QQ1RvQ2FsbEZyYW1lSGVhZGVyKHJlZ1QzKTsKLQogI2lmIENQVShNSVBTKQogICAgIC8vIEFs
bG9jYXRlIHN0YWNrIHNwYWNlIGZvciAodW51c2VkKSAxNiBieXRlcyAoOC1ieXRlIGFsaWduZWQp
IGZvciA0IGFyZ3VtZW50cy4KICAgICBzdWJQdHIoVHJ1c3RlZEltbTMyKDE2KSwgc3RhY2tQb2lu
dGVyUmVnaXN0ZXIpOwpAQCAtOTQsNyArODgsNiBAQCBKSVQ6OkNvZGVSZWYgSklUOjpwcml2YXRl
Q29tcGlsZUNUSU5hdGl2CiAgICAgbW92ZShjYWxsRnJhbWVSZWdpc3RlciwgYXJndW1lbnRHUFIw
KTsKIAogICAgIGVtaXRHZXRGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKEpTU3RhY2s6OkNhbGxlZSwg
YXJndW1lbnRHUFIxKTsKLSAgICBtb3ZlKHJlZ1QyLCBjYWxsRnJhbWVSZWdpc3Rlcik7IC8vIEVh
Z2VybHkgcmVzdG9yZSBjYWxsZXIgZnJhbWUgcmVnaXN0ZXIgdG8gYXZvaWQgbG9hZGluZyBmcm9t
IHN0YWNrLgogICAgIGxvYWRQdHIoQWRkcmVzcyhhcmd1bWVudEdQUjEsIE9CSkVDVF9PRkZTRVRP
RihKU0Z1bmN0aW9uLCBtX2V4ZWN1dGFibGUpKSwgcmVnVDIpOwogCiAgICAgLy8gY2FsbCB0aGUg
ZnVuY3Rpb24KQEAgLTExNCw2ICsxMDcsNyBAQCBKSVQ6OkNvZGVSZWYgSklUOjpwcml2YXRlQ29t
cGlsZUNUSU5hdGl2CiAgICAgLy8gQ2hlY2sgZm9yIGFuIGV4Y2VwdGlvbgogICAgIEp1bXAgc2F3
RXhjZXB0aW9uID0gYnJhbmNoMzIoTm90RXF1YWwsIEFic29sdXRlQWRkcmVzcyhyZWludGVycHJl
dF9jYXN0PGNoYXIqPih2bS0+YWRkcmVzc09mRXhjZXB0aW9uKCkpICsgT0JKRUNUX09GRlNFVE9G
KEpTVmFsdWUsIHUuYXNCaXRzLnRhZykpLCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6RW1wdHlWYWx1
ZVRhZykpOyAKIAorICAgIGVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgLy8gUmV0dXJuLgog
ICAgIHJldCgpOwogCkBAIC0xMjMsMTYgKzExNywxNyBAQCBKSVQ6OkNvZGVSZWYgSklUOjpwcml2
YXRlQ29tcGlsZUNUSU5hdGl2CiAgICAgc3RvcmVQdHIoY2FsbEZyYW1lUmVnaXN0ZXIsICZtX3Zt
LT50b3BDYWxsRnJhbWUpOwogCiAjaWYgQ1BVKFg4NikKLSAgICBhZGRQdHIoVHJ1c3RlZEltbTMy
KC0xMiksIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKLSAgICBwdXNoKGNhbGxGcmFtZVJlZ2lzdGVy
KTsKKyAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKC00KSwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOwor
ICAgIGxvYWRQdHIoQWRkcmVzcyhjYWxsRnJhbWVSZWdpc3RlciksIFg4NlJlZ2lzdGVyczo6ZWN4
KTsKKyAgICBwdXNoKFg4NlJlZ2lzdGVyczo6ZWN4KTsKICNlbHNlCi0gICAgbW92ZShjYWxsRnJh
bWVSZWdpc3RlciwgYXJndW1lbnRHUFIwKTsKKyAgICBsb2FkUHRyKEFkZHJlc3MoY2FsbEZyYW1l
UmVnaXN0ZXIpLCBhcmd1bWVudEdQUjApOwogI2VuZGlmCiAgICAgbW92ZShUcnVzdGVkSW1tUHRy
KEZ1bmN0aW9uUHRyKG9wZXJhdGlvblZNSGFuZGxlRXhjZXB0aW9uKS52YWx1ZSgpKSwgcmVnVDMp
OwogICAgIGNhbGwocmVnVDMpOwogCiAjaWYgQ1BVKFg4NikKLSAgICBhZGRQdHIoVHJ1c3RlZElt
bTMyKDE2KSwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgIGFkZFB0cihUcnVzdGVkSW1tMzIo
OCksIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKICNlbmRpZgogCiAgICAganVtcFRvRXhjZXB0aW9u
SGFuZGxlcigpOwpAQCAtMTcxLDcgKzE2Niw3IEBAIHZvaWQgSklUOjplbWl0X29wX2VuZChJbnN0
cnVjdGlvbiogY3VycmUKIHsKICAgICBBU1NFUlQocmV0dXJuVmFsdWVHUFIgIT0gY2FsbEZyYW1l
UmVnaXN0ZXIpOwogICAgIGVtaXRMb2FkKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQs
IHJlZ1QxLCByZWdUMCk7Ci0gICAgcmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4oQWRk
cmVzcyhjYWxsRnJhbWVSZWdpc3RlciwgQ2FsbEZyYW1lOjpyZXR1cm5QQ09mZnNldCgpKSk7Cisg
ICAgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICByZXQoKTsKIH0KIApJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCShyZXZpc2lvbiAxNjIwOTcpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yODAsOSArMjgwLDYgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcmV0X29iamVjdF9vcl90aGlzKElu
cwogICAgIGxvYWRQdHIoQWRkcmVzcyhyZXR1cm5WYWx1ZUdQUiwgSlNDZWxsOjpzdHJ1Y3R1cmVP
ZmZzZXQoKSksIHJlZ1QyKTsKICAgICBKdW1wIG5vdE9iamVjdCA9IGVtaXRKdW1wSWZOb3RPYmpl
Y3QocmVnVDIpOwogCi0gICAgLy8gR3JhYiB0aGUgcmV0dXJuIGFkZHJlc3MuCi0gICAgZW1pdEdl
dFJldHVyblBDRnJvbUNhbGxGcmFtZUhlYWRlclB0cihyZWdUMSk7Ci0KICAgICAvLyBSZXR1cm4u
CiAgICAgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICByZXQoKTsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3JzLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5jcHAJKHJldmlzaW9uIDE2MjA5
NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3JzLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIw
MTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDEwLCAyMDEyLCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1
ZGUgIkpTQXJyYXkuaCIKICNpbmNsdWRlICJKU0FycmF5SXRlcmF0b3IuaCIKICNpbmNsdWRlICJK
U1N0YWNrLmgiCisjaW5jbHVkZSAiTWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwuaCIKICNp
bmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiU3BlY2lhbGl6ZWRUaHVua0pJVC5oIgog
I2luY2x1ZGUgPHd0Zi9JbmxpbmVBU00uaD4KQEAgLTgxLDEwICs4MiwxNCBAQCBzdGF0aWMgdm9p
ZCBzbG93UGF0aEZvcigKIHsKICAgICBqaXQuZW1pdEZ1bmN0aW9uUHJvbG9ndWUoKTsKICAgICBq
aXQuc3RvcmVQdHIoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsICZ2bS0+dG9wQ2FsbEZyYW1l
KTsKKyAgICBpZiAobWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpCisgICAgICAgIGppdC5h
ZGRQdHIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoLW1heEZyYW1lRXh0ZW50Rm9yU2xvd1Bh
dGhDYWxsKSwgQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CiAgICAgaml0LnNl
dHVwQXJndW1lbnRzRXhlY1N0YXRlKCk7CiAgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVz
dGVkSW1tUHRyKGJpdHdpc2VfY2FzdDx2b2lkKj4oc2xvd1BhdGhGdW5jdGlvbikpLCBHUFJJbmZv
Ojpub25BcmdHUFIwKTsKICAgICBlbWl0UG9pbnRlclZhbGlkYXRpb24oaml0LCBHUFJJbmZvOjpu
b25BcmdHUFIwKTsKICAgICBqaXQuY2FsbChHUFJJbmZvOjpub25BcmdHUFIwKTsKKyAgICBpZiAo
bWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpCisgICAgICAgIGppdC5hZGRQdHIoQ0NhbGxI
ZWxwZXJzOjpUcnVzdGVkSW1tMzIobWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpLCBDQ2Fs
bEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKICAgICAKICAgICAvLyBUaGlzIHNsb3cg
Y2FsbCB3aWxsIHJldHVybiB0aGUgYWRkcmVzcyBvZiBvbmUgb2YgdGhlIGZvbGxvd2luZzoKICAg
ICAvLyAxKSBFeGNlcHRpb24gdGhyb3dpbmcgdGh1bmsuCkBAIC00NzEsOSArNDc2LDEwIEBAIE1h
Y3JvQXNzZW1ibGVyQ29kZVJlZiBhcml0eUZpeHVwKFZNKiB2bSkKICMgIGlmIENQVShYODYpCiAg
ICAgaml0LnBvcChKU0ludGVyZmFjZUpJVDo6cmVnVDQpOwogIyAgZW5kaWYKKyAgICBqaXQubHNo
aWZ0MzIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMihsb2dTdGFja0FsaWdubWVudFJlZ2lz
dGVycygpKSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QwKTsKICAgICBqaXQubmVnMzIoSlNJbnRlcmZh
Y2VKSVQ6OnJlZ1QwKTsKICAgICBqaXQubW92ZShKU0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVn
aXN0ZXIsIEpTSW50ZXJmYWNlSklUOjpyZWdUMyk7Ci0gICAgaml0LmxvYWQzMihKU0ludGVyZmFj
ZUpJVDo6QWRkcmVzcyhKU0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEpTU3RhY2s6
OkFyZ3VtZW50Q291bnQgKiA4KSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QyKTsKKyAgICBqaXQubG9h
ZDMyKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKEpTSW50ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdp
c3RlciwgSlNTdGFjazo6QXJndW1lbnRDb3VudCAqIHNpemVvZihSZWdpc3RlcikpLCBKU0ludGVy
ZmFjZUpJVDo6cmVnVDIpOwogICAgIGppdC5hZGQzMihKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZElt
bTMyKEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDIp
OwogCiAgICAgLy8gTW92ZSBjdXJyZW50IGZyYW1lIGRvd24gcmVnVDAgbnVtYmVyIG9mIHNsb3Rz
CkBAIC00ODUsOCArNDkxLDkgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGFyaXR5Rml4dXAoVk0q
IHZtKQogICAgIGppdC5hZGRQdHIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMig4KSwgSlNJ
bnRlcmZhY2VKSVQ6OnJlZ1QzKTsKICAgICBqaXQuYnJhbmNoU3ViMzIoTWFjcm9Bc3NlbWJsZXI6
Ok5vblplcm8sIEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoMSksIEpTSW50ZXJmYWNlSklU
OjpyZWdUMikubGlua1RvKGNvcHlMb29wLCAmaml0KTsKIAotICAgIC8vIEZpbGwgaW4gcmVnVDAg
bWlzc2luZyBhcmcgc2xvdHMgd2l0aCB1bmRlZmluZWQKKyAgICAvLyBGaWxsIGluIHJlZ1QwIC0g
MSBtaXNzaW5nIGFyZyBzbG90cyB3aXRoIHVuZGVmaW5lZAogICAgIGppdC5tb3ZlKEpTSW50ZXJm
YWNlSklUOjpyZWdUMCwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QyKTsKKyAgICBqaXQuYWRkMzIoSlNJ
bnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMigxKSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QyKTsKICAg
ICBKU0ludGVyZmFjZUpJVDo6TGFiZWwgZmlsbFVuZGVmaW5lZExvb3Aoaml0LmxhYmVsKCkpOwog
ICAgIGppdC5tb3ZlKEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoMCksIEpTSW50ZXJmYWNl
SklUOjpyZWdUMSk7CiAgICAgaml0LnN0b3JlMzIoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxLCBNYWNy
b0Fzc2VtYmxlcjo6QmFzZUluZGV4KEpTSW50ZXJmYWNlSklUOjpyZWdUMywgSlNJbnRlcmZhY2VK
SVQ6OnJlZ1QwLCBKU0ludGVyZmFjZUpJVDo6VGltZXNFaWdodCkpOwpAQCAtNDk2LDEwICs1MDMs
MjUgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGFyaXR5Rml4dXAoVk0qIHZtKQogICAgIGppdC5h
ZGRQdHIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMig4KSwgSlNJbnRlcmZhY2VKSVQ6OnJl
Z1QzKTsKICAgICBqaXQuYnJhbmNoQWRkMzIoTWFjcm9Bc3NlbWJsZXI6Ok5vblplcm8sIEpTSW50
ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoMSksIEpTSW50ZXJmYWNlSklUOjpyZWdUMikubGlua1Rv
KGZpbGxVbmRlZmluZWRMb29wLCAmaml0KTsKIAotICAgIC8vIEFkanVzdCBjYWxsIGZyYW1lIHJl
Z2lzdGVyIHRvIGFjY291bnQgZm9yIG1pc3NpbmcgYXJncwotICAgIGppdC5sc2hpZnQzMihKU0lu
dGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDMpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDApOwotICAg
IGppdC5hZGRQdHIoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QwLCBKU0ludGVyZmFjZUpJVDo6Y2FsbEZy
YW1lUmVnaXN0ZXIpOworICAgIC8vIEFkanVzdCBjYWxsIGZyYW1lIHJlZ2lzdGVyIGFuZCBzdGFj
ayBwb2ludGVyIHRvIGFjY291bnQgZm9yIG1pc3NpbmcgYXJncworICAgIGppdC5tb3ZlKEpTSW50
ZXJmYWNlSklUOjpyZWdUMCwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxKTsKKyAgICBqaXQubHNoaWZ0
MzIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMigzKSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1Qx
KTsKKyAgICBqaXQuYWRkUHRyKEpTSW50ZXJmYWNlSklUOjpyZWdUMSwgSlNJbnRlcmZhY2VKSVQ6
OmNhbGxGcmFtZVJlZ2lzdGVyKTsKKyAgICBqaXQuYWRkUHRyKEpTSW50ZXJmYWNlSklUOjpyZWdU
MSwgSlNJbnRlcmZhY2VKSVQ6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKIAorICAgIC8vIFNhdmUg
dGhlIG9yaWdpbmFsIHJldHVybiBQQy4KKyAgICBqaXQubG9hZFB0cihKU0ludGVyZmFjZUpJVDo6
QWRkcmVzcyhKU0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIsIENhbGxGcmFtZTo6cmV0
dXJuUENPZmZzZXQoKSksIEdQUkluZm86OnJlZ1QxKTsKKyAgICBqaXQuc3RvcmVQdHIoR1BSSW5m
bzo6cmVnVDEsIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoSlNJbnRlcmZhY2VKSVQ6OnJlZ1Qz
LCBKU0ludGVyZmFjZUpJVDo6cmVnVDAsIEpTSW50ZXJmYWNlSklUOjpUaW1lc0VpZ2h0KSk7Cisg
ICAgCisgICAgLy8gSW5zdGFsbCB0aGUgbmV3IHJldHVybiBQQy4KKyAgICAvLyBGSVhNRTogSSBk
b24ndCB0aGluayBjdXJyZW50UmV0dXJuVGh1bmtQQyBpcyB1c2VkIGFuZCBzaG91bGQgYmUgZGVs
ZXRlZC4KKyMgIGlmIDAKKyAgICBqaXQubG9hZFB0cigmdm0tPmN1cnJlbnRSZXR1cm5UaHVua1BD
LCBHUFJJbmZvOjpyZWdUMik7CisgICAgaml0LnN0b3JlUHRyKEdQUkluZm86OnJlZ1QyLCBKU0lu
dGVyZmFjZUpJVDo6QWRkcmVzcyhKU0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIsIENh
bGxGcmFtZTo6cmV0dXJuUENPZmZzZXQoKSkpOworIyAgIGVsc2UKKyAgICBqaXQuc3RvcmVQdHIo
R1BSSW5mbzo6cmVnVDUsIEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKEpTSW50ZXJmYWNlSklUOjpj
YWxsRnJhbWVSZWdpc3RlciwgQ2FsbEZyYW1lOjpyZXR1cm5QQ09mZnNldCgpKSk7CisjICAgZW5k
aWYKKyAgICAKICMgIGlmIENQVShYODYpCiAgICAgaml0LnB1c2goSlNJbnRlcmZhY2VKSVQ6OnJl
Z1Q0KTsKICMgIGVuZGlmCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21t
b25TbG93UGF0aHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0NvbW1vblNsb3dQYXRocy5jcHAJKHJldmlzaW9uIDE2MjA5NykKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEyLCAyMDEzIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwg
MjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTM2MSw3ICszNjEsNiBAQCBTTE9XX1BBVEhfREVDTChzbG93
X3BhdGhfbmVnYXRlKQogU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX2FkZCkKIHsKICAgICBCRUdJ
TigpOwotICAgIAogICAgIEpTVmFsdWUgdjEgPSBPUF9DKDIpLmpzVmFsdWUoKTsKICAgICBKU1Zh
bHVlIHYyID0gT1BfQygzKS5qc1ZhbHVlKCk7CiAgICAgCg==
</data>
<flag name="review"
          id="245440"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>