<?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>88220</bug_id>
          
          <creation_ts>2012-06-04 02:12:34 -0700</creation_ts>
          <short_desc>[Forms] Change function and variable names independent from &quot;double&quot; type</short_desc>
          <delta_ts>2012-06-04 07:57:41 -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>Forms</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>
          
          <blocked>80009</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter>yosin</reporter>
          <assigned_to>yosin</assigned_to>
          <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>640424</commentid>
    <comment_count>0</comment_count>
    <who name="">yosin</who>
    <bug_when>2012-06-04 02:12:34 -0700</bug_when>
    <thetext>To introduce Decimal type into input types with small amount of changes, we would like to change function and variables name independent from &quot;double&quot; for preparation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640437</commentid>
    <comment_count>1</comment_count>
      <attachid>145549</attachid>
    <who name="">yosin</who>
    <bug_when>2012-06-04 02:56:46 -0700</bug_when>
    <thetext>Created attachment 145549
Patch 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640450</commentid>
    <comment_count>2</comment_count>
      <attachid>145554</attachid>
    <who name="">yosin</who>
    <bug_when>2012-06-04 03:34:06 -0700</bug_when>
    <thetext>Created attachment 145554
Patch 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640500</commentid>
    <comment_count>3</comment_count>
      <attachid>145554</attachid>
    <who name="">yosin</who>
    <bug_when>2012-06-04 05:25:16 -0700</bug_when>
    <thetext>Comment on attachment 145554
Patch 2

Could you review this patch?
Thanks in advance.

* local build with all INPUT_TYPE enabled</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640524</commentid>
    <comment_count>4</comment_count>
      <attachid>145554</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-06-04 06:04:26 -0700</bug_when>
    <thetext>Comment on attachment 145554
Patch 2

ok</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640585</commentid>
    <comment_count>5</comment_count>
      <attachid>145554</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-04 07:57:35 -0700</bug_when>
    <thetext>Comment on attachment 145554
Patch 2

Clearing flags on attachment: 145554

Committed r119395: &lt;http://trac.webkit.org/changeset/119395&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640586</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-04 07:57:41 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>145549</attachid>
            <date>2012-06-04 02:56:46 -0700</date>
            <delta_ts>2012-06-04 03:33:59 -0700</delta_ts>
            <desc>Patch 1</desc>
            <filename>bug-88220-20120604185645.patch</filename>
            <type>text/plain</type>
            <size>33316</size>
            <attacher>yosin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5Mzc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDYyZTMwZWUyMDE5ZDQ2
