<?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>200806</bug_id>
          
          <creation_ts>2019-08-15 20:42:46 -0700</creation_ts>
          <short_desc>Split tabIndex computation for DOM and the rest of WebCore</short_desc>
          <delta_ts>2019-08-16 12:44:16 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>199606</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1561928</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-08-15 20:42:46 -0700</bug_when>
    <thetext>Right now, a bunch of WebCore&apos;s internal functions make use of Element::tabIndex.

This is problematic in order to resolve the bug 199606, in which we&apos;re trying to make
tabIndex IDL attribute simply reflect tabIndex content attribute instead of
it being dependent on focusability of the element.

So split the code so that we have one function for computing the bindings value,
and another for internal use of WebCore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1561929</commentid>
    <comment_count>1</comment_count>
      <attachid>376471</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-08-15 21:06:23 -0700</bug_when>
    <thetext>Created attachment 376471
Cleanup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1561930</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-08-15 21:07:50 -0700</bug_when>
    <thetext>Attachment 376471 did not pass style-queue:


ERROR: Source/WebCore/ChangeLog:17:  You should remove the &apos;No new tests&apos; and either add and list tests, or explain why no new tests were possible.  [changelog/nonewtests] [5]
Total errors found: 1 in 18 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1561940</commentid>
    <comment_count>3</comment_count>
      <attachid>376473</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-08-15 23:13:29 -0700</bug_when>
    <thetext>Created attachment 376473
Fixed GTK+ build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562123</commentid>
    <comment_count>4</comment_count>
      <attachid>376473</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-08-16 12:35:42 -0700</bug_when>
    <thetext>Comment on attachment 376473
Fixed GTK+ build

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562127</commentid>
    <comment_count>5</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-08-16 12:40:28 -0700</bug_when>
    <thetext>Thanks for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562132</commentid>
    <comment_count>6</comment_count>
      <attachid>376473</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-08-16 12:43:35 -0700</bug_when>
    <thetext>Comment on attachment 376473
Fixed GTK+ build

Clearing flags on attachment: 376473

Committed r248784: &lt;https://trac.webkit.org/changeset/248784&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562133</commentid>
    <comment_count>7</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-08-16 12:43:37 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562134</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-08-16 12:44:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/54403126&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>376471</attachid>
            <date>2019-08-15 21:06:23 -0700</date>
            <delta_ts>2019-08-15 23:13:28 -0700</delta_ts>
            <desc>Cleanup</desc>
            <filename>bug-200806-20190815210622.patch</filename>
            <type>text/plain</type>
            <size>19849</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0ODc1OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDczIEBACisyMDE5LTA4LTE1ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFNwbGl0IHRhYkluZGV4IGNvbXB1
