<?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>123024</bug_id>
          
          <creation_ts>2013-10-18 08:18:19 -0700</creation_ts>
          <short_desc>Group 64-bit specific and 32-bit specific callOperation implementations in JITInlines.h</short_desc>
          <delta_ts>2013-10-18 10:02:16 -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="Julien Brianceau">jbriance</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>msaboff</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>941202</commentid>
    <comment_count>0</comment_count>
    <who name="Julien Brianceau">jbriance</who>
    <bug_when>2013-10-18 08:18:19 -0700</bug_when>
    <thetext>The following functions in jit/JITInlines.h should be under #if USE(JSVALUE64) condition:

    ALWAYS_INLINE MacroAssembler::Call JIT::callOperation(J_JITOperation_EJJ operation, int dst, GPRReg arg1, GPRReg arg2)
    {
        setupArgumentsWithExecState(arg1, arg2);
        return appendCallWithExceptionCheckSetJSValueResult(operation, dst);
    }

    ALWAYS_INLINE MacroAssembler::Call JIT::callOperation(S_JITOperation_EJJ operation, RegisterID regOp1, RegisterID regOp2)
    {
        setupArgumentsWithExecState(regOp1, regOp2);
        return appendCallWithExceptionCheck(operation);
    }


This is not a big deal, but could be a bit confusing when reading the code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941212</commentid>
    <comment_count>1</comment_count>
      <attachid>214576</attachid>
    <who name="Julien Brianceau">jbriance</who>
    <bug_when>2013-10-18 08:39:38 -0700</bug_when>
    <thetext>Created attachment 214576
Put 64-bit callOperation implementations under USE(JSVALUE64) condition.

There are few other functions involved actually.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941215</commentid>
    <comment_count>2</comment_count>
      <attachid>214576</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2013-10-18 08:50:54 -0700</bug_when>
    <thetext>Comment on attachment 214576
Put 64-bit callOperation implementations under USE(JSVALUE64) condition.

r+  Please group these together similar to what&apos;s in DFGSpeculativeJIT.h.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941216</commentid>
    <comment_count>3</comment_count>
      <attachid>214576</attachid>
    <who name="Julien Brianceau">jbriance</who>
    <bug_when>2013-10-18 08:51:26 -0700</bug_when>
    <thetext>Comment on attachment 214576
Put 64-bit callOperation implementations under USE(JSVALUE64) condition.

Needs grouping</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941222</commentid>
    <comment_count>4</comment_count>
      <attachid>214578</attachid>
    <who name="Julien Brianceau">jbriance</who>
    <bug_when>2013-10-18 09:10:22 -0700</bug_when>
    <thetext>Created attachment 214578
Group 64-bit specific and 32-bit specific callOperation implementations</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941236</commentid>
    <comment_count>5</comment_count>
      <attachid>214582</attachid>
    <who name="Julien Brianceau">jbriance</who>
    <bug_when>2013-10-18 09:38:35 -0700</bug_when>
    <thetext>Created attachment 214582
Group 64-bit specific and 32-bit specific callOperation implementations (r157636 rebased)

Rebase on top of r157636</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941237</commentid>
    <comment_count>6</comment_count>
      <attachid>214578</attachid>
    <who name="Julien Brianceau">jbriance</who>
    <bug_when>2013-10-18 09:44:04 -0700</bug_when>
    <thetext>Comment on attachment 214578
Group 64-bit specific and 32-bit specific callOperation implementations

Patch will fail to r157636</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941247</commentid>
    <comment_count>7</comment_count>
      <attachid>214582</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-18 10:02:14 -0700</bug_when>
    <thetext>Comment on attachment 214582
Group 64-bit specific and 32-bit specific callOperation implementations (r157636 rebased)

Clearing flags on attachment: 214582

Committed r157639: &lt;http://trac.webkit.org/changeset/157639&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941248</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-18 10:02:16 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214576</attachid>
            <date>2013-10-18 08:39:38 -0700</date>
            <delta_ts>2013-10-18 08:51:26 -0700</delta_ts>
            <desc>Put 64-bit callOperation implementations under USE(JSVALUE64) condition.</desc>
            <filename>bug-123024.patch</filename>
            <type>text/plain</type>
            <size>4417</size>
            <attacher name="Julien Brianceau">jbriance</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTU3NjMzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBA
CisyMDEzLTEwLTE4ICBKdWxpZW4gQnJpYW5jZWF1ICA8amJyaWFuY2VAY2lzY28uY29tPgorCisg
ICAgICAgIFB1dCA2NC1iaXQgY2FsbE9wZXJhdGlvbiBpbXBsZW1lbnRhdGlvbnMgdW5kZXIgVVNF
KEpTVkFMVUU2NCkgY29uZGl0aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTIzMDI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGhpcyBpcyBub3QgYSBiaWcgZGVhbCwgYnV0IGNvdWxkIGJlIGEgYml0
IGNvbmZ1c2luZyB3aGVuIHJlYWRpbmcgdGhlIGNvZGUuCisKKyAgICAgICAgKiBqaXQvSklUSW5s
aW5lcy5oOgorCiAyMDEzLTEwLTE4ICBKdWxpZW4gQnJpYW5jZWF1ICA8amJyaWFuY2VAY2lzY28u
Y29tPgogCiAgICAgICAgIEZpeCBKX0pJVE9wZXJhdGlvbl9FQWFwSiBjYWxsIGZvciBNSVBTIGFu
ZCBBUk0gRUFCSS4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5oCShy
ZXZpc2lvbiAxNTc2MzEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMu
aAkod29ya2luZyBjb3B5KQpAQCAtMjMxLDExICsyMzEsMTMgQEAgQUxXQVlTX0lOTElORSBNYWNy
b0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OgogICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlv
bkNoZWNrU2V0SlNWYWx1ZVJlc3VsdChvcGVyYXRpb24sIGRzdCk7CiB9CiAKKyNpZiBVU0UoSlNW
QUxVRTY0KQogQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVy
YXRpb24oSl9KSVRPcGVyYXRpb25fRUFhcEogb3BlcmF0aW9uLCBpbnQgZHN0LCBBcnJheUFsbG9j
YXRpb25Qcm9maWxlKiBhcmcxLCBHUFJSZWcgYXJnMikKIHsKICAgICBzZXR1cEFyZ3VtZW50c1dp
dGhFeGVjU3RhdGUoVHJ1c3RlZEltbVB0cihhcmcxKSwgYXJnMik7CiAgICAgcmV0dXJuIGFwcGVu
ZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2tTZXRKU1ZhbHVlUmVzdWx0KG9wZXJhdGlvbiwgZHN0KTsK
IH0KKyNlbmRpZgogCiBBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2Fs
bE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FQWFwSmNwWiBvcGVyYXRpb24sIGludCBkc3QsIEFy
cmF5QWxsb2NhdGlvblByb2ZpbGUqIGFyZzEsIEdQUlJlZyBhcmcyLCBpbnQzMl90IGFyZzMpCiB7
CkBAIC0yNTUsNiArMjU3LDcgQEAgQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBK
SVQ6OgogICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrU2V0SlNWYWx1ZVJl
c3VsdChvcGVyYXRpb24sIGRzdCk7CiB9CiAKKyNpZiBVU0UoSlNWQUxVRTY0KQogQUxXQVlTX0lO
TElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRp
b25fRUogb3BlcmF0aW9uLCBpbnQgZHN0LCBHUFJSZWcgYXJnMSkKIHsKICAgICBzZXR1cEFyZ3Vt
ZW50c1dpdGhFeGVjU3RhdGUoYXJnMSk7CkBAIC0yNzIsNiArMjc1LDcgQEAgQUxXQVlTX0lOTElO
RSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OgogICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNT
dGF0ZShhcmcxLCBhcmcyKTsKICAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVj
a1NldEpTVmFsdWVSZXN1bHQob3BlcmF0aW9uLCBkc3QpOwogfQorI2VuZGlmCiAKIEFMV0FZU19J
TkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0
aW9uX0VQIG9wZXJhdGlvbiwgaW50IGRzdCwgdm9pZCogcG9pbnRlcikKIHsKQEAgLTMyNSwxMSAr
MzI5LDEzIEBAIEFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjoKICAgICBy
ZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhvcGVyYXRpb24pOwogfQogCisjaWYg
VVNFKEpTVkFMVUU2NCkKIEFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpj
YWxsT3BlcmF0aW9uKFBfSklUT3BlcmF0aW9uX0VKUyBvcGVyYXRpb24sIEdQUlJlZyBhcmcxLCBz
aXplX3QgYXJnMikKIHsKICAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwgVHJ1
c3RlZEltbVB0cihhcmcyKSk7CiAgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hl
Y2sob3BlcmF0aW9uKTsKIH0KKyNlbmRpZgogCiBBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVy
OjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihTX0pJVE9wZXJhdGlvbl9FQ0Mgb3BlcmF0aW9uLCBS
ZWdpc3RlcklEIHJlZ09wMSwgUmVnaXN0ZXJJRCByZWdPcDIpCiB7CkBAIC0zMzcsNiArMzQzLDcg
QEAgQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OgogICAgIHJldHVybiBh
cHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7CiB9CiAKKyNpZiBVU0UoSlNW
QUxVRTY0KQogQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVy
YXRpb24oU19KSVRPcGVyYXRpb25fRUogb3BlcmF0aW9uLCBSZWdpc3RlcklEIHJlZ09wKQogewog
ICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShyZWdPcCk7CkBAIC0zNDgsNiArMzU1LDcg
QEAgQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OgogICAgIHNldHVwQXJn
dW1lbnRzV2l0aEV4ZWNTdGF0ZShyZWdPcDEsIHJlZ09wMik7CiAgICAgcmV0dXJuIGFwcGVuZENh
bGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsKIH0KKyNlbmRpZgogCiBBTFdBWVNfSU5M
SU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihTX0pJVE9wZXJhdGlv
bl9FT0pzcyBvcGVyYXRpb24sIFJlZ2lzdGVySUQgcmVnT3AxLCBSZWdpc3RlcklEIHJlZ09wMikK
IHsKQEAgLTM2NywxMSArMzc1LDEzIEBAIEFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNh
bGwgSklUOjoKICAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhvcGVyYXRp
b24pOwogfQogCisjaWYgVVNFKEpTVkFMVUU2NCkKIEFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJs
ZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VKIG9wZXJhdGlvbiwg
UmVnaXN0ZXJJRCByZWdPcCkKIHsKICAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUocmVn
T3ApOwogICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7
CiB9CisjZW5kaWYKIAogQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNh
bGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUMgb3BlcmF0aW9uLCBSZWdpc3RlcklEIHJlZ09w
KQogewpAQCAtMzg1LDYgKzM5NSw3IEBAIEFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNh
bGwgSklUOjoKICAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhvcGVyYXRp
b24pOwogfQogCisjaWYgVVNFKEpTVkFMVUU2NCkKIEFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJs
ZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VKSWRKSiBvcGVyYXRp
b24sIFJlZ2lzdGVySUQgcmVnT3AxLCBjb25zdCBJZGVudGlmaWVyKiBpZGVudE9wMiwgUmVnaXN0
ZXJJRCByZWdPcDMsIFJlZ2lzdGVySUQgcmVnT3A0KQogewogICAgIHNldHVwQXJndW1lbnRzV2l0
aEV4ZWNTdGF0ZShyZWdPcDEsIFRydXN0ZWRJbW1QdHIoaWRlbnRPcDIpLCByZWdPcDMsIHJlZ09w
NCk7CkBAIC00MDIsNiArNDEzLDcgQEAgQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2Fs
bCBKSVQ6OgogICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShyZWdPcDEsIFRydXN0ZWRJ
bW0zMihvcDIpLCByZWdPcDMpOwogICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNo
ZWNrKG9wZXJhdGlvbik7CiB9CisjZW5kaWYKIAogQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxl
cjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRVBjIG9wZXJhdGlvbiwg
SW5zdHJ1Y3Rpb24qIGJ5dGVjb2RlUEMpCiB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214578</attachid>
            <date>2013-10-18 09:10:22 -0700</date>
            <delta_ts>2013-10-18 10:00:41 -0700</delta_ts>
            <desc>Group 64-bit specific and 32-bit specific callOperation implementations</desc>
            <filename>bug-123024_2.patch</filename>
            <type>text/plain</type>
            <size>17006</size>
            <attacher name="Julien Brianceau">jbriance</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTU3NjM1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBA
CisyMDEzLTEwLTE4ICBKdWxpZW4gQnJpYW5jZWF1ICA8amJyaWFuY2VAY2lzY28uY29tPgorCisg
ICAgICAgIEdyb3VwIDY0LWJpdCBzcGVjaWZpYyBhbmQgMzItYml0IHNwZWNpZmljIGNhbGxPcGVy
YXRpb24gaW1wbGVtZW50YXRpb25zLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTIzMDI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGhpcyBpcyBub3QgYSBiaWcgZGVhbCwgYnV0IGNvdWxkIGJlIGxlc3Mg
Y29uZnVzaW5nIHdoZW4gcmVhZGluZyB0aGUgY29kZS4KKworICAgICAgICAqIGppdC9KSVRJbmxp
bmVzLmg6CisgICAgICAgIChKU0M6OkpJVDo6Y2FsbE9wZXJhdGlvbik6CisgICAgICAgIChKU0M6
OkpJVDo6Y2FsbE9wZXJhdGlvbldpdGhDYWxsRnJhbWVSb2xsYmFja09uRXhjZXB0aW9uKToKKwog
MjAxMy0xMC0xOCAgSnVsaWVuIEJyaWFuY2VhdSAgPGpicmlhbmNlQGNpc2NvLmNvbT4KIAogICAg
ICAgICBGaXggSl9KSVRPcGVyYXRpb25fRUFhcEogY2FsbCBmb3IgTUlQUyBhbmQgQVJNIEVBQkku
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaAkocmV2aXNpb24gMTU3
NjMxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTE5MiwxMDYgKzE5MiwxNzAgQEAgQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxl
cjo6Q2FsbCBKSVQ6OgogICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9w
ZXJhdGlvbik7CiB9CiAKK0FMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpj
YWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0Ugb3BlcmF0aW9uLCBpbnQgZHN0KQoreworICAg
IHNldHVwQXJndW1lbnRzRXhlY1N0YXRlKCk7CisgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhj
ZXB0aW9uQ2hlY2tTZXRKU1ZhbHVlUmVzdWx0KG9wZXJhdGlvbiwgZHN0KTsKK30KIAotI2lmIFVT
RShKU1ZBTFVFNjQpCi1BTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2Fs
bE9wZXJhdGlvbihGX0pJVE9wZXJhdGlvbl9FSkpaIG9wZXJhdGlvbiwgR1BSUmVnIGFyZzEsIEdQ
UlJlZyBhcmcyLCBpbnQzMl90IGFyZzMpCitBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpD
YWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FQWFwSmNwWiBvcGVyYXRpb24s
IGludCBkc3QsIEFycmF5QWxsb2NhdGlvblByb2ZpbGUqIGFyZzEsIEdQUlJlZyBhcmcyLCBpbnQz
Ml90IGFyZzMpCiB7Ci0gICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEsIGFyZzIs
IFRydXN0ZWRJbW0zMihhcmczKSk7CisgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKFRy
dXN0ZWRJbW1QdHIoYXJnMSksIGFyZzIsIFRydXN0ZWRJbW0zMihhcmczKSk7CisgICAgcmV0dXJu
IGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2tTZXRKU1ZhbHVlUmVzdWx0KG9wZXJhdGlvbiwg
ZHN0KTsKK30KKworQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxP
cGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUFhcEpjcFogb3BlcmF0aW9uLCBpbnQgZHN0LCBBcnJh
eUFsbG9jYXRpb25Qcm9maWxlKiBhcmcxLCBjb25zdCBKU1ZhbHVlKiBhcmcyLCBpbnQzMl90IGFy
ZzMpCit7CisgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKFRydXN0ZWRJbW1QdHIoYXJn
MSksIFRydXN0ZWRJbW1QdHIoYXJnMiksIFRydXN0ZWRJbW0zMihhcmczKSk7CisgICAgcmV0dXJu
IGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2tTZXRKU1ZhbHVlUmVzdWx0KG9wZXJhdGlvbiwg
ZHN0KTsKK30KKworQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxP
cGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUMgb3BlcmF0aW9uLCBpbnQgZHN0LCBKU0NlbGwqIGNl
bGwpCit7CisgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKFRydXN0ZWRJbW1QdHIoY2Vs
bCkpOworICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrU2V0SlNWYWx1ZVJl
c3VsdChvcGVyYXRpb24sIGRzdCk7Cit9CisKK0FMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6
OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VQIG9wZXJhdGlvbiwgaW50
IGRzdCwgdm9pZCogcG9pbnRlcikKK3sKKyAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUo
VHJ1c3RlZEltbVB0cihwb2ludGVyKSk7CisgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0
aW9uQ2hlY2tTZXRKU1ZhbHVlUmVzdWx0KG9wZXJhdGlvbiwgZHN0KTsKK30KKworQUxXQVlTX0lO
TElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oV2l0aFByb2ZpbGVU
YWcsIEpfSklUT3BlcmF0aW9uX0VQYyBvcGVyYXRpb24sIGludCBkc3QsIEluc3RydWN0aW9uKiBi
eXRlY29kZVBDKQoreworICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShUcnVzdGVkSW1t
UHRyKGJ5dGVjb2RlUEMpKTsKKyAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVj
a1NldEpTVmFsdWVSZXN1bHRXaXRoUHJvZmlsZShvcGVyYXRpb24sIGRzdCk7Cit9CisKK0FMV0FZ
U19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKEpfSklUT3Bl
cmF0aW9uX0VaIG9wZXJhdGlvbiwgaW50IGRzdCwgaW50MzJfdCBhcmcpCit7CisgICAgc2V0dXBB
cmd1bWVudHNXaXRoRXhlY1N0YXRlKFRydXN0ZWRJbW0zMihhcmcpKTsKKyAgICByZXR1cm4gYXBw
ZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVja1NldEpTVmFsdWVSZXN1bHQob3BlcmF0aW9uLCBkc3Qp
OworfQorCitBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJh
dGlvbihQX0pJVE9wZXJhdGlvbl9FWiBvcGVyYXRpb24sIGludDMyX3Qgb3ApCit7CisgICAgc2V0
dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKFRydXN0ZWRJbW0zMihvcCkpOwogICAgIHJldHVybiBh
cHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7CiB9CiAKLUFMV0FZU19JTkxJ
TkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9u
X0VKSkkgb3BlcmF0aW9uLCBSZWdpc3RlcklEIHJlZ09wMSwgUmVnaXN0ZXJJRCByZWdPcDIsIFN0
cmluZ0ltcGwqIHVpZCkKK0FMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpj
YWxsT3BlcmF0aW9uKFNfSklUT3BlcmF0aW9uX0VDQyBvcGVyYXRpb24sIFJlZ2lzdGVySUQgcmVn
T3AxLCBSZWdpc3RlcklEIHJlZ09wMikKIHsKLSAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3Rh
dGUocmVnT3AxLCByZWdPcDIsIFRydXN0ZWRJbW1QdHIodWlkKSk7CisgICAgc2V0dXBBcmd1bWVu
dHNXaXRoRXhlY1N0YXRlKHJlZ09wMSwgcmVnT3AyKTsKICAgICByZXR1cm4gYXBwZW5kQ2FsbFdp
dGhFeGNlcHRpb25DaGVjayhvcGVyYXRpb24pOwogfQogCi1BTFdBWVNfSU5MSU5FIE1hY3JvQXNz
ZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FSkpKIG9wZXJh
dGlvbiwgUmVnaXN0ZXJJRCByZWdPcDEsIFJlZ2lzdGVySUQgcmVnT3AyLCBSZWdpc3RlcklEIHJl
Z09wMykKK0FMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0
aW9uKFNfSklUT3BlcmF0aW9uX0VPSnNzIG9wZXJhdGlvbiwgUmVnaXN0ZXJJRCByZWdPcDEsIFJl
Z2lzdGVySUQgcmVnT3AyKQogewotICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShyZWdP
cDEsIHJlZ09wMiwgcmVnT3AzKTsKKyAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUocmVn
T3AxLCByZWdPcDIpOwogICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9w
ZXJhdGlvbik7CiB9CiAKLUFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpj
YWxsT3BlcmF0aW9uKEpJVDo6V2l0aFByb2ZpbGVUYWcsIEpfSklUT3BlcmF0aW9uX0VKSSBvcGVy
YXRpb24sIGludCBkc3QsIEdQUlJlZyBhcmcxLCBTdHJpbmdJbXBsKiB1aWQpCitBTFdBWVNfSU5M
SU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlv
bl9FIG9wZXJhdGlvbikKIHsKLSAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwg
VHJ1c3RlZEltbVB0cih1aWQpKTsKLSAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25D
aGVja1NldEpTVmFsdWVSZXN1bHRXaXRoUHJvZmlsZShvcGVyYXRpb24sIGRzdCk7CisgICAgc2V0
dXBBcmd1bWVudHNFeGVjU3RhdGUoKTsKKyAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRp
b25DaGVjayhvcGVyYXRpb24pOwogfQogCi1BTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpD
YWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihKSVQ6OldpdGhQcm9maWxlVGFnLCBKX0pJVE9wZXJhdGlv
bl9FSkogb3BlcmF0aW9uLCBpbnQgZHN0LCBHUFJSZWcgYXJnMSwgR1BSUmVnIGFyZzIpCitBTFdB
WVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihWX0pJVE9w
ZXJhdGlvbl9FQyBvcGVyYXRpb24sIFJlZ2lzdGVySUQgcmVnT3ApCiB7Ci0gICAgc2V0dXBBcmd1
bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEsIGFyZzIpOwotICAgIHJldHVybiBhcHBlbmRDYWxsV2l0
aEV4Y2VwdGlvbkNoZWNrU2V0SlNWYWx1ZVJlc3VsdFdpdGhQcm9maWxlKG9wZXJhdGlvbiwgZHN0
KTsKKyAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUocmVnT3ApOworICAgIHJldHVybiBh
cHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7CiB9Ci0jZW5kaWYKIAotQUxX
QVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oSl9KSVRP
cGVyYXRpb25fRSBvcGVyYXRpb24sIGludCBkc3QpCitBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1i
bGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FQ0Mgb3BlcmF0aW9u
LCBSZWdpc3RlcklEIHJlZ09wMSwgUmVnaXN0ZXJJRCByZWdPcDIpCit7CisgICAgc2V0dXBBcmd1
bWVudHNXaXRoRXhlY1N0YXRlKHJlZ09wMSwgcmVnT3AyKTsKKyAgICByZXR1cm4gYXBwZW5kQ2Fs
bFdpdGhFeGNlcHRpb25DaGVjayhvcGVyYXRpb24pOworfQorCitBTFdBWVNfSU5MSU5FIE1hY3Jv
QXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FUGMgb3Bl
cmF0aW9uLCBJbnN0cnVjdGlvbiogYnl0ZWNvZGVQQykKK3sKKyAgICBzZXR1cEFyZ3VtZW50c1dp
dGhFeGVjU3RhdGUoVHJ1c3RlZEltbVB0cihieXRlY29kZVBDKSk7CisgICAgcmV0dXJuIGFwcGVu
ZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsKK30KKworQUxXQVlTX0lOTElORSBN
YWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRVog
b3BlcmF0aW9uLCBpbnQzMl90IG9wKQoreworICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0
ZShUcnVzdGVkSW1tMzIob3ApKTsKKyAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25D
aGVjayhvcGVyYXRpb24pOworfQorCitBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxs
IEpJVDo6Y2FsbE9wZXJhdGlvbldpdGhDYWxsRnJhbWVSb2xsYmFja09uRXhjZXB0aW9uKEpfSklU
T3BlcmF0aW9uX0Ugb3BlcmF0aW9uKQogewogICAgIHNldHVwQXJndW1lbnRzRXhlY1N0YXRlKCk7
Ci0gICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2tTZXRKU1ZhbHVlUmVzdWx0
KG9wZXJhdGlvbiwgZHN0KTsKKyAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhDYWxsRnJhbWVSb2xs
YmFja09uRXhjZXB0aW9uKG9wZXJhdGlvbik7CiB9CiAKLUFMV0FZU19JTkxJTkUgTWFjcm9Bc3Nl
bWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VBYXBKIG9wZXJh
dGlvbiwgaW50IGRzdCwgQXJyYXlBbGxvY2F0aW9uUHJvZmlsZSogYXJnMSwgR1BSUmVnIGFyZzIp
CitBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbldp
dGhDYWxsRnJhbWVSb2xsYmFja09uRXhjZXB0aW9uKFZfSklUT3BlcmF0aW9uX0VDYiBvcGVyYXRp
b24sIENvZGVCbG9jayogcG9pbnRlcikKIHsKLSAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3Rh
dGUoVHJ1c3RlZEltbVB0cihhcmcxKSwgYXJnMik7Ci0gICAgcmV0dXJuIGFwcGVuZENhbGxXaXRo
RXhjZXB0aW9uQ2hlY2tTZXRKU1ZhbHVlUmVzdWx0KG9wZXJhdGlvbiwgZHN0KTsKKyAgICBzZXR1
cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoVHJ1c3RlZEltbVB0cihwb2ludGVyKSk7CisgICAgcmV0
dXJuIGFwcGVuZENhbGxXaXRoQ2FsbEZyYW1lUm9sbGJhY2tPbkV4Y2VwdGlvbihvcGVyYXRpb24p
OwogfQogCi1BTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJh
dGlvbihKX0pJVE9wZXJhdGlvbl9FQWFwSmNwWiBvcGVyYXRpb24sIGludCBkc3QsIEFycmF5QWxs
b2NhdGlvblByb2ZpbGUqIGFyZzEsIEdQUlJlZyBhcmcyLCBpbnQzMl90IGFyZzMpCitBTFdBWVNf
SU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbldpdGhDYWxsRnJh
bWVSb2xsYmFja09uRXhjZXB0aW9uKFpfSklUT3BlcmF0aW9uX0Ugb3BlcmF0aW9uKQogewotICAg
IHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShUcnVzdGVkSW1tUHRyKGFyZzEpLCBhcmcyLCBU
cnVzdGVkSW1tMzIoYXJnMykpOwotICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNo
ZWNrU2V0SlNWYWx1ZVJlc3VsdChvcGVyYXRpb24sIGRzdCk7CisgICAgc2V0dXBBcmd1bWVudHNF
eGVjU3RhdGUoKTsKKyAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhDYWxsRnJhbWVSb2xsYmFja09u
RXhjZXB0aW9uKG9wZXJhdGlvbik7CiB9CiAKLUFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6
OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VBYXBKY3BaIG9wZXJhdGlv
biwgaW50IGRzdCwgQXJyYXlBbGxvY2F0aW9uUHJvZmlsZSogYXJnMSwgY29uc3QgSlNWYWx1ZSog
YXJnMiwgaW50MzJfdCBhcmczKQorCisjaWYgVVNFKEpTVkFMVUU2NCkKK0FMV0FZU19JTkxJTkUg
TWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKEZfSklUT3BlcmF0aW9uX0VK
Slogb3BlcmF0aW9uLCBHUFJSZWcgYXJnMSwgR1BSUmVnIGFyZzIsIGludDMyX3QgYXJnMykKIHsK
LSAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoVHJ1c3RlZEltbVB0cihhcmcxKSwgVHJ1
c3RlZEltbVB0cihhcmcyKSwgVHJ1c3RlZEltbTMyKGFyZzMpKTsKLSAgICByZXR1cm4gYXBwZW5k
Q2FsbFdpdGhFeGNlcHRpb25DaGVja1NldEpTVmFsdWVSZXN1bHQob3BlcmF0aW9uLCBkc3QpOwor
ICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxLCBhcmcyLCBUcnVzdGVkSW1tMzIo
YXJnMykpOworICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlv
bik7CiB9CiAKLUFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3Bl
cmF0aW9uKEpfSklUT3BlcmF0aW9uX0VDIG9wZXJhdGlvbiwgaW50IGRzdCwgSlNDZWxsKiBjZWxs
KQorQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24o
Vl9KSVRPcGVyYXRpb25fRUpKSSBvcGVyYXRpb24sIFJlZ2lzdGVySUQgcmVnT3AxLCBSZWdpc3Rl
cklEIHJlZ09wMiwgU3RyaW5nSW1wbCogdWlkKQogewotICAgIHNldHVwQXJndW1lbnRzV2l0aEV4
ZWNTdGF0ZShUcnVzdGVkSW1tUHRyKGNlbGwpKTsKLSAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhF
eGNlcHRpb25DaGVja1NldEpTVmFsdWVSZXN1bHQob3BlcmF0aW9uLCBkc3QpOworICAgIHNldHVw
QXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShyZWdPcDEsIHJlZ09wMiwgVHJ1c3RlZEltbVB0cih1aWQp
KTsKKyAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhvcGVyYXRpb24pOwog
fQogCi1BTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlv
bihKX0pJVE9wZXJhdGlvbl9FSiBvcGVyYXRpb24sIGludCBkc3QsIEdQUlJlZyBhcmcxKQorQUxX
QVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oVl9KSVRP
cGVyYXRpb25fRUpKSiBvcGVyYXRpb24sIFJlZ2lzdGVySUQgcmVnT3AxLCBSZWdpc3RlcklEIHJl
Z09wMiwgUmVnaXN0ZXJJRCByZWdPcDMpCiB7Ci0gICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0
YXRlKGFyZzEpOwotICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrU2V0SlNW
YWx1ZVJlc3VsdChvcGVyYXRpb24sIGRzdCk7CisgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0
YXRlKHJlZ09wMSwgcmVnT3AyLCByZWdPcDMpOworICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4
Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7CiB9CiAKLUFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJs
ZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSWRjIG9wZXJhdGlv
biwgaW50IGRzdCwgR1BSUmVnIGFyZzEsIGNvbnN0IElkZW50aWZpZXIqIGFyZzIpCitBTFdBWVNf
SU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihKSVQ6OldpdGhQ
cm9maWxlVGFnLCBKX0pJVE9wZXJhdGlvbl9FSkkgb3BlcmF0aW9uLCBpbnQgZHN0LCBHUFJSZWcg
YXJnMSwgU3RyaW5nSW1wbCogdWlkKQogewotICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0
ZShhcmcxLCBUcnVzdGVkSW1tUHRyKGFyZzIpKTsKLSAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhF
eGNlcHRpb25DaGVja1NldEpTVmFsdWVSZXN1bHQob3BlcmF0aW9uLCBkc3QpOworICAgIHNldHVw
QXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxLCBUcnVzdGVkSW1tUHRyKHVpZCkpOworICAgIHJl
dHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrU2V0SlNWYWx1ZVJlc3VsdFdpdGhQcm9m
aWxlKG9wZXJhdGlvbiwgZHN0KTsKIH0KIAotQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6
Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpKIG9wZXJhdGlvbiwgaW50
IGRzdCwgR1BSUmVnIGFyZzEsIEdQUlJlZyBhcmcyKQorQUxXQVlTX0lOTElORSBNYWNyb0Fzc2Vt
Ymxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oSklUOjpXaXRoUHJvZmlsZVRhZywgSl9KSVRP
cGVyYXRpb25fRUpKIG9wZXJhdGlvbiwgaW50IGRzdCwgR1BSUmVnIGFyZzEsIEdQUlJlZyBhcmcy
KQogewogICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxLCBhcmcyKTsKKyAgICBy
ZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVja1NldEpTVmFsdWVSZXN1bHRXaXRoUHJv
ZmlsZShvcGVyYXRpb24sIGRzdCk7Cit9CisKK0FMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6
OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VBYXBKIG9wZXJhdGlvbiwg
aW50IGRzdCwgQXJyYXlBbGxvY2F0aW9uUHJvZmlsZSogYXJnMSwgR1BSUmVnIGFyZzIpCit7Cisg
ICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKFRydXN0ZWRJbW1QdHIoYXJnMSksIGFyZzIp
OwogICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrU2V0SlNWYWx1ZVJlc3Vs
dChvcGVyYXRpb24sIGRzdCk7CiB9CiAKLUFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNh
bGwgSklUOjpjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VQIG9wZXJhdGlvbiwgaW50IGRz
dCwgdm9pZCogcG9pbnRlcikKK0FMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklU
OjpjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKIG9wZXJhdGlvbiwgaW50IGRzdCwgR1BS
UmVnIGFyZzEpCiB7Ci0gICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKFRydXN0ZWRJbW1Q
dHIocG9pbnRlcikpOworICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxKTsKICAg
ICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVja1NldEpTVmFsdWVSZXN1bHQob3Bl
cmF0aW9uLCBkc3QpOwogfQogCi1BTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJ
VDo6Y2FsbE9wZXJhdGlvbihXaXRoUHJvZmlsZVRhZywgSl9KSVRPcGVyYXRpb25fRVBjIG9wZXJh
dGlvbiwgaW50IGRzdCwgSW5zdHJ1Y3Rpb24qIGJ5dGVjb2RlUEMpCitBTFdBWVNfSU5MSU5FIE1h
Y3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSklk
YyBvcGVyYXRpb24sIGludCBkc3QsIEdQUlJlZyBhcmcxLCBjb25zdCBJZGVudGlmaWVyKiBhcmcy
KQogewotICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShUcnVzdGVkSW1tUHRyKGJ5dGVj
b2RlUEMpKTsKLSAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVja1NldEpTVmFs
dWVSZXN1bHRXaXRoUHJvZmlsZShvcGVyYXRpb24sIGRzdCk7CisgICAgc2V0dXBBcmd1bWVudHNX
aXRoRXhlY1N0YXRlKGFyZzEsIFRydXN0ZWRJbW1QdHIoYXJnMikpOworICAgIHJldHVybiBhcHBl
bmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrU2V0SlNWYWx1ZVJlc3VsdChvcGVyYXRpb24sIGRzdCk7
CiB9CiAKLUFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0
aW9uKEpfSklUT3BlcmF0aW9uX0VaIG9wZXJhdGlvbiwgaW50IGRzdCwgaW50MzJfdCBhcmcpCitB
TFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihKX0pJ
VE9wZXJhdGlvbl9FSkogb3BlcmF0aW9uLCBpbnQgZHN0LCBHUFJSZWcgYXJnMSwgR1BSUmVnIGFy
ZzIpCiB7Ci0gICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKFRydXN0ZWRJbW0zMihhcmcp
KTsKKyAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwgYXJnMik7CiAgICAgcmV0
dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2tTZXRKU1ZhbHVlUmVzdWx0KG9wZXJhdGlv
biwgZHN0KTsKIH0KIAotI2lmIFVTRShKU1ZBTFVFNjQpCiBBTFdBWVNfSU5MSU5FIE1hY3JvQXNz
ZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihKaGVfSklUT3BlcmF0aW9uX0VKIG9wZXJh
dGlvbiwgR1BSUmVnIGFyZzEpCiB7CiAjaWYgQ09NUElMRVIoTVNWQykgJiYgQ1BVKFg4NikKQEAg
LTMxMCwyMCArMzc0LDYgQEAgQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6
OgogICAgIHJldHVybiBhcHBlbmRDYWxsKG9wZXJhdGlvbik7CiAjZW5kaWYKIH0KLSNlbHNlCi1B
TFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihKaGVf
SklUT3BlcmF0aW9uX0VKIG9wZXJhdGlvbiwgR1BSUmVnIGFyZzFUYWcsIEdQUlJlZyBhcmcxUGF5
bG9hZCkKLXsKLSAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMVBheWxvYWQsIGFy
ZzFUYWcpOwotICAgIHVwZGF0ZVRvcENhbGxGcmFtZSgpOwotICAgIHJldHVybiBhcHBlbmRDYWxs
KG9wZXJhdGlvbik7Ci19Ci0jZW5kaWYKLQotQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6
Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oUF9KSVRPcGVyYXRpb25fRVogb3BlcmF0aW9uLCBpbnQz
Ml90IG9wKQotewotICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShUcnVzdGVkSW1tMzIo
b3ApKTsKLSAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhvcGVyYXRpb24p
OwotfQogCiBBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJh
dGlvbihQX0pJVE9wZXJhdGlvbl9FSlMgb3BlcmF0aW9uLCBHUFJSZWcgYXJnMSwgc2l6ZV90IGFy
ZzIpCiB7CkBAIC0zMzEsMTIgKzM4MSw2IEBAIEFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6
OkNhbGwgSklUOjoKICAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhvcGVy
YXRpb24pOwogfQogCi1BTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2Fs
bE9wZXJhdGlvbihTX0pJVE9wZXJhdGlvbl9FQ0Mgb3BlcmF0aW9uLCBSZWdpc3RlcklEIHJlZ09w
MSwgUmVnaXN0ZXJJRCByZWdPcDIpCi17Ci0gICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRl
KHJlZ09wMSwgcmVnT3AyKTsKLSAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVj
ayhvcGVyYXRpb24pOwotfQotCiBBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJ
VDo6Y2FsbE9wZXJhdGlvbihTX0pJVE9wZXJhdGlvbl9FSiBvcGVyYXRpb24sIFJlZ2lzdGVySUQg
cmVnT3ApCiB7CiAgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKHJlZ09wKTsKQEAgLTM0
OSwxOCArMzkzLDYgQEAgQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6Ogog
ICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7CiB9CiAK
LUFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKFNf
SklUT3BlcmF0aW9uX0VPSnNzIG9wZXJhdGlvbiwgUmVnaXN0ZXJJRCByZWdPcDEsIFJlZ2lzdGVy
SUQgcmVnT3AyKQotewotICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShyZWdPcDEsIHJl
Z09wMik7Ci0gICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9u
KTsKLX0KLQotQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVy
YXRpb24oVl9KSVRPcGVyYXRpb25fRSBvcGVyYXRpb24pCi17Ci0gICAgc2V0dXBBcmd1bWVudHNF
eGVjU3RhdGUoKTsKLSAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhvcGVy
YXRpb24pOwotfQotCiBBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2Fs
bE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FSWRKWiBvcGVyYXRpb24sIGNvbnN0IElkZW50aWZp
ZXIqIGlkZW50T3AxLCBSZWdpc3RlcklEIHJlZ09wMiwgaW50MzJfdCBvcDMpCiB7CiAgICAgc2V0
dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKFRydXN0ZWRJbW1QdHIoaWRlbnRPcDEpLCByZWdPcDIs
IFRydXN0ZWRJbW0zMihvcDMpKTsKQEAgLTM3MywxOCArNDA1LDYgQEAgQUxXQVlTX0lOTElORSBN
YWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OgogICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2Vw
dGlvbkNoZWNrKG9wZXJhdGlvbik7CiB9CiAKLUFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6
OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VDIG9wZXJhdGlvbiwgUmVn
aXN0ZXJJRCByZWdPcCkKLXsKLSAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUocmVnT3Ap
OwotICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7Ci19
Ci0KLUFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9u
KFZfSklUT3BlcmF0aW9uX0VDQyBvcGVyYXRpb24sIFJlZ2lzdGVySUQgcmVnT3AxLCBSZWdpc3Rl
cklEIHJlZ09wMikKLXsKLSAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUocmVnT3AxLCBy
ZWdPcDIpOwotICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlv
bik7Ci19Ci0KIEFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3Bl
cmF0aW9uKFZfSklUT3BlcmF0aW9uX0VKSWRKSiBvcGVyYXRpb24sIFJlZ2lzdGVySUQgcmVnT3Ax
LCBjb25zdCBJZGVudGlmaWVyKiBpZGVudE9wMiwgUmVnaXN0ZXJJRCByZWdPcDMsIFJlZ2lzdGVy
SUQgcmVnT3A0KQogewogICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShyZWdPcDEsIFRy
dXN0ZWRJbW1QdHIoaWRlbnRPcDIpLCByZWdPcDMsIHJlZ09wNCk7CkBAIC00MDMsMzcgKzQyMyw3
IEBAIEFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjoKICAgICByZXR1cm4g
YXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhvcGVyYXRpb24pOwogfQogCi1BTFdBWVNfSU5M
SU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlv
bl9FUGMgb3BlcmF0aW9uLCBJbnN0cnVjdGlvbiogYnl0ZWNvZGVQQykKLXsKLSAgICBzZXR1cEFy
Z3VtZW50c1dpdGhFeGVjU3RhdGUoVHJ1c3RlZEltbVB0cihieXRlY29kZVBDKSk7Ci0gICAgcmV0
dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsKLX0KLQotQUxXQVlT
X0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oVl9KSVRPcGVy
YXRpb25fRVogb3BlcmF0aW9uLCBpbnQzMl90IG9wKQotewotICAgIHNldHVwQXJndW1lbnRzV2l0
aEV4ZWNTdGF0ZShUcnVzdGVkSW1tMzIob3ApKTsKLSAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhF
eGNlcHRpb25DaGVjayhvcGVyYXRpb24pOwotfQotCi1BTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1i
bGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbldpdGhDYWxsRnJhbWVSb2xsYmFja09uRXhjZXB0
aW9uKEpfSklUT3BlcmF0aW9uX0Ugb3BlcmF0aW9uKQotewotICAgIHNldHVwQXJndW1lbnRzRXhl
Y1N0YXRlKCk7Ci0gICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoQ2FsbEZyYW1lUm9sbGJhY2tPbkV4
Y2VwdGlvbihvcGVyYXRpb24pOwotfQotCi1BTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpD
YWxsIEpJVDo6Y2FsbE9wZXJhdGlvbldpdGhDYWxsRnJhbWVSb2xsYmFja09uRXhjZXB0aW9uKFZf
SklUT3BlcmF0aW9uX0VDYiBvcGVyYXRpb24sIENvZGVCbG9jayogcG9pbnRlcikKLXsKLSAgICBz
ZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoVHJ1c3RlZEltbVB0cihwb2ludGVyKSk7Ci0gICAg
cmV0dXJuIGFwcGVuZENhbGxXaXRoQ2FsbEZyYW1lUm9sbGJhY2tPbkV4Y2VwdGlvbihvcGVyYXRp
b24pOwotfQotCi1BTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9w
ZXJhdGlvbldpdGhDYWxsRnJhbWVSb2xsYmFja09uRXhjZXB0aW9uKFpfSklUT3BlcmF0aW9uX0Ug
b3BlcmF0aW9uKQotewotICAgIHNldHVwQXJndW1lbnRzRXhlY1N0YXRlKCk7Ci0gICAgcmV0dXJu
IGFwcGVuZENhbGxXaXRoQ2FsbEZyYW1lUm9sbGJhY2tPbkV4Y2VwdGlvbihvcGVyYXRpb24pOwot
fQotCi0jaWYgVVNFKEpTVkFMVUUzMl82NCkKKyNlbHNlIC8vIFVTRShKU1ZBTFVFMzJfNjQpCiAK
IC8vIEVuY29kZWRKU1ZhbHVlIGluIEpTVkFMVUUzMl82NCBpcyBhIDY0LWJpdCBpbnRlZ2VyLiBX
aGVuIGJlaW5nIGNvbXBpbGVkIGluIEFSTSBFQUJJLCBpdCBtdXN0IGJlIGFsaWduZWQgZXZlbi1u
dW1iZXJlZCByZWdpc3RlciAocjAsIHIyIG9yIFtzcF0pLgogLy8gVG8gYXZvaWQgYXNzZW1ibGll
cyBmcm9tIHVzaW5nIHdyb25nIHJlZ2lzdGVycywgbGV0J3Mgb2NjdXB5IHIxIG9yIHIzIHdpdGgg
YSBkdW1teSBhcmd1bWVudCB3aGVuIG5lY2Vzc2FyeS4KQEAgLTQ1Miw2ICs0NDIsMTMgQEAgQUxX
QVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OgogI2RlZmluZSBTSDRfMzJCSVRf
RFVNTVlfQVJHCiAjZW5kaWYKIAorQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBK
SVQ6OmNhbGxPcGVyYXRpb24oSmhlX0pJVE9wZXJhdGlvbl9FSiBvcGVyYXRpb24sIEdQUlJlZyBh
cmcxVGFnLCBHUFJSZWcgYXJnMVBheWxvYWQpCit7CisgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhl
Y1N0YXRlKGFyZzFQYXlsb2FkLCBhcmcxVGFnKTsKKyAgICB1cGRhdGVUb3BDYWxsRnJhbWUoKTsK
KyAgICByZXR1cm4gYXBwZW5kQ2FsbChvcGVyYXRpb24pOworfQorCiBBTFdBWVNfSU5MSU5FIE1h
Y3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihGX0pJVE9wZXJhdGlvbl9FSkpa
IG9wZXJhdGlvbiwgR1BSUmVnIGFyZzFUYWcsIEdQUlJlZyBhcmcxUGF5bG9hZCwgR1BSUmVnIGFy
ZzJUYWcsIEdQUlJlZyBhcmcyUGF5bG9hZCwgaW50MzJfdCBhcmczKQogewogI2lmIENQVShTSDQp
CkBAIC01NjMsNiArNTYwLDcgQEAgQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBK
SVQ6OgogICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShFQUJJXzMyQklUX0RVTU1ZX0FS
RyByZWdPcDFQYXlsb2FkLCByZWdPcDFUYWcsIFRydXN0ZWRJbW0zMihvcDIpLCByZWdPcDNQYXls
b2FkLCByZWdPcDNUYWcpOwogICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNr
KG9wZXJhdGlvbik7CiB9CisKICN1bmRlZiBFQUJJXzMyQklUX0RVTU1ZX0FSRwogI3VuZGVmIFNI
NF8zMkJJVF9EVU1NWV9BUkcKIAo=
</data>
<flag name="review"
          id="237138"
          type_id="1"
          status="+"
          setter="msaboff"
    />
    <flag name="commit-queue"
          id="237139"
          type_id="3"
          status="-"
          setter="jbriance"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214582</attachid>
            <date>2013-10-18 09:38:35 -0700</date>
            <delta_ts>2013-10-18 10:02:14 -0700</delta_ts>
            <desc>Group 64-bit specific and 32-bit specific callOperation implementations (r157636 rebased)</desc>
            <filename>bug-123024_3.patch</filename>
            <type>text/plain</type>
            <size>16530</size>
            <attacher name="Julien Brianceau">jbriance</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTU3NjM2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBA
CisyMDEzLTEwLTE4ICBKdWxpZW4gQnJpYW5jZWF1ICA8amJyaWFuY2VAY2lzY28uY29tPgorCisg
ICAgICAgIEdyb3VwIDY0LWJpdCBzcGVjaWZpYyBhbmQgMzItYml0IHNwZWNpZmljIGNhbGxPcGVy
YXRpb24gaW1wbGVtZW50YXRpb25zLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTIzMDI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGhpcyBpcyBub3QgYSBiaWcgZGVhbCwgYnV0IGNvdWxkIGJlIGxlc3Mg
Y29uZnVzaW5nIHdoZW4gcmVhZGluZyB0aGUgY29kZS4KKworICAgICAgICAqIGppdC9KSVRJbmxp
bmVzLmg6CisgICAgICAgIChKU0M6OkpJVDo6Y2FsbE9wZXJhdGlvbik6CisgICAgICAgIChKU0M6
OkpJVDo6Y2FsbE9wZXJhdGlvbldpdGhDYWxsRnJhbWVSb2xsYmFja09uRXhjZXB0aW9uKToKKyAg
ICAgICAgKEpTQzo6SklUOjpjYWxsT3BlcmF0aW9uTm9FeGNlcHRpb25DaGVjayk6CisKIDIwMTMt
MTAtMTggIE1pY2hhZWwgU2Fib2ZmICA8bXNhYm9mZkBhcHBsZS5jb20+CiAKICAgICAgICAgQ2hh
bmdlIG5hdGl2ZSBmdW5jdGlvbiBjYWxsIHN0dWJzIHRvIHVzZSBKSVQgb3BlcmF0aW9ucyBpbnN0
ZWFkIG9mIGN0aVZNSGFuZGxlRXhjZXB0aW9uCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVElubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVElubGluZXMuaAkocmV2aXNpb24gMTU3NjM2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRJbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTE5Miw1MSArMTkyLDEyIEBAIEFM
V0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjoKICAgICByZXR1cm4gYXBwZW5k
Q2FsbFdpdGhFeGNlcHRpb25DaGVjayhvcGVyYXRpb24pOwogfQogCi0KLSNpZiBVU0UoSlNWQUxV
RTY0KQotQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRp
b24oRl9KSVRPcGVyYXRpb25fRUpKWiBvcGVyYXRpb24sIEdQUlJlZyBhcmcxLCBHUFJSZWcgYXJn
MiwgaW50MzJfdCBhcmczKQotewotICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcx
LCBhcmcyLCBUcnVzdGVkSW1tMzIoYXJnMykpOwotICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4
Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7Ci19Ci0KLUFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJs
ZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VKSkkgb3BlcmF0aW9u
LCBSZWdpc3RlcklEIHJlZ09wMSwgUmVnaXN0ZXJJRCByZWdPcDIsIFN0cmluZ0ltcGwqIHVpZCkK
LXsKLSAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUocmVnT3AxLCByZWdPcDIsIFRydXN0
ZWRJbW1QdHIodWlkKSk7Ci0gICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2so
b3BlcmF0aW9uKTsKLX0KLQotQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6
OmNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUpKSiBvcGVyYXRpb24sIFJlZ2lzdGVySUQg
cmVnT3AxLCBSZWdpc3RlcklEIHJlZ09wMiwgUmVnaXN0ZXJJRCByZWdPcDMpCi17Ci0gICAgc2V0
dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKHJlZ09wMSwgcmVnT3AyLCByZWdPcDMpOwotICAgIHJl
dHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7Ci19Ci0KLUFMV0FZ
U19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKEpJVDo6V2l0
aFByb2ZpbGVUYWcsIEpfSklUT3BlcmF0aW9uX0VKSSBvcGVyYXRpb24sIGludCBkc3QsIEdQUlJl
ZyBhcmcxLCBTdHJpbmdJbXBsKiB1aWQpCi17Ci0gICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0
YXRlKGFyZzEsIFRydXN0ZWRJbW1QdHIodWlkKSk7Ci0gICAgcmV0dXJuIGFwcGVuZENhbGxXaXRo
RXhjZXB0aW9uQ2hlY2tTZXRKU1ZhbHVlUmVzdWx0V2l0aFByb2ZpbGUob3BlcmF0aW9uLCBkc3Qp
OwotfQotCi1BTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJh
dGlvbihKSVQ6OldpdGhQcm9maWxlVGFnLCBKX0pJVE9wZXJhdGlvbl9FSkogb3BlcmF0aW9uLCBp
bnQgZHN0LCBHUFJSZWcgYXJnMSwgR1BSUmVnIGFyZzIpCi17Ci0gICAgc2V0dXBBcmd1bWVudHNX
aXRoRXhlY1N0YXRlKGFyZzEsIGFyZzIpOwotICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2Vw
dGlvbkNoZWNrU2V0SlNWYWx1ZVJlc3VsdFdpdGhQcm9maWxlKG9wZXJhdGlvbiwgZHN0KTsKLX0K
LSNlbmRpZgotCiBBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9w
ZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FIG9wZXJhdGlvbiwgaW50IGRzdCkKIHsKICAgICBzZXR1
cEFyZ3VtZW50c0V4ZWNTdGF0ZSgpOwogICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlv
bkNoZWNrU2V0SlNWYWx1ZVJlc3VsdChvcGVyYXRpb24sIGRzdCk7CiB9CiAKLUFMV0FZU19JTkxJ
TkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9u
X0VBYXBKIG9wZXJhdGlvbiwgaW50IGRzdCwgQXJyYXlBbGxvY2F0aW9uUHJvZmlsZSogYXJnMSwg
R1BSUmVnIGFyZzIpCi17Ci0gICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKFRydXN0ZWRJ
bW1QdHIoYXJnMSksIGFyZzIpOwotICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNo
ZWNrU2V0SlNWYWx1ZVJlc3VsdChvcGVyYXRpb24sIGRzdCk7Ci19Ci0KIEFMV0FZU19JTkxJTkUg
TWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VB
YXBKY3BaIG9wZXJhdGlvbiwgaW50IGRzdCwgQXJyYXlBbGxvY2F0aW9uUHJvZmlsZSogYXJnMSwg
R1BSUmVnIGFyZzIsIGludDMyX3QgYXJnMykKIHsKICAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVj
U3RhdGUoVHJ1c3RlZEltbVB0cihhcmcxKSwgYXJnMiwgVHJ1c3RlZEltbTMyKGFyZzMpKTsKQEAg
LTI1NSwyNCArMjE2LDYgQEAgQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6
OgogICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrU2V0SlNWYWx1ZVJlc3Vs
dChvcGVyYXRpb24sIGRzdCk7CiB9CiAKLUFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNh
bGwgSklUOjpjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKIG9wZXJhdGlvbiwgaW50IGRz
dCwgR1BSUmVnIGFyZzEpCi17Ci0gICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEp
OwotICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrU2V0SlNWYWx1ZVJlc3Vs
dChvcGVyYXRpb24sIGRzdCk7Ci19Ci0KLUFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNh
bGwgSklUOjpjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSWRjIG9wZXJhdGlvbiwgaW50
IGRzdCwgR1BSUmVnIGFyZzEsIGNvbnN0IElkZW50aWZpZXIqIGFyZzIpCi17Ci0gICAgc2V0dXBB
cmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEsIFRydXN0ZWRJbW1QdHIoYXJnMikpOwotICAgIHJl
dHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrU2V0SlNWYWx1ZVJlc3VsdChvcGVyYXRp
b24sIGRzdCk7Ci19Ci0KLUFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpj
YWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSiBvcGVyYXRpb24sIGludCBkc3QsIEdQUlJl
ZyBhcmcxLCBHUFJSZWcgYXJnMikKLXsKLSAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUo
YXJnMSwgYXJnMik7Ci0gICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2tTZXRK
U1ZhbHVlUmVzdWx0KG9wZXJhdGlvbiwgZHN0KTsKLX0KLQogQUxXQVlTX0lOTElORSBNYWNyb0Fz
c2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRVAgb3BlcmF0
aW9uLCBpbnQgZHN0LCB2b2lkKiBwb2ludGVyKQogewogICAgIHNldHVwQXJndW1lbnRzV2l0aEV4
ZWNTdGF0ZShUcnVzdGVkSW1tUHRyKHBvaW50ZXIpKTsKQEAgLTI5MSwxMzcgKzIzNCwxODQgQEAg
QUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OgogICAgIHJldHVybiBhcHBl
bmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrU2V0SlNWYWx1ZVJlc3VsdChvcGVyYXRpb24sIGRzdCk7
CiB9CiAKLSNpZiBVU0UoSlNWQUxVRTY0KQotQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6
Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb25Ob0V4Y2VwdGlvbkNoZWNrKFZfSklUT3BlcmF0aW9uX0VK
IG9wZXJhdGlvbiwgR1BSUmVnIGFyZzEpCi17Ci0gICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0
YXRlKGFyZzEpOwotICAgIHVwZGF0ZVRvcENhbGxGcmFtZSgpOwotICAgIHJldHVybiBhcHBlbmRD
YWxsKG9wZXJhdGlvbik7Ci19Ci0jZWxzZQotQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6
Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb25Ob0V4Y2VwdGlvbkNoZWNrKFZfSklUT3BlcmF0aW9uX0VK
IG9wZXJhdGlvbiwgR1BSUmVnIGFyZzFUYWcsIEdQUlJlZyBhcmcxUGF5bG9hZCkKLXsKLSAgICBz
ZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMVBheWxvYWQsIGFyZzFUYWcpOwotICAgIHVw
ZGF0ZVRvcENhbGxGcmFtZSgpOwotICAgIHJldHVybiBhcHBlbmRDYWxsKG9wZXJhdGlvbik7Ci19
Ci0jZW5kaWYKLQogQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxP
cGVyYXRpb24oUF9KSVRPcGVyYXRpb25fRVogb3BlcmF0aW9uLCBpbnQzMl90IG9wKQogewogICAg
IHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShUcnVzdGVkSW1tMzIob3ApKTsKICAgICByZXR1
cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhvcGVyYXRpb24pOwogfQogCi1BTFdBWVNf
SU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihQX0pJVE9wZXJh
dGlvbl9FSlMgb3BlcmF0aW9uLCBHUFJSZWcgYXJnMSwgc2l6ZV90IGFyZzIpCitBTFdBWVNfSU5M
SU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihTX0pJVE9wZXJhdGlv
bl9FQ0Mgb3BlcmF0aW9uLCBSZWdpc3RlcklEIHJlZ09wMSwgUmVnaXN0ZXJJRCByZWdPcDIpCiB7
Ci0gICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEsIFRydXN0ZWRJbW1QdHIoYXJn
MikpOworICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShyZWdPcDEsIHJlZ09wMik7CiAg
ICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsKIH0KIAot
QUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oU19K
SVRPcGVyYXRpb25fRUNDIG9wZXJhdGlvbiwgUmVnaXN0ZXJJRCByZWdPcDEsIFJlZ2lzdGVySUQg
cmVnT3AyKQorQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVy
YXRpb24oU19KSVRPcGVyYXRpb25fRU9Kc3Mgb3BlcmF0aW9uLCBSZWdpc3RlcklEIHJlZ09wMSwg
UmVnaXN0ZXJJRCByZWdPcDIpCiB7CiAgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKHJl
Z09wMSwgcmVnT3AyKTsKICAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhv
cGVyYXRpb24pOwogfQogCi1BTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6
Y2FsbE9wZXJhdGlvbihTX0pJVE9wZXJhdGlvbl9FSiBvcGVyYXRpb24sIFJlZ2lzdGVySUQgcmVn
T3ApCitBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlv
bihWX0pJVE9wZXJhdGlvbl9FIG9wZXJhdGlvbikKIHsKLSAgICBzZXR1cEFyZ3VtZW50c1dpdGhF
eGVjU3RhdGUocmVnT3ApOworICAgIHNldHVwQXJndW1lbnRzRXhlY1N0YXRlKCk7CiAgICAgcmV0
dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsKIH0KIAotQUxXQVlT
X0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oU19KSVRPcGVy
YXRpb25fRUpKIG9wZXJhdGlvbiwgUmVnaXN0ZXJJRCByZWdPcDEsIFJlZ2lzdGVySUQgcmVnT3Ay
KQorQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24o
Vl9KSVRPcGVyYXRpb25fRUMgb3BlcmF0aW9uLCBSZWdpc3RlcklEIHJlZ09wKQogewotICAgIHNl
dHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShyZWdPcDEsIHJlZ09wMik7CisgICAgc2V0dXBBcmd1
bWVudHNXaXRoRXhlY1N0YXRlKHJlZ09wKTsKICAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNl
cHRpb25DaGVjayhvcGVyYXRpb24pOwogfQogCi1BTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVy
OjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihTX0pJVE9wZXJhdGlvbl9FT0pzcyBvcGVyYXRpb24s
IFJlZ2lzdGVySUQgcmVnT3AxLCBSZWdpc3RlcklEIHJlZ09wMikKK0FMV0FZU19JTkxJTkUgTWFj
cm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VDQyBv
cGVyYXRpb24sIFJlZ2lzdGVySUQgcmVnT3AxLCBSZWdpc3RlcklEIHJlZ09wMikKIHsKICAgICBz
ZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUocmVnT3AxLCByZWdPcDIpOwogICAgIHJldHVybiBh
cHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7CiB9CiAKLUFMV0FZU19JTkxJ
TkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9u
X0Ugb3BlcmF0aW9uKQorQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNh
bGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRVBjIG9wZXJhdGlvbiwgSW5zdHJ1Y3Rpb24qIGJ5
dGVjb2RlUEMpCiB7Ci0gICAgc2V0dXBBcmd1bWVudHNFeGVjU3RhdGUoKTsKKyAgICBzZXR1cEFy
Z3VtZW50c1dpdGhFeGVjU3RhdGUoVHJ1c3RlZEltbVB0cihieXRlY29kZVBDKSk7CiAgICAgcmV0
dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsKIH0KIAotQUxXQVlT
X0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oVl9KSVRPcGVy
YXRpb25fRUlkSlogb3BlcmF0aW9uLCBjb25zdCBJZGVudGlmaWVyKiBpZGVudE9wMSwgUmVnaXN0
ZXJJRCByZWdPcDIsIGludDMyX3Qgb3AzKQorQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6
Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRVogb3BlcmF0aW9uLCBpbnQz
Ml90IG9wKQogewotICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShUcnVzdGVkSW1tUHRy
KGlkZW50T3AxKSwgcmVnT3AyLCBUcnVzdGVkSW1tMzIob3AzKSk7CisgICAgc2V0dXBBcmd1bWVu
dHNXaXRoRXhlY1N0YXRlKFRydXN0ZWRJbW0zMihvcCkpOwogICAgIHJldHVybiBhcHBlbmRDYWxs
V2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7CiB9CiAKLUFMV0FZU19JTkxJTkUgTWFjcm9B
c3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VKIG9wZXJh
dGlvbiwgUmVnaXN0ZXJJRCByZWdPcCkKK0FMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNh
bGwgSklUOjpjYWxsT3BlcmF0aW9uV2l0aENhbGxGcmFtZVJvbGxiYWNrT25FeGNlcHRpb24oSl9K
SVRPcGVyYXRpb25fRSBvcGVyYXRpb24pCiB7Ci0gICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0
YXRlKHJlZ09wKTsKKyAgICBzZXR1cEFyZ3VtZW50c0V4ZWNTdGF0ZSgpOworICAgIHJldHVybiBh
cHBlbmRDYWxsV2l0aENhbGxGcmFtZVJvbGxiYWNrT25FeGNlcHRpb24ob3BlcmF0aW9uKTsKK30K
KworQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb25X
aXRoQ2FsbEZyYW1lUm9sbGJhY2tPbkV4Y2VwdGlvbihWX0pJVE9wZXJhdGlvbl9FQ2Igb3BlcmF0
aW9uLCBDb2RlQmxvY2sqIHBvaW50ZXIpCit7CisgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0
YXRlKFRydXN0ZWRJbW1QdHIocG9pbnRlcikpOworICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aENh
bGxGcmFtZVJvbGxiYWNrT25FeGNlcHRpb24ob3BlcmF0aW9uKTsKK30KKworQUxXQVlTX0lOTElO
RSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb25XaXRoQ2FsbEZyYW1lUm9s
bGJhY2tPbkV4Y2VwdGlvbihaX0pJVE9wZXJhdGlvbl9FIG9wZXJhdGlvbikKK3sKKyAgICBzZXR1
cEFyZ3VtZW50c0V4ZWNTdGF0ZSgpOworICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aENhbGxGcmFt
ZVJvbGxiYWNrT25FeGNlcHRpb24ob3BlcmF0aW9uKTsKK30KKworCisjaWYgVVNFKEpTVkFMVUU2
NCkKK0FMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9u
KEZfSklUT3BlcmF0aW9uX0VKSlogb3BlcmF0aW9uLCBHUFJSZWcgYXJnMSwgR1BSUmVnIGFyZzIs
IGludDMyX3QgYXJnMykKK3sKKyAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwg
YXJnMiwgVHJ1c3RlZEltbTMyKGFyZzMpKTsKICAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNl
cHRpb25DaGVjayhvcGVyYXRpb24pOwogfQogCi1BTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVy
OjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FQyBvcGVyYXRpb24sIFJl
Z2lzdGVySUQgcmVnT3ApCitBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6
Y2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FSkpJIG9wZXJhdGlvbiwgUmVnaXN0ZXJJRCBy
ZWdPcDEsIFJlZ2lzdGVySUQgcmVnT3AyLCBTdHJpbmdJbXBsKiB1aWQpCiB7Ci0gICAgc2V0dXBB
cmd1bWVudHNXaXRoRXhlY1N0YXRlKHJlZ09wKTsKKyAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVj
U3RhdGUocmVnT3AxLCByZWdPcDIsIFRydXN0ZWRJbW1QdHIodWlkKSk7CiAgICAgcmV0dXJuIGFw
cGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsKIH0KIAotQUxXQVlTX0lOTElO
RSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25f
RUNDIG9wZXJhdGlvbiwgUmVnaXN0ZXJJRCByZWdPcDEsIFJlZ2lzdGVySUQgcmVnT3AyKQorQUxX
QVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oVl9KSVRP
cGVyYXRpb25fRUpKSiBvcGVyYXRpb24sIFJlZ2lzdGVySUQgcmVnT3AxLCBSZWdpc3RlcklEIHJl
Z09wMiwgUmVnaXN0ZXJJRCByZWdPcDMpCiB7Ci0gICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0
YXRlKHJlZ09wMSwgcmVnT3AyKTsKKyAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUocmVn
T3AxLCByZWdPcDIsIHJlZ09wMyk7CiAgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9u
Q2hlY2sob3BlcmF0aW9uKTsKIH0KIAotQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2Fs
bCBKSVQ6OmNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUpJZEpKIG9wZXJhdGlvbiwgUmVn
aXN0ZXJJRCByZWdPcDEsIGNvbnN0IElkZW50aWZpZXIqIGlkZW50T3AyLCBSZWdpc3RlcklEIHJl
Z09wMywgUmVnaXN0ZXJJRCByZWdPcDQpCitBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpD
YWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihKSVQ6OldpdGhQcm9maWxlVGFnLCBKX0pJVE9wZXJhdGlv
bl9FSkkgb3BlcmF0aW9uLCBpbnQgZHN0LCBHUFJSZWcgYXJnMSwgU3RyaW5nSW1wbCogdWlkKQog
ewotICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShyZWdPcDEsIFRydXN0ZWRJbW1QdHIo
aWRlbnRPcDIpLCByZWdPcDMsIHJlZ09wNCk7CisgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0
YXRlKGFyZzEsIFRydXN0ZWRJbW1QdHIodWlkKSk7CisgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRo
RXhjZXB0aW9uQ2hlY2tTZXRKU1ZhbHVlUmVzdWx0V2l0aFByb2ZpbGUob3BlcmF0aW9uLCBkc3Qp
OworfQorCitBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJh
dGlvbihKSVQ6OldpdGhQcm9maWxlVGFnLCBKX0pJVE9wZXJhdGlvbl9FSkogb3BlcmF0aW9uLCBp
bnQgZHN0LCBHUFJSZWcgYXJnMSwgR1BSUmVnIGFyZzIpCit7CisgICAgc2V0dXBBcmd1bWVudHNX
aXRoRXhlY1N0YXRlKGFyZzEsIGFyZzIpOworICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2Vw
dGlvbkNoZWNrU2V0SlNWYWx1ZVJlc3VsdFdpdGhQcm9maWxlKG9wZXJhdGlvbiwgZHN0KTsKK30K
KworQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24o
Sl9KSVRPcGVyYXRpb25fRUFhcEogb3BlcmF0aW9uLCBpbnQgZHN0LCBBcnJheUFsbG9jYXRpb25Q
cm9maWxlKiBhcmcxLCBHUFJSZWcgYXJnMikKK3sKKyAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVj
U3RhdGUoVHJ1c3RlZEltbVB0cihhcmcxKSwgYXJnMik7CisgICAgcmV0dXJuIGFwcGVuZENhbGxX
aXRoRXhjZXB0aW9uQ2hlY2tTZXRKU1ZhbHVlUmVzdWx0KG9wZXJhdGlvbiwgZHN0KTsKK30KKwor
QUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oSl9K
SVRPcGVyYXRpb25fRUogb3BlcmF0aW9uLCBpbnQgZHN0LCBHUFJSZWcgYXJnMSkKK3sKKyAgICBz
ZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSk7CisgICAgcmV0dXJuIGFwcGVuZENhbGxX
aXRoRXhjZXB0aW9uQ2hlY2tTZXRKU1ZhbHVlUmVzdWx0KG9wZXJhdGlvbiwgZHN0KTsKK30KKwor
QUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oSl9K
SVRPcGVyYXRpb25fRUpJZGMgb3BlcmF0aW9uLCBpbnQgZHN0LCBHUFJSZWcgYXJnMSwgY29uc3Qg
SWRlbnRpZmllciogYXJnMikKK3sKKyAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJn
MSwgVHJ1c3RlZEltbVB0cihhcmcyKSk7CisgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0
aW9uQ2hlY2tTZXRKU1ZhbHVlUmVzdWx0KG9wZXJhdGlvbiwgZHN0KTsKK30KKworQUxXQVlTX0lO
TElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRp
b25fRUpKIG9wZXJhdGlvbiwgaW50IGRzdCwgR1BSUmVnIGFyZzEsIEdQUlJlZyBhcmcyKQorewor
ICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxLCBhcmcyKTsKKyAgICByZXR1cm4g
YXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVja1NldEpTVmFsdWVSZXN1bHQob3BlcmF0aW9uLCBk
c3QpOworfQorCitBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9w
ZXJhdGlvbk5vRXhjZXB0aW9uQ2hlY2soVl9KSVRPcGVyYXRpb25fRUogb3BlcmF0aW9uLCBHUFJS
ZWcgYXJnMSkKK3sKKyAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSk7CisgICAg
dXBkYXRlVG9wQ2FsbEZyYW1lKCk7CisgICAgcmV0dXJuIGFwcGVuZENhbGwob3BlcmF0aW9uKTsK
K30KKworQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRp
b24oUF9KSVRPcGVyYXRpb25fRUpTIG9wZXJhdGlvbiwgR1BSUmVnIGFyZzEsIHNpemVfdCBhcmcy
KQoreworICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxLCBUcnVzdGVkSW1tUHRy
KGFyZzIpKTsKICAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhvcGVyYXRp
b24pOwogfQogCi1BTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9w
ZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FSlogb3BlcmF0aW9uLCBSZWdpc3RlcklEIHJlZ09wMSwg
aW50MzJfdCBvcDIpCitBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2Fs
bE9wZXJhdGlvbihTX0pJVE9wZXJhdGlvbl9FSiBvcGVyYXRpb24sIFJlZ2lzdGVySUQgcmVnT3Ap
CiB7Ci0gICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKHJlZ09wMSwgVHJ1c3RlZEltbTMy
KG9wMikpOworICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShyZWdPcCk7CiAgICAgcmV0
dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsKIH0KIAotQUxXQVlT
X0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oVl9KSVRPcGVy
YXRpb25fRUpaSiBvcGVyYXRpb24sIFJlZ2lzdGVySUQgcmVnT3AxLCBpbnQzMl90IG9wMiwgUmVn
aXN0ZXJJRCByZWdPcDMpCitBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6
Y2FsbE9wZXJhdGlvbihTX0pJVE9wZXJhdGlvbl9FSkogb3BlcmF0aW9uLCBSZWdpc3RlcklEIHJl
Z09wMSwgUmVnaXN0ZXJJRCByZWdPcDIpCiB7Ci0gICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0
YXRlKHJlZ09wMSwgVHJ1c3RlZEltbTMyKG9wMiksIHJlZ09wMyk7CisgICAgc2V0dXBBcmd1bWVu
dHNXaXRoRXhlY1N0YXRlKHJlZ09wMSwgcmVnT3AyKTsKICAgICByZXR1cm4gYXBwZW5kQ2FsbFdp
dGhFeGNlcHRpb25DaGVjayhvcGVyYXRpb24pOwogfQogCi1BTFdBWVNfSU5MSU5FIE1hY3JvQXNz
ZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FUGMgb3BlcmF0
aW9uLCBJbnN0cnVjdGlvbiogYnl0ZWNvZGVQQykKK0FMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJs
ZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VJZEpaIG9wZXJhdGlv
biwgY29uc3QgSWRlbnRpZmllciogaWRlbnRPcDEsIFJlZ2lzdGVySUQgcmVnT3AyLCBpbnQzMl90
IG9wMykKIHsKLSAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoVHJ1c3RlZEltbVB0cihi
eXRlY29kZVBDKSk7CisgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKFRydXN0ZWRJbW1Q
dHIoaWRlbnRPcDEpLCByZWdPcDIsIFRydXN0ZWRJbW0zMihvcDMpKTsKICAgICByZXR1cm4gYXBw
ZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhvcGVyYXRpb24pOwogfQogCi1BTFdBWVNfSU5MSU5F
IE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9F
WiBvcGVyYXRpb24sIGludDMyX3Qgb3ApCitBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpD
YWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FSiBvcGVyYXRpb24sIFJlZ2lz
dGVySUQgcmVnT3ApCiB7Ci0gICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKFRydXN0ZWRJ
bW0zMihvcCkpOworICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShyZWdPcCk7CiAgICAg
cmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsKIH0KIAotQUxX
QVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb25XaXRoQ2Fs
bEZyYW1lUm9sbGJhY2tPbkV4Y2VwdGlvbihKX0pJVE9wZXJhdGlvbl9FIG9wZXJhdGlvbikKK0FM
V0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKFZfSklU
T3BlcmF0aW9uX0VKSWRKSiBvcGVyYXRpb24sIFJlZ2lzdGVySUQgcmVnT3AxLCBjb25zdCBJZGVu
dGlmaWVyKiBpZGVudE9wMiwgUmVnaXN0ZXJJRCByZWdPcDMsIFJlZ2lzdGVySUQgcmVnT3A0KQog
ewotICAgIHNldHVwQXJndW1lbnRzRXhlY1N0YXRlKCk7Ci0gICAgcmV0dXJuIGFwcGVuZENhbGxX
aXRoQ2FsbEZyYW1lUm9sbGJhY2tPbkV4Y2VwdGlvbihvcGVyYXRpb24pOworICAgIHNldHVwQXJn
dW1lbnRzV2l0aEV4ZWNTdGF0ZShyZWdPcDEsIFRydXN0ZWRJbW1QdHIoaWRlbnRPcDIpLCByZWdP
cDMsIHJlZ09wNCk7CisgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3Bl
cmF0aW9uKTsKIH0KIAotQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNh
bGxPcGVyYXRpb25XaXRoQ2FsbEZyYW1lUm9sbGJhY2tPbkV4Y2VwdGlvbihWX0pJVE9wZXJhdGlv
bl9FQ2Igb3BlcmF0aW9uLCBDb2RlQmxvY2sqIHBvaW50ZXIpCitBTFdBWVNfSU5MSU5FIE1hY3Jv
QXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FSlogb3Bl
cmF0aW9uLCBSZWdpc3RlcklEIHJlZ09wMSwgaW50MzJfdCBvcDIpCiB7Ci0gICAgc2V0dXBBcmd1
bWVudHNXaXRoRXhlY1N0YXRlKFRydXN0ZWRJbW1QdHIocG9pbnRlcikpOwotICAgIHJldHVybiBh
cHBlbmRDYWxsV2l0aENhbGxGcmFtZVJvbGxiYWNrT25FeGNlcHRpb24ob3BlcmF0aW9uKTsKKyAg
ICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUocmVnT3AxLCBUcnVzdGVkSW1tMzIob3AyKSk7
CisgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsKIH0K
IAotQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb25X
aXRoQ2FsbEZyYW1lUm9sbGJhY2tPbkV4Y2VwdGlvbihaX0pJVE9wZXJhdGlvbl9FIG9wZXJhdGlv
bikKK0FMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9u
KFZfSklUT3BlcmF0aW9uX0VKWkogb3BlcmF0aW9uLCBSZWdpc3RlcklEIHJlZ09wMSwgaW50MzJf
dCBvcDIsIFJlZ2lzdGVySUQgcmVnT3AzKQogewotICAgIHNldHVwQXJndW1lbnRzRXhlY1N0YXRl
KCk7Ci0gICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoQ2FsbEZyYW1lUm9sbGJhY2tPbkV4Y2VwdGlv
bihvcGVyYXRpb24pOworICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShyZWdPcDEsIFRy
dXN0ZWRJbW0zMihvcDIpLCByZWdPcDMpOworICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2Vw
dGlvbkNoZWNrKG9wZXJhdGlvbik7CiB9CiAKLSNpZiBVU0UoSlNWQUxVRTMyXzY0KQorI2Vsc2Ug
Ly8gVVNFKEpTVkFMVUUzMl82NCkKIAogLy8gRW5jb2RlZEpTVmFsdWUgaW4gSlNWQUxVRTMyXzY0
IGlzIGEgNjQtYml0IGludGVnZXIuIFdoZW4gYmVpbmcgY29tcGlsZWQgaW4gQVJNIEVBQkksIGl0
IG11c3QgYmUgYWxpZ25lZCBldmVuLW51bWJlcmVkIHJlZ2lzdGVyIChyMCwgcjIgb3IgW3NwXSku
CiAvLyBUbyBhdm9pZCBhc3NlbWJsaWVzIGZyb20gdXNpbmcgd3JvbmcgcmVnaXN0ZXJzLCBsZXQn
cyBvY2N1cHkgcjEgb3IgcjMgd2l0aCBhIGR1bW15IGFyZ3VtZW50IHdoZW4gbmVjZXNzYXJ5LgpA
QCAtNDQwLDYgKzQzMCwxMyBAQCBBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJ
VDo6CiAjZGVmaW5lIFNINF8zMkJJVF9EVU1NWV9BUkcKICNlbmRpZgogCitBTFdBWVNfSU5MSU5F
IE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbk5vRXhjZXB0aW9uQ2hlY2so
Vl9KSVRPcGVyYXRpb25fRUogb3BlcmF0aW9uLCBHUFJSZWcgYXJnMVRhZywgR1BSUmVnIGFyZzFQ
YXlsb2FkKQoreworICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxUGF5bG9hZCwg
YXJnMVRhZyk7CisgICAgdXBkYXRlVG9wQ2FsbEZyYW1lKCk7CisgICAgcmV0dXJuIGFwcGVuZENh
bGwob3BlcmF0aW9uKTsKK30KKwogQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBK
SVQ6OmNhbGxPcGVyYXRpb24oRl9KSVRPcGVyYXRpb25fRUpKWiBvcGVyYXRpb24sIEdQUlJlZyBh
cmcxVGFnLCBHUFJSZWcgYXJnMVBheWxvYWQsIEdQUlJlZyBhcmcyVGFnLCBHUFJSZWcgYXJnMlBh
eWxvYWQsIGludDMyX3QgYXJnMykKIHsKICNpZiBDUFUoU0g0KQpAQCAtNTUxLDYgKzU0OCw3IEBA
IEFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjoKICAgICBzZXR1cEFyZ3Vt
ZW50c1dpdGhFeGVjU3RhdGUoRUFCSV8zMkJJVF9EVU1NWV9BUkcgcmVnT3AxUGF5bG9hZCwgcmVn
T3AxVGFnLCBUcnVzdGVkSW1tMzIob3AyKSwgcmVnT3AzUGF5bG9hZCwgcmVnT3AzVGFnKTsKICAg
ICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhvcGVyYXRpb24pOwogfQorCiAj
dW5kZWYgRUFCSV8zMkJJVF9EVU1NWV9BUkcKICN1bmRlZiBTSDRfMzJCSVRfRFVNTVlfQVJHCiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>