NWRlZTM1MjBhOTFmYTBmYWY5YjY1NmEyMi4uZDAzYWMxY2UzNzA4NWY1MmJlZGUzOTBhNGUzOTA0
N2RmMDU4NzY4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1IEBACisyMDEyLTA2LTA0ICBZb3No
aWZ1bWkgSW5vdWUgIDx5b3NpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0Zvcm1zXSBDaGFu
Z2UgZnVuY3Rpb24gYW5kIHZhcmlhYmxlIG5hbWVzIGluZGVwZW5kZW50IGZyb20gImRvdWJsZSIg
dHlwZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODgy
MjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlz
IHBhdGNoIGlzIGEgcGFydCBvZiBpbnRyb2R1Y2luZyBkZWNpbWFsIGFyaXRobWV0aWMgdG8gaW5w
dXQgdHlwZS4KKworICAgICAgICBUaGlzIHBhdGNoIHJlbmFtZXMgZnVuY3Rpb24gYW5kIHZhcmlh
YmxlIG5hbWVzIHdoaWNoIGNvbnRhaW4gdGVybSAiZG91YmxlIgorICAgICAgICB0byAibnVtYmVy
IiB0byBzZXBhcmF0ZSBjb25jZXB0IGFuZCBpbXBsZW1lbnRhdGlvbi4KKworICAgICAgICBObyBu
ZXcgdGVzdHMuIFRoaXMgcGF0Y2ggZG9lc24ndCBjaGFuZ2UgYmVoYXZpb3IuCisKKyAgICAgICAg
KiBodG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpC
YXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnZhbHVlQXNEYXRlKTogUmVwbGFjZSBwYXJzZVRvRG91
YmxlIHRvIHBhcnNlVG9OdW1iZXIuCisgICAgICAgIChXZWJDb3JlOjpCYXNlRGF0ZUFuZFRpbWVJ
bnB1dFR5cGU6OnZhbHVlQXNOdW1iZXIpOiBkaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkJhc2VE
YXRlQW5kVGltZUlucHV0VHlwZTo6cGFyc2VUb051bWJlcik6IGRpdHRvLgorICAgICAgICAqIGh0
bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmg6CisgICAgICAgIChCYXNlRGF0ZUFuZFRpbWVJ
bnB1dFR5cGUpOgorICAgICAgICAqIGh0bWwvRGF0ZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpEYXRlSW5wdXRUeXBlOjpjcmVhdGVTdGVwUmFuZ2UpOiBSZXBsYWNlIHBhcnNlVG9E
b3VibGUgdG8gcGFyc2VUb051bWJlci4KKyAgICAgICAgKiBodG1sL0RhdGVUaW1lSW5wdXRUeXBl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lSW5wdXRUeXBlOjpjcmVhdGVTdGVwUmFu
Z2UpOiBSZXBsYWNlIHBhcnNlVG9Eb3VibGUgdG8gcGFyc2VUb051bWJlci4KKyAgICAgICAgKiBo
dG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRp
bWVMb2NhbElucHV0VHlwZTo6Y3JlYXRlU3RlcFJhbmdlKTogUmVwbGFjZSBwYXJzZVRvRG91Ymxl
IHRvIHBhcnNlVG9OdW1iZXIuCisgICAgICAgICogaHRtbC9JbnB1dFR5cGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SW5wdXRUeXBlOjpyYW5nZVVuZGVyZmxvdyk6IFJlcGxhY2UgcGFyc2VUb0Rv
dWJsZSB0byBwYXJzZVRvTnVtYmVyIGFuZCBkb3VibGVWYWx1ZSB0byBudW1lcmljVmFsdWUuCisg
ICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGU6OnJhbmdlT3ZlcmZsb3cpOiBkaXR0by4KKyAgICAg
ICAgKFdlYkNvcmU6OklucHV0VHlwZTo6aXNJblJhbmdlKTogZGl0dG8uCisgICAgICAgIChXZWJD
b3JlOjpJbnB1dFR5cGU6OmlzT3V0T2ZSYW5nZSk6IGRpdHRvLgorICAgICAgICAoV2ViQ29yZTo6
SW5wdXRUeXBlOjpzdGVwTWlzbWF0Y2gpOiBkaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OklucHV0
VHlwZTo6dmFsaWRhdGlvbk1lc3NhZ2UpOiBkaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OklucHV0
VHlwZTo6cGFyc2VUb051bWJlcik6IGRpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBl
OjpwYXJzZVRvRG91YmxlV2l0aERlY2ltYWxQbGFjZXMpOiBkaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OklucHV0VHlwZTo6c3RlcFVwRnJvbVJlbmRlcmVyKTogZHR0aW8uCisgICAgICAgICogaHRt
bC9JbnB1dFR5cGUuaDoKKyAgICAgICAgKElucHV0VHlwZSk6CisgICAgICAgICogaHRtbC9Nb250
aElucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb250aElucHV0VHlwZTo6Y3JlYXRl
U3RlcFJhbmdlKTogUmVwbGFjZSBwYXJzZVRvRG91YmxlIHRvIHBhcnNlVG9OdW1iZXIuCisgICAg
ICAgIChXZWJDb3JlOjpNb250aElucHV0VHlwZTo6cGFyc2VUb051bWJlcik6IGRpdHRvLgorICAg
ICAgICAqIGh0bWwvTnVtYmVySW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok51bWJl
cklucHV0VHlwZTo6dmFsdWVBc051bWJlcik6IFJlcGxhY2UgcGFyc2VUb0RvdWJsZSB0byBwYXJz
ZVRvTnVtYmVyLgorICAgICAgICAoV2ViQ29yZTo6TnVtYmVySW5wdXRUeXBlOjpjcmVhdGVTdGVw
UmFuZ2UpOiBkaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Ok51bWJlcklucHV0VHlwZTo6cGFyc2VU
b051bWJlcik6IGRpdHRvLgorICAgICAgICAqIGh0bWwvTnVtYmVySW5wdXRUeXBlLmg6CisgICAg
ICAgICogaHRtbC9SYW5nZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjplbnN1cmVN
YXhpbXVtKTogQWRkZWQgaGVscGVyIGZ1bmN0aW9uIGZvciBjcmVhdGVTdGVwUmFuZ2UgZm9yIGF2
b2lkaW5nIGNhc3QgaW4gbWF4KCkgYW5kIHVzaW5nICJjb25zdCIuCisgICAgICAgIChXZWJDb3Jl
OjpSYW5nZUlucHV0VHlwZTo6dmFsdWVBc051bWJlcik6IFJlcGxhY2UgcGFyc2VUb0RvdWJsZSB0
byBwYXJzZVRvTnVtYmVyLgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2VJbnB1dFR5cGU6OmNyZWF0
ZVN0ZXBSYW5nZSk6IGRpdHRvLgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2VJbnB1dFR5cGU6Omhh
bmRsZUtleWRvd25FdmVudCk6IGRpdHRvLgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2VJbnB1dFR5
cGU6OnBhcnNlVG9OdW1iZXIpOiBkaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlSW5wdXRU
eXBlOjpzYW5pdGl6ZVZhbHVlKTogZGl0dG8uCisgICAgICAgICogaHRtbC9SYW5nZUlucHV0VHlw
ZS5oOgorICAgICAgICAoUmFuZ2VJbnB1dFR5cGUpOgorICAgICAgICAqIGh0bWwvU3RlcFJhbmdl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0ZXBSYW5nZTo6c3RlcE1pc21hdGNoKTogUmVwbGFj
ZSBwYXJzZVRvRG91YmxlIHRvIHBhcnNlVG9OdW1iZXIuCisgICAgICAgICogaHRtbC9UaW1lSW5w
dXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVJbnB1dFR5cGU6OmNyZWF0ZVN0ZXBS
YW5nZSk6IFJlcGxhY2UgcGFyc2VUb0RvdWJsZSB0byBwYXJzZVRvTnVtYmVyLgorICAgICAgICAq
IGh0bWwvV2Vla0lucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWVrSW5wdXRUeXBl
OjpjcmVhdGVTdGVwUmFuZ2UpOiBSZXBsYWNlIHBhcnNlVG9Eb3VibGUgdG8gcGFyc2VUb051bWJl
ci4KKwogMjAxMi0wNi0wNCAgS2VudGFybyBIYXJhICA8aGFyYWtlbkBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgVXNlIFNlbGVjdG9yUXVlcnkgaW4gRWxlbWVudDo6d2Via2l0TWF0Y2hlc1NlbGVj
dG9yKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZURhdGVBbmRUaW1lSW5w
dXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBl
LmNwcAppbmRleCA0YzczMDkxOTEzZDgyZGU1OTVkYmNjNWQyMjNlYjBkOTFiY2U5NGQ1Li44MWM5
YjVmMDY0OTBhMDIyMGY4NGY2ZGJkNjlmZWFlMmU5MzkzNjNhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwCkBAIC01Miw3ICs1Miw3IEBA
IHN0YXRpYyBjb25zdCBkb3VibGUgbXNlY1BlclNlY29uZCA9IDEwMDA7CiAKIGRvdWJsZSBCYXNl
RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnZhbHVlQXNEYXRlKCkgY29uc3QKIHsKLSAgICByZXR1cm4g
cGFyc2VUb0RvdWJsZShlbGVtZW50KCktPnZhbHVlKCksIERhdGVDb21wb25lbnRzOjppbnZhbGlk
TWlsbGlzZWNvbmRzKCkpOworICAgIHJldHVybiBwYXJzZVRvTnVtYmVyKGVsZW1lbnQoKS0+dmFs
dWUoKSwgRGF0ZUNvbXBvbmVudHM6OmludmFsaWRNaWxsaXNlY29uZHMoKSk7CiB9CiAKIHZvaWQg
QmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlOjpzZXRWYWx1ZUFzRGF0ZShkb3VibGUgdmFsdWUsIEV4
Y2VwdGlvbkNvZGUmKSBjb25zdApAQCAtNjIsNyArNjIsNyBAQCB2b2lkIEJhc2VEYXRlQW5kVGlt
ZUlucHV0VHlwZTo6c2V0VmFsdWVBc0RhdGUoZG91YmxlIHZhbHVlLCBFeGNlcHRpb25Db2RlJikg
Y29ucwogCiBkb3VibGUgQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlOjp2YWx1ZUFzTnVtYmVyKCkg
Y29uc3QKIHsKLSAgICByZXR1cm4gcGFyc2VUb0RvdWJsZShlbGVtZW50KCktPnZhbHVlKCksIG51
bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpKTsKKyAgICByZXR1cm4gcGFyc2VUb051
bWJlcihlbGVtZW50KCktPnZhbHVlKCksIG51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05h
TigpKTsKIH0KIAogdm9pZCBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnNldFZhbHVlQXNOdW1i
ZXIoZG91YmxlIG5ld1ZhbHVlLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yIGV2ZW50QmVoYXZpb3Is
IEV4Y2VwdGlvbkNvZGUmKSBjb25zdApAQCAtMTA4LDcgKzEwOCw3IEBAIHZvaWQgQmFzZURhdGVB
bmRUaW1lSW5wdXRUeXBlOjpoYW5kbGVXaGVlbEV2ZW50KFdoZWVsRXZlbnQqIGV2ZW50KQogICAg
ICAgICBoYW5kbGVXaGVlbEV2ZW50Rm9yU3BpbkJ1dHRvbihldmVudCk7CiB9CiAKLWRvdWJsZSBC
YXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnBhcnNlVG9Eb3VibGUoY29uc3QgU3RyaW5nJiBzcmMs
IGRvdWJsZSBkZWZhdWx0VmFsdWUpIGNvbnN0Citkb3VibGUgQmFzZURhdGVBbmRUaW1lSW5wdXRU
eXBlOjpwYXJzZVRvTnVtYmVyKGNvbnN0IFN0cmluZyYgc3JjLCBkb3VibGUgZGVmYXVsdFZhbHVl
KSBjb25zdAogewogICAgIERhdGVDb21wb25lbnRzIGRhdGU7CiAgICAgaWYgKCFwYXJzZVRvRGF0
ZUNvbXBvbmVudHMoc3JjLCAmZGF0ZSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0
ZUFuZFRpbWVJbnB1dFR5cGUuaAppbmRleCBkYTk1MTkxMDExYzA5MzAwY2ZiZDYyMWQyMTRkNzI4
ZjdkMGRjNzg5Li5mZDk1YjVmNjk5ZWNiZjhmYWVlYTFlYmJhOTE2OGM2MDEzZDc3YTZlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmgKQEAgLTQy
LDcgKzQyLDcgQEAgY2xhc3MgQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlIDogcHVibGljIFRleHRG
aWVsZElucHV0VHlwZSB7CiBwcm90ZWN0ZWQ6CiAgICAgQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBl
KEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1lbnQpIDogVGV4dEZpZWxkSW5wdXRUeXBlKGVsZW1lbnQp
IHsgfQogICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVLZXlkb3duRXZlbnQoS2V5Ym9hcmRFdmVudCop
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgZG91YmxlIHBhcnNlVG9Eb3VibGUoY29uc3QgU3RyaW5n
JiwgZG91YmxlKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGRvdWJsZSBwYXJzZVRvTnVt
YmVyKGNvbnN0IFN0cmluZyYsIGRvdWJsZSkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBi
b29sIHBhcnNlVG9EYXRlQ29tcG9uZW50cyhjb25zdCBTdHJpbmcmLCBEYXRlQ29tcG9uZW50cyop
IGNvbnN0IE9WRVJSSURFOwogICAgIFN0cmluZyBzZXJpYWxpemVXaXRoQ29tcG9uZW50cyhjb25z
dCBEYXRlQ29tcG9uZW50cyYpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0RhdGVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlSW5wdXRUeXBl
LmNwcAppbmRleCA4OGIzMTIwNjU1NDJmMjhiZjBmOWQ4ZDYxMzNlZTFiOTFlYmIyNjE5Li45OTkw
NTkyMTFjYzBhYmQwZjc4YjhjMmViMDBjMTY1NDNhMzFiYzE2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
RGF0ZUlucHV0VHlwZS5jcHAKQEAgLTQ1LDkgKzQ1LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCi1zdGF0aWMgY29uc3QgZG91YmxlIGRhdGVE
ZWZhdWx0U3RlcCA9IDEuMDsKLXN0YXRpYyBjb25zdCBkb3VibGUgZGF0ZURlZmF1bHRTdGVwQmFz
ZSA9IDAuMDsKLXN0YXRpYyBjb25zdCBkb3VibGUgZGF0ZVN0ZXBTY2FsZUZhY3RvciA9IDg2NDAw
MDAwLjA7CitzdGF0aWMgY29uc3QgaW50IGRhdGVEZWZhdWx0U3RlcCA9IDE7CitzdGF0aWMgY29u
c3QgaW50IGRhdGVEZWZhdWx0U3RlcEJhc2UgPSAwOworc3RhdGljIGNvbnN0IGludCBkYXRlU3Rl
cFNjYWxlRmFjdG9yID0gODY0MDAwMDA7CiAKIGlubGluZSBEYXRlSW5wdXRUeXBlOjpEYXRlSW5w
dXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1lbnQpCiAgICAgOiBCYXNlRGF0ZUFuZFRpbWVJ
bnB1dFR5cGUoZWxlbWVudCkKQEAgLTczLDkgKzczLDkgQEAgU3RlcFJhbmdlIERhdGVJbnB1dFR5
cGU6OmNyZWF0ZVN0ZXBSYW5nZShBbnlTdGVwSGFuZGxpbmcgYW55U3RlcEhhbmRsaW5nKSBjb25z
dAogewogICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RlcFJhbmdlOjpTdGVwRGVzY3Jp
cHRpb24sIHN0ZXBEZXNjcmlwdGlvbiwgKGRhdGVEZWZhdWx0U3RlcCwgZGF0ZURlZmF1bHRTdGVw
QmFzZSwgZGF0ZVN0ZXBTY2FsZUZhY3RvciwgU3RlcFJhbmdlOjpQYXJzZWRTdGVwVmFsdWVTaG91
bGRCZUludGVnZXIpKTsKIAotICAgIGRvdWJsZSBzdGVwQmFzZSA9IHBhcnNlVG9Eb3VibGUoZWxl
bWVudCgpLT5mYXN0R2V0QXR0cmlidXRlKG1pbkF0dHIpLCAwKTsKLSAgICBkb3VibGUgbWluaW11
bSA9IHBhcnNlVG9Eb3VibGUoZWxlbWVudCgpLT5mYXN0R2V0QXR0cmlidXRlKG1pbkF0dHIpLCBE
YXRlQ29tcG9uZW50czo6bWluaW11bURhdGUoKSk7Ci0gICAgZG91YmxlIG1heGltdW0gPSBwYXJz
ZVRvRG91YmxlKGVsZW1lbnQoKS0+ZmFzdEdldEF0dHJpYnV0ZShtYXhBdHRyKSwgRGF0ZUNvbXBv
bmVudHM6Om1heGltdW1EYXRlKCkpOworICAgIGRvdWJsZSBzdGVwQmFzZSA9IHBhcnNlVG9OdW1i
ZXIoZWxlbWVudCgpLT5mYXN0R2V0QXR0cmlidXRlKG1pbkF0dHIpLCAwKTsKKyAgICBkb3VibGUg
bWluaW11bSA9IHBhcnNlVG9OdW1iZXIoZWxlbWVudCgpLT5mYXN0R2V0QXR0cmlidXRlKG1pbkF0
dHIpLCBEYXRlQ29tcG9uZW50czo6bWluaW11bURhdGUoKSk7CisgICAgZG91YmxlIG1heGltdW0g
PSBwYXJzZVRvTnVtYmVyKGVsZW1lbnQoKS0+ZmFzdEdldEF0dHJpYnV0ZShtYXhBdHRyKSwgRGF0
ZUNvbXBvbmVudHM6Om1heGltdW1EYXRlKCkpOwogICAgIFN0ZXBSYW5nZTo6RG91YmxlV2l0aERl
Y2ltYWxQbGFjZXNPck1pc3Npbmcgc3RlcCA9IFN0ZXBSYW5nZTo6cGFyc2VTdGVwKGFueVN0ZXBI
YW5kbGluZywgc3RlcERlc2NyaXB0aW9uLCBlbGVtZW50KCktPmZhc3RHZXRBdHRyaWJ1dGUoc3Rl
cEF0dHIpKTsKICAgICByZXR1cm4gU3RlcFJhbmdlKHN0ZXBCYXNlLCBtaW5pbXVtLCBtYXhpbXVt
LCBzdGVwLCBzdGVwRGVzY3JpcHRpb24pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9EYXRlVGltZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1l
SW5wdXRUeXBlLmNwcAppbmRleCA2Y2VmZDlkOGQ4OGE0YWNiZWE3NDlhYTJkMWY2ZGQwYWI0M2Rh
NzgyLi4zNjRhNzhiN2UyMDAwN2YyYjg4N2Q3Y2U3YzY1YzQxZDQxMGRlZmE2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0RhdGVUaW1lSW5wdXRUeXBlLmNwcApAQCAtNDMsOSArNDMsOSBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKLXN0YXRpYyBj
b25zdCBkb3VibGUgZGF0ZVRpbWVEZWZhdWx0U3RlcCA9IDYwLjA7Ci1zdGF0aWMgY29uc3QgZG91
YmxlIGRhdGVUaW1lRGVmYXVsdFN0ZXBCYXNlID0gMC4wOwotc3RhdGljIGNvbnN0IGRvdWJsZSBk
YXRlVGltZVN0ZXBTY2FsZUZhY3RvciA9IDEwMDAuMDsKK3N0YXRpYyBjb25zdCBpbnQgZGF0ZVRp
bWVEZWZhdWx0U3RlcCA9IDYwOworc3RhdGljIGNvbnN0IGludCBkYXRlVGltZURlZmF1bHRTdGVw
QmFzZSA9IDA7CitzdGF0aWMgY29uc3QgaW50IGRhdGVUaW1lU3RlcFNjYWxlRmFjdG9yID0gMTAw
MDsKIAogUGFzc093blB0cjxJbnB1dFR5cGU+IERhdGVUaW1lSW5wdXRUeXBlOjpjcmVhdGUoSFRN
TElucHV0RWxlbWVudCogZWxlbWVudCkKIHsKQEAgLTcxLDkgKzcxLDkgQEAgU3RlcFJhbmdlIERh
dGVUaW1lSW5wdXRUeXBlOjpjcmVhdGVTdGVwUmFuZ2UoQW55U3RlcEhhbmRsaW5nIGFueVN0ZXBI
YW5kbGluZykgY28KIHsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0ZXBSYW5nZTo6
U3RlcERlc2NyaXB0aW9uLCBzdGVwRGVzY3JpcHRpb24sIChkYXRlVGltZURlZmF1bHRTdGVwLCBk
YXRlVGltZURlZmF1bHRTdGVwQmFzZSwgZGF0ZVRpbWVTdGVwU2NhbGVGYWN0b3IsIFN0ZXBSYW5n
ZTo6U2NhbGVkU3RlcFZhbHVlU2hvdWxkQmVJbnRlZ2VyKSk7CiAKLSAgICBkb3VibGUgc3RlcEJh
c2UgPSBwYXJzZVRvRG91YmxlKGVsZW1lbnQoKS0+ZmFzdEdldEF0dHJpYnV0ZShtaW5BdHRyKSwg
MCk7Ci0gICAgZG91YmxlIG1pbmltdW0gPSBwYXJzZVRvRG91YmxlKGVsZW1lbnQoKS0+ZmFzdEdl
dEF0dHJpYnV0ZShtaW5BdHRyKSwgRGF0ZUNvbXBvbmVudHM6Om1pbmltdW1EYXRlVGltZSgpKTsK
LSAgICBkb3VibGUgbWF4aW11bSA9IHBhcnNlVG9Eb3VibGUoZWxlbWVudCgpLT5mYXN0R2V0QXR0
cmlidXRlKG1heEF0dHIpLCBEYXRlQ29tcG9uZW50czo6bWF4aW11bURhdGVUaW1lKCkpOworICAg
IGRvdWJsZSBzdGVwQmFzZSA9IHBhcnNlVG9OdW1iZXIoZWxlbWVudCgpLT5mYXN0R2V0QXR0cmli
dXRlKG1pbkF0dHIpLCAwKTsKKyAgICBkb3VibGUgbWluaW11bSA9IHBhcnNlVG9OdW1iZXIoZWxl
bWVudCgpLT5mYXN0R2V0QXR0cmlidXRlKG1pbkF0dHIpLCBEYXRlQ29tcG9uZW50czo6bWluaW11
bURhdGVUaW1lKCkpOworICAgIGRvdWJsZSBtYXhpbXVtID0gcGFyc2VUb051bWJlcihlbGVtZW50
KCktPmZhc3RHZXRBdHRyaWJ1dGUobWF4QXR0ciksIERhdGVDb21wb25lbnRzOjptYXhpbXVtRGF0
ZVRpbWUoKSk7CiAgICAgU3RlcFJhbmdlOjpEb3VibGVXaXRoRGVjaW1hbFBsYWNlc09yTWlzc2lu
ZyBzdGVwID0gU3RlcFJhbmdlOjpwYXJzZVN0ZXAoYW55U3RlcEhhbmRsaW5nLCBzdGVwRGVzY3Jp
cHRpb24sIGVsZW1lbnQoKS0+ZmFzdEdldEF0dHJpYnV0ZShzdGVwQXR0cikpOwogICAgIHJldHVy
biBTdGVwUmFuZ2Uoc3RlcEJhc2UsIG1pbmltdW0sIG1heGltdW0sIHN0ZXAsIHN0ZXBEZXNjcmlw
dGlvbik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJ
bnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBl
LmNwcAppbmRleCBiNjU3MDUwZWRjYWEwMmYyMzA5NTFhM2I4M2I3MzU0ZmE3NjE1ZTQzLi4zMmMx
OGRiYjY2ZmQ1OTQxNmRmMmM2MTcxNTgyMGM3ZTIxZGY4NGRhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5jcHAKQEAgLTQyLDkgKzQyLDkgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCi1zdGF0aWMg
Y29uc3QgZG91YmxlIGRhdGVUaW1lTG9jYWxEZWZhdWx0U3RlcCA9IDYwLjA7Ci1zdGF0aWMgY29u
c3QgZG91YmxlIGRhdGVUaW1lTG9jYWxEZWZhdWx0U3RlcEJhc2UgPSAwLjA7Ci1zdGF0aWMgY29u
c3QgZG91YmxlIGRhdGVUaW1lTG9jYWxTdGVwU2NhbGVGYWN0b3IgPSAxMDAwLjA7CitzdGF0aWMg
Y29uc3QgaW50IGRhdGVUaW1lTG9jYWxEZWZhdWx0U3RlcCA9IDYwOworc3RhdGljIGNvbnN0IGlu
dCBkYXRlVGltZUxvY2FsRGVmYXVsdFN0ZXBCYXNlID0gMDsKK3N0YXRpYyBjb25zdCBpbnQgZGF0
ZVRpbWVMb2NhbFN0ZXBTY2FsZUZhY3RvciA9IDEwMDA7CiAKIFBhc3NPd25QdHI8SW5wdXRUeXBl
PiBEYXRlVGltZUxvY2FsSW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCogZWxlbWVu
dCkKIHsKQEAgLTc3LDkgKzc3LDkgQEAgU3RlcFJhbmdlIERhdGVUaW1lTG9jYWxJbnB1dFR5cGU6
OmNyZWF0ZVN0ZXBSYW5nZShBbnlTdGVwSGFuZGxpbmcgYW55U3RlcEhhbmRsaW4KIHsKICAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0ZXBSYW5nZTo6U3RlcERlc2NyaXB0aW9uLCBzdGVw
RGVzY3JpcHRpb24sIChkYXRlVGltZUxvY2FsRGVmYXVsdFN0ZXAsIGRhdGVUaW1lTG9jYWxEZWZh
dWx0U3RlcEJhc2UsIGRhdGVUaW1lTG9jYWxTdGVwU2NhbGVGYWN0b3IsIFN0ZXBSYW5nZTo6U2Nh
bGVkU3RlcFZhbHVlU2hvdWxkQmVJbnRlZ2VyKSk7CiAKLSAgICBkb3VibGUgc3RlcEJhc2UgPSBw
YXJzZVRvRG91YmxlKGVsZW1lbnQoKS0+ZmFzdEdldEF0dHJpYnV0ZShtaW5BdHRyKSwgMCk7Ci0g
ICAgZG91YmxlIG1pbmltdW0gPSBwYXJzZVRvRG91YmxlKGVsZW1lbnQoKS0+ZmFzdEdldEF0dHJp
YnV0ZShtaW5BdHRyKSwgRGF0ZUNvbXBvbmVudHM6Om1pbmltdW1EYXRlVGltZSgpKTsKLSAgICBk
b3VibGUgbWF4aW11bSA9IHBhcnNlVG9Eb3VibGUoZWxlbWVudCgpLT5mYXN0R2V0QXR0cmlidXRl
KG1heEF0dHIpLCBEYXRlQ29tcG9uZW50czo6bWF4aW11bURhdGVUaW1lKCkpOworICAgIGRvdWJs
ZSBzdGVwQmFzZSA9IHBhcnNlVG9OdW1iZXIoZWxlbWVudCgpLT5mYXN0R2V0QXR0cmlidXRlKG1p
bkF0dHIpLCAwKTsKKyAgICBkb3VibGUgbWluaW11bSA9IHBhcnNlVG9OdW1iZXIoZWxlbWVudCgp
LT5mYXN0R2V0QXR0cmlidXRlKG1pbkF0dHIpLCBEYXRlQ29tcG9uZW50czo6bWluaW11bURhdGVU
aW1lKCkpOworICAgIGRvdWJsZSBtYXhpbXVtID0gcGFyc2VUb051bWJlcihlbGVtZW50KCktPmZh
c3RHZXRBdHRyaWJ1dGUobWF4QXR0ciksIERhdGVDb21wb25lbnRzOjptYXhpbXVtRGF0ZVRpbWUo
KSk7CiAgICAgU3RlcFJhbmdlOjpEb3VibGVXaXRoRGVjaW1hbFBsYWNlc09yTWlzc2luZyBzdGVw
ID0gU3RlcFJhbmdlOjpwYXJzZVN0ZXAoYW55U3RlcEhhbmRsaW5nLCBzdGVwRGVzY3JpcHRpb24s
IGVsZW1lbnQoKS0+ZmFzdEdldEF0dHJpYnV0ZShzdGVwQXR0cikpOwogICAgIHJldHVybiBTdGVw
UmFuZ2Uoc3RlcEJhc2UsIG1pbmltdW0sIG1heGltdW0sIHN0ZXAsIHN0ZXBEZXNjcmlwdGlvbik7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKaW5kZXggZTkxOTYwZDQwZWZmYWY5MTA1NTc4
YzgzYjA2ZjdjM2M4N2M1NGM0YS4uZDAwZDkxNDNjNDc3NGJhOTdkNDE3NTc5YTg0MTRjYzNjMjBl
NGRiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcApAQCAtMjUxLDExICsyNTEsMTEgQEAg
Ym9vbCBJbnB1dFR5cGU6OnJhbmdlVW5kZXJmbG93KGNvbnN0IFN0cmluZyYgdmFsdWUpIGNvbnN0
CiAgICAgaWYgKCFpc1N0ZXBwYWJsZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBk
b3VibGUgZG91YmxlVmFsdWUgPSBwYXJzZVRvRG91YmxlKHZhbHVlLCBudW1lcmljX2xpbWl0czxk
b3VibGU+OjpxdWlldF9OYU4oKSk7Ci0gICAgaWYgKGlzbmFuKGRvdWJsZVZhbHVlKSkKKyAgICBk
b3VibGUgbnVtZXJpY1ZhbHVlID0gcGFyc2VUb051bWJlcih2YWx1ZSwgbnVtZXJpY19saW1pdHM8
ZG91YmxlPjo6cXVpZXRfTmFOKCkpOworICAgIGlmIChpc25hbihudW1lcmljVmFsdWUpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICByZXR1cm4gZG91YmxlVmFsdWUgPCBjcmVhdGVTdGVw
UmFuZ2UoUmVqZWN0QW55KS5taW5pbXVtKCk7CisgICAgcmV0dXJuIG51bWVyaWNWYWx1ZSA8IGNy
ZWF0ZVN0ZXBSYW5nZShSZWplY3RBbnkpLm1pbmltdW0oKTsKIH0KIAogYm9vbCBJbnB1dFR5cGU6
OnJhbmdlT3ZlcmZsb3coY29uc3QgU3RyaW5nJiB2YWx1ZSkgY29uc3QKQEAgLTI2MywxMSArMjYz
LDExIEBAIGJvb2wgSW5wdXRUeXBlOjpyYW5nZU92ZXJmbG93KGNvbnN0IFN0cmluZyYgdmFsdWUp
IGNvbnN0CiAgICAgaWYgKCFpc1N0ZXBwYWJsZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
LSAgICBkb3VibGUgZG91YmxlVmFsdWUgPSBwYXJzZVRvRG91YmxlKHZhbHVlLCBudW1lcmljX2xp
bWl0czxkb3VibGU+OjpxdWlldF9OYU4oKSk7Ci0gICAgaWYgKGlzbmFuKGRvdWJsZVZhbHVlKSkK
KyAgICBkb3VibGUgbnVtZXJpY1ZhbHVlID0gcGFyc2VUb051bWJlcih2YWx1ZSwgbnVtZXJpY19s
aW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCkpOworICAgIGlmIChpc25hbihudW1lcmljVmFsdWUp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICByZXR1cm4gZG91YmxlVmFsdWUgPiBjcmVh
dGVTdGVwUmFuZ2UoUmVqZWN0QW55KS5tYXhpbXVtKCk7CisgICAgcmV0dXJuIG51bWVyaWNWYWx1
ZSA+IGNyZWF0ZVN0ZXBSYW5nZShSZWplY3RBbnkpLm1heGltdW0oKTsKIH0KIAogZG91YmxlIElu
cHV0VHlwZTo6ZGVmYXVsdFZhbHVlRm9yU3RlcFVwKCkgY29uc3QKQEAgLTI5NiwxMiArMjk2LDEy
IEBAIGJvb2wgSW5wdXRUeXBlOjppc0luUmFuZ2UoY29uc3QgU3RyaW5nJiB2YWx1ZSkgY29uc3QK
ICAgICBpZiAoIWlzU3RlcHBhYmxlKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGRv
dWJsZSBkb3VibGVWYWx1ZSA9IHBhcnNlVG9Eb3VibGUodmFsdWUsIG51bWVyaWNfbGltaXRzPGRv
dWJsZT46OnF1aWV0X05hTigpKTsKLSAgICBpZiAoaXNuYW4oZG91YmxlVmFsdWUpKQorICAgIGRv
dWJsZSBudW1lcmljVmFsdWUgPSBwYXJzZVRvTnVtYmVyKHZhbHVlLCBudW1lcmljX2xpbWl0czxk
b3VibGU+OjpxdWlldF9OYU4oKSk7CisgICAgaWYgKGlzbmFuKG51bWVyaWNWYWx1ZSkpCiAgICAg
ICAgIHJldHVybiB0cnVlOwogCiAgICAgU3RlcFJhbmdlIHN0ZXBSYW5nZShjcmVhdGVTdGVwUmFu
Z2UoUmVqZWN0QW55KSk7Ci0gICAgcmV0dXJuIGRvdWJsZVZhbHVlID49IHN0ZXBSYW5nZS5taW5p
bXVtKCkgJiYgZG91YmxlVmFsdWUgPD0gc3RlcFJhbmdlLm1heGltdW0oKTsKKyAgICByZXR1cm4g
bnVtZXJpY1ZhbHVlID49IHN0ZXBSYW5nZS5taW5pbXVtKCkgJiYgbnVtZXJpY1ZhbHVlIDw9IHN0
ZXBSYW5nZS5tYXhpbXVtKCk7CiB9CiAKIGJvb2wgSW5wdXRUeXBlOjppc091dE9mUmFuZ2UoY29u
c3QgU3RyaW5nJiB2YWx1ZSkgY29uc3QKQEAgLTMwOSwxMiArMzA5LDEyIEBAIGJvb2wgSW5wdXRU
eXBlOjppc091dE9mUmFuZ2UoY29uc3QgU3RyaW5nJiB2YWx1ZSkgY29uc3QKICAgICBpZiAoIWlz
U3RlcHBhYmxlKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGRvdWJsZSBkb3VibGVW
YWx1ZSA9IHBhcnNlVG9Eb3VibGUodmFsdWUsIG51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0
X05hTigpKTsKLSAgICBpZiAoaXNuYW4oZG91YmxlVmFsdWUpKQorICAgIGRvdWJsZSBudW1lcmlj
VmFsdWUgPSBwYXJzZVRvTnVtYmVyKHZhbHVlLCBudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWll
dF9OYU4oKSk7CisgICAgaWYgKGlzbmFuKG51bWVyaWNWYWx1ZSkpCiAgICAgICAgIHJldHVybiB0
cnVlOwogCiAgICAgU3RlcFJhbmdlIHN0ZXBSYW5nZShjcmVhdGVTdGVwUmFuZ2UoUmVqZWN0QW55
KSk7Ci0gICAgcmV0dXJuIGRvdWJsZVZhbHVlIDwgc3RlcFJhbmdlLm1pbmltdW0oKSB8fCBkb3Vi
bGVWYWx1ZSA+IHN0ZXBSYW5nZS5tYXhpbXVtKCk7CisgICAgcmV0dXJuIG51bWVyaWNWYWx1ZSA8
IHN0ZXBSYW5nZS5taW5pbXVtKCkgfHwgbnVtZXJpY1ZhbHVlID4gc3RlcFJhbmdlLm1heGltdW0o
KTsKIH0KIAogYm9vbCBJbnB1dFR5cGU6OnN0ZXBNaXNtYXRjaChjb25zdCBTdHJpbmcmIHZhbHVl
KSBjb25zdApAQCAtMzIyLDExICszMjIsMTEgQEAgYm9vbCBJbnB1dFR5cGU6OnN0ZXBNaXNtYXRj
aChjb25zdCBTdHJpbmcmIHZhbHVlKSBjb25zdAogICAgIGlmICghaXNTdGVwcGFibGUoKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgZG91YmxlIGRvdWJsZVZhbHVlID0gcGFyc2VUb0Rv
dWJsZSh2YWx1ZSwgbnVtZXJpY19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCkpOwotICAgIGlm
IChpc25hbihkb3VibGVWYWx1ZSkpCisgICAgZG91YmxlIG51bWVyaWNWYWx1ZSA9IHBhcnNlVG9O
dW1iZXIodmFsdWUsIG51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpKTsKKyAgICBp
ZiAoaXNuYW4obnVtZXJpY1ZhbHVlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgcmV0
dXJuIGNyZWF0ZVN0ZXBSYW5nZShSZWplY3RBbnkpLnN0ZXBNaXNtYXRjaChkb3VibGVWYWx1ZSk7
CisgICAgcmV0dXJuIGNyZWF0ZVN0ZXBSYW5nZShSZWplY3RBbnkpLnN0ZXBNaXNtYXRjaChudW1l
cmljVmFsdWUpOwogfQogCiBTdHJpbmcgSW5wdXRUeXBlOjp0eXBlTWlzbWF0Y2hUZXh0KCkgY29u
c3QKQEAgLTM2MCwxOSArMzYwLDE5IEBAIFN0cmluZyBJbnB1dFR5cGU6OnZhbGlkYXRpb25NZXNz
YWdlKCkgY29uc3QKICAgICBpZiAoIWlzU3RlcHBhYmxlKCkpCiAgICAgICAgIHJldHVybiBlbXB0
eVN0cmluZygpOwogCi0gICAgZG91YmxlIGRvdWJsZVZhbHVlID0gcGFyc2VUb0RvdWJsZSh2YWx1
ZSwgbnVtZXJpY19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCkpOwotICAgIGlmIChpc25hbihk
b3VibGVWYWx1ZSkpCisgICAgZG91YmxlIG51bWVyaWNWYWx1ZSA9IHBhcnNlVG9OdW1iZXIodmFs
dWUsIG51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpKTsKKyAgICBpZiAoaXNuYW4o
bnVtZXJpY1ZhbHVlKSkKICAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CiAKICAgICBTdGVw
UmFuZ2Ugc3RlcFJhbmdlKGNyZWF0ZVN0ZXBSYW5nZShSZWplY3RBbnkpKTsKIAotICAgIGlmIChk
b3VibGVWYWx1ZSA8IHN0ZXBSYW5nZS5taW5pbXVtKCkpCisgICAgaWYgKG51bWVyaWNWYWx1ZSA8
IHN0ZXBSYW5nZS5taW5pbXVtKCkpCiAgICAgICAgIHJldHVybiB2YWxpZGF0aW9uTWVzc2FnZVJh
bmdlVW5kZXJmbG93VGV4dChzZXJpYWxpemUoc3RlcFJhbmdlLm1pbmltdW0oKSkpOwogCi0gICAg
aWYgKGRvdWJsZVZhbHVlIDwgc3RlcFJhbmdlLm1heGltdW0oKSkKKyAgICBpZiAobnVtZXJpY1Zh
bHVlIDwgc3RlcFJhbmdlLm1heGltdW0oKSkKICAgICAgICAgcmV0dXJuIHZhbGlkYXRpb25NZXNz
YWdlUmFuZ2VPdmVyZmxvd1RleHQoc2VyaWFsaXplKHN0ZXBSYW5nZS5tYXhpbXVtKCkpKTsKIAot
ICAgIGlmIChzdGVwUmFuZ2Uuc3RlcE1pc21hdGNoKGRvdWJsZVZhbHVlKSkgeworICAgIGlmIChz
dGVwUmFuZ2Uuc3RlcE1pc21hdGNoKG51bWVyaWNWYWx1ZSkpIHsKICAgICAgICAgY29uc3QgU3Ry
aW5nIHN0ZXBTdHJpbmcgPSBzdGVwUmFuZ2UuaGFzU3RlcCgpID8gc2VyaWFsaXplRm9yTnVtYmVy
VHlwZShzdGVwUmFuZ2Uuc3RlcCgpIC8gc3RlcFJhbmdlLnN0ZXBTY2FsZUZhY3RvcigpKSA6IGVt
cHR5U3RyaW5nKCk7CiAgICAgICAgIHJldHVybiB2YWxpZGF0aW9uTWVzc2FnZVN0ZXBNaXNtYXRj
aFRleHQoc2VyaWFsaXplKHN0ZXBSYW5nZS5zdGVwQmFzZSgpKSwgc3RlcFN0cmluZyk7CiAgICAg
fQpAQCAtNDUzLDcgKzQ1Myw3IEBAIHZvaWQgSW5wdXRUeXBlOjpkZXN0cm95U2hhZG93U3VidHJl
ZSgpCiAgICAgfQogfQogCi1kb3VibGUgSW5wdXRUeXBlOjpwYXJzZVRvRG91YmxlKGNvbnN0IFN0
cmluZyYsIGRvdWJsZSBkZWZhdWx0VmFsdWUpIGNvbnN0Citkb3VibGUgSW5wdXRUeXBlOjpwYXJz
ZVRvTnVtYmVyKGNvbnN0IFN0cmluZyYsIGRvdWJsZSBkZWZhdWx0VmFsdWUpIGNvbnN0CiB7CiAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTsKQEAgLTQ2
Myw3ICs0NjMsNyBAQCBkb3VibGUgSW5wdXRUeXBlOjpwYXJzZVRvRG91YmxlV2l0aERlY2ltYWxQ
bGFjZXMoY29uc3QgU3RyaW5nJiBzcmMsIGRvdWJsZSBkZWZhdQogewogICAgIGlmIChkZWNpbWFs
UGxhY2VzKQogICAgICAgICAqZGVjaW1hbFBsYWNlcyA9IDA7Ci0gICAgcmV0dXJuIHBhcnNlVG9E
b3VibGUoc3JjLCBkZWZhdWx0VmFsdWUpOworICAgIHJldHVybiBwYXJzZVRvTnVtYmVyKHNyYywg
ZGVmYXVsdFZhbHVlKTsKIH0KIAogYm9vbCBJbnB1dFR5cGU6OnBhcnNlVG9EYXRlQ29tcG9uZW50
cyhjb25zdCBTdHJpbmcmLCBEYXRlQ29tcG9uZW50cyopIGNvbnN0CkBAIC05OTksNyArOTk5LDcg
QEAgdm9pZCBJbnB1dFR5cGU6OnN0ZXBVcEZyb21SZW5kZXJlcihpbnQgbikKIAogICAgIGNvbnN0
IGRvdWJsZSBuYW4gPSBudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKTsKICAgICBT
dHJpbmcgY3VycmVudFN0cmluZ1ZhbHVlID0gZWxlbWVudCgpLT52YWx1ZSgpOwotICAgIGRvdWJs
ZSBjdXJyZW50ID0gcGFyc2VUb0RvdWJsZShjdXJyZW50U3RyaW5nVmFsdWUsIG5hbik7CisgICAg
ZG91YmxlIGN1cnJlbnQgPSBwYXJzZVRvTnVtYmVyKGN1cnJlbnRTdHJpbmdWYWx1ZSwgbmFuKTsK
ICAgICBpZiAoIWlzZmluaXRlKGN1cnJlbnQpKSB7CiAgICAgICAgIEV4Y2VwdGlvbkNvZGUgZWM7
CiAgICAgICAgIGN1cnJlbnQgPSBkZWZhdWx0VmFsdWVGb3JTdGVwVXAoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lu
cHV0VHlwZS5oCmluZGV4IDgzZWZiZGViZTk2NGVlNjBmOGFmZTczYjk2NjQxZGJlNWQyNjVlZGUu
LjJlOGFkZjRkMjNkY2NlZDk4ZDY5MzI1ZjM4YTBjNzk3OTc2ODVkMGYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9J
bnB1dFR5cGUuaApAQCAtMjYzLDcgKzI2Myw3IEBAIHB1YmxpYzoKICAgICAvLyB0aGUgZG91Ymxl
IHZhbHVlIGZvciB0aGUgcGFyc2luZyByZXN1bHQgaWYgdGhlIHBhcnNpbmcKICAgICAvLyBzdWNj
ZWVkczsgUmV0dXJucyBkZWZhdWx0VmFsdWUgb3RoZXJ3aXNlLiBUaGlzIGZ1bmN0aW9uIGNhbgog
ICAgIC8vIHJldHVybiBOYU4gb3IgSW5maW5pdHkgb25seSBpZiBkZWZhdWx0VmFsdWUgaXMgTmFO
IG9yIEluZmluaXR5LgotICAgIHZpcnR1YWwgZG91YmxlIHBhcnNlVG9Eb3VibGUoY29uc3QgU3Ry
aW5nJiwgZG91YmxlIGRlZmF1bHRWYWx1ZSkgY29uc3Q7CisgICAgdmlydHVhbCBkb3VibGUgcGFy
c2VUb051bWJlcihjb25zdCBTdHJpbmcmLCBkb3VibGUgZGVmYXVsdFZhbHVlKSBjb25zdDsKIAog
ICAgIC8vIFBhcnNlcyB0aGUgc3BlY2lmaWVkIHN0cmluZyBmb3IgdGhlIHR5cGUgYXMgcGFyc2VU
b0RvdWJsZSgpIGRvZXMuCiAgICAgLy8gSW4gYWRkaXRpb24sIGl0IHN0b3JlcyB0aGUgbnVtYmVy
IG9mIGRpZ2l0cyBhZnRlciB0aGUgZGVjaW1hbCBwb2ludApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRo
SW5wdXRUeXBlLmNwcAppbmRleCBlYmRlM2IyMDUxYTZhMmQ5Y2Q0ODQ4MDYwOTU3YmI2MzAxMzlk
M2EyLi5lZjQ1ZTk4N2UyZDJlMDhiNTdkMzQzZTAzNmM1M2VlZjAzMWM2YTQ4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmNwcApAQCAtNDUsOSArNDUsOSBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKLXN0YXRpYyBjb25zdCBk
b3VibGUgbW9udGhEZWZhdWx0U3RlcCA9IDEuMDsKLXN0YXRpYyBjb25zdCBkb3VibGUgbW9udGhE
ZWZhdWx0U3RlcEJhc2UgPSAwLjA7Ci1zdGF0aWMgY29uc3QgZG91YmxlIG1vbnRoU3RlcFNjYWxl
RmFjdG9yID0gMS4wOworc3RhdGljIGNvbnN0IGludCBtb250aERlZmF1bHRTdGVwID0gMTsKK3N0
YXRpYyBjb25zdCBpbnQgbW9udGhEZWZhdWx0U3RlcEJhc2UgPSAwOworc3RhdGljIGNvbnN0IGlu
dCBtb250aFN0ZXBTY2FsZUZhY3RvciA9IDE7CiAKIFBhc3NPd25QdHI8SW5wdXRUeXBlPiBNb250
aElucHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1lbnQpCiB7CkBAIC0xMDEs
MTQgKzEwMSwxNCBAQCBTdGVwUmFuZ2UgTW9udGhJbnB1dFR5cGU6OmNyZWF0ZVN0ZXBSYW5nZShB
bnlTdGVwSGFuZGxpbmcgYW55U3RlcEhhbmRsaW5nKSBjb25zdAogewogICAgIERFRklORV9TVEFU
SUNfTE9DQUwoY29uc3QgU3RlcFJhbmdlOjpTdGVwRGVzY3JpcHRpb24sIHN0ZXBEZXNjcmlwdGlv
biwgKG1vbnRoRGVmYXVsdFN0ZXAsIG1vbnRoRGVmYXVsdFN0ZXBCYXNlLCBtb250aFN0ZXBTY2Fs
ZUZhY3RvciwgU3RlcFJhbmdlOjpQYXJzZWRTdGVwVmFsdWVTaG91bGRCZUludGVnZXIpKTsKIAot
ICAgIGRvdWJsZSBzdGVwQmFzZSA9IHBhcnNlVG9Eb3VibGUoZWxlbWVudCgpLT5mYXN0R2V0QXR0
cmlidXRlKG1pbkF0dHIpLCBEYXRlQ29tcG9uZW50czo6bWluaW11bU1vbnRoKCkpOwotICAgIGRv
dWJsZSBtaW5pbXVtID0gcGFyc2VUb0RvdWJsZShlbGVtZW50KCktPmZhc3RHZXRBdHRyaWJ1dGUo
bWluQXR0ciksIERhdGVDb21wb25lbnRzOjptaW5pbXVtTW9udGgoKSk7Ci0gICAgZG91YmxlIG1h
eGltdW0gPSBwYXJzZVRvRG91YmxlKGVsZW1lbnQoKS0+ZmFzdEdldEF0dHJpYnV0ZShtYXhBdHRy
KSwgRGF0ZUNvbXBvbmVudHM6Om1heGltdW1Nb250aCgpKTsKKyAgICBkb3VibGUgc3RlcEJhc2Ug
PSBwYXJzZVRvTnVtYmVyKGVsZW1lbnQoKS0+ZmFzdEdldEF0dHJpYnV0ZShtaW5BdHRyKSwgRGF0
ZUNvbXBvbmVudHM6Om1pbmltdW1Nb250aCgpKTsKKyAgICBkb3VibGUgbWluaW11bSA9IHBhcnNl
VG9OdW1iZXIoZWxlbWVudCgpLT5mYXN0R2V0QXR0cmlidXRlKG1pbkF0dHIpLCBEYXRlQ29tcG9u
ZW50czo6bWluaW11bU1vbnRoKCkpOworICAgIGRvdWJsZSBtYXhpbXVtID0gcGFyc2VUb051bWJl
cihlbGVtZW50KCktPmZhc3RHZXRBdHRyaWJ1dGUobWF4QXR0ciksIERhdGVDb21wb25lbnRzOjpt
YXhpbXVtTW9udGgoKSk7CiAgICAgU3RlcFJhbmdlOjpEb3VibGVXaXRoRGVjaW1hbFBsYWNlc09y
TWlzc2luZyBzdGVwID0gU3RlcFJhbmdlOjpwYXJzZVN0ZXAoYW55U3RlcEhhbmRsaW5nLCBzdGVw
RGVzY3JpcHRpb24sIGVsZW1lbnQoKS0+ZmFzdEdldEF0dHJpYnV0ZShzdGVwQXR0cikpOwogICAg
IHJldHVybiBTdGVwUmFuZ2Uoc3RlcEJhc2UsIG1pbmltdW0sIG1heGltdW0sIHN0ZXAsIHN0ZXBE
ZXNjcmlwdGlvbik7CiB9CiAKLWRvdWJsZSBNb250aElucHV0VHlwZTo6cGFyc2VUb0RvdWJsZShj
b25zdCBTdHJpbmcmIHNyYywgZG91YmxlIGRlZmF1bHRWYWx1ZSkgY29uc3QKK2RvdWJsZSBNb250
aElucHV0VHlwZTo6cGFyc2VUb051bWJlcihjb25zdCBTdHJpbmcmIHNyYywgZG91YmxlIGRlZmF1
bHRWYWx1ZSkgY29uc3QKIHsKICAgICBEYXRlQ29tcG9uZW50cyBkYXRlOwogICAgIGlmICghcGFy
c2VUb0RhdGVDb21wb25lbnRzKHNyYywgJmRhdGUpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJ
bnB1dFR5cGUuY3BwCmluZGV4IGNmZGM3ZDQ5Nzc0Yzg5ODNmOWNkMDhiNzBkYWU1NjczOWEwMDZj
MTAuLmQzOGYxODNlMDY4MjA1ZjFkMWYwNDU0YTZhMWRiYjNjMTc1NzAzZmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL051bWJlcklucHV0VHlwZS5jcHAKQEAgLTUwLDkgKzUwLDkgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIHVzaW5nIG5hbWVzcGFjZSBz
dGQ7CiAKLXN0YXRpYyBjb25zdCBkb3VibGUgbnVtYmVyRGVmYXVsdFN0ZXAgPSAxLjA7Ci1zdGF0
aWMgY29uc3QgZG91YmxlIG51bWJlckRlZmF1bHRTdGVwQmFzZSA9IDAuMDsKLXN0YXRpYyBjb25z
dCBkb3VibGUgbnVtYmVyU3RlcFNjYWxlRmFjdG9yID0gMS4wOworc3RhdGljIGNvbnN0IGludCBu
dW1iZXJEZWZhdWx0U3RlcCA9IDE7CitzdGF0aWMgY29uc3QgaW50IG51bWJlckRlZmF1bHRTdGVw
QmFzZSA9IDA7CitzdGF0aWMgY29uc3QgaW50IG51bWJlclN0ZXBTY2FsZUZhY3RvciA9IDE7CiAK
IHN0YXRpYyB1bnNpZ25lZCBsZW5ndGhCZWZvcmVEZWNpbWFsUG9pbnQoZG91YmxlIHZhbHVlKQog
ewpAQCAtODEsNyArODEsNyBAQCBjb25zdCBBdG9taWNTdHJpbmcmIE51bWJlcklucHV0VHlwZTo6
Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3QKIAogZG91YmxlIE51bWJlcklucHV0VHlwZTo6dmFsdWVB
c051bWJlcigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIHBhcnNlVG9Eb3VibGUoZWxlbWVudCgpLT52
YWx1ZSgpLCBudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKSk7CisgICAgcmV0dXJu
IHBhcnNlVG9OdW1iZXIoZWxlbWVudCgpLT52YWx1ZSgpLCBudW1lcmljX2xpbWl0czxkb3VibGU+
OjpxdWlldF9OYU4oKSk7CiB9CiAKIHZvaWQgTnVtYmVySW5wdXRUeXBlOjpzZXRWYWx1ZUFzTnVt
YmVyKGRvdWJsZSBuZXdWYWx1ZSwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvciBldmVudEJlaGF2aW9y
LCBFeGNlcHRpb25Db2RlJiBlYykgY29uc3QKQEAgLTExNSw4ICsxMTUsOCBAQCBTdGVwUmFuZ2Ug
TnVtYmVySW5wdXRUeXBlOjpjcmVhdGVTdGVwUmFuZ2UoQW55U3RlcEhhbmRsaW5nIGFueVN0ZXBI
YW5kbGluZykgY29ucwogICAgIHVuc2lnbmVkIHN0ZXBCYXNlRGVjaW1hbFBsYWNlczsKICAgICBk
b3VibGUgc3RlcEJhc2VWYWx1ZSA9IHBhcnNlVG9Eb3VibGVXaXRoRGVjaW1hbFBsYWNlcyhlbGVt
ZW50KCktPmZhc3RHZXRBdHRyaWJ1dGUobWluQXR0ciksIG51bWJlckRlZmF1bHRTdGVwQmFzZSwg
JnN0ZXBCYXNlRGVjaW1hbFBsYWNlcyk7CiAgICAgU3RlcFJhbmdlOjpEb3VibGVXaXRoRGVjaW1h
bFBsYWNlcyBzdGVwQmFzZShzdGVwQmFzZVZhbHVlLCBtaW4oc3RlcEJhc2VEZWNpbWFsUGxhY2Vz
LCAxNnUpKTsKLSAgICBkb3VibGUgbWluaW11bSA9IHBhcnNlVG9Eb3VibGUoZWxlbWVudCgpLT5m
YXN0R2V0QXR0cmlidXRlKG1pbkF0dHIpLCAtbnVtZXJpY19saW1pdHM8ZmxvYXQ+OjptYXgoKSk7
Ci0gICAgZG91YmxlIG1heGltdW0gPSBwYXJzZVRvRG91YmxlKGVsZW1lbnQoKS0+ZmFzdEdldEF0
dHJpYnV0ZShtYXhBdHRyKSwgbnVtZXJpY19saW1pdHM8ZmxvYXQ+OjptYXgoKSk7CisgICAgZG91
YmxlIG1pbmltdW0gPSBwYXJzZVRvTnVtYmVyKGVsZW1lbnQoKS0+ZmFzdEdldEF0dHJpYnV0ZSht
aW5BdHRyKSwgLW51bWVyaWNfbGltaXRzPGZsb2F0Pjo6bWF4KCkpOworICAgIGRvdWJsZSBtYXhp
bXVtID0gcGFyc2VUb051bWJlcihlbGVtZW50KCktPmZhc3RHZXRBdHRyaWJ1dGUobWF4QXR0ciks
IG51bWVyaWNfbGltaXRzPGZsb2F0Pjo6bWF4KCkpOwogCiAgICAgU3RlcFJhbmdlOjpEb3VibGVX
aXRoRGVjaW1hbFBsYWNlc09yTWlzc2luZyBzdGVwID0gU3RlcFJhbmdlOjpwYXJzZVN0ZXAoYW55
U3RlcEhhbmRsaW5nLCBzdGVwRGVzY3JpcHRpb24sIGVsZW1lbnQoKS0+ZmFzdEdldEF0dHJpYnV0
ZShzdGVwQXR0cikpOwogICAgIHJldHVybiBTdGVwUmFuZ2Uoc3RlcEJhc2UsIG1pbmltdW0sIG1h
eGltdW0sIHN0ZXAsIHN0ZXBEZXNjcmlwdGlvbik7CkBAIC0xODYsNyArMTg2LDcgQEAgdm9pZCBO
dW1iZXJJbnB1dFR5cGU6OmhhbmRsZVdoZWVsRXZlbnQoV2hlZWxFdmVudCogZXZlbnQpCiAgICAg
aGFuZGxlV2hlZWxFdmVudEZvclNwaW5CdXR0b24oZXZlbnQpOwogfQogCi1kb3VibGUgTnVtYmVy
SW5wdXRUeXBlOjpwYXJzZVRvRG91YmxlKGNvbnN0IFN0cmluZyYgc3JjLCBkb3VibGUgZGVmYXVs
dFZhbHVlKSBjb25zdAorZG91YmxlIE51bWJlcklucHV0VHlwZTo6cGFyc2VUb051bWJlcihjb25z
dCBTdHJpbmcmIHNyYywgZG91YmxlIGRlZmF1bHRWYWx1ZSkgY29uc3QKIHsKICAgICByZXR1cm4g
cGFyc2VUb0RvdWJsZUZvck51bWJlclR5cGUoc3JjLCBkZWZhdWx0VmFsdWUpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmgKaW5kZXggY2U0MTc3YmZjMzVhYzhlNTkwMTM3Yjkz
NGZjOGM1YjEyOWRjZGNlZC4uMGYyN2VjNGFlMzVhOTMxZWQ2MjY1OTMzZmVmYjFjMGFkMDM3YzJm
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlwZS5oCkBAIC01MSw3ICs1MSw3IEBA
IHByaXZhdGU6CiAgICAgdmlydHVhbCBTdGVwUmFuZ2UgY3JlYXRlU3RlcFJhbmdlKEFueVN0ZXBI
YW5kbGluZykgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZUtleWRvd25F
dmVudChLZXlib2FyZEV2ZW50KikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZVdo
ZWVsRXZlbnQoV2hlZWxFdmVudCopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgZG91YmxlIHBhcnNl
VG9Eb3VibGUoY29uc3QgU3RyaW5nJiwgZG91YmxlKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIGRvdWJsZSBwYXJzZVRvTnVtYmVyKGNvbnN0IFN0cmluZyYsIGRvdWJsZSkgY29uc3QgT1ZF
UlJJREU7CiAgICAgdmlydHVhbCBkb3VibGUgcGFyc2VUb0RvdWJsZVdpdGhEZWNpbWFsUGxhY2Vz
KGNvbnN0IFN0cmluZyYsIGRvdWJsZSwgdW5zaWduZWQqKSBjb25zdCBPVkVSUklERTsKICAgICB2
aXJ0dWFsIFN0cmluZyBzZXJpYWxpemUoZG91YmxlKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0
dWFsIHZvaWQgaGFuZGxlQmx1ckV2ZW50KCkgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFu
Z2VJbnB1dFR5cGUuY3BwCmluZGV4IGI0MTdkYzMyMDNiODQ3YWQ1YzZjYTI1ZGE1MWZkOWM3ZDQ2
MDVjY2IuLmY5MmZlZGMzZGNhZmUxMTc1MzA3MmYxMjQyYTQ4ZTgxYjAwZjA3ODMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCkBAIC01NCwxMSArNTQsMTYgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIHVzaW5nIG5hbWVzcGFj
ZSBzdGQ7CiAKLXN0YXRpYyBjb25zdCBkb3VibGUgcmFuZ2VEZWZhdWx0TWluaW11bSA9IDAuMDsK
LXN0YXRpYyBjb25zdCBkb3VibGUgcmFuZ2VEZWZhdWx0TWF4aW11bSA9IDEwMC4wOwotc3RhdGlj
IGNvbnN0IGRvdWJsZSByYW5nZURlZmF1bHRTdGVwID0gMS4wOwotc3RhdGljIGNvbnN0IGRvdWJs
ZSByYW5nZURlZmF1bHRTdGVwQmFzZSA9IDAuMDsKLXN0YXRpYyBjb25zdCBkb3VibGUgcmFuZ2VT
dGVwU2NhbGVGYWN0b3IgPSAxLjA7CitzdGF0aWMgY29uc3QgaW50IHJhbmdlRGVmYXVsdE1pbmlt
dW0gPSAwOworc3RhdGljIGNvbnN0IGludCByYW5nZURlZmF1bHRNYXhpbXVtID0gMTAwOworc3Rh
dGljIGNvbnN0IGludCByYW5nZURlZmF1bHRTdGVwID0gMTsKK3N0YXRpYyBjb25zdCBpbnQgcmFu
Z2VEZWZhdWx0U3RlcEJhc2UgPSAwOworc3RhdGljIGNvbnN0IGludCByYW5nZVN0ZXBTY2FsZUZh
Y3RvciA9IDE7CisKK3N0YXRpYyBkb3VibGUgZW5zdXJlTWF4aW11bShkb3VibGUgcHJvcG9zZWRW
YWx1ZSwgZG91YmxlIG1pbmltdW0sIGRvdWJsZSBmYWxsYmFja1ZhbHVlKQoreworICAgIHJldHVy
biBwcm9wb3NlZFZhbHVlID49IG1pbmltdW0gPyBwcm9wb3NlZFZhbHVlIDogc3RkOjptYXgobWlu
aW11bSwgZmFsbGJhY2tWYWx1ZSk7Cit9CiAKIFBhc3NPd25QdHI8SW5wdXRUeXBlPiBSYW5nZUlu
cHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1lbnQpCiB7CkBAIC03Nyw3ICs4
Miw3IEBAIGNvbnN0IEF0b21pY1N0cmluZyYgUmFuZ2VJbnB1dFR5cGU6OmZvcm1Db250cm9sVHlw
ZSgpIGNvbnN0CiAKIGRvdWJsZSBSYW5nZUlucHV0VHlwZTo6dmFsdWVBc051bWJlcigpIGNvbnN0
CiB7Ci0gICAgcmV0dXJuIHBhcnNlVG9Eb3VibGUoZWxlbWVudCgpLT52YWx1ZSgpLCBudW1lcmlj
X2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKSk7CisgICAgcmV0dXJuIHBhcnNlVG9OdW1iZXIo
ZWxlbWVudCgpLT52YWx1ZSgpLCBudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKSk7
CiB9CiAKIHZvaWQgUmFuZ2VJbnB1dFR5cGU6OnNldFZhbHVlQXNOdW1iZXIoZG91YmxlIG5ld1Zh
bHVlLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yIGV2ZW50QmVoYXZpb3IsIEV4Y2VwdGlvbkNvZGUm
KSBjb25zdApAQCAtOTQsMTAgKzk5LDggQEAgU3RlcFJhbmdlIFJhbmdlSW5wdXRUeXBlOjpjcmVh
dGVTdGVwUmFuZ2UoQW55U3RlcEhhbmRsaW5nIGFueVN0ZXBIYW5kbGluZykgY29uc3QKIHsKICAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0ZXBSYW5nZTo6U3RlcERlc2NyaXB0aW9uLCBz
dGVwRGVzY3JpcHRpb24sIChyYW5nZURlZmF1bHRTdGVwLCByYW5nZURlZmF1bHRTdGVwQmFzZSwg
cmFuZ2VTdGVwU2NhbGVGYWN0b3IpKTsKIAotICAgIGRvdWJsZSBtaW5pbXVtID0gcGFyc2VUb0Rv
dWJsZShlbGVtZW50KCktPmZhc3RHZXRBdHRyaWJ1dGUobWluQXR0ciksIHJhbmdlRGVmYXVsdE1p
bmltdW0pOwotICAgIGRvdWJsZSBtYXhpbXVtID0gcGFyc2VUb0RvdWJsZShlbGVtZW50KCktPmZh
c3RHZXRBdHRyaWJ1dGUobWF4QXR0ciksIHJhbmdlRGVmYXVsdE1heGltdW0pOwotICAgIGlmICht
YXhpbXVtIDwgbWluaW11bSkKLSAgICAgICAgbWF4aW11bSA9IG1heChtaW5pbXVtLCByYW5nZURl
ZmF1bHRNYXhpbXVtKTsKKyAgICBkb3VibGUgbWluaW11bSA9IHBhcnNlVG9OdW1iZXIoZWxlbWVu
dCgpLT5mYXN0R2V0QXR0cmlidXRlKG1pbkF0dHIpLCByYW5nZURlZmF1bHRNaW5pbXVtKTsKKyAg
ICBkb3VibGUgbWF4aW11bSA9IGVuc3VyZU1heGltdW0ocGFyc2VUb051bWJlcihlbGVtZW50KCkt
PmZhc3RHZXRBdHRyaWJ1dGUobWF4QXR0ciksIHJhbmdlRGVmYXVsdE1heGltdW0pLCBtaW5pbXVt
LCByYW5nZURlZmF1bHRNYXhpbXVtKTsKIAogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgcHJlY2lz
aW9uVmFsdWUgPSBlbGVtZW50KCktPmZhc3RHZXRBdHRyaWJ1dGUocHJlY2lzaW9uQXR0cik7CiAg
ICAgaWYgKCFwcmVjaXNpb25WYWx1ZS5pc051bGwoKSkgewpAQCAtMTM4LDcgKzE0MSw3IEBAIHZv
aWQgUmFuZ2VJbnB1dFR5cGU6OmhhbmRsZUtleWRvd25FdmVudChLZXlib2FyZEV2ZW50KiBldmVu
dCkKIAogICAgIGNvbnN0IFN0cmluZyYga2V5ID0gZXZlbnQtPmtleUlkZW50aWZpZXIoKTsKIAot
ICAgIGRvdWJsZSBjdXJyZW50ID0gcGFyc2VUb0RvdWJsZShlbGVtZW50KCktPnZhbHVlKCksIG51
bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpKTsKKyAgICBkb3VibGUgY3VycmVudCA9
IHBhcnNlVG9OdW1iZXIoZWxlbWVudCgpLT52YWx1ZSgpLCBudW1lcmljX2xpbWl0czxkb3VibGU+
OjpxdWlldF9OYU4oKSk7CiAgICAgQVNTRVJUKGlzZmluaXRlKGN1cnJlbnQpKTsKIAogICAgIFN0
ZXBSYW5nZSBzdGVwUmFuZ2UoY3JlYXRlU3RlcFJhbmdlKFJlamVjdEFueSkpOwpAQCAtMjE5LDcg
KzIyMiw3IEBAIFJlbmRlck9iamVjdCogUmFuZ2VJbnB1dFR5cGU6OmNyZWF0ZVJlbmRlcmVyKFJl
bmRlckFyZW5hKiBhcmVuYSwgUmVuZGVyU3R5bGUqKSBjCiAgICAgcmV0dXJuIG5ldyAoYXJlbmEp
IFJlbmRlclNsaWRlcihlbGVtZW50KCkpOwogfQogCi1kb3VibGUgUmFuZ2VJbnB1dFR5cGU6OnBh
cnNlVG9Eb3VibGUoY29uc3QgU3RyaW5nJiBzcmMsIGRvdWJsZSBkZWZhdWx0VmFsdWUpIGNvbnN0
Citkb3VibGUgUmFuZ2VJbnB1dFR5cGU6OnBhcnNlVG9OdW1iZXIoY29uc3QgU3RyaW5nJiBzcmMs
IGRvdWJsZSBkZWZhdWx0VmFsdWUpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHBhcnNlVG9Eb3VibGVG
b3JOdW1iZXJUeXBlKHNyYywgZGVmYXVsdFZhbHVlKTsKIH0KQEAgLTI2OSw3ICsyNzIsNyBAQCBT
dHJpbmcgUmFuZ2VJbnB1dFR5cGU6OmZhbGxiYWNrVmFsdWUoKSBjb25zdAogU3RyaW5nIFJhbmdl
SW5wdXRUeXBlOjpzYW5pdGl6ZVZhbHVlKGNvbnN0IFN0cmluZyYgcHJvcG9zZWRWYWx1ZSkgY29u
c3QKIHsKICAgICBTdGVwUmFuZ2Ugc3RlcFJhbmdlKGNyZWF0ZVN0ZXBSYW5nZShSZWplY3RBbnkp
KTsKLSAgICBkb3VibGUgcHJvcG9zZWREb3VibGVWYWx1ZSA9IHBhcnNlVG9Eb3VibGUocHJvcG9z
ZWRWYWx1ZSwgc3RlcFJhbmdlLmRlZmF1bHRWYWx1ZSgpKTsKKyAgICBkb3VibGUgcHJvcG9zZWRE
b3VibGVWYWx1ZSA9IHBhcnNlVG9OdW1iZXIocHJvcG9zZWRWYWx1ZSwgc3RlcFJhbmdlLmRlZmF1
bHRWYWx1ZSgpKTsKICAgICByZXR1cm4gc2VyaWFsaXplRm9yTnVtYmVyVHlwZShzdGVwUmFuZ2Uu
Y2xhbXBWYWx1ZShwcm9wb3NlZERvdWJsZVZhbHVlKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFu
Z2VJbnB1dFR5cGUuaAppbmRleCA0NWZiNGFmYTNhOTU0ZDM0Yzc4MTg1OTllMzFkYjUzNDg0Nzlk
MWYzLi4zNmZhYTFkNzIwZjVkN2ZlYWJiNTI2YWFkYTBlMDU4ZDg0ZjQ1ZTQyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9SYW5nZUlucHV0VHlwZS5oCkBAIC01NCw3ICs1NCw3IEBAIHByaXZhdGU6CiAgICAg
dmlydHVhbCB2b2lkIGhhbmRsZUtleWRvd25FdmVudChLZXlib2FyZEV2ZW50KikgT1ZFUlJJREU7
CiAgICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiwg
UmVuZGVyU3R5bGUqKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlU2hh
ZG93U3VidHJlZSgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgZG91YmxlIHBhcnNlVG9Eb3VibGUo
Y29uc3QgU3RyaW5nJiwgZG91YmxlKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGRvdWJs
ZSBwYXJzZVRvTnVtYmVyKGNvbnN0IFN0cmluZyYsIGRvdWJsZSkgY29uc3QgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCBTdHJpbmcgc2VyaWFsaXplKGRvdWJsZSkgY29uc3QgT1ZFUlJJREU7CiAgICAg
dmlydHVhbCB2b2lkIGFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykgT1ZFUlJJ
REU7CiAgICAgdmlydHVhbCB2b2lkIG1pbk9yTWF4QXR0cmlidXRlQ2hhbmdlZCgpIE9WRVJSSURF
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9TdGVwUmFuZ2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9TdGVwUmFuZ2UuY3BwCmluZGV4IDliOWI3ZGNjOTQ5Y2M3NWQ1NTBiMDgw
N2E5M2I3NjA0NTc4ODdhODkuLjgzMzE0Mzc2ZWMzYzM2M2VjYjhlNTA2ZDVmOTNiZjljYWJjZjE1
MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvU3RlcFJhbmdlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL1N0ZXBSYW5nZS5jcHAKQEAgLTE0OCwyNCArMTQ4LDI0IEBAIFN0
ZXBSYW5nZTo6RG91YmxlV2l0aERlY2ltYWxQbGFjZXNPck1pc3NpbmcgU3RlcFJhbmdlOjpwYXJz
ZVN0ZXAoQW55U3RlcEhhbmRsaW5nCiAgICAgcmV0dXJuIHN0ZXA7CiB9CiAKLWJvb2wgU3RlcFJh
bmdlOjpzdGVwTWlzbWF0Y2goZG91YmxlIGRvdWJsZVZhbHVlKSBjb25zdAorYm9vbCBTdGVwUmFu
Z2U6OnN0ZXBNaXNtYXRjaChkb3VibGUgdmFsdWVGb3JDaGVjaykgY29uc3QKIHsKICAgICBpZiAo
IW1faGFzU3RlcCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghaXNmaW5pdGUoZG91
YmxlVmFsdWUpKQorICAgIGlmICghaXNmaW5pdGUodmFsdWVGb3JDaGVjaykpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICBkb3VibGVWYWx1ZSA9IGZhYnMoZG91YmxlVmFsdWUgLSBtX3N0ZXBC
YXNlKTsKLSAgICBpZiAoaXNpbmYoZG91YmxlVmFsdWUpKQorICAgIGRvdWJsZSB2YWx1ZSA9IGZh
YnModmFsdWVGb3JDaGVjayAtIG1fc3RlcEJhc2UpOworICAgIGlmIChpc2luZih2YWx1ZSkpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICAvLyBkb3VibGUncyBmcmFjdGlvbmFsIHBhcnQgc2l6
ZSBpcyBEQkxfTUFOX0RJRy1iaXQuIElmIHRoZSBjdXJyZW50IHZhbHVlCiAgICAgLy8gaXMgZ3Jl
YXRlciB0aGFuIHN0ZXAqMl5EQkxfTUFOVF9ESUcsIHRoZSBmb2xsb3dpbmcgY29tcHV0YXRpb24g
Zm9yCiAgICAgLy8gcmVtYWluZGVyIG1ha2VzIG5vIHNlbnNlLgotICAgIGlmIChkb3VibGVWYWx1
ZSAvIHBvdygyLjAsIERCTF9NQU5UX0RJRykgPiBtX3N0ZXApCisgICAgaWYgKHZhbHVlIC8gcG93
KDIuMCwgREJMX01BTlRfRElHKSA+IG1fc3RlcCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IC8vIFRoZSBjb21wdXRhdGlvbiBmb2xsb3dzIEhUTUw1IDQuMTAuNy4yLjEwIGBUaGUgc3RlcCBh
dHRyaWJ1dGUnIDoKICAgICAvLyAuLi4gdGhhdCBudW1iZXIgc3VidHJhY3RlZCBmcm9tIHRoZSBz
dGVwIGJhc2UgaXMgbm90IGFuIGludGVncmFsIG11bHRpcGxlCiAgICAgLy8gb2YgdGhlIGFsbG93
ZWQgdmFsdWUgc3RlcCwgdGhlIGVsZW1lbnQgaXMgc3VmZmVyaW5nIGZyb20gYSBzdGVwIG1pc21h
dGNoLgotICAgIGRvdWJsZSByZW1haW5kZXIgPSBmYWJzKGRvdWJsZVZhbHVlIC0gbV9zdGVwICog
cm91bmQoZG91YmxlVmFsdWUgLyBtX3N0ZXApKTsKKyAgICBkb3VibGUgcmVtYWluZGVyID0gZmFi
cyh2YWx1ZSAtIG1fc3RlcCAqIHJvdW5kKHZhbHVlIC8gbV9zdGVwKSk7CiAgICAgLy8gQWNjZXB0
cyBlcnJvcyBpbiBsb3dlciBmcmFjdGlvbmFsIHBhcnQgd2hpY2ggSUVFRSA3NTQgc2luZ2xlLXBy
ZWNpc2lvbgogICAgIC8vIGNhbid0IHJlcHJlc2VudC4KICAgICBkb3VibGUgY29tcHV0ZWRBY2Nl
cHRhYmxlRXJyb3IgPSBhY2NlcHRhYmxlRXJyb3IoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvVGltZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1
dFR5cGUuY3BwCmluZGV4IGVjNTI3MDI0Yzk1ZGFkYmY4OWEzMzA2OWRkYmY5YmNkOTllMWNkNmYu
LjQ5NGQ4NTEyZjlkOWRmZjQ3YzczMmU3OTNiOWQ4NjdhM2Q2MzJkNjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9UaW1lSW5wdXRUeXBlLmNwcApAQCAtNDUsOSArNDUsOSBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKLXN0YXRpYyBjb25zdCBkb3VibGUg
dGltZURlZmF1bHRTdGVwID0gNjAuMDsKLXN0YXRpYyBjb25zdCBkb3VibGUgdGltZURlZmF1bHRT
dGVwQmFzZSA9IDAuMDsKLXN0YXRpYyBjb25zdCBkb3VibGUgdGltZVN0ZXBTY2FsZUZhY3RvciA9
IDEwMDAuMDsKK3N0YXRpYyBjb25zdCBpbnQgdGltZURlZmF1bHRTdGVwID0gNjA7CitzdGF0aWMg
Y29uc3QgaW50IHRpbWVEZWZhdWx0U3RlcEJhc2UgPSAwOworc3RhdGljIGNvbnN0IGludCB0aW1l
U3RlcFNjYWxlRmFjdG9yID0gMTAwMDsKIAogUGFzc093blB0cjxJbnB1dFR5cGU+IFRpbWVJbnB1
dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50KQogewpAQCAtODMsOSArODMs
OSBAQCBTdGVwUmFuZ2UgVGltZUlucHV0VHlwZTo6Y3JlYXRlU3RlcFJhbmdlKEFueVN0ZXBIYW5k
bGluZyBhbnlTdGVwSGFuZGxpbmcpIGNvbnN0CiB7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChj
b25zdCBTdGVwUmFuZ2U6OlN0ZXBEZXNjcmlwdGlvbiwgc3RlcERlc2NyaXB0aW9uLCAodGltZURl
ZmF1bHRTdGVwLCB0aW1lRGVmYXVsdFN0ZXBCYXNlLCB0aW1lU3RlcFNjYWxlRmFjdG9yLCBTdGVw
UmFuZ2U6OlNjYWxlZFN0ZXBWYWx1ZVNob3VsZEJlSW50ZWdlcikpOwogCi0gICAgZG91YmxlIHN0
ZXBCYXNlID0gcGFyc2VUb0RvdWJsZShlbGVtZW50KCktPmZhc3RHZXRBdHRyaWJ1dGUobWluQXR0
ciksIDApOwotICAgIGRvdWJsZSBtaW5pbXVtID0gcGFyc2VUb0RvdWJsZShlbGVtZW50KCktPmZh
c3RHZXRBdHRyaWJ1dGUobWluQXR0ciksIERhdGVDb21wb25lbnRzOjptaW5pbXVtVGltZSgpKTsK
LSAgICBkb3VibGUgbWF4aW11bSA9IHBhcnNlVG9Eb3VibGUoZWxlbWVudCgpLT5mYXN0R2V0QXR0
cmlidXRlKG1heEF0dHIpLCBEYXRlQ29tcG9uZW50czo6bWF4aW11bVRpbWUoKSk7CisgICAgZG91
YmxlIHN0ZXBCYXNlID0gcGFyc2VUb051bWJlcihlbGVtZW50KCktPmZhc3RHZXRBdHRyaWJ1dGUo
bWluQXR0ciksIDApOworICAgIGRvdWJsZSBtaW5pbXVtID0gcGFyc2VUb051bWJlcihlbGVtZW50
KCktPmZhc3RHZXRBdHRyaWJ1dGUobWluQXR0ciksIERhdGVDb21wb25lbnRzOjptaW5pbXVtVGlt
ZSgpKTsKKyAgICBkb3VibGUgbWF4aW11bSA9IHBhcnNlVG9OdW1iZXIoZWxlbWVudCgpLT5mYXN0
R2V0QXR0cmlidXRlKG1heEF0dHIpLCBEYXRlQ29tcG9uZW50czo6bWF4aW11bVRpbWUoKSk7CiAg
ICAgU3RlcFJhbmdlOjpEb3VibGVXaXRoRGVjaW1hbFBsYWNlc09yTWlzc2luZyBzdGVwID0gU3Rl
cFJhbmdlOjpwYXJzZVN0ZXAoYW55U3RlcEhhbmRsaW5nLCBzdGVwRGVzY3JpcHRpb24sIGVsZW1l
bnQoKS0+ZmFzdEdldEF0dHJpYnV0ZShzdGVwQXR0cikpOwogICAgIHJldHVybiBTdGVwUmFuZ2Uo
c3RlcEJhc2UsIG1pbmltdW0sIG1heGltdW0sIHN0ZXAsIHN0ZXBEZXNjcmlwdGlvbik7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5cGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9XZWVrSW5wdXRUeXBlLmNwcAppbmRleCAzYTYyMjg5MTFjNTNjZjIzMzUw
NmJlMDQyNWE3ZmVmNDUzZTEzMjVjLi5jMjUxODM3OWU0MGM0ZDA4ZWZlNmUxMzNjZTI1MjdjMDQw
MDUyNmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5cGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvV2Vla0lucHV0VHlwZS5jcHAKQEAgLTQyLDkgKzQy
LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwog
Ci1zdGF0aWMgY29uc3QgZG91YmxlIHdlZWtEZWZhdWx0U3RlcEJhc2UgPSAtMjU5MjAwMDAwLjA7
IC8vIFRoZSBmaXJzdCBkYXkgb2YgMTk3MC1XMDEuCi1zdGF0aWMgY29uc3QgZG91YmxlIHdlZWtE
ZWZhdWx0U3RlcCA9IDEuMDsKLXN0YXRpYyBjb25zdCBkb3VibGUgd2Vla1N0ZXBTY2FsZUZhY3Rv
ciA9IDYwNDgwMDAwMC4wOworc3RhdGljIGNvbnN0IGludCB3ZWVrRGVmYXVsdFN0ZXBCYXNlID0g
LTI1OTIwMDAwMDsgLy8gVGhlIGZpcnN0IGRheSBvZiAxOTcwLVcwMS4KK3N0YXRpYyBjb25zdCBp
bnQgd2Vla0RlZmF1bHRTdGVwID0gMTsKK3N0YXRpYyBjb25zdCBpbnQgd2Vla1N0ZXBTY2FsZUZh
Y3RvciA9IDYwNDgwMDAwMDsKIAogUGFzc093blB0cjxJbnB1dFR5cGU+IFdlZWtJbnB1dFR5cGU6
OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50KQogewpAQCAtNjUsOSArNjUsOSBAQCBT
dGVwUmFuZ2UgV2Vla0lucHV0VHlwZTo6Y3JlYXRlU3RlcFJhbmdlKEFueVN0ZXBIYW5kbGluZyBh
bnlTdGVwSGFuZGxpbmcpIGNvbnN0CiB7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBT
dGVwUmFuZ2U6OlN0ZXBEZXNjcmlwdGlvbiwgc3RlcERlc2NyaXB0aW9uLCAod2Vla0RlZmF1bHRT
dGVwLCB3ZWVrRGVmYXVsdFN0ZXBCYXNlLCB3ZWVrU3RlcFNjYWxlRmFjdG9yLCBTdGVwUmFuZ2U6
OlBhcnNlZFN0ZXBWYWx1ZVNob3VsZEJlSW50ZWdlcikpOwogCi0gICAgZG91YmxlIHN0ZXBCYXNl
ID0gcGFyc2VUb0RvdWJsZShlbGVtZW50KCktPmZhc3RHZXRBdHRyaWJ1dGUobWluQXR0ciksIHdl
ZWtEZWZhdWx0U3RlcEJhc2UpOwotICAgIGRvdWJsZSBtaW5pbXVtID0gcGFyc2VUb0RvdWJsZShl
bGVtZW50KCktPmZhc3RHZXRBdHRyaWJ1dGUobWluQXR0ciksIERhdGVDb21wb25lbnRzOjptaW5p
bXVtV2VlaygpKTsKLSAgICBkb3VibGUgbWF4aW11bSA9IHBhcnNlVG9Eb3VibGUoZWxlbWVudCgp
LT5mYXN0R2V0QXR0cmlidXRlKG1heEF0dHIpLCBEYXRlQ29tcG9uZW50czo6bWF4aW11bVdlZWso
KSk7CisgICAgZG91YmxlIHN0ZXBCYXNlID0gcGFyc2VUb051bWJlcihlbGVtZW50KCktPmZhc3RH
ZXRBdHRyaWJ1dGUobWluQXR0ciksIHdlZWtEZWZhdWx0U3RlcEJhc2UpOworICAgIGRvdWJsZSBt
aW5pbXVtID0gcGFyc2VUb051bWJlcihlbGVtZW50KCktPmZhc3RHZXRBdHRyaWJ1dGUobWluQXR0
ciksIERhdGVDb21wb25lbnRzOjptaW5pbXVtV2VlaygpKTsKKyAgICBkb3VibGUgbWF4aW11bSA9
IHBhcnNlVG9OdW1iZXIoZWxlbWVudCgpLT5mYXN0R2V0QXR0cmlidXRlKG1heEF0dHIpLCBEYXRl
Q29tcG9uZW50czo6bWF4aW11bVdlZWsoKSk7CiAgICAgU3RlcFJhbmdlOjpEb3VibGVXaXRoRGVj
aW1hbFBsYWNlc09yTWlzc2luZyBzdGVwID0gU3RlcFJhbmdlOjpwYXJzZVN0ZXAoYW55U3RlcEhh
bmRsaW5nLCBzdGVwRGVzY3JpcHRpb24sIGVsZW1lbnQoKS0+ZmFzdEdldEF0dHJpYnV0ZShzdGVw
QXR0cikpOwogICAgIHJldHVybiBTdGVwUmFuZ2Uoc3RlcEJhc2UsIG1pbmltdW0sIG1heGltdW0s
IHN0ZXAsIHN0ZXBEZXNjcmlwdGlvbik7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>145554</attachid>
            <date>2012-06-04 03:34:06 -0700</date>
            <delta_ts>2012-06-04 07:57:35 -0700</delta_ts>
            <desc>Patch 2</desc>
            <filename>bug-88220-20120604193405.patch</filename>
            <type>text/plain</type>
            <size>42899</size>
            <attacher>yosin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5Mzc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDYyZTMwZWUyMDE5ZDQ2