dGF0aW9uIGZvciBET00gYW5kIHRoZSByZXN0IG9mIFdlYkNvcmUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMDgwNgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggcmVuYW1lcyBFbGVtZW50
Ojp0YWJJbmRleCB0byBFbGVtZW50Ojp0YWJJbmRleEZvckJpbmRpbmdzIGFuZCBtaWdyYXRlcyBp
dHMgdXNhZ2UgaW4KKyAgICAgICAgV2ViQ29yZSBvdXRzaWRlIEpTIGJpbmRpbmdzIGNvZGUgdG86
IHRhYkluZGV4U2V0RXhwbGljaXRseSwgd2hpY2ggbm93IHJldHVybnMgT3B0aW9uYWw8aW50PiwK
KyAgICAgICAgYW5kIHNob3VsZEJlSWdub3JlZEluU2VxdWVudGlhbEZvY3VzTmF2aWdhdGlvbiB3
aGljaCByZXR1cm5zIHRydWUgd2hlbmV2ZXIgdGhlIG9sZCB0YWJJbmRleAorICAgICAgICBmdW5j
dGlvbiB1c2VkIHRvIHJldHVybiAtMS4KKworICAgICAgICBJbnN0ZWFkIG9mIG92ZXJyaWRpbmcg
RWxlbWVudDo6dGFiSW5kZXgsIGVhY2ggc3ViY2xhc3Mgb2YgZWxlbWVudCBub3cgb3ZlcnJpZGVz
IGRlZmF1bHRUYWJJbmRleAorICAgICAgICBjb3JyZXNwb25kaW5nIHRvIHRoZSBjb25jZXB0IG9m
IHRoZSBkZWZhdWx0IHZhbHVlIG9mIHRhYkluZGV4IElETCBhdHRyaWJ1dGUgZGVmaW5lZCBhdDoK
KyAgICAgICAgaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvaW50ZXJhY3Rp
b24uaHRtbCN0aGUtdGFiaW5kZXgtYXR0cmlidXRlCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIChP
T1BTISkuCisKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpF
bGVtZW50Ojp0YWJJbmRleFNldEV4cGxpY2l0bHkgY29uc3QpOiBOb3cgcmV0dXJucyBPcHRpb25h
bDxpbnQ+IGluc3RlYWQgb2YgYm9vbC4KKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmRlZmF1
bHRUYWJJbmRleCBjb25zdCk6IEFkZGVkLiBSZXR1cm4gLTEgaGVyZS4gSFRNTEVsZW1lbnQgYW5k
IFNWR0VsZW1lbnQKKyAgICAgICAgbWFudWFsbHkgb3ZlcnJpZGUgdGFiSW5kZXggdG8gaW1wbGVt
ZW50IHRoaXMgYmVoYXZpb3IuIE5vdyBNYXRoTUxFbGVtZW50IG92ZXJyaWRlcyB0aGlzIGZ1bmN0
aW9uCisgICAgICAgIHRvIHJldHVybiAwIGluc3RlYWQsIHdoaWNoIGlzIGFyZ3VhYmx5IGEgYnVn
LgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6c3VwcG9ydHNGb2N1cyBjb25zdCk6IENvbnZl
cnQgT3B0aW9uYWw8aW50PiB0byBib29sLgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6dGFi
SW5kZXhGb3JCaW5kaW5ncyBjb25zdCk6IFJlbmFtZWQgZnJvbSB0YWJJbmRleC4gTWlncmF0ZWQg
dGhlIGNvZGUgaW4KKyAgICAgICAgSFRNTEVsZW1lbnQ6OnRhYkluZGV4IGFuZCBTVkdFbGVtZW50
Ojp0YWJJbmRleCBoZXJlLiBOb3RlIGFsbCBvdmVycmlkZXMgb2YgSFRNTEVsZW1lbnQ6OnRhYklu
ZGV4CisgICAgICAgIGFuZCBTVkdFbGVtZW50Ojp0YWJJbmRleCBiZWxvdyB3ZXJlIHNraXBwaW5n
IHN1cHBvcnRzRm9jdXMgY2hlY2sgYW5kIHVzaW5nIDAgYXMgdGhlIGRlZmF1bHQgdmFsdWUuCisg
ICAgICAgIFRoaXMgaXMgbm93IGFjY29tcGxpc2hlZCBieSBoYXZpbmcgYW4gZXhwbGljaXQgY2hl
Y2sgZGVmYXVsdFRhYkluZGV4IHJldHVybmluZyAwLiBNYXRoTUxFbGVtZW50CisgICAgICAgIG92
ZXJyaWRlcyBkZWZhdWx0VGFiSW5kZXggc28gaXQgY29udGludWVzIHRvIHVzZSB0aGUgb2xkIGxv
Z2ljLiBBbGwgdGhpcyBjb21wbGV4aXR5IHNob3VsZCBnbyBhd2F5CisgICAgICAgIGluIHdlYmtp
dC5vcmcvYi8xOTk2MDYuCisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpzZXRUYWJJbmRleEZv
ckJpbmRpbmdzKTogUmVuYW1lZCBmcm9tIHNldFRhYkluZGV4LgorICAgICAgICAoV2ViQ29yZTo6
RWxlbWVudDo6aXNLZXlib2FyZEZvY3VzYWJsZSBjb25zdCk6IENoZWNrcyBzaG91bGRCZUlnbm9y
ZWRJblNlcXVlbnRpYWxGb2N1c05hdmlnYXRpb24KKyAgICAgICAgaW4gbGlldSBvZiBjYWxsaW5n
IEVsZW1lbnQ6OnRhYkluZGV4Rm9yQmluZGluZ3MuCisgICAgICAgICogZG9tL0VsZW1lbnQuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNob3VsZEJlSWdub3JlZEluU2VxdWVudGlhbEZv
Y3VzTmF2aWdhdGlvbiBjb25zdCk6IEFkZGVkLiBSZXR1cm5zIHRydWUgaWYgdGhlCisgICAgICAg
IG9sZCBpbXBsZW1lbnRhdGlvbiBvZiBFbGVtZW50Ojp0YWJJbmRleCB3b3VsZCBoYXZlIHJldHVy
bmVkIC0xIGR1ZSB0byBzdXBwb3J0c0ZvY3VzIHJldHVybmluZyBmYWxzZS4KKyAgICAgICAgKiBk
b20vRWxlbWVudFJhcmVEYXRhLmg6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50UmFyZURhdGE6
OnRhYkluZGV4IGNvbnN0KTogTWFkZSB0aGlzIGZ1bmN0aW9uIHJldHVybiBPcHRpb25hbDxpbnQ+
LiBOb3RlIHRoYXQKKyAgICAgICAgRWxlbWVudFJhcmVEYXRhIGNvbnRpbnVlIHRvIHN0b3JlIGEg
Yml0IGZpZWxkIGFuZCBpbnQgZm9yIG1vcmUgZWZmaWNpZW50IHBhY2tpbmcuCisgICAgICAgICog
aHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQW5jaG9y
RWxlbWVudDo6ZGVmYXVsdFRhYkluZGV4IGNvbnN0KTogUmVwbGFjZWQgdGFiSW5kZXguCisgICAg
ICAgICogaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTEFyZWFF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxBcmVhRWxlbWVudDo6aXNGb2N1c2Fi
bGUgY29uc3QpOgorICAgICAgICAqIGh0bWwvSFRNTEVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTEVsZW1lbnQ6OnRhYkluZGV4IGNvbnN0KTogRGVsZXRlZC4gVGhlIGxvZ2ljIGlz
IG5vdyBpbiBFbGVtZW50Ojp0YWJJbmRleCBpdHNlbGYuCisgICAgICAgICogaHRtbC9IVE1MRWxl
bWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTEVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwv
SFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRm9ybUNv
bnRyb2xFbGVtZW50OjpkZWZhdWx0VGFiSW5kZXggY29uc3QpOiBSZXBsYWNlZCB0YWJJbmRleC4K
KyAgICAgICAgKiBodG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaDoKKyAgICAgICAgKiBtYXRo
bWwvTWF0aE1MRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNYXRoTUxFbGVtZW50Ojpk
ZWZhdWx0VGFiSW5kZXggY29uc3QpOiBSZXBsYWNlZCB0YWJJbmRleC4gVGhpcyBpcyBwcm9iYWJs
eSBhIGJ1ZyBzaW5jZQorICAgICAgICB0aGlzIHdvdWxkIHB1dCBldmVyeSBNYXRoTUwgZWxlbWVu
dCBpbiB0aGUgc2VxdWVudGlhbCBuYXZpZ2F0aW9uIG9yZGVyIHJlZ2FyZGxlc3Mgb2Ygd2hldGhl
ciBpdAorICAgICAgICBoYXMgdGFiSW5kZXggc2V0IG9yIG5vdC4KKyAgICAgICAgKiBtYXRobWwv
TWF0aE1MRWxlbWVudC5oOgorICAgICAgICAqIHBhZ2UvRm9jdXNDb250cm9sbGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnRhYkluZGV4Rm9yRWxlbWVudCk6IEFkZGVkLiBDb21wdXRlcyB0aGUg
ImVmZmVjdGl2ZSIgdGFiIGluZGV4IEZvY3VzQ29udHJvbGxlciB1c2VzLgorICAgICAgICAoV2Vi
Q29yZTo6c2hhZG93QWRqdXN0ZWRUYWJJbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpuZXh0RWxl
bWVudFdpdGhHcmVhdGVyVGFiSW5kZXgpOiBUaGlzIGNvZGUgc2hvdWxkIHVzZSBzaGFkb3dBZGp1
c3RlZFRhYkluZGV4IGluc3RlYWQKKyAgICAgICAgYnV0IGtlZXBpbmcgdGhlIG9sZCBiZWhhdmlv
ciBmb3Igbm93LgorICAgICAgICAqIHN2Zy9TVkdBRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTVkdBRWxlbWVudDo6ZGVmYXVsdFRhYkluZGV4IGNvbnN0KTogUmVwbGFjZWQgdGFiSW5k
ZXguCisgICAgICAgICogc3ZnL1NWR0FFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0VsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRWxlbWVudDo6dGFiSW5kZXggY29uc3QpOiBE
ZWxldGVkLiBUaGUgbG9naWMgaXMgbm93IGluIEVsZW1lbnQ6OnRhYkluZGV4IGl0c2VsZi4KKyAg
ICAgICAgKiBzdmcvU1ZHRWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRWxlbWVudDo6
aGFzVGFnTmFtZSBjb25zdCk6CisgICAgICAgICogc3ZnL1NWR0VsZW1lbnQuaWRsOgorCiAyMDE5
LTA4LTE1ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAg
ICAgW1dITFNMXSBBZGQgdW5hcnkgcGx1cwpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAkocmV2
aXNpb24gMjQ4NzU4KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yNDMsMTQgKzI0MywyMSBAQCB2b2lkIEVsZW1lbnQ6OnNldFRhYkluZGV4RXhw
bGljaXRseShpbnQgCiAgICAgZW5zdXJlRWxlbWVudFJhcmVEYXRhKCkuc2V0VGFiSW5kZXhFeHBs
aWNpdGx5KHRhYkluZGV4KTsKIH0KIAotYm9vbCBFbGVtZW50Ojp0YWJJbmRleFNldEV4cGxpY2l0
bHkoKSBjb25zdAorT3B0aW9uYWw8aW50PiBFbGVtZW50Ojp0YWJJbmRleFNldEV4cGxpY2l0bHko
KSBjb25zdAogewotICAgIHJldHVybiBoYXNSYXJlRGF0YSgpICYmIGVsZW1lbnRSYXJlRGF0YSgp
LT50YWJJbmRleFNldEV4cGxpY2l0bHkoKTsKKyAgICBpZiAoIWhhc1JhcmVEYXRhKCkpCisgICAg
ICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgcmV0dXJuIGVsZW1lbnRSYXJlRGF0YSgpLT50
YWJJbmRleCgpOworfQorCitpbnQgRWxlbWVudDo6ZGVmYXVsdFRhYkluZGV4KCkgY29uc3QKK3sK
KyAgICByZXR1cm4gLTE7CiB9CiAKIGJvb2wgRWxlbWVudDo6c3VwcG9ydHNGb2N1cygpIGNvbnN0
CiB7Ci0gICAgcmV0dXJuIHRhYkluZGV4U2V0RXhwbGljaXRseSgpOworICAgIHJldHVybiAhIXRh
YkluZGV4U2V0RXhwbGljaXRseSgpOwogfQogCiBSZWZQdHI8RWxlbWVudD4gRWxlbWVudDo6Zm9j
dXNEZWxlZ2F0ZSgpCkBAIC0yNTgsMTkgKzI2NSwyNCBAQCBSZWZQdHI8RWxlbWVudD4gRWxlbWVu
dDo6Zm9jdXNEZWxlZ2F0ZSgpCiAgICAgcmV0dXJuIHRoaXM7CiB9CiAKLWludCBFbGVtZW50Ojp0
YWJJbmRleCgpIGNvbnN0CitpbnQgRWxlbWVudDo6dGFiSW5kZXhGb3JCaW5kaW5ncygpIGNvbnN0
CiB7Ci0gICAgcmV0dXJuIGhhc1JhcmVEYXRhKCkgPyBlbGVtZW50UmFyZURhdGEoKS0+dGFiSW5k
ZXgoKSA6IDA7CisgICAgYXV0byBkZWZhdWx0SW5kZXggPSBkZWZhdWx0VGFiSW5kZXgoKTsKKyAg
ICBBU1NFUlQoIWRlZmF1bHRJbmRleCB8fCBkZWZhdWx0SW5kZXggPT0gLTEpOworICAgIC8vIEZJ
WE1FOiBzdXBwb3J0c0ZvY3VzKCkgY2hlY2sgc2hvdWxkbid0IGJlIGhlcmUuCisgICAgaWYgKCFk
ZWZhdWx0SW5kZXggfHwgc3VwcG9ydHNGb2N1cygpKQorICAgICAgICByZXR1cm4gdGFiSW5kZXhT
ZXRFeHBsaWNpdGx5KCkudmFsdWVPcigwKTsKKyAgICByZXR1cm4gZGVmYXVsdEluZGV4OwogfQog
Ci12b2lkIEVsZW1lbnQ6OnNldFRhYkluZGV4KGludCB2YWx1ZSkKK3ZvaWQgRWxlbWVudDo6c2V0
VGFiSW5kZXhGb3JCaW5kaW5ncyhpbnQgdmFsdWUpCiB7CiAgICAgc2V0SW50ZWdyYWxBdHRyaWJ1
dGUodGFiaW5kZXhBdHRyLCB2YWx1ZSk7CiB9CiAKIGJvb2wgRWxlbWVudDo6aXNLZXlib2FyZEZv
Y3VzYWJsZShLZXlib2FyZEV2ZW50KikgY29uc3QKIHsKLSAgICByZXR1cm4gaXNGb2N1c2FibGUo
KSAmJiB0YWJJbmRleCgpID49IDA7CisgICAgcmV0dXJuIGlzRm9jdXNhYmxlKCkgJiYgIXNob3Vs
ZEJlSWdub3JlZEluU2VxdWVudGlhbEZvY3VzTmF2aWdhdGlvbigpICYmIHRhYkluZGV4U2V0RXhw
bGljaXRseSgpLnZhbHVlT3IoMCkgPj0gMDsKIH0KIAogYm9vbCBFbGVtZW50Ojppc01vdXNlRm9j
dXNhYmxlKCkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAkocmV2aXNpb24gMjQ4NzU4KQor
KysgU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzE2LDcg
KzMxNiw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0Rm9jdXMoYm9vbCBmbGFnKTsK
ICAgICB2b2lkIHNldEhhc0ZvY3VzV2l0aGluKGJvb2wgZmxhZyk7CiAKLSAgICBib29sIHRhYklu
ZGV4U2V0RXhwbGljaXRseSgpIGNvbnN0OworICAgIE9wdGlvbmFsPGludD4gdGFiSW5kZXhTZXRF
eHBsaWNpdGx5KCkgY29uc3Q7CisgICAgYm9vbCBzaG91bGRCZUlnbm9yZWRJblNlcXVlbnRpYWxG
b2N1c05hdmlnYXRpb24oKSBjb25zdCB7IHJldHVybiBkZWZhdWx0VGFiSW5kZXgoKSA8IDAgJiYg
IXN1cHBvcnRzRm9jdXMoKTsgfQogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0ZvY3VzKCkgY29u
c3Q7CiAgICAgdmlydHVhbCBib29sIGlzRm9jdXNhYmxlKCkgY29uc3Q7CiAgICAgdmlydHVhbCBi
b29sIGlzS2V5Ym9hcmRGb2N1c2FibGUoS2V5Ym9hcmRFdmVudCopIGNvbnN0OwpAQCAtMzI0LDgg
KzMyNSw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRVc2VJbnB1dE1ldGhv
ZCgpOwogCi0gICAgdmlydHVhbCBpbnQgdGFiSW5kZXgoKSBjb25zdDsKLSAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHNldFRhYkluZGV4KGludCk7CisgICAgdmlydHVhbCBpbnQgdGFiSW5kZXhGb3JC
aW5kaW5ncygpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0VGFiSW5kZXhGb3JC
aW5kaW5ncyhpbnQpOwogICAgIHZpcnR1YWwgUmVmUHRyPEVsZW1lbnQ+IGZvY3VzRGVsZWdhdGUo
KTsKIAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IGluc2VydEFkamFjZW50SFRNTChjb25zdCBTdHJp
bmcmIHdoZXJlLCBjb25zdCBTdHJpbmcmIGh0bWwsIE5vZGVWZWN0b3IqIGFkZGVkTm9kZXMpOwpA
QCAtNzE0LDYgKzcxNSw4IEBAIHByaXZhdGU6CiAgICAgRWxlbWVudFJhcmVEYXRhKiBlbGVtZW50
UmFyZURhdGEoKSBjb25zdDsKICAgICBFbGVtZW50UmFyZURhdGEmIGVuc3VyZUVsZW1lbnRSYXJl
RGF0YSgpOwogCisgICAgdmlydHVhbCBpbnQgZGVmYXVsdFRhYkluZGV4KCkgY29uc3Q7CisKICAg
ICB2b2lkIGRldGFjaEFsbEF0dHJOb2Rlc0Zyb21FbGVtZW50KCk7CiAgICAgdm9pZCBkZXRhY2hB
dHRyTm9kZUZyb21FbGVtZW50V2l0aFZhbHVlKEF0dHIqLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1
ZSk7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmgJKHJldmlzaW9uIDI0
ODc1OCkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaAkod29ya2luZyBj
b3B5KQpAQCAtNTQsNyArNTQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXNldENvbXB1dGVkU3R5
bGUoKTsKICAgICB2b2lkIHJlc2V0U3R5bGVSZWxhdGlvbnMoKTsKICAgICAKLSAgICBpbnQgdGFi
SW5kZXgoKSBjb25zdCB7IHJldHVybiBtX3RhYkluZGV4OyB9CisgICAgT3B0aW9uYWw8aW50PiB0
YWJJbmRleCgpIGNvbnN0IHsgcmV0dXJuIG1fdGFiSW5kZXhXYXNTZXRFeHBsaWNpdGx5ID8gT3B0
aW9uYWw8aW50PiB7IG1fdGFiSW5kZXggfSA6IFdURjo6bnVsbG9wdDsgfQogICAgIHZvaWQgc2V0
VGFiSW5kZXhFeHBsaWNpdGx5KGludCBpbmRleCkgeyBtX3RhYkluZGV4ID0gaW5kZXg7IG1fdGFi
SW5kZXhXYXNTZXRFeHBsaWNpdGx5ID0gdHJ1ZTsgfQogICAgIGJvb2wgdGFiSW5kZXhTZXRFeHBs
aWNpdGx5KCkgY29uc3QgeyByZXR1cm4gbV90YWJJbmRleFdhc1NldEV4cGxpY2l0bHk7IH0KICAg
ICB2b2lkIGNsZWFyVGFiSW5kZXhFeHBsaWNpdGx5KCkgeyBtX3RhYkluZGV4ID0gMDsgbV90YWJJ
bmRleFdhc1NldEV4cGxpY2l0bHkgPSBmYWxzZTsgfQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQW5jaG9yRWxlbWVudC5jcHAJKHJldmlzaW9uIDI0ODc1OCkKKysrIFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMzAsMTAg
KzMzMCw5IEBAIGNvbnN0IEF0b21TdHJpbmcmIEhUTUxBbmNob3JFbGVtZW50OjpuYW0KICAgICBy
ZXR1cm4gZ2V0TmFtZUF0dHJpYnV0ZSgpOwogfQogCi1pbnQgSFRNTEFuY2hvckVsZW1lbnQ6OnRh
YkluZGV4KCkgY29uc3QKK2ludCBIVE1MQW5jaG9yRWxlbWVudDo6ZGVmYXVsdFRhYkluZGV4KCkg
Y29uc3QKIHsKLSAgICAvLyBTa2lwIHRoZSBzdXBwb3J0c0ZvY3VzIGNoZWNrIGluIEhUTUxFbGVt
ZW50LgotICAgIHJldHVybiBFbGVtZW50Ojp0YWJJbmRleCgpOworICAgIHJldHVybiAwOwogfQog
CiBTdHJpbmcgSFRNTEFuY2hvckVsZW1lbnQ6OnRhcmdldCgpIGNvbnN0CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5oCShyZXZpc2lvbiAyNDg3NTgpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTg4
LDcgKzg4LDcgQEAgcHJpdmF0ZToKICAgICBib29sIGlzVVJMQXR0cmlidXRlKGNvbnN0IEF0dHJp
YnV0ZSYpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgY2FuU3RhcnRTZWxlY3Rpb24oKSBjb25zdCBm
aW5hbDsKICAgICBTdHJpbmcgdGFyZ2V0KCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgaW50IHRhYklu
ZGV4KCkgY29uc3QgZmluYWw7CisgICAgaW50IGRlZmF1bHRUYWJJbmRleCgpIGNvbnN0IGZpbmFs
OwogICAgIGJvb2wgZHJhZ2dhYmxlKCkgY29uc3QgZmluYWw7CiAKICAgICBTdHJpbmcgZWZmZWN0
aXZlVGFyZ2V0KCkgY29uc3Q7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBcmVhRWxl
bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXJlYUVsZW1l
bnQuY3BwCShyZXZpc2lvbiAyNDg3NTgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBcmVh
RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIxMyw3ICsyMTMsNyBAQCBib29sIEhUTUxB
cmVhRWxlbWVudDo6aXNGb2N1c2FibGUoKSBjb25zCiAgICAgaWYgKCFpbWFnZSB8fCAhaW1hZ2Ut
PnJlbmRlcmVyKCkgfHwgaW1hZ2UtPnJlbmRlcmVyKCktPnN0eWxlKCkudmlzaWJpbGl0eSgpICE9
IFZpc2liaWxpdHk6OlZpc2libGUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHJldHVy
biBzdXBwb3J0c0ZvY3VzKCkgJiYgRWxlbWVudDo6dGFiSW5kZXgoKSA+PSAwOworICAgIHJldHVy
biBzdXBwb3J0c0ZvY3VzKCkgJiYgdGFiSW5kZXhTZXRFeHBsaWNpdGx5KCkudmFsdWVPcigwKSA+
PSAwOwogfQogICAgIAogdm9pZCBIVE1MQXJlYUVsZW1lbnQ6OnNldEZvY3VzKGJvb2wgc2hvdWxk
QmVGb2N1c2VkKQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAJKHJldmlzaW9u
IDI0ODc1OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC03MTQsMTMgKzcxNCw2IEBAIFN0cmluZyBIVE1MRWxlbWVudDo6dGl0bGUoKSBj
b25zdAogICAgIHJldHVybiBhdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKHRpdGxlQXR0
cik7CiB9CiAKLWludCBIVE1MRWxlbWVudDo6dGFiSW5kZXgoKSBjb25zdAotewotICAgIGlmIChz
dXBwb3J0c0ZvY3VzKCkpCi0gICAgICAgIHJldHVybiBFbGVtZW50Ojp0YWJJbmRleCgpOwotICAg
IHJldHVybiAtMTsKLX0KLQogYm9vbCBIVE1MRWxlbWVudDo6dHJhbnNsYXRlKCkgY29uc3QKIHsK
ICAgICBmb3IgKGF1dG8mIGVsZW1lbnQgOiBsaW5lYWdlT2ZUeXBlPEhUTUxFbGVtZW50PigqdGhp
cykpIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmgJKHJldmlzaW9uIDI0ODc1OCkK
KysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAt
NDQsOCArNDQsNiBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgdGl0bGUo
KSBjb25zdCBmaW5hbDsKIAotICAgIGludCB0YWJJbmRleCgpIGNvbnN0IG92ZXJyaWRlOwotCiAg
ICAgV0VCQ09SRV9FWFBPUlQgRXhjZXB0aW9uT3I8dm9pZD4gc2V0SW5uZXJUZXh0KGNvbnN0IFN0
cmluZyYpOwogICAgIFdFQkNPUkVfRVhQT1JUIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldE91dGVyVGV4
dChjb25zdCBTdHJpbmcmKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVu
dC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5pZGwJ
KHJldmlzaW9uIDI0ODc1OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaWRs
CSh3b3JraW5nIGNvcHkpCkBAIC0zNCw3ICszNCw3IEBACiAgICAgLy8gVXNlciBpbnRlcmFjdGlv
bi4KICAgICBbQ0VSZWFjdGlvbnMsIFJlZmxlY3RdIGF0dHJpYnV0ZSBib29sZWFuIGhpZGRlbjsK
ICAgICB2b2lkIGNsaWNrKCk7Ci0gICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgbG9uZyB0YWJJ
bmRleDsKKyAgICBbQ0VSZWFjdGlvbnMsIEltcGxlbWVudGVkQXM9dGFiSW5kZXhGb3JCaW5kaW5n
c10gYXR0cmlidXRlIGxvbmcgdGFiSW5kZXg7CiAgICAgdm9pZCBmb2N1cygpOwogICAgIHZvaWQg
Ymx1cigpOwogICAgIFtDRVJlYWN0aW9ucywgUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBh
Y2Nlc3NLZXk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1l
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9s
RWxlbWVudC5jcHAJKHJldmlzaW9uIDI0ODc1OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEZvcm1Db250cm9sRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwOSwxMCArNDA5LDkg
QEAgYm9vbCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjptYXRjaGVzSW52YQogICAgIHJldHVybiB3
aWxsVmFsaWRhdGUoKSAmJiAhaXNWYWxpZEZvcm1Db250cm9sRWxlbWVudCgpOwogfQogCi1pbnQg
SFRNTEZvcm1Db250cm9sRWxlbWVudDo6dGFiSW5kZXgoKSBjb25zdAoraW50IEhUTUxGb3JtQ29u
dHJvbEVsZW1lbnQ6OmRlZmF1bHRUYWJJbmRleCgpIGNvbnN0CiB7Ci0gICAgLy8gU2tpcCB0aGUg
c3VwcG9ydHNGb2N1cyBjaGVjayBpbiBIVE1MRWxlbWVudC4KLSAgICByZXR1cm4gRWxlbWVudDo6
dGFiSW5kZXgoKTsKKyAgICByZXR1cm4gMDsKIH0KIAogYm9vbCBIVE1MRm9ybUNvbnRyb2xFbGVt
ZW50Ojpjb21wdXRlV2lsbFZhbGlkYXRlKCkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5oCShyZXZpc2lvbiAyNDg3NTgpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpA
QCAtMTY3LDcgKzE2Nyw3IEBAIHByaXZhdGU6CiAKICAgICBib29sIGlzRm9ybUNvbnRyb2xFbGVt
ZW50KCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAgaW50IHRhYkluZGV4KCkg
Y29uc3QgZmluYWw7CisgICAgaW50IGRlZmF1bHRUYWJJbmRleCgpIGNvbnN0IGZpbmFsOwogCiAg
ICAgYm9vbCBpc1ZhbGlkRm9ybUNvbnRyb2xFbGVtZW50KCkgY29uc3Q7CiAKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9tYXRobWwvTWF0aE1MRWxlbWVudC5jcHAJKHJldmlzaW9uIDI0ODc1OCkKKysrIFNv
dXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjIxLDEwICsyMjEsMTAgQEAgYm9vbCBNYXRoTUxFbGVtZW50OjpzdXBwb3J0c0ZvY3VzKCkgY29u
cwogICAgIHJldHVybiBpc0xpbmsoKSB8fCBTdHlsZWRFbGVtZW50OjpzdXBwb3J0c0ZvY3VzKCk7
CiB9CiAKLWludCBNYXRoTUxFbGVtZW50Ojp0YWJJbmRleCgpIGNvbnN0CitpbnQgTWF0aE1MRWxl
bWVudDo6ZGVmYXVsdFRhYkluZGV4KCkgY29uc3QKIHsKLSAgICAvLyBTa2lwIHRoZSBzdXBwb3J0
c0ZvY3VzIGNoZWNrIGluIFN0eWxlZEVsZW1lbnQuCi0gICAgcmV0dXJuIEVsZW1lbnQ6OnRhYklu
ZGV4KCk7CisgICAgLy8gRklYTUU6IFRoaXMgc2VlbXMgd3JvbmcuCisgICAgcmV0dXJuIDA7CiB9
CiAKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxFbGVtZW50LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTEVsZW1lbnQuaAkocmV2aXNpb24g
MjQ4NzU4KQorKysgU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTEVsZW1lbnQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMTA4LDcgKzEwOCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBpc01vdXNlRm9j
dXNhYmxlKCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBpc1VSTEF0dHJpYnV0ZShjb25zdCBBdHRy
aWJ1dGUmKSBjb25zdCBmaW5hbDsKICAgICBib29sIHN1cHBvcnRzRm9jdXMoKSBjb25zdCBmaW5h
bDsKLSAgICBpbnQgdGFiSW5kZXgoKSBjb25zdCBmaW5hbDsKKyAgICBpbnQgZGVmYXVsdFRhYklu
ZGV4KCkgY29uc3QgZmluYWw7CiB9OwogCiBpbmxpbmUgYm9vbCBOb2RlOjpoYXNUYWdOYW1lKGNv
bnN0IE1hdGhNTFF1YWxpZmllZE5hbWUmIG5hbWUpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiAyNDg3NTgpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyNSwxMyAr
MzI1LDE5IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc0ZvY3VzYWJsZVNjb3BlT3duZXIKICAgICBy
ZXR1cm4gZWxlbWVudC5pc0tleWJvYXJkRm9jdXNhYmxlKGV2ZW50KSAmJiBpc0ZvY3VzU2NvcGVP
d25lcihlbGVtZW50KTsKIH0KIAorLy8gRklYTUU6IFRoaXMgZnVuY3Rpb24gc2hvdWxkIGJlIG1l
cmdlZCBpbnRvIHNoYWRvd0FkanVzdGVkVGFiSW5kZXguCitzdGF0aWMgaW5saW5lIGludCB0YWJJ
bmRleEZvckVsZW1lbnQoY29uc3QgRWxlbWVudCYgZWxlbWVudCkKK3sKKyAgICByZXR1cm4gZWxl
bWVudC5zaG91bGRCZUlnbm9yZWRJblNlcXVlbnRpYWxGb2N1c05hdmlnYXRpb24oKSA/IC0xIDog
ZWxlbWVudC50YWJJbmRleFNldEV4cGxpY2l0bHkoKS52YWx1ZU9yKDApOworfQorCiBzdGF0aWMg
aW5saW5lIGludCBzaGFkb3dBZGp1c3RlZFRhYkluZGV4KEVsZW1lbnQmIGVsZW1lbnQsIEtleWJv
YXJkRXZlbnQqIGV2ZW50KQogewogICAgIGlmIChpc05vbkZvY3VzYWJsZVNjb3BlT3duZXIoZWxl
bWVudCwgZXZlbnQpKSB7CiAgICAgICAgIGlmICghZWxlbWVudC50YWJJbmRleFNldEV4cGxpY2l0
bHkoKSkKICAgICAgICAgICAgIHJldHVybiAwOyAvLyBUcmVhdCBhIHNoYWRvdyBob3N0IHdpdGhv
dXQgdGFiaW5kZXggaWYgaXQgaGFzIHRhYmluZGV4PTAgZXZlbiB0aG91Z2ggSFRNTEVsZW1lbnQ6
OnRhYkluZGV4IHJldHVybnMgLTEgb24gc3VjaCBhbiBlbGVtZW50LgogICAgIH0KLSAgICByZXR1
cm4gZWxlbWVudC50YWJJbmRleCgpOworICAgIHJldHVybiB0YWJJbmRleEZvckVsZW1lbnQoZWxl
bWVudCk7CiB9CiAKIEZvY3VzQ29udHJvbGxlcjo6Rm9jdXNDb250cm9sbGVyKFBhZ2UmIHBhZ2Us
IE9wdGlvblNldDxBY3Rpdml0eVN0YXRlOjpGbGFnPiBhY3Rpdml0eVN0YXRlKQpAQCAtNjIwLDcg
KzYyNiw4IEBAIHN0YXRpYyBFbGVtZW50KiBuZXh0RWxlbWVudFdpdGhHcmVhdGVyVGEKICAgICAg
ICAgaWYgKCFpczxFbGVtZW50Pigqbm9kZSkpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAg
ICAgRWxlbWVudCYgY2FuZGlkYXRlID0gZG93bmNhc3Q8RWxlbWVudD4oKm5vZGUpOwotICAgICAg
ICBpbnQgY2FuZGlkYXRlVGFiSW5kZXggPSBjYW5kaWRhdGUudGFiSW5kZXgoKTsKKyAgICAgICAg
Ly8gRklYTUU6IFdlIHNob3VsZCBiZSBjYWxsaW5nIHNoYWRvd0FkanVzdGVkVGFiSW5kZXggaW5z
dGVhZC4KKyAgICAgICAgaW50IGNhbmRpZGF0ZVRhYkluZGV4ID0gdGFiSW5kZXhGb3JFbGVtZW50
KGNhbmRpZGF0ZSk7CiAgICAgICAgIGlmIChpc0ZvY3VzYWJsZUVsZW1lbnRPclNjb3BlT3duZXIo
Y2FuZGlkYXRlLCBldmVudCkgJiYgY2FuZGlkYXRlVGFiSW5kZXggPiB0YWJJbmRleCAmJiAoIXdp
bm5lciB8fCBjYW5kaWRhdGVUYWJJbmRleCA8IHdpbm5pbmdUYWJJbmRleCkpIHsKICAgICAgICAg
ICAgIHdpbm5lciA9ICZjYW5kaWRhdGU7CiAgICAgICAgICAgICB3aW5uaW5nVGFiSW5kZXggPSBj
YW5kaWRhdGVUYWJJbmRleDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FFbGVtZW50LmNwcAkocmV2
aXNpb24gMjQ4NzU4KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FFbGVtZW50LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTUxLDEwICsxNTEsOSBAQCB2b2lkIFNWR0FFbGVtZW50OjpkZWZhdWx0
RXZlbnRIYW5kbGVyKEV2CiAgICAgU1ZHR3JhcGhpY3NFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5k
bGVyKGV2ZW50KTsKIH0KIAotaW50IFNWR0FFbGVtZW50Ojp0YWJJbmRleCgpIGNvbnN0CitpbnQg
U1ZHQUVsZW1lbnQ6OmRlZmF1bHRUYWJJbmRleCgpIGNvbnN0CiB7Ci0gICAgLy8gU2tpcCB0aGUg
c3VwcG9ydHNGb2N1cyBjaGVjayBpbiBTVkdFbGVtZW50LgotICAgIHJldHVybiBFbGVtZW50Ojp0
YWJJbmRleCgpOworICAgIHJldHVybiAwOwogfQogCiBib29sIFNWR0FFbGVtZW50OjpzdXBwb3J0
c0ZvY3VzKCkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5oCShyZXZpc2lvbiAy
NDg3NTgpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuaAkod29ya2luZyBjb3B5
KQpAQCAtNjAsNyArNjAsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgaXNLZXlib2FyZEZvY3VzYWJs
ZShLZXlib2FyZEV2ZW50KikgY29uc3QgZmluYWw7CiAgICAgYm9vbCBpc1VSTEF0dHJpYnV0ZShj
b25zdCBBdHRyaWJ1dGUmKSBjb25zdCBmaW5hbDsKICAgICBib29sIGNhblN0YXJ0U2VsZWN0aW9u
KCkgY29uc3QgZmluYWw7Ci0gICAgaW50IHRhYkluZGV4KCkgY29uc3QgZmluYWw7CisgICAgaW50
IGRlZmF1bHRUYWJJbmRleCgpIGNvbnN0IGZpbmFsOwogCiAgICAgYm9vbCB3aWxsUmVzcG9uZFRv
TW91c2VDbGlja0V2ZW50cygpIGZpbmFsOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQu
Y3BwCShyZXZpc2lvbiAyNDg3NTgpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTE4MywxMyArMTgzLDYgQEAgU1ZHRWxlbWVudDo6flNWR0Vs
ZW1lbnQoKQogICAgIGRvY3VtZW50KCkuYWNjZXNzU1ZHRXh0ZW5zaW9ucygpLnJlbW92ZUFsbEVs
ZW1lbnRSZWZlcmVuY2VzRm9yVGFyZ2V0KCp0aGlzKTsKIH0KIAotaW50IFNWR0VsZW1lbnQ6OnRh
YkluZGV4KCkgY29uc3QKLXsKLSAgICBpZiAoc3VwcG9ydHNGb2N1cygpKQotICAgICAgICByZXR1
cm4gRWxlbWVudDo6dGFiSW5kZXgoKTsKLSAgICByZXR1cm4gLTE7Ci19Ci0KIHZvaWQgU1ZHRWxl
bWVudDo6d2lsbFJlY2FsY1N0eWxlKFN0eWxlOjpDaGFuZ2UgY2hhbmdlKQogewogICAgIGlmICgh
bV9zdmdSYXJlRGF0YSB8fCBzdHlsZVJlc29sdXRpb25TaG91bGRSZWNvbXBvc2l0ZUxheWVyKCkp
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmgJKHJldmlzaW9uIDI0ODc1OCkKKysrIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTExOSw3ICsxMTks
NiBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNGb2N1c0V2ZW50TGlzdGVuZXJzKCkgY29uc3Q7CiAK
ICAgICBib29sIGhhc1RhZ05hbWUoY29uc3QgU1ZHUXVhbGlmaWVkTmFtZSYgbmFtZSkgY29uc3Qg
eyByZXR1cm4gaGFzTG9jYWxOYW1lKG5hbWUubG9jYWxOYW1lKCkpOyB9Ci0gICAgaW50IHRhYklu
ZGV4KCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGNhbGxDbGVhclRhcmdldCgpIHsgY2xl
YXJUYXJnZXQoKTsgfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5pZGwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuaWRsCShyZXZpc2lv
biAyNDg3NTgpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5pZGwJKHdvcmtpbmcg
Y29weSkKQEAgLTMxLDcgKzMxLDcgQEAKIAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmlt
YXRlZFN0cmluZyBjbGFzc05hbWU7CiAKLSAgICBhdHRyaWJ1dGUgbG9uZyB0YWJJbmRleDsKKyAg
ICBbQ0VSZWFjdGlvbnM9Tm90TmVlZGVkLCBJbXBsZW1lbnRlZEFzPXRhYkluZGV4Rm9yQmluZGlu
Z3NdIGF0dHJpYnV0ZSBsb25nIHRhYkluZGV4OwogCiAgICAgLy8gRklYTUU6IFVzaW5nICJ1bmRl
ZmluZWQiIGFzIGRlZmF1bHQgcGFyYW1ldGVyIHZhbHVlIGlzIHdyb25nLgogICAgIC8vIFRoaXMg
bWV0aG9kIGlzIGRlcHJlY2F0ZWQsIGFuZCB3ZSdkIGxpa2UgdG8gcmVtb3ZlIGl0IHNvbWVkYXku
CkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNDg3NjApCisrKyBT
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSwxNCBAQAorMjAxOS0wOC0xNSAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KKwor
ICAgICAgICBTcGxpdCB0YWJJbmRleCBjb21wdXRhdGlvbiBmb3IgRE9NIGFuZCB0aGUgcmVzdCBv
ZiBXZWJDb3JlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDA4MDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIERPTS9ET01IVE1MRWxlbWVudC5tbToKKyAgICAgICAgKC1bRE9NSFRNTEVsZW1lbnQgdGFi
SW5kZXhdKToKKyAgICAgICAgKC1bRE9NSFRNTEVsZW1lbnQgc2V0VGFiSW5kZXg6XSk6CisKIDIw
MTktMDgtMTUgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgWWVsbG93IExvb2t1cCBoaWdobGlnaHQgZ2V0cyBzdHVjayBvdmVyIE1haWwgbWVzc2FnZXMK
SW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RPTS9ET01IVE1MRWxlbWVudC5tbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9NSFRNTEVsZW1lbnQubW0J
KHJldmlzaW9uIDI0ODc1OCkKKysrIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RPTS9ET01IVE1M
RWxlbWVudC5tbQkod29ya2luZyBjb3B5KQpAQCAtOTUsMTMgKzk1LDEzIEBAIC0gKHZvaWQpc2V0
RGlyOihOU1N0cmluZyAqKW5ld0RpcgogLSAoaW50KXRhYkluZGV4CiB7CiAgICAgV2ViQ29yZTo6
SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIHJldHVybiBJTVBMLT50YWJJbmRleCgp
OworICAgIHJldHVybiBJTVBMLT50YWJJbmRleEZvckJpbmRpbmdzKCk7CiB9CiAKIC0gKHZvaWQp
c2V0VGFiSW5kZXg6KGludCluZXdUYWJJbmRleAogewogICAgIFdlYkNvcmU6OkpTTWFpblRocmVh
ZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBJTVBMLT5zZXRUYWJJbmRleChuZXdUYWJJbmRleCk7Cisg
ICAgSU1QTC0+c2V0VGFiSW5kZXhGb3JCaW5kaW5ncyhuZXdUYWJJbmRleCk7CiB9CiAKIC0gKEJP
T0wpZHJhZ2dhYmxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>376473</attachid>
            <date>2019-08-15 23:13:29 -0700</date>
            <delta_ts>2019-08-16 12:43:35 -0700</delta_ts>
            <desc>Fixed GTK+ build</desc>
            <filename>bug-200806-20190815231328.patch</filename>
            <type>text/plain</type>
            <size>21659</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0ODc1OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDczIEBACisyMDE5LTA4LTE1ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFNwbGl0IHRhYkluZGV4IGNvbXB1
