<?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>107674</bug_id>
          
          <creation_ts>2013-01-23 05:14:30 -0800</creation_ts>
          <short_desc>[V8] Reduce usage of deprecatedV8String() and deprecatedV8Integer()</short_desc>
          <delta_ts>2013-01-30 20:33:57 -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>WebCore JavaScript</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="Kentaro Hara">haraken</reporter>
          <assigned_to name="Kentaro Hara">haraken</assigned_to>
          <cc>abarth</cc>
    
    <cc>eustas</cc>
    
    <cc>japhet</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>814118</commentid>
    <comment_count>0</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-01-23 05:14:30 -0800</bug_when>
    <thetext>A bit more work is needed to kill them completely.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814119</commentid>
    <comment_count>1</comment_count>
      <attachid>184206</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-01-23 05:15:48 -0800</bug_when>
    <thetext>Created attachment 184206
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814800</commentid>
    <comment_count>2</comment_count>
      <attachid>184206</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-23 16:31:29 -0800</bug_when>
    <thetext>Comment on attachment 184206
Patch

Clearing flags on attachment: 184206

Committed r140611: &lt;http://trac.webkit.org/changeset/140611&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814801</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-23 16:31:33 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>817669</commentid>
    <comment_count>4</comment_count>
    <who name="Eugene Klyuchnikov">eustas</who>
    <bug_when>2013-01-28 03:36:36 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; All reviewed patches have been landed.  Closing bug.

This patch causes REGRESSION: CPU profile can&apos;t be recorded from WebInspector.

More precisely: in file ScriptProfiler.cpp it is explicitly declared that &quot;start&quot; and &quot;stop&quot; could be invoked with state == 0 (see &quot;startForPage&quot;, &quot;stopForPage&quot;, etc.)
Accessing &quot;isolate&quot; of a null pointer causes crashes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>817711</commentid>
    <comment_count>5</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-01-28 05:57:24 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; This patch causes REGRESSION: CPU profile can&apos;t be recorded from WebInspector.

oops, sorry. Let me take a look tomorrow morning.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>820106</commentid>
    <comment_count>6</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-01-30 05:04:55 -0800</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>820107</commentid>
    <comment_count>7</comment_count>
      <attachid>185469</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-01-30 05:04:59 -0800</bug_when>
    <thetext>Created attachment 185469
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>820109</commentid>
    <comment_count>8</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-01-30 05:08:41 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; All reviewed patches have been landed.  Closing bug.
&gt; 
&gt; This patch causes REGRESSION: CPU profile can&apos;t be recorded from WebInspector.
&gt; 
&gt; More precisely: in file ScriptProfiler.cpp it is explicitly declared that &quot;start&quot; and &quot;stop&quot; could be invoked with state == 0 (see &quot;startForPage&quot;, &quot;stopForPage&quot;, etc.)
&gt; Accessing &quot;isolate&quot; of a null pointer causes crashes.

Thanks for fixing the crash by passing Isolate::GetCurrent(). I uploaded a follow-up patch that uses state-&gt;isolate() when state is not 0. (In the future, I think InspectorProfilerAgent should keep ScriptState* and pass it to bindings.)

abarth: review?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>820381</commentid>
    <comment_count>9</comment_count>
      <attachid>185469</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-01-30 11:57:00 -0800</bug_when>
    <thetext>Comment on attachment 185469
Patch

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

&gt; Source/WebCore/bindings/v8/ScriptProfiler.cpp:62
&gt; -    v8::CpuProfiler::StartProfiling(v8String(title, v8::Isolate::GetCurrent()));
&gt; +    v8::CpuProfiler::StartProfiling(v8String(title, state ? state-&gt;isolate() : v8::Isolate::GetCurrent()));

So state can be zero here but not in stop() ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821017</commentid>
    <comment_count>10</comment_count>
      <attachid>185469</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-01-30 20:17:13 -0800</bug_when>
    <thetext>Comment on attachment 185469
Patch

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

&gt;&gt; Source/WebCore/bindings/v8/ScriptProfiler.cpp:62
&gt;&gt; +    v8::CpuProfiler::StartProfiling(v8String(title, state ? state-&gt;isolate() : v8::Isolate::GetCurrent()));
&gt; 
&gt; So state can be zero here but not in stop() ?

state can be zero in stop(), but it&apos;s OK.

&gt; Source/WebCore/bindings/v8/ScriptProfiler.cpp:81
&gt;      const v8::CpuProfile* profile = state ?
&gt; -        v8::CpuProfiler::StopProfiling(v8String(title, v8::Isolate::GetCurrent()), state-&gt;context()-&gt;GetSecurityToken()) :
&gt; +        v8::CpuProfiler::StopProfiling(v8String(title, state-&gt;isolate()), state-&gt;context()-&gt;GetSecurityToken()) :

because we&apos;re checking state here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821028</commentid>
    <comment_count>11</comment_count>
      <attachid>185469</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-30 20:33:53 -0800</bug_when>
    <thetext>Comment on attachment 185469
Patch

Clearing flags on attachment: 185469

Committed r141368: &lt;http://trac.webkit.org/changeset/141368&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821029</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-30 20:33:57 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184206</attachid>
            <date>2013-01-23 05:15:48 -0800</date>
            <delta_ts>2013-01-30 05:04:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107674-20130123221241.patch</filename>
            <type>text/plain</type>
            <size>22632</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwNTMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTA2ODVlNWQxYTg5M2Ji