NWRlZTM1MjBhOTFmYTBmYWY5YjY1NmEyMi4uYTA1NDBhZmU1MDIzN2E0ZTZmM2EwZDMyZTE1OTUw
ODhiNTllODRiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcxIEBACisyMDEyLTA2LTA0ICBZb3No
aWZ1bWkgSW5vdWUgIDx5b3NpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0Zvcm1zXSBDaGFu
Z2UgZnVuY3Rpb24gYW5kIHZhcmlhYmxlIG5hbWVzIGluZGVwZW5kZW50IGZyb20gImRvdWJsZSIg
dHlwZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODgy
MjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlz
IHBhdGNoIGlzIGEgcGFydCBvZiBpbnRyb2R1Y2luZyBkZWNpbWFsIGFyaXRobWV0aWMgdG8gaW5w
dXQgdHlwZS4KKworICAgICAgICBUaGlzIHBhdGNoIHJlbmFtZXMgZnVuY3Rpb24gYW5kIHZhcmlh
YmxlIG5hbWVzIHdoaWNoIGNvbnRhaW4gdGVybSAiZG91YmxlIgorICAgICAgICB0byAibnVtYmVy
IiB0byBzZXBhcmF0ZSBjb25jZXB0IGFuZCBpbXBsZW1lbnRhdGlvbi4KKworICAgICAgICBObyBu
ZXcgdGVzdHMuIFRoaXMgcGF0Y2ggZG9lc24ndCBjaGFuZ2UgYmVoYXZpb3IuCisKKyAgICAgICAg
KiBodG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpC
YXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnZhbHVlQXNEYXRlKTogUmVwbGFjZSBwYXJzZVRvRG91
YmxlIHRvIHBhcnNlVG9OdW1iZXIuCisgICAgICAgIChXZWJDb3JlOjpCYXNlRGF0ZUFuZFRpbWVJ
bnB1dFR5cGU6OnZhbHVlQXNOdW1iZXIpOiBkaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkJhc2VE
YXRlQW5kVGltZUlucHV0VHlwZTo6cGFyc2VUb051bWJlcik6IGRpdHRvLgorICAgICAgICAqIGh0
bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmg6CisgICAgICAgIChCYXNlRGF0ZUFuZFRpbWVJ
bnB1dFR5cGUpOgorICAgICAgICAqIGh0bWwvRGF0ZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpEYXRlSW5wdXRUeXBlOjpjcmVhdGVTdGVwUmFuZ2UpOiBSZXBsYWNlIHBhcnNlVG9E
b3VibGUgdG8gcGFyc2VUb051bWJlci4KKyAgICAgICAgKiBodG1sL0RhdGVUaW1lSW5wdXRUeXBl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lSW5wdXRUeXBlOjpjcmVhdGVTdGVwUmFu
Z2UpOiBSZXBsYWNlIHBhcnNlVG9Eb3VibGUgdG8gcGFyc2VUb051bWJlci4KKyAgICAgICAgKiBo
dG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRp
bWVMb2NhbElucHV0VHlwZTo6Y3JlYXRlU3RlcFJhbmdlKTogUmVwbGFjZSBwYXJzZVRvRG91Ymxl
IHRvIHBhcnNlVG9OdW1iZXIuCisgICAgICAgICogaHRtbC9JbnB1dFR5cGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SW5wdXRUeXBlOjpyYW5nZVVuZGVyZmxvdyk6IFJlcGxhY2UgcGFyc2VUb0Rv
dWJsZSB0byBwYXJzZVRvTnVtYmVyIGFuZCBkb3VibGVWYWx1ZSB0byBudW1lcmljVmFsdWUuCisg
ICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGU6OnJhbmdlT3ZlcmZsb3cpOiBkaXR0by4KKyAgICAg
ICAgKFdlYkNvcmU6OklucHV0VHlwZTo6aXNJblJhbmdlKTogZGl0dG8uCisgICAgICAgIChXZWJD
b3JlOjpJbnB1dFR5cGU6OmlzT3V0T2ZSYW5nZSk6IGRpdHRvLgorICAgICAgICAoV2ViQ29yZTo6
SW5wdXRUeXBlOjpzdGVwTWlzbWF0Y2gpOiBkaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OklucHV0
VHlwZTo6dmFsaWRhdGlvbk1lc3NhZ2UpOiBkaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OklucHV0
VHlwZTo6cGFyc2VUb051bWJlcik6IGRpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBl
OjpwYXJzZVRvRG91YmxlV2l0aERlY2ltYWxQbGFjZXMpOiBkaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OklucHV0VHlwZTo6c3RlcFVwRnJvbVJlbmRlcmVyKTogZHR0aW8uCisgICAgICAgICogaHRt
bC9JbnB1dFR5cGUuaDoKKyAgICAgICAgKElucHV0VHlwZSk6CisgICAgICAgICogaHRtbC9Nb250
aElucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb250aElucHV0VHlwZTo6Y3JlYXRl
U3RlcFJhbmdlKTogUmVwbGFjZSBwYXJzZVRvRG91YmxlIHRvIHBhcnNlVG9OdW1iZXIuCisgICAg
ICAgIChXZWJDb3JlOjpNb250aElucHV0VHlwZTo6cGFyc2VUb051bWJlcik6IGRpdHRvLgorICAg
ICAgICAqIGh0bWwvTW9udGhJbnB1dFR5cGUuaDoKKyAgICAgICAgKE1vbnRoSW5wdXRUeXBlKToK
KyAgICAgICAgKiBodG1sL051bWJlcklucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpO
dW1iZXJJbnB1dFR5cGU6OnZhbHVlQXNOdW1iZXIpOiBSZXBsYWNlIHBhcnNlVG9Eb3VibGUgdG8g
cGFyc2VUb051bWJlci4KKyAgICAgICAgKFdlYkNvcmU6Ok51bWJlcklucHV0VHlwZTo6Y3JlYXRl
U3RlcFJhbmdlKTogZGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpOdW1iZXJJbnB1dFR5cGU6OnBh
cnNlVG9OdW1iZXIpOiBkaXR0by4KKyAgICAgICAgKiBodG1sL051bWJlcklucHV0VHlwZS5oOgor
ICAgICAgICAqIGh0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZW5z
dXJlTWF4aW11bSk6IEFkZGVkIGhlbHBlciBmdW5jdGlvbiBmb3IgY3JlYXRlU3RlcFJhbmdlIGZv
ciBhdm9pZGluZyBjYXN0IGluIG1heCgpIGFuZCB1c2luZyAiY29uc3QiLgorICAgICAgICAoV2Vi
Q29yZTo6UmFuZ2VJbnB1dFR5cGU6OnZhbHVlQXNOdW1iZXIpOiBSZXBsYWNlIHBhcnNlVG9Eb3Vi
bGUgdG8gcGFyc2VUb051bWJlci4KKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlSW5wdXRUeXBlOjpj
cmVhdGVTdGVwUmFuZ2UpOiBkaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlSW5wdXRUeXBl
OjpoYW5kbGVLZXlkb3duRXZlbnQpOiBkaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlSW5w
dXRUeXBlOjpwYXJzZVRvTnVtYmVyKTogZGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpSYW5nZUlu
cHV0VHlwZTo6c2FuaXRpemVWYWx1ZSk6IGRpdHRvLgorICAgICAgICAqIGh0bWwvUmFuZ2VJbnB1
dFR5cGUuaDoKKyAgICAgICAgKFJhbmdlSW5wdXRUeXBlKToKKyAgICAgICAgKiBodG1sL1N0ZXBS
YW5nZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdGVwUmFuZ2U6OnBhcnNlU3RlcCk6IFJlcGxh
Y2UgRG91YmxlV2l0aERlY2ltYWxQbGFjZXMgdG8gTnVtYmVyV2l0aERlY2ltYWxQbGFjZXMuCisg
ICAgICAgIChXZWJDb3JlOjpTdGVwUmFuZ2U6OnN0ZXBNaXNtYXRjaCk6IFJlcGxhY2UgcGFyc2VU
b0RvdWJsZSB0byBwYXJzZVRvTnVtYmVyLgorICAgICAgICAqIGh0bWwvU3RlcFJhbmdlLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpTdGVwUmFuZ2U6Ok51bWJlcldpdGhEZWNpbWFsUGxhY2VzKTogUmVu
YW1lZCBmcm9tIERvdWJsZVdpdGhEZWNpbWFsUGxhY2VzLgorICAgICAgICAoV2ViQ29yZTo6U3Rl
cFJhbmdlOjpOdW1iZXJXaXRoRGVjaW1hbFBsYWNlc09yTWlzc2luZyk6IFJlbmFtZWQgZnJvbSBE
b3VibGVXaXRoRGVjaW1hbFBsYWNlc09yTWlzc2luZy4KKyAgICAgICAgKiBodG1sL1RpbWVJbnB1
dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGltZUlucHV0VHlwZTo6Y3JlYXRlU3RlcFJh
bmdlKTogUmVwbGFjZSBwYXJzZVRvRG91YmxlIHRvIHBhcnNlVG9OdW1iZXIuCisgICAgICAgICog
aHRtbC9XZWVrSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlZWtJbnB1dFR5cGU6
OmNyZWF0ZVN0ZXBSYW5nZSk6IFJlcGxhY2UgcGFyc2VUb0RvdWJsZSB0byBwYXJzZVRvTnVtYmVy
LgorCiAyMDEyLTA2LTA0ICBLZW50YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBVc2UgU2VsZWN0b3JRdWVyeSBpbiBFbGVtZW50Ojp3ZWJraXRNYXRjaGVzU2VsZWN0
b3IoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1
dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUu
Y3BwCmluZGV4IDRjNzMwOTE5MTNkODJkZTU5NWRiY2M1ZDIyM2ViMGQ5MWJjZTk0ZDUuLjgxYzli
NWYwNjQ5MGEwMjIwZjg0ZjZkYmQ2OWZlYWUyZTkzOTM2M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKQEAgLTUyLDcgKzUyLDcgQEAg
c3RhdGljIGNvbnN0IGRvdWJsZSBtc2VjUGVyU2Vjb25kID0gMTAwMDsKIAogZG91YmxlIEJhc2VE
YXRlQW5kVGltZUlucHV0VHlwZTo6dmFsdWVBc0RhdGUoKSBjb25zdAogewotICAgIHJldHVybiBw
YXJzZVRvRG91YmxlKGVsZW1lbnQoKS0+dmFsdWUoKSwgRGF0ZUNvbXBvbmVudHM6OmludmFsaWRN
aWxsaXNlY29uZHMoKSk7CisgICAgcmV0dXJuIHBhcnNlVG9OdW1iZXIoZWxlbWVudCgpLT52YWx1
ZSgpLCBEYXRlQ29tcG9uZW50czo6aW52YWxpZE1pbGxpc2Vjb25kcygpKTsKIH0KIAogdm9pZCBC
YXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnNldFZhbHVlQXNEYXRlKGRvdWJsZSB2YWx1ZSwgRXhj
ZXB0aW9uQ29kZSYpIGNvbnN0CkBAIC02Miw3ICs2Miw3IEBAIHZvaWQgQmFzZURhdGVBbmRUaW1l
SW5wdXRUeXBlOjpzZXRWYWx1ZUFzRGF0ZShkb3VibGUgdmFsdWUsIEV4Y2VwdGlvbkNvZGUmKSBj
b25zCiAKIGRvdWJsZSBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnZhbHVlQXNOdW1iZXIoKSBj
b25zdAogewotICAgIHJldHVybiBwYXJzZVRvRG91YmxlKGVsZW1lbnQoKS0+dmFsdWUoKSwgbnVt
ZXJpY19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCkpOworICAgIHJldHVybiBwYXJzZVRvTnVt
YmVyKGVsZW1lbnQoKS0+dmFsdWUoKSwgbnVtZXJpY19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFO
KCkpOwogfQogCiB2b2lkIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZTo6c2V0VmFsdWVBc051bWJl
cihkb3VibGUgbmV3VmFsdWUsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IgZXZlbnRCZWhhdmlvciwg
RXhjZXB0aW9uQ29kZSYpIGNvbnN0CkBAIC0xMDgsNyArMTA4LDcgQEAgdm9pZCBCYXNlRGF0ZUFu
ZFRpbWVJbnB1dFR5cGU6OmhhbmRsZVdoZWVsRXZlbnQoV2hlZWxFdmVudCogZXZlbnQpCiAgICAg
ICAgIGhhbmRsZVdoZWVsRXZlbnRGb3JTcGluQnV0dG9uKGV2ZW50KTsKIH0KIAotZG91YmxlIEJh
c2VEYXRlQW5kVGltZUlucHV0VHlwZTo6cGFyc2VUb0RvdWJsZShjb25zdCBTdHJpbmcmIHNyYywg
ZG91YmxlIGRlZmF1bHRWYWx1ZSkgY29uc3QKK2RvdWJsZSBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5
cGU6OnBhcnNlVG9OdW1iZXIoY29uc3QgU3RyaW5nJiBzcmMsIGRvdWJsZSBkZWZhdWx0VmFsdWUp
IGNvbnN0CiB7CiAgICAgRGF0ZUNvbXBvbmVudHMgZGF0ZTsKICAgICBpZiAoIXBhcnNlVG9EYXRl
Q29tcG9uZW50cyhzcmMsICZkYXRlKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
QmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VEYXRl
QW5kVGltZUlucHV0VHlwZS5oCmluZGV4IGRhOTUxOTEwMTFjMDkzMDBjZmJkNjIxZDIxNGQ3Mjhm
N2QwZGM3ODkuLmZkOTViNWY2OTllY2JmOGZhZWVhMWViYmE5MTY4YzYwMTNkNzdhNmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaApAQCAtNDIs
NyArNDIsNyBAQCBjbGFzcyBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUgOiBwdWJsaWMgVGV4dEZp
ZWxkSW5wdXRUeXBlIHsKIHByb3RlY3RlZDoKICAgICBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUo
SFRNTElucHV0RWxlbWVudCogZWxlbWVudCkgOiBUZXh0RmllbGRJbnB1dFR5cGUoZWxlbWVudCkg
eyB9CiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZUtleWRvd25FdmVudChLZXlib2FyZEV2ZW50Kikg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCBkb3VibGUgcGFyc2VUb0RvdWJsZShjb25zdCBTdHJpbmcm
LCBkb3VibGUpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgZG91YmxlIHBhcnNlVG9OdW1i
ZXIoY29uc3QgU3RyaW5nJiwgZG91YmxlKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJv
b2wgcGFyc2VUb0RhdGVDb21wb25lbnRzKGNvbnN0IFN0cmluZyYsIERhdGVDb21wb25lbnRzKikg
Y29uc3QgT1ZFUlJJREU7CiAgICAgU3RyaW5nIHNlcmlhbGl6ZVdpdGhDb21wb25lbnRzKGNvbnN0
IERhdGVDb21wb25lbnRzJikgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvRGF0ZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUu
Y3BwCmluZGV4IDg4YjMxMjA2NTU0MmYyOGJmMGY5ZDhkNjEzM2VlMWI5MWViYjI2MTkuLjcxMTcz
MTY5OTM4YmRlMjJjMzU0YjE2OTk1NWQ4OThkYTI4OWEzMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9E
YXRlSW5wdXRUeXBlLmNwcApAQCAtNDUsOSArNDUsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKLXN0YXRpYyBjb25zdCBkb3VibGUgZGF0ZURl
ZmF1bHRTdGVwID0gMS4wOwotc3RhdGljIGNvbnN0IGRvdWJsZSBkYXRlRGVmYXVsdFN0ZXBCYXNl
ID0gMC4wOwotc3RhdGljIGNvbnN0IGRvdWJsZSBkYXRlU3RlcFNjYWxlRmFjdG9yID0gODY0MDAw
MDAuMDsKK3N0YXRpYyBjb25zdCBpbnQgZGF0ZURlZmF1bHRTdGVwID0gMTsKK3N0YXRpYyBjb25z
dCBpbnQgZGF0ZURlZmF1bHRTdGVwQmFzZSA9IDA7CitzdGF0aWMgY29uc3QgaW50IGRhdGVTdGVw
U2NhbGVGYWN0b3IgPSA4NjQwMDAwMDsKIAogaW5saW5lIERhdGVJbnB1dFR5cGU6OkRhdGVJbnB1
dFR5cGUoSFRNTElucHV0RWxlbWVudCogZWxlbWVudCkKICAgICA6IEJhc2VEYXRlQW5kVGltZUlu
cHV0VHlwZShlbGVtZW50KQpAQCAtNzMsMTAgKzczLDEwIEBAIFN0ZXBSYW5nZSBEYXRlSW5wdXRU
eXBlOjpjcmVhdGVTdGVwUmFuZ2UoQW55U3RlcEhhbmRsaW5nIGFueVN0ZXBIYW5kbGluZykgY29u
c3QKIHsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0ZXBSYW5nZTo6U3RlcERlc2Ny
aXB0aW9uLCBzdGVwRGVzY3JpcHRpb24sIChkYXRlRGVmYXVsdFN0ZXAsIGRhdGVEZWZhdWx0U3Rl
cEJhc2UsIGRhdGVTdGVwU2NhbGVGYWN0b3IsIFN0ZXBSYW5nZTo6UGFyc2VkU3RlcFZhbHVlU2hv
dWxkQmVJbnRlZ2VyKSk7CiAKLSAgICBkb3VibGUgc3RlcEJhc2UgPSBwYXJzZVRvRG91YmxlKGVs
ZW1lbnQoKS0+ZmFzdEdldEF0dHJpYnV0ZShtaW5BdHRyKSwgMCk7Ci0gICAgZG91YmxlIG1pbmlt
dW0gPSBwYXJzZVRvRG91YmxlKGVsZW1lbnQoKS0+ZmFzdEdldEF0dHJpYnV0ZShtaW5BdHRyKSwg
RGF0ZUNvbXBvbmVudHM6Om1pbmltdW1EYXRlKCkpOwotICAgIGRvdWJsZSBtYXhpbXVtID0gcGFy
c2VUb0RvdWJsZShlbGVtZW50KCktPmZhc3RHZXRBdHRyaWJ1dGUobWF4QXR0ciksIERhdGVDb21w
b25lbnRzOjptYXhpbXVtRGF0ZSgpKTsKLSAgICBTdGVwUmFuZ2U6OkRvdWJsZVdpdGhEZWNpbWFs
UGxhY2VzT3JNaXNzaW5nIHN0ZXAgPSBTdGVwUmFuZ2U6OnBhcnNlU3RlcChhbnlTdGVwSGFuZGxp
bmcsIHN0ZXBEZXNjcmlwdGlvbiwgZWxlbWVudCgpLT5mYXN0R2V0QXR0cmlidXRlKHN0ZXBBdHRy
KSk7CisgICAgZG91YmxlIHN0ZXBCYXNlID0gcGFyc2VUb051bWJlcihlbGVtZW50KCktPmZhc3RH
ZXRBdHRyaWJ1dGUobWluQXR0ciksIDApOworICAgIGRvdWJsZSBtaW5pbXVtID0gcGFyc2VUb051
bWJlcihlbGVtZW50KCktPmZhc3RHZXRBdHRyaWJ1dGUobWluQXR0ciksIERhdGVDb21wb25lbnRz
OjptaW5pbXVtRGF0ZSgpKTsKKyAgICBkb3VibGUgbWF4aW11bSA9IHBhcnNlVG9OdW1iZXIoZWxl
bWVudCgpLT5mYXN0R2V0QXR0cmlidXRlKG1heEF0dHIpLCBEYXRlQ29tcG9uZW50czo6bWF4aW11
bURhdGUoKSk7CisgICAgU3RlcFJhbmdlOjpOdW1iZXJXaXRoRGVjaW1hbFBsYWNlc09yTWlzc2lu
ZyBzdGVwID0gU3RlcFJhbmdlOjpwYXJzZVN0ZXAoYW55U3RlcEhhbmRsaW5nLCBzdGVwRGVzY3Jp
cHRpb24sIGVsZW1lbnQoKS0+ZmFzdEdldEF0dHJpYnV0ZShzdGVwQXR0cikpOwogICAgIHJldHVy
biBTdGVwUmFuZ2Uoc3RlcEJhc2UsIG1pbmltdW0sIG1heGltdW0sIHN0ZXAsIHN0ZXBEZXNjcmlw
dGlvbik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVJbnB1
dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUlucHV0VHlwZS5jcHAKaW5k
ZXggNmNlZmQ5ZDhkODhhNGFjYmVhNzQ5YWEyZDFmNmRkMGFiNDNkYTc4Mi4uYTY4NDNkYzM3YzBh
YWY4YWIyZTljYTIxYzJlYmQwMGNmMmQ5ZWJhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9EYXRlVGltZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRl
VGltZUlucHV0VHlwZS5jcHAKQEAgLTQzLDkgKzQzLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCi1zdGF0aWMgY29uc3QgZG91YmxlIGRhdGVU
aW1lRGVmYXVsdFN0ZXAgPSA2MC4wOwotc3RhdGljIGNvbnN0IGRvdWJsZSBkYXRlVGltZURlZmF1
bHRTdGVwQmFzZSA9IDAuMDsKLXN0YXRpYyBjb25zdCBkb3VibGUgZGF0ZVRpbWVTdGVwU2NhbGVG
YWN0b3IgPSAxMDAwLjA7CitzdGF0aWMgY29uc3QgaW50IGRhdGVUaW1lRGVmYXVsdFN0ZXAgPSA2
MDsKK3N0YXRpYyBjb25zdCBpbnQgZGF0ZVRpbWVEZWZhdWx0U3RlcEJhc2UgPSAwOworc3RhdGlj
IGNvbnN0IGludCBkYXRlVGltZVN0ZXBTY2FsZUZhY3RvciA9IDEwMDA7CiAKIFBhc3NPd25QdHI8
SW5wdXRUeXBlPiBEYXRlVGltZUlucHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQqIGVs
ZW1lbnQpCiB7CkBAIC03MSwxMCArNzEsMTAgQEAgU3RlcFJhbmdlIERhdGVUaW1lSW5wdXRUeXBl
OjpjcmVhdGVTdGVwUmFuZ2UoQW55U3RlcEhhbmRsaW5nIGFueVN0ZXBIYW5kbGluZykgY28KIHsK
ICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0ZXBSYW5nZTo6U3RlcERlc2NyaXB0aW9u
LCBzdGVwRGVzY3JpcHRpb24sIChkYXRlVGltZURlZmF1bHRTdGVwLCBkYXRlVGltZURlZmF1bHRT
dGVwQmFzZSwgZGF0ZVRpbWVTdGVwU2NhbGVGYWN0b3IsIFN0ZXBSYW5nZTo6U2NhbGVkU3RlcFZh
bHVlU2hvdWxkQmVJbnRlZ2VyKSk7CiAKLSAgICBkb3VibGUgc3RlcEJhc2UgPSBwYXJzZVRvRG91
YmxlKGVsZW1lbnQoKS0+ZmFzdEdldEF0dHJpYnV0ZShtaW5BdHRyKSwgMCk7Ci0gICAgZG91Ymxl
IG1pbmltdW0gPSBwYXJzZVRvRG91YmxlKGVsZW1lbnQoKS0+ZmFzdEdldEF0dHJpYnV0ZShtaW5B
dHRyKSwgRGF0ZUNvbXBvbmVudHM6Om1pbmltdW1EYXRlVGltZSgpKTsKLSAgICBkb3VibGUgbWF4
aW11bSA9IHBhcnNlVG9Eb3VibGUoZWxlbWVudCgpLT5mYXN0R2V0QXR0cmlidXRlKG1heEF0dHIp
LCBEYXRlQ29tcG9uZW50czo6bWF4aW11bURhdGVUaW1lKCkpOwotICAgIFN0ZXBSYW5nZTo6RG91
YmxlV2l0aERlY2ltYWxQbGFjZXNPck1pc3Npbmcgc3RlcCA9IFN0ZXBSYW5nZTo6cGFyc2VTdGVw
KGFueVN0ZXBIYW5kbGluZywgc3RlcERlc2NyaXB0aW9uLCBlbGVtZW50KCktPmZhc3RHZXRBdHRy
aWJ1dGUoc3RlcEF0dHIpKTsKKyAgICBkb3VibGUgc3RlcEJhc2UgPSBwYXJzZVRvTnVtYmVyKGVs
ZW1lbnQoKS0+ZmFzdEdldEF0dHJpYnV0ZShtaW5BdHRyKSwgMCk7CisgICAgZG91YmxlIG1pbmlt
dW0gPSBwYXJzZVRvTnVtYmVyKGVsZW1lbnQoKS0+ZmFzdEdldEF0dHJpYnV0ZShtaW5BdHRyKSwg
RGF0ZUNvbXBvbmVudHM6Om1pbmltdW1EYXRlVGltZSgpKTsKKyAgICBkb3VibGUgbWF4aW11bSA9
IHBhcnNlVG9OdW1iZXIoZWxlbWVudCgpLT5mYXN0R2V0QXR0cmlidXRlKG1heEF0dHIpLCBEYXRl
Q29tcG9uZW50czo6bWF4aW11bURhdGVUaW1lKCkpOworICAgIFN0ZXBSYW5nZTo6TnVtYmVyV2l0
aERlY2ltYWxQbGFjZXNPck1pc3Npbmcgc3RlcCA9IFN0ZXBSYW5nZTo6cGFyc2VTdGVwKGFueVN0
ZXBIYW5kbGluZywgc3RlcERlc2NyaXB0aW9uLCBlbGVtZW50KCktPmZhc3RHZXRBdHRyaWJ1dGUo
c3RlcEF0dHIpKTsKICAgICByZXR1cm4gU3RlcFJhbmdlKHN0ZXBCYXNlLCBtaW5pbXVtLCBtYXhp
bXVtLCBzdGVwLCBzdGVwRGVzY3JpcHRpb24pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmNwcAppbmRleCBiNjU3MDUwZWRjYWEwMmYyMzA5NTFh
M2I4M2I3MzU0ZmE3NjE1ZTQzLi4wZDMxM2JjMzRjZGQ2OWVmNGJkMTY0MDI3MzkyMzZjMzExZDJl
MzE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5
cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5j
cHAKQEAgLTQyLDkgKzQyLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3Bh
Y2UgSFRNTE5hbWVzOwogCi1zdGF0aWMgY29uc3QgZG91YmxlIGRhdGVUaW1lTG9jYWxEZWZhdWx0
U3RlcCA9IDYwLjA7Ci1zdGF0aWMgY29uc3QgZG91YmxlIGRhdGVUaW1lTG9jYWxEZWZhdWx0U3Rl
cEJhc2UgPSAwLjA7Ci1zdGF0aWMgY29uc3QgZG91YmxlIGRhdGVUaW1lTG9jYWxTdGVwU2NhbGVG
YWN0b3IgPSAxMDAwLjA7CitzdGF0aWMgY29uc3QgaW50IGRhdGVUaW1lTG9jYWxEZWZhdWx0U3Rl
cCA9IDYwOworc3RhdGljIGNvbnN0IGludCBkYXRlVGltZUxvY2FsRGVmYXVsdFN0ZXBCYXNlID0g
MDsKK3N0YXRpYyBjb25zdCBpbnQgZGF0ZVRpbWVMb2NhbFN0ZXBTY2FsZUZhY3RvciA9IDEwMDA7
CiAKIFBhc3NPd25QdHI8SW5wdXRUeXBlPiBEYXRlVGltZUxvY2FsSW5wdXRUeXBlOjpjcmVhdGUo
SFRNTElucHV0RWxlbWVudCogZWxlbWVudCkKIHsKQEAgLTc3LDEwICs3NywxMCBAQCBTdGVwUmFu
Z2UgRGF0ZVRpbWVMb2NhbElucHV0VHlwZTo6Y3JlYXRlU3RlcFJhbmdlKEFueVN0ZXBIYW5kbGlu
ZyBhbnlTdGVwSGFuZGxpbgogewogICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RlcFJh
bmdlOjpTdGVwRGVzY3JpcHRpb24sIHN0ZXBEZXNjcmlwdGlvbiwgKGRhdGVUaW1lTG9jYWxEZWZh
dWx0U3RlcCwgZGF0ZVRpbWVMb2NhbERlZmF1bHRTdGVwQmFzZSwgZGF0ZVRpbWVMb2NhbFN0ZXBT
Y2FsZUZhY3RvciwgU3RlcFJhbmdlOjpTY2FsZWRTdGVwVmFsdWVTaG91bGRCZUludGVnZXIpKTsK
IAotICAgIGRvdWJsZSBzdGVwQmFzZSA9IHBhcnNlVG9Eb3VibGUoZWxlbWVudCgpLT5mYXN0R2V0
QXR0cmlidXRlKG1pbkF0dHIpLCAwKTsKLSAgICBkb3VibGUgbWluaW11bSA9IHBhcnNlVG9Eb3Vi
bGUoZWxlbWVudCgpLT5mYXN0R2V0QXR0cmlidXRlKG1pbkF0dHIpLCBEYXRlQ29tcG9uZW50czo6
bWluaW11bURhdGVUaW1lKCkpOwotICAgIGRvdWJsZSBtYXhpbXVtID0gcGFyc2VUb0RvdWJsZShl
bGVtZW50KCktPmZhc3RHZXRBdHRyaWJ1dGUobWF4QXR0ciksIERhdGVDb21wb25lbnRzOjptYXhp
bXVtRGF0ZVRpbWUoKSk7Ci0gICAgU3RlcFJhbmdlOjpEb3VibGVXaXRoRGVjaW1hbFBsYWNlc09y
TWlzc2luZyBzdGVwID0gU3RlcFJhbmdlOjpwYXJzZVN0ZXAoYW55U3RlcEhhbmRsaW5nLCBzdGVw
RGVzY3JpcHRpb24sIGVsZW1lbnQoKS0+ZmFzdEdldEF0dHJpYnV0ZShzdGVwQXR0cikpOworICAg
IGRvdWJsZSBzdGVwQmFzZSA9IHBhcnNlVG9OdW1iZXIoZWxlbWVudCgpLT5mYXN0R2V0QXR0cmli
dXRlKG1pbkF0dHIpLCAwKTsKKyAgICBkb3VibGUgbWluaW11bSA9IHBhcnNlVG9OdW1iZXIoZWxl
bWVudCgpLT5mYXN0R2V0QXR0cmlidXRlKG1pbkF0dHIpLCBEYXRlQ29tcG9uZW50czo6bWluaW11
bURhdGVUaW1lKCkpOworICAgIGRvdWJsZSBtYXhpbXVtID0gcGFyc2VUb051bWJlcihlbGVtZW50
KCktPmZhc3RHZXRBdHRyaWJ1dGUobWF4QXR0ciksIERhdGVDb21wb25lbnRzOjptYXhpbXVtRGF0
ZVRpbWUoKSk7CisgICAgU3RlcFJhbmdlOjpOdW1iZXJXaXRoRGVjaW1hbFBsYWNlc09yTWlzc2lu
ZyBzdGVwID0gU3RlcFJhbmdlOjpwYXJzZVN0ZXAoYW55U3RlcEhhbmRsaW5nLCBzdGVwRGVzY3Jp
cHRpb24sIGVsZW1lbnQoKS0+ZmFzdEdldEF0dHJpYnV0ZShzdGVwQXR0cikpOwogICAgIHJldHVy
biBTdGVwUmFuZ2Uoc3RlcEJhc2UsIG1pbmltdW0sIG1heGltdW0sIHN0ZXAsIHN0ZXBEZXNjcmlw
dGlvbik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcAppbmRleCBlOTE5NjBkNDBlZmZh
ZjkxMDU1NzhjODNiMDZmN2MzYzg3YzU0YzRhLi4wZGVmNTI5ODNjYWM0NjQ0MGFlNzJiYTcyMTA0
MTFhOTFhZjUzM2M5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCkBAIC0yNTEsMTEgKzI1
MSwxMSBAQCBib29sIElucHV0VHlwZTo6cmFuZ2VVbmRlcmZsb3coY29uc3QgU3RyaW5nJiB2YWx1
ZSkgY29uc3QKICAgICBpZiAoIWlzU3RlcHBhYmxlKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAotICAgIGRvdWJsZSBkb3VibGVWYWx1ZSA9IHBhcnNlVG9Eb3VibGUodmFsdWUsIG51bWVyaWNf
bGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpKTsKLSAgICBpZiAoaXNuYW4oZG91YmxlVmFsdWUp
KQorICAgIGRvdWJsZSBudW1lcmljVmFsdWUgPSBwYXJzZVRvTnVtYmVyKHZhbHVlLCBudW1lcmlj
X2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKSk7CisgICAgaWYgKGlzbmFuKG51bWVyaWNWYWx1
ZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHJldHVybiBkb3VibGVWYWx1ZSA8IGNy
ZWF0ZVN0ZXBSYW5nZShSZWplY3RBbnkpLm1pbmltdW0oKTsKKyAgICByZXR1cm4gbnVtZXJpY1Zh
bHVlIDwgY3JlYXRlU3RlcFJhbmdlKFJlamVjdEFueSkubWluaW11bSgpOwogfQogCiBib29sIElu
cHV0VHlwZTo6cmFuZ2VPdmVyZmxvdyhjb25zdCBTdHJpbmcmIHZhbHVlKSBjb25zdApAQCAtMjYz
LDExICsyNjMsMTEgQEAgYm9vbCBJbnB1dFR5cGU6OnJhbmdlT3ZlcmZsb3coY29uc3QgU3RyaW5n
JiB2YWx1ZSkgY29uc3QKICAgICBpZiAoIWlzU3RlcHBhYmxlKCkpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAotICAgIGRvdWJsZSBkb3VibGVWYWx1ZSA9IHBhcnNlVG9Eb3VibGUodmFsdWUsIG51
bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpKTsKLSAgICBpZiAoaXNuYW4oZG91Ymxl
VmFsdWUpKQorICAgIGRvdWJsZSBudW1lcmljVmFsdWUgPSBwYXJzZVRvTnVtYmVyKHZhbHVlLCBu
dW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKSk7CisgICAgaWYgKGlzbmFuKG51bWVy
aWNWYWx1ZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHJldHVybiBkb3VibGVWYWx1
ZSA+IGNyZWF0ZVN0ZXBSYW5nZShSZWplY3RBbnkpLm1heGltdW0oKTsKKyAgICByZXR1cm4gbnVt
ZXJpY1ZhbHVlID4gY3JlYXRlU3RlcFJhbmdlKFJlamVjdEFueSkubWF4aW11bSgpOwogfQogCiBk
b3VibGUgSW5wdXRUeXBlOjpkZWZhdWx0VmFsdWVGb3JTdGVwVXAoKSBjb25zdApAQCAtMjk2LDEy
ICsyOTYsMTIgQEAgYm9vbCBJbnB1dFR5cGU6OmlzSW5SYW5nZShjb25zdCBTdHJpbmcmIHZhbHVl
KSBjb25zdAogICAgIGlmICghaXNTdGVwcGFibGUoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
Ci0gICAgZG91YmxlIGRvdWJsZVZhbHVlID0gcGFyc2VUb0RvdWJsZSh2YWx1ZSwgbnVtZXJpY19s
aW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCkpOwotICAgIGlmIChpc25hbihkb3VibGVWYWx1ZSkp
CisgICAgZG91YmxlIG51bWVyaWNWYWx1ZSA9IHBhcnNlVG9OdW1iZXIodmFsdWUsIG51bWVyaWNf
bGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpKTsKKyAgICBpZiAoaXNuYW4obnVtZXJpY1ZhbHVl
KSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICBTdGVwUmFuZ2Ugc3RlcFJhbmdlKGNyZWF0
ZVN0ZXBSYW5nZShSZWplY3RBbnkpKTsKLSAgICByZXR1cm4gZG91YmxlVmFsdWUgPj0gc3RlcFJh
bmdlLm1pbmltdW0oKSAmJiBkb3VibGVWYWx1ZSA8PSBzdGVwUmFuZ2UubWF4aW11bSgpOworICAg
IHJldHVybiBudW1lcmljVmFsdWUgPj0gc3RlcFJhbmdlLm1pbmltdW0oKSAmJiBudW1lcmljVmFs
dWUgPD0gc3RlcFJhbmdlLm1heGltdW0oKTsKIH0KIAogYm9vbCBJbnB1dFR5cGU6OmlzT3V0T2ZS
YW5nZShjb25zdCBTdHJpbmcmIHZhbHVlKSBjb25zdApAQCAtMzA5LDEyICszMDksMTIgQEAgYm9v
bCBJbnB1dFR5cGU6OmlzT3V0T2ZSYW5nZShjb25zdCBTdHJpbmcmIHZhbHVlKSBjb25zdAogICAg
IGlmICghaXNTdGVwcGFibGUoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgZG91Ymxl
IGRvdWJsZVZhbHVlID0gcGFyc2VUb0RvdWJsZSh2YWx1ZSwgbnVtZXJpY19saW1pdHM8ZG91Ymxl
Pjo6cXVpZXRfTmFOKCkpOwotICAgIGlmIChpc25hbihkb3VibGVWYWx1ZSkpCisgICAgZG91Ymxl
IG51bWVyaWNWYWx1ZSA9IHBhcnNlVG9OdW1iZXIodmFsdWUsIG51bWVyaWNfbGltaXRzPGRvdWJs
ZT46OnF1aWV0X05hTigpKTsKKyAgICBpZiAoaXNuYW4obnVtZXJpY1ZhbHVlKSkKICAgICAgICAg
cmV0dXJuIHRydWU7CiAKICAgICBTdGVwUmFuZ2Ugc3RlcFJhbmdlKGNyZWF0ZVN0ZXBSYW5nZShS
ZWplY3RBbnkpKTsKLSAgICByZXR1cm4gZG91YmxlVmFsdWUgPCBzdGVwUmFuZ2UubWluaW11bSgp
IHx8IGRvdWJsZVZhbHVlID4gc3RlcFJhbmdlLm1heGltdW0oKTsKKyAgICByZXR1cm4gbnVtZXJp
Y1ZhbHVlIDwgc3RlcFJhbmdlLm1pbmltdW0oKSB8fCBudW1lcmljVmFsdWUgPiBzdGVwUmFuZ2Uu
bWF4aW11bSgpOwogfQogCiBib29sIElucHV0VHlwZTo6c3RlcE1pc21hdGNoKGNvbnN0IFN0cmlu
ZyYgdmFsdWUpIGNvbnN0CkBAIC0zMjIsMTEgKzMyMiwxMSBAQCBib29sIElucHV0VHlwZTo6c3Rl
cE1pc21hdGNoKGNvbnN0IFN0cmluZyYgdmFsdWUpIGNvbnN0CiAgICAgaWYgKCFpc1N0ZXBwYWJs
ZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBkb3VibGUgZG91YmxlVmFsdWUgPSBw
YXJzZVRvRG91YmxlKHZhbHVlLCBudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKSk7
Ci0gICAgaWYgKGlzbmFuKGRvdWJsZVZhbHVlKSkKKyAgICBkb3VibGUgbnVtZXJpY1ZhbHVlID0g
cGFyc2VUb051bWJlcih2YWx1ZSwgbnVtZXJpY19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCkp
OworICAgIGlmIChpc25hbihudW1lcmljVmFsdWUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
LSAgICByZXR1cm4gY3JlYXRlU3RlcFJhbmdlKFJlamVjdEFueSkuc3RlcE1pc21hdGNoKGRvdWJs
ZVZhbHVlKTsKKyAgICByZXR1cm4gY3JlYXRlU3RlcFJhbmdlKFJlamVjdEFueSkuc3RlcE1pc21h
dGNoKG51bWVyaWNWYWx1ZSk7CiB9CiAKIFN0cmluZyBJbnB1dFR5cGU6OnR5cGVNaXNtYXRjaFRl
eHQoKSBjb25zdApAQCAtMzYwLDE5ICszNjAsMTkgQEAgU3RyaW5nIElucHV0VHlwZTo6dmFsaWRh
dGlvbk1lc3NhZ2UoKSBjb25zdAogICAgIGlmICghaXNTdGVwcGFibGUoKSkKICAgICAgICAgcmV0
dXJuIGVtcHR5U3RyaW5nKCk7CiAKLSAgICBkb3VibGUgZG91YmxlVmFsdWUgPSBwYXJzZVRvRG91
YmxlKHZhbHVlLCBudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKSk7Ci0gICAgaWYg
KGlzbmFuKGRvdWJsZVZhbHVlKSkKKyAgICBkb3VibGUgbnVtZXJpY1ZhbHVlID0gcGFyc2VUb051
bWJlcih2YWx1ZSwgbnVtZXJpY19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCkpOworICAgIGlm
IChpc25hbihudW1lcmljVmFsdWUpKQogICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKIAog
ICAgIFN0ZXBSYW5nZSBzdGVwUmFuZ2UoY3JlYXRlU3RlcFJhbmdlKFJlamVjdEFueSkpOwogCi0g
ICAgaWYgKGRvdWJsZVZhbHVlIDwgc3RlcFJhbmdlLm1pbmltdW0oKSkKKyAgICBpZiAobnVtZXJp
Y1ZhbHVlIDwgc3RlcFJhbmdlLm1pbmltdW0oKSkKICAgICAgICAgcmV0dXJuIHZhbGlkYXRpb25N
ZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0KHNlcmlhbGl6ZShzdGVwUmFuZ2UubWluaW11bSgpKSk7
CiAKLSAgICBpZiAoZG91YmxlVmFsdWUgPCBzdGVwUmFuZ2UubWF4aW11bSgpKQorICAgIGlmIChu
dW1lcmljVmFsdWUgPCBzdGVwUmFuZ2UubWF4aW11bSgpKQogICAgICAgICByZXR1cm4gdmFsaWRh
dGlvbk1lc3NhZ2VSYW5nZU92ZXJmbG93VGV4dChzZXJpYWxpemUoc3RlcFJhbmdlLm1heGltdW0o
KSkpOwogCi0gICAgaWYgKHN0ZXBSYW5nZS5zdGVwTWlzbWF0Y2goZG91YmxlVmFsdWUpKSB7Cisg
ICAgaWYgKHN0ZXBSYW5nZS5zdGVwTWlzbWF0Y2gobnVtZXJpY1ZhbHVlKSkgewogICAgICAgICBj
b25zdCBTdHJpbmcgc3RlcFN0cmluZyA9IHN0ZXBSYW5nZS5oYXNTdGVwKCkgPyBzZXJpYWxpemVG
b3JOdW1iZXJUeXBlKHN0ZXBSYW5nZS5zdGVwKCkgLyBzdGVwUmFuZ2Uuc3RlcFNjYWxlRmFjdG9y
KCkpIDogZW1wdHlTdHJpbmcoKTsKICAgICAgICAgcmV0dXJuIHZhbGlkYXRpb25NZXNzYWdlU3Rl
cE1pc21hdGNoVGV4dChzZXJpYWxpemUoc3RlcFJhbmdlLnN0ZXBCYXNlKCkpLCBzdGVwU3RyaW5n
KTsKICAgICB9CkBAIC00NTMsMTcgKzQ1MywxNyBAQCB2b2lkIElucHV0VHlwZTo6ZGVzdHJveVNo
YWRvd1N1YnRyZWUoKQogICAgIH0KIH0KIAotZG91YmxlIElucHV0VHlwZTo6cGFyc2VUb0RvdWJs
ZShjb25zdCBTdHJpbmcmLCBkb3VibGUgZGVmYXVsdFZhbHVlKSBjb25zdAorZG91YmxlIElucHV0
VHlwZTo6cGFyc2VUb051bWJlcihjb25zdCBTdHJpbmcmLCBkb3VibGUgZGVmYXVsdFZhbHVlKSBj
b25zdAogewogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBkZWZhdWx0VmFs
dWU7CiB9CiAKLWRvdWJsZSBJbnB1dFR5cGU6OnBhcnNlVG9Eb3VibGVXaXRoRGVjaW1hbFBsYWNl
cyhjb25zdCBTdHJpbmcmIHNyYywgZG91YmxlIGRlZmF1bHRWYWx1ZSwgdW5zaWduZWQgKmRlY2lt
YWxQbGFjZXMpIGNvbnN0Citkb3VibGUgSW5wdXRUeXBlOjpwYXJzZVRvTnVtYmVyV2l0aERlY2lt
YWxQbGFjZXMoY29uc3QgU3RyaW5nJiBzcmMsIGRvdWJsZSBkZWZhdWx0VmFsdWUsIHVuc2lnbmVk
ICpkZWNpbWFsUGxhY2VzKSBjb25zdAogewogICAgIGlmIChkZWNpbWFsUGxhY2VzKQogICAgICAg
ICAqZGVjaW1hbFBsYWNlcyA9IDA7Ci0gICAgcmV0dXJuIHBhcnNlVG9Eb3VibGUoc3JjLCBkZWZh
dWx0VmFsdWUpOworICAgIHJldHVybiBwYXJzZVRvTnVtYmVyKHNyYywgZGVmYXVsdFZhbHVlKTsK
IH0KIAogYm9vbCBJbnB1dFR5cGU6OnBhcnNlVG9EYXRlQ29tcG9uZW50cyhjb25zdCBTdHJpbmcm
LCBEYXRlQ29tcG9uZW50cyopIGNvbnN0CkBAIC04NzgsNyArODc4LDcgQEAgdm9pZCBJbnB1dFR5
cGU6OmFwcGx5U3RlcChkb3VibGUgY291bnQsIEFueVN0ZXBIYW5kbGluZyBhbnlTdGVwSGFuZGxp
bmcsIFRleHRGaWUKIAogICAgIGNvbnN0IGRvdWJsZSBuYW4gPSBudW1lcmljX2xpbWl0czxkb3Vi
bGU+OjpxdWlldF9OYU4oKTsKICAgICB1bnNpZ25lZCBjdXJyZW50RGVjaW1hbFBsYWNlczsKLSAg
ICBkb3VibGUgY3VycmVudCA9IHBhcnNlVG9Eb3VibGVXaXRoRGVjaW1hbFBsYWNlcyhlbGVtZW50
KCktPnZhbHVlKCksIG5hbiwgJmN1cnJlbnREZWNpbWFsUGxhY2VzKTsKKyAgICBkb3VibGUgY3Vy
cmVudCA9IHBhcnNlVG9OdW1iZXJXaXRoRGVjaW1hbFBsYWNlcyhlbGVtZW50KCktPnZhbHVlKCks
IG5hbiwgJmN1cnJlbnREZWNpbWFsUGxhY2VzKTsKICAgICBpZiAoIWlzZmluaXRlKGN1cnJlbnQp
KSB7CiAgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CiAgICAgICAgIHJldHVybjsKQEAg
LTk5OSw3ICs5OTksNyBAQCB2b2lkIElucHV0VHlwZTo6c3RlcFVwRnJvbVJlbmRlcmVyKGludCBu
KQogCiAgICAgY29uc3QgZG91YmxlIG5hbiA9IG51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0
X05hTigpOwogICAgIFN0cmluZyBjdXJyZW50U3RyaW5nVmFsdWUgPSBlbGVtZW50KCktPnZhbHVl
KCk7Ci0gICAgZG91YmxlIGN1cnJlbnQgPSBwYXJzZVRvRG91YmxlKGN1cnJlbnRTdHJpbmdWYWx1
ZSwgbmFuKTsKKyAgICBkb3VibGUgY3VycmVudCA9IHBhcnNlVG9OdW1iZXIoY3VycmVudFN0cmlu
Z1ZhbHVlLCBuYW4pOwogICAgIGlmICghaXNmaW5pdGUoY3VycmVudCkpIHsKICAgICAgICAgRXhj
ZXB0aW9uQ29kZSBlYzsKICAgICAgICAgY3VycmVudCA9IGRlZmF1bHRWYWx1ZUZvclN0ZXBVcCgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgKaW5kZXggODNlZmJkZWJlOTY0ZWU2MGY4YWZlNzNiOTY2
NDFkYmU1ZDI2NWVkZS4uNzA0YjIzNzVlNzQ4MjYwMjk3MWYzZjliMGRiNTZiZDVkZGNiOGY0ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCkBAIC0yNjMsMTIgKzI2MywxMiBAQCBwdWJsaWM6CiAg
ICAgLy8gdGhlIGRvdWJsZSB2YWx1ZSBmb3IgdGhlIHBhcnNpbmcgcmVzdWx0IGlmIHRoZSBwYXJz
aW5nCiAgICAgLy8gc3VjY2VlZHM7IFJldHVybnMgZGVmYXVsdFZhbHVlIG90aGVyd2lzZS4gVGhp
cyBmdW5jdGlvbiBjYW4KICAgICAvLyByZXR1cm4gTmFOIG9yIEluZmluaXR5IG9ubHkgaWYgZGVm
YXVsdFZhbHVlIGlzIE5hTiBvciBJbmZpbml0eS4KLSAgICB2aXJ0dWFsIGRvdWJsZSBwYXJzZVRv
RG91YmxlKGNvbnN0IFN0cmluZyYsIGRvdWJsZSBkZWZhdWx0VmFsdWUpIGNvbnN0OworICAgIHZp
cnR1YWwgZG91YmxlIHBhcnNlVG9OdW1iZXIoY29uc3QgU3RyaW5nJiwgZG91YmxlIGRlZmF1bHRW
YWx1ZSkgY29uc3Q7CiAKICAgICAvLyBQYXJzZXMgdGhlIHNwZWNpZmllZCBzdHJpbmcgZm9yIHRo
ZSB0eXBlIGFzIHBhcnNlVG9Eb3VibGUoKSBkb2VzLgogICAgIC8vIEluIGFkZGl0aW9uLCBpdCBz
dG9yZXMgdGhlIG51bWJlciBvZiBkaWdpdHMgYWZ0ZXIgdGhlIGRlY2ltYWwgcG9pbnQKICAgICAv
LyBpbnRvICpkZWNpbWFsUGxhY2VzLgotICAgIHZpcnR1YWwgZG91YmxlIHBhcnNlVG9Eb3VibGVX
aXRoRGVjaW1hbFBsYWNlcyhjb25zdCBTdHJpbmcmLCBkb3VibGUgZGVmYXVsdFZhbHVlLCB1bnNp
Z25lZCogZGVjaW1hbFBsYWNlcykgY29uc3Q7CisgICAgdmlydHVhbCBkb3VibGUgcGFyc2VUb051
bWJlcldpdGhEZWNpbWFsUGxhY2VzKGNvbnN0IFN0cmluZyYsIGRvdWJsZSBkZWZhdWx0VmFsdWUs
IHVuc2lnbmVkKiBkZWNpbWFsUGxhY2VzKSBjb25zdDsKIAogICAgIC8vIFBhcnNlcyB0aGUgc3Bl
Y2lmaWVkIHN0cmluZyBmb3IgdGhpcyBJbnB1dFR5cGUsIGFuZCByZXR1cm5zIHRydWUgaWYgaXQK
ICAgICAvLyBpcyBzdWNjZXNzZnVsbHkgcGFyc2VkLiBBbiBpbnN0YW5jZSBwb2ludGVkIGJ5IHRo
ZSBEYXRlQ29tcG9uZW50cyoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJ
bnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5jcHAKaW5k
ZXggZWJkZTNiMjA1MWE2YTJkOWNkNDg0ODA2MDk1N2JiNjMwMTM5ZDNhMi4uZmEzNTY2MjY2ODQ4
N2VmYzFkMWZlYzRjZWNjYWFlZjU0NDY0Yzk4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9Nb250aElucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElu
cHV0VHlwZS5jcHAKQEAgLTQ1LDkgKzQ1LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2lu
ZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCi1zdGF0aWMgY29uc3QgZG91YmxlIG1vbnRoRGVmYXVs
dFN0ZXAgPSAxLjA7Ci1zdGF0aWMgY29uc3QgZG91YmxlIG1vbnRoRGVmYXVsdFN0ZXBCYXNlID0g
MC4wOwotc3RhdGljIGNvbnN0IGRvdWJsZSBtb250aFN0ZXBTY2FsZUZhY3RvciA9IDEuMDsKK3N0
YXRpYyBjb25zdCBpbnQgbW9udGhEZWZhdWx0U3RlcCA9IDE7CitzdGF0aWMgY29uc3QgaW50IG1v
bnRoRGVmYXVsdFN0ZXBCYXNlID0gMDsKK3N0YXRpYyBjb25zdCBpbnQgbW9udGhTdGVwU2NhbGVG
YWN0b3IgPSAxOwogCiBQYXNzT3duUHRyPElucHV0VHlwZT4gTW9udGhJbnB1dFR5cGU6OmNyZWF0
ZShIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50KQogewpAQCAtMTAxLDE0ICsxMDEsMTQgQEAgU3Rl
cFJhbmdlIE1vbnRoSW5wdXRUeXBlOjpjcmVhdGVTdGVwUmFuZ2UoQW55U3RlcEhhbmRsaW5nIGFu
eVN0ZXBIYW5kbGluZykgY29uc3QKIHsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0
ZXBSYW5nZTo6U3RlcERlc2NyaXB0aW9uLCBzdGVwRGVzY3JpcHRpb24sIChtb250aERlZmF1bHRT
dGVwLCBtb250aERlZmF1bHRTdGVwQmFzZSwgbW9udGhTdGVwU2NhbGVGYWN0b3IsIFN0ZXBSYW5n
ZTo6UGFyc2VkU3RlcFZhbHVlU2hvdWxkQmVJbnRlZ2VyKSk7CiAKLSAgICBkb3VibGUgc3RlcEJh
c2UgPSBwYXJzZVRvRG91YmxlKGVsZW1lbnQoKS0+ZmFzdEdldEF0dHJpYnV0ZShtaW5BdHRyKSwg
RGF0ZUNvbXBvbmVudHM6Om1pbmltdW1Nb250aCgpKTsKLSAgICBkb3VibGUgbWluaW11bSA9IHBh
cnNlVG9Eb3VibGUoZWxlbWVudCgpLT5mYXN0R2V0QXR0cmlidXRlKG1pbkF0dHIpLCBEYXRlQ29t
cG9uZW50czo6bWluaW11bU1vbnRoKCkpOwotICAgIGRvdWJsZSBtYXhpbXVtID0gcGFyc2VUb0Rv
dWJsZShlbGVtZW50KCktPmZhc3RHZXRBdHRyaWJ1dGUobWF4QXR0ciksIERhdGVDb21wb25lbnRz
OjptYXhpbXVtTW9udGgoKSk7Ci0gICAgU3RlcFJhbmdlOjpEb3VibGVXaXRoRGVjaW1hbFBsYWNl
c09yTWlzc2luZyBzdGVwID0gU3RlcFJhbmdlOjpwYXJzZVN0ZXAoYW55U3RlcEhhbmRsaW5nLCBz
dGVwRGVzY3JpcHRpb24sIGVsZW1lbnQoKS0+ZmFzdEdldEF0dHJpYnV0ZShzdGVwQXR0cikpOwor
ICAgIGRvdWJsZSBzdGVwQmFzZSA9IHBhcnNlVG9OdW1iZXIoZWxlbWVudCgpLT5mYXN0R2V0QXR0
cmlidXRlKG1pbkF0dHIpLCBEYXRlQ29tcG9uZW50czo6bWluaW11bU1vbnRoKCkpOworICAgIGRv
dWJsZSBtaW5pbXVtID0gcGFyc2VUb051bWJlcihlbGVtZW50KCktPmZhc3RHZXRBdHRyaWJ1dGUo
bWluQXR0ciksIERhdGVDb21wb25lbnRzOjptaW5pbXVtTW9udGgoKSk7CisgICAgZG91YmxlIG1h
eGltdW0gPSBwYXJzZVRvTnVtYmVyKGVsZW1lbnQoKS0+ZmFzdEdldEF0dHJpYnV0ZShtYXhBdHRy
KSwgRGF0ZUNvbXBvbmVudHM6Om1heGltdW1Nb250aCgpKTsKKyAgICBTdGVwUmFuZ2U6Ok51bWJl
cldpdGhEZWNpbWFsUGxhY2VzT3JNaXNzaW5nIHN0ZXAgPSBTdGVwUmFuZ2U6OnBhcnNlU3RlcChh
bnlTdGVwSGFuZGxpbmcsIHN0ZXBEZXNjcmlwdGlvbiwgZWxlbWVudCgpLT5mYXN0R2V0QXR0cmli
dXRlKHN0ZXBBdHRyKSk7CiAgICAgcmV0dXJuIFN0ZXBSYW5nZShzdGVwQmFzZSwgbWluaW11bSwg
bWF4aW11bSwgc3RlcCwgc3RlcERlc2NyaXB0aW9uKTsKIH0KIAotZG91YmxlIE1vbnRoSW5wdXRU
eXBlOjpwYXJzZVRvRG91YmxlKGNvbnN0IFN0cmluZyYgc3JjLCBkb3VibGUgZGVmYXVsdFZhbHVl
KSBjb25zdAorZG91YmxlIE1vbnRoSW5wdXRUeXBlOjpwYXJzZVRvTnVtYmVyKGNvbnN0IFN0cmlu
ZyYgc3JjLCBkb3VibGUgZGVmYXVsdFZhbHVlKSBjb25zdAogewogICAgIERhdGVDb21wb25lbnRz
IGRhdGU7CiAgICAgaWYgKCFwYXJzZVRvRGF0ZUNvbXBvbmVudHMoc3JjLCAmZGF0ZSkpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmgKaW5kZXggZDA3YjAxYmNiNmFhYTE5NTcxZGUyYzhm
MTFlNjM4YmFkMDFiYjA1MS4uNWUwYzNiYWU0NGRhMTMzODVkNDAzNDM4Y2U5ZWI0MGExYzFhNjEx
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuaApAQCAtNDcsNyArNDcsNyBAQCBw
cml2YXRlOgogICAgIHZpcnR1YWwgRGF0ZUNvbXBvbmVudHM6OlR5cGUgZGF0ZVR5cGUoKSBjb25z
dCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGRvdWJsZSB2YWx1ZUFzRGF0ZSgpIGNvbnN0IE9WRVJS
SURFOwogICAgIHZpcnR1YWwgU3RyaW5nIHNlcmlhbGl6ZVdpdGhNaWxsaXNlY29uZHMoZG91Ymxl
KSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGRvdWJsZSBwYXJzZVRvRG91YmxlKGNvbnN0
IFN0cmluZyYsIGRvdWJsZSkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBkb3VibGUgcGFy
c2VUb051bWJlcihjb25zdCBTdHJpbmcmLCBkb3VibGUpIGNvbnN0IE9WRVJSSURFOwogICAgIHZp
cnR1YWwgZG91YmxlIGRlZmF1bHRWYWx1ZUZvclN0ZXBVcCgpIGNvbnN0IE9WRVJSSURFOwogICAg
IHZpcnR1YWwgU3RlcFJhbmdlIGNyZWF0ZVN0ZXBSYW5nZShBbnlTdGVwSGFuZGxpbmcpIGNvbnN0
IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBwYXJzZVRvRGF0ZUNvbXBvbmVudHNJbnRlcm5h
bChjb25zdCBVQ2hhciosIHVuc2lnbmVkIGxlbmd0aCwgRGF0ZUNvbXBvbmVudHMqKSBjb25zdCBP
VkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmNwcAppbmRleCBjZmRj
N2Q0OTc3NGM4OTgzZjljZDA4YjcwZGFlNTY3MzlhMDA2YzEwLi5kZjBkOGQyM2M1ZTJiMjNhZjg1
Y2ExYjg0NGUzZjk3NmE5NjY0N2RmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL051
bWJlcklucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5
cGUuY3BwCkBAIC01MCw5ICs1MCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHVzaW5nIG5hbWVz
cGFjZSBIVE1MTmFtZXM7CiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCi1zdGF0aWMgY29uc3QgZG91
YmxlIG51bWJlckRlZmF1bHRTdGVwID0gMS4wOwotc3RhdGljIGNvbnN0IGRvdWJsZSBudW1iZXJE
ZWZhdWx0U3RlcEJhc2UgPSAwLjA7Ci1zdGF0aWMgY29uc3QgZG91YmxlIG51bWJlclN0ZXBTY2Fs
ZUZhY3RvciA9IDEuMDsKK3N0YXRpYyBjb25zdCBpbnQgbnVtYmVyRGVmYXVsdFN0ZXAgPSAxOwor
c3RhdGljIGNvbnN0IGludCBudW1iZXJEZWZhdWx0U3RlcEJhc2UgPSAwOworc3RhdGljIGNvbnN0
IGludCBudW1iZXJTdGVwU2NhbGVGYWN0b3IgPSAxOwogCiBzdGF0aWMgdW5zaWduZWQgbGVuZ3Ro
QmVmb3JlRGVjaW1hbFBvaW50KGRvdWJsZSB2YWx1ZSkKIHsKQEAgLTgxLDcgKzgxLDcgQEAgY29u
c3QgQXRvbWljU3RyaW5nJiBOdW1iZXJJbnB1dFR5cGU6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0
CiAKIGRvdWJsZSBOdW1iZXJJbnB1dFR5cGU6OnZhbHVlQXNOdW1iZXIoKSBjb25zdAogewotICAg
IHJldHVybiBwYXJzZVRvRG91YmxlKGVsZW1lbnQoKS0+dmFsdWUoKSwgbnVtZXJpY19saW1pdHM8
ZG91YmxlPjo6cXVpZXRfTmFOKCkpOworICAgIHJldHVybiBwYXJzZVRvTnVtYmVyKGVsZW1lbnQo
KS0+dmFsdWUoKSwgbnVtZXJpY19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCkpOwogfQogCiB2
b2lkIE51bWJlcklucHV0VHlwZTo6c2V0VmFsdWVBc051bWJlcihkb3VibGUgbmV3VmFsdWUsIFRl
eHRGaWVsZEV2ZW50QmVoYXZpb3IgZXZlbnRCZWhhdmlvciwgRXhjZXB0aW9uQ29kZSYgZWMpIGNv
bnN0CkBAIC0xMTMsMTIgKzExMywxMiBAQCBTdGVwUmFuZ2UgTnVtYmVySW5wdXRUeXBlOjpjcmVh
dGVTdGVwUmFuZ2UoQW55U3RlcEhhbmRsaW5nIGFueVN0ZXBIYW5kbGluZykgY29ucwogICAgIERF
RklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RlcFJhbmdlOjpTdGVwRGVzY3JpcHRpb24sIHN0ZXBE
ZXNjcmlwdGlvbiwgKG51bWJlckRlZmF1bHRTdGVwLCBudW1iZXJEZWZhdWx0U3RlcEJhc2UsIG51
bWJlclN0ZXBTY2FsZUZhY3RvcikpOwogCiAgICAgdW5zaWduZWQgc3RlcEJhc2VEZWNpbWFsUGxh
Y2VzOwotICAgIGRvdWJsZSBzdGVwQmFzZVZhbHVlID0gcGFyc2VUb0RvdWJsZVdpdGhEZWNpbWFs
UGxhY2VzKGVsZW1lbnQoKS0+ZmFzdEdldEF0dHJpYnV0ZShtaW5BdHRyKSwgbnVtYmVyRGVmYXVs
dFN0ZXBCYXNlLCAmc3RlcEJhc2VEZWNpbWFsUGxhY2VzKTsKLSAgICBTdGVwUmFuZ2U6OkRvdWJs
ZVdpdGhEZWNpbWFsUGxhY2VzIHN0ZXBCYXNlKHN0ZXBCYXNlVmFsdWUsIG1pbihzdGVwQmFzZURl
Y2ltYWxQbGFjZXMsIDE2dSkpOwotICAgIGRvdWJsZSBtaW5pbXVtID0gcGFyc2VUb0RvdWJsZShl
bGVtZW50KCktPmZhc3RHZXRBdHRyaWJ1dGUobWluQXR0ciksIC1udW1lcmljX2xpbWl0czxmbG9h
dD46Om1heCgpKTsKLSAgICBkb3VibGUgbWF4aW11bSA9IHBhcnNlVG9Eb3VibGUoZWxlbWVudCgp
LT5mYXN0R2V0QXR0cmlidXRlKG1heEF0dHIpLCBudW1lcmljX2xpbWl0czxmbG9hdD46Om1heCgp
KTsKKyAgICBkb3VibGUgc3RlcEJhc2VWYWx1ZSA9IHBhcnNlVG9OdW1iZXJXaXRoRGVjaW1hbFBs
YWNlcyhlbGVtZW50KCktPmZhc3RHZXRBdHRyaWJ1dGUobWluQXR0ciksIG51bWJlckRlZmF1bHRT
dGVwQmFzZSwgJnN0ZXBCYXNlRGVjaW1hbFBsYWNlcyk7CisgICAgU3RlcFJhbmdlOjpOdW1iZXJX
aXRoRGVjaW1hbFBsYWNlcyBzdGVwQmFzZShzdGVwQmFzZVZhbHVlLCBtaW4oc3RlcEJhc2VEZWNp
bWFsUGxhY2VzLCAxNnUpKTsKKyAgICBkb3VibGUgbWluaW11bSA9IHBhcnNlVG9OdW1iZXIoZWxl
bWVudCgpLT5mYXN0R2V0QXR0cmlidXRlKG1pbkF0dHIpLCAtbnVtZXJpY19saW1pdHM8ZmxvYXQ+
OjptYXgoKSk7CisgICAgZG91YmxlIG1heGltdW0gPSBwYXJzZVRvTnVtYmVyKGVsZW1lbnQoKS0+
ZmFzdEdldEF0dHJpYnV0ZShtYXhBdHRyKSwgbnVtZXJpY19saW1pdHM8ZmxvYXQ+OjptYXgoKSk7
CiAKLSAgICBTdGVwUmFuZ2U6OkRvdWJsZVdpdGhEZWNpbWFsUGxhY2VzT3JNaXNzaW5nIHN0ZXAg
PSBTdGVwUmFuZ2U6OnBhcnNlU3RlcChhbnlTdGVwSGFuZGxpbmcsIHN0ZXBEZXNjcmlwdGlvbiwg
ZWxlbWVudCgpLT5mYXN0R2V0QXR0cmlidXRlKHN0ZXBBdHRyKSk7CisgICAgU3RlcFJhbmdlOjpO
dW1iZXJXaXRoRGVjaW1hbFBsYWNlc09yTWlzc2luZyBzdGVwID0gU3RlcFJhbmdlOjpwYXJzZVN0
ZXAoYW55U3RlcEhhbmRsaW5nLCBzdGVwRGVzY3JpcHRpb24sIGVsZW1lbnQoKS0+ZmFzdEdldEF0
dHJpYnV0ZShzdGVwQXR0cikpOwogICAgIHJldHVybiBTdGVwUmFuZ2Uoc3RlcEJhc2UsIG1pbmlt
dW0sIG1heGltdW0sIHN0ZXAsIHN0ZXBEZXNjcmlwdGlvbik7CiB9CiAKQEAgLTE4NiwxMiArMTg2
LDEyIEBAIHZvaWQgTnVtYmVySW5wdXRUeXBlOjpoYW5kbGVXaGVlbEV2ZW50KFdoZWVsRXZlbnQq
IGV2ZW50KQogICAgIGhhbmRsZVdoZWVsRXZlbnRGb3JTcGluQnV0dG9uKGV2ZW50KTsKIH0KIAot
ZG91YmxlIE51bWJlcklucHV0VHlwZTo6cGFyc2VUb0RvdWJsZShjb25zdCBTdHJpbmcmIHNyYywg
ZG91YmxlIGRlZmF1bHRWYWx1ZSkgY29uc3QKK2RvdWJsZSBOdW1iZXJJbnB1dFR5cGU6OnBhcnNl
VG9OdW1iZXIoY29uc3QgU3RyaW5nJiBzcmMsIGRvdWJsZSBkZWZhdWx0VmFsdWUpIGNvbnN0CiB7
CiAgICAgcmV0dXJuIHBhcnNlVG9Eb3VibGVGb3JOdW1iZXJUeXBlKHNyYywgZGVmYXVsdFZhbHVl
KTsKIH0KIAotZG91YmxlIE51bWJlcklucHV0VHlwZTo6cGFyc2VUb0RvdWJsZVdpdGhEZWNpbWFs
UGxhY2VzKGNvbnN0IFN0cmluZyYgc3JjLCBkb3VibGUgZGVmYXVsdFZhbHVlLCB1bnNpZ25lZCAq
ZGVjaW1hbFBsYWNlcykgY29uc3QKK2RvdWJsZSBOdW1iZXJJbnB1dFR5cGU6OnBhcnNlVG9OdW1i
ZXJXaXRoRGVjaW1hbFBsYWNlcyhjb25zdCBTdHJpbmcmIHNyYywgZG91YmxlIGRlZmF1bHRWYWx1
ZSwgdW5zaWduZWQgKmRlY2ltYWxQbGFjZXMpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHBhcnNlVG9E
b3VibGVGb3JOdW1iZXJUeXBlV2l0aERlY2ltYWxQbGFjZXMoc3JjLCBkZWNpbWFsUGxhY2VzLCBk
ZWZhdWx0VmFsdWUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJ
bnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmgKaW5kZXgg
Y2U0MTc3YmZjMzVhYzhlNTkwMTM3YjkzNGZjOGM1YjEyOWRjZGNlZC4uODc3YmNiNDU2YzAxYzhk
ZDk1MWQ4MWQ0OTI1MTBlNDNjMTliN2YyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9OdW1iZXJJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0
VHlwZS5oCkBAIC01MSw4ICs1MSw4IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBTdGVwUmFuZ2Ug
Y3JlYXRlU3RlcFJhbmdlKEFueVN0ZXBIYW5kbGluZykgY29uc3QgT1ZFUlJJREU7CiAgICAgdmly
dHVhbCB2b2lkIGhhbmRsZUtleWRvd25FdmVudChLZXlib2FyZEV2ZW50KikgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCB2b2lkIGhhbmRsZVdoZWVsRXZlbnQoV2hlZWxFdmVudCopIE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgZG91YmxlIHBhcnNlVG9Eb3VibGUoY29uc3QgU3RyaW5nJiwgZG91YmxlKSBj
b25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGRvdWJsZSBwYXJzZVRvRG91YmxlV2l0aERlY2lt
YWxQbGFjZXMoY29uc3QgU3RyaW5nJiwgZG91YmxlLCB1bnNpZ25lZCopIGNvbnN0IE9WRVJSSURF
OworICAgIHZpcnR1YWwgZG91YmxlIHBhcnNlVG9OdW1iZXIoY29uc3QgU3RyaW5nJiwgZG91Ymxl
KSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGRvdWJsZSBwYXJzZVRvTnVtYmVyV2l0aERl
Y2ltYWxQbGFjZXMoY29uc3QgU3RyaW5nJiwgZG91YmxlLCB1bnNpZ25lZCopIGNvbnN0IE9WRVJS
SURFOwogICAgIHZpcnR1YWwgU3RyaW5nIHNlcmlhbGl6ZShkb3VibGUpIGNvbnN0IE9WRVJSSURF
OwogICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVCbHVyRXZlbnQoKSBPVkVSUklERTsKICAgICB2aXJ0
dWFsIFN0cmluZyBsb2NhbGl6ZVZhbHVlKGNvbnN0IFN0cmluZyYpIGNvbnN0IE9WRVJSSURFOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcAppbmRleCBiNDE3ZGMzMjAzYjg0N2Fk
NWM2Y2EyNWRhNTFmZDljN2Q0NjA1Y2NiLi4xZWU2OGJhNTI2NzY0ZDE5NjEzZDg3ZjhhNjQ1ZWIw
NmY0NGRmNjlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcApAQCAtNTQs
MTEgKzU0LDE2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFt
ZXM7CiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCi1zdGF0aWMgY29uc3QgZG91YmxlIHJhbmdlRGVm
YXVsdE1pbmltdW0gPSAwLjA7Ci1zdGF0aWMgY29uc3QgZG91YmxlIHJhbmdlRGVmYXVsdE1heGlt
dW0gPSAxMDAuMDsKLXN0YXRpYyBjb25zdCBkb3VibGUgcmFuZ2VEZWZhdWx0U3RlcCA9IDEuMDsK
LXN0YXRpYyBjb25zdCBkb3VibGUgcmFuZ2VEZWZhdWx0U3RlcEJhc2UgPSAwLjA7Ci1zdGF0aWMg
Y29uc3QgZG91YmxlIHJhbmdlU3RlcFNjYWxlRmFjdG9yID0gMS4wOworc3RhdGljIGNvbnN0IGlu
dCByYW5nZURlZmF1bHRNaW5pbXVtID0gMDsKK3N0YXRpYyBjb25zdCBpbnQgcmFuZ2VEZWZhdWx0
TWF4aW11bSA9IDEwMDsKK3N0YXRpYyBjb25zdCBpbnQgcmFuZ2VEZWZhdWx0U3RlcCA9IDE7Citz
dGF0aWMgY29uc3QgaW50IHJhbmdlRGVmYXVsdFN0ZXBCYXNlID0gMDsKK3N0YXRpYyBjb25zdCBp
bnQgcmFuZ2VTdGVwU2NhbGVGYWN0b3IgPSAxOworCitzdGF0aWMgZG91YmxlIGVuc3VyZU1heGlt
dW0oZG91YmxlIHByb3Bvc2VkVmFsdWUsIGRvdWJsZSBtaW5pbXVtLCBkb3VibGUgZmFsbGJhY2tW
YWx1ZSkKK3sKKyAgICByZXR1cm4gcHJvcG9zZWRWYWx1ZSA+PSBtaW5pbXVtID8gcHJvcG9zZWRW
YWx1ZSA6IHN0ZDo6bWF4KG1pbmltdW0sIGZhbGxiYWNrVmFsdWUpOworfQogCiBQYXNzT3duUHRy
PElucHV0VHlwZT4gUmFuZ2VJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50KiBlbGVt
ZW50KQogewpAQCAtNzcsNyArODIsNyBAQCBjb25zdCBBdG9taWNTdHJpbmcmIFJhbmdlSW5wdXRU
eXBlOjpmb3JtQ29udHJvbFR5cGUoKSBjb25zdAogCiBkb3VibGUgUmFuZ2VJbnB1dFR5cGU6OnZh
bHVlQXNOdW1iZXIoKSBjb25zdAogewotICAgIHJldHVybiBwYXJzZVRvRG91YmxlKGVsZW1lbnQo
KS0+dmFsdWUoKSwgbnVtZXJpY19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCkpOworICAgIHJl
dHVybiBwYXJzZVRvTnVtYmVyKGVsZW1lbnQoKS0+dmFsdWUoKSwgbnVtZXJpY19saW1pdHM8ZG91
YmxlPjo6cXVpZXRfTmFOKCkpOwogfQogCiB2b2lkIFJhbmdlSW5wdXRUeXBlOjpzZXRWYWx1ZUFz
TnVtYmVyKGRvdWJsZSBuZXdWYWx1ZSwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvciBldmVudEJlaGF2
aW9yLCBFeGNlcHRpb25Db2RlJikgY29uc3QKQEAgLTk0LDE4ICs5OSwxNiBAQCBTdGVwUmFuZ2Ug
UmFuZ2VJbnB1dFR5cGU6OmNyZWF0ZVN0ZXBSYW5nZShBbnlTdGVwSGFuZGxpbmcgYW55U3RlcEhh
bmRsaW5nKSBjb25zdAogewogICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RlcFJhbmdl
OjpTdGVwRGVzY3JpcHRpb24sIHN0ZXBEZXNjcmlwdGlvbiwgKHJhbmdlRGVmYXVsdFN0ZXAsIHJh
bmdlRGVmYXVsdFN0ZXBCYXNlLCByYW5nZVN0ZXBTY2FsZUZhY3RvcikpOwogCi0gICAgZG91Ymxl
IG1pbmltdW0gPSBwYXJzZVRvRG91YmxlKGVsZW1lbnQoKS0+ZmFzdEdldEF0dHJpYnV0ZShtaW5B
dHRyKSwgcmFuZ2VEZWZhdWx0TWluaW11bSk7Ci0gICAgZG91YmxlIG1heGltdW0gPSBwYXJzZVRv
RG91YmxlKGVsZW1lbnQoKS0+ZmFzdEdldEF0dHJpYnV0ZShtYXhBdHRyKSwgcmFuZ2VEZWZhdWx0
TWF4aW11bSk7Ci0gICAgaWYgKG1heGltdW0gPCBtaW5pbXVtKQotICAgICAgICBtYXhpbXVtID0g
bWF4KG1pbmltdW0sIHJhbmdlRGVmYXVsdE1heGltdW0pOworICAgIGRvdWJsZSBtaW5pbXVtID0g
cGFyc2VUb051bWJlcihlbGVtZW50KCktPmZhc3RHZXRBdHRyaWJ1dGUobWluQXR0ciksIHJhbmdl
RGVmYXVsdE1pbmltdW0pOworICAgIGRvdWJsZSBtYXhpbXVtID0gZW5zdXJlTWF4aW11bShwYXJz
ZVRvTnVtYmVyKGVsZW1lbnQoKS0+ZmFzdEdldEF0dHJpYnV0ZShtYXhBdHRyKSwgcmFuZ2VEZWZh
dWx0TWF4aW11bSksIG1pbmltdW0sIHJhbmdlRGVmYXVsdE1heGltdW0pOwogCiAgICAgY29uc3Qg
QXRvbWljU3RyaW5nJiBwcmVjaXNpb25WYWx1ZSA9IGVsZW1lbnQoKS0+ZmFzdEdldEF0dHJpYnV0
ZShwcmVjaXNpb25BdHRyKTsKICAgICBpZiAoIXByZWNpc2lvblZhbHVlLmlzTnVsbCgpKSB7Ci0g
ICAgICAgIFN0ZXBSYW5nZTo6RG91YmxlV2l0aERlY2ltYWxQbGFjZXNPck1pc3Npbmcgc3RlcCgx
LCAhZXF1YWxJZ25vcmluZ0Nhc2UocHJlY2lzaW9uVmFsdWUsICJmbG9hdCIpKTsKKyAgICAgICAg
U3RlcFJhbmdlOjpOdW1iZXJXaXRoRGVjaW1hbFBsYWNlc09yTWlzc2luZyBzdGVwKDEsICFlcXVh
bElnbm9yaW5nQ2FzZShwcmVjaXNpb25WYWx1ZSwgImZsb2F0IikpOwogICAgICAgICByZXR1cm4g
U3RlcFJhbmdlKG1pbmltdW0sIG1pbmltdW0sIG1heGltdW0sIHN0ZXAsIHN0ZXBEZXNjcmlwdGlv
bik7CiAgICAgfQogCi0gICAgU3RlcFJhbmdlOjpEb3VibGVXaXRoRGVjaW1hbFBsYWNlc09yTWlz
c2luZyBzdGVwID0gU3RlcFJhbmdlOjpwYXJzZVN0ZXAoYW55U3RlcEhhbmRsaW5nLCBzdGVwRGVz
Y3JpcHRpb24sIGVsZW1lbnQoKS0+ZmFzdEdldEF0dHJpYnV0ZShzdGVwQXR0cikpOworICAgIFN0
ZXBSYW5nZTo6TnVtYmVyV2l0aERlY2ltYWxQbGFjZXNPck1pc3Npbmcgc3RlcCA9IFN0ZXBSYW5n
ZTo6cGFyc2VTdGVwKGFueVN0ZXBIYW5kbGluZywgc3RlcERlc2NyaXB0aW9uLCBlbGVtZW50KCkt
PmZhc3RHZXRBdHRyaWJ1dGUoc3RlcEF0dHIpKTsKICAgICByZXR1cm4gU3RlcFJhbmdlKG1pbmlt
dW0sIG1pbmltdW0sIG1heGltdW0sIHN0ZXAsIHN0ZXBEZXNjcmlwdGlvbik7CiB9CiAKQEAgLTEz
OCw3ICsxNDEsNyBAQCB2b2lkIFJhbmdlSW5wdXRUeXBlOjpoYW5kbGVLZXlkb3duRXZlbnQoS2V5
Ym9hcmRFdmVudCogZXZlbnQpCiAKICAgICBjb25zdCBTdHJpbmcmIGtleSA9IGV2ZW50LT5rZXlJ
ZGVudGlmaWVyKCk7CiAKLSAgICBkb3VibGUgY3VycmVudCA9IHBhcnNlVG9Eb3VibGUoZWxlbWVu
dCgpLT52YWx1ZSgpLCBudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKSk7CisgICAg
ZG91YmxlIGN1cnJlbnQgPSBwYXJzZVRvTnVtYmVyKGVsZW1lbnQoKS0+dmFsdWUoKSwgbnVtZXJp
Y19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCkpOwogICAgIEFTU0VSVChpc2Zpbml0ZShjdXJy
ZW50KSk7CiAKICAgICBTdGVwUmFuZ2Ugc3RlcFJhbmdlKGNyZWF0ZVN0ZXBSYW5nZShSZWplY3RB
bnkpKTsKQEAgLTIxOSw3ICsyMjIsNyBAQCBSZW5kZXJPYmplY3QqIFJhbmdlSW5wdXRUeXBlOjpj
cmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSogYXJlbmEsIFJlbmRlclN0eWxlKikgYwogICAgIHJl
dHVybiBuZXcgKGFyZW5hKSBSZW5kZXJTbGlkZXIoZWxlbWVudCgpKTsKIH0KIAotZG91YmxlIFJh
bmdlSW5wdXRUeXBlOjpwYXJzZVRvRG91YmxlKGNvbnN0IFN0cmluZyYgc3JjLCBkb3VibGUgZGVm
YXVsdFZhbHVlKSBjb25zdAorZG91YmxlIFJhbmdlSW5wdXRUeXBlOjpwYXJzZVRvTnVtYmVyKGNv
bnN0IFN0cmluZyYgc3JjLCBkb3VibGUgZGVmYXVsdFZhbHVlKSBjb25zdAogewogICAgIHJldHVy
biBwYXJzZVRvRG91YmxlRm9yTnVtYmVyVHlwZShzcmMsIGRlZmF1bHRWYWx1ZSk7CiB9CkBAIC0y
NjksNyArMjcyLDcgQEAgU3RyaW5nIFJhbmdlSW5wdXRUeXBlOjpmYWxsYmFja1ZhbHVlKCkgY29u
c3QKIFN0cmluZyBSYW5nZUlucHV0VHlwZTo6c2FuaXRpemVWYWx1ZShjb25zdCBTdHJpbmcmIHBy
b3Bvc2VkVmFsdWUpIGNvbnN0CiB7CiAgICAgU3RlcFJhbmdlIHN0ZXBSYW5nZShjcmVhdGVTdGVw
UmFuZ2UoUmVqZWN0QW55KSk7Ci0gICAgZG91YmxlIHByb3Bvc2VkRG91YmxlVmFsdWUgPSBwYXJz
ZVRvRG91YmxlKHByb3Bvc2VkVmFsdWUsIHN0ZXBSYW5nZS5kZWZhdWx0VmFsdWUoKSk7CisgICAg
ZG91YmxlIHByb3Bvc2VkRG91YmxlVmFsdWUgPSBwYXJzZVRvTnVtYmVyKHByb3Bvc2VkVmFsdWUs
IHN0ZXBSYW5nZS5kZWZhdWx0VmFsdWUoKSk7CiAgICAgcmV0dXJuIHNlcmlhbGl6ZUZvck51bWJl
clR5cGUoc3RlcFJhbmdlLmNsYW1wVmFsdWUocHJvcG9zZWREb3VibGVWYWx1ZSkpOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmgKaW5kZXggNDVmYjRhZmEzYTk1NGQzNGM3ODE4
NTk5ZTMxZGI1MzQ4NDc5ZDFmMy4uMzZmYWExZDcyMGY1ZDdmZWFiYjUyNmFhZGEwZTA1OGQ4NGY0
NWU0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuaApAQCAtNTQsNyArNTQsNyBA
QCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVLZXlkb3duRXZlbnQoS2V5Ym9hcmRF
dmVudCopIE9WRVJSSURFOwogICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJl
cihSZW5kZXJBcmVuYSosIFJlbmRlclN0eWxlKikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVh
bCB2b2lkIGNyZWF0ZVNoYWRvd1N1YnRyZWUoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGRvdWJs
ZSBwYXJzZVRvRG91YmxlKGNvbnN0IFN0cmluZyYsIGRvdWJsZSkgY29uc3QgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCBkb3VibGUgcGFyc2VUb051bWJlcihjb25zdCBTdHJpbmcmLCBkb3VibGUpIGNv
bnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgU3RyaW5nIHNlcmlhbGl6ZShkb3VibGUpIGNvbnN0
IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBhY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91
c2VFdmVudHMpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBtaW5Pck1heEF0dHJpYnV0ZUNo
YW5nZWQoKSBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvU3RlcFJh
bmdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvU3RlcFJhbmdlLmNwcAppbmRleCA5YjliN2Rj
Yzk0OWNjNzVkNTUwYjA4MDdhOTNiNzYwNDU3ODg3YTg5Li5mYTM3YzNlZDFlYjQzMDUzOTI5Nzdl
YmJkYzUxMjRlZmIwYjFjMzc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1N0ZXBS
YW5nZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9TdGVwUmFuZ2UuY3BwCkBAIC01NSw3
ICs1NSw3IEBAIFN0ZXBSYW5nZTo6U3RlcFJhbmdlKGNvbnN0IFN0ZXBSYW5nZSYgc3RlcFJhbmdl
KQogewogfQogCi1TdGVwUmFuZ2U6OlN0ZXBSYW5nZShjb25zdCBEb3VibGVXaXRoRGVjaW1hbFBs
YWNlcyYgc3RlcEJhc2UsIGRvdWJsZSBtaW5pbXVtLCBkb3VibGUgbWF4aW11bSwgY29uc3QgRG91
YmxlV2l0aERlY2ltYWxQbGFjZXNPck1pc3NpbmcmIHN0ZXAsIGNvbnN0IFN0ZXBEZXNjcmlwdGlv
biYgc3RlcERlc2NyaXB0aW9uKQorU3RlcFJhbmdlOjpTdGVwUmFuZ2UoY29uc3QgTnVtYmVyV2l0
aERlY2ltYWxQbGFjZXMmIHN0ZXBCYXNlLCBkb3VibGUgbWluaW11bSwgZG91YmxlIG1heGltdW0s
IGNvbnN0IE51bWJlcldpdGhEZWNpbWFsUGxhY2VzT3JNaXNzaW5nJiBzdGVwLCBjb25zdCBTdGVw
RGVzY3JpcHRpb24mIHN0ZXBEZXNjcmlwdGlvbikKICAgICA6IG1fbWF4aW11bShtYXhpbXVtKQog
ICAgICwgbV9taW5pbXVtKG1pbmltdW0pCiAgICAgLCBtX3N0ZXAoc3RlcC52YWx1ZS52YWx1ZSkK
QEAgLTEwNSwyNiArMTA1LDI2IEBAIGRvdWJsZSBTdGVwUmFuZ2U6OmNsYW1wVmFsdWUoZG91Ymxl
IHZhbHVlKSBjb25zdAogICAgIHJldHVybiBjbGFtcGVkVmFsdWU7CiB9CiAKLVN0ZXBSYW5nZTo6
RG91YmxlV2l0aERlY2ltYWxQbGFjZXNPck1pc3NpbmcgU3RlcFJhbmdlOjpwYXJzZVN0ZXAoQW55
U3RlcEhhbmRsaW5nIGFueVN0ZXBIYW5kbGluZywgY29uc3QgU3RlcERlc2NyaXB0aW9uJiBzdGVw
RGVzY3JpcHRpb24sIGNvbnN0IFN0cmluZyYgc3RlcFN0cmluZykKK1N0ZXBSYW5nZTo6TnVtYmVy
V2l0aERlY2ltYWxQbGFjZXNPck1pc3NpbmcgU3RlcFJhbmdlOjpwYXJzZVN0ZXAoQW55U3RlcEhh
bmRsaW5nIGFueVN0ZXBIYW5kbGluZywgY29uc3QgU3RlcERlc2NyaXB0aW9uJiBzdGVwRGVzY3Jp
cHRpb24sIGNvbnN0IFN0cmluZyYgc3RlcFN0cmluZykKIHsKICAgICBpZiAoc3RlcFN0cmluZy5p
c0VtcHR5KCkpCi0gICAgICAgIHJldHVybiBEb3VibGVXaXRoRGVjaW1hbFBsYWNlc09yTWlzc2lu
ZyhzdGVwRGVzY3JpcHRpb24uZGVmYXVsdFZhbHVlKCkpOworICAgICAgICByZXR1cm4gTnVtYmVy
V2l0aERlY2ltYWxQbGFjZXNPck1pc3Npbmcoc3RlcERlc2NyaXB0aW9uLmRlZmF1bHRWYWx1ZSgp
KTsKIAogICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShzdGVwU3RyaW5nLCAiYW55IikpIHsKICAg
ICAgICAgc3dpdGNoIChhbnlTdGVwSGFuZGxpbmcpIHsKICAgICAgICAgY2FzZSBSZWplY3RBbnk6
Ci0gICAgICAgICAgICByZXR1cm4gRG91YmxlV2l0aERlY2ltYWxQbGFjZXNPck1pc3NpbmcoRG91
YmxlV2l0aERlY2ltYWxQbGFjZXMoMSksIGZhbHNlKTsKKyAgICAgICAgICAgIHJldHVybiBOdW1i
ZXJXaXRoRGVjaW1hbFBsYWNlc09yTWlzc2luZyhOdW1iZXJXaXRoRGVjaW1hbFBsYWNlcygxKSwg
ZmFsc2UpOwogICAgICAgICBjYXNlIEFueUlzRGVmYXVsdFN0ZXA6Ci0gICAgICAgICAgICByZXR1
cm4gRG91YmxlV2l0aERlY2ltYWxQbGFjZXNPck1pc3Npbmcoc3RlcERlc2NyaXB0aW9uLmRlZmF1
bHRWYWx1ZSgpKTsKKyAgICAgICAgICAgIHJldHVybiBOdW1iZXJXaXRoRGVjaW1hbFBsYWNlc09y
TWlzc2luZyhzdGVwRGVzY3JpcHRpb24uZGVmYXVsdFZhbHVlKCkpOwogICAgICAgICBkZWZhdWx0
OgogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIH0KICAgICB9CiAK
LSAgICBEb3VibGVXaXRoRGVjaW1hbFBsYWNlc09yTWlzc2luZyBzdGVwKDApOworICAgIE51bWJl
cldpdGhEZWNpbWFsUGxhY2VzT3JNaXNzaW5nIHN0ZXAoMCk7CiAgICAgc3RlcC52YWx1ZS52YWx1
ZSA9IHBhcnNlVG9Eb3VibGVGb3JOdW1iZXJUeXBlV2l0aERlY2ltYWxQbGFjZXMoc3RlcFN0cmlu
ZywgJnN0ZXAudmFsdWUuZGVjaW1hbFBsYWNlcyk7CiAgICAgaWYgKCFpc2Zpbml0ZShzdGVwLnZh
bHVlLnZhbHVlKSB8fCBzdGVwLnZhbHVlLnZhbHVlIDw9IDAuMCkKLSAgICAgICAgcmV0dXJuIERv
dWJsZVdpdGhEZWNpbWFsUGxhY2VzT3JNaXNzaW5nKHN0ZXBEZXNjcmlwdGlvbi5kZWZhdWx0VmFs
dWUoKSk7CisgICAgICAgIHJldHVybiBOdW1iZXJXaXRoRGVjaW1hbFBsYWNlc09yTWlzc2luZyhz
dGVwRGVzY3JpcHRpb24uZGVmYXVsdFZhbHVlKCkpOwogCiAgICAgc3dpdGNoIChzdGVwRGVzY3Jp
cHRpb24uc3RlcFZhbHVlU2hvdWxkQmUpIHsKICAgICBjYXNlIFN0ZXBWYWx1ZVNob3VsZEJlUmVh
bDoKQEAgLTE0OCwyNCArMTQ4LDI0IEBAIFN0ZXBSYW5nZTo6RG91YmxlV2l0aERlY2ltYWxQbGFj
ZXNPck1pc3NpbmcgU3RlcFJhbmdlOjpwYXJzZVN0ZXAoQW55U3RlcEhhbmRsaW5nCiAgICAgcmV0
dXJuIHN0ZXA7CiB9CiAKLWJvb2wgU3RlcFJhbmdlOjpzdGVwTWlzbWF0Y2goZG91YmxlIGRvdWJs
ZVZhbHVlKSBjb25zdAorYm9vbCBTdGVwUmFuZ2U6OnN0ZXBNaXNtYXRjaChkb3VibGUgdmFsdWVG
b3JDaGVjaykgY29uc3QKIHsKICAgICBpZiAoIW1faGFzU3RlcCkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgIGlmICghaXNmaW5pdGUoZG91YmxlVmFsdWUpKQorICAgIGlmICghaXNmaW5pdGUo
dmFsdWVGb3JDaGVjaykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBkb3VibGVWYWx1ZSA9
IGZhYnMoZG91YmxlVmFsdWUgLSBtX3N0ZXBCYXNlKTsKLSAgICBpZiAoaXNpbmYoZG91YmxlVmFs
dWUpKQorICAgIGRvdWJsZSB2YWx1ZSA9IGZhYnModmFsdWVGb3JDaGVjayAtIG1fc3RlcEJhc2Up
OworICAgIGlmIChpc2luZih2YWx1ZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAvLyBk
b3VibGUncyBmcmFjdGlvbmFsIHBhcnQgc2l6ZSBpcyBEQkxfTUFOX0RJRy1iaXQuIElmIHRoZSBj
dXJyZW50IHZhbHVlCiAgICAgLy8gaXMgZ3JlYXRlciB0aGFuIHN0ZXAqMl5EQkxfTUFOVF9ESUcs
IHRoZSBmb2xsb3dpbmcgY29tcHV0YXRpb24gZm9yCiAgICAgLy8gcmVtYWluZGVyIG1ha2VzIG5v
IHNlbnNlLgotICAgIGlmIChkb3VibGVWYWx1ZSAvIHBvdygyLjAsIERCTF9NQU5UX0RJRykgPiBt
X3N0ZXApCisgICAgaWYgKHZhbHVlIC8gcG93KDIuMCwgREJMX01BTlRfRElHKSA+IG1fc3RlcCkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIC8vIFRoZSBjb21wdXRhdGlvbiBmb2xsb3dzIEhU
TUw1IDQuMTAuNy4yLjEwIGBUaGUgc3RlcCBhdHRyaWJ1dGUnIDoKICAgICAvLyAuLi4gdGhhdCBu
dW1iZXIgc3VidHJhY3RlZCBmcm9tIHRoZSBzdGVwIGJhc2UgaXMgbm90IGFuIGludGVncmFsIG11
bHRpcGxlCiAgICAgLy8gb2YgdGhlIGFsbG93ZWQgdmFsdWUgc3RlcCwgdGhlIGVsZW1lbnQgaXMg
c3VmZmVyaW5nIGZyb20gYSBzdGVwIG1pc21hdGNoLgotICAgIGRvdWJsZSByZW1haW5kZXIgPSBm
YWJzKGRvdWJsZVZhbHVlIC0gbV9zdGVwICogcm91bmQoZG91YmxlVmFsdWUgLyBtX3N0ZXApKTsK
KyAgICBkb3VibGUgcmVtYWluZGVyID0gZmFicyh2YWx1ZSAtIG1fc3RlcCAqIHJvdW5kKHZhbHVl
IC8gbV9zdGVwKSk7CiAgICAgLy8gQWNjZXB0cyBlcnJvcyBpbiBsb3dlciBmcmFjdGlvbmFsIHBh
cnQgd2hpY2ggSUVFRSA3NTQgc2luZ2xlLXByZWNpc2lvbgogICAgIC8vIGNhbid0IHJlcHJlc2Vu
dC4KICAgICBkb3VibGUgY29tcHV0ZWRBY2NlcHRhYmxlRXJyb3IgPSBhY2NlcHRhYmxlRXJyb3Io
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvU3RlcFJhbmdlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1N0ZXBSYW5nZS5oCmluZGV4IDBhZGJmZDg1N2E1MDY5OTkzMWNiZDM5MTA2
ZjZiMDRhNmU3NDJjOGQuLjFhY2E3NWViYTg3ZmVlYTkzMjg4NWUyMDFiNmYzMGM1MzFlOTVlMmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvU3RlcFJhbmdlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9TdGVwUmFuZ2UuaApAQCAtMzIsMjIgKzMyLDIyIEBAIGVudW0gQW55U3Rl
cEhhbmRsaW5nIHsgUmVqZWN0QW55LCBBbnlJc0RlZmF1bHRTdGVwIH07CiAKIGNsYXNzIFN0ZXBS
YW5nZSB7CiBwdWJsaWM6Ci0gICAgc3RydWN0IERvdWJsZVdpdGhEZWNpbWFsUGxhY2VzIHsKKyAg
ICBzdHJ1Y3QgTnVtYmVyV2l0aERlY2ltYWxQbGFjZXMgewogICAgICAgICB1bnNpZ25lZCBkZWNp
bWFsUGxhY2VzOwogICAgICAgICBkb3VibGUgdmFsdWU7CiAKLSAgICAgICAgRG91YmxlV2l0aERl
Y2ltYWxQbGFjZXMoZG91YmxlIHZhbHVlID0gMCwgdW5zaWduZWQgZGVjaW1hbFBsYWNlcyA9IDAp
CisgICAgICAgIE51bWJlcldpdGhEZWNpbWFsUGxhY2VzKGRvdWJsZSB2YWx1ZSA9IDAsIHVuc2ln
bmVkIGRlY2ltYWxQbGFjZXMgPSAwKQogICAgICAgICAgICAgOiBkZWNpbWFsUGxhY2VzKGRlY2lt
YWxQbGFjZXMpCiAgICAgICAgICAgICAsIHZhbHVlKHZhbHVlKQogICAgICAgICB7CiAgICAgICAg
IH0KICAgICB9OwogCi0gICAgc3RydWN0IERvdWJsZVdpdGhEZWNpbWFsUGxhY2VzT3JNaXNzaW5n
IHsKKyAgICBzdHJ1Y3QgTnVtYmVyV2l0aERlY2ltYWxQbGFjZXNPck1pc3NpbmcgewogICAgICAg
ICBib29sIGhhc1ZhbHVlOwotICAgICAgICBEb3VibGVXaXRoRGVjaW1hbFBsYWNlcyB2YWx1ZTsK
KyAgICAgICAgTnVtYmVyV2l0aERlY2ltYWxQbGFjZXMgdmFsdWU7CiAKLSAgICAgICAgRG91Ymxl
V2l0aERlY2ltYWxQbGFjZXNPck1pc3NpbmcoRG91YmxlV2l0aERlY2ltYWxQbGFjZXMgdmFsdWUs
IGJvb2wgaGFzVmFsdWUgPSB0cnVlKQorICAgICAgICBOdW1iZXJXaXRoRGVjaW1hbFBsYWNlc09y
TWlzc2luZyhOdW1iZXJXaXRoRGVjaW1hbFBsYWNlcyB2YWx1ZSwgYm9vbCBoYXNWYWx1ZSA9IHRy
dWUpCiAgICAgICAgICAgICA6IGhhc1ZhbHVlKGhhc1ZhbHVlKQogICAgICAgICAgICAgLCB2YWx1
ZSh2YWx1ZSkKICAgICAgICAgewpAQCAtOTAsMTQgKzkwLDE0IEBAIHB1YmxpYzoKIAogICAgIFN0
ZXBSYW5nZSgpOwogICAgIFN0ZXBSYW5nZShjb25zdCBTdGVwUmFuZ2UmKTsKLSAgICBTdGVwUmFu
Z2UoY29uc3QgRG91YmxlV2l0aERlY2ltYWxQbGFjZXMmIHN0ZXBCYXNlLCBkb3VibGUgbWluaW11
bSwgZG91YmxlIG1heGltdW0sIGNvbnN0IERvdWJsZVdpdGhEZWNpbWFsUGxhY2VzT3JNaXNzaW5n
JiBzdGVwLCBjb25zdCBTdGVwRGVzY3JpcHRpb24mKTsKKyAgICBTdGVwUmFuZ2UoY29uc3QgTnVt
YmVyV2l0aERlY2ltYWxQbGFjZXMmIHN0ZXBCYXNlLCBkb3VibGUgbWluaW11bSwgZG91YmxlIG1h
eGltdW0sIGNvbnN0IE51bWJlcldpdGhEZWNpbWFsUGxhY2VzT3JNaXNzaW5nJiBzdGVwLCBjb25z
dCBTdGVwRGVzY3JpcHRpb24mKTsKICAgICBkb3VibGUgYWNjZXB0YWJsZUVycm9yKCkgY29uc3Q7
CiAgICAgZG91YmxlIGFsaWduVmFsdWVGb3JTdGVwKGRvdWJsZSBjdXJyZW50VmFsdWUsIHVuc2ln
bmVkIGN1cnJlbnREZWNpbWFsUGxhY2VzLCBkb3VibGUgbmV3VmFsdWUpIGNvbnN0OwogICAgIGRv
dWJsZSBjbGFtcFZhbHVlKGRvdWJsZSB2YWx1ZSkgY29uc3Q7CiAgICAgYm9vbCBoYXNTdGVwKCkg
Y29uc3QgeyByZXR1cm4gbV9oYXNTdGVwOyB9CiAgICAgZG91YmxlIG1heGltdW0oKSBjb25zdCB7
IHJldHVybiBtX21heGltdW07IH0KICAgICBkb3VibGUgbWluaW11bSgpIGNvbnN0IHsgcmV0dXJu
IG1fbWluaW11bTsgfQotICAgIHN0YXRpYyBEb3VibGVXaXRoRGVjaW1hbFBsYWNlc09yTWlzc2lu
ZyBwYXJzZVN0ZXAoQW55U3RlcEhhbmRsaW5nLCBjb25zdCBTdGVwRGVzY3JpcHRpb24mLCBjb25z
dCBTdHJpbmcmKTsKKyAgICBzdGF0aWMgTnVtYmVyV2l0aERlY2ltYWxQbGFjZXNPck1pc3Npbmcg
cGFyc2VTdGVwKEFueVN0ZXBIYW5kbGluZywgY29uc3QgU3RlcERlc2NyaXB0aW9uJiwgY29uc3Qg
U3RyaW5nJik7CiAgICAgZG91YmxlIHN0ZXAoKSBjb25zdCB7IHJldHVybiBtX3N0ZXA7IH0KICAg
ICBkb3VibGUgc3RlcEJhc2UoKSBjb25zdCB7IHJldHVybiBtX3N0ZXBCYXNlOyB9CiAgICAgdW5z
aWduZWQgc3RlcEJhc2VEZWNpbWFsUGxhY2VzKCkgY29uc3QgeyByZXR1cm4gbV9zdGVwQmFzZURl
Y2ltYWxQbGFjZXM7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0
VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuY3BwCmluZGV4IGVj
NTI3MDI0Yzk1ZGFkYmY4OWEzMzA2OWRkYmY5YmNkOTllMWNkNmYuLjQ4MWFiOWY3Y2Y4MGRmZTcw
NjBjMTg2YWY0ZWNjNjgzZDYxMGE0MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
VGltZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBl
LmNwcApAQCAtNDUsOSArNDUsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVz
cGFjZSBIVE1MTmFtZXM7CiAKLXN0YXRpYyBjb25zdCBkb3VibGUgdGltZURlZmF1bHRTdGVwID0g
NjAuMDsKLXN0YXRpYyBjb25zdCBkb3VibGUgdGltZURlZmF1bHRTdGVwQmFzZSA9IDAuMDsKLXN0
YXRpYyBjb25zdCBkb3VibGUgdGltZVN0ZXBTY2FsZUZhY3RvciA9IDEwMDAuMDsKK3N0YXRpYyBj
b25zdCBpbnQgdGltZURlZmF1bHRTdGVwID0gNjA7CitzdGF0aWMgY29uc3QgaW50IHRpbWVEZWZh
dWx0U3RlcEJhc2UgPSAwOworc3RhdGljIGNvbnN0IGludCB0aW1lU3RlcFNjYWxlRmFjdG9yID0g
MTAwMDsKIAogUGFzc093blB0cjxJbnB1dFR5cGU+IFRpbWVJbnB1dFR5cGU6OmNyZWF0ZShIVE1M
SW5wdXRFbGVtZW50KiBlbGVtZW50KQogewpAQCAtODMsMTAgKzgzLDEwIEBAIFN0ZXBSYW5nZSBU
aW1lSW5wdXRUeXBlOjpjcmVhdGVTdGVwUmFuZ2UoQW55U3RlcEhhbmRsaW5nIGFueVN0ZXBIYW5k
bGluZykgY29uc3QKIHsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0ZXBSYW5nZTo6
U3RlcERlc2NyaXB0aW9uLCBzdGVwRGVzY3JpcHRpb24sICh0aW1lRGVmYXVsdFN0ZXAsIHRpbWVE
ZWZhdWx0U3RlcEJhc2UsIHRpbWVTdGVwU2NhbGVGYWN0b3IsIFN0ZXBSYW5nZTo6U2NhbGVkU3Rl
cFZhbHVlU2hvdWxkQmVJbnRlZ2VyKSk7CiAKLSAgICBkb3VibGUgc3RlcEJhc2UgPSBwYXJzZVRv
RG91YmxlKGVsZW1lbnQoKS0+ZmFzdEdldEF0dHJpYnV0ZShtaW5BdHRyKSwgMCk7Ci0gICAgZG91
YmxlIG1pbmltdW0gPSBwYXJzZVRvRG91YmxlKGVsZW1lbnQoKS0+ZmFzdEdldEF0dHJpYnV0ZSht
aW5BdHRyKSwgRGF0ZUNvbXBvbmVudHM6Om1pbmltdW1UaW1lKCkpOwotICAgIGRvdWJsZSBtYXhp
bXVtID0gcGFyc2VUb0RvdWJsZShlbGVtZW50KCktPmZhc3RHZXRBdHRyaWJ1dGUobWF4QXR0ciks
IERhdGVDb21wb25lbnRzOjptYXhpbXVtVGltZSgpKTsKLSAgICBTdGVwUmFuZ2U6OkRvdWJsZVdp
dGhEZWNpbWFsUGxhY2VzT3JNaXNzaW5nIHN0ZXAgPSBTdGVwUmFuZ2U6OnBhcnNlU3RlcChhbnlT
dGVwSGFuZGxpbmcsIHN0ZXBEZXNjcmlwdGlvbiwgZWxlbWVudCgpLT5mYXN0R2V0QXR0cmlidXRl
KHN0ZXBBdHRyKSk7CisgICAgZG91YmxlIHN0ZXBCYXNlID0gcGFyc2VUb051bWJlcihlbGVtZW50
KCktPmZhc3RHZXRBdHRyaWJ1dGUobWluQXR0ciksIDApOworICAgIGRvdWJsZSBtaW5pbXVtID0g
cGFyc2VUb051bWJlcihlbGVtZW50KCktPmZhc3RHZXRBdHRyaWJ1dGUobWluQXR0ciksIERhdGVD
b21wb25lbnRzOjptaW5pbXVtVGltZSgpKTsKKyAgICBkb3VibGUgbWF4aW11bSA9IHBhcnNlVG9O
dW1iZXIoZWxlbWVudCgpLT5mYXN0R2V0QXR0cmlidXRlKG1heEF0dHIpLCBEYXRlQ29tcG9uZW50
czo6bWF4aW11bVRpbWUoKSk7CisgICAgU3RlcFJhbmdlOjpOdW1iZXJXaXRoRGVjaW1hbFBsYWNl
c09yTWlzc2luZyBzdGVwID0gU3RlcFJhbmdlOjpwYXJzZVN0ZXAoYW55U3RlcEhhbmRsaW5nLCBz
dGVwRGVzY3JpcHRpb24sIGVsZW1lbnQoKS0+ZmFzdEdldEF0dHJpYnV0ZShzdGVwQXR0cikpOwog
ICAgIHJldHVybiBTdGVwUmFuZ2Uoc3RlcEJhc2UsIG1pbmltdW0sIG1heGltdW0sIHN0ZXAsIHN0
ZXBEZXNjcmlwdGlvbik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvV2Vl
a0lucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5cGUuY3BwCmlu
ZGV4IDNhNjIyODkxMWM1M2NmMjMzNTA2YmUwNDI1YTdmZWY0NTNlMTMyNWMuLjkyYWM3ZGI4M2Y5
OTVlNGVlOTAyNTUxMTFjYjljYmQ4ZTNjNTRlZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvV2Vla0lucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9XZWVrSW5w
dXRUeXBlLmNwcApAQCAtNDIsOSArNDIsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5n
IG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKLXN0YXRpYyBjb25zdCBkb3VibGUgd2Vla0RlZmF1bHRT
dGVwQmFzZSA9IC0yNTkyMDAwMDAuMDsgLy8gVGhlIGZpcnN0IGRheSBvZiAxOTcwLVcwMS4KLXN0
YXRpYyBjb25zdCBkb3VibGUgd2Vla0RlZmF1bHRTdGVwID0gMS4wOwotc3RhdGljIGNvbnN0IGRv
dWJsZSB3ZWVrU3RlcFNjYWxlRmFjdG9yID0gNjA0ODAwMDAwLjA7CitzdGF0aWMgY29uc3QgaW50
IHdlZWtEZWZhdWx0U3RlcEJhc2UgPSAtMjU5MjAwMDAwOyAvLyBUaGUgZmlyc3QgZGF5IG9mIDE5
NzAtVzAxLgorc3RhdGljIGNvbnN0IGludCB3ZWVrRGVmYXVsdFN0ZXAgPSAxOworc3RhdGljIGNv
bnN0IGludCB3ZWVrU3RlcFNjYWxlRmFjdG9yID0gNjA0ODAwMDAwOwogCiBQYXNzT3duUHRyPElu
cHV0VHlwZT4gV2Vla0lucHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1lbnQp
CiB7CkBAIC02NSwxMCArNjUsMTAgQEAgU3RlcFJhbmdlIFdlZWtJbnB1dFR5cGU6OmNyZWF0ZVN0
ZXBSYW5nZShBbnlTdGVwSGFuZGxpbmcgYW55U3RlcEhhbmRsaW5nKSBjb25zdAogewogICAgIERF
RklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RlcFJhbmdlOjpTdGVwRGVzY3JpcHRpb24sIHN0ZXBE
ZXNjcmlwdGlvbiwgKHdlZWtEZWZhdWx0U3RlcCwgd2Vla0RlZmF1bHRTdGVwQmFzZSwgd2Vla1N0
ZXBTY2FsZUZhY3RvciwgU3RlcFJhbmdlOjpQYXJzZWRTdGVwVmFsdWVTaG91bGRCZUludGVnZXIp
KTsKIAotICAgIGRvdWJsZSBzdGVwQmFzZSA9IHBhcnNlVG9Eb3VibGUoZWxlbWVudCgpLT5mYXN0
R2V0QXR0cmlidXRlKG1pbkF0dHIpLCB3ZWVrRGVmYXVsdFN0ZXBCYXNlKTsKLSAgICBkb3VibGUg
bWluaW11bSA9IHBhcnNlVG9Eb3VibGUoZWxlbWVudCgpLT5mYXN0R2V0QXR0cmlidXRlKG1pbkF0
dHIpLCBEYXRlQ29tcG9uZW50czo6bWluaW11bVdlZWsoKSk7Ci0gICAgZG91YmxlIG1heGltdW0g
PSBwYXJzZVRvRG91YmxlKGVsZW1lbnQoKS0+ZmFzdEdldEF0dHJpYnV0ZShtYXhBdHRyKSwgRGF0
ZUNvbXBvbmVudHM6Om1heGltdW1XZWVrKCkpOwotICAgIFN0ZXBSYW5nZTo6RG91YmxlV2l0aERl
Y2ltYWxQbGFjZXNPck1pc3Npbmcgc3RlcCA9IFN0ZXBSYW5nZTo6cGFyc2VTdGVwKGFueVN0ZXBI
YW5kbGluZywgc3RlcERlc2NyaXB0aW9uLCBlbGVtZW50KCktPmZhc3RHZXRBdHRyaWJ1dGUoc3Rl
cEF0dHIpKTsKKyAgICBkb3VibGUgc3RlcEJhc2UgPSBwYXJzZVRvTnVtYmVyKGVsZW1lbnQoKS0+
ZmFzdEdldEF0dHJpYnV0ZShtaW5BdHRyKSwgd2Vla0RlZmF1bHRTdGVwQmFzZSk7CisgICAgZG91
YmxlIG1pbmltdW0gPSBwYXJzZVRvTnVtYmVyKGVsZW1lbnQoKS0+ZmFzdEdldEF0dHJpYnV0ZSht
aW5BdHRyKSwgRGF0ZUNvbXBvbmVudHM6Om1pbmltdW1XZWVrKCkpOworICAgIGRvdWJsZSBtYXhp
bXVtID0gcGFyc2VUb051bWJlcihlbGVtZW50KCktPmZhc3RHZXRBdHRyaWJ1dGUobWF4QXR0ciks
IERhdGVDb21wb25lbnRzOjptYXhpbXVtV2VlaygpKTsKKyAgICBTdGVwUmFuZ2U6Ok51bWJlcldp
dGhEZWNpbWFsUGxhY2VzT3JNaXNzaW5nIHN0ZXAgPSBTdGVwUmFuZ2U6OnBhcnNlU3RlcChhbnlT
dGVwSGFuZGxpbmcsIHN0ZXBEZXNjcmlwdGlvbiwgZWxlbWVudCgpLT5mYXN0R2V0QXR0cmlidXRl
KHN0ZXBBdHRyKSk7CiAgICAgcmV0dXJuIFN0ZXBSYW5nZShzdGVwQmFzZSwgbWluaW11bSwgbWF4
aW11bSwgc3RlcCwgc3RlcERlc2NyaXB0aW9uKTsKIH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>