dGF0aW9uIGZvciBET00gYW5kIHRoZSByZXN0IG9mIFdlYkNvcmUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMDgwNgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggcmVuYW1lcyBFbGVtZW50
Ojp0YWJJbmRleCB0byBFbGVtZW50Ojp0YWJJbmRleEZvckJpbmRpbmdzIGFuZCBtaWdyYXRlcyBp
dHMgdXNhZ2UgaW4KKyAgICAgICAgV2ViQ29yZSBvdXRzaWRlIEpTIGJpbmRpbmdzIGNvZGUgdG86
IHRhYkluZGV4U2V0RXhwbGljaXRseSwgd2hpY2ggbm93IHJldHVybnMgT3B0aW9uYWw8aW50PiwK
KyAgICAgICAgYW5kIHNob3VsZEJlSWdub3JlZEluU2VxdWVudGlhbEZvY3VzTmF2aWdhdGlvbiB3
aGljaCByZXR1cm5zIHRydWUgd2hlbmV2ZXIgdGhlIG9sZCB0YWJJbmRleAorICAgICAgICBmdW5j
dGlvbiB1c2VkIHRvIHJldHVybiAtMS4KKworICAgICAgICBJbnN0ZWFkIG9mIG92ZXJyaWRpbmcg
RWxlbWVudDo6dGFiSW5kZXgsIGVhY2ggc3ViY2xhc3Mgb2YgZWxlbWVudCBub3cgb3ZlcnJpZGVz
IGRlZmF1bHRUYWJJbmRleAorICAgICAgICBjb3JyZXNwb25kaW5nIHRvIHRoZSBjb25jZXB0IG9m
IHRoZSBkZWZhdWx0IHZhbHVlIG9mIHRhYkluZGV4IElETCBhdHRyaWJ1dGUgZGVmaW5lZCBhdDoK
KyAgICAgICAgaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvaW50ZXJhY3Rp
b24uaHRtbCN0aGUtdGFiaW5kZXgtYXR0cmlidXRlCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIHNp
bmNlIHRoZXJlIHNob3VsZCBiZSBubyBvYnNlcnZhYmxlIGJlaGF2aW9yIGNoYW5nZS4KKworICAg
ICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnRhYklu
ZGV4U2V0RXhwbGljaXRseSBjb25zdCk6IE5vdyByZXR1cm5zIE9wdGlvbmFsPGludD4gaW5zdGVh
ZCBvZiBib29sLgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6ZGVmYXVsdFRhYkluZGV4IGNv
bnN0KTogQWRkZWQuIFJldHVybiAtMSBoZXJlLiBIVE1MRWxlbWVudCBhbmQgU1ZHRWxlbWVudAor
ICAgICAgICBtYW51YWxseSBvdmVycmlkZSB0YWJJbmRleCB0byBpbXBsZW1lbnQgdGhpcyBiZWhh
dmlvci4gTm93IE1hdGhNTEVsZW1lbnQgb3ZlcnJpZGVzIHRoaXMgZnVuY3Rpb24KKyAgICAgICAg
dG8gcmV0dXJuIDAgaW5zdGVhZCwgd2hpY2ggaXMgYXJndWFibHkgYSBidWcuCisgICAgICAgIChX
ZWJDb3JlOjpFbGVtZW50OjpzdXBwb3J0c0ZvY3VzIGNvbnN0KTogQ29udmVydCBPcHRpb25hbDxp
bnQ+IHRvIGJvb2wuCisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50Ojp0YWJJbmRleEZvckJpbmRp
bmdzIGNvbnN0KTogUmVuYW1lZCBmcm9tIHRhYkluZGV4LiBNaWdyYXRlZCB0aGUgY29kZSBpbgor
ICAgICAgICBIVE1MRWxlbWVudDo6dGFiSW5kZXggYW5kIFNWR0VsZW1lbnQ6OnRhYkluZGV4IGhl
cmUuIE5vdGUgYWxsIG92ZXJyaWRlcyBvZiBIVE1MRWxlbWVudDo6dGFiSW5kZXgKKyAgICAgICAg
YW5kIFNWR0VsZW1lbnQ6OnRhYkluZGV4IGJlbG93IHdlcmUgc2tpcHBpbmcgc3VwcG9ydHNGb2N1
cyBjaGVjayBhbmQgdXNpbmcgMCBhcyB0aGUgZGVmYXVsdCB2YWx1ZS4KKyAgICAgICAgVGhpcyBp
cyBub3cgYWNjb21wbGlzaGVkIGJ5IGhhdmluZyBhbiBleHBsaWNpdCBjaGVjayBkZWZhdWx0VGFi
SW5kZXggcmV0dXJuaW5nIDAuIE1hdGhNTEVsZW1lbnQKKyAgICAgICAgb3ZlcnJpZGVzIGRlZmF1
bHRUYWJJbmRleCBzbyBpdCBjb250aW51ZXMgdG8gdXNlIHRoZSBvbGQgbG9naWMuIEFsbCB0aGlz
IGNvbXBsZXhpdHkgc2hvdWxkIGdvIGF3YXkKKyAgICAgICAgaW4gd2Via2l0Lm9yZy9iLzE5OTYw
Ni4KKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNldFRhYkluZGV4Rm9yQmluZGluZ3MpOiBS
ZW5hbWVkIGZyb20gc2V0VGFiSW5kZXguCisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50Ojppc0tl
eWJvYXJkRm9jdXNhYmxlIGNvbnN0KTogQ2hlY2tzIHNob3VsZEJlSWdub3JlZEluU2VxdWVudGlh
bEZvY3VzTmF2aWdhdGlvbgorICAgICAgICBpbiBsaWV1IG9mIGNhbGxpbmcgRWxlbWVudDo6dGFi
SW5kZXhGb3JCaW5kaW5ncy4KKyAgICAgICAgKiBkb20vRWxlbWVudC5oOgorICAgICAgICAoV2Vi
Q29yZTo6RWxlbWVudDo6c2hvdWxkQmVJZ25vcmVkSW5TZXF1ZW50aWFsRm9jdXNOYXZpZ2F0aW9u
IGNvbnN0KTogQWRkZWQuIFJldHVybnMgdHJ1ZSBpZiB0aGUKKyAgICAgICAgb2xkIGltcGxlbWVu
dGF0aW9uIG9mIEVsZW1lbnQ6OnRhYkluZGV4IHdvdWxkIGhhdmUgcmV0dXJuZWQgLTEgZHVlIHRv
IHN1cHBvcnRzRm9jdXMgcmV0dXJuaW5nIGZhbHNlLgorICAgICAgICAqIGRvbS9FbGVtZW50UmFy
ZURhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnRSYXJlRGF0YTo6dGFiSW5kZXggY29u
c3QpOiBNYWRlIHRoaXMgZnVuY3Rpb24gcmV0dXJuIE9wdGlvbmFsPGludD4uIE5vdGUgdGhhdAor
ICAgICAgICBFbGVtZW50UmFyZURhdGEgY29udGludWUgdG8gc3RvcmUgYSBiaXQgZmllbGQgYW5k
IGludCBmb3IgbW9yZSBlZmZpY2llbnQgcGFja2luZy4KKyAgICAgICAgKiBodG1sL0hUTUxBbmNo
b3JFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxBbmNob3JFbGVtZW50OjpkZWZh
dWx0VGFiSW5kZXggY29uc3QpOiBSZXBsYWNlZCB0YWJJbmRleC4KKyAgICAgICAgKiBodG1sL0hU
TUxBbmNob3JFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MQXJlYUVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTEFyZWFFbGVtZW50Ojppc0ZvY3VzYWJsZSBjb25zdCk6Cisg
ICAgICAgICogaHRtbC9IVE1MRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRWxl
bWVudDo6dGFiSW5kZXggY29uc3QpOiBEZWxldGVkLiBUaGUgbG9naWMgaXMgbm93IGluIEVsZW1l
bnQ6OnRhYkluZGV4IGl0c2VsZi4KKyAgICAgICAgKiBodG1sL0hUTUxFbGVtZW50Lmg6CisgICAg
ICAgICogaHRtbC9IVE1MRWxlbWVudC5pZGw6CisgICAgICAgICogaHRtbC9IVE1MRm9ybUNvbnRy
b2xFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6
OmRlZmF1bHRUYWJJbmRleCBjb25zdCk6IFJlcGxhY2VkIHRhYkluZGV4LgorICAgICAgICAqIGh0
bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5oOgorICAgICAgICAqIG1hdGhtbC9NYXRoTUxFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1hdGhNTEVsZW1lbnQ6OmRlZmF1bHRUYWJJbmRl
eCBjb25zdCk6IFJlcGxhY2VkIHRhYkluZGV4LiBUaGlzIGlzIHByb2JhYmx5IGEgYnVnIHNpbmNl
CisgICAgICAgIHRoaXMgd291bGQgcHV0IGV2ZXJ5IE1hdGhNTCBlbGVtZW50IGluIHRoZSBzZXF1
ZW50aWFsIG5hdmlnYXRpb24gb3JkZXIgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGl0CisgICAgICAg
IGhhcyB0YWJJbmRleCBzZXQgb3Igbm90LgorICAgICAgICAqIG1hdGhtbC9NYXRoTUxFbGVtZW50
Lmg6CisgICAgICAgICogcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6dGFiSW5kZXhGb3JFbGVtZW50KTogQWRkZWQuIENvbXB1dGVzIHRoZSAiZWZmZWN0aXZlIiB0
YWIgaW5kZXggRm9jdXNDb250cm9sbGVyIHVzZXMuCisgICAgICAgIChXZWJDb3JlOjpzaGFkb3dB
ZGp1c3RlZFRhYkluZGV4KToKKyAgICAgICAgKFdlYkNvcmU6Om5leHRFbGVtZW50V2l0aEdyZWF0
ZXJUYWJJbmRleCk6IFRoaXMgY29kZSBzaG91bGQgdXNlIHNoYWRvd0FkanVzdGVkVGFiSW5kZXgg
aW5zdGVhZAorICAgICAgICBidXQga2VlcGluZyB0aGUgb2xkIGJlaGF2aW9yIGZvciBub3cuCisg
ICAgICAgICogc3ZnL1NWR0FFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FFbGVt
ZW50OjpkZWZhdWx0VGFiSW5kZXggY29uc3QpOiBSZXBsYWNlZCB0YWJJbmRleC4KKyAgICAgICAg
KiBzdmcvU1ZHQUVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdFbGVtZW50Ojp0YWJJbmRleCBjb25zdCk6IERlbGV0ZWQuIFRoZSBs
b2dpYyBpcyBub3cgaW4gRWxlbWVudDo6dGFiSW5kZXggaXRzZWxmLgorICAgICAgICAqIHN2Zy9T
VkdFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdFbGVtZW50OjpoYXNUYWdOYW1lIGNv
bnN0KToKKyAgICAgICAgKiBzdmcvU1ZHRWxlbWVudC5pZGw6CisKIDIwMTktMDgtMTUgIE15bGVz
IEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBbV0hMU0xdIEFk
ZCB1bmFyeSBwbHVzCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCShyZXZpc2lvbiAyNDg3NTgp
CisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0
MywxNCArMjQzLDIxIEBAIHZvaWQgRWxlbWVudDo6c2V0VGFiSW5kZXhFeHBsaWNpdGx5KGludCAK
ICAgICBlbnN1cmVFbGVtZW50UmFyZURhdGEoKS5zZXRUYWJJbmRleEV4cGxpY2l0bHkodGFiSW5k
ZXgpOwogfQogCi1ib29sIEVsZW1lbnQ6OnRhYkluZGV4U2V0RXhwbGljaXRseSgpIGNvbnN0CitP
cHRpb25hbDxpbnQ+IEVsZW1lbnQ6OnRhYkluZGV4U2V0RXhwbGljaXRseSgpIGNvbnN0CiB7Ci0g
ICAgcmV0dXJuIGhhc1JhcmVEYXRhKCkgJiYgZWxlbWVudFJhcmVEYXRhKCktPnRhYkluZGV4U2V0
RXhwbGljaXRseSgpOworICAgIGlmICghaGFzUmFyZURhdGEoKSkKKyAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKKyAgICByZXR1cm4gZWxlbWVudFJhcmVEYXRhKCktPnRhYkluZGV4KCk7Cit9
CisKK2ludCBFbGVtZW50OjpkZWZhdWx0VGFiSW5kZXgoKSBjb25zdAoreworICAgIHJldHVybiAt
MTsKIH0KIAogYm9vbCBFbGVtZW50OjpzdXBwb3J0c0ZvY3VzKCkgY29uc3QKIHsKLSAgICByZXR1
cm4gdGFiSW5kZXhTZXRFeHBsaWNpdGx5KCk7CisgICAgcmV0dXJuICEhdGFiSW5kZXhTZXRFeHBs
aWNpdGx5KCk7CiB9CiAKIFJlZlB0cjxFbGVtZW50PiBFbGVtZW50Ojpmb2N1c0RlbGVnYXRlKCkK
QEAgLTI1OCwxOSArMjY1LDI0IEBAIFJlZlB0cjxFbGVtZW50PiBFbGVtZW50Ojpmb2N1c0RlbGVn
YXRlKCkKICAgICByZXR1cm4gdGhpczsKIH0KIAotaW50IEVsZW1lbnQ6OnRhYkluZGV4KCkgY29u
c3QKK2ludCBFbGVtZW50Ojp0YWJJbmRleEZvckJpbmRpbmdzKCkgY29uc3QKIHsKLSAgICByZXR1
cm4gaGFzUmFyZURhdGEoKSA/IGVsZW1lbnRSYXJlRGF0YSgpLT50YWJJbmRleCgpIDogMDsKKyAg
ICBhdXRvIGRlZmF1bHRJbmRleCA9IGRlZmF1bHRUYWJJbmRleCgpOworICAgIEFTU0VSVCghZGVm
YXVsdEluZGV4IHx8IGRlZmF1bHRJbmRleCA9PSAtMSk7CisgICAgLy8gRklYTUU6IHN1cHBvcnRz
Rm9jdXMoKSBjaGVjayBzaG91bGRuJ3QgYmUgaGVyZS4KKyAgICBpZiAoIWRlZmF1bHRJbmRleCB8
fCBzdXBwb3J0c0ZvY3VzKCkpCisgICAgICAgIHJldHVybiB0YWJJbmRleFNldEV4cGxpY2l0bHko
KS52YWx1ZU9yKDApOworICAgIHJldHVybiBkZWZhdWx0SW5kZXg7CiB9CiAKLXZvaWQgRWxlbWVu
dDo6c2V0VGFiSW5kZXgoaW50IHZhbHVlKQordm9pZCBFbGVtZW50OjpzZXRUYWJJbmRleEZvckJp
bmRpbmdzKGludCB2YWx1ZSkKIHsKICAgICBzZXRJbnRlZ3JhbEF0dHJpYnV0ZSh0YWJpbmRleEF0
dHIsIHZhbHVlKTsKIH0KIAogYm9vbCBFbGVtZW50Ojppc0tleWJvYXJkRm9jdXNhYmxlKEtleWJv
YXJkRXZlbnQqKSBjb25zdAogewotICAgIHJldHVybiBpc0ZvY3VzYWJsZSgpICYmIHRhYkluZGV4
KCkgPj0gMDsKKyAgICByZXR1cm4gaXNGb2N1c2FibGUoKSAmJiAhc2hvdWxkQmVJZ25vcmVkSW5T
ZXF1ZW50aWFsRm9jdXNOYXZpZ2F0aW9uKCkgJiYgdGFiSW5kZXhTZXRFeHBsaWNpdGx5KCkudmFs
dWVPcigwKSA+PSAwOwogfQogCiBib29sIEVsZW1lbnQ6OmlzTW91c2VGb2N1c2FibGUoKSBjb25z
dApJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCShyZXZpc2lvbiAyNDg3NTgpCisrKyBTb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMTYsNyArMzE2LDggQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRGb2N1cyhib29sIGZsYWcpOwogICAgIHZvaWQgc2V0
SGFzRm9jdXNXaXRoaW4oYm9vbCBmbGFnKTsKIAotICAgIGJvb2wgdGFiSW5kZXhTZXRFeHBsaWNp
dGx5KCkgY29uc3Q7CisgICAgT3B0aW9uYWw8aW50PiB0YWJJbmRleFNldEV4cGxpY2l0bHkoKSBj
b25zdDsKKyAgICBib29sIHNob3VsZEJlSWdub3JlZEluU2VxdWVudGlhbEZvY3VzTmF2aWdhdGlv
bigpIGNvbnN0IHsgcmV0dXJuIGRlZmF1bHRUYWJJbmRleCgpIDwgMCAmJiAhc3VwcG9ydHNGb2N1
cygpOyB9CiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzRm9jdXMoKSBjb25zdDsKICAgICB2aXJ0
dWFsIGJvb2wgaXNGb2N1c2FibGUoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgaXNLZXlib2Fy
ZEZvY3VzYWJsZShLZXlib2FyZEV2ZW50KikgY29uc3Q7CkBAIC0zMjQsOCArMzI1LDggQEAgcHVi
bGljOgogCiAgICAgdmlydHVhbCBib29sIHNob3VsZFVzZUlucHV0TWV0aG9kKCk7CiAKLSAgICB2
aXJ0dWFsIGludCB0YWJJbmRleCgpIGNvbnN0OwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0
VGFiSW5kZXgoaW50KTsKKyAgICB2aXJ0dWFsIGludCB0YWJJbmRleEZvckJpbmRpbmdzKCkgY29u
c3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRUYWJJbmRleEZvckJpbmRpbmdzKGludCk7
CiAgICAgdmlydHVhbCBSZWZQdHI8RWxlbWVudD4gZm9jdXNEZWxlZ2F0ZSgpOwogCiAgICAgRXhj
ZXB0aW9uT3I8dm9pZD4gaW5zZXJ0QWRqYWNlbnRIVE1MKGNvbnN0IFN0cmluZyYgd2hlcmUsIGNv
bnN0IFN0cmluZyYgaHRtbCwgTm9kZVZlY3RvciogYWRkZWROb2Rlcyk7CkBAIC03MTQsNiArNzE1
LDggQEAgcHJpdmF0ZToKICAgICBFbGVtZW50UmFyZURhdGEqIGVsZW1lbnRSYXJlRGF0YSgpIGNv
bnN0OwogICAgIEVsZW1lbnRSYXJlRGF0YSYgZW5zdXJlRWxlbWVudFJhcmVEYXRhKCk7CiAKKyAg
ICB2aXJ0dWFsIGludCBkZWZhdWx0VGFiSW5kZXgoKSBjb25zdDsKKwogICAgIHZvaWQgZGV0YWNo
QWxsQXR0ck5vZGVzRnJvbUVsZW1lbnQoKTsKICAgICB2b2lkIGRldGFjaEF0dHJOb2RlRnJvbUVs
ZW1lbnRXaXRoVmFsdWUoQXR0ciosIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKTsKIApJbmRleDog
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaAkocmV2aXNpb24gMjQ4NzU4KQorKysgU291
cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC01NCw3
ICs1NCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlc2V0Q29tcHV0ZWRTdHlsZSgpOwogICAgIHZv
aWQgcmVzZXRTdHlsZVJlbGF0aW9ucygpOwogICAgIAotICAgIGludCB0YWJJbmRleCgpIGNvbnN0
IHsgcmV0dXJuIG1fdGFiSW5kZXg7IH0KKyAgICBPcHRpb25hbDxpbnQ+IHRhYkluZGV4KCkgY29u
c3QgeyByZXR1cm4gbV90YWJJbmRleFdhc1NldEV4cGxpY2l0bHkgPyBPcHRpb25hbDxpbnQ+IHsg
bV90YWJJbmRleCB9IDogV1RGOjpudWxsb3B0OyB9CiAgICAgdm9pZCBzZXRUYWJJbmRleEV4cGxp
Y2l0bHkoaW50IGluZGV4KSB7IG1fdGFiSW5kZXggPSBpbmRleDsgbV90YWJJbmRleFdhc1NldEV4
cGxpY2l0bHkgPSB0cnVlOyB9CiAgICAgYm9vbCB0YWJJbmRleFNldEV4cGxpY2l0bHkoKSBjb25z
dCB7IHJldHVybiBtX3RhYkluZGV4V2FzU2V0RXhwbGljaXRseTsgfQogICAgIHZvaWQgY2xlYXJU
YWJJbmRleEV4cGxpY2l0bHkoKSB7IG1fdGFiSW5kZXggPSAwOyBtX3RhYkluZGV4V2FzU2V0RXhw
bGljaXRseSA9IGZhbHNlOyB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JF
bGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JF
bGVtZW50LmNwcAkocmV2aXNpb24gMjQ4NzU4KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
QW5jaG9yRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzMCwxMCArMzMwLDkgQEAgY29u
c3QgQXRvbVN0cmluZyYgSFRNTEFuY2hvckVsZW1lbnQ6Om5hbQogICAgIHJldHVybiBnZXROYW1l
QXR0cmlidXRlKCk7CiB9CiAKLWludCBIVE1MQW5jaG9yRWxlbWVudDo6dGFiSW5kZXgoKSBjb25z
dAoraW50IEhUTUxBbmNob3JFbGVtZW50OjpkZWZhdWx0VGFiSW5kZXgoKSBjb25zdAogewotICAg
IC8vIFNraXAgdGhlIHN1cHBvcnRzRm9jdXMgY2hlY2sgaW4gSFRNTEVsZW1lbnQuCi0gICAgcmV0
dXJuIEVsZW1lbnQ6OnRhYkluZGV4KCk7CisgICAgcmV0dXJuIDA7CiB9CiAKIFN0cmluZyBIVE1M
QW5jaG9yRWxlbWVudDo6dGFyZ2V0KCkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEFuY2hvckVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxBbmNob3JFbGVtZW50LmgJKHJldmlzaW9uIDI0ODc1OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEFuY2hvckVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtODgsNyArODgsNyBAQCBw
cml2YXRlOgogICAgIGJvb2wgaXNVUkxBdHRyaWJ1dGUoY29uc3QgQXR0cmlidXRlJikgY29uc3Qg
ZmluYWw7CiAgICAgYm9vbCBjYW5TdGFydFNlbGVjdGlvbigpIGNvbnN0IGZpbmFsOwogICAgIFN0
cmluZyB0YXJnZXQoKSBjb25zdCBvdmVycmlkZTsKLSAgICBpbnQgdGFiSW5kZXgoKSBjb25zdCBm
aW5hbDsKKyAgICBpbnQgZGVmYXVsdFRhYkluZGV4KCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBk
cmFnZ2FibGUoKSBjb25zdCBmaW5hbDsKIAogICAgIFN0cmluZyBlZmZlY3RpdmVUYXJnZXQoKSBj
b25zdDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFyZWFFbGVtZW50LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBcmVhRWxlbWVudC5jcHAJKHJldmlz
aW9uIDI0ODc1OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFyZWFFbGVtZW50LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjEzLDcgKzIxMyw3IEBAIGJvb2wgSFRNTEFyZWFFbGVtZW50Ojpp
c0ZvY3VzYWJsZSgpIGNvbnMKICAgICBpZiAoIWltYWdlIHx8ICFpbWFnZS0+cmVuZGVyZXIoKSB8
fCBpbWFnZS0+cmVuZGVyZXIoKS0+c3R5bGUoKS52aXNpYmlsaXR5KCkgIT0gVmlzaWJpbGl0eTo6
VmlzaWJsZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgcmV0dXJuIHN1cHBvcnRzRm9j
dXMoKSAmJiBFbGVtZW50Ojp0YWJJbmRleCgpID49IDA7CisgICAgcmV0dXJuIHN1cHBvcnRzRm9j
dXMoKSAmJiB0YWJJbmRleFNldEV4cGxpY2l0bHkoKS52YWx1ZU9yKDApID49IDA7CiB9CiAgICAg
CiB2b2lkIEhUTUxBcmVhRWxlbWVudDo6c2V0Rm9jdXMoYm9vbCBzaG91bGRCZUZvY3VzZWQpCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAkocmV2aXNpb24gMjQ4NzU4KQorKysg
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcx
NCwxMyArNzE0LDYgQEAgU3RyaW5nIEhUTUxFbGVtZW50Ojp0aXRsZSgpIGNvbnN0CiAgICAgcmV0
dXJuIGF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24odGl0bGVBdHRyKTsKIH0KIAotaW50
IEhUTUxFbGVtZW50Ojp0YWJJbmRleCgpIGNvbnN0Ci17Ci0gICAgaWYgKHN1cHBvcnRzRm9jdXMo
KSkKLSAgICAgICAgcmV0dXJuIEVsZW1lbnQ6OnRhYkluZGV4KCk7Ci0gICAgcmV0dXJuIC0xOwot
fQotCiBib29sIEhUTUxFbGVtZW50Ojp0cmFuc2xhdGUoKSBjb25zdAogewogICAgIGZvciAoYXV0
byYgZWxlbWVudCA6IGxpbmVhZ2VPZlR5cGU8SFRNTEVsZW1lbnQ+KCp0aGlzKSkgewpJbmRleDog
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaAkocmV2aXNpb24gMjQ4NzU4KQorKysgU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC00NCw4ICs0NCw2IEBA
IHB1YmxpYzoKIAogICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyB0aXRsZSgpIGNvbnN0IGZpbmFs
OwogCi0gICAgaW50IHRhYkluZGV4KCkgY29uc3Qgb3ZlcnJpZGU7Ci0KICAgICBXRUJDT1JFX0VY
UE9SVCBFeGNlcHRpb25Pcjx2b2lkPiBzZXRJbm5lclRleHQoY29uc3QgU3RyaW5nJik7CiAgICAg
V0VCQ09SRV9FWFBPUlQgRXhjZXB0aW9uT3I8dm9pZD4gc2V0T3V0ZXJUZXh0KGNvbnN0IFN0cmlu
ZyYpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmlkbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmlkbAkocmV2aXNpb24gMjQ4
NzU4KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5pZGwJKHdvcmtpbmcgY29w
eSkKQEAgLTM0LDcgKzM0LDcgQEAKICAgICAvLyBVc2VyIGludGVyYWN0aW9uLgogICAgIFtDRVJl
YWN0aW9ucywgUmVmbGVjdF0gYXR0cmlidXRlIGJvb2xlYW4gaGlkZGVuOwogICAgIHZvaWQgY2xp
Y2soKTsKLSAgICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBsb25nIHRhYkluZGV4OworICAgIFtD
RVJlYWN0aW9ucywgSW1wbGVtZW50ZWRBcz10YWJJbmRleEZvckJpbmRpbmdzXSBhdHRyaWJ1dGUg
bG9uZyB0YWJJbmRleDsKICAgICB2b2lkIGZvY3VzKCk7CiAgICAgdm9pZCBibHVyKCk7CiAgICAg
W0NFUmVhY3Rpb25zLCBSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGFjY2Vzc0tleTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcAko
cmV2aXNpb24gMjQ4NzU4KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xF
bGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDA5LDEwICs0MDksOSBAQCBib29sIEhUTUxG
b3JtQ29udHJvbEVsZW1lbnQ6Om1hdGNoZXNJbnZhCiAgICAgcmV0dXJuIHdpbGxWYWxpZGF0ZSgp
ICYmICFpc1ZhbGlkRm9ybUNvbnRyb2xFbGVtZW50KCk7CiB9CiAKLWludCBIVE1MRm9ybUNvbnRy
b2xFbGVtZW50Ojp0YWJJbmRleCgpIGNvbnN0CitpbnQgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6
ZGVmYXVsdFRhYkluZGV4KCkgY29uc3QKIHsKLSAgICAvLyBTa2lwIHRoZSBzdXBwb3J0c0ZvY3Vz
IGNoZWNrIGluIEhUTUxFbGVtZW50LgotICAgIHJldHVybiBFbGVtZW50Ojp0YWJJbmRleCgpOwor
ICAgIHJldHVybiAwOwogfQogCiBib29sIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmNvbXB1dGVX
aWxsVmFsaWRhdGUoKSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNv
bnRyb2xFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9y
bUNvbnRyb2xFbGVtZW50LmgJKHJldmlzaW9uIDI0ODc1OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNjcsNyArMTY3
LDcgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgaXNGb3JtQ29udHJvbEVsZW1lbnQoKSBjb25zdCBm
aW5hbCB7IHJldHVybiB0cnVlOyB9CiAKLSAgICBpbnQgdGFiSW5kZXgoKSBjb25zdCBmaW5hbDsK
KyAgICBpbnQgZGVmYXVsdFRhYkluZGV4KCkgY29uc3QgZmluYWw7CiAKICAgICBib29sIGlzVmFs
aWRGb3JtQ29udHJvbEVsZW1lbnQoKSBjb25zdDsKIApJbmRleDogU291cmNlL1dlYkNvcmUvbWF0
aG1sL01hdGhNTEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL21hdGht
bC9NYXRoTUxFbGVtZW50LmNwcAkocmV2aXNpb24gMjQ4NzU4KQorKysgU291cmNlL1dlYkNvcmUv
bWF0aG1sL01hdGhNTEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMjEsMTAgKzIyMSwx
MCBAQCBib29sIE1hdGhNTEVsZW1lbnQ6OnN1cHBvcnRzRm9jdXMoKSBjb25zCiAgICAgcmV0dXJu
IGlzTGluaygpIHx8IFN0eWxlZEVsZW1lbnQ6OnN1cHBvcnRzRm9jdXMoKTsKIH0KIAotaW50IE1h
dGhNTEVsZW1lbnQ6OnRhYkluZGV4KCkgY29uc3QKK2ludCBNYXRoTUxFbGVtZW50OjpkZWZhdWx0
VGFiSW5kZXgoKSBjb25zdAogewotICAgIC8vIFNraXAgdGhlIHN1cHBvcnRzRm9jdXMgY2hlY2sg
aW4gU3R5bGVkRWxlbWVudC4KLSAgICByZXR1cm4gRWxlbWVudDo6dGFiSW5kZXgoKTsKKyAgICAv
LyBGSVhNRTogVGhpcyBzZWVtcyB3cm9uZy4KKyAgICByZXR1cm4gMDsKIH0KIAogfQpJbmRleDog
U291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MRWxlbWVudC5oCShyZXZpc2lvbiAyNDg3NTgpCisrKyBT
b3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
MDgsNyArMTA4LDcgQEAgcHJpdmF0ZToKICAgICBib29sIGlzTW91c2VGb2N1c2FibGUoKSBjb25z
dCBmaW5hbDsKICAgICBib29sIGlzVVJMQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYpIGNvbnN0
IGZpbmFsOwogICAgIGJvb2wgc3VwcG9ydHNGb2N1cygpIGNvbnN0IGZpbmFsOwotICAgIGludCB0
YWJJbmRleCgpIGNvbnN0IGZpbmFsOworICAgIGludCBkZWZhdWx0VGFiSW5kZXgoKSBjb25zdCBm
aW5hbDsKIH07CiAKIGlubGluZSBib29sIE5vZGU6Omhhc1RhZ05hbWUoY29uc3QgTWF0aE1MUXVh
bGlmaWVkTmFtZSYgbmFtZSkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXND
b250cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29u
dHJvbGxlci5jcHAJKHJldmlzaW9uIDI0ODc1OCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRm9j
dXNDb250cm9sbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzI1LDEzICszMjUsMTkgQEAgc3Rh
dGljIGlubGluZSBib29sIGlzRm9jdXNhYmxlU2NvcGVPd25lcgogICAgIHJldHVybiBlbGVtZW50
LmlzS2V5Ym9hcmRGb2N1c2FibGUoZXZlbnQpICYmIGlzRm9jdXNTY29wZU93bmVyKGVsZW1lbnQp
OwogfQogCisvLyBGSVhNRTogVGhpcyBmdW5jdGlvbiBzaG91bGQgYmUgbWVyZ2VkIGludG8gc2hh
ZG93QWRqdXN0ZWRUYWJJbmRleC4KK3N0YXRpYyBpbmxpbmUgaW50IHRhYkluZGV4Rm9yRWxlbWVu
dChjb25zdCBFbGVtZW50JiBlbGVtZW50KQoreworICAgIHJldHVybiBlbGVtZW50LnNob3VsZEJl
SWdub3JlZEluU2VxdWVudGlhbEZvY3VzTmF2aWdhdGlvbigpID8gLTEgOiBlbGVtZW50LnRhYklu
ZGV4U2V0RXhwbGljaXRseSgpLnZhbHVlT3IoMCk7Cit9CisKIHN0YXRpYyBpbmxpbmUgaW50IHNo
YWRvd0FkanVzdGVkVGFiSW5kZXgoRWxlbWVudCYgZWxlbWVudCwgS2V5Ym9hcmRFdmVudCogZXZl
bnQpCiB7CiAgICAgaWYgKGlzTm9uRm9jdXNhYmxlU2NvcGVPd25lcihlbGVtZW50LCBldmVudCkp
IHsKICAgICAgICAgaWYgKCFlbGVtZW50LnRhYkluZGV4U2V0RXhwbGljaXRseSgpKQogICAgICAg
ICAgICAgcmV0dXJuIDA7IC8vIFRyZWF0IGEgc2hhZG93IGhvc3Qgd2l0aG91dCB0YWJpbmRleCBp
ZiBpdCBoYXMgdGFiaW5kZXg9MCBldmVuIHRob3VnaCBIVE1MRWxlbWVudDo6dGFiSW5kZXggcmV0
dXJucyAtMSBvbiBzdWNoIGFuIGVsZW1lbnQuCiAgICAgfQotICAgIHJldHVybiBlbGVtZW50LnRh
YkluZGV4KCk7CisgICAgcmV0dXJuIHRhYkluZGV4Rm9yRWxlbWVudChlbGVtZW50KTsKIH0KIAog
Rm9jdXNDb250cm9sbGVyOjpGb2N1c0NvbnRyb2xsZXIoUGFnZSYgcGFnZSwgT3B0aW9uU2V0PEFj
dGl2aXR5U3RhdGU6OkZsYWc+IGFjdGl2aXR5U3RhdGUpCkBAIC02MjAsNyArNjI2LDggQEAgc3Rh
dGljIEVsZW1lbnQqIG5leHRFbGVtZW50V2l0aEdyZWF0ZXJUYQogICAgICAgICBpZiAoIWlzPEVs
ZW1lbnQ+KCpub2RlKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBFbGVtZW50JiBj
YW5kaWRhdGUgPSBkb3duY2FzdDxFbGVtZW50Pigqbm9kZSk7Ci0gICAgICAgIGludCBjYW5kaWRh
dGVUYWJJbmRleCA9IGNhbmRpZGF0ZS50YWJJbmRleCgpOworICAgICAgICAvLyBGSVhNRTogV2Ug
c2hvdWxkIGJlIGNhbGxpbmcgc2hhZG93QWRqdXN0ZWRUYWJJbmRleCBpbnN0ZWFkLgorICAgICAg
ICBpbnQgY2FuZGlkYXRlVGFiSW5kZXggPSB0YWJJbmRleEZvckVsZW1lbnQoY2FuZGlkYXRlKTsK
ICAgICAgICAgaWYgKGlzRm9jdXNhYmxlRWxlbWVudE9yU2NvcGVPd25lcihjYW5kaWRhdGUsIGV2
ZW50KSAmJiBjYW5kaWRhdGVUYWJJbmRleCA+IHRhYkluZGV4ICYmICghd2lubmVyIHx8IGNhbmRp
ZGF0ZVRhYkluZGV4IDwgd2lubmluZ1RhYkluZGV4KSkgewogICAgICAgICAgICAgd2lubmVyID0g
JmNhbmRpZGF0ZTsKICAgICAgICAgICAgIHdpbm5pbmdUYWJJbmRleCA9IGNhbmRpZGF0ZVRhYklu
ZGV4OwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FFbGVtZW50LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuY3BwCShyZXZpc2lvbiAyNDg3NTgp
CisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xNTEsMTAgKzE1MSw5IEBAIHZvaWQgU1ZHQUVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIo
RXYKICAgICBTVkdHcmFwaGljc0VsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoZXZlbnQpOwog
fQogCi1pbnQgU1ZHQUVsZW1lbnQ6OnRhYkluZGV4KCkgY29uc3QKK2ludCBTVkdBRWxlbWVudDo6
ZGVmYXVsdFRhYkluZGV4KCkgY29uc3QKIHsKLSAgICAvLyBTa2lwIHRoZSBzdXBwb3J0c0ZvY3Vz
IGNoZWNrIGluIFNWR0VsZW1lbnQuCi0gICAgcmV0dXJuIEVsZW1lbnQ6OnRhYkluZGV4KCk7Cisg
ICAgcmV0dXJuIDA7CiB9CiAKIGJvb2wgU1ZHQUVsZW1lbnQ6OnN1cHBvcnRzRm9jdXMoKSBjb25z
dApJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FFbGVtZW50LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0FFbGVtZW50LmgJKHJldmlzaW9uIDI0ODc1OCkKKysrIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC02MCw3ICs2
MCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBpc0tleWJvYXJkRm9jdXNhYmxlKEtleWJvYXJkRXZl
bnQqKSBjb25zdCBmaW5hbDsKICAgICBib29sIGlzVVJMQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0
ZSYpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgY2FuU3RhcnRTZWxlY3Rpb24oKSBjb25zdCBmaW5h
bDsKLSAgICBpbnQgdGFiSW5kZXgoKSBjb25zdCBmaW5hbDsKKyAgICBpbnQgZGVmYXVsdFRhYklu
ZGV4KCkgY29uc3QgZmluYWw7CiAKICAgICBib29sIHdpbGxSZXNwb25kVG9Nb3VzZUNsaWNrRXZl
bnRzKCkgZmluYWw7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5jcHAJKHJldmlzaW9u
IDI0ODc1OCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTgzLDEzICsxODMsNiBAQCBTVkdFbGVtZW50Ojp+U1ZHRWxlbWVudCgpCiAgICAg
ZG9jdW1lbnQoKS5hY2Nlc3NTVkdFeHRlbnNpb25zKCkucmVtb3ZlQWxsRWxlbWVudFJlZmVyZW5j
ZXNGb3JUYXJnZXQoKnRoaXMpOwogfQogCi1pbnQgU1ZHRWxlbWVudDo6dGFiSW5kZXgoKSBjb25z
dAotewotICAgIGlmIChzdXBwb3J0c0ZvY3VzKCkpCi0gICAgICAgIHJldHVybiBFbGVtZW50Ojp0
YWJJbmRleCgpOwotICAgIHJldHVybiAtMTsKLX0KLQogdm9pZCBTVkdFbGVtZW50Ojp3aWxsUmVj
YWxjU3R5bGUoU3R5bGU6OkNoYW5nZSBjaGFuZ2UpCiB7CiAgICAgaWYgKCFtX3N2Z1JhcmVEYXRh
IHx8IHN0eWxlUmVzb2x1dGlvblNob3VsZFJlY29tcG9zaXRlTGF5ZXIoKSkKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0VsZW1lbnQuaAkocmV2aXNpb24gMjQ4NzU4KQorKysgU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0VsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTE5LDcgKzExOSw2IEBAIHB1YmxpYzoK
ICAgICBib29sIGhhc0ZvY3VzRXZlbnRMaXN0ZW5lcnMoKSBjb25zdDsKIAogICAgIGJvb2wgaGFz
VGFnTmFtZShjb25zdCBTVkdRdWFsaWZpZWROYW1lJiBuYW1lKSBjb25zdCB7IHJldHVybiBoYXNM
b2NhbE5hbWUobmFtZS5sb2NhbE5hbWUoKSk7IH0KLSAgICBpbnQgdGFiSW5kZXgoKSBjb25zdCBv
dmVycmlkZTsKIAogICAgIHZvaWQgY2FsbENsZWFyVGFyZ2V0KCkgeyBjbGVhclRhcmdldCgpOyB9
CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmlkbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5pZGwJKHJldmlzaW9uIDI0ODc1OCkKKysr
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzEs
NyArMzEsNyBAQAogCiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkU3RyaW5nIGNs
YXNzTmFtZTsKIAotICAgIGF0dHJpYnV0ZSBsb25nIHRhYkluZGV4OworICAgIFtDRVJlYWN0aW9u
cz1Ob3ROZWVkZWQsIEltcGxlbWVudGVkQXM9dGFiSW5kZXhGb3JCaW5kaW5nc10gYXR0cmlidXRl
IGxvbmcgdGFiSW5kZXg7CiAKICAgICAvLyBGSVhNRTogVXNpbmcgInVuZGVmaW5lZCIgYXMgZGVm
YXVsdCBwYXJhbWV0ZXIgdmFsdWUgaXMgd3JvbmcuCiAgICAgLy8gVGhpcyBtZXRob2QgaXMgZGVw
cmVjYXRlZCwgYW5kIHdlJ2QgbGlrZSB0byByZW1vdmUgaXQgc29tZWRheS4KSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNDg3NjEpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDE5LTA4LTE1ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3
ZWJraXQub3JnPgorCisgICAgICAgIFNwbGl0IHRhYkluZGV4IGNvbXB1dGF0aW9uIGZvciBET00g
YW5kIHRoZSByZXN0IG9mIFdlYkNvcmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwMDgwNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01IVE1MRWxlbWVudC5jcHA6CisgICAgICAgICh3ZWJraXRfZG9tX2h0bWxfZWxlbWVu
dF9nZXRfdGFiX2luZGV4KToKKyAgICAgICAgKHdlYmtpdF9kb21faHRtbF9lbGVtZW50X3NldF90
YWJfaW5kZXgpOgorCiAyMDE5LTA4LTE1ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUu
Y29tPgogCiAgICAgICAgIFtGVFddIEVuYWJsZSBDb3JlRm91bmRhdGlvbiB1c2UgaWYgYnVpbGRp
bmcgZm9yIEFwcGxlIHRhcmdldApJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxFbGVtZW50LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NSFRNTEVsZW1lbnQuY3BwCShyZXZpc2lvbiAyNDg3NTgpCisrKyBTb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEVs
ZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NTcsNyArNDU3LDcgQEAgZ2xvbmcgd2Via2l0
X2RvbV9odG1sX2VsZW1lbnRfZ2V0X3RhYl9pbgogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51
bGxTdGF0ZSBzdGF0ZTsKICAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0hU
TUxfRUxFTUVOVChzZWxmKSwgMCk7CiAgICAgV2ViQ29yZTo6SFRNTEVsZW1lbnQqIGl0ZW0gPSBX
ZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgZ2xvbmcgcmVzdWx0ID0gaXRlbS0+dGFiSW5kZXgoKTsK
KyAgICBnbG9uZyByZXN1bHQgPSBpdGVtLT50YWJJbmRleEZvckJpbmRpbmdzKCk7CiAgICAgcmV0
dXJuIHJlc3VsdDsKIH0KIApAQCAtNDY2LDcgKzQ2Niw3IEBAIHZvaWQgd2Via2l0X2RvbV9odG1s
X2VsZW1lbnRfc2V0X3RhYl9pbmQKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUg
c3RhdGU7CiAgICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfRE9NX0lTX0hUTUxfRUxFTUVOVChz
ZWxmKSk7CiAgICAgV2ViQ29yZTo6SFRNTEVsZW1lbnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2Vs
Zik7Ci0gICAgaXRlbS0+c2V0VGFiSW5kZXgodmFsdWUpOworICAgIGl0ZW0tPnNldFRhYkluZGV4
Rm9yQmluZGluZ3ModmFsdWUpOwogfQogCiBnYm9vbGVhbiB3ZWJraXRfZG9tX2h0bWxfZWxlbWVu
dF9nZXRfZHJhZ2dhYmxlKFdlYktpdERPTUhUTUxFbGVtZW50KiBzZWxmKQpJbmRleDogU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL0NoYW5nZUxvZwkocmV2aXNpb24gMjQ4NzYwKQorKysgU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTkt
MDgtMTUgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgU3BsaXQg
dGFiSW5kZXggY29tcHV0YXRpb24gZm9yIERPTSBhbmQgdGhlIHJlc3Qgb2YgV2ViQ29yZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAwODA2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBET00vRE9NSFRN
TEVsZW1lbnQubW06CisgICAgICAgICgtW0RPTUhUTUxFbGVtZW50IHRhYkluZGV4XSk6CisgICAg
ICAgICgtW0RPTUhUTUxFbGVtZW50IHNldFRhYkluZGV4Ol0pOgorCiAyMDE5LTA4LTE1ICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIFllbGxvdyBMb29r
dXAgaGlnaGxpZ2h0IGdldHMgc3R1Y2sgb3ZlciBNYWlsIG1lc3NhZ2VzCkluZGV4OiBTb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9ET00vRE9NSFRNTEVsZW1lbnQubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTUhUTUxFbGVtZW50Lm1tCShyZXZpc2lvbiAyNDg3
NTgpCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9NSFRNTEVsZW1lbnQubW0JKHdv
cmtpbmcgY29weSkKQEAgLTk1LDEzICs5NSwxMyBAQCAtICh2b2lkKXNldERpcjooTlNTdHJpbmcg
KiluZXdEaXIKIC0gKGludCl0YWJJbmRleAogewogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51
bGxTdGF0ZSBzdGF0ZTsKLSAgICByZXR1cm4gSU1QTC0+dGFiSW5kZXgoKTsKKyAgICByZXR1cm4g
SU1QTC0+dGFiSW5kZXhGb3JCaW5kaW5ncygpOwogfQogCiAtICh2b2lkKXNldFRhYkluZGV4Oihp
bnQpbmV3VGFiSW5kZXgKIHsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3Rh
dGU7Ci0gICAgSU1QTC0+c2V0VGFiSW5kZXgobmV3VGFiSW5kZXgpOworICAgIElNUEwtPnNldFRh
YkluZGV4Rm9yQmluZGluZ3MobmV3VGFiSW5kZXgpOwogfQogCiAtIChCT09MKWRyYWdnYWJsZQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>