<?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>122381</bug_id>
          
          <creation_ts>2013-10-05 08:35:42 -0700</creation_ts>
          <short_desc>REGRESSION(r156952): Made svg/custom/large-image-pattern-crash.html assert (Requested by ap on #webkit).</short_desc>
          <delta_ts>2013-10-05 08:54:06 -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>New Bugs</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>122371</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>darin</cc>
    
    <cc>koivisto</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>936574</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-05 08:35:42 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/156952 broke the build:
Made svg/custom/large-image-pattern-crash.html assert (Requested by ap on #webkit).

This is an automatic bug report generated by webkitbot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>936576</commentid>
    <comment_count>1</comment_count>
      <attachid>213453</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-05 08:36:09 -0700</bug_when>
    <thetext>Created attachment 213453
ROLLOUT of r156952

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>936577</commentid>
    <comment_count>2</comment_count>
      <attachid>213453</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-05 08:54:04 -0700</bug_when>
    <thetext>Comment on attachment 213453
ROLLOUT of r156952

Clearing flags on attachment: 213453

Committed r156954: &lt;http://trac.webkit.org/changeset/156954&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>936578</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-05 08:54:06 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>213453</attachid>
            <date>2013-10-05 08:36:09 -0700</date>
            <delta_ts>2013-10-05 08:54:04 -0700</delta_ts>
            <desc>ROLLOUT of r156952</desc>
            <filename>bug-122381-20131005083608.patch</filename>
            <type>text/plain</type>
            <size>41748</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU2OTUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTlhZWRlOWI5ZTY2YmZk
MjdjNzIxN2I2MDhkNDhjNTUxN2YxMzdjYi4uN2FhNmI1NzMwZDYyYTExODczZjczYmYzMzEyNzZm
NWIyZDQ0MWFiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc5IEBACisyMDEzLTEwLTA1ICBDb21t
aXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2Vk
LCByb2xsaW5nIG91dCByMTU2OTUyLgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2No
YW5nZXNldC8xNTY5NTIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEyMjM4MQorCisgICAgICAgIE1hZGUgc3ZnL2N1c3RvbS9sYXJnZS1pbWFnZS1wYXR0
ZXJuLWNyYXNoLmh0bWwgYXNzZXJ0CisgICAgICAgIChSZXF1ZXN0ZWQgYnkgYXAgb24gI3dlYmtp
dCkuCisKKyAgICAgICAgKiByZW5kZXJpbmcvSW5saW5lQm94LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OklubGluZUJveDo6cGFpbnQpOgorICAgICAgICAqIHJlbmRlcmluZy9JbmxpbmVCb3guaDoK
KyAgICAgICAgKiByZW5kZXJpbmcvSW5saW5lRmxvd0JveC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbmxpbmVGbG93Qm94OjpwYWludEJveERlY29yYXRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6
OklubGluZUZsb3dCb3g6OnBhaW50TWFzayk6CisgICAgICAgICogcmVuZGVyaW5nL0lubGluZVRl
eHRCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lVGV4dEJveDo6cGFpbnQpOgorICAg
ICAgICAqIHJlbmRlcmluZy9QYWludEluZm8uaDoKKyAgICAgICAgKFdlYkNvcmU6OlBhaW50SW5m
bzo6c2hvdWxkUGFpbnRXaXRoaW5Sb290KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxv
Y2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OnBhaW50KToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6
cGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpwYWludEJveERlY29yYXRpb25z
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6cGFpbnRNYXNrKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyQm94Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQu
aDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRmllbGRzZXQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyRmllbGRzZXQ6OnBhaW50Qm94RGVjb3JhdGlvbnMpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJGcmFtZVNldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGcmFt
ZVNldDo6cGFpbnQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMaW5lQnJlYWsuaDoKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlck9iamVjdDo6cGFpbnQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuaDoK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyUmVwbGFjZWQ6OnBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJlcGxh
Y2VkOjpzaG91bGRQYWludCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRhYmxlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlOjpwYWludE9iamVjdCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJUYWJsZTo6cGFpbnRCb3hEZWNvcmF0aW9ucyk6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJs
ZUNlbGw6OnBhaW50Q29sbGFwc2VkQm9yZGVycyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJU
YWJsZUNlbGw6OnBhaW50QmFja2dyb3VuZHNCZWhpbmRDZWxsKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclRhYmxlQ2VsbDo6cGFpbnRCb3hEZWNvcmF0aW9ucyk6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlclRhYmxlQ29sLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRleHQuaDoK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJWaWV3OjpwYWludCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJWaWV3OjpwYWludEJv
eERlY29yYXRpb25zKToKKyAgICAgICAgKiByZW5kZXJpbmcvUm9vdElubGluZUJveC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSb290SW5saW5lQm94OjpwYWludEVsbGlwc2lzQm94KToKKyAgICAg
ICAgKFdlYkNvcmU6OlJvb3RJbmxpbmVCb3g6OnBhaW50Q3VzdG9tSGlnaGxpZ2h0KToKKyAgICAg
ICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0NvbnRhaW5lci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJTVkdDb250YWluZXI6OnBhaW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR0dyYWRpZW50U3RvcC5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHUmVzb3VyY2VDbGlwcGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1Jlc291
cmNlQ2xpcHBlcjo6ZHJhd0NvbnRlbnRJbnRvTWFza0ltYWdlKToKKyAgICAgICAgKiByZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlTWFza2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclNWR1Jlc291cmNlTWFza2VyOjpkcmF3Q29udGVudEludG9NYXNrSW1hZ2UpOgorICAgICAg
ICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VQYXR0ZXJuLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclNWR1Jlc291cmNlUGF0dGVybjo6Y3JlYXRlVGlsZUltYWdlKToKKyAg
ICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyU1ZHUm9vdDo6cGFpbnRSZXBsYWNlZCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2
Zy9TVkdJbmxpbmVUZXh0Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0lubGluZVRleHRC
b3g6OnBhaW50U2VsZWN0aW9uQmFja2dyb3VuZCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdJbmxp
bmVUZXh0Qm94OjpwYWludCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJpbmdD
b250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlbmRlcmluZ0NvbnRleHQ6OnJlbmRl
clN1YnRyZWVUb0ltYWdlQnVmZmVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1NWR1JlbmRl
cmluZ0NvbnRleHQuaDoKKyAgICAgICAgKiBzdmcvU1ZHVXNlRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTVkdVc2VFbGVtZW50OjpyZW5kZXJlckNsaXBDaGlsZCk6CisgICAgICAgICog
c3ZnL1NWR1VzZUVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdG
RUltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZFSW1hZ2U6OnBsYXRmb3JtQXBwbHlTb2Z0
d2FyZSk6CisKIDIwMTMtMTAtMDUgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIE5lZWQgdG8gY2hlY2sgaWYgc29tZSBIVE1MIGNoaWxkIGVsZW1lbnRzIGFyZSBIVE1M
VW5rbm93bkVsZW1lbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Jbmxp
bmVCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUJveC5jcHAKaW5kZXgg
MTVkZjdlNzExMTZhYmEzYjE3YjEzOGYyODEzZTdkNGIwYmNmNTQxMy4uYzVmZjAyN2M2YjhmY2Nm
NGI3NGQ5NzQ5YmU3NzE2MjFhOTJlZjA4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0lubGluZUJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGlu
ZUJveC5jcHAKQEAgLTIyNiwxMyArMjI2LDEyIEBAIHZvaWQgSW5saW5lQm94OjphZGp1c3RQb3Np
dGlvbihmbG9hdCBkeCwgZmxvYXQgZHkpCiAKIHZvaWQgSW5saW5lQm94OjpwYWludChQYWludElu
Zm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0LCBMYXlvdXRVbml0
IC8qIGxpbmVUb3AgKi8sIExheW91dFVuaXQgLypsaW5lQm90dG9tKi8pCiB7Ci0gICAgUmVuZGVy
RWxlbWVudCYgcmVuZGVyZXIgPSB0b1JlbmRlckVsZW1lbnQodGhpcy0+cmVuZGVyZXIoKSk7Ci0g
ICAgaWYgKCFwYWludEluZm8uc2hvdWxkUGFpbnRXaXRoaW5Sb290KHJlbmRlcmVyKSB8fCAocGFp
bnRJbmZvLnBoYXNlICE9IFBhaW50UGhhc2VGb3JlZ3JvdW5kICYmIHBhaW50SW5mby5waGFzZSAh
PSBQYWludFBoYXNlU2VsZWN0aW9uKSkKKyAgICBpZiAoIXBhaW50SW5mby5zaG91bGRQYWludFdp
dGhpblJvb3QoJnJlbmRlcmVyKCkpIHx8IChwYWludEluZm8ucGhhc2UgIT0gUGFpbnRQaGFzZUZv
cmVncm91bmQgJiYgcGFpbnRJbmZvLnBoYXNlICE9IFBhaW50UGhhc2VTZWxlY3Rpb24pKQogICAg
ICAgICByZXR1cm47CiAKICAgICBMYXlvdXRQb2ludCBjaGlsZFBvaW50ID0gcGFpbnRPZmZzZXQ7
Ci0gICAgaWYgKHBhcmVudCgpLT5yZW5kZXJlcigpLnN0eWxlKCktPmlzRmxpcHBlZEJsb2Nrc1dy
aXRpbmdNb2RlKCkgJiYgcmVuZGVyZXIuaXNCb3goKSkgLy8gRmFzdGVyIHRoYW4gY2FsbGluZyBj
b250YWluaW5nQmxvY2soKS4KLSAgICAgICAgY2hpbGRQb2ludCA9IG1fcmVuZGVyZXIuY29udGFp
bmluZ0Jsb2NrKCktPmZsaXBGb3JXcml0aW5nTW9kZUZvckNoaWxkKCZ0b1JlbmRlckJveChyZW5k
ZXJlciksIGNoaWxkUG9pbnQpOworICAgIGlmIChwYXJlbnQoKS0+cmVuZGVyZXIoKS5zdHlsZSgp
LT5pc0ZsaXBwZWRCbG9ja3NXcml0aW5nTW9kZSgpICYmIHJlbmRlcmVyKCkuaXNCb3goKSkgLy8g
RmFzdGVyIHRoYW4gY2FsbGluZyBjb250YWluaW5nQmxvY2soKS4KKyAgICAgICAgY2hpbGRQb2lu
dCA9IG1fcmVuZGVyZXIuY29udGFpbmluZ0Jsb2NrKCktPmZsaXBGb3JXcml0aW5nTW9kZUZvckNo
aWxkKCZ0b1JlbmRlckJveChyZW5kZXJlcigpKSwgY2hpbGRQb2ludCk7CiAgICAgCiAgICAgLy8g
UGFpbnQgYWxsIHBoYXNlcyBvZiByZXBsYWNlZCBlbGVtZW50cyBhdG9taWNhbGx5LCBhcyB0aG91
Z2ggdGhlIHJlcGxhY2VkIGVsZW1lbnQgZXN0YWJsaXNoZWQgaXRzCiAgICAgLy8gb3duIHN0YWNr
aW5nIGNvbnRleHQuICAoU2VlIEFwcGVuZGl4IEUuMiwgc2VjdGlvbiA2LjQgb24gaW5saW5lIGJs
b2NrL3RhYmxlIGVsZW1lbnRzIGluIHRoZSBDU1MyLjEKQEAgLTI0MCwxNiArMjM5LDE2IEBAIHZv
aWQgSW5saW5lQm94OjpwYWludChQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9p
bnQmIHBhaW50T2Zmc2V0LCBMYXlvCiAgICAgYm9vbCBwcmVzZXJ2ZVBoYXNlID0gcGFpbnRJbmZv
LnBoYXNlID09IFBhaW50UGhhc2VTZWxlY3Rpb24gfHwgcGFpbnRJbmZvLnBoYXNlID09IFBhaW50
UGhhc2VUZXh0Q2xpcDsKICAgICBQYWludEluZm8gaW5mbyhwYWludEluZm8pOwogICAgIGluZm8u
cGhhc2UgPSBwcmVzZXJ2ZVBoYXNlID8gcGFpbnRJbmZvLnBoYXNlIDogUGFpbnRQaGFzZUJsb2Nr
QmFja2dyb3VuZDsKLSAgICByZW5kZXJlci5wYWludChpbmZvLCBjaGlsZFBvaW50KTsKKyAgICBt
X3JlbmRlcmVyLnBhaW50KGluZm8sIGNoaWxkUG9pbnQpOwogICAgIGlmICghcHJlc2VydmVQaGFz
ZSkgewogICAgICAgICBpbmZvLnBoYXNlID0gUGFpbnRQaGFzZUNoaWxkQmxvY2tCYWNrZ3JvdW5k
czsKLSAgICAgICAgcmVuZGVyZXIucGFpbnQoaW5mbywgY2hpbGRQb2ludCk7CisgICAgICAgIG1f
cmVuZGVyZXIucGFpbnQoaW5mbywgY2hpbGRQb2ludCk7CiAgICAgICAgIGluZm8ucGhhc2UgPSBQ
YWludFBoYXNlRmxvYXQ7Ci0gICAgICAgIHJlbmRlcmVyLnBhaW50KGluZm8sIGNoaWxkUG9pbnQp
OworICAgICAgICBtX3JlbmRlcmVyLnBhaW50KGluZm8sIGNoaWxkUG9pbnQpOwogICAgICAgICBp
bmZvLnBoYXNlID0gUGFpbnRQaGFzZUZvcmVncm91bmQ7Ci0gICAgICAgIHJlbmRlcmVyLnBhaW50
KGluZm8sIGNoaWxkUG9pbnQpOworICAgICAgICBtX3JlbmRlcmVyLnBhaW50KGluZm8sIGNoaWxk
UG9pbnQpOwogICAgICAgICBpbmZvLnBoYXNlID0gUGFpbnRQaGFzZU91dGxpbmU7Ci0gICAgICAg
IHJlbmRlcmVyLnBhaW50KGluZm8sIGNoaWxkUG9pbnQpOworICAgICAgICBtX3JlbmRlcmVyLnBh
aW50KGluZm8sIGNoaWxkUG9pbnQpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0lubGluZUJveC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lu
bGluZUJveC5oCmluZGV4IGY5ZDM2YjFmM2M0NzQ5MWFhZTk4OTcyNWE2MWMzNjJkODUwNjBhODIu
LjYzZmM2OGI3YjA0MjFmYWViMTdlOTc0NDI5Nzc2NGU3ZWYxNzUzZTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvSW5saW5lQm94LmgKQEAgLTE4MSw3ICsxODEsNiBAQCBwdWJsaWM6CiAgICAgSW5s
aW5lQm94KiBuZXh0TGVhZkNoaWxkSWdub3JpbmdMaW5lQnJlYWsoKSBjb25zdDsKICAgICBJbmxp
bmVCb3gqIHByZXZMZWFmQ2hpbGRJZ25vcmluZ0xpbmVCcmVhaygpIGNvbnN0OwogCi0gICAgLy8g
RklYTUU6IFRoZXJlIHNob3VsZCBiZSBhIHN1YmNsYXNzIHRoYXQgcmV0dXJucyBSZW5kZXJFbGVt
ZW50LiBQbGFpbiBJbmxpbmVCb3ggc2hvdWxkbid0IGJlIGluc3RhbnRpYXRlZC4KICAgICBSZW5k
ZXJPYmplY3QmIHJlbmRlcmVyKCkgY29uc3QgeyByZXR1cm4gbV9yZW5kZXJlcjsgfQogCiAgICAg
SW5saW5lRmxvd0JveCogcGFyZW50KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9J
bmxpbmVGbG93Qm94LmNwcAppbmRleCA0OTExZjUwMjUwMTFjNWRkYTU4M2NkZWFlNjc5N2JiMmZj
YzY2ZjI5Li5lMGE1ZjEwMzkwYzI3NzUwMmE2ZWUyYzc4ZGNhMWM1YjgwMzIyMzI2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxvd0JveC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwCkBAIC0xMjk4LDcgKzEyOTgs
NyBAQCBzdGF0aWMgTGF5b3V0UmVjdCBjbGlwUmVjdEZvck5pbmVQaWVjZUltYWdlU3RyaXAoSW5s
aW5lRmxvd0JveCogYm94LCBjb25zdCBOaW5lUAogCiB2b2lkIElubGluZUZsb3dCb3g6OnBhaW50
Qm94RGVjb3JhdGlvbnMoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBw
YWludE9mZnNldCkKIHsKLSAgICBpZiAoIXBhaW50SW5mby5zaG91bGRQYWludFdpdGhpblJvb3Qo
cmVuZGVyZXIoKSkgfHwgcmVuZGVyZXIoKS5zdHlsZSgpLT52aXNpYmlsaXR5KCkgIT0gVklTSUJM
RSB8fCBwYWludEluZm8ucGhhc2UgIT0gUGFpbnRQaGFzZUZvcmVncm91bmQpCisgICAgaWYgKCFw
YWludEluZm8uc2hvdWxkUGFpbnRXaXRoaW5Sb290KCZyZW5kZXJlcigpKSB8fCByZW5kZXJlcigp
LnN0eWxlKCktPnZpc2liaWxpdHkoKSAhPSBWSVNJQkxFIHx8IHBhaW50SW5mby5waGFzZSAhPSBQ
YWludFBoYXNlRm9yZWdyb3VuZCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gUGl4ZWwgc25h
cCBiYWNrZ3JvdW5kL2JvcmRlciBwYWludGluZy4KQEAgLTEzNzIsNyArMTM3Miw3IEBAIHZvaWQg
SW5saW5lRmxvd0JveDo6cGFpbnRCb3hEZWNvcmF0aW9ucyhQYWludEluZm8mIHBhaW50SW5mbywg
Y29uc3QgTGF5b3V0UG9pbnQmCiAKIHZvaWQgSW5saW5lRmxvd0JveDo6cGFpbnRNYXNrKFBhaW50
SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQpCiB7Ci0gICAg
aWYgKCFwYWludEluZm8uc2hvdWxkUGFpbnRXaXRoaW5Sb290KHJlbmRlcmVyKCkpIHx8IHJlbmRl
cmVyKCkuc3R5bGUoKS0+dmlzaWJpbGl0eSgpICE9IFZJU0lCTEUgfHwgcGFpbnRJbmZvLnBoYXNl
ICE9IFBhaW50UGhhc2VNYXNrKQorICAgIGlmICghcGFpbnRJbmZvLnNob3VsZFBhaW50V2l0aGlu
Um9vdCgmcmVuZGVyZXIoKSkgfHwgcmVuZGVyZXIoKS5zdHlsZSgpLT52aXNpYmlsaXR5KCkgIT0g
VklTSUJMRSB8fCBwYWludEluZm8ucGhhc2UgIT0gUGFpbnRQaGFzZU1hc2spCiAgICAgICAgIHJl
dHVybjsKIAogICAgIC8vIFBpeGVsIHNuYXAgbWFzayBwYWludGluZy4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcAppbmRleCBjYjUyYTlmNGU5Y2NkNmY0ZGRhMTli
ZTMyMjM1ZjVkNDlhNGVlOGJjLi5kZGNmNmI2NmIzNzhlMzEzOTU3YmE3OTQ4YTY3MDMwZDJmMGJl
ZDE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCkBAIC01
MTgsOCArNTE4LDggQEAgc3RhdGljIGlubGluZSBBZmZpbmVUcmFuc2Zvcm0gcm90YXRpb24oY29u
c3QgRmxvYXRSZWN0JiBib3hSZWN0LCBSb3RhdGlvbkRpcmVjdGkKIAogdm9pZCBJbmxpbmVUZXh0
Qm94OjpwYWludChQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50
T2Zmc2V0LCBMYXlvdXRVbml0IC8qbGluZVRvcCovLCBMYXlvdXRVbml0IC8qbGluZUJvdHRvbSov
KQogewotICAgIGlmIChpc0xpbmVCcmVhaygpIHx8ICFwYWludEluZm8uc2hvdWxkUGFpbnRXaXRo
aW5Sb290KHJlbmRlcmVyKCkpIHx8IHJlbmRlcmVyKCkuc3R5bGUoKS0+dmlzaWJpbGl0eSgpICE9
IFZJU0lCTEUKLSAgICAgICAgfHwgbV90cnVuY2F0aW9uID09IGNGdWxsVHJ1bmNhdGlvbiB8fCBw
YWludEluZm8ucGhhc2UgPT0gUGFpbnRQaGFzZU91dGxpbmUgfHwgIW1fbGVuKQorICAgIGlmIChp
c0xpbmVCcmVhaygpIHx8ICFwYWludEluZm8uc2hvdWxkUGFpbnRXaXRoaW5Sb290KCZyZW5kZXJl
cigpKSB8fCByZW5kZXJlcigpLnN0eWxlKCktPnZpc2liaWxpdHkoKSAhPSBWSVNJQkxFIHx8Cisg
ICAgICAgIG1fdHJ1bmNhdGlvbiA9PSBjRnVsbFRydW5jYXRpb24gfHwgcGFpbnRJbmZvLnBoYXNl
ID09IFBhaW50UGhhc2VPdXRsaW5lIHx8ICFtX2xlbikKICAgICAgICAgcmV0dXJuOwogCiAgICAg
QVNTRVJUKHBhaW50SW5mby5waGFzZSAhPSBQYWludFBoYXNlU2VsZk91dGxpbmUgJiYgcGFpbnRJ
bmZvLnBoYXNlICE9IFBhaW50UGhhc2VDaGlsZE91dGxpbmVzKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9QYWludEluZm8uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9QYWludEluZm8uaAppbmRleCAwYWViODg5NmNhYjc0MjVlMzgzNGUxMjkwNGM2Y2ZlOWMxYzNh
Yzg5Li44MjI0NzQ5MDA4NmI0OTVhZGFjNjNmZWYzZWRmMGRhZmNlM2MzMWExIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUGFpbnRJbmZvLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1BhaW50SW5mby5oCkBAIC04MCw5ICs4MCw5IEBAIHN0cnVjdCBQYWludElu
Zm8gewogICAgICAgICB9CiAgICAgfQogCi0gICAgYm9vbCBzaG91bGRQYWludFdpdGhpblJvb3Qo
Y29uc3QgUmVuZGVyT2JqZWN0JiByZW5kZXJlcikgY29uc3QKKyAgICBib29sIHNob3VsZFBhaW50
V2l0aGluUm9vdChjb25zdCBSZW5kZXJPYmplY3QqIHJlbmRlcmVyKSBjb25zdAogICAgIHsKLSAg
ICAgICAgcmV0dXJuICFzdWJ0cmVlUGFpbnRSb290IHx8IHN1YnRyZWVQYWludFJvb3QgPT0gJnJl
bmRlcmVyOworICAgICAgICByZXR1cm4gIXN1YnRyZWVQYWludFJvb3QgfHwgc3VidHJlZVBhaW50
Um9vdCA9PSByZW5kZXJlcjsKICAgICB9CiAKICAgICBib29sIGZvcmNlQmxhY2tUZXh0KCkgY29u
c3QgeyByZXR1cm4gcGFpbnRCZWhhdmlvciAmIFBhaW50QmVoYXZpb3JGb3JjZUJsYWNrVGV4dDsg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKaW5kZXggZjg1NGY4NGEy
YmI0YmM4YjUyMWY2YjVmNTgxNjA4MjZhODA5OThjMy4uNjJiNzhiMDMyMTUwMzhiZDFmZmZkYmU0
NmY5Y2RhZmY3MzU1NDk3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2su
Y3BwCkBAIC0yMjM1LDcgKzIyMzUsNyBAQCB2b2lkIFJlbmRlckJsb2NrOjpwYWludChQYWludElu
Zm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0KQogICAgIC8vIE91
ciBzY3JvbGxiYXIgd2lkZ2V0cyBwYWludCBleGFjdGx5IHdoZW4gd2UgdGVsbCB0aGVtIHRvLCBz
byB0aGF0IHRoZXkgd29yayBwcm9wZXJseSB3aXRoCiAgICAgLy8gei1pbmRleC4gIFdlIHBhaW50
IGFmdGVyIHdlIHBhaW50ZWQgdGhlIGJhY2tncm91bmQvYm9yZGVyLCBzbyB0aGF0IHRoZSBzY3Jv
bGxiYXJzIHdpbGwKICAgICAvLyBzaXQgYWJvdmUgdGhlIGJhY2tncm91bmQvYm9yZGVyLgotICAg
IGlmIChoYXNPdmVyZmxvd0NsaXAoKSAmJiBzdHlsZSgpLT52aXNpYmlsaXR5KCkgPT0gVklTSUJM
RSAmJiAocGhhc2UgPT0gUGFpbnRQaGFzZUJsb2NrQmFja2dyb3VuZCB8fCBwaGFzZSA9PSBQYWlu
dFBoYXNlQ2hpbGRCbG9ja0JhY2tncm91bmQpICYmIHBhaW50SW5mby5zaG91bGRQYWludFdpdGhp
blJvb3QoKnRoaXMpICYmICFwYWludEluZm8ucGFpbnRSb290QmFja2dyb3VuZE9ubHkoKSkKKyAg
ICBpZiAoaGFzT3ZlcmZsb3dDbGlwKCkgJiYgc3R5bGUoKS0+dmlzaWJpbGl0eSgpID09IFZJU0lC
TEUgJiYgKHBoYXNlID09IFBhaW50UGhhc2VCbG9ja0JhY2tncm91bmQgfHwgcGhhc2UgPT0gUGFp
bnRQaGFzZUNoaWxkQmxvY2tCYWNrZ3JvdW5kKSAmJiBwYWludEluZm8uc2hvdWxkUGFpbnRXaXRo
aW5Sb290KHRoaXMpICYmICFwYWludEluZm8ucGFpbnRSb290QmFja2dyb3VuZE9ubHkoKSkKICAg
ICAgICAgbGF5ZXIoKS0+cGFpbnRPdmVyZmxvd0NvbnRyb2xzKHBhaW50SW5mby5jb250ZXh0LCBy
b3VuZGVkSW50UG9pbnQoYWRqdXN0ZWRQYWludE9mZnNldCksIHBhaW50SW5mby5yZWN0KTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAppbmRleCA2NjgxZDM0NGQ3OTM0
YzUzOTU3ODA4ZDkwZDI5YjJmN2UyZDExNzllLi42OGJkZmNmNWJiZWRhNjFkMTczNjhkMTQ2YTk3
YmJiODBmYjZmNzA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcApAQCAt
MTA5NCw2ICsxMDk0LDE2IEBAIGJvb2wgUmVuZGVyQm94Ojpub2RlQXRQb2ludChjb25zdCBIaXRU
ZXN0UmVxdWVzdCYgcmVxdWVzdCwgSGl0VGVzdFJlc3VsdCYgcmVzdWx0CiAKIC8vIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLSBwYWludGluZyBzdHVmZiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCiAKK3ZvaWQgUmVuZGVyQm94OjpwYWludChQYWludEluZm8mIHBhaW50SW5mbywgY29uc3Qg
TGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0KQoreworICAgIExheW91dFBvaW50IGFkanVzdGVkUGFp
bnRPZmZzZXQgPSBwYWludE9mZnNldCArIGxvY2F0aW9uKCk7CisgICAgLy8gZGVmYXVsdCBpbXBs
ZW1lbnRhdGlvbi4gSnVzdCBwYXNzIHBhaW50IHRocm91Z2ggdG8gdGhlIGNoaWxkcmVuCisgICAg
UGFpbnRJbmZvIGNoaWxkSW5mbyhwYWludEluZm8pOworICAgIGNoaWxkSW5mby51cGRhdGVTdWJ0
cmVlUGFpbnRSb290Rm9yQ2hpbGRyZW4odGhpcyk7CisgICAgZm9yIChSZW5kZXJPYmplY3QqIGNo
aWxkID0gZmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkK
KyAgICAgICAgY2hpbGQtPnBhaW50KGNoaWxkSW5mbywgYWRqdXN0ZWRQYWludE9mZnNldCk7Cit9
CisKIHZvaWQgUmVuZGVyQm94OjpwYWludFJvb3RCb3hGaWxsTGF5ZXJzKGNvbnN0IFBhaW50SW5m
byYgcGFpbnRJbmZvKQogewogICAgIGlmIChwYWludEluZm8uc2tpcFJvb3RCYWNrZ3JvdW5kKCkp
CkBAIC0xMTQ0LDcgKzExNTQsNyBAQCBCYWNrZ3JvdW5kQmxlZWRBdm9pZGFuY2UgUmVuZGVyQm94
OjpkZXRlcm1pbmVCYWNrZ3JvdW5kQmxlZWRBdm9pZGFuY2UoR3JhcGhpY3NDbwogCiB2b2lkIFJl
bmRlckJveDo6cGFpbnRCb3hEZWNvcmF0aW9ucyhQYWludEluZm8mIHBhaW50SW5mbywgY29uc3Qg
TGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0KQogewotICAgIGlmICghcGFpbnRJbmZvLnNob3VsZFBh
aW50V2l0aGluUm9vdCgqdGhpcykpCisgICAgaWYgKCFwYWludEluZm8uc2hvdWxkUGFpbnRXaXRo
aW5Sb290KHRoaXMpKQogICAgICAgICByZXR1cm47CiAKICAgICBMYXlvdXRSZWN0IHBhaW50UmVj
dCA9IGJvcmRlckJveFJlY3RJblJlZ2lvbihwYWludEluZm8ucmVuZGVyUmVnaW9uKTsKQEAgLTEz
NjUsNyArMTM3NSw3IEBAIGJvb2wgUmVuZGVyQm94OjpiYWNrZ3JvdW5kSGFzT3BhcXVlVG9wTGF5
ZXIoKSBjb25zdAogCiB2b2lkIFJlbmRlckJveDo6cGFpbnRNYXNrKFBhaW50SW5mbyYgcGFpbnRJ
bmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQpCiB7Ci0gICAgaWYgKCFwYWludElu
Zm8uc2hvdWxkUGFpbnRXaXRoaW5Sb290KCp0aGlzKSB8fCBzdHlsZSgpLT52aXNpYmlsaXR5KCkg
IT0gVklTSUJMRSB8fCBwYWludEluZm8ucGhhc2UgIT0gUGFpbnRQaGFzZU1hc2sgfHwgcGFpbnRJ
bmZvLmNvbnRleHQtPnBhaW50aW5nRGlzYWJsZWQoKSkKKyAgICBpZiAoIXBhaW50SW5mby5zaG91
bGRQYWludFdpdGhpblJvb3QodGhpcykgfHwgc3R5bGUoKS0+dmlzaWJpbGl0eSgpICE9IFZJU0lC
TEUgfHwgcGFpbnRJbmZvLnBoYXNlICE9IFBhaW50UGhhc2VNYXNrIHx8IHBhaW50SW5mby5jb250
ZXh0LT5wYWludGluZ0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIExheW91dFJl
Y3QgcGFpbnRSZWN0ID0gTGF5b3V0UmVjdChwYWludE9mZnNldCwgc2l6ZSgpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3guaAppbmRleCBiYWNiMzA5NWQ1OTU3ZTUwZTM4YzcyNmE1NTBh
NjkxMGQ3NjRiYmZhLi5mMGZiMjBlMTIwNDhhM2MzNzJkNmJmNzI4ODQ5YTc5M2U3NjkyYTRmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCkBAIC0yOTcsNiArMjk3LDcgQEAgcHVi
bGljOgogICAgIExheW91dFJlY3QgcmVmbGVjdGVkUmVjdChjb25zdCBMYXlvdXRSZWN0JikgY29u
c3Q7CiAKICAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCk7CisgICAgdmlydHVhbCB2b2lkIHBhaW50
KFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50Jik7CiAgICAgdmlydHVhbCBib29sIG5vZGVB
dFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiwgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IEhpdFRl
c3RMb2NhdGlvbiYgbG9jYXRpb25JbkNvbnRhaW5lciwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3Vt
dWxhdGVkT2Zmc2V0LCBIaXRUZXN0QWN0aW9uKSBPVkVSUklERTsKIAogICAgIHZpcnR1YWwgTGF5
b3V0VW5pdCBtaW5QcmVmZXJyZWRMb2dpY2FsV2lkdGgoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5oCmluZGV4IGY2ZjFlZDQ2NGQwM2IzOGQ0YTkyMTJmYjIz
ZTQ0YTRlNWZhN2U0NDUuLjFmYzU4YjA4Y2Y5M2ZhZDAzNDFlMGM3ZWNlNzI5MTNmMDgyMDRjNjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuaApAQCAtODcsOCArODcs
NiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXROZWVkc1Bvc2l0aW9uZWRNb3ZlbWVudExheW91dChj
b25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpOwogICAgIHZvaWQgc2V0TmVlZHNTaW1wbGlmaWVk
Tm9ybWFsRmxvd0xheW91dCgpOwogCi0gICAgdmlydHVhbCB2b2lkIHBhaW50KFBhaW50SW5mbyYs
IGNvbnN0IExheW91dFBvaW50JikgPSAwOwotCiAgICAgLy8gUmV0dXJuIHRoZSByZW5kZXJlciB3
aG9zZSBiYWNrZ3JvdW5kIHN0eWxlIGlzIHVzZWQgdG8gcGFpbnQgdGhlIHJvb3QgYmFja2dyb3Vu
ZC4gU2hvdWxkIG9ubHkgYmUgY2FsbGVkIG9uIHRoZSByZW5kZXJlciBmb3Igd2hpY2ggaXNSb290
KCkgaXMgdHJ1ZS4KICAgICBSZW5kZXJFbGVtZW50KiByZW5kZXJlckZvclJvb3RCYWNrZ3JvdW5k
KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWVsZHNl
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmllbGRzZXQuY3BwCmluZGV4
IGQwZmE5Mzk3YTg2YmFlZDBkNjM2NmU4MDdiZGMzODZjOTdjYzUzNDUuLjk1MGEzYzA2M2Q0OTg2
ZGZlOWYxNmYwNTU0YTNkNjU3ZDk5ZDdlM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJGaWVsZHNldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckZpZWxkc2V0LmNwcApAQCAtMTM4LDcgKzEzOCw3IEBAIFJlbmRlckJveCogUmVuZGVy
RmllbGRzZXQ6OmZpbmRMZWdlbmQoRmluZExlZ2VuZE9wdGlvbiBvcHRpb24pIGNvbnN0CiAKIHZv
aWQgUmVuZGVyRmllbGRzZXQ6OnBhaW50Qm94RGVjb3JhdGlvbnMoUGFpbnRJbmZvJiBwYWludElu
Zm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCkKIHsKLSAgICBpZiAoIXBhaW50SW5m
by5zaG91bGRQYWludFdpdGhpblJvb3QoKnRoaXMpKQorICAgIGlmICghcGFpbnRJbmZvLnNob3Vs
ZFBhaW50V2l0aGluUm9vdCh0aGlzKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgTGF5b3V0UmVj
dCBwYWludFJlY3QocGFpbnRPZmZzZXQsIHNpemUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRnJhbWVTZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckZyYW1lU2V0LmNwcAppbmRleCBjMzk4ZjAzOGRkZjZjZTMzZjRhNTFjMDhlZWQ0
MWY0NzcxMWE2NTkzLi5hMzQwNjhlNDg2YzA0ZDZiM2YxNjVlNjI5ZGI5NmI4MmNmNmUzMDZjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnJhbWVTZXQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFtZVNldC5jcHAKQEAgLTE0MCw3
ICsxNDAsNyBAQCB2b2lkIFJlbmRlckZyYW1lU2V0OjpwYWludChQYWludEluZm8mIHBhaW50SW5m
bywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0KQogICAgIGZvciAoc2l6ZV90IHIgPSAw
OyByIDwgcm93czsgcisrKSB7CiAgICAgICAgIExheW91dFVuaXQgeFBvcyA9IDA7CiAgICAgICAg
IGZvciAoc2l6ZV90IGMgPSAwOyBjIDwgY29sczsgYysrKSB7Ci0gICAgICAgICAgICB0b1JlbmRl
ckVsZW1lbnQoY2hpbGQpLT5wYWludChwYWludEluZm8sIGFkanVzdGVkUGFpbnRPZmZzZXQpOwor
ICAgICAgICAgICAgY2hpbGQtPnBhaW50KHBhaW50SW5mbywgYWRqdXN0ZWRQYWludE9mZnNldCk7
CiAgICAgICAgICAgICB4UG9zICs9IG1fY29scy5tX3NpemVzW2NdOwogICAgICAgICAgICAgaWYg
KGJvcmRlclRoaWNrbmVzcyAmJiBtX2NvbHMubV9hbGxvd0JvcmRlcltjICsgMV0pIHsKICAgICAg
ICAgICAgICAgICBwYWludENvbHVtbkJvcmRlcihwYWludEluZm8sIHBpeGVsU25hcHBlZEludFJl
Y3QoTGF5b3V0UmVjdChhZGp1c3RlZFBhaW50T2Zmc2V0LngoKSArIHhQb3MsIGFkanVzdGVkUGFp
bnRPZmZzZXQueSgpICsgeVBvcywgYm9yZGVyVGhpY2tuZXNzLCBoZWlnaHQoKSkpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaW5lQnJlYWsuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaW5lQnJlYWsuaAppbmRleCA1YjdmOWJhYjEzMWE2
ZTViZDhmNjEzM2M0ODA4NjYzZjRiYTdiNzdkLi5kZmM5YzY0Yzc0ZTJkZGIwMDA5MzY2NWFkNDhi
NjlmZjc2YWViMmQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGluZUJyZWFrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpbmVCcmVh
ay5oCkBAIC01NSw3ICs1NSw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBub2RlKCkgY29uc3QgV1RG
X0RFTEVURURfRlVOQ1RJT047CiAKICAgICB2aXJ0dWFsIGJvb2wgY2FuSGF2ZUNoaWxkcmVuKCkg
Y29uc3QgT1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIHZvaWQgcGFpbnQo
UGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKSBPVkVSUklERSBGSU5BTCB7IH0KIAogICAg
IHZpcnR1YWwgVmlzaWJsZVBvc2l0aW9uIHBvc2l0aW9uRm9yUG9pbnQoY29uc3QgTGF5b3V0UG9p
bnQmKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGludCBjYXJldE1pbk9mZnNldCgpIGNvbnN0IE9W
RVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVj
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAppbmRleCBm
NjExOWYwZTNhMTE1ZjEzZDQwYzBjNjUzOTRkZjkxNmFmZjlmY2MxLi5mZDM4NDI3Yjc0MWRhYzMy
YmUyNmExYzRkOWViOTExNDcyMWIxYjI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyT2JqZWN0LmNwcApAQCAtMTIzOCw2ICsxMjM4LDEwIEBAIExheW91dFJlY3QgUmVuZGVyT2Jq
ZWN0OjpwYWludGluZ1Jvb3RSZWN0KExheW91dFJlY3QmIHRvcExldmVsUmVjdCkKICAgICByZXR1
cm4gcmVzdWx0OwogfQogCit2b2lkIFJlbmRlck9iamVjdDo6cGFpbnQoUGFpbnRJbmZvJiwgY29u
c3QgTGF5b3V0UG9pbnQmKQoreworfQorCiBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBSZW5kZXJP
YmplY3Q6OmNvbnRhaW5lckZvclJlcGFpbnQoKSBjb25zdAogewogICAgIFJlbmRlckxheWVyTW9k
ZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck9iamVjdC5oCmluZGV4IDY5YjA0NGY2YTk1ZGRkYjE2NDFhNzhjMDA2ZjM5MjU5M2Q0Zjgw
NGEuLmM1ZDdkM2YxN2UxOGY5NjI2ZjM2Mzk0MjZjMjg3Njg0MDExZDMzZWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKQEAgLTY1Myw2ICs2NTMsOCBAQCBwdWJsaWM6
CiAgICAgdm9pZCBzZXRIYXNUcmFuc2Zvcm0oYm9vbCBiID0gdHJ1ZSkgeyBtX2JpdGZpZWxkcy5z
ZXRIYXNUcmFuc2Zvcm0oYik7IH0KICAgICB2b2lkIHNldEhhc1JlZmxlY3Rpb24oYm9vbCBiID0g
dHJ1ZSkgeyBtX2JpdGZpZWxkcy5zZXRIYXNSZWZsZWN0aW9uKGIpOyB9CiAKKyAgICB2aXJ0dWFs
IHZvaWQgcGFpbnQoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKTsKKwogICAgIC8vIFJl
Y3Vyc2l2ZSBmdW5jdGlvbiB0aGF0IGNvbXB1dGVzIHRoZSBzaXplIGFuZCBwb3NpdGlvbiBvZiB0
aGlzIG9iamVjdCBhbmQgYWxsIGl0cyBkZXNjZW5kYW50cy4KICAgICB2aXJ0dWFsIHZvaWQgbGF5
b3V0KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBs
YWNlZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCmlu
ZGV4IDJiOGRiZjVjOGUyNWQwZjYzMjViMzc2YTU2ZDJlNGIxMWQyMWRlOTkuLmM4NWI1Y2YwZjQ4
MzUyNmNkMWUxNTEyYWZhYWU2N2YyMGMwMjY3OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclJlcGxhY2VkLmNwcApAQCAtMTI5LDcgKzEyOSw3IEBAIHZvaWQgUmVuZGVyUmVw
bGFjZWQ6OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFp
bnRPZmZzZXQpCiAgICAgaWYgKHBhaW50SW5mby5waGFzZSAhPSBQYWludFBoYXNlRm9yZWdyb3Vu
ZCAmJiBwYWludEluZm8ucGhhc2UgIT0gUGFpbnRQaGFzZVNlbGVjdGlvbiAmJiAhY2FuSGF2ZUNo
aWxkcmVuKCkpCiAgICAgICAgIHJldHVybjsKICAgICAKLSAgICBpZiAoIXBhaW50SW5mby5zaG91
bGRQYWludFdpdGhpblJvb3QoKnRoaXMpKQorICAgIGlmICghcGFpbnRJbmZvLnNob3VsZFBhaW50
V2l0aGluUm9vdCh0aGlzKSkKICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIGJvb2wgZHJhd1Nl
bGVjdGlvblRpbnQgPSBzZWxlY3Rpb25TdGF0ZSgpICE9IFNlbGVjdGlvbk5vbmUgJiYgIWRvY3Vt
ZW50KCkucHJpbnRpbmcoKTsKQEAgLTE3Niw3ICsxNzYsNyBAQCBib29sIFJlbmRlclJlcGxhY2Vk
OjpzaG91bGRQYWludChQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBh
aW50TwogICAgICAgICAgICAgJiYgcGFpbnRJbmZvLnBoYXNlICE9IFBhaW50UGhhc2VTZWxlY3Rp
b24gJiYgcGFpbnRJbmZvLnBoYXNlICE9IFBhaW50UGhhc2VNYXNrKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKLSAgICBpZiAoIXBhaW50SW5mby5zaG91bGRQYWludFdpdGhpblJvb3QoKnRoaXMp
KQorICAgIGlmICghcGFpbnRJbmZvLnNob3VsZFBhaW50V2l0aGluUm9vdCh0aGlzKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAKICAgICAvLyBpZiB3ZSdyZSBpbnZpc2libGUgb3Ig
aGF2ZW4ndCByZWNlaXZlZCBhIGxheW91dCB5ZXQsIHRoZW4ganVzdCBiYWlsLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHAKaW5kZXggYTc1Y2U0MmM0MDVjMDliMGYxNGE5
MmMzZDRlMDVkMTNiN2ZiNDM1NC4uNDQwYjZmMjliYTcxNjZkMWNmY2NhZTc4MTg0NTQyYWNlZWI5
N2NkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuY3BwCkBAIC02NTEs
MTIgKzY1MSw5IEBAIHZvaWQgUmVuZGVyVGFibGU6OnBhaW50T2JqZWN0KFBhaW50SW5mbyYgcGFp
bnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzCiAgICAgaW5mby51cGRhdGVTdWJ0
cmVlUGFpbnRSb290Rm9yQ2hpbGRyZW4odGhpcyk7CiAKICAgICBmb3IgKFJlbmRlck9iamVjdCog
Y2hpbGQgPSBmaXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygp
KSB7Ci0gICAgICAgIGlmICghY2hpbGQtPmlzQm94KCkpCi0gICAgICAgICAgICBjb250aW51ZTsK
LSAgICAgICAgUmVuZGVyQm94JiBib3ggPSB0b1JlbmRlckJveCgqY2hpbGQpOwotICAgICAgICBp
ZiAoIWJveC5oYXNTZWxmUGFpbnRpbmdMYXllcigpICYmIChib3guaXNUYWJsZVNlY3Rpb24oKSB8
fCBib3guaXNUYWJsZUNhcHRpb24oKSkpIHsKLSAgICAgICAgICAgIExheW91dFBvaW50IGNoaWxk
UG9pbnQgPSBmbGlwRm9yV3JpdGluZ01vZGVGb3JDaGlsZCgmYm94LCBwYWludE9mZnNldCk7Ci0g
ICAgICAgICAgICBib3gucGFpbnQoaW5mbywgY2hpbGRQb2ludCk7CisgICAgICAgIGlmIChjaGls
ZC0+aXNCb3goKSAmJiAhdG9SZW5kZXJCb3goY2hpbGQpLT5oYXNTZWxmUGFpbnRpbmdMYXllcigp
ICYmIChjaGlsZC0+aXNUYWJsZVNlY3Rpb24oKSB8fCBjaGlsZC0+aXNUYWJsZUNhcHRpb24oKSkp
IHsKKyAgICAgICAgICAgIExheW91dFBvaW50IGNoaWxkUG9pbnQgPSBmbGlwRm9yV3JpdGluZ01v
ZGVGb3JDaGlsZCh0b1JlbmRlckJveChjaGlsZCksIHBhaW50T2Zmc2V0KTsKKyAgICAgICAgICAg
IGNoaWxkLT5wYWludChpbmZvLCBjaGlsZFBvaW50KTsKICAgICAgICAgfQogICAgIH0KICAgICAK
QEAgLTcwMCw3ICs2OTcsNyBAQCB2b2lkIFJlbmRlclRhYmxlOjpzdWJ0cmFjdENhcHRpb25SZWN0
KExheW91dFJlY3QmIHJlY3QpIGNvbnN0CiAKIHZvaWQgUmVuZGVyVGFibGU6OnBhaW50Qm94RGVj
b3JhdGlvbnMoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9m
ZnNldCkKIHsKLSAgICBpZiAoIXBhaW50SW5mby5zaG91bGRQYWludFdpdGhpblJvb3QoKnRoaXMp
KQorICAgIGlmICghcGFpbnRJbmZvLnNob3VsZFBhaW50V2l0aGluUm9vdCh0aGlzKSkKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgTGF5b3V0UmVjdCByZWN0KHBhaW50T2Zmc2V0LCBzaXplKCkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmNwcAppbmRleCBmNmU1
YjRiMDlmYmU2Zjg2YWU0YTc1ZGRmN2UyNWY1NmEyMmUyNDNhLi5lZTI1MzBmZWRkOTJiNGRkNjMy
ZmQyMjU2N2NlMTJiOGEwZDYwYzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGFibGVDZWxsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGFibGVDZWxsLmNwcApAQCAtMTE1Niw3ICsxMTU2LDcgQEAgdm9pZCBSZW5kZXJUYWJsZUNl
bGw6OnBhaW50Q29sbGFwc2VkQm9yZGVycyhQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5
b3V0UG8KIHsKICAgICBBU1NFUlQocGFpbnRJbmZvLnBoYXNlID09IFBhaW50UGhhc2VDb2xsYXBz
ZWRUYWJsZUJvcmRlcnMpOwogCi0gICAgaWYgKCFwYWludEluZm8uc2hvdWxkUGFpbnRXaXRoaW5S
b290KCp0aGlzKSB8fCBzdHlsZSgpLT52aXNpYmlsaXR5KCkgIT0gVklTSUJMRSkKKyAgICBpZiAo
IXBhaW50SW5mby5zaG91bGRQYWludFdpdGhpblJvb3QodGhpcykgfHwgc3R5bGUoKS0+dmlzaWJp
bGl0eSgpICE9IFZJU0lCTEUpCiAgICAgICAgIHJldHVybjsKIAogICAgIExheW91dFJlY3QgbG9j
YWxSZXBhaW50UmVjdCA9IHBhaW50SW5mby5yZWN0OwpAQCAtMTI2Niw3ICsxMjY2LDcgQEAgdm9p
ZCBSZW5kZXJUYWJsZUNlbGw6OnBhaW50Q29sbGFwc2VkQm9yZGVycyhQYWludEluZm8mIHBhaW50
SW5mbywgY29uc3QgTGF5b3V0UG8KIAogdm9pZCBSZW5kZXJUYWJsZUNlbGw6OnBhaW50QmFja2dy
b3VuZHNCZWhpbmRDZWxsKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYg
cGFpbnRPZmZzZXQsIFJlbmRlckVsZW1lbnQqIGJhY2tncm91bmRPYmplY3QpCiB7Ci0gICAgaWYg
KCFwYWludEluZm8uc2hvdWxkUGFpbnRXaXRoaW5Sb290KCp0aGlzKSkKKyAgICBpZiAoIXBhaW50
SW5mby5zaG91bGRQYWludFdpdGhpblJvb3QodGhpcykpCiAgICAgICAgIHJldHVybjsKIAogICAg
IGlmICghYmFja2dyb3VuZE9iamVjdCkKQEAgLTEzMDIsNyArMTMwMiw3IEBAIHZvaWQgUmVuZGVy
VGFibGVDZWxsOjpwYWludEJhY2tncm91bmRzQmVoaW5kQ2VsbChQYWludEluZm8mIHBhaW50SW5m
bywgY29uc3QgTGF5CiAKIHZvaWQgUmVuZGVyVGFibGVDZWxsOjpwYWludEJveERlY29yYXRpb25z
KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQpCiB7
Ci0gICAgaWYgKCFwYWludEluZm8uc2hvdWxkUGFpbnRXaXRoaW5Sb290KCp0aGlzKSkKKyAgICBp
ZiAoIXBhaW50SW5mby5zaG91bGRQYWludFdpdGhpblJvb3QodGhpcykpCiAgICAgICAgIHJldHVy
bjsKIAogICAgIFJlbmRlclRhYmxlKiB0YWJsZUVsdCA9IHRhYmxlKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDb2wuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUYWJsZUNvbC5oCmluZGV4IDI4MzI1NzU5NmRhNGFlYjliOTk0MTU0
YTNkZWY1YWExZGI1ZWI5MTYuLmU4MTAwOTA0ZDMzYWRkMjEwNmQ0ZDQ4ZTY0ZmJiMzRlNGFjNTQ4
ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNvbC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNvbC5oCkBAIC04OCw3
ICs4OCw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGltYWdlQ2hhbmdlZChXcmFwcGVk
SW1hZ2VQdHIsIGNvbnN0IEludFJlY3QqID0gMCkgT1ZFUlJJREU7CiAKICAgICB2aXJ0dWFsIHZv
aWQgc3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSogb2xk
U3R5bGUpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBwYWludChQYWludEluZm8mLCBjb25z
dCBMYXlvdXRQb2ludCYpIE9WRVJSSURFIHsgfQogCiAgICAgUmVuZGVyVGFibGUqIHRhYmxlKCkg
Y29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5oCmluZGV4IDQ5NzQ3OGY4
MDc5NGFjY2I3NDY1NTVlMzhjNmJkMzlhNWViMDBkMzMuLmJjOTNjMTZjMWY0NGU5YzNkNmIzNjA5
N2NmZjg3M2ZhN2UzOTllZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuaApA
QCAtMTcxLDYgKzE3MSw3IEBAIHByaXZhdGU6CiAgICAgLy8gY2FsbGVycyB3aXRoIGEgUmVuZGVy
T2JqZWN0KiBjYW4gY29udGludWUgdG8gdXNlIGxlbmd0aCgpLgogICAgIHZpcnR1YWwgdW5zaWdu
ZWQgbGVuZ3RoKCkgY29uc3QgT1ZFUlJJREUgRklOQUwgeyByZXR1cm4gdGV4dExlbmd0aCgpOyB9
CiAKKyAgICB2aXJ0dWFsIHZvaWQgcGFpbnQoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQm
KSBPVkVSUklERSBGSU5BTCB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAgICAgdmlydHVhbCB2
b2lkIGxheW91dCgpIE9WRVJSSURFIEZJTkFMIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAg
ICB2aXJ0dWFsIGJvb2wgbm9kZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmLCBIaXRUZXN0
UmVzdWx0JiwgY29uc3QgSGl0VGVzdExvY2F0aW9uJiwgY29uc3QgTGF5b3V0UG9pbnQmLCBIaXRU
ZXN0QWN0aW9uKSBPVkVSUklERSBGSU5BTCB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyByZXR1cm4g
ZmFsc2U7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZp
ZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCmluZGV4IDNm
NTRkMDY5Mjk2NGE4NDJiMWY1MjU1NmVlYWY5MjUxNGExNDRlYWMuLjY2NjFkMzRkNDRkZjJkYWI2
ZTQ0MGJkZWM2NzY4NjNjNzVkODBkYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Vmlldy5jcHAKQEAgLTQzOCw3ICs0MzgsNyBAQCB2b2lkIFJlbmRlclZpZXc6OnBhaW50KFBhaW50
SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQpCiAgICAgQVNT
RVJUKExheW91dFBvaW50KEludFBvaW50KHBhaW50T2Zmc2V0LngoKSwgcGFpbnRPZmZzZXQueSgp
KSkgPT0gcGFpbnRPZmZzZXQpOwogCiAgICAgLy8gVGhpcyBhdm9pZHMgcGFpbnRpbmcgZ2FyYmFn
ZSBiZXR3ZWVuIGNvbHVtbnMgaWYgdGhlcmUgaXMgYSBjb2x1bW4gZ2FwLgotICAgIGlmIChmcmFt
ZVZpZXcoKS5wYWdpbmF0aW9uKCkubW9kZSAhPSBQYWdpbmF0aW9uOjpVbnBhZ2luYXRlZCAmJiBw
YWludEluZm8uc2hvdWxkUGFpbnRXaXRoaW5Sb290KCp0aGlzKSkKKyAgICBpZiAoZnJhbWVWaWV3
KCkucGFnaW5hdGlvbigpLm1vZGUgIT0gUGFnaW5hdGlvbjo6VW5wYWdpbmF0ZWQgJiYgcGFpbnRJ
bmZvLnNob3VsZFBhaW50V2l0aGluUm9vdCh0aGlzKSkKICAgICAgICAgcGFpbnRJbmZvLmNvbnRl
eHQtPmZpbGxSZWN0KHBhaW50SW5mby5yZWN0LCBmcmFtZVZpZXcoKS5iYXNlQmFja2dyb3VuZENv
bG9yKCksIENvbG9yU3BhY2VEZXZpY2VSR0IpOwogCiAgICAgcGFpbnRPYmplY3QocGFpbnRJbmZv
LCBwYWludE9mZnNldCk7CkBAIC00NzIsNyArNDcyLDcgQEAgc3RhdGljIGlubGluZSBib29sIHJl
bmRlcmVyT2JzY3VyZXNCYWNrZ3JvdW5kKFJlbmRlckVsZW1lbnQqIHJvb3RPYmplY3QpCiAKIHZv
aWQgUmVuZGVyVmlldzo6cGFpbnRCb3hEZWNvcmF0aW9ucyhQYWludEluZm8mIHBhaW50SW5mbywg
Y29uc3QgTGF5b3V0UG9pbnQmKQogewotICAgIGlmICghcGFpbnRJbmZvLnNob3VsZFBhaW50V2l0
aGluUm9vdCgqdGhpcykpCisgICAgaWYgKCFwYWludEluZm8uc2hvdWxkUGFpbnRXaXRoaW5Sb290
KHRoaXMpKQogICAgICAgICByZXR1cm47CiAKICAgICAvLyBDaGVjayB0byBzZWUgaWYgd2UgYXJl
IGVuY2xvc2VkIGJ5IGEgbGF5ZXIgdGhhdCByZXF1aXJlcyBjb21wbGV4IHBhaW50aW5nIHJ1bGVz
LiAgSWYgc28sIHdlIGNhbm5vdCBibGl0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUm9vdElubGluZUJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUm9vdElu
bGluZUJveC5jcHAKaW5kZXggYWIyNTNkMjI2NGU3YjNkZDIwYWJlM2JkZjRkMGJmYTQwNjMzNWM1
ZS4uOGFiNThiNzc3N2QyN2RhMzY1NTBkMzBkMDc0NTc0MGUxOGYyMjY1ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jvb3RJbmxpbmVCb3guY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9Sb290SW5saW5lQm94LmNwcApAQCAtMTY5LDcgKzE2OSw3IEBAIGZs
b2F0IFJvb3RJbmxpbmVCb3g6OnBsYWNlRWxsaXBzaXNCb3goYm9vbCBsdHIsIGZsb2F0IGJsb2Nr
TGVmdEVkZ2UsIGZsb2F0IGJsb2NrCiAKIHZvaWQgUm9vdElubGluZUJveDo6cGFpbnRFbGxpcHNp
c0JveChQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0
LCBMYXlvdXRVbml0IGxpbmVUb3AsIExheW91dFVuaXQgbGluZUJvdHRvbSkgY29uc3QKIHsKLSAg
ICBpZiAoaGFzRWxsaXBzaXNCb3goKSAmJiBwYWludEluZm8uc2hvdWxkUGFpbnRXaXRoaW5Sb290
KHJlbmRlcmVyKCkpICYmIHJlbmRlcmVyKCkuc3R5bGUoKS0+dmlzaWJpbGl0eSgpID09IFZJU0lC
TEUKKyAgICBpZiAoaGFzRWxsaXBzaXNCb3goKSAmJiBwYWludEluZm8uc2hvdWxkUGFpbnRXaXRo
aW5Sb290KCZyZW5kZXJlcigpKSAmJiByZW5kZXJlcigpLnN0eWxlKCktPnZpc2liaWxpdHkoKSA9
PSBWSVNJQkxFCiAgICAgICAgICAgICAmJiBwYWludEluZm8ucGhhc2UgPT0gUGFpbnRQaGFzZUZv
cmVncm91bmQpCiAgICAgICAgIGVsbGlwc2lzQm94KCktPnBhaW50KHBhaW50SW5mbywgcGFpbnRP
ZmZzZXQsIGxpbmVUb3AsIGxpbmVCb3R0b20pOwogfQpAQCAtMTkwLDcgKzE5MCw3IEBAIHZvaWQg
Um9vdElubGluZUJveDo6YWRkSGlnaGxpZ2h0T3ZlcmZsb3coKQogCiB2b2lkIFJvb3RJbmxpbmVC
b3g6OnBhaW50Q3VzdG9tSGlnaGxpZ2h0KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlv
dXRQb2ludCYgcGFpbnRPZmZzZXQsIGNvbnN0IEF0b21pY1N0cmluZyYgaGlnaGxpZ2h0VHlwZSkK
IHsKLSAgICBpZiAoIXBhaW50SW5mby5zaG91bGRQYWludFdpdGhpblJvb3QocmVuZGVyZXIoKSkg
fHwgcmVuZGVyZXIoKS5zdHlsZSgpLT52aXNpYmlsaXR5KCkgIT0gVklTSUJMRSB8fCBwYWludElu
Zm8ucGhhc2UgIT0gUGFpbnRQaGFzZUZvcmVncm91bmQpCisgICAgaWYgKCFwYWludEluZm8uc2hv
dWxkUGFpbnRXaXRoaW5Sb290KCZyZW5kZXJlcigpKSB8fCByZW5kZXJlcigpLnN0eWxlKCktPnZp
c2liaWxpdHkoKSAhPSBWSVNJQkxFIHx8IHBhaW50SW5mby5waGFzZSAhPSBQYWludFBoYXNlRm9y
ZWdyb3VuZCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgUGFnZSogcGFnZSA9IHJlbmRlcmVyKCku
ZnJhbWUoKS5wYWdlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR0NvbnRhaW5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR0NvbnRhaW5lci5jcHAKaW5kZXggNWI2NTlkYjllNWU3MmRmOGYwY2ZhZTcyNzAwZDI5
ZmUzNDU2ZDdlNS4uOTZjYmVkNjVhNGNlZWRhMDZjZTZhMjQ5MTU3MDNlZGI0MmNmZDFiZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdDb250YWluZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHQ29udGFpbmVy
LmNwcApAQCAtMTM5LDExICsxMzksOCBAQCB2b2lkIFJlbmRlclNWR0NvbnRhaW5lcjo6cGFpbnQo
UGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JikKIAogICAgICAgICBpZiAo
Y29udGludWVSZW5kZXJpbmcpIHsKICAgICAgICAgICAgIGNoaWxkUGFpbnRJbmZvLnVwZGF0ZVN1
YnRyZWVQYWludFJvb3RGb3JDaGlsZHJlbih0aGlzKTsKLSAgICAgICAgICAgIGZvciAoUmVuZGVy
T2JqZWN0KiBjaGlsZCA9IGZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRT
aWJsaW5nKCkpIHsKLSAgICAgICAgICAgICAgICBpZiAoIWNoaWxkLT5pc1JlbmRlckVsZW1lbnQo
KSkKLSAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgdG9SZW5k
ZXJFbGVtZW50KGNoaWxkKS0+cGFpbnQoY2hpbGRQYWludEluZm8sIEludFBvaW50KCkpOwotICAg
ICAgICAgICAgfQorICAgICAgICAgICAgZm9yIChSZW5kZXJPYmplY3QqIGNoaWxkID0gZmlyc3RD
aGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkKKyAgICAgICAgICAg
ICAgICBjaGlsZC0+cGFpbnQoY2hpbGRQYWludEluZm8sIEludFBvaW50KCkpOwogICAgICAgICB9
CiAgICAgfQogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdHcmFkaWVudFN0b3AuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHR3JhZGllbnRTdG9wLmgKaW5kZXggYTU2YmFkOTk0NjQ0ZjBmZmQ2N2ZiNzczNGY1ODY4
MGU3OTM4NzBhYy4uNTdkMzM2Y2MyMjljYTY5MTdjODAyMGFmYzhhOWRjOWM3ZDMyZWJlNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdHcmFkaWVudFN0
b3AuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0dyYWRpZW50
U3RvcC5oCkBAIC01NCw3ICs1NCw2IEBAIHByb3RlY3RlZDoKIAogcHJpdmF0ZToKICAgICB2aXJ0
dWFsIGJvb2wgY2FuSGF2ZUNoaWxkcmVuKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7
IH0KLSAgICB2aXJ0dWFsIHZvaWQgcGFpbnQoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQm
KSBPVkVSUklERSBGSU5BTCB7IH0KIAogICAgIFNWR0dyYWRpZW50RWxlbWVudCogZ3JhZGllbnRF
bGVtZW50KCkgY29uc3Q7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXIuY3BwCmluZGV4IGYyMTY4NzhiNjRlMTRi
NDQ2MDQ4NjNmOWE5ODRiYzBkYjI1MjQyMjYuLjE5MTE4MjY1YTdlMThmYzI2YTNiOGQyYmExNTg0
ZDQ3MTM5MjEyNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHUmVzb3VyY2VDbGlwcGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR1Jlc291cmNlQ2xpcHBlci5jcHAKQEAgLTI2LDcgKzI2LDYgQEAKICNpbmNs
dWRlICJSZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXIuaCIKIAogI2luY2x1ZGUgIkFmZmluZVRyYW5z
Zm9ybS5oIgotI2luY2x1ZGUgIkVsZW1lbnRJdGVyYXRvci5oIgogI2luY2x1ZGUgIkZsb2F0UmVj
dC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCkBAIC0yMjEs
MTEgKzIyMCw5IEBAIGJvb2wgUmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVyOjpkcmF3Q29udGVudElu
dG9NYXNrSW1hZ2UoQ2xpcHBlckRhdGEqIGNsaXBwZXJEYXRhCiAgICAgdmlldygpLmZyYW1lVmll
dygpLnNldFBhaW50QmVoYXZpb3Iob2xkQmVoYXZpb3IgfCBQYWludEJlaGF2aW9yUmVuZGVyaW5n
U1ZHTWFzayk7CiAKICAgICAvLyBEcmF3IGFsbCBjbGlwUGF0aCBjaGlsZHJlbiBpbnRvIGEgZ2xv
YmFsIG1hc2suCi0gICAgYXV0byBjaGlsZHJlbiA9IGNoaWxkcmVuT2ZUeXBlPFNWR0VsZW1lbnQ+
KCZjbGlwUGF0aEVsZW1lbnQoKSk7Ci0gICAgZm9yIChhdXRvIGl0ID0gY2hpbGRyZW4uYmVnaW4o
KSwgZW5kID0gY2hpbGRyZW4uZW5kKCk7IGl0ICE9IGVuZDsgKytpdCkgewotICAgICAgICBTVkdF
bGVtZW50JiBjaGlsZCA9ICppdDsKLSAgICAgICAgYXV0byByZW5kZXJlciA9IGNoaWxkLnJlbmRl
cmVyKCk7Ci0gICAgICAgIGlmICghcmVuZGVyZXIpCisgICAgZm9yIChOb2RlKiBjaGlsZE5vZGUg
PSBjbGlwUGF0aEVsZW1lbnQoKS5maXJzdENoaWxkKCk7IGNoaWxkTm9kZTsgY2hpbGROb2RlID0g
Y2hpbGROb2RlLT5uZXh0U2libGluZygpKSB7CisgICAgICAgIFJlbmRlck9iamVjdCogcmVuZGVy
ZXIgPSBjaGlsZE5vZGUtPnJlbmRlcmVyKCk7CisgICAgICAgIGlmICghY2hpbGROb2RlLT5pc1NW
R0VsZW1lbnQoKSB8fCAhcmVuZGVyZXIpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAg
aWYgKHJlbmRlcmVyLT5uZWVkc0xheW91dCgpKSB7CiAgICAgICAgICAgICB2aWV3KCkuZnJhbWVW
aWV3KCkuc2V0UGFpbnRCZWhhdmlvcihvbGRCZWhhdmlvcik7CkBAIC0yMzYsMTMgKzIzMywxMyBA
QCBib29sIFJlbmRlclNWR1Jlc291cmNlQ2xpcHBlcjo6ZHJhd0NvbnRlbnRJbnRvTWFza0ltYWdl
KENsaXBwZXJEYXRhKiBjbGlwcGVyRGF0YQogICAgICAgICAgICAgY29udGludWU7CiAKICAgICAg
ICAgV2luZFJ1bGUgbmV3Q2xpcFJ1bGUgPSBzdHlsZS0+c3ZnU3R5bGUoKS0+Y2xpcFJ1bGUoKTsK
LSAgICAgICAgYm9vbCBpc1VzZUVsZW1lbnQgPSBjaGlsZC5oYXNUYWdOYW1lKFNWR05hbWVzOjp1
c2VUYWcpOworICAgICAgICBib29sIGlzVXNlRWxlbWVudCA9IGNoaWxkTm9kZS0+aGFzVGFnTmFt
ZShTVkdOYW1lczo6dXNlVGFnKTsKICAgICAgICAgaWYgKGlzVXNlRWxlbWVudCkgewotICAgICAg
ICAgICAgU1ZHVXNlRWxlbWVudCYgdXNlRWxlbWVudCA9IHRvU1ZHVXNlRWxlbWVudChjaGlsZCk7
Ci0gICAgICAgICAgICByZW5kZXJlciA9IHVzZUVsZW1lbnQucmVuZGVyZXJDbGlwQ2hpbGQoKTsK
KyAgICAgICAgICAgIFNWR1VzZUVsZW1lbnQqIHVzZUVsZW1lbnQgPSB0b1NWR1VzZUVsZW1lbnQo
Y2hpbGROb2RlKTsKKyAgICAgICAgICAgIHJlbmRlcmVyID0gdXNlRWxlbWVudC0+cmVuZGVyZXJD
bGlwQ2hpbGQoKTsKICAgICAgICAgICAgIGlmICghcmVuZGVyZXIpCiAgICAgICAgICAgICAgICAg
Y29udGludWU7Ci0gICAgICAgICAgICBpZiAoIXVzZUVsZW1lbnQuaGFzQXR0cmlidXRlKFNWR05h
bWVzOjpjbGlwX3J1bGVBdHRyKSkKKyAgICAgICAgICAgIGlmICghdXNlRWxlbWVudC0+aGFzQXR0
cmlidXRlKFNWR05hbWVzOjpjbGlwX3J1bGVBdHRyKSkKICAgICAgICAgICAgICAgICBuZXdDbGlw
UnVsZSA9IHJlbmRlcmVyLT5zdHlsZSgpLT5zdmdTdHlsZSgpLT5jbGlwUnVsZSgpOwogICAgICAg
ICB9CiAKQEAgLTI1NSw3ICsyNTIsNyBAQCBib29sIFJlbmRlclNWR1Jlc291cmNlQ2xpcHBlcjo6
ZHJhd0NvbnRlbnRJbnRvTWFza0ltYWdlKENsaXBwZXJEYXRhKiBjbGlwcGVyRGF0YQogICAgICAg
ICAvLyBJbiB0aGUgY2FzZSBvZiBhIDx1c2U+IGVsZW1lbnQsIHdlIG9idGFpbmVkIGl0cyByZW5k
ZXJlcmUgYWJvdmUsIHRvIHJldHJpZXZlIGl0cyBjbGlwUnVsZS4KICAgICAgICAgLy8gV2UgaGF2
ZSB0byBwYXNzIHRoZSA8dXNlPiByZW5kZXJlciBpdHNlbGYgdG8gcmVuZGVyU3VidHJlZVRvSW1h
Z2VCdWZmZXIoKSB0byBhcHBseSBpdCdzIHgveS90cmFuc2Zvcm0vZXRjLiB2YWx1ZXMgd2hlbiBy
ZW5kZXJpbmcuCiAgICAgICAgIC8vIFNvIGlmIGlzVXNlRWxlbWVudCBpcyB0cnVlLCByZWZldGNo
IHRoZSBjaGlsZE5vZGUtPnJlbmRlcmVyKCksIGFzIHJlbmRlcmVyIGdvdCBvdmVycmlkZW4gYWJv
dmUuCi0gICAgICAgIFNWR1JlbmRlcmluZ0NvbnRleHQ6OnJlbmRlclN1YnRyZWVUb0ltYWdlQnVm
ZmVyKGNsaXBwZXJEYXRhLT5jbGlwTWFza0ltYWdlLmdldCgpLCBpc1VzZUVsZW1lbnQgPyAqY2hp
bGQucmVuZGVyZXIoKSA6ICpyZW5kZXJlciwgbWFza0NvbnRlbnRUcmFuc2Zvcm1hdGlvbik7Cisg
ICAgICAgIFNWR1JlbmRlcmluZ0NvbnRleHQ6OnJlbmRlclN1YnRyZWVUb0ltYWdlQnVmZmVyKGNs
aXBwZXJEYXRhLT5jbGlwTWFza0ltYWdlLmdldCgpLCBpc1VzZUVsZW1lbnQgPyBjaGlsZE5vZGUt
PnJlbmRlcmVyKCkgOiByZW5kZXJlciwgbWFza0NvbnRlbnRUcmFuc2Zvcm1hdGlvbik7CiAgICAg
fQogCiAgICAgdmlldygpLmZyYW1lVmlldygpLnNldFBhaW50QmVoYXZpb3Iob2xkQmVoYXZpb3Ip
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNv
dXJjZU1hc2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jl
c291cmNlTWFza2VyLmNwcAppbmRleCA0NzRlZDg0ZTgyYWNhNGVkNDYyYmM5NWVlMTMxNWUzYzZh
ZTcwOGIyLi4zMDkwNTBmMmY0MWExOGFhMjVmMzIyZDI4YWE3MDIxZDcxNmYyNTAzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlTWFza2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNl
TWFza2VyLmNwcApAQCAtMjQsNyArMjQsNiBAQAogCiAjaW5jbHVkZSAiQWZmaW5lVHJhbnNmb3Jt
LmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgotI2luY2x1ZGUgIkVsZW1lbnRJdGVyYXRvci5oIgog
I2luY2x1ZGUgIkZsb2F0UG9pbnQuaCIKICNpbmNsdWRlICJGbG9hdFJlY3QuaCIKICNpbmNsdWRl
ICJHcmFwaGljc0NvbnRleHQuaCIKQEAgLTExOSwxOCArMTE4LDE2IEBAIGJvb2wgUmVuZGVyU1ZH
UmVzb3VyY2VNYXNrZXI6OmRyYXdDb250ZW50SW50b01hc2tJbWFnZShNYXNrZXJEYXRhKiBtYXNr
ZXJEYXRhLCBDCiAgICAgfQogCiAgICAgLy8gRHJhdyB0aGUgY29udGVudCBpbnRvIHRoZSBJbWFn
ZUJ1ZmZlci4KLSAgICBhdXRvIGNoaWxkcmVuID0gY2hpbGRyZW5PZlR5cGU8U1ZHRWxlbWVudD4o
Jm1hc2tFbGVtZW50KCkpOwotICAgIGZvciAoYXV0byBpdCA9IGNoaWxkcmVuLmJlZ2luKCksIGVu
ZCA9IGNoaWxkcmVuLmVuZCgpOyBpdCAhPSBlbmQ7ICsraXQpIHsKLSAgICAgICAgU1ZHRWxlbWVu
dCYgY2hpbGQgPSAqaXQ7Ci0gICAgICAgIGF1dG8gcmVuZGVyZXIgPSBjaGlsZC5yZW5kZXJlcigp
OwotICAgICAgICBpZiAoIXJlbmRlcmVyKQorICAgIGZvciAoTm9kZSogbm9kZSA9IG1hc2tFbGVt
ZW50KCkuZmlyc3RDaGlsZCgpOyBub2RlOyBub2RlID0gbm9kZS0+bmV4dFNpYmxpbmcoKSkgewor
ICAgICAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gbm9kZS0+cmVuZGVyZXIoKTsKKyAgICAg
ICAgaWYgKCFub2RlLT5pc1NWR0VsZW1lbnQoKSB8fCAhcmVuZGVyZXIpCiAgICAgICAgICAgICBj
b250aW51ZTsKICAgICAgICAgaWYgKHJlbmRlcmVyLT5uZWVkc0xheW91dCgpKQogICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBSZW5kZXJTdHlsZSogc3R5bGUgPSByZW5kZXJlci0+
c3R5bGUoKTsKICAgICAgICAgaWYgKCFzdHlsZSB8fCBzdHlsZS0+ZGlzcGxheSgpID09IE5PTkUg
fHwgc3R5bGUtPnZpc2liaWxpdHkoKSAhPSBWSVNJQkxFKQogICAgICAgICAgICAgY29udGludWU7
Ci0gICAgICAgIFNWR1JlbmRlcmluZ0NvbnRleHQ6OnJlbmRlclN1YnRyZWVUb0ltYWdlQnVmZmVy
KG1hc2tlckRhdGEtPm1hc2tJbWFnZS5nZXQoKSwgKnJlbmRlcmVyLCBtYXNrQ29udGVudFRyYW5z
Zm9ybWF0aW9uKTsKKyAgICAgICAgU1ZHUmVuZGVyaW5nQ29udGV4dDo6cmVuZGVyU3VidHJlZVRv
SW1hZ2VCdWZmZXIobWFza2VyRGF0YS0+bWFza0ltYWdlLmdldCgpLCByZW5kZXJlciwgbWFza0Nv
bnRlbnRUcmFuc2Zvcm1hdGlvbik7CiAgICAgfQogCiAjaWYgIVVTRShDRykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VQYXR0ZXJuLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VQYXR0ZXJu
LmNwcAppbmRleCA0YzFjMjEyYWFjYTJhNThkZGVkOTE1OTdlOWJhMzZkMDU3NGIxYWI5Li4yYjgw
OTQ0NzRmOWNkMWYwOTY1MTVlNjNlNmEyODUyNjBmNTAyMWE4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlUGF0dGVybi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZVBhdHRlcm4uY3Bw
CkBAIC0yMyw3ICsyMyw2IEBACiAjaWYgRU5BQkxFKFNWRykKICNpbmNsdWRlICJSZW5kZXJTVkdS
ZXNvdXJjZVBhdHRlcm4uaCIKIAotI2luY2x1ZGUgIkVsZW1lbnRJdGVyYXRvci5oIgogI2luY2x1
ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUg
IlBhdHRlcm5BdHRyaWJ1dGVzLmgiCkBAIC0yNzIsMTUgKzI3MSwxMiBAQCBQYXNzT3duUHRyPElt
YWdlQnVmZmVyPiBSZW5kZXJTVkdSZXNvdXJjZVBhdHRlcm46OmNyZWF0ZVRpbGVJbWFnZShjb25z
dCBQYXR0ZXJuQQogICAgICAgICBjb250ZW50VHJhbnNmb3JtYXRpb24gPSB0aWxlSW1hZ2VUcmFu
c2Zvcm07CiAKICAgICAvLyBEcmF3IHRoZSBjb250ZW50IGludG8gdGhlIEltYWdlQnVmZmVyLgot
ICAgIGF1dG8gY2hpbGRyZW4gPSBjaGlsZHJlbk9mVHlwZTxTVkdFbGVtZW50PihhdHRyaWJ1dGVz
LnBhdHRlcm5Db250ZW50RWxlbWVudCgpKTsKLSAgICBmb3IgKGF1dG8gaXQgPSBjaGlsZHJlbi5i
ZWdpbigpLCBlbmQgPSBjaGlsZHJlbi5lbmQoKTsgaXQgIT0gZW5kOyArK2l0KSB7Ci0gICAgICAg
IGNvbnN0IFNWR0VsZW1lbnQmIGNoaWxkID0gKml0OwotICAgICAgICBhdXRvIHJlbmRlcmVyID0g
Y2hpbGQucmVuZGVyZXIoKTsKLSAgICAgICAgaWYgKCFyZW5kZXJlcikKKyAgICBmb3IgKE5vZGUq
IG5vZGUgPSBhdHRyaWJ1dGVzLnBhdHRlcm5Db250ZW50RWxlbWVudCgpLT5maXJzdENoaWxkKCk7
IG5vZGU7IG5vZGUgPSBub2RlLT5uZXh0U2libGluZygpKSB7CisgICAgICAgIGlmICghbm9kZS0+
aXNTVkdFbGVtZW50KCkgfHwgIW5vZGUtPnJlbmRlcmVyKCkpCiAgICAgICAgICAgICBjb250aW51
ZTsKLSAgICAgICAgaWYgKHJlbmRlcmVyLT5uZWVkc0xheW91dCgpKQorICAgICAgICBpZiAobm9k
ZS0+cmVuZGVyZXIoKS0+bmVlZHNMYXlvdXQoKSkKICAgICAgICAgICAgIHJldHVybiBudWxscHRy
OwotICAgICAgICBTVkdSZW5kZXJpbmdDb250ZXh0OjpyZW5kZXJTdWJ0cmVlVG9JbWFnZUJ1ZmZl
cih0aWxlSW1hZ2UuZ2V0KCksICpyZW5kZXJlciwgY29udGVudFRyYW5zZm9ybWF0aW9uKTsKKyAg
ICAgICAgU1ZHUmVuZGVyaW5nQ29udGV4dDo6cmVuZGVyU3VidHJlZVRvSW1hZ2VCdWZmZXIodGls
ZUltYWdlLmdldCgpLCBub2RlLT5yZW5kZXJlcigpLCBjb250ZW50VHJhbnNmb3JtYXRpb24pOwog
ICAgIH0KIAogICAgIHJldHVybiB0aWxlSW1hZ2UucmVsZWFzZSgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAKaW5kZXggNGE3ZmFiNmVhNzVjM2U0
YWEyNzkzMzdmOGVhZWJiYWM4Y2NlMTg5Ni4uNjFmZGNiMmZiYTA0OWIwMDBmMjY3ZmNhMWVlYTZk
OWRhMzQwYjY3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdSb290LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R1Jvb3QuY3BwCkBAIC0yOTEsMTUgKzI5MSw4IEBAIHZvaWQgUmVuZGVyU1ZHUm9vdDo6cGFpbnRS
ZXBsYWNlZChQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50CiAg
ICAgICAgICAgICBjb250aW51ZVJlbmRlcmluZyA9IHJlbmRlcmluZ0NvbnRleHQuaXNSZW5kZXJp
bmdQcmVwYXJlZCgpOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKGNvbnRpbnVlUmVuZGVyaW5n
KSB7Ci0gICAgICAgICAgICBjaGlsZFBhaW50SW5mby51cGRhdGVTdWJ0cmVlUGFpbnRSb290Rm9y
Q2hpbGRyZW4odGhpcyk7Ci0gICAgICAgICAgICBmb3IgKFJlbmRlck9iamVjdCogY2hpbGQgPSBm
aXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKSB7Ci0gICAg
ICAgICAgICAgICAgLy8gRklYTUU6IENhbiB0aGlzIGV2ZXIgaGF2ZSBSZW5kZXJUZXh0IGNoaWxk
cmVuPwotICAgICAgICAgICAgICAgIGlmICghY2hpbGQtPmlzUmVuZGVyRWxlbWVudCgpKQotICAg
ICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICAgICB0b1JlbmRlckVsZW1l
bnQoY2hpbGQpLT5wYWludChjaGlsZFBhaW50SW5mbywgbG9jYXRpb24oKSk7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgIH0KKyAgICAgICAgaWYgKGNvbnRpbnVlUmVuZGVyaW5nKQorICAgICAgICAg
ICAgUmVuZGVyQm94OjpwYWludChjaGlsZFBhaW50SW5mbywgTGF5b3V0UG9pbnQoKSk7CiAgICAg
fQogCiAgICAgY2hpbGRQYWludEluZm8uY29udGV4dC0+cmVzdG9yZSgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdJbmxpbmVUZXh0Qm94LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHSW5saW5lVGV4dEJveC5jcHAKaW5kZXggZDg0YzE0
MTM2OTRiYzcxOWE0NWMxNTRmYzU3NjNjODcyM2Y1ZGRlOS4uMWIwYmM0NjE0Yzg5ZmRiNTYzZjRj
YTRlYWFjYzg2MjdiMjg2MGQ0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9TVkdJbmxpbmVUZXh0Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1NWR0lubGluZVRleHRCb3guY3BwCkBAIC0xNzcsNyArMTc3LDcgQEAgc3RhdGljIGlubGlu
ZSBib29sIHRleHRTaG91bGRCZVBhaW50ZWQoY29uc3QgUmVuZGVyU1ZHSW5saW5lVGV4dCYgdGV4
dFJlbmRlcmVyKQogCiB2b2lkIFNWR0lubGluZVRleHRCb3g6OnBhaW50U2VsZWN0aW9uQmFja2dy
b3VuZChQYWludEluZm8mIHBhaW50SW5mbykKIHsKLSAgICBBU1NFUlQocGFpbnRJbmZvLnNob3Vs
ZFBhaW50V2l0aGluUm9vdChyZW5kZXJlcigpKSk7CisgICAgQVNTRVJUKHBhaW50SW5mby5zaG91
bGRQYWludFdpdGhpblJvb3QoJnJlbmRlcmVyKCkpKTsKICAgICBBU1NFUlQocGFpbnRJbmZvLnBo
YXNlID09IFBhaW50UGhhc2VGb3JlZ3JvdW5kIHx8IHBhaW50SW5mby5waGFzZSA9PSBQYWludFBo
YXNlU2VsZWN0aW9uKTsKICAgICBBU1NFUlQodHJ1bmNhdGlvbigpID09IGNOb1RydW5jYXRpb24p
OwogCkBAIC0yNDIsNyArMjQyLDcgQEAgdm9pZCBTVkdJbmxpbmVUZXh0Qm94OjpwYWludFNlbGVj
dGlvbkJhY2tncm91bmQoUGFpbnRJbmZvJiBwYWludEluZm8pCiAKIHZvaWQgU1ZHSW5saW5lVGV4
dEJveDo6cGFpbnQoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiwgTGF5
b3V0VW5pdCwgTGF5b3V0VW5pdCkKIHsKLSAgICBBU1NFUlQocGFpbnRJbmZvLnNob3VsZFBhaW50
V2l0aGluUm9vdChyZW5kZXJlcigpKSk7CisgICAgQVNTRVJUKHBhaW50SW5mby5zaG91bGRQYWlu
dFdpdGhpblJvb3QoJnJlbmRlcmVyKCkpKTsKICAgICBBU1NFUlQocGFpbnRJbmZvLnBoYXNlID09
IFBhaW50UGhhc2VGb3JlZ3JvdW5kIHx8IHBhaW50SW5mby5waGFzZSA9PSBQYWludFBoYXNlU2Vs
ZWN0aW9uKTsKICAgICBBU1NFUlQodHJ1bmNhdGlvbigpID09IGNOb1RydW5jYXRpb24pOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlcmluZ0NvbnRl
eHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJpbmdDb250ZXh0
LmNwcAppbmRleCA5NmFkZjQ3MzEzZTJlYWM3ZWE4YWI5ZjQ4N2E1MDNmOTM5OWU4ZDg4Li5iZTE2
OTNkNDAyZDUyOTI2YzU3NmFmYThjNDY4ODQxZWI1ZmY3NmY4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlcmluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyaW5nQ29udGV4dC5jcHAKQEAgLTI3NCw4
ICsyNzQsOSBAQCBib29sIFNWR1JlbmRlcmluZ0NvbnRleHQ6OmNyZWF0ZUltYWdlQnVmZmVyRm9y
UGF0dGVybihjb25zdCBGbG9hdFJlY3QmIGFic29sdXRlVAogICAgIHJldHVybiB0cnVlOwogfQog
Ci12b2lkIFNWR1JlbmRlcmluZ0NvbnRleHQ6OnJlbmRlclN1YnRyZWVUb0ltYWdlQnVmZmVyKElt
YWdlQnVmZmVyKiBpbWFnZSwgUmVuZGVyRWxlbWVudCYgaXRlbSwgY29uc3QgQWZmaW5lVHJhbnNm
b3JtJiBzdWJ0cmVlQ29udGVudFRyYW5zZm9ybWF0aW9uKQordm9pZCBTVkdSZW5kZXJpbmdDb250
ZXh0OjpyZW5kZXJTdWJ0cmVlVG9JbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciogaW1hZ2UsIFJlbmRl
ck9iamVjdCogaXRlbSwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBzdWJ0cmVlQ29udGVudFRyYW5z
Zm9ybWF0aW9uKQogeworICAgIEFTU0VSVChpdGVtKTsKICAgICBBU1NFUlQoaW1hZ2UpOwogICAg
IEFTU0VSVChpbWFnZS0+Y29udGV4dCgpKTsKIApAQCAtMjg1LDggKzI4Niw4IEBAIHZvaWQgU1ZH
UmVuZGVyaW5nQ29udGV4dDo6cmVuZGVyU3VidHJlZVRvSW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXIq
IGltYWdlLCBSZW5kZXJFCiAgICAgQWZmaW5lVHJhbnNmb3JtIHNhdmVkQ29udGVudFRyYW5zZm9y
bWF0aW9uID0gY29udGVudFRyYW5zZm9ybWF0aW9uOwogICAgIGNvbnRlbnRUcmFuc2Zvcm1hdGlv
biA9IHN1YnRyZWVDb250ZW50VHJhbnNmb3JtYXRpb24gKiBjb250ZW50VHJhbnNmb3JtYXRpb247
CiAKLSAgICBBU1NFUlQoIWl0ZW0ubmVlZHNMYXlvdXQoKSk7Ci0gICAgaXRlbS5wYWludChpbmZv
LCBJbnRQb2ludCgpKTsKKyAgICBBU1NFUlQoIWl0ZW0tPm5lZWRzTGF5b3V0KCkpOworICAgIGl0
ZW0tPnBhaW50KGluZm8sIEludFBvaW50KCkpOwogCiAgICAgY29udGVudFRyYW5zZm9ybWF0aW9u
ID0gc2F2ZWRDb250ZW50VHJhbnNmb3JtYXRpb247CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlcmluZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyaW5nQ29udGV4dC5oCmluZGV4IGE1YjUzOGRmMmIzNDI5
NWFlOTcxMjZiMWU0NTAyZjk4YmU1YmI4ZWUuLjFmYzNmMWEyZWFhMTAxNjA5MTFlNDUzMzljZDZi
ZDEzODE2OWZiY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZH
UmVuZGVyaW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZH
UmVuZGVyaW5nQ29udGV4dC5oCkBAIC0zMiw3ICszMiw2IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIEFmZmluZVRyYW5zZm9ybTsKLWNsYXNzIFJlbmRlckVsZW1lbnQ7CiBjbGFzcyBS
ZW5kZXJPYmplY3Q7CiBjbGFzcyBGbG9hdFJlY3Q7CiBjbGFzcyBSZW5kZXJTVkdSZXNvdXJjZUZp
bHRlcjsKQEAgLTgwLDcgKzc5LDcgQEAgcHVibGljOgogICAgIC8vIFBhdHRlcm5zIG5lZWQgYSBk
aWZmZXJlbnQgZmxvYXQtdG8taW50ZWdlciBjb29yZGluYXRlIG1hcHBpbmcuCiAgICAgc3RhdGlj
IGJvb2wgY3JlYXRlSW1hZ2VCdWZmZXJGb3JQYXR0ZXJuKGNvbnN0IEZsb2F0UmVjdCYgYWJzb2x1
dGVUYXJnZXRSZWN0LCBjb25zdCBGbG9hdFJlY3QmIGNsYW1wZWRBYnNvbHV0ZVRhcmdldFJlY3Qs
IE93blB0cjxJbWFnZUJ1ZmZlcj4mLCBDb2xvclNwYWNlLCBSZW5kZXJpbmdNb2RlKTsKIAotICAg
IHN0YXRpYyB2b2lkIHJlbmRlclN1YnRyZWVUb0ltYWdlQnVmZmVyKEltYWdlQnVmZmVyKiwgUmVu
ZGVyRWxlbWVudCYsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYpOworICAgIHN0YXRpYyB2b2lkIHJl
bmRlclN1YnRyZWVUb0ltYWdlQnVmZmVyKEltYWdlQnVmZmVyKiwgUmVuZGVyT2JqZWN0KiwgY29u
c3QgQWZmaW5lVHJhbnNmb3JtJik7CiAgICAgc3RhdGljIHZvaWQgY2xpcFRvSW1hZ2VCdWZmZXIo
R3JhcGhpY3NDb250ZXh0KiwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBhYnNvbHV0ZVRyYW5zZm9y
bSwgY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRSZWN0LCBPd25QdHI8SW1hZ2VCdWZmZXI+JiwgYm9v
bCBzYWZlVG9DbGVhcik7CiAKICAgICBzdGF0aWMgZmxvYXQgY2FsY3VsYXRlU2NyZWVuRm9udFNp
emVTY2FsaW5nRmFjdG9yKGNvbnN0IFJlbmRlck9iamVjdCopOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Vz
ZUVsZW1lbnQuY3BwCmluZGV4IGEyNzAwYThiNmI0OWM5ZTI1OGFkNTU4NmM2YThhYTRiZTYzNGU1
ZTkuLmNjY2FlOGIzYjgxZjkzYThjZjc4ZGQ2ZjZhN2VlY2ZkZGVkN2U3OWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAKQEAgLTU3MCw3ICs1NzAsNyBAQCB2b2lkIFNWR1VzZUVs
ZW1lbnQ6OnRvQ2xpcFBhdGgoUGF0aCYgcGF0aCkKICAgICB9CiB9CiAKLVJlbmRlckVsZW1lbnQq
IFNWR1VzZUVsZW1lbnQ6OnJlbmRlcmVyQ2xpcENoaWxkKCkgY29uc3QKK1JlbmRlck9iamVjdCog
U1ZHVXNlRWxlbWVudDo6cmVuZGVyZXJDbGlwQ2hpbGQoKSBjb25zdAogewogICAgIE5vZGUqIG4g
PSBtX3RhcmdldEVsZW1lbnRJbnN0YW5jZSA/IG1fdGFyZ2V0RWxlbWVudEluc3RhbmNlLT5zaGFk
b3dUcmVlRWxlbWVudCgpIDogMDsKICAgICBpZiAoIW4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHVXNlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1l
bnQuaAppbmRleCA2OTkyMTY4MGY5OGZkYWY1YzQyMTAxMDMxMjg5Nzc2OGM5MmYyYzAzLi5mMmZi
ZmIwY2Y2YzA4OTY3MThlNmQ2NTEwYTMyYjE1ODMzZGMxYjc2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdV
c2VFbGVtZW50LmgKQEAgLTUxLDcgKzUxLDcgQEAgcHVibGljOgogICAgIHZvaWQgaW52YWxpZGF0
ZVNoYWRvd1RyZWUoKTsKICAgICB2b2lkIGludmFsaWRhdGVEZXBlbmRlbnRTaGFkb3dUcmVlcygp
OwogCi0gICAgUmVuZGVyRWxlbWVudCogcmVuZGVyZXJDbGlwQ2hpbGQoKSBjb25zdDsKKyAgICBS
ZW5kZXJPYmplY3QqIHJlbmRlcmVyQ2xpcENoaWxkKCkgY29uc3Q7CiAKIHByaXZhdGU6CiAgICAg
U1ZHVXNlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmLCBib29sIHdhc0lu
c2VydGVkQnlQYXJzZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNz
L2ZpbHRlcnMvU1ZHRkVJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmls
dGVycy9TVkdGRUltYWdlLmNwcAppbmRleCA0MDliY2UzOTUyZGZmOTk1NTA2OTdlMjg0MjFiMDBm
MjYzZGUyN2UzLi42ZTBkZmEwOWZmYThkNjE3MzQ0ZWRlNTI1Yzk0YzRlYjBmMWQwY2UzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGRUltYWdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGRUltYWdlLmNw
cApAQCAtOTYsNyArOTYsNyBAQCBSZW5kZXJFbGVtZW50KiBGRUltYWdlOjpyZWZlcmVuY2VkUmVu
ZGVyZXIoKSBjb25zdAogCiB2b2lkIEZFSW1hZ2U6OnBsYXRmb3JtQXBwbHlTb2Z0d2FyZSgpCiB7
Ci0gICAgUmVuZGVyRWxlbWVudCogcmVuZGVyZXIgPSByZWZlcmVuY2VkUmVuZGVyZXIoKTsKKyAg
ICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gcmVmZXJlbmNlZFJlbmRlcmVyKCk7CiAgICAgaWYg
KCFtX2ltYWdlICYmICFyZW5kZXJlcikKICAgICAgICAgcmV0dXJuOwogCkBAIC0xMjUsNyArMTI1
LDcgQEAgdm9pZCBGRUltYWdlOjpwbGF0Zm9ybUFwcGx5U29mdHdhcmUoKQogICAgICAgICBjb25z
dCBBZmZpbmVUcmFuc2Zvcm0mIGFic29sdXRlVHJhbnNmb3JtID0gc3ZnRmlsdGVyLT5hYnNvbHV0
ZVRyYW5zZm9ybSgpOwogICAgICAgICByZXN1bHRJbWFnZS0+Y29udGV4dCgpLT5jb25jYXRDVE0o
YWJzb2x1dGVUcmFuc2Zvcm0pOwogCi0gICAgICAgIFNWR0VsZW1lbnQqIGNvbnRleHROb2RlID0g
dG9TVkdFbGVtZW50KHJlbmRlcmVyLT5lbGVtZW50KCkpOworICAgICAgICBTVkdFbGVtZW50KiBj
b250ZXh0Tm9kZSA9IHRvU1ZHRWxlbWVudChyZW5kZXJlci0+bm9kZSgpKTsKICAgICAgICAgaWYg
KGNvbnRleHROb2RlLT5oYXNSZWxhdGl2ZUxlbmd0aHMoKSkgewogICAgICAgICAgICAgU1ZHTGVu
Z3RoQ29udGV4dCBsZW5ndGhDb250ZXh0KGNvbnRleHROb2RlKTsKICAgICAgICAgICAgIGZsb2F0
IHdpZHRoID0gMDsKQEAgLTEzOCw3ICsxMzgsNyBAQCB2b2lkIEZFSW1hZ2U6OnBsYXRmb3JtQXBw
bHlTb2Z0d2FyZSgpCiAgICAgICAgIH0KIAogICAgICAgICBBZmZpbmVUcmFuc2Zvcm0gY29udGVu
dFRyYW5zZm9ybWF0aW9uOwotICAgICAgICBTVkdSZW5kZXJpbmdDb250ZXh0OjpyZW5kZXJTdWJ0
cmVlVG9JbWFnZUJ1ZmZlcihyZXN1bHRJbWFnZSwgKnJlbmRlcmVyLCBjb250ZW50VHJhbnNmb3Jt
YXRpb24pOworICAgICAgICBTVkdSZW5kZXJpbmdDb250ZXh0OjpyZW5kZXJTdWJ0cmVlVG9JbWFn
ZUJ1ZmZlcihyZXN1bHRJbWFnZSwgcmVuZGVyZXIsIGNvbnRlbnRUcmFuc2Zvcm1hdGlvbik7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>