NzVmOGI0MTgzODRkYjFlMTRlODA0ZjhiYy4uMTQ1MDRkZTA5NmQ3NjhmNTcyNjJiNzE4MGY2ZTZi
MDE1ZWFkMmRjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDEzLTAxLTIzICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBbVjhdIFJlZHVjZSB1
c2FnZSBvZiBkZXByZWNhdGVkVjhTdHJpbmcoKSBhbmQgZGVwcmVjYXRlZFY4SW50ZWdlcigpCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDc2NzQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyB0ZXN0cy4g
Tm8gY2hhbmdlIGluIGJlaGF2aW9yLgorCisgICAgICAgICogYmluZGluZ3MvdjgvSmF2YVNjcmlw
dENhbGxGcmFtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKYXZhU2NyaXB0Q2FsbEZyYW1lOjpl
dmFsdWF0ZSk6CisgICAgICAgICogYmluZGluZ3MvdjgvTlBWOE9iamVjdC5jcHA6CisgICAgICAg
IChfTlBOX0VudW1lcmF0ZSk6CisgICAgICAgICogYmluZGluZ3MvdjgvUGFnZVNjcmlwdERlYnVn
U2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VTY3JpcHREZWJ1Z1NlcnZlcjo6YWRk
TGlzdGVuZXIpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1NjcmlwdENvbnRyb2xsZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxlcjo6YmluZFRvV2luZG93T2JqZWN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmRpc2FibGVFdmFsKToKKyAgICAg
ICAgKiBiaW5kaW5ncy92OC9TY3JpcHREZWJ1Z1NlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JpcHREZWJ1Z1NlcnZlcjo6c2V0QnJlYWtwb2ludCk6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JpcHREZWJ1Z1NlcnZlcjo6cmVtb3ZlQnJlYWtwb2ludCk6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JpcHREZWJ1Z1NlcnZlcjo6c2V0U2NyaXB0U291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNj
cmlwdERlYnVnU2VydmVyOjplbnN1cmVEZWJ1Z2dlclNjcmlwdENvbXBpbGVkKToKKyAgICAgICAg
KFdlYkNvcmU6OlNjcmlwdERlYnVnU2VydmVyOjpjb21waWxlU2NyaXB0KToKKyAgICAgICAgKiBi
aW5kaW5ncy92OC9TY3JpcHRGdW5jdGlvbkNhbGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
aXB0Q2FsbEFyZ3VtZW50SGFuZGxlcjo6YXBwZW5kQXJndW1lbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6U2NyaXB0RnVuY3Rpb25DYWxsOjpjYWxsKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEZ1
bmN0aW9uQ2FsbDo6Y29uc3RydWN0KToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9TY3JpcHRQcm9m
aWxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRQcm9maWxlcjo6c3RhcnQpOgorICAg
ICAgICAoV2ViQ29yZTo6U2NyaXB0UHJvZmlsZXI6OnN0b3ApOgorICAgICAgICAqIGJpbmRpbmdz
L3Y4L1Y4RE9NV2luZG93U2hlbGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhET01XaW5kb3dT
aGVsbDo6aW5pdGlhbGl6ZUlmTmVlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlY4RE9NV2luZG93
U2hlbGw6Om5hbWVkSXRlbUFkZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlY4RE9NV2luZG93U2hl
bGw6Om5hbWVkSXRlbVJlbW92ZWQpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4TGF6eUV2ZW50
TGlzdGVuZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhMYXp5RXZlbnRMaXN0ZW5lcjo6cHJl
cGFyZUxpc3RlbmVyT2JqZWN0KToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOE11dGF0aW9uQ2Fs
bGJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhNdXRhdGlvbkNhbGxiYWNrOjpoYW5kbGVF
dmVudCk6CisgICAgICAgICogYmluZGluZ3MvdjgvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJTY3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZSk6Cisg
ICAgICAgICogYmluZGluZ3MvdjgvV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6V29ya2VyU2NyaXB0RGVidWdTZXJ2ZXI6OmFkZExpc3RlbmVyKToKKyAgICAg
ICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhJbmplY3RlZFNjcmlwdE1hbmFnZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOjpjcmVhdGVJbmplY3RlZFNjcmlw
dCk6CisKIDIwMTMtMDEtMjMgIEFkcmlhbiBQZXJleiBkZSBDYXN0cm8gIDxhcGVyZXpAaWdhbGlh
LmNvbT4KIAogICAgICAgICBbR1N0cmVhbWVyXSBBZGQgT3B1cyBNSU1FIHR5cGUgdG8gdGhlIGxp
c3Qgb2Ygc3VwcG9ydGVkIG9uZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L0phdmFTY3JpcHRDYWxsRnJhbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
SmF2YVNjcmlwdENhbGxGcmFtZS5jcHAKaW5kZXggMzE1MDM2ODEzMTViM2RhNTg2NTIyYTVhOTQz
ZDliZTcxMjRkN2U2Mi4uNzcxMWUwOTY5MDdmNjYwOGYwYjYzM2UyNGFlMGRhMjUxYTc1OTM2NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvSmF2YVNjcmlwdENhbGxGcmFt
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvSmF2YVNjcmlwdENhbGxGcmFt
ZS5jcHAKQEAgLTEyMSw3ICsxMjEsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gSmF2YVNjcmlw
dENhbGxGcmFtZTo6dGhpc09iamVjdCgpIGNvbnN0CiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gSmF2
YVNjcmlwdENhbGxGcmFtZTo6ZXZhbHVhdGUoY29uc3QgU3RyaW5nJiBleHByZXNzaW9uKQogewog
ICAgIHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9uPiBldmFsRnVuY3Rpb24gPSB2ODo6SGFuZGxlPHY4
OjpGdW5jdGlvbj46OkNhc3QobV9jYWxsRnJhbWUuZ2V0KCktPkdldCh2ODo6U3RyaW5nOjpOZXdT
eW1ib2woImV2YWx1YXRlIikpKTsKLSAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gYXJndltdID0g
eyBkZXByZWNhdGVkVjhTdHJpbmcoZXhwcmVzc2lvbikgfTsKKyAgICB2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4gYXJndltdID0geyB2OFN0cmluZyhleHByZXNzaW9uLCBtX2RlYnVnZ2VyQ29udGV4dC0+
R2V0SXNvbGF0ZSgpKSB9OwogICAgIHJldHVybiBldmFsRnVuY3Rpb24tPkNhbGwobV9jYWxsRnJh
bWUuZ2V0KCksIDEsIGFyZ3YpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9OUFY4T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L05QVjhP
YmplY3QuY3BwCmluZGV4IDU1NGRjYWVjNDFlZjUyMWI2MjQxZDIzMDA3NTZhZDNjYzNkNDFlNzku
LjI2ODBiMGQ1ZjMyNGIzYzRlNjcwNmI1MzNkMjZkMWNiYmRjMTcxY2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L05QVjhPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L05QVjhPYmplY3QuY3BwCkBAIC01MzYsNyArNTM2LDcgQEAgYm9vbCBf
TlBOX0VudW1lcmF0ZShOUFAgbnBwLCBOUE9iamVjdCogbnBPYmplY3QsIE5QSWRlbnRpZmllcioq
IGlkZW50aWZpZXIsIHVpbnQKICAgICAgICAgKmNvdW50ID0gcHJvcHMtPkxlbmd0aCgpOwogICAg
ICAgICAqaWRlbnRpZmllciA9IHN0YXRpY19jYXN0PE5QSWRlbnRpZmllcio+KG1hbGxvYyhzaXpl
b2YoTlBJZGVudGlmaWVyKikgKiAqY291bnQpKTsKICAgICAgICAgZm9yICh1aW50MzJfdCBpID0g
MDsgaSA8ICpjb3VudDsgKytpKSB7Ci0gICAgICAgICAgICB2ODo6TG9jYWw8djg6OlZhbHVlPiBu
YW1lID0gcHJvcHMtPkdldChkZXByZWNhdGVkVjhJbnRlZ2VyKGkpKTsKKyAgICAgICAgICAgIHY4
OjpMb2NhbDx2ODo6VmFsdWU+IG5hbWUgPSBwcm9wcy0+R2V0KHY4SW50ZWdlcihpLCBjb250ZXh0
LT5HZXRJc29sYXRlKCkpKTsKICAgICAgICAgICAgICgqaWRlbnRpZmllcilbaV0gPSBnZXRTdHJp
bmdJZGVudGlmaWVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPjo6Q2FzdChuYW1lKSk7CiAgICAgICAg
IH0KICAgICAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9QYWdlU2NyaXB0RGVidWdTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvUGFnZVNjcmlwdERlYnVnU2VydmVyLmNwcAppbmRleCBkZDQ5MTQ5ZGMyMjlhMjc5MjE3
NTU4ZWQ4YzRiYTk1YTc2M2I3ZTI0Li5iMTk1OTc2ZTdjN2ViNjQ5YjNjNjBhOWQxY2I3ZThjYjY2
NTFlNzkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9QYWdlU2NyaXB0
RGVidWdTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1BhZ2VTY3Jp
cHREZWJ1Z1NlcnZlci5jcHAKQEAgLTEwOCw3ICsxMDgsNyBAQCB2b2lkIFBhZ2VTY3JpcHREZWJ1
Z1NlcnZlcjo6YWRkTGlzdGVuZXIoU2NyaXB0RGVidWdMaXN0ZW5lciogbGlzdGVuZXIsIFBhZ2Uq
IHBhZwogICAgIEFTU0VSVCghdmFsdWUtPklzVW5kZWZpbmVkKCkgJiYgdmFsdWUtPklzQXJyYXko
KSk7CiAgICAgdjg6OkhhbmRsZTx2ODo6QXJyYXk+IHNjcmlwdHNBcnJheSA9IHY4OjpIYW5kbGU8
djg6OkFycmF5Pjo6Q2FzdCh2YWx1ZSk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNj
cmlwdHNBcnJheS0+TGVuZ3RoKCk7ICsraSkKLSAgICAgICAgZGlzcGF0Y2hEaWRQYXJzZVNvdXJj
ZShsaXN0ZW5lciwgdjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChzY3JpcHRzQXJyYXktPkdl
dChkZXByZWNhdGVkVjhJbnRlZ2VyKGkpKSkpOworICAgICAgICBkaXNwYXRjaERpZFBhcnNlU291
cmNlKGxpc3RlbmVyLCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KHNjcmlwdHNBcnJheS0+
R2V0KHY4SW50ZWdlcihpLCBjb250ZXh0LT5HZXRJc29sYXRlKCkpKSkpOwogfQogCiB2b2lkIFBh
Z2VTY3JpcHREZWJ1Z1NlcnZlcjo6cmVtb3ZlTGlzdGVuZXIoU2NyaXB0RGVidWdMaXN0ZW5lciog
bGlzdGVuZXIsIFBhZ2UqIHBhZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9TY3JpcHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Nj
cmlwdENvbnRyb2xsZXIuY3BwCmluZGV4IDY1NGYyYTI4M2JlYmUwMTVlNzJlYmY4ZWIwNjBlZmVm
OTczNzI0NjcuLjVhM2Y2MGRlYTBkZTk3MzU4ZjdhMzM4MDJmYTViMzBkNzQ5ZmQ0MzcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdENvbnRyb2xsZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdENvbnRyb2xsZXIuY3BwCkBAIC00
OTIsNyArNDkyLDcgQEAgdm9pZCBTY3JpcHRDb250cm9sbGVyOjpiaW5kVG9XaW5kb3dPYmplY3Qo
RnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIGtleSwgTlBPYmoKIAogICAgIC8vIEF0dGFjaCB0
byB0aGUgZ2xvYmFsIG9iamVjdC4KICAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGdsb2JhbCA9
IHY4Q29udGV4dC0+R2xvYmFsKCk7Ci0gICAgZ2xvYmFsLT5TZXQoZGVwcmVjYXRlZFY4U3RyaW5n
KGtleSksIHZhbHVlKTsKKyAgICBnbG9iYWwtPlNldCh2OFN0cmluZyhrZXksIHY4Q29udGV4dC0+
R2V0SXNvbGF0ZSgpKSwgdmFsdWUpOwogfQogCiBib29sIFNjcmlwdENvbnRyb2xsZXI6OmhhdmVJ
bnRlcnByZXRlcigpIGNvbnN0CkBAIC01MTUsNyArNTE1LDcgQEAgdm9pZCBTY3JpcHRDb250cm9s
bGVyOjpkaXNhYmxlRXZhbChjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSkKICAgICB2ODo6SGFu
ZGxlU2NvcGUgaGFuZGxlU2NvcGU7CiAgICAgdjg6OkhhbmRsZTx2ODo6Q29udGV4dD4gdjhDb250
ZXh0ID0gbV93aW5kb3dTaGVsbC0+Y29udGV4dCgpOwogICAgIHY4Q29udGV4dC0+QWxsb3dDb2Rl
R2VuZXJhdGlvbkZyb21TdHJpbmdzKGZhbHNlKTsKLSAgICB2OENvbnRleHQtPlNldEVycm9yTWVz
c2FnZUZvckNvZGVHZW5lcmF0aW9uRnJvbVN0cmluZ3MoZGVwcmVjYXRlZFY4U3RyaW5nKGVycm9y
TWVzc2FnZSkpOworICAgIHY4Q29udGV4dC0+U2V0RXJyb3JNZXNzYWdlRm9yQ29kZUdlbmVyYXRp
b25Gcm9tU3RyaW5ncyh2OFN0cmluZyhlcnJvck1lc3NhZ2UsIHY4Q29udGV4dC0+R2V0SXNvbGF0
ZSgpKSk7CiB9CiAKIFBhc3NTY3JpcHRJbnN0YW5jZSBTY3JpcHRDb250cm9sbGVyOjpjcmVhdGVT
Y3JpcHRJbnN0YW5jZUZvcldpZGdldChXaWRnZXQqIHdpZGdldCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdERlYnVnU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L1NjcmlwdERlYnVnU2VydmVyLmNwcAppbmRleCAwMDM4MWFmOGQzMTZm
MGU3NjNiNmViMWEwZTk4M2ZiNGIxZTY2MWM5Li4yMDNlNzI1OThiZDhmN2I1ODFmMzhhY2VkY2Vm
NDllZTgxOTA3MzA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3Jp
cHREZWJ1Z1NlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0
RGVidWdTZXJ2ZXIuY3BwCkBAIC0xNzIsMTAgKzE3MiwxMCBAQCBTdHJpbmcgU2NyaXB0RGVidWdT
ZXJ2ZXI6OnNldEJyZWFrcG9pbnQoY29uc3QgU3RyaW5nJiBzb3VyY2VJRCwgY29uc3QgU2NyaXB0
QnJlYQogICAgIHY4OjpDb250ZXh0OjpTY29wZSBjb250ZXh0U2NvcGUoZGVidWdnZXJDb250ZXh0
KTsKIAogICAgIHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBhcmdzID0gdjg6Ok9iamVjdDo6TmV3KCk7
Ci0gICAgYXJncy0+U2V0KHY4OjpTdHJpbmc6Ok5ld1N5bWJvbCgic291cmNlSUQiKSwgZGVwcmVj
YXRlZFY4U3RyaW5nKHNvdXJjZUlEKSk7Ci0gICAgYXJncy0+U2V0KHY4OjpTdHJpbmc6Ok5ld1N5
bWJvbCgibGluZU51bWJlciIpLCBkZXByZWNhdGVkVjhJbnRlZ2VyKHNjcmlwdEJyZWFrcG9pbnQu
bGluZU51bWJlcikpOwotICAgIGFyZ3MtPlNldCh2ODo6U3RyaW5nOjpOZXdTeW1ib2woImNvbHVt
bk51bWJlciIpLCBkZXByZWNhdGVkVjhJbnRlZ2VyKHNjcmlwdEJyZWFrcG9pbnQuY29sdW1uTnVt
YmVyKSk7Ci0gICAgYXJncy0+U2V0KHY4OjpTdHJpbmc6Ok5ld1N5bWJvbCgiY29uZGl0aW9uIiks
IGRlcHJlY2F0ZWRWOFN0cmluZyhzY3JpcHRCcmVha3BvaW50LmNvbmRpdGlvbikpOworICAgIGFy
Z3MtPlNldCh2ODo6U3RyaW5nOjpOZXdTeW1ib2woInNvdXJjZUlEIiksIHY4U3RyaW5nKHNvdXJj
ZUlELCBkZWJ1Z2dlckNvbnRleHQtPkdldElzb2xhdGUoKSkpOworICAgIGFyZ3MtPlNldCh2ODo6
U3RyaW5nOjpOZXdTeW1ib2woImxpbmVOdW1iZXIiKSwgdjhJbnRlZ2VyKHNjcmlwdEJyZWFrcG9p
bnQubGluZU51bWJlciwgZGVidWdnZXJDb250ZXh0LT5HZXRJc29sYXRlKCkpKTsKKyAgICBhcmdz
LT5TZXQodjg6OlN0cmluZzo6TmV3U3ltYm9sKCJjb2x1bW5OdW1iZXIiKSwgdjhJbnRlZ2VyKHNj
cmlwdEJyZWFrcG9pbnQuY29sdW1uTnVtYmVyLCBkZWJ1Z2dlckNvbnRleHQtPkdldElzb2xhdGUo
KSkpOworICAgIGFyZ3MtPlNldCh2ODo6U3RyaW5nOjpOZXdTeW1ib2woImNvbmRpdGlvbiIpLCB2
OFN0cmluZyhzY3JpcHRCcmVha3BvaW50LmNvbmRpdGlvbiwgZGVidWdnZXJDb250ZXh0LT5HZXRJ
c29sYXRlKCkpKTsKIAogICAgIHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9uPiBzZXRCcmVha3BvaW50
RnVuY3Rpb24gPSB2ODo6TG9jYWw8djg6OkZ1bmN0aW9uPjo6Q2FzdChtX2RlYnVnZ2VyU2NyaXB0
LmdldCgpLT5HZXQodjg6OlN0cmluZzo6TmV3U3ltYm9sKCJzZXRCcmVha3BvaW50IikpKTsKICAg
ICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gYnJlYWtwb2ludElkID0gdjg6OkRlYnVnOjpDYWxsKHNl
dEJyZWFrcG9pbnRGdW5jdGlvbiwgYXJncyk7CkBAIC0xOTMsNyArMTkzLDcgQEAgdm9pZCBTY3Jp
cHREZWJ1Z1NlcnZlcjo6cmVtb3ZlQnJlYWtwb2ludChjb25zdCBTdHJpbmcmIGJyZWFrcG9pbnRJ
ZCkKICAgICB2ODo6Q29udGV4dDo6U2NvcGUgY29udGV4dFNjb3BlKGRlYnVnZ2VyQ29udGV4dCk7
CiAKICAgICB2ODo6TG9jYWw8djg6Ok9iamVjdD4gYXJncyA9IHY4OjpPYmplY3Q6Ok5ldygpOwot
ICAgIGFyZ3MtPlNldCh2ODo6U3RyaW5nOjpOZXdTeW1ib2woImJyZWFrcG9pbnRJZCIpLCBkZXBy
ZWNhdGVkVjhTdHJpbmcoYnJlYWtwb2ludElkKSk7CisgICAgYXJncy0+U2V0KHY4OjpTdHJpbmc6
Ok5ld1N5bWJvbCgiYnJlYWtwb2ludElkIiksIHY4U3RyaW5nKGJyZWFrcG9pbnRJZCwgZGVidWdn
ZXJDb250ZXh0LT5HZXRJc29sYXRlKCkpKTsKIAogICAgIHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9u
PiByZW1vdmVCcmVha3BvaW50RnVuY3Rpb24gPSB2ODo6TG9jYWw8djg6OkZ1bmN0aW9uPjo6Q2Fz
dChtX2RlYnVnZ2VyU2NyaXB0LmdldCgpLT5HZXQodjg6OlN0cmluZzo6TmV3U3ltYm9sKCJyZW1v
dmVCcmVha3BvaW50IikpKTsKICAgICB2ODo6RGVidWc6OkNhbGwocmVtb3ZlQnJlYWtwb2ludEZ1
bmN0aW9uLCBhcmdzKTsKQEAgLTMyOCwxMCArMzI4LDExIEBAIGJvb2wgU2NyaXB0RGVidWdTZXJ2
ZXI6OnNldFNjcmlwdFNvdXJjZShjb25zdCBTdHJpbmcmIHNvdXJjZUlELCBjb25zdCBTdHJpbmcm
IG5lCiAgICAgdjg6OkhhbmRsZVNjb3BlIHNjb3BlOwogCiAgICAgT3duUHRyPHY4OjpDb250ZXh0
OjpTY29wZT4gY29udGV4dFNjb3BlOworICAgIHY4OjpIYW5kbGU8djg6OkNvbnRleHQ+IGRlYnVn
Z2VyQ29udGV4dCA9IHY4OjpEZWJ1Zzo6R2V0RGVidWdDb250ZXh0KCk7CiAgICAgaWYgKCFpc1Bh
dXNlZCgpKQotICAgICAgICBjb250ZXh0U2NvcGUgPSBhZG9wdFB0cihuZXcgdjg6OkNvbnRleHQ6
OlNjb3BlKHY4OjpEZWJ1Zzo6R2V0RGVidWdDb250ZXh0KCkpKTsKKyAgICAgICAgY29udGV4dFNj
b3BlID0gYWRvcHRQdHIobmV3IHY4OjpDb250ZXh0OjpTY29wZShkZWJ1Z2dlckNvbnRleHQpKTsK
IAotICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBhcmd2W10gPSB7IGRlcHJlY2F0ZWRWOFN0cmlu
Zyhzb3VyY2VJRCksIGRlcHJlY2F0ZWRWOFN0cmluZyhuZXdDb250ZW50KSwgdjhCb29sZWFuKHBy
ZXZpZXcpIH07CisgICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGFyZ3ZbXSA9IHsgdjhTdHJpbmco
c291cmNlSUQsIGRlYnVnZ2VyQ29udGV4dC0+R2V0SXNvbGF0ZSgpKSwgdjhTdHJpbmcobmV3Q29u
dGVudCwgZGVidWdnZXJDb250ZXh0LT5HZXRJc29sYXRlKCkpLCB2OEJvb2xlYW4ocHJldmlldykg
fTsKIAogICAgIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHY4cmVzdWx0OwogICAgIHsKQEAgLTUzNSw3
ICs1MzYsNyBAQCB2b2lkIFNjcmlwdERlYnVnU2VydmVyOjplbnN1cmVEZWJ1Z2dlclNjcmlwdENv
bXBpbGVkKCkKICAgICAgICAgdjg6OkNvbnRleHQ6OlNjb3BlIGNvbnRleHRTY29wZShkZWJ1Z2dl
ckNvbnRleHQpOwogICAgICAgICBTdHJpbmcgZGVidWdnZXJTY3JpcHRTb3VyY2UocmVpbnRlcnBy
ZXRfY2FzdDxjb25zdCBjaGFyKj4oRGVidWdnZXJTY3JpcHRTb3VyY2VfanMpLCBzaXplb2YoRGVi
dWdnZXJTY3JpcHRTb3VyY2VfanMpKTsKICAgICAgICAgVjhSZWN1cnNpb25TY29wZTo6TWljcm90
YXNrU3VwcHJlc3Npb24gcmVjdXJzaW9uU2NvcGU7Ci0gICAgICAgIG1fZGVidWdnZXJTY3JpcHQu
c2V0KHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3Qodjg6OlNjcmlwdDo6Q29tcGlsZShkZXBy
ZWNhdGVkVjhTdHJpbmcoZGVidWdnZXJTY3JpcHRTb3VyY2UpKS0+UnVuKCkpKTsKKyAgICAgICAg
bV9kZWJ1Z2dlclNjcmlwdC5zZXQodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdCh2ODo6U2Ny
aXB0OjpDb21waWxlKHY4U3RyaW5nKGRlYnVnZ2VyU2NyaXB0U291cmNlLCBkZWJ1Z2dlckNvbnRl
eHQtPkdldElzb2xhdGUoKSkpLT5SdW4oKSkpOwogICAgIH0KIH0KIApAQCAtNTcwLDEwICs1NzEs
MTAgQEAgdm9pZCBTY3JpcHREZWJ1Z1NlcnZlcjo6Y29tcGlsZVNjcmlwdChTY3JpcHRTdGF0ZSog
c3RhdGUsIGNvbnN0IFN0cmluZyYgZXhwcmVzc2kKICAgICAgICAgcmV0dXJuOwogICAgIHY4OjpD
b250ZXh0OjpTY29wZSBjb250ZXh0U2NvcGUoY29udGV4dCk7CiAKLSAgICB2ODo6SGFuZGxlPHY4
OjpTdHJpbmc+IGNvZGUgPSBkZXByZWNhdGVkVjhTdHJpbmcoZXhwcmVzc2lvbik7CisgICAgdjg6
OkhhbmRsZTx2ODo6U3RyaW5nPiBjb2RlID0gdjhTdHJpbmcoZXhwcmVzc2lvbiwgY29udGV4dC0+
R2V0SXNvbGF0ZSgpKTsKICAgICB2ODo6VHJ5Q2F0Y2ggdHJ5Q2F0Y2g7CiAKLSAgICB2ODo6U2Ny
aXB0T3JpZ2luIG9yaWdpbihkZXByZWNhdGVkVjhTdHJpbmcoc291cmNlVVJMKSwgZGVwcmVjYXRl
ZFY4SW50ZWdlcigwKSwgZGVwcmVjYXRlZFY4SW50ZWdlcigwKSk7CisgICAgdjg6OlNjcmlwdE9y
aWdpbiBvcmlnaW4odjhTdHJpbmcoc291cmNlVVJMLCBjb250ZXh0LT5HZXRJc29sYXRlKCkpLCB2
OEludGVnZXIoMCwgY29udGV4dC0+R2V0SXNvbGF0ZSgpKSwgdjhJbnRlZ2VyKDAsIGNvbnRleHQt
PkdldElzb2xhdGUoKSkpOwogICAgIHY4OjpIYW5kbGU8djg6OlNjcmlwdD4gc2NyaXB0ID0gdjg6
OlNjcmlwdDo6TmV3KGNvZGUsICZvcmlnaW4pOwogCiAgICAgaWYgKHRyeUNhdGNoLkhhc0NhdWdo
dCgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRGdW5j
dGlvbkNhbGwuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0RnVuY3Rpb25D
YWxsLmNwcAppbmRleCAxMTQ5MDhjMzAxZTQ0NDViYjE2NWIyZjA4NWM4MmJjMTg5MmJhNjgxLi42
ZmVmMTZlMDc4M2VkNDc4M2I4NWIxMzk4YWFlZDRlMWM0NmM5MWQ0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRGdW5jdGlvbkNhbGwuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdEZ1bmN0aW9uQ2FsbC5jcHAKQEAgLTYyLDEzICs2
MiwxMyBAQCB2b2lkIFNjcmlwdENhbGxBcmd1bWVudEhhbmRsZXI6OmFwcGVuZEFyZ3VtZW50KGNv
bnN0IFNjcmlwdFZhbHVlJiBhcmd1bWVudCkKIHZvaWQgU2NyaXB0Q2FsbEFyZ3VtZW50SGFuZGxl
cjo6YXBwZW5kQXJndW1lbnQoY29uc3QgU3RyaW5nJiBhcmd1bWVudCkKIHsKICAgICBTY3JpcHRT
Y29wZSBzY29wZShtX3NjcmlwdFN0YXRlKTsKLSAgICBtX2FyZ3VtZW50cy5hcHBlbmQoZGVwcmVj
YXRlZFY4U3RyaW5nKGFyZ3VtZW50KSk7CisgICAgbV9hcmd1bWVudHMuYXBwZW5kKHY4U3RyaW5n
KGFyZ3VtZW50LCBtX3NjcmlwdFN0YXRlLT5pc29sYXRlKCkpKTsKIH0KIAogdm9pZCBTY3JpcHRD
YWxsQXJndW1lbnRIYW5kbGVyOjphcHBlbmRBcmd1bWVudChjb25zdCBjaGFyKiBhcmd1bWVudCkK
IHsKICAgICBTY3JpcHRTY29wZSBzY29wZShtX3NjcmlwdFN0YXRlKTsKLSAgICBtX2FyZ3VtZW50
cy5hcHBlbmQoZGVwcmVjYXRlZFY4U3RyaW5nKGFyZ3VtZW50KSk7CisgICAgbV9hcmd1bWVudHMu
YXBwZW5kKHY4U3RyaW5nKGFyZ3VtZW50LCBtX3NjcmlwdFN0YXRlLT5pc29sYXRlKCkpKTsKIH0K
IAogdm9pZCBTY3JpcHRDYWxsQXJndW1lbnRIYW5kbGVyOjphcHBlbmRBcmd1bWVudChsb25nIGFy
Z3VtZW50KQpAQCAtMTE4LDcgKzExOCw3IEBAIFNjcmlwdFZhbHVlIFNjcmlwdEZ1bmN0aW9uQ2Fs
bDo6Y2FsbChib29sJiBoYWRFeGNlcHRpb24sIGJvb2wgcmVwb3J0RXhjZXB0aW9ucykKICAgICBT
Y3JpcHRTY29wZSBzY29wZShtX3NjcmlwdFN0YXRlLCByZXBvcnRFeGNlcHRpb25zKTsKIAogICAg
IHY4OjpMb2NhbDx2ODo6T2JqZWN0PiB0aGlzT2JqZWN0ID0gbV90aGlzT2JqZWN0LnY4T2JqZWN0
KCk7Ci0gICAgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUgPSB0aGlzT2JqZWN0LT5HZXQoZGVw
cmVjYXRlZFY4U3RyaW5nKG1fbmFtZSkpOworICAgIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVl
ID0gdGhpc09iamVjdC0+R2V0KHY4U3RyaW5nKG1fbmFtZSwgbV9zY3JpcHRTdGF0ZS0+aXNvbGF0
ZSgpKSk7CiAgICAgaWYgKCFzY29wZS5zdWNjZXNzKCkpIHsKICAgICAgICAgaGFkRXhjZXB0aW9u
ID0gdHJ1ZTsKICAgICAgICAgcmV0dXJuIFNjcmlwdFZhbHVlKCk7CkBAIC0xNTUsNyArMTU1LDcg
QEAgU2NyaXB0T2JqZWN0IFNjcmlwdEZ1bmN0aW9uQ2FsbDo6Y29uc3RydWN0KGJvb2wmIGhhZEV4
Y2VwdGlvbiwgYm9vbCByZXBvcnRFeGNlcHQKICAgICBTY3JpcHRTY29wZSBzY29wZShtX3Njcmlw
dFN0YXRlLCByZXBvcnRFeGNlcHRpb25zKTsKIAogICAgIHY4OjpMb2NhbDx2ODo6T2JqZWN0PiB0
aGlzT2JqZWN0ID0gbV90aGlzT2JqZWN0LnY4T2JqZWN0KCk7Ci0gICAgdjg6OkxvY2FsPHY4OjpW
YWx1ZT4gdmFsdWUgPSB0aGlzT2JqZWN0LT5HZXQoZGVwcmVjYXRlZFY4U3RyaW5nKG1fbmFtZSkp
OworICAgIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlID0gdGhpc09iamVjdC0+R2V0KHY4U3Ry
aW5nKG1fbmFtZSwgbV9zY3JpcHRTdGF0ZS0+aXNvbGF0ZSgpKSk7CiAgICAgaWYgKCFzY29wZS5z
dWNjZXNzKCkpIHsKICAgICAgICAgaGFkRXhjZXB0aW9uID0gdHJ1ZTsKICAgICAgICAgcmV0dXJu
IFNjcmlwdE9iamVjdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
U2NyaXB0UHJvZmlsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0UHJv
ZmlsZXIuY3BwCmluZGV4IDhkZjYzOTE1N2U3ODI5OWY3YzM5MmYyNjNhNTBhNWFkMWJjMjJiODku
LmUyYWUwNDE0YmU4ODQyNmZiM2Q4YjFmMzMzYjQzYTBjMzdiYjQ2NmUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdFByb2ZpbGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRQcm9maWxlci5jcHAKQEAgLTU5LDcgKzU5LDcgQEAg
dm9pZCBTY3JpcHRQcm9maWxlcjo6c3RhcnQoU2NyaXB0U3RhdGUqIHN0YXRlLCBjb25zdCBTdHJp
bmcmIHRpdGxlKQogICAgIHByb2ZpbGVOYW1lSWRsZVRpbWVNYXAtPmFkZCh0aXRsZSwgMCk7CiAK
ICAgICB2ODo6SGFuZGxlU2NvcGUgaHM7Ci0gICAgdjg6OkNwdVByb2ZpbGVyOjpTdGFydFByb2Zp
bGluZyhkZXByZWNhdGVkVjhTdHJpbmcodGl0bGUpKTsKKyAgICB2ODo6Q3B1UHJvZmlsZXI6OlN0
YXJ0UHJvZmlsaW5nKHY4U3RyaW5nKHRpdGxlLCBzdGF0ZS0+aXNvbGF0ZSgpKSk7CiB9CiAKIHZv
aWQgU2NyaXB0UHJvZmlsZXI6OnN0YXJ0Rm9yUGFnZShQYWdlKiwgY29uc3QgU3RyaW5nJiB0aXRs
ZSkKQEAgLTc4LDggKzc4LDggQEAgUGFzc1JlZlB0cjxTY3JpcHRQcm9maWxlPiBTY3JpcHRQcm9m
aWxlcjo6c3RvcChTY3JpcHRTdGF0ZSogc3RhdGUsIGNvbnN0IFN0cmluZyYKIHsKICAgICB2ODo6
SGFuZGxlU2NvcGUgaHM7CiAgICAgY29uc3Qgdjg6OkNwdVByb2ZpbGUqIHByb2ZpbGUgPSBzdGF0
ZSA/Ci0gICAgICAgIHY4OjpDcHVQcm9maWxlcjo6U3RvcFByb2ZpbGluZyhkZXByZWNhdGVkVjhT
dHJpbmcodGl0bGUpLCBzdGF0ZS0+Y29udGV4dCgpLT5HZXRTZWN1cml0eVRva2VuKCkpIDoKLSAg
ICAgICAgdjg6OkNwdVByb2ZpbGVyOjpTdG9wUHJvZmlsaW5nKGRlcHJlY2F0ZWRWOFN0cmluZyh0
aXRsZSkpOworICAgICAgICB2ODo6Q3B1UHJvZmlsZXI6OlN0b3BQcm9maWxpbmcodjhTdHJpbmco
dGl0bGUsIHN0YXRlLT5pc29sYXRlKCkpLCBzdGF0ZS0+Y29udGV4dCgpLT5HZXRTZWN1cml0eVRv
a2VuKCkpIDoKKyAgICAgICAgdjg6OkNwdVByb2ZpbGVyOjpTdG9wUHJvZmlsaW5nKHY4U3RyaW5n
KHRpdGxlLCBzdGF0ZS0+aXNvbGF0ZSgpKSk7CiAgICAgaWYgKCFwcm9maWxlKQogICAgICAgICBy
ZXR1cm4gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01X
aW5kb3dTaGVsbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdpbmRvd1No
ZWxsLmNwcAppbmRleCA2ZTE0YmUyNjAwYzY4OTk2ZjYwNmQ0NWYwYTliNDU2NzVlMGNmNzRmLi5j
ODEyNWQ2MGUxNjVjZWJmNWJlOGZhNGFkODk4NmIwMDllOWZiNzU1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdpbmRvd1NoZWxsLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdpbmRvd1NoZWxsLmNwcApAQCAtMjQ2LDcgKzI0Niw3
IEBAIGJvb2wgVjhET01XaW5kb3dTaGVsbDo6aW5pdGlhbGl6ZUlmTmVlZGVkKCkKICAgICAgICAg
aWYgKG1fZnJhbWUtPmRvY3VtZW50KCkpIHsKICAgICAgICAgICAgIENvbnRlbnRTZWN1cml0eVBv
bGljeSogY3NwID0gbV9mcmFtZS0+ZG9jdW1lbnQoKS0+Y29udGVudFNlY3VyaXR5UG9saWN5KCk7
CiAgICAgICAgICAgICBjb250ZXh0LT5BbGxvd0NvZGVHZW5lcmF0aW9uRnJvbVN0cmluZ3MoY3Nw
LT5hbGxvd0V2YWwoMCwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpTdXBwcmVzc1JlcG9ydCkpOwot
ICAgICAgICAgICAgY29udGV4dC0+U2V0RXJyb3JNZXNzYWdlRm9yQ29kZUdlbmVyYXRpb25Gcm9t
U3RyaW5ncyhkZXByZWNhdGVkVjhTdHJpbmcoY3NwLT5ldmFsRGlzYWJsZWRFcnJvck1lc3NhZ2Uo
KSkpOworICAgICAgICAgICAgY29udGV4dC0+U2V0RXJyb3JNZXNzYWdlRm9yQ29kZUdlbmVyYXRp
b25Gcm9tU3RyaW5ncyh2OFN0cmluZyhjc3AtPmV2YWxEaXNhYmxlZEVycm9yTWVzc2FnZSgpLCBt
X2lzb2xhdGUpKTsKICAgICAgICAgfQogICAgIH0gZWxzZSB7CiAgICAgICAgIC8vIFVzaW5nIHRo
ZSBkZWZhdWx0IHNlY3VyaXR5IHRva2VuIG1lYW5zIHRoYXQgdGhlIGNhbkFjY2VzcyBpcyBhbHdh
eXMKQEAgLTQ1Myw3ICs0NTMsNyBAQCB2b2lkIFY4RE9NV2luZG93U2hlbGw6Om5hbWVkSXRlbUFk
ZGVkKEhUTUxEb2N1bWVudCogZG9jdW1lbnQsIGNvbnN0IEF0b21pY1N0cmluZwogCiAgICAgQVNT
RVJUKCFtX2RvY3VtZW50LmlzRW1wdHkoKSk7CiAgICAgY2hlY2tEb2N1bWVudFdyYXBwZXIobV9k
b2N1bWVudC5nZXQoKSwgZG9jdW1lbnQpOwotICAgIG1fZG9jdW1lbnQtPlNldEFjY2Vzc29yKGRl
cHJlY2F0ZWRWOFN0cmluZyhuYW1lKSwgZ2V0dGVyKTsKKyAgICBtX2RvY3VtZW50LT5TZXRBY2Nl
c3Nvcih2OFN0cmluZyhuYW1lLCBtX2lzb2xhdGUpLCBnZXR0ZXIpOwogfQogCiB2b2lkIFY4RE9N
V2luZG93U2hlbGw6Om5hbWVkSXRlbVJlbW92ZWQoSFRNTERvY3VtZW50KiBkb2N1bWVudCwgY29u
c3QgQXRvbWljU3RyaW5nJiBuYW1lKQpAQCAtNDcxLDcgKzQ3MSw3IEBAIHZvaWQgVjhET01XaW5k
b3dTaGVsbDo6bmFtZWRJdGVtUmVtb3ZlZChIVE1MRG9jdW1lbnQqIGRvY3VtZW50LCBjb25zdCBB
dG9taWNTdHJpCiAKICAgICBBU1NFUlQoIW1fZG9jdW1lbnQuaXNFbXB0eSgpKTsKICAgICBjaGVj
a0RvY3VtZW50V3JhcHBlcihtX2RvY3VtZW50LmdldCgpLCBkb2N1bWVudCk7Ci0gICAgbV9kb2N1
bWVudC0+RGVsZXRlKGRlcHJlY2F0ZWRWOFN0cmluZyhuYW1lKSk7CisgICAgbV9kb2N1bWVudC0+
RGVsZXRlKHY4U3RyaW5nKG5hbWUsIG1faXNvbGF0ZSkpOwogfQogCiB2b2lkIFY4RE9NV2luZG93
U2hlbGw6OnVwZGF0ZVNlY3VyaXR5T3JpZ2luKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L1Y4TGF6eUV2ZW50TGlzdGVuZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvVjhMYXp5RXZlbnRMaXN0ZW5lci5jcHAKaW5kZXggNDcxYmEyOTE1Njk4YTM2OWNh
MTA1MjE2ZjU2MDNhY2I3Zjk4MGY2ZS4uMDRkYTRkZTU2Yzg0MzBmZmFjNDBiODgzZjg0ZGNhN2Q2
M2U3YjRhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhMYXp5RXZl
bnRMaXN0ZW5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhMYXp5RXZl
bnRMaXN0ZW5lci5jcHAKQEAgLTE1NSw3ICsxNTUsNyBAQCB2b2lkIFY4TGF6eUV2ZW50TGlzdGVu
ZXI6OnByZXBhcmVMaXN0ZW5lck9iamVjdChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0
KQogICAgICAgICAgICAgIn07IgogICAgICAgICAifX19fSkiOwogCi0gICAgdjg6OkhhbmRsZTx2
ODo6U3RyaW5nPiBjb2RlRXh0ZXJuYWxTdHJpbmcgPSBkZXByZWNhdGVkVjhTdHJpbmcoY29kZSk7
CisgICAgdjg6OkhhbmRsZTx2ODo6U3RyaW5nPiBjb2RlRXh0ZXJuYWxTdHJpbmcgPSB2OFN0cmlu
Zyhjb2RlLCB2OENvbnRleHQtPkdldElzb2xhdGUoKSk7CiAKICAgICB2ODo6SGFuZGxlPHY4OjpT
Y3JpcHQ+IHNjcmlwdCA9IFNjcmlwdFNvdXJjZUNvZGU6OmNvbXBpbGVTY3JpcHQoY29kZUV4dGVy
bmFsU3RyaW5nLCBtX3NvdXJjZVVSTCwgbV9wb3NpdGlvbik7CiAgICAgaWYgKHNjcmlwdC5Jc0Vt
cHR5KCkpCkBAIC0xODUsMTEgKzE4NSwxMSBAQCB2b2lkIFY4TGF6eUV2ZW50TGlzdGVuZXI6OnBy
ZXBhcmVMaXN0ZW5lck9iamVjdChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQogICAg
IHY4OjpMb2NhbDx2ODo6T2JqZWN0PiB0aGlzT2JqZWN0ID0gdjg6Ok9iamVjdDo6TmV3KCk7CiAg
ICAgaWYgKHRoaXNPYmplY3QuSXNFbXB0eSgpKQogICAgICAgICByZXR1cm47Ci0gICAgaWYgKCF0
aGlzT2JqZWN0LT5Gb3JjZVNldChkZXByZWNhdGVkVjhJbnRlZ2VyKDApLCBub2RlV3JhcHBlcikp
CisgICAgaWYgKCF0aGlzT2JqZWN0LT5Gb3JjZVNldCh2OEludGVnZXIoMCwgdjhDb250ZXh0LT5H
ZXRJc29sYXRlKCkpLCBub2RlV3JhcHBlcikpCiAgICAgICAgIHJldHVybjsKLSAgICBpZiAoIXRo
aXNPYmplY3QtPkZvcmNlU2V0KGRlcHJlY2F0ZWRWOEludGVnZXIoMSksIGZvcm1XcmFwcGVyKSkK
KyAgICBpZiAoIXRoaXNPYmplY3QtPkZvcmNlU2V0KHY4SW50ZWdlcigxLCB2OENvbnRleHQtPkdl
dElzb2xhdGUoKSksIGZvcm1XcmFwcGVyKSkKICAgICAgICAgcmV0dXJuOwotICAgIGlmICghdGhp
c09iamVjdC0+Rm9yY2VTZXQoZGVwcmVjYXRlZFY4SW50ZWdlcigyKSwgZG9jdW1lbnRXcmFwcGVy
KSkKKyAgICBpZiAoIXRoaXNPYmplY3QtPkZvcmNlU2V0KHY4SW50ZWdlcigyLCB2OENvbnRleHQt
PkdldElzb2xhdGUoKSksIGRvY3VtZW50V3JhcHBlcikpCiAgICAgICAgIHJldHVybjsKIAogICAg
IC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBjb2RlIHdoZW4gd2Ugc3RvcCBkb2luZyB0aGUgJ3dpdGgn
IGhhY2sgYWJvdmUuCkBAIC0yMjAsMTEgKzIyMCwxMSBAQCB2b2lkIFY4TGF6eUV2ZW50TGlzdGVu
ZXI6OnByZXBhcmVMaXN0ZW5lck9iamVjdChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0
KQogICAgICAgICB0b1N0cmluZ0Z1bmN0aW9uID0gdG9TdHJpbmdUZW1wbGF0ZS0+R2V0RnVuY3Rp
b24oKTsKICAgICBpZiAoIXRvU3RyaW5nRnVuY3Rpb24uSXNFbXB0eSgpKSB7CiAgICAgICAgIFN0
cmluZyB0b1N0cmluZ1N0cmluZyA9ICJmdW5jdGlvbiAiICsgbV9mdW5jdGlvbk5hbWUgKyAiKCIg
KyBtX2V2ZW50UGFyYW1ldGVyTmFtZSArICIpIHtcbiAgIiArIG1fY29kZSArICJcbn0iOwotICAg
ICAgICB3cmFwcGVkRnVuY3Rpb24tPlNldEhpZGRlblZhbHVlKFY4SGlkZGVuUHJvcGVydHlOYW1l
Ojp0b1N0cmluZ1N0cmluZygpLCBkZXByZWNhdGVkVjhTdHJpbmcodG9TdHJpbmdTdHJpbmcpKTsK
KyAgICAgICAgd3JhcHBlZEZ1bmN0aW9uLT5TZXRIaWRkZW5WYWx1ZShWOEhpZGRlblByb3BlcnR5
TmFtZTo6dG9TdHJpbmdTdHJpbmcoKSwgdjhTdHJpbmcodG9TdHJpbmdTdHJpbmcsIHY4Q29udGV4
dC0+R2V0SXNvbGF0ZSgpKSk7CiAgICAgICAgIHdyYXBwZWRGdW5jdGlvbi0+U2V0KHY4OjpTdHJp
bmc6Ok5ld1N5bWJvbCgidG9TdHJpbmciKSwgdG9TdHJpbmdGdW5jdGlvbik7CiAgICAgfQogCi0g
ICAgd3JhcHBlZEZ1bmN0aW9uLT5TZXROYW1lKGRlcHJlY2F0ZWRWOFN0cmluZyhtX2Z1bmN0aW9u
TmFtZSkpOworICAgIHdyYXBwZWRGdW5jdGlvbi0+U2V0TmFtZSh2OFN0cmluZyhtX2Z1bmN0aW9u
TmFtZSwgdjhDb250ZXh0LT5HZXRJc29sYXRlKCkpKTsKIAogICAgIC8vIEZJWE1FOiBSZW1vdmUg
dGhlIGZvbGxvd2luZyBjb21tZW50LW91dHMuCiAgICAgLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTE1MiBmb3IgbW9yZSBkZXRhaWxzLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhNdXRhdGlvbkNhbGxiYWNrLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4TXV0YXRpb25DYWxsYmFjay5jcHAKaW5kZXggOWRl
MjExNjhlYjAyOTc4NDIyOGU2YmFhYzYzNTVkYmM0MmVjMjc1Ni4uN2VkMzk2MWNhYjEzNThjMzEw
YTM0OWJkOTUxZWMyYWE2ZmFlNWQ0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvVjhNdXRhdGlvbkNhbGxiYWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9WOE11dGF0aW9uQ2FsbGJhY2suY3BwCkBAIC02Myw3ICs2Myw3IEBAIGJvb2wgVjhNdXRh
dGlvbkNhbGxiYWNrOjpoYW5kbGVFdmVudChNdXRhdGlvblJlY29yZEFycmF5KiBtdXRhdGlvbnMs
IE11dGF0aW9uT2JzCiAKICAgICB2ODo6TG9jYWw8djg6OkFycmF5PiBtdXRhdGlvbnNBcnJheSA9
IHY4OjpBcnJheTo6TmV3KG11dGF0aW9ucy0+c2l6ZSgpKTsKICAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IG11dGF0aW9ucy0+c2l6ZSgpOyArK2kpCi0gICAgICAgIG11dGF0aW9uc0FycmF5LT5T
ZXQoZGVwcmVjYXRlZFY4SW50ZWdlcihpKSwgdG9WOChtdXRhdGlvbnMtPmF0KGkpLmdldCgpLCB2
ODo6SGFuZGxlPHY4OjpPYmplY3Q+KCksIHY4Q29udGV4dC0+R2V0SXNvbGF0ZSgpKSk7CisgICAg
ICAgIG11dGF0aW9uc0FycmF5LT5TZXQodjhJbnRlZ2VyKGksIHY4Q29udGV4dC0+R2V0SXNvbGF0
ZSgpKSwgdG9WOChtdXRhdGlvbnMtPmF0KGkpLmdldCgpLCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+
KCksIHY4Q29udGV4dC0+R2V0SXNvbGF0ZSgpKSk7CiAKICAgICB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gb2JzZXJ2ZXJIYW5kbGUgPSB0b1Y4KG9ic2VydmVyLCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+
KCksIHY4Q29udGV4dC0+R2V0SXNvbGF0ZSgpKTsKICAgICBpZiAob2JzZXJ2ZXJIYW5kbGUuSXNF
bXB0eSgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJT
Y3JpcHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlclNj
cmlwdENvbnRyb2xsZXIuY3BwCmluZGV4IGYwNDk2OGQyOWRmYmU5YzVlOGQ4ZDQ1NzAwYWNkYWE1
MTAxMDRkYmEuLjAzZmQ2YmEyODRlZjFhYmQxZWRkYmM4NjY2Y2JjM2YwYmZhNWE3MzcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlclNjcmlwdENvbnRyb2xsZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlclNjcmlwdENvbnRyb2xs
ZXIuY3BwCkBAIC0xNDcsNyArMTQ3LDcgQEAgU2NyaXB0VmFsdWUgV29ya2VyU2NyaXB0Q29udHJv
bGxlcjo6ZXZhbHVhdGUoY29uc3QgU3RyaW5nJiBzY3JpcHQsIGNvbnN0IFN0cmluZyYKIAogICAg
IGlmICghbV9kaXNhYmxlRXZhbFBlbmRpbmcuaXNFbXB0eSgpKSB7CiAgICAgICAgIG1fY29udGV4
dC0+QWxsb3dDb2RlR2VuZXJhdGlvbkZyb21TdHJpbmdzKGZhbHNlKTsKLSAgICAgICAgbV9jb250
ZXh0LT5TZXRFcnJvck1lc3NhZ2VGb3JDb2RlR2VuZXJhdGlvbkZyb21TdHJpbmdzKGRlcHJlY2F0
ZWRWOFN0cmluZyhtX2Rpc2FibGVFdmFsUGVuZGluZykpOworICAgICAgICBtX2NvbnRleHQtPlNl
dEVycm9yTWVzc2FnZUZvckNvZGVHZW5lcmF0aW9uRnJvbVN0cmluZ3ModjhTdHJpbmcobV9kaXNh
YmxlRXZhbFBlbmRpbmcsIG1fY29udGV4dC0+R2V0SXNvbGF0ZSgpKSk7CiAgICAgICAgIG1fZGlz
YWJsZUV2YWxQZW5kaW5nID0gU3RyaW5nKCk7CiAgICAgfQogCkBAIC0xNTUsNyArMTU1LDcgQEAg
U2NyaXB0VmFsdWUgV29ya2VyU2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGUoY29uc3QgU3RyaW5n
JiBzY3JpcHQsIGNvbnN0IFN0cmluZyYKIAogICAgIHY4OjpUcnlDYXRjaCBibG9jazsKIAotICAg
IHY4OjpIYW5kbGU8djg6OlN0cmluZz4gc2NyaXB0U3RyaW5nID0gZGVwcmVjYXRlZFY4U3RyaW5n
KHNjcmlwdCk7CisgICAgdjg6OkhhbmRsZTx2ODo6U3RyaW5nPiBzY3JpcHRTdHJpbmcgPSB2OFN0
cmluZyhzY3JpcHQsIG1fY29udGV4dC0+R2V0SXNvbGF0ZSgpKTsKICAgICB2ODo6SGFuZGxlPHY4
OjpTY3JpcHQ+IGNvbXBpbGVkU2NyaXB0ID0gU2NyaXB0U291cmNlQ29kZTo6Y29tcGlsZVNjcmlw
dChzY3JpcHRTdHJpbmcsIGZpbGVOYW1lLCBzY3JpcHRTdGFydFBvc2l0aW9uKTsKICAgICB2ODo6
TG9jYWw8djg6OlZhbHVlPiByZXN1bHQgPSBTY3JpcHRSdW5uZXI6OnJ1bkNvbXBpbGVkU2NyaXB0
KGNvbXBpbGVkU2NyaXB0LCBtX3dvcmtlckNvbnRleHQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJTY3JpcHREZWJ1Z1NlcnZlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJTY3JpcHREZWJ1Z1NlcnZlci5jcHAKaW5kZXggYzUz
OThiNjVjNjY0YTYyODAzMDlkYTI0YjMwNDJhOTYyOGUxMjliMS4uMTc0ODE4MjExYjYxNWJkNzBi
YWNkMjE4OWI2ZDA0YmE0MmQ4MDc1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L1dvcmtlclNjcmlwdERlYnVnU2VydmVyLmNwcApAQCAtNzQsNyArNzQsNyBAQCB2
b2lkIFdvcmtlclNjcmlwdERlYnVnU2VydmVyOjphZGRMaXN0ZW5lcihTY3JpcHREZWJ1Z0xpc3Rl
bmVyKiBsaXN0ZW5lcikKICAgICBBU1NFUlQoIXZhbHVlLT5Jc1VuZGVmaW5lZCgpICYmIHZhbHVl
LT5Jc0FycmF5KCkpOwogICAgIHY4OjpIYW5kbGU8djg6OkFycmF5PiBzY3JpcHRzQXJyYXkgPSB2
ODo6SGFuZGxlPHY4OjpBcnJheT46OkNhc3QodmFsdWUpOwogICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCBzY3JpcHRzQXJyYXktPkxlbmd0aCgpOyArK2kpCi0gICAgICAgIGRpc3BhdGNoRGlk
UGFyc2VTb3VyY2UobGlzdGVuZXIsIHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3Qoc2NyaXB0
c0FycmF5LT5HZXQoZGVwcmVjYXRlZFY4SW50ZWdlcihpKSkpKTsKKyAgICAgICAgZGlzcGF0Y2hE
aWRQYXJzZVNvdXJjZShsaXN0ZW5lciwgdjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChzY3Jp
cHRzQXJyYXktPkdldCh2OEludGVnZXIoaSwgZGVidWdnZXJDb250ZXh0LT5HZXRJc29sYXRlKCkp
KSkpOwogfQogCiB2b2lkIFdvcmtlclNjcmlwdERlYnVnU2VydmVyOjpyZW1vdmVMaXN0ZW5lcihT
Y3JpcHREZWJ1Z0xpc3RlbmVyKiBsaXN0ZW5lcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEluamVjdGVkU2NyaXB0TWFuYWdlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJbmplY3RlZFNjcmlwdE1hbmFnZXIuY3BwCmlu
ZGV4IDcyMDhkYzg4ZGRlZmE4MWVkZmYwODJiNzdkOTM2ZWI0YTdjNmE5ZjYuLjdiOWZlM2M2YjE0
MzdhNjgyZmQ2MWI1MGQwZmUxODM0OTIyMDVmM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEluamVjdGVkU2NyaXB0TWFuYWdlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmNw
cApAQCAtOTYsNyArOTYsNyBAQCBTY3JpcHRPYmplY3QgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOjpj
cmVhdGVJbmplY3RlZFNjcmlwdChjb25zdCBTdHJpbmcmIHNjcmlwdFNvdQogICAgIC8vIGluc3Bl
Y3RvcidzIHN0dWZmKSB0aGUgZnVuY3Rpb24gaXMgY2FsbGVkIGEgZmV3IGxpbmVzIGJlbG93IHdp
dGggSW5qZWN0ZWRTY3JpcHRIb3N0IHdyYXBwZXIsCiAgICAgLy8gaW5qZWN0ZWQgc2NyaXB0IGlk
IGFuZCBleHBsaWNpdCByZWZlcmVuY2UgdG8gdGhlIGluc3BlY3RlZCBnbG9iYWwgb2JqZWN0LiBU
aGUgZnVuY3Rpb24gaXMgZXhwZWN0ZWQKICAgICAvLyB0byBjcmVhdGUgYW5kIGNvbmZpZ3VyZSBJ
bmplY3RlZFNjcmlwdCBpbnN0YW5jZSB0aGF0IGlzIGdvaW5nIHRvIGJlIHVzZWQgYnkgdGhlIGlu
c3BlY3Rvci4KLSAgICB2ODo6TG9jYWw8djg6OlNjcmlwdD4gc2NyaXB0ID0gdjg6OlNjcmlwdDo6
Q29tcGlsZShkZXByZWNhdGVkVjhTdHJpbmcoc2NyaXB0U291cmNlKSk7CisgICAgdjg6OkxvY2Fs
PHY4OjpTY3JpcHQ+IHNjcmlwdCA9IHY4OjpTY3JpcHQ6OkNvbXBpbGUodjhTdHJpbmcoc2NyaXB0
U291cmNlLCBpbnNwZWN0ZWRDb250ZXh0LT5HZXRJc29sYXRlKCkpKTsKICAgICBWOFJlY3Vyc2lv
blNjb3BlOjpNaWNyb3Rhc2tTdXBwcmVzc2lvbiByZWN1cnNpb25TY29wZTsKICAgICB2ODo6TG9j
YWw8djg6OlZhbHVlPiB2ID0gc2NyaXB0LT5SdW4oKTsKICAgICBBU1NFUlQoIXYuSXNFbXB0eSgp
KTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185469</attachid>
            <date>2013-01-30 05:04:59 -0800</date>
            <delta_ts>2013-01-30 20:33:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107674-20130130220144.patch</filename>
            <type>text/plain</type>
            <size>2046</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxMjQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTk1ZDNkZjU4NjE1NDgx
MzBiMDQzMjYzN2YwYmEwYTNiYzAzZDRjNi4uODZiZjRmOWMyMjNkZmViNTJiNjIxNWRmYThkNjk4
NGYxYjlmMzQ3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEzLTAxLTMwICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBbVjhdIFVzZSBzdGF0
ZS0+aXNvbGF0ZSgpIHdoZW4gc3RhdGUgaXMgbm90IDAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNzY3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIHRlc3RzLiBObyBjaGFuZ2UgaW4gYmVoYXZpb3Iu
CisKKyAgICAgICAgKiBiaW5kaW5ncy92OC9TY3JpcHRQcm9maWxlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JpcHRQcm9maWxlcjo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0
UHJvZmlsZXI6OnN0b3ApOgorCiAyMDEzLTAxLTMwICBUaWVuLVJlbiBDaGVuICA8dHJjaGVuQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMTM5MjgyKTogQ2FyZXQgcmVwYWlu
dGluZyBpcyBicm9rZW4gZm9yIHRleHQtYWxpZ246IGNlbnRlcidkIDxpbnB1dD4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdFByb2ZpbGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdFByb2ZpbGVyLmNwcAppbmRleCBmZTIxOWQwYjIx
YTQ5YTMwNzJjZWQ2NGVjMTdmYjM0ZTA0Nzc0OWI4Li5mMTkwYmZmMzgxY2JhM2ViYjhkN2I3ZTc0
YjU2YmZhNTliYWQ5NzNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9T
Y3JpcHRQcm9maWxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0
UHJvZmlsZXIuY3BwCkBAIC01OSw3ICs1OSw3IEBAIHZvaWQgU2NyaXB0UHJvZmlsZXI6OnN0YXJ0
KFNjcmlwdFN0YXRlKiBzdGF0ZSwgY29uc3QgU3RyaW5nJiB0aXRsZSkKICAgICBwcm9maWxlTmFt
ZUlkbGVUaW1lTWFwLT5hZGQodGl0bGUsIDApOwogCiAgICAgdjg6OkhhbmRsZVNjb3BlIGhzOwot
ICAgIHY4OjpDcHVQcm9maWxlcjo6U3RhcnRQcm9maWxpbmcodjhTdHJpbmcodGl0bGUsIHY4OjpJ
c29sYXRlOjpHZXRDdXJyZW50KCkpKTsKKyAgICB2ODo6Q3B1UHJvZmlsZXI6OlN0YXJ0UHJvZmls
aW5nKHY4U3RyaW5nKHRpdGxlLCBzdGF0ZSA/IHN0YXRlLT5pc29sYXRlKCkgOiB2ODo6SXNvbGF0
ZTo6R2V0Q3VycmVudCgpKSk7CiB9CiAKIHZvaWQgU2NyaXB0UHJvZmlsZXI6OnN0YXJ0Rm9yUGFn
ZShQYWdlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSkKQEAgLTc4LDcgKzc4LDcgQEAgUGFzc1JlZlB0
cjxTY3JpcHRQcm9maWxlPiBTY3JpcHRQcm9maWxlcjo6c3RvcChTY3JpcHRTdGF0ZSogc3RhdGUs
IGNvbnN0IFN0cmluZyYKIHsKICAgICB2ODo6SGFuZGxlU2NvcGUgaHM7CiAgICAgY29uc3Qgdjg6
OkNwdVByb2ZpbGUqIHByb2ZpbGUgPSBzdGF0ZSA/Ci0gICAgICAgIHY4OjpDcHVQcm9maWxlcjo6
U3RvcFByb2ZpbGluZyh2OFN0cmluZyh0aXRsZSwgdjg6Oklzb2xhdGU6OkdldEN1cnJlbnQoKSks
IHN0YXRlLT5jb250ZXh0KCktPkdldFNlY3VyaXR5VG9rZW4oKSkgOgorICAgICAgICB2ODo6Q3B1
UHJvZmlsZXI6OlN0b3BQcm9maWxpbmcodjhTdHJpbmcodGl0bGUsIHN0YXRlLT5pc29sYXRlKCkp
LCBzdGF0ZS0+Y29udGV4dCgpLT5HZXRTZWN1cml0eVRva2VuKCkpIDoKICAgICAgICAgdjg6OkNw
dVByb2ZpbGVyOjpTdG9wUHJvZmlsaW5nKHY4U3RyaW5nKHRpdGxlLCB2ODo6SXNvbGF0ZTo6R2V0
Q3VycmVudCgpKSk7CiAgICAgaWYgKCFwcm9maWxlKQogICAgICAgICByZXR1cm4gMDsK
</data>

          </attachment>
      

    </bug>

</bugzilla>