<?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>142054</bug_id>
          
          <creation_ts>2015-02-26 13:14:05 -0800</creation_ts>
          <short_desc>Rename DatabaseManager::manager() to DatabaseManager::singleton()</short_desc>
          <delta_ts>2015-02-26 15:22:42 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>japhet</cc>
    
    <cc>kling</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1072466</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-02-26 13:14:05 -0800</bug_when>
    <thetext>Rename DatabaseManager::manager() to DatabaseManager::singleton() as per coding style and use WTF::NeverDestroyed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1072474</commentid>
    <comment_count>1</comment_count>
      <attachid>247443</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-02-26 13:38:14 -0800</bug_when>
    <thetext>Created attachment 247443
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1072512</commentid>
    <comment_count>2</comment_count>
      <attachid>247443</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-02-26 15:22:36 -0800</bug_when>
    <thetext>Comment on attachment 247443
Patch

Clearing flags on attachment: 247443

Committed r180704: &lt;http://trac.webkit.org/changeset/180704&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1072513</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-02-26 15:22:42 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>247443</attachid>
            <date>2015-02-26 13:38:14 -0800</date>
            <delta_ts>2015-02-26 15:22:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-142054-20150226133801.patch</filename>
            <type>text/plain</type>
            <size>35088</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgwNjc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmUzNWNhZmMwZmJhOWQw
NTBhZjdjM2ExNTg4ZjdmNjEzOGFiNDI1OC4uMzA1NGQxMzM4MGI4Y2UwYzM0MWYzODE0NDliMWNk
YzMxYjRjOWU5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDE1LTAyLTI2ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIERhdGFiYXNlTWFu
YWdlcjo6bWFuYWdlcigpIHRvIERhdGFiYXNlTWFuYWdlcjo6c2luZ2xldG9uKCkKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjA1NAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmFtZSBEYXRhYmFzZU1h
bmFnZXI6Om1hbmFnZXIoKSB0byBEYXRhYmFzZU1hbmFnZXI6OnNpbmdsZXRvbigpIGFzCisgICAg
ICAgIHBlciBjb2Rpbmcgc3R5bGUgYW5kIHVzZSBXVEY6Ok5ldmVyRGVzdHJveWVkLgorCisgICAg
ICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9ET01XaW5kb3dXZWJEYXRhYmFzZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpET01XaW5kb3dXZWJEYXRhYmFzZTo6b3BlbkRhdGFiYXNlKToKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQmFja2VuZEJhc2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RGF0YWJhc2VCYWNrZW5kQmFzZTo6RGF0YWJhc2VCYWNrZW5kQmFzZSk6Cisg
ICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZUNvbnRleHQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RGF0YWJhc2VDb250ZXh0OjpEYXRhYmFzZUNvbnRleHQpOgorICAgICAgICAo
V2ViQ29yZTo6RGF0YWJhc2VDb250ZXh0Ojp+RGF0YWJhc2VDb250ZXh0KToKKyAgICAgICAgKFdl
YkNvcmU6OkRhdGFiYXNlQ29udGV4dDo6c3RvcERhdGFiYXNlcyk6CisgICAgICAgIChXZWJDb3Jl
OjpEYXRhYmFzZUNvbnRleHQ6OmRhdGFiYXNlRXhjZWVkZWRRdW90YSk6CisgICAgICAgICogTW9k
dWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RGF0YWJhc2VNYW5hZ2VyOjpzaW5nbGV0b24pOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VN
YW5hZ2VyOjptYW5hZ2VyKTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNl
L0RhdGFiYXNlTWFuYWdlci5oOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VNYW5hZ2VyOjp+
RGF0YWJhc2VNYW5hZ2VyKTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNl
L1NRTFRyYW5zYWN0aW9uQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNRTFRyYW5zYWN0
aW9uQ2xpZW50OjpkaWRFeGNlZWRRdW90YSk6CisgICAgICAgICogaGlzdG9yeS9QYWdlQ2FjaGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6bG9nQ2FuQ2FjaGVGcmFtZURlY2lzaW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OlBhZ2VDYWNoZTo6Y2FuQ2FjaGVQYWdlQ29udGFpbmluZ1RoaXNGcmFtZSk6
CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZy
YW1lTG9hZGVyOjpzdG9wTG9hZGluZyk6CisKIDIwMTUtMDItMjYgIEJyZW50IEZ1bGdoYW0gIDxi
ZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgW1dpbl0gTWFrZSBidWlsZCBsb2dzIG1vcmUg
bGVnaWJsZSBieSByZWR1Y2luZyBub2lzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IGM2YjQ5NjI4MDAx
OTUxNTYxYzc4YWI4YzQwZTE1ZjEyMDkwYzNhMjUuLjhlZjQyMmRkYjhiODY2MzJmYWRhNzE0N2Fk
NTkzMDcwYjkzMDQwZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBAQAorMjAxNS0w
Mi0yNiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFJlbmFtZSBE
YXRhYmFzZU1hbmFnZXI6Om1hbmFnZXIoKSB0byBEYXRhYmFzZU1hbmFnZXI6OnNpbmdsZXRvbigp
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDIwNTQK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW5hbWUg
RGF0YWJhc2VNYW5hZ2VyOjptYW5hZ2VyKCkgdG8gRGF0YWJhc2VNYW5hZ2VyOjpzaW5nbGV0b24o
KSBhcworICAgICAgICBwZXIgY29kaW5nIHN0eWxlIGFuZCB1c2UgV1RGOjpOZXZlckRlc3Ryb3ll
ZC4KKworICAgICAgICAqIFN0b3JhZ2UvV2ViRGF0YWJhc2VNYW5hZ2VyLm1tOgorICAgICAgICAo
LVtXZWJEYXRhYmFzZU1hbmFnZXIgaW5pdF0pOgorICAgICAgICAoLVtXZWJEYXRhYmFzZU1hbmFn
ZXIgb3JpZ2luc10pOgorICAgICAgICAoLVtXZWJEYXRhYmFzZU1hbmFnZXIgZGF0YWJhc2VzV2l0
aE9yaWdpbjpdKToKKyAgICAgICAgKC1bV2ViRGF0YWJhc2VNYW5hZ2VyIGRldGFpbHNGb3JEYXRh
YmFzZTp3aXRoT3JpZ2luOl0pOgorICAgICAgICAoLVtXZWJEYXRhYmFzZU1hbmFnZXIgZGVsZXRl
QWxsRGF0YWJhc2VzXSk6CisgICAgICAgICgtW1dlYkRhdGFiYXNlTWFuYWdlciBkZWxldGVPcmln
aW46XSk6CisgICAgICAgICgtW1dlYkRhdGFiYXNlTWFuYWdlciBkZWxldGVEYXRhYmFzZTp3aXRo
T3JpZ2luOl0pOgorICAgICAgICAqIFN0b3JhZ2UvV2ViRGF0YWJhc2VRdW90YU1hbmFnZXIubW06
CisgICAgICAgICgtW1dlYkRhdGFiYXNlUXVvdGFNYW5hZ2VyIHVzYWdlXSk6CisgICAgICAgICgt
W1dlYkRhdGFiYXNlUXVvdGFNYW5hZ2VyIHF1b3RhXSk6CisgICAgICAgICgtW1dlYkRhdGFiYXNl
UXVvdGFNYW5hZ2VyIHNldFF1b3RhOl0pOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlNl
Y3VyaXR5T3JpZ2luLm1tOgorICAgICAgICAoLVtXZWJTZWN1cml0eU9yaWdpbiB1c2FnZV0pOgor
ICAgICAgICAoLVtXZWJTZWN1cml0eU9yaWdpbiBxdW90YV0pOgorICAgICAgICAoLVtXZWJTZWN1
cml0eU9yaWdpbiBzZXRRdW90YTpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZyYW1lLm1tOgor
ICAgICAgICAoLVtXZWJGcmFtZSBfY2FjaGVhYmlsaXR5RGljdGlvbmFyeV0pOgorICAgICAgICAq
IFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBfcHJlZmVyZW5jZXNDaGFu
Z2VkOl0pOgorCiAyMDE1LTAyLTI0ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0
Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTgwNTk5LgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93aW4vQ2hh
bmdlTG9nCmluZGV4IGU1MDM5YmExYzlkOGIyNTg2MWUwZmE2MmE4ODc1YTBkNzBlMTcxOGMuLmQw
ZjUzOGE4MzE1N2JjMDdkNGU3NzdhOGZjMmE0ZDk5MTg3N2E5MjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwzMCBAQAorMjAxNS0wMi0yNiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgorCisgICAgICAgIFJlbmFtZSBEYXRhYmFzZU1hbmFnZXI6Om1hbmFnZXIoKSB0byBEYXRh
YmFzZU1hbmFnZXI6OnNpbmdsZXRvbigpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNDIwNTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBSZW5hbWUgRGF0YWJhc2VNYW5hZ2VyOjptYW5hZ2VyKCkgdG8gRGF0
YWJhc2VNYW5hZ2VyOjpzaW5nbGV0b24oKSBhcworICAgICAgICBwZXIgY29kaW5nIHN0eWxlIGFu
ZCB1c2UgV1RGOjpOZXZlckRlc3Ryb3llZC4KKworICAgICAgICAqIFdlYkRhdGFiYXNlTWFuYWdl
ci5jcHA6CisgICAgICAgIChXZWJEYXRhYmFzZU1hbmFnZXI6OnNoYXJlZFdlYkRhdGFiYXNlTWFu
YWdlcik6CisgICAgICAgIChXZWJEYXRhYmFzZU1hbmFnZXI6Om9yaWdpbnMpOgorICAgICAgICAo
V2ViRGF0YWJhc2VNYW5hZ2VyOjpkYXRhYmFzZXNXaXRoT3JpZ2luKToKKyAgICAgICAgKFdlYkRh
dGFiYXNlTWFuYWdlcjo6ZGV0YWlsc0ZvckRhdGFiYXNlKToKKyAgICAgICAgKFdlYkRhdGFiYXNl
TWFuYWdlcjo6ZGVsZXRlQWxsRGF0YWJhc2VzKToKKyAgICAgICAgKFdlYkRhdGFiYXNlTWFuYWdl
cjo6ZGVsZXRlT3JpZ2luKToKKyAgICAgICAgKFdlYkRhdGFiYXNlTWFuYWdlcjo6ZGVsZXRlRGF0
YWJhc2UpOgorICAgICAgICAoV2ViRGF0YWJhc2VNYW5hZ2VyOjpzZXRRdW90YSk6CisgICAgICAg
IChXZWJLaXRJbml0aWFsaXplV2ViRGF0YWJhc2VzSWZOZWNlc3NhcnkpOgorICAgICAgICAqIFdl
YlNlY3VyaXR5T3JpZ2luLmNwcDoKKyAgICAgICAgKFdlYlNlY3VyaXR5T3JpZ2luOjp1c2FnZSk6
CisgICAgICAgIChXZWJTZWN1cml0eU9yaWdpbjo6cXVvdGEpOgorICAgICAgICAoV2ViU2VjdXJp
dHlPcmlnaW46OnNldFF1b3RhKToKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKFdl
YlZpZXc6Om5vdGlmeVByZWZlcmVuY2VzQ2hhbmdlZCk6CisKIDIwMTUtMDItMjUgIEJyZW50IEZ1
bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgW1dpbl0gVXNlIFdFQkNPUkVf
RVhQT1JUIGluc3RlYWQgb2YgRGVmaW5pdGlvbiBmaWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZDU5Mjg0Yzcz
ZjQ3NjljNzI3ZDE5Zjc0YmNjYjgxYjAyYmM0NGZiMi4uODFmYTYyMTVmNjQ2OTU4ZDllOWVhOTEz
YzIwMWM5NzQxY2Q4YzRiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE1LTAyLTI2
ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIERhdGFi
YXNlTWFuYWdlcjo6bWFuYWdlcigpIHRvIERhdGFiYXNlTWFuYWdlcjo6c2luZ2xldG9uKCkKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjA1NAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmFtZSBEYXRh
YmFzZU1hbmFnZXI6Om1hbmFnZXIoKSB0byBEYXRhYmFzZU1hbmFnZXI6OnNpbmdsZXRvbigpIGFz
CisgICAgICAgIHBlciBjb2Rpbmcgc3R5bGUgYW5kIHVzZSBXVEY6Ok5ldmVyRGVzdHJveWVkLgor
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmV4Y2VlZGVkRGF0YWJhc2VRdW90
YSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEYXRhYmFzZU1hbmFn
ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJEYXRhYmFzZU1hbmFnZXI6OmluaXRpYWxpemUp
OgorICAgICAgICAoV2ViS2l0OjpXZWJEYXRhYmFzZU1hbmFnZXI6OmdldERhdGFiYXNlc0J5T3Jp
Z2luKToKKyAgICAgICAgKFdlYktpdDo6V2ViRGF0YWJhc2VNYW5hZ2VyOjpnZXREYXRhYmFzZU9y
aWdpbnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJEYXRhYmFzZU1hbmFnZXI6OmRlbGV0ZURhdGFi
YXNlV2l0aE5hbWVGb3JPcmlnaW4pOgorICAgICAgICAoV2ViS2l0OjpXZWJEYXRhYmFzZU1hbmFn
ZXI6OmRlbGV0ZURhdGFiYXNlc0Zvck9yaWdpbik6CisgICAgICAgIChXZWJLaXQ6OldlYkRhdGFi
YXNlTWFuYWdlcjo6ZGVsZXRlQWxsRGF0YWJhc2VzKToKKyAgICAgICAgKFdlYktpdDo6V2ViRGF0
YWJhc2VNYW5hZ2VyOjpzZXRRdW90YUZvck9yaWdpbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp1cGRhdGVQcmVm
ZXJlbmNlcyk6CisKIDIwMTUtMDItMjUgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxl
LmNvbT4KIAogICAgICAgICBBZGQgKHVudXNlZCBmb3Igbm93KSBjb2RlIHRvIGRlbGV0ZSB3ZWJz
aXRlIGRhdGEgZm9yIGEgc2V0IG9mIG9yaWdpbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZGF0YWJhc2UvRE9NV2luZG93V2ViRGF0YWJhc2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9ET01XaW5kb3dXZWJEYXRhYmFzZS5jcHAKaW5kZXgg
NTBjZDM5M2ZmZmRhN2YwOTQ3ODViZGU4NGJjYTgyYzQ5YWU0MTIyMy4uMDE1NGJhMDQ1YjQ0MTRl
ZThhMTBkOGM1YjcyMTc3MGQ1NzQxNTExNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJkYXRhYmFzZS9ET01XaW5kb3dXZWJEYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9ET01XaW5kb3dXZWJEYXRhYmFzZS5jcHAKQEAgLTQz
LDcgKzQzLDcgQEAgUGFzc1JlZlB0cjxEYXRhYmFzZT4gRE9NV2luZG93V2ViRGF0YWJhc2U6Om9w
ZW5EYXRhYmFzZShET01XaW5kb3cqIHdpbmRvdywgY29uc3QKICAgICAgICAgcmV0dXJuIDA7CiAK
ICAgICBSZWZQdHI8RGF0YWJhc2U+IGRhdGFiYXNlID0gMDsKLSAgICBEYXRhYmFzZU1hbmFnZXIm
IGRiTWFuYWdlciA9IERhdGFiYXNlTWFuYWdlcjo6bWFuYWdlcigpOworICAgIERhdGFiYXNlTWFu
YWdlciYgZGJNYW5hZ2VyID0gRGF0YWJhc2VNYW5hZ2VyOjpzaW5nbGV0b24oKTsKICAgICBEYXRh
YmFzZUVycm9yIGVycm9yID0gRGF0YWJhc2VFcnJvcjo6Tm9uZTsKICAgICBpZiAoZGJNYW5hZ2Vy
LmlzQXZhaWxhYmxlKCkgJiYgd2luZG93LT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLT5j
YW5BY2Nlc3NEYXRhYmFzZSh3aW5kb3ctPmRvY3VtZW50KCktPnRvcE9yaWdpbigpKSkgewogICAg
ICAgICBkYXRhYmFzZSA9IGRiTWFuYWdlci5vcGVuRGF0YWJhc2Uod2luZG93LT5kb2N1bWVudCgp
LCBuYW1lLCB2ZXJzaW9uLCBkaXNwbGF5TmFtZSwgZXN0aW1hdGVkU2l6ZSwgY3JlYXRpb25DYWxs
YmFjaywgZXJyb3IpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRh
YmFzZS9EYXRhYmFzZUJhY2tlbmRCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
ZGF0YWJhc2UvRGF0YWJhc2VCYWNrZW5kQmFzZS5jcHAKaW5kZXggYTY3ZTcwNjY0MjU0MDlkMTE5
NjRmOWFkNmY3M2VkZTFlNDhjYWExNC4uZTZkNzUxMzFiOTQ2NTc0NGM3OTkyMGFhZjU0ZWZhZGJk
MTM5MDQwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9E
YXRhYmFzZUJhY2tlbmRCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRh
dGFiYXNlL0RhdGFiYXNlQmFja2VuZEJhc2UuY3BwCkBAIC0yMjksNyArMjI5LDcgQEAgRGF0YWJh
c2VCYWNrZW5kQmFzZTo6RGF0YWJhc2VCYWNrZW5kQmFzZShQYXNzUmVmUHRyPERhdGFiYXNlQ29u
dGV4dD4gZGF0YWJhc2VDb24KICAgICAgICAgaGFzaFNldC0+YWRkKHRoaXMpOwogICAgIH0KIAot
ICAgIG1fZmlsZW5hbWUgPSBEYXRhYmFzZU1hbmFnZXI6Om1hbmFnZXIoKS5mdWxsUGF0aEZvckRh
dGFiYXNlKHNlY3VyaXR5T3JpZ2luKCksIG1fbmFtZSk7CisgICAgbV9maWxlbmFtZSA9IERhdGFi
YXNlTWFuYWdlcjo6c2luZ2xldG9uKCkuZnVsbFBhdGhGb3JEYXRhYmFzZShzZWN1cml0eU9yaWdp
bigpLCBtX25hbWUpOwogfQogCiBEYXRhYmFzZUJhY2tlbmRCYXNlOjp+RGF0YWJhc2VCYWNrZW5k
QmFzZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0Rh
dGFiYXNlQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0Rh
dGFiYXNlQ29udGV4dC5jcHAKaW5kZXggZTVkOWVmOWI2ODEyMzVjMGJkZDgyNjYzMGY0Y2I0N2U0
YThiNmY3ZC4uMjc3NjM5ZmE0NTY5OGFkYjgxMDhmYjEwY2NmZDM1NjhmZWVkZmY0MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZUNvbnRleHQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VDb250
ZXh0LmNwcApAQCAtMTEwLDkgKzExMCwxMCBAQCBEYXRhYmFzZUNvbnRleHQ6OkRhdGFiYXNlQ29u
dGV4dChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQogCiAgICAgLy8gRm9yIGRlYnVn
IGFjY291bnRpbmcgb25seS4gV2UgbXVzdCBkbyB0aGlzIGJlZm9yZSB3ZSByZWdpc3RlciB0aGUK
ICAgICAvLyBpbnN0YW5jZS4gVGhlIGFzc2VydGlvbnMgYXNzdW1lIHRoaXMuCi0gICAgRGF0YWJh
c2VNYW5hZ2VyOjptYW5hZ2VyKCkuZGlkQ29uc3RydWN0RGF0YWJhc2VDb250ZXh0KCk7CisgICAg
YXV0byYgZGF0YWJhc2VNYW5hZ2VyID0gRGF0YWJhc2VNYW5hZ2VyOjpzaW5nbGV0b24oKTsKKyAg
ICBkYXRhYmFzZU1hbmFnZXIuZGlkQ29uc3RydWN0RGF0YWJhc2VDb250ZXh0KCk7CiAKLSAgICBE
YXRhYmFzZU1hbmFnZXI6Om1hbmFnZXIoKS5yZWdpc3RlckRhdGFiYXNlQ29udGV4dCh0aGlzKTsK
KyAgICBkYXRhYmFzZU1hbmFnZXIucmVnaXN0ZXJEYXRhYmFzZUNvbnRleHQodGhpcyk7CiB9CiAK
IERhdGFiYXNlQ29udGV4dDo6fkRhdGFiYXNlQ29udGV4dCgpCkBAIC0xMjIsNyArMTIzLDcgQEAg
RGF0YWJhc2VDb250ZXh0Ojp+RGF0YWJhc2VDb250ZXh0KCkKIAogICAgIC8vIEZvciBkZWJ1ZyBh
Y2NvdW50aW5nIG9ubHkuIFdlIG11c3QgY2FsbCB0aGlzIGxhc3QuIFRoZSBhc3NlcnRpb25zIGFz
c3VtZQogICAgIC8vIHRoaXMuCi0gICAgRGF0YWJhc2VNYW5hZ2VyOjptYW5hZ2VyKCkuZGlkRGVz
dHJ1Y3REYXRhYmFzZUNvbnRleHQoKTsKKyAgICBEYXRhYmFzZU1hbmFnZXI6OnNpbmdsZXRvbigp
LmRpZERlc3RydWN0RGF0YWJhc2VDb250ZXh0KCk7CiB9CiAKIC8vIFRoaXMgaXMgY2FsbGVkIGlm
IHRoZSBhc3NvY2lhdGVkIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQgaXMgZGVzdHJveWVkIHdoaWxl
CkBAIC0xODUsNyArMTg2LDcgQEAgdm9pZCBEYXRhYmFzZUNvbnRleHQ6OnNldFBhdXNlZChib29s
IHBhdXNlZCkKIGJvb2wgRGF0YWJhc2VDb250ZXh0OjpzdG9wRGF0YWJhc2VzKERhdGFiYXNlVGFz
a1N5bmNocm9uaXplciogc3luY2hyb25pemVyKQogewogICAgIGlmIChtX2lzUmVnaXN0ZXJlZCkg
ewotICAgICAgICBEYXRhYmFzZU1hbmFnZXI6Om1hbmFnZXIoKS51bnJlZ2lzdGVyRGF0YWJhc2VD
b250ZXh0KHRoaXMpOworICAgICAgICBEYXRhYmFzZU1hbmFnZXI6OnNpbmdsZXRvbigpLnVucmVn
aXN0ZXJEYXRhYmFzZUNvbnRleHQodGhpcyk7CiAgICAgICAgIG1faXNSZWdpc3RlcmVkID0gZmFs
c2U7CiAgICAgfQogCkBAIC0yMzEsNyArMjMyLDcgQEAgdm9pZCBEYXRhYmFzZUNvbnRleHQ6OmRh
dGFiYXNlRXhjZWVkZWRRdW90YShjb25zdCBTdHJpbmcmIG5hbWUsIERhdGFiYXNlRGV0YWlscwog
ICAgIEFTU0VSVChtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmlzV29ya2VyR2xvYmFsU2NvcGUo
KSk7CiAgICAgLy8gRklYTUU6IFRoaXMgbmVlZHMgYSByZWFsIGltcGxlbWVudGF0aW9uOyB0aGlz
IGlzIGEgdGVtcG9yYXJ5IHNvbHV0aW9uIGZvciB0ZXN0aW5nLgogICAgIGNvbnN0IHVuc2lnbmVk
IGxvbmcgbG9uZyBkZWZhdWx0UXVvdGEgPSA1ICogMTAyNCAqIDEwMjQ7Ci0gICAgRGF0YWJhc2VN
YW5hZ2VyOjptYW5hZ2VyKCkuc2V0UXVvdGEobV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5zZWN1
cml0eU9yaWdpbigpLCBkZWZhdWx0UXVvdGEpOworICAgIERhdGFiYXNlTWFuYWdlcjo6c2luZ2xl
dG9uKCkuc2V0UXVvdGEobV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5zZWN1cml0eU9yaWdpbigp
LCBkZWZhdWx0UXVvdGEpOwogfQogCiBTZWN1cml0eU9yaWdpbiogRGF0YWJhc2VDb250ZXh0Ojpz
ZWN1cml0eU9yaWdpbigpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmRhdGFiYXNlL0RhdGFiYXNlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmRhdGFiYXNlL0RhdGFiYXNlTWFuYWdlci5jcHAKaW5kZXggOThhNzllZDhkMGE0OWRiYzg0
ODRmOTZkYTJlY2EzMTA4OGRmMGRmNC4uYjAzNzYyMjdmNThmZjkxMDEyYTVlZGRiN2M2NTE4YWYw
OTNlMTQ1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9E
YXRhYmFzZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJh
c2UvRGF0YWJhc2VNYW5hZ2VyLmNwcApAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUgIlNjcmlw
dENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5j
bHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC01NywxNSArNTgsMTAgQEAgRGF0YWJhc2VNYW5h
Z2VyOjpQcm9wb3NlZERhdGFiYXNlOjp+UHJvcG9zZWREYXRhYmFzZSgpCiAgICAgbV9tYW5hZ2Vy
LnJlbW92ZVByb3Bvc2VkRGF0YWJhc2UodGhpcyk7CiB9CiAKLURhdGFiYXNlTWFuYWdlciYgRGF0
YWJhc2VNYW5hZ2VyOjptYW5hZ2VyKCkKK0RhdGFiYXNlTWFuYWdlciYgRGF0YWJhc2VNYW5hZ2Vy
OjpzaW5nbGV0b24oKQogewotICAgIHN0YXRpYyBEYXRhYmFzZU1hbmFnZXIqIGRiTWFuYWdlciA9
IDA7Ci0gICAgLy8gRklYTUU6IFRoZSBmb2xsb3dpbmcgaXMgdnVsbmVyYWJsZSB0byBhIHJhY2Ug
YmV0d2VlbiB0aHJlYWRzLiBOZWVkIHRvCi0gICAgLy8gaW1wbGVtZW50IGEgdGhyZWFkIHNhZmUg
b24tZmlyc3QtdXNlIHN0YXRpYyBpbml0aWFsaXplci4KLSAgICBpZiAoIWRiTWFuYWdlcikKLSAg
ICAgICAgZGJNYW5hZ2VyID0gbmV3IERhdGFiYXNlTWFuYWdlcigpOwotCi0gICAgcmV0dXJuICpk
Yk1hbmFnZXI7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPERhdGFiYXNlTWFuYWdlcj4gaW5z
dGFuY2U7CisgICAgcmV0dXJuIGluc3RhbmNlOwogfQogCiBEYXRhYmFzZU1hbmFnZXI6OkRhdGFi
YXNlTWFuYWdlcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFi
YXNlL0RhdGFiYXNlTWFuYWdlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFz
ZS9EYXRhYmFzZU1hbmFnZXIuaAppbmRleCA2YzRlOGM4NTRkMWZmZGU3ZTNhNjJlNDZhZGM1M2U1
MjkwZThhYTkyLi4yMjI1N2NiOTAzY2RmM2RhOWY0ODE3NTg2YzM2NjliNjA4YmY2ZjVhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlTWFuYWdl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VNYW5h
Z2VyLmgKQEAgLTUxLDggKzUxLDkgQEAgY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIAog
Y2xhc3MgRGF0YWJhc2VNYW5hZ2VyIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShEYXRhYmFz
ZU1hbmFnZXIpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKKyAgICBmcmllbmQgY2xhc3MgV1RG
OjpOZXZlckRlc3Ryb3llZDxEYXRhYmFzZU1hbmFnZXI+OwogcHVibGljOgotICAgIFdFQkNPUkVf
RVhQT1JUIHN0YXRpYyBEYXRhYmFzZU1hbmFnZXImIG1hbmFnZXIoKTsKKyAgICBXRUJDT1JFX0VY
UE9SVCBzdGF0aWMgRGF0YWJhc2VNYW5hZ2VyJiBzaW5nbGV0b24oKTsKIAogICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgaW5pdGlhbGl6ZShjb25zdCBTdHJpbmcmIGRhdGFiYXNlUGF0aCk7CiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRDbGllbnQoRGF0YWJhc2VNYW5hZ2VyQ2xpZW50Kik7CkBA
IC0xMjEsNyArMTIyLDcgQEAgcHJpdmF0ZToKICAgICB9OwogCiAgICAgRGF0YWJhc2VNYW5hZ2Vy
KCk7Ci0gICAgfkRhdGFiYXNlTWFuYWdlcigpIHsgfQorICAgIH5EYXRhYmFzZU1hbmFnZXIoKSA9
IGRlbGV0ZTsKIAogICAgIC8vIFRoaXMgZ2V0cyBhIERhdGFiYXNlQ29udGV4dCBmb3IgdGhlIHNw
ZWNpZmllZCBTY3JpcHRFeGVjdXRpb25Db250ZXh0IGlmCiAgICAgLy8gaXQgYWxyZWFkeSBleGlz
dCBwcmV2aW91c2x5LiBPdGhlcndpc2UsIGl0IHJldHVybnMgMC4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25DbGllbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkNsaWVudC5j
cHAKaW5kZXggYWY0M2QxMDczMGNiYWU4ZGQ5MWVkZTFmOTZjNWZmNTYzNTFkYTcwOC4uMTg4Mzkx
Yjk5YWJkYTQ4ZDFlZDQyNjdmYWViMWY2N2Y4YTQxMDQ1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkNsaWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkNsaWVudC5j
cHAKQEAgLTQ5LDkgKzQ5LDEwIEBAIHZvaWQgU1FMVHJhbnNhY3Rpb25DbGllbnQ6OmRpZENvbW1p
dFdyaXRlVHJhbnNhY3Rpb24oRGF0YWJhc2VCYWNrZW5kQmFzZSogZGF0YWJhCiBib29sIFNRTFRy
YW5zYWN0aW9uQ2xpZW50OjpkaWRFeGNlZWRRdW90YShEYXRhYmFzZUJhY2tlbmRCYXNlKiBkYXRh
YmFzZSkKIHsKICAgICBBU1NFUlQoZGF0YWJhc2UtPmRhdGFiYXNlQ29udGV4dCgpLT5zY3JpcHRF
eGVjdXRpb25Db250ZXh0KCktPmlzQ29udGV4dFRocmVhZCgpKTsKLSAgICB1bnNpZ25lZCBsb25n
IGxvbmcgY3VycmVudFF1b3RhID0gRGF0YWJhc2VNYW5hZ2VyOjptYW5hZ2VyKCkucXVvdGFGb3JP
cmlnaW4oZGF0YWJhc2UtPnNlY3VyaXR5T3JpZ2luKCkpOworICAgIGF1dG8mIGRhdGFiYXNlTWFu
YWdlciA9IERhdGFiYXNlTWFuYWdlcjo6c2luZ2xldG9uKCk7CisgICAgdW5zaWduZWQgbG9uZyBs
b25nIGN1cnJlbnRRdW90YSA9IGRhdGFiYXNlTWFuYWdlci5xdW90YUZvck9yaWdpbihkYXRhYmFz
ZS0+c2VjdXJpdHlPcmlnaW4oKSk7CiAgICAgZGF0YWJhc2UtPmRhdGFiYXNlQ29udGV4dCgpLT5k
YXRhYmFzZUV4Y2VlZGVkUXVvdGEoZGF0YWJhc2UtPnN0cmluZ0lkZW50aWZpZXIoKSwgZGF0YWJh
c2UtPmRldGFpbHMoKSk7Ci0gICAgdW5zaWduZWQgbG9uZyBsb25nIG5ld1F1b3RhID0gRGF0YWJh
c2VNYW5hZ2VyOjptYW5hZ2VyKCkucXVvdGFGb3JPcmlnaW4oZGF0YWJhc2UtPnNlY3VyaXR5T3Jp
Z2luKCkpOworICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBuZXdRdW90YSA9IGRhdGFiYXNlTWFuYWdl
ci5xdW90YUZvck9yaWdpbihkYXRhYmFzZS0+c2VjdXJpdHlPcmlnaW4oKSk7CiAgICAgcmV0dXJu
IChuZXdRdW90YSA+IGN1cnJlbnRRdW90YSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2hpc3RvcnkvUGFnZUNhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvUGFnZUNh
Y2hlLmNwcAppbmRleCA1NDRjZWQ1YzA0MjllMDc0MWRmZDRmNGVkYjJmNGRkMTgzOGJmOWQzLi5i
MjA5ZTNmMWNiZDkwYmExYmIxOTVkNTA0NWE5MDc4MzRlYTU4YjNhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9oaXN0b3J5L1BhZ2VDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaGlz
dG9yeS9QYWdlQ2FjaGUuY3BwCkBAIC0xNTMsNyArMTUzLDcgQEAgc3RhdGljIHVuc2lnbmVkIGxv
Z0NhbkNhY2hlRnJhbWVEZWNpc2lvbihGcmFtZSYgZnJhbWUsIERpYWdub3N0aWNMb2dnaW5nQ2xp
ZW50JgogICAgICAgICBsb2dQYWdlQ2FjaGVGYWlsdXJlRGlhZ25vc3RpY01lc3NhZ2UoZGlhZ25v
c3RpY0xvZ2dpbmdDbGllbnQsIERpYWdub3N0aWNMb2dnaW5nS2V5czo6aHR0cHNOb1N0b3JlS2V5
KCkpOwogICAgICAgICByZWplY3RSZWFzb25zIHw9IDEgPDwgSXNIdHRwc0FuZENhY2hlQ29udHJv
bGxlZDsKICAgICB9Ci0gICAgaWYgKERhdGFiYXNlTWFuYWdlcjo6bWFuYWdlcigpLmhhc09wZW5E
YXRhYmFzZXMoZnJhbWUuZG9jdW1lbnQoKSkpIHsKKyAgICBpZiAoRGF0YWJhc2VNYW5hZ2VyOjpz
aW5nbGV0b24oKS5oYXNPcGVuRGF0YWJhc2VzKGZyYW1lLmRvY3VtZW50KCkpKSB7CiAgICAgICAg
IFBDTE9HKCIgICAtRnJhbWUgaGFzIG9wZW4gZGF0YWJhc2UgaGFuZGxlcyIpOwogICAgICAgICBs
b2dQYWdlQ2FjaGVGYWlsdXJlRGlhZ25vc3RpY01lc3NhZ2UoZGlhZ25vc3RpY0xvZ2dpbmdDbGll
bnQsIERpYWdub3N0aWNMb2dnaW5nS2V5czo6aGFzT3BlbkRhdGFiYXNlc0tleSgpKTsKICAgICAg
ICAgcmVqZWN0UmVhc29ucyB8PSAxIDw8IEhhc0RhdGFiYXNlSGFuZGxlczsKQEAgLTMxOSw3ICsz
MTksNyBAQCBib29sIFBhZ2VDYWNoZTo6Y2FuQ2FjaGVQYWdlQ29udGFpbmluZ1RoaXNGcmFtZShG
cmFtZSYgZnJhbWUpCiAgICAgICAgICYmICEoZG9jdW1lbnRMb2FkZXItPnN1YnN0aXR1dGVEYXRh
KCkuaXNWYWxpZCgpICYmICFkb2N1bWVudExvYWRlci0+c3Vic3RpdHV0ZURhdGEoKS5mYWlsaW5n
VVJMKCkuaXNFbXB0eSgpKQogICAgICAgICAmJiAoIWZyYW1lTG9hZGVyLnN1YmZyYW1lTG9hZGVy
KCkuY29udGFpbnNQbHVnaW5zKCkgfHwgZnJhbWUucGFnZSgpLT5zZXR0aW5ncygpLnBhZ2VDYWNo
ZVN1cHBvcnRzUGx1Z2lucygpKQogICAgICAgICAmJiAhKGZyYW1lLmlzTWFpbkZyYW1lKCkgJiYg
ZG9jdW1lbnQtPnVybCgpLnByb3RvY29sSXMoImh0dHBzIikgJiYgZG9jdW1lbnRMb2FkZXItPnJl
c3BvbnNlKCkuY2FjaGVDb250cm9sQ29udGFpbnNOb1N0b3JlKCkpCi0gICAgICAgICYmICFEYXRh
YmFzZU1hbmFnZXI6Om1hbmFnZXIoKS5oYXNPcGVuRGF0YWJhc2VzKGRvY3VtZW50KQorICAgICAg
ICAmJiAhRGF0YWJhc2VNYW5hZ2VyOjpzaW5nbGV0b24oKS5oYXNPcGVuRGF0YWJhc2VzKGRvY3Vt
ZW50KQogICAgICAgICAmJiBmcmFtZUxvYWRlci5oaXN0b3J5KCkuY3VycmVudEl0ZW0oKQogICAg
ICAgICAmJiAhZnJhbWVMb2FkZXIucXVpY2tSZWRpcmVjdENvbWluZygpCiAgICAgICAgICYmICFk
b2N1bWVudExvYWRlci0+aXNMb2FkaW5nSW5BUElTZW5zZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZGVyLmNwcAppbmRleCA5NmJmMGZiOTFmY2Q3YzY2YjE0ZTMyZmY4MTIzNjliZTVkZDY3
OTQ0Li41ODcwMmU4ZDNiNmI4NTM0OTAzYjY1ZWUxMTQ1MmQ5OTM0YTM0Nzg2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTQ4OCw3ICs0ODgsNyBAQCB2b2lkIEZyYW1l
TG9hZGVyOjpzdG9wTG9hZGluZyhVbmxvYWRFdmVudFBvbGljeSB1bmxvYWRFdmVudFBvbGljeSkK
ICAgICAgICAgZG9jLT5zZXRSZWFkeVN0YXRlKERvY3VtZW50OjpDb21wbGV0ZSk7CiAKICAgICAg
ICAgLy8gRklYTUU6IFNob3VsZCB0aGUgRGF0YWJhc2VNYW5hZ2VyIHdhdGNoIGZvciBzb21ldGhp
bmcgbGlrZSBBY3RpdmVET01PYmplY3Q6OnN0b3AoKSByYXRoZXIgdGhhbiBiZWluZyBzcGVjaWFs
LWNhc2VkIGhlcmU/Ci0gICAgICAgIERhdGFiYXNlTWFuYWdlcjo6bWFuYWdlcigpLnN0b3BEYXRh
YmFzZXMoZG9jLCAwKTsKKyAgICAgICAgRGF0YWJhc2VNYW5hZ2VyOjpzaW5nbGV0b24oKS5zdG9w
RGF0YWJhc2VzKGRvYywgMCk7CiAgICAgfQogCiAgICAgLy8gRklYTUU6IFRoaXMgd2lsbCBjYW5j
ZWwgcmVkaXJlY3Rpb24gdGltZXIsIHdoaWNoIHJlYWxseSBuZWVkcyB0byBiZSByZXN0YXJ0ZWQg
d2hlbiByZXN0b3JpbmcgdGhlIGZyYW1lIGZyb20gYi9mIGNhY2hlLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9tYWMvU3RvcmFnZS9XZWJEYXRhYmFzZU1hbmFnZXIubW0gYi9Tb3VyY2UvV2Vi
S2l0L21hYy9TdG9yYWdlL1dlYkRhdGFiYXNlTWFuYWdlci5tbQppbmRleCA5Yjk0ODNmZWZkMTY4
ZGIwMTcwYmRhMDUyYWU4Y2EwNDc5ZDU2ZWE0Li5iNDBhZjdiNTJiN2QzNGY3NDY0M2NlYjYxMzFl
MzI0YmQ1YTNhMWRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9TdG9yYWdlL1dlYkRh
dGFiYXNlTWFuYWdlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9TdG9yYWdlL1dlYkRhdGFi
YXNlTWFuYWdlci5tbQpAQCAtNzQsNyArNzQsNyBAQCAtIChpZClpbml0CiAKICAgICBXZWJQbGF0
Zm9ybVN0cmF0ZWdpZXM6OmluaXRpYWxpemVJZk5lY2Vzc2FyeSgpOwogCi0gICAgRGF0YWJhc2VN
YW5hZ2VyJiBkYk1hbmFnZXIgPSBEYXRhYmFzZU1hbmFnZXI6Om1hbmFnZXIoKTsKKyAgICBEYXRh
YmFzZU1hbmFnZXImIGRiTWFuYWdlciA9IERhdGFiYXNlTWFuYWdlcjo6c2luZ2xldG9uKCk7CiAK
ICAgICAvLyBTZXQgdGhlIGRhdGFiYXNlIHJvb3QgcGF0aCBpbiBXZWJDb3JlCiAgICAgZGJNYW5h
Z2VyLmluaXRpYWxpemUoZGF0YWJhc2VzRGlyZWN0b3J5UGF0aCgpKTsKQEAgLTg4LDcgKzg4LDcg
QEAgLSAoaWQpaW5pdAogLSAoTlNBcnJheSAqKW9yaWdpbnMKIHsKICAgICBWZWN0b3I8UmVmUHRy
PFNlY3VyaXR5T3JpZ2luPj4gY29yZU9yaWdpbnM7Ci0gICAgRGF0YWJhc2VNYW5hZ2VyOjptYW5h
Z2VyKCkub3JpZ2lucyhjb3JlT3JpZ2lucyk7CisgICAgRGF0YWJhc2VNYW5hZ2VyOjpzaW5nbGV0
b24oKS5vcmlnaW5zKGNvcmVPcmlnaW5zKTsKICAgICBOU011dGFibGVBcnJheSAqd2ViT3JpZ2lu
cyA9IFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6Y29yZU9yaWdpbnMu
c2l6ZSgpXTsKIAogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBjb3JlT3JpZ2lucy5zaXpl
KCk7ICsraSkgewpAQCAtMTAzLDcgKzEwMyw3IEBAIC0gKE5TQXJyYXkgKilvcmlnaW5zCiAtIChO
U0FycmF5ICopZGF0YWJhc2VzV2l0aE9yaWdpbjooV2ViU2VjdXJpdHlPcmlnaW4gKilvcmlnaW4K
IHsKICAgICBWZWN0b3I8U3RyaW5nPiBuYW1lVmVjdG9yOwotICAgIGlmICghRGF0YWJhc2VNYW5h
Z2VyOjptYW5hZ2VyKCkuZGF0YWJhc2VOYW1lc0Zvck9yaWdpbihbb3JpZ2luIF9jb3JlXSwgbmFt
ZVZlY3RvcikpCisgICAgaWYgKCFEYXRhYmFzZU1hbmFnZXI6OnNpbmdsZXRvbigpLmRhdGFiYXNl
TmFtZXNGb3JPcmlnaW4oW29yaWdpbiBfY29yZV0sIG5hbWVWZWN0b3IpKQogICAgICAgICByZXR1
cm4gbmlsOwogICAgIAogICAgIE5TTXV0YWJsZUFycmF5ICpuYW1lcyA9IFtbTlNNdXRhYmxlQXJy
YXkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6bmFtZVZlY3Rvci5zaXplKCldOwpAQCAtMTE4LDcg
KzExOCw3IEBAIC0gKE5TRGljdGlvbmFyeSAqKWRldGFpbHNGb3JEYXRhYmFzZTooTlNTdHJpbmcg
KilkYXRhYmFzZUlkZW50aWZpZXIgd2l0aE9yaWdpbjooCiB7CiAgICAgc3RhdGljIGlkIGtleXNb
M10gPSB7V2ViRGF0YWJhc2VEaXNwbGF5TmFtZUtleSwgV2ViRGF0YWJhc2VFeHBlY3RlZFNpemVL
ZXksIFdlYkRhdGFiYXNlVXNhZ2VLZXl9OwogICAgIAotICAgIERhdGFiYXNlRGV0YWlscyBkZXRh
aWxzID0gRGF0YWJhc2VNYW5hZ2VyOjptYW5hZ2VyKCkuZGV0YWlsc0Zvck5hbWVBbmRPcmlnaW4o
ZGF0YWJhc2VJZGVudGlmaWVyLCBbb3JpZ2luIF9jb3JlXSk7CisgICAgRGF0YWJhc2VEZXRhaWxz
IGRldGFpbHMgPSBEYXRhYmFzZU1hbmFnZXI6OnNpbmdsZXRvbigpLmRldGFpbHNGb3JOYW1lQW5k
T3JpZ2luKGRhdGFiYXNlSWRlbnRpZmllciwgW29yaWdpbiBfY29yZV0pOwogICAgIGlmIChkZXRh
aWxzLm5hbWUoKS5pc051bGwoKSkKICAgICAgICAgcmV0dXJuIG5pbDsKICAgICAgICAgCkBAIC0x
MzIsNyArMTMyLDcgQEAgLSAoTlNEaWN0aW9uYXJ5ICopZGV0YWlsc0ZvckRhdGFiYXNlOihOU1N0
cmluZyAqKWRhdGFiYXNlSWRlbnRpZmllciB3aXRoT3JpZ2luOigKIAogLSAodm9pZClkZWxldGVB
bGxEYXRhYmFzZXMKIHsKLSAgICBEYXRhYmFzZU1hbmFnZXI6Om1hbmFnZXIoKS5kZWxldGVBbGxE
YXRhYmFzZXMoKTsKKyAgICBEYXRhYmFzZU1hbmFnZXI6OnNpbmdsZXRvbigpLmRlbGV0ZUFsbERh
dGFiYXNlcygpOwogI2lmIFBMQVRGT1JNKElPUykKICAgICAvLyBGSVhNRTogVGhpcyBuZWVkcyB0
byBiZSByZW1vdmVkIG9uY2UgRGF0YWJhc2VUcmFja2VycyBpbiBtdWx0aXBsZSBwcm9jZXNzZXMK
ICAgICAvLyBhcmUgaW4gc3luYzogPHJkYXI6Ly9wcm9ibGVtLzk1Njc1MDA+IFJlbW92ZSBXZWJz
aXRlIERhdGEgcGFuZSBpcyBub3Qga2VwdCBpbiBzeW5jIHdpdGggU2FmYXJpCkBAIC0xNDIsMTIg
KzE0MiwxMiBAQCAtICh2b2lkKWRlbGV0ZUFsbERhdGFiYXNlcwogCiAtIChCT09MKWRlbGV0ZU9y
aWdpbjooV2ViU2VjdXJpdHlPcmlnaW4gKilvcmlnaW4KIHsKLSAgICByZXR1cm4gRGF0YWJhc2VN
YW5hZ2VyOjptYW5hZ2VyKCkuZGVsZXRlT3JpZ2luKFtvcmlnaW4gX2NvcmVdKTsKKyAgICByZXR1
cm4gRGF0YWJhc2VNYW5hZ2VyOjpzaW5nbGV0b24oKS5kZWxldGVPcmlnaW4oW29yaWdpbiBfY29y
ZV0pOwogfQogCiAtIChCT09MKWRlbGV0ZURhdGFiYXNlOihOU1N0cmluZyAqKWRhdGFiYXNlSWRl
bnRpZmllciB3aXRoT3JpZ2luOihXZWJTZWN1cml0eU9yaWdpbiAqKW9yaWdpbgogewotICAgIHJl
dHVybiBEYXRhYmFzZU1hbmFnZXI6Om1hbmFnZXIoKS5kZWxldGVEYXRhYmFzZShbb3JpZ2luIF9j
b3JlXSwgZGF0YWJhc2VJZGVudGlmaWVyKTsKKyAgICByZXR1cm4gRGF0YWJhc2VNYW5hZ2VyOjpz
aW5nbGV0b24oKS5kZWxldGVEYXRhYmFzZShbb3JpZ2luIF9jb3JlXSwgZGF0YWJhc2VJZGVudGlm
aWVyKTsKIH0KIAogI2lmIFBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
bWFjL1N0b3JhZ2UvV2ViRGF0YWJhc2VRdW90YU1hbmFnZXIubW0gYi9Tb3VyY2UvV2ViS2l0L21h
Yy9TdG9yYWdlL1dlYkRhdGFiYXNlUXVvdGFNYW5hZ2VyLm1tCmluZGV4IGMyYWMyYWVhNzUxMDM5
YTllYmIwODg2Yzk5MTdkYjhmNDI5M2ViZmEuLmIwYzExNmQxNDQwYjQ2MDYxYWUyNWM1ZTdkN2Ri
ZGU3N2FmYWQwM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1N0b3JhZ2UvV2ViRGF0
YWJhc2VRdW90YU1hbmFnZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvU3RvcmFnZS9XZWJE
YXRhYmFzZVF1b3RhTWFuYWdlci5tbQpAQCAtNDksMTIgKzQ5LDEyIEBAIC0gKFdlYlNlY3VyaXR5
T3JpZ2luICopb3JpZ2luCiAKIC0gKHVuc2lnbmVkIGxvbmcgbG9uZyl1c2FnZQogewotICAgIHJl
dHVybiBEYXRhYmFzZU1hbmFnZXI6Om1hbmFnZXIoKS51c2FnZUZvck9yaWdpbihbX29yaWdpbiBf
Y29yZV0pOworICAgIHJldHVybiBEYXRhYmFzZU1hbmFnZXI6OnNpbmdsZXRvbigpLnVzYWdlRm9y
T3JpZ2luKFtfb3JpZ2luIF9jb3JlXSk7CiB9CiAKIC0gKHVuc2lnbmVkIGxvbmcgbG9uZylxdW90
YQogewotICAgIHJldHVybiBEYXRhYmFzZU1hbmFnZXI6Om1hbmFnZXIoKS5xdW90YUZvck9yaWdp
bihbX29yaWdpbiBfY29yZV0pOworICAgIHJldHVybiBEYXRhYmFzZU1hbmFnZXI6OnNpbmdsZXRv
bigpLnF1b3RhRm9yT3JpZ2luKFtfb3JpZ2luIF9jb3JlXSk7CiB9CiAKIC8vIElmIHRoZSBxdW90
YSBpcyBzZXQgdG8gYSB2YWx1ZSBsb3dlciB0aGFuIHRoZSBjdXJyZW50IHVzYWdlLCB0aGF0IHF1
b3RhIHdpbGwKQEAgLTYyLDcgKzYyLDcgQEAgLSAodW5zaWduZWQgbG9uZyBsb25nKXF1b3RhCiAv
LyBwcmV2ZW50IG5ldyBkYXRhIGZyb20gYmVpbmcgYWRkZWQgdG8gZGF0YWJhc2VzIGluIHRoYXQg
b3JpZ2luLgogLSAodm9pZClzZXRRdW90YToodW5zaWduZWQgbG9uZyBsb25nKXF1b3RhCiB7Ci0g
ICAgRGF0YWJhc2VNYW5hZ2VyOjptYW5hZ2VyKCkuc2V0UXVvdGEoW19vcmlnaW4gX2NvcmVdLCBx
dW90YSk7CisgICAgRGF0YWJhc2VNYW5hZ2VyOjpzaW5nbGV0b24oKS5zZXRRdW90YShbX29yaWdp
biBfY29yZV0sIHF1b3RhKTsKIH0KIAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViU2VjdXJpdHlPcmlnaW4ubW0gYi9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJTZWN1cml0eU9yaWdpbi5tbQppbmRleCA2ODgzMmVkZDY1NDNi
ZmY0ODEzNjk4NmViMjc3MTRhYWMxY2I2YjdjLi5mNGRhMTY5MmNkNDIyZDMwNjA3ODk0MzQ4M2Vm
ZGM3YTRkY2M3ZGNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJTZWN1cml0eU9yaWdpbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJTZWN1cml0eU9yaWdpbi5tbQpAQCAtMTc5LDE3ICsxNzksMTcgQEAgQGltcGxlbWVu
dGF0aW9uIFdlYlNlY3VyaXR5T3JpZ2luIChEZXByZWNhdGVkKQogCiAtICh1bnNpZ25lZCBsb25n
IGxvbmcpdXNhZ2UKIHsKLSAgICByZXR1cm4gRGF0YWJhc2VNYW5hZ2VyOjptYW5hZ2VyKCkudXNh
Z2VGb3JPcmlnaW4ocmVpbnRlcnByZXRfY2FzdDxTZWN1cml0eU9yaWdpbio+KF9wcml2YXRlKSk7
CisgICAgcmV0dXJuIERhdGFiYXNlTWFuYWdlcjo6c2luZ2xldG9uKCkudXNhZ2VGb3JPcmlnaW4o
cmVpbnRlcnByZXRfY2FzdDxTZWN1cml0eU9yaWdpbio+KF9wcml2YXRlKSk7CiB9CiAKIC0gKHVu
c2lnbmVkIGxvbmcgbG9uZylxdW90YQogewotICAgIHJldHVybiBEYXRhYmFzZU1hbmFnZXI6Om1h
bmFnZXIoKS5xdW90YUZvck9yaWdpbihyZWludGVycHJldF9jYXN0PFNlY3VyaXR5T3JpZ2luKj4o
X3ByaXZhdGUpKTsKKyAgICByZXR1cm4gRGF0YWJhc2VNYW5hZ2VyOjpzaW5nbGV0b24oKS5xdW90
YUZvck9yaWdpbihyZWludGVycHJldF9jYXN0PFNlY3VyaXR5T3JpZ2luKj4oX3ByaXZhdGUpKTsK
IH0KIAogLSAodm9pZClzZXRRdW90YToodW5zaWduZWQgbG9uZyBsb25nKXF1b3RhCiB7Ci0gICAg
RGF0YWJhc2VNYW5hZ2VyOjptYW5hZ2VyKCkuc2V0UXVvdGEocmVpbnRlcnByZXRfY2FzdDxTZWN1
cml0eU9yaWdpbio+KF9wcml2YXRlKSwgcXVvdGEpOworICAgIERhdGFiYXNlTWFuYWdlcjo6c2lu
Z2xldG9uKCkuc2V0UXVvdGEocmVpbnRlcnByZXRfY2FzdDxTZWN1cml0eU9yaWdpbio+KF9wcml2
YXRlKSwgcXVvdGEpOwogfQogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYkZyYW1lLm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5t
bQppbmRleCBlMWYyYTc3MjRjZGM2OGMzZjY0YWE2M2NkZjI0NGQ2OTBjMjJmNDBhLi44YzgyMWVh
ODVlMjg1MzljNDlkMzVkYWNhODNlZGZjYzE5MmY3ZjljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViRnJhbWUubW0KQEAgLTIwOTMsNyArMjA5Myw3IEBAIC0gKE5TTXV0YWJsZURpY3Rpb25h
cnkgKilfY2FjaGVhYmlsaXR5RGljdGlvbmFyeQogICAgIH0KICAgICAKICAgICBpZiAoRG9jdW1l
bnQqIGRvY3VtZW50ID0gX3ByaXZhdGUtPmNvcmVGcmFtZS0+ZG9jdW1lbnQoKSkgewotICAgICAg
ICBpZiAoRGF0YWJhc2VNYW5hZ2VyOjptYW5hZ2VyKCkuaGFzT3BlbkRhdGFiYXNlcyhkb2N1bWVu
dCkpCisgICAgICAgIGlmIChEYXRhYmFzZU1hbmFnZXI6OnNpbmdsZXRvbigpLmhhc09wZW5EYXRh
YmFzZXMoZG9jdW1lbnQpKQogICAgICAgICAgICAgW3Jlc3VsdCBzZXRPYmplY3Q6W05TTnVtYmVy
IG51bWJlcldpdGhCb29sOllFU10gZm9yS2V5OldlYkZyYW1lVXNlc0RhdGFiYXNlc107CiAgICAg
ICAgIGlmICghZG9jdW1lbnQtPmNhblN1c3BlbmRBY3RpdmVET01PYmplY3RzKCkpCiAgICAgICAg
ICAgICBbcmVzdWx0IHNldE9iamVjdDpbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6WUVTXSBmb3JL
ZXk6V2ViRnJhbWVDYW5TdXNwZW5kQWN0aXZlRE9NT2JqZWN0c107CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYlZpZXcubW0KaW5kZXggNWFmOGExZWMwNTU5NGVlOGI4ZmRmZmMwMTdmZGVjNTljY2Qy
MDU1ZS4uZjAzNmRmNDcyYmI4MjAwMzUyNjA1YWFmNzE3OTg0YjJlZjdmYzQwMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMjM2Myw3ICsyMzYzLDcgQEAgLSAodm9pZClf
cHJlZmVyZW5jZXNDaGFuZ2VkOihXZWJQcmVmZXJlbmNlcyAqKXByZWZlcmVuY2VzCiAgICAgc2V0
dGluZ3Muc2V0UVRLaXRFbmFibGVkKFtwcmVmZXJlbmNlcyBpc1FUS2l0RW5hYmxlZF0pOwogI2Vu
ZGlmIC8vIFBMQVRGT1JNKE1BQykKIAotICAgIERhdGFiYXNlTWFuYWdlcjo6bWFuYWdlcigpLnNl
dElzQXZhaWxhYmxlKFtwcmVmZXJlbmNlcyBkYXRhYmFzZXNFbmFibGVkXSk7CisgICAgRGF0YWJh
c2VNYW5hZ2VyOjpzaW5nbGV0b24oKS5zZXRJc0F2YWlsYWJsZShbcHJlZmVyZW5jZXMgZGF0YWJh
c2VzRW5hYmxlZF0pOwogCiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKICAgICBzZXR0aW5ncy5z
ZXRNZWRpYVNvdXJjZUVuYWJsZWQoW3ByZWZlcmVuY2VzIG1lZGlhU291cmNlRW5hYmxlZF0pOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViRGF0YWJhc2VNYW5hZ2VyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvd2luL1dlYkRhdGFiYXNlTWFuYWdlci5jcHAKaW5kZXggMGVlYWIxNzA5Yjdi
OThlNzgxYjhmODc2ZTM0OTNiYzUwOWY0NDQ0YS4uNzAwNDM2NzU2OWFkNmI0N2U5NDFmZDU5MTk3
N2M3ZmRmYTIzNWQzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViRGF0YWJhc2VN
YW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJEYXRhYmFzZU1hbmFnZXIuY3Bw
CkBAIC0yMDEsNyArMjAxLDcgQEAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJEYXRhYmFz
ZU1hbmFnZXI6OnNoYXJlZFdlYkRhdGFiYXNlTWFuYWdlcigKIHsKICAgICBpZiAoIXNfc2hhcmVk
V2ViRGF0YWJhc2VNYW5hZ2VyKSB7CiAgICAgICAgIHNfc2hhcmVkV2ViRGF0YWJhc2VNYW5hZ2Vy
LmFkb3B0UmVmKFdlYkRhdGFiYXNlTWFuYWdlcjo6Y3JlYXRlSW5zdGFuY2UoKSk7Ci0gICAgICAg
IERhdGFiYXNlTWFuYWdlcjo6bWFuYWdlcigpLnNldENsaWVudChzX3NoYXJlZFdlYkRhdGFiYXNl
TWFuYWdlci5nZXQoKSk7CisgICAgICAgIERhdGFiYXNlTWFuYWdlcjo6c2luZ2xldG9uKCkuc2V0
Q2xpZW50KHNfc2hhcmVkV2ViRGF0YWJhc2VNYW5hZ2VyLmdldCgpKTsKICAgICB9CiAKICAgICBy
ZXR1cm4gc19zaGFyZWRXZWJEYXRhYmFzZU1hbmFnZXIuY29weVJlZlRvKHJlc3VsdCk7CkBAIC0y
MTksNyArMjE5LDcgQEAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJEYXRhYmFzZU1hbmFn
ZXI6Om9yaWdpbnMoCiAgICAgICAgIHJldHVybiBFX0ZBSUw7CiAKICAgICBWZWN0b3I8UmVmUHRy
PFNlY3VyaXR5T3JpZ2luPiA+IG9yaWdpbnM7Ci0gICAgRGF0YWJhc2VNYW5hZ2VyOjptYW5hZ2Vy
KCkub3JpZ2lucyhvcmlnaW5zKTsKKyAgICBEYXRhYmFzZU1hbmFnZXI6OnNpbmdsZXRvbigpLm9y
aWdpbnMob3JpZ2lucyk7CiAgICAgICAgIENPTVB0cjxDT01FbnVtVmFyaWFudDxWZWN0b3I8UmVm
UHRyPFNlY3VyaXR5T3JpZ2luPiA+ID4gPiBlbnVtVmFyaWFudChBZG9wdENPTSwgQ09NRW51bVZh
cmlhbnQ8VmVjdG9yPFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gPiA+OjphZG9wdChvcmlnaW5zKSk7
CiAKICAgICAqcmVzdWx0ID0gZW51bVZhcmlhbnQubGVha1JlZigpOwpAQCAtMjQzLDcgKzI0Myw3
IEBAIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViRGF0YWJhc2VNYW5hZ2VyOjpkYXRhYmFz
ZXNXaXRoT3JpZ2luKAogICAgICAgICByZXR1cm4gRV9GQUlMOwogCiAgICAgVmVjdG9yPFN0cmlu
Zz4gZGF0YWJhc2VOYW1lczsKLSAgICBEYXRhYmFzZU1hbmFnZXI6Om1hbmFnZXIoKS5kYXRhYmFz
ZU5hbWVzRm9yT3JpZ2luKHdlYlNlY3VyaXR5T3JpZ2luLT5zZWN1cml0eU9yaWdpbigpLCBkYXRh
YmFzZU5hbWVzKTsKKyAgICBEYXRhYmFzZU1hbmFnZXI6OnNpbmdsZXRvbigpLmRhdGFiYXNlTmFt
ZXNGb3JPcmlnaW4od2ViU2VjdXJpdHlPcmlnaW4tPnNlY3VyaXR5T3JpZ2luKCksIGRhdGFiYXNl
TmFtZXMpOwogCiAgICAgQ09NUHRyPENPTUVudW1WYXJpYW50PFZlY3RvcjxTdHJpbmc+ID4gPiBl
bnVtVmFyaWFudChBZG9wdENPTSwgQ09NRW51bVZhcmlhbnQ8VmVjdG9yPFN0cmluZz4gPjo6YWRv
cHQoZGF0YWJhc2VOYW1lcykpOwogCkBAIC0yNjgsNyArMjY4LDcgQEAgSFJFU1VMVCBTVERNRVRI
T0RDQUxMVFlQRSBXZWJEYXRhYmFzZU1hbmFnZXI6OmRldGFpbHNGb3JEYXRhYmFzZSgKICAgICBp
ZiAoIXdlYlNlY3VyaXR5T3JpZ2luKQogICAgICAgICByZXR1cm4gRV9GQUlMOwogCi0gICAgRGF0
YWJhc2VEZXRhaWxzIGRldGFpbHMgPSBEYXRhYmFzZU1hbmFnZXI6Om1hbmFnZXIoKS5kZXRhaWxz
Rm9yTmFtZUFuZE9yaWdpbihTdHJpbmcoZGF0YWJhc2VOYW1lLCBTeXNTdHJpbmdMZW4oZGF0YWJh
c2VOYW1lKSksCisgICAgRGF0YWJhc2VEZXRhaWxzIGRldGFpbHMgPSBEYXRhYmFzZU1hbmFnZXI6
OnNpbmdsZXRvbigpLmRldGFpbHNGb3JOYW1lQW5kT3JpZ2luKFN0cmluZyhkYXRhYmFzZU5hbWUs
IFN5c1N0cmluZ0xlbihkYXRhYmFzZU5hbWUpKSwKICAgICAgICAgd2ViU2VjdXJpdHlPcmlnaW4t
PnNlY3VyaXR5T3JpZ2luKCkpOwogCiAgICAgaWYgKGRldGFpbHMubmFtZSgpLmlzTnVsbCgpKQpA
QCAtMjgzLDcgKzI4Myw3IEBAIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViRGF0YWJhc2VN
YW5hZ2VyOjpkZWxldGVBbGxEYXRhYmFzZXMoKQogICAgIGlmICh0aGlzICE9IHNfc2hhcmVkV2Vi
RGF0YWJhc2VNYW5hZ2VyKQogICAgICAgICByZXR1cm4gRV9GQUlMOwogCi0gICAgRGF0YWJhc2VN
YW5hZ2VyOjptYW5hZ2VyKCkuZGVsZXRlQWxsRGF0YWJhc2VzKCk7CisgICAgRGF0YWJhc2VNYW5h
Z2VyOjpzaW5nbGV0b24oKS5kZWxldGVBbGxEYXRhYmFzZXMoKTsKIAogICAgIHJldHVybiBTX09L
OwogfQpAQCAtMzAxLDcgKzMwMSw3IEBAIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViRGF0
YWJhc2VNYW5hZ2VyOjpkZWxldGVPcmlnaW4oCiAgICAgaWYgKCF3ZWJTZWN1cml0eU9yaWdpbikK
ICAgICAgICAgcmV0dXJuIEVfRkFJTDsKIAotICAgIERhdGFiYXNlTWFuYWdlcjo6bWFuYWdlcigp
LmRlbGV0ZU9yaWdpbih3ZWJTZWN1cml0eU9yaWdpbi0+c2VjdXJpdHlPcmlnaW4oKSk7CisgICAg
RGF0YWJhc2VNYW5hZ2VyOjpzaW5nbGV0b24oKS5kZWxldGVPcmlnaW4od2ViU2VjdXJpdHlPcmln
aW4tPnNlY3VyaXR5T3JpZ2luKCkpOwogCiAgICAgcmV0dXJuIFNfT0s7CiB9CkBAIC0zMjMsNyAr
MzIzLDcgQEAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJEYXRhYmFzZU1hbmFnZXI6OmRl
bGV0ZURhdGFiYXNlKAogICAgIGlmICghd2ViU2VjdXJpdHlPcmlnaW4pCiAgICAgICAgIHJldHVy
biBFX0ZBSUw7CiAKLSAgICBEYXRhYmFzZU1hbmFnZXI6Om1hbmFnZXIoKS5kZWxldGVEYXRhYmFz
ZSh3ZWJTZWN1cml0eU9yaWdpbi0+c2VjdXJpdHlPcmlnaW4oKSwgU3RyaW5nKGRhdGFiYXNlTmFt
ZSwgU3lzU3RyaW5nTGVuKGRhdGFiYXNlTmFtZSkpKTsKKyAgICBEYXRhYmFzZU1hbmFnZXI6OnNp
bmdsZXRvbigpLmRlbGV0ZURhdGFiYXNlKHdlYlNlY3VyaXR5T3JpZ2luLT5zZWN1cml0eU9yaWdp
bigpLCBTdHJpbmcoZGF0YWJhc2VOYW1lLCBTeXNTdHJpbmdMZW4oZGF0YWJhc2VOYW1lKSkpOwog
CiAgICAgcmV0dXJuIFNfT0s7CiB9CkBAIC0zODAsNyArMzgwLDcgQEAgSFJFU1VMVCBTVERNRVRI
T0RDQUxMVFlQRSBXZWJEYXRhYmFzZU1hbmFnZXI6OnNldFF1b3RhKAogICAgIGlmICh0aGlzICE9
IHNfc2hhcmVkV2ViRGF0YWJhc2VNYW5hZ2VyKQogICAgICAgICByZXR1cm4gRV9GQUlMOwogCi0g
ICAgRGF0YWJhc2VNYW5hZ2VyOjptYW5hZ2VyKCkuc2V0UXVvdGEoU2VjdXJpdHlPcmlnaW46OmNy
ZWF0ZUZyb21TdHJpbmcob3JpZ2luKS5wdHIoKSwgcXVvdGEpOworICAgIERhdGFiYXNlTWFuYWdl
cjo6c2luZ2xldG9uKCkuc2V0UXVvdGEoU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmco
b3JpZ2luKS5wdHIoKSwgcXVvdGEpOwogCiAgICAgcmV0dXJuIFNfT0s7CiB9CkBAIC00MjEsNyAr
NDIxLDcgQEAgdm9pZCBXZWJLaXRJbml0aWFsaXplV2ViRGF0YWJhc2VzSWZOZWNlc3NhcnkoKQog
ICAgIGlmIChpbml0aWFsaXplZCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgV2ViQ29yZTo6RGF0
YWJhc2VNYW5hZ2VyOjptYW5hZ2VyKCkuaW5pdGlhbGl6ZShkYXRhYmFzZXNEaXJlY3RvcnkoKSk7
CisgICAgV2ViQ29yZTo6RGF0YWJhc2VNYW5hZ2VyOjpzaW5nbGV0b24oKS5pbml0aWFsaXplKGRh
dGFiYXNlc0RpcmVjdG9yeSgpKTsKIAogICAgIGluaXRpYWxpemVkID0gdHJ1ZTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlNlY3VyaXR5T3JpZ2luLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvd2luL1dlYlNlY3VyaXR5T3JpZ2luLmNwcAppbmRleCA3ZGZmMjI5NmI5OTVmZTk1M2U2
YWE1ZjI4MTE4YzAzODk5NDE5M2I0Li43ZDRhM2IyMmI5ZGYyOThiNjdiZTQ4ZDYxNTgwYzBiYmU1
MWYwMWFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJTZWN1cml0eU9yaWdpbi5j
cHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViU2VjdXJpdHlPcmlnaW4uY3BwCkBAIC0xMjYs
NyArMTI2LDcgQEAgSFJFU1VMVCBXZWJTZWN1cml0eU9yaWdpbjo6dXNhZ2UoLyogW3JldHZhbF1b
b3V0XSAqLyB1bnNpZ25lZCBsb25nIGxvbmcqIHJlc3VsdCkKICAgICBpZiAoIXJlc3VsdCkKICAg
ICAgICAgcmV0dXJuIEVfUE9JTlRFUjsKIAotICAgICpyZXN1bHQgPSBEYXRhYmFzZU1hbmFnZXI6
Om1hbmFnZXIoKS51c2FnZUZvck9yaWdpbihtX3NlY3VyaXR5T3JpZ2luLmdldCgpKTsKKyAgICAq
cmVzdWx0ID0gRGF0YWJhc2VNYW5hZ2VyOjpzaW5nbGV0b24oKS51c2FnZUZvck9yaWdpbihtX3Nl
Y3VyaXR5T3JpZ2luLmdldCgpKTsKIAogICAgIHJldHVybiBTX09LOwogfQpAQCAtMTM2LDEzICsx
MzYsMTMgQEAgSFJFU1VMVCBXZWJTZWN1cml0eU9yaWdpbjo6cXVvdGEoLyogW3JldHZhbF1bb3V0
XSAqLyB1bnNpZ25lZCBsb25nIGxvbmcqIHJlc3VsdCkKICAgICBpZiAoIXJlc3VsdCkKICAgICAg
ICAgcmV0dXJuIEVfUE9JTlRFUjsKIAotICAgICpyZXN1bHQgPSBEYXRhYmFzZU1hbmFnZXI6Om1h
bmFnZXIoKS5xdW90YUZvck9yaWdpbihtX3NlY3VyaXR5T3JpZ2luLmdldCgpKTsKKyAgICAqcmVz
dWx0ID0gRGF0YWJhc2VNYW5hZ2VyOjpzaW5nbGV0b24oKS5xdW90YUZvck9yaWdpbihtX3NlY3Vy
aXR5T3JpZ2luLmdldCgpKTsKICAgICByZXR1cm4gU19PSzsKIH0KICAgICAgICAgCiBIUkVTVUxU
IFdlYlNlY3VyaXR5T3JpZ2luOjpzZXRRdW90YSgvKiBbaW5dICovIHVuc2lnbmVkIGxvbmcgbG9u
ZyBxdW90YSkgCiB7Ci0gICAgRGF0YWJhc2VNYW5hZ2VyOjptYW5hZ2VyKCkuc2V0UXVvdGEobV9z
ZWN1cml0eU9yaWdpbi5nZXQoKSwgcXVvdGEpOworICAgIERhdGFiYXNlTWFuYWdlcjo6c2luZ2xl
dG9uKCkuc2V0UXVvdGEobV9zZWN1cml0eU9yaWdpbi5nZXQoKSwgcXVvdGEpOwogCiAgICAgcmV0
dXJuIFNfT0s7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcCBi
L1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCmluZGV4IDU1YWI3ZDMyNDYxNGVkYjJjYzNh
ZjcxNDlmYzU4NmIwNTVjZDY1ZTguLmFmNjNkMmRkMWY4N2VmZjMyMTE5NWJjMzBiMjY1ZDUwNTVk
OTE0NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCkBAIC00OTk2LDcgKzQ5OTYsNyBAQCBIUkVTVUxU
IFdlYlZpZXc6Om5vdGlmeVByZWZlcmVuY2VzQ2hhbmdlZChJV2ViTm90aWZpY2F0aW9uKiBub3Rp
ZmljYXRpb24pCiAgICAgaHIgPSBwcmVmc1ByaXZhdGUtPmRhdGFiYXNlc0VuYWJsZWQoJmVuYWJs
ZWQpOwogICAgIGlmIChGQUlMRUQoaHIpKQogICAgICAgICByZXR1cm4gaHI7Ci0gICAgRGF0YWJh
c2VNYW5hZ2VyOjptYW5hZ2VyKCkuc2V0SXNBdmFpbGFibGUoZW5hYmxlZCk7CisgICAgRGF0YWJh
c2VNYW5hZ2VyOjpzaW5nbGV0b24oKS5zZXRJc0F2YWlsYWJsZShlbmFibGVkKTsKIAogICAgIGhy
ID0gcHJlZnNQcml2YXRlLT5sb2NhbFN0b3JhZ2VFbmFibGVkKCZlbmFibGVkKTsKICAgICBpZiAo
RkFJTEVEKGhyKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCBhNTBhOWFjYzhkZGE5ZjI1
ZDViMTFiNGI3MjFkMTY3ODE5MjgyZjQ1Li4zMjQ4MjFmNTkzMTc0Nzc1MWI3MzQzMDc2M2MzNTMx
Mzc2ZmE1NjA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC02ODksNyArNjg5LDcgQEAg
dm9pZCBXZWJDaHJvbWVDbGllbnQ6OmV4Y2VlZGVkRGF0YWJhc2VRdW90YShGcmFtZSogZnJhbWUs
IGNvbnN0IFN0cmluZyYgZGF0YWJhc2UKICAgICAKICAgICBTZWN1cml0eU9yaWdpbiogb3JpZ2lu
ID0gZnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCk7CiAKLSAgICBEYXRhYmFzZU1h
bmFnZXImIGRiTWFuYWdlciA9IERhdGFiYXNlTWFuYWdlcjo6bWFuYWdlcigpOworICAgIERhdGFi
YXNlTWFuYWdlciYgZGJNYW5hZ2VyID0gRGF0YWJhc2VNYW5hZ2VyOjpzaW5nbGV0b24oKTsKICAg
ICB1aW50NjRfdCBjdXJyZW50UXVvdGEgPSBkYk1hbmFnZXIucXVvdGFGb3JPcmlnaW4ob3JpZ2lu
KTsKICAgICB1aW50NjRfdCBjdXJyZW50T3JpZ2luVXNhZ2UgPSBkYk1hbmFnZXIudXNhZ2VGb3JP
cmlnaW4ob3JpZ2luKTsKICAgICB1aW50NjRfdCBuZXdRdW90YSA9IDA7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRhdGFiYXNlTWFuYWdl
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRhdGFi
YXNlTWFuYWdlci5jcHAKaW5kZXggYWY3MTEwOTVkYjVjNjlmYmZlZmU2MGRlY2RiNzNjYmYxNjc5
NjBmZS4uOTI1MjJlMTUzOGFiNTg0NGY1NWY3ODJhNDRjZGM3OGJmMGFkNWMwMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEYXRhYmFzZU1h
bmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRGF0YWJhc2VNYW5hZ2VyLmNwcApAQCAtNTMsOCArNTMsOSBAQCBXZWJEYXRhYmFzZU1hbmFn
ZXI6OldlYkRhdGFiYXNlTWFuYWdlcihXZWJQcm9jZXNzKiBwcm9jZXNzKQogCiB2b2lkIFdlYkRh
dGFiYXNlTWFuYWdlcjo6aW5pdGlhbGl6ZShjb25zdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzJiBwYXJhbWV0ZXJzKQogewotICAgIERhdGFiYXNlTWFuYWdlcjo6bWFuYWdlcigpLmluaXRp
YWxpemUocGFyYW1ldGVycy53ZWJTUUxEYXRhYmFzZURpcmVjdG9yeSk7Ci0gICAgRGF0YWJhc2VN
YW5hZ2VyOjptYW5hZ2VyKCkuc2V0Q2xpZW50KHRoaXMpOworICAgIGF1dG8mIGRhdGFiYXNlTWFu
YWdlciA9IERhdGFiYXNlTWFuYWdlcjo6c2luZ2xldG9uKCk7CisgICAgZGF0YWJhc2VNYW5hZ2Vy
LmluaXRpYWxpemUocGFyYW1ldGVycy53ZWJTUUxEYXRhYmFzZURpcmVjdG9yeSk7CisgICAgZGF0
YWJhc2VNYW5hZ2VyLnNldENsaWVudCh0aGlzKTsKIH0KIAogdm9pZCBXZWJEYXRhYmFzZU1hbmFn
ZXI6OmdldERhdGFiYXNlc0J5T3JpZ2luKHVpbnQ2NF90IGNhbGxiYWNrSUQpIGNvbnN0CkBAIC02
Myw4ICs2NCw5IEBAIHZvaWQgV2ViRGF0YWJhc2VNYW5hZ2VyOjpnZXREYXRhYmFzZXNCeU9yaWdp
bih1aW50NjRfdCBjYWxsYmFja0lEKSBjb25zdAogICAgIC8vIHRvIGdldCBib3RoIHRoZSBvcmln
aW5zIGFuZCB0aGUgVmVjdG9yIG9mIERhdGFiYXNlRGV0YWlscyBmb3IgZWFjaCBvcmlnaW4gaW4g
b25lCiAgICAgLy8gc2hvdC4gIFRoYXQgd291bGQgYXZvaWQgdGFraW5nIHRoZSBudW1lcm91cyBs
b2NrcyB0aGlzIHJlcXVpcmVzLgogCisgICAgYXV0byYgZGF0YWJhc2VNYW5hZ2VyID0gRGF0YWJh
c2VNYW5hZ2VyOjpzaW5nbGV0b24oKTsKICAgICBWZWN0b3I8UmVmUHRyPFNlY3VyaXR5T3JpZ2lu
Pj4gb3JpZ2luczsKLSAgICBEYXRhYmFzZU1hbmFnZXI6Om1hbmFnZXIoKS5vcmlnaW5zKG9yaWdp
bnMpOworICAgIGRhdGFiYXNlTWFuYWdlci5vcmlnaW5zKG9yaWdpbnMpOwogCiAgICAgVmVjdG9y
PE9yaWdpbkFuZERhdGFiYXNlcz4gb3JpZ2luQW5kRGF0YWJhc2VzVmVjdG9yOwogICAgIG9yaWdp
bkFuZERhdGFiYXNlc1ZlY3Rvci5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KG9yaWdpbnMuc2l6ZSgp
KTsKQEAgLTczLDEzICs3NSwxMyBAQCB2b2lkIFdlYkRhdGFiYXNlTWFuYWdlcjo6Z2V0RGF0YWJh
c2VzQnlPcmlnaW4odWludDY0X3QgY2FsbGJhY2tJRCkgY29uc3QKICAgICAgICAgT3JpZ2luQW5k
RGF0YWJhc2VzIG9yaWdpbkFuZERhdGFiYXNlczsKIAogICAgICAgICBWZWN0b3I8U3RyaW5nPiBu
YW1lVmVjdG9yOwotICAgICAgICBpZiAoIURhdGFiYXNlTWFuYWdlcjo6bWFuYWdlcigpLmRhdGFi
YXNlTmFtZXNGb3JPcmlnaW4ob3JpZ2luc1tpXS5nZXQoKSwgbmFtZVZlY3RvcikpCisgICAgICAg
IGlmICghZGF0YWJhc2VNYW5hZ2VyLmRhdGFiYXNlTmFtZXNGb3JPcmlnaW4ob3JpZ2luc1tpXS5n
ZXQoKSwgbmFtZVZlY3RvcikpCiAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICBWZWN0
b3I8RGF0YWJhc2VEZXRhaWxzPiBkZXRhaWxzVmVjdG9yOwogICAgICAgICBkZXRhaWxzVmVjdG9y
LnJlc2VydmVJbml0aWFsQ2FwYWNpdHkobmFtZVZlY3Rvci5zaXplKCkpOwogICAgICAgICBmb3Ig
KHNpemVfdCBqID0gMDsgaiA8IG5hbWVWZWN0b3Iuc2l6ZSgpOyBqKyspIHsKLSAgICAgICAgICAg
IERhdGFiYXNlRGV0YWlscyBkZXRhaWxzID0gRGF0YWJhc2VNYW5hZ2VyOjptYW5hZ2VyKCkuZGV0
YWlsc0Zvck5hbWVBbmRPcmlnaW4obmFtZVZlY3RvcltqXSwgb3JpZ2luc1tpXS5nZXQoKSk7Cisg
ICAgICAgICAgICBEYXRhYmFzZURldGFpbHMgZGV0YWlscyA9IGRhdGFiYXNlTWFuYWdlci5kZXRh
aWxzRm9yTmFtZUFuZE9yaWdpbihuYW1lVmVjdG9yW2pdLCBvcmlnaW5zW2ldLmdldCgpKTsKICAg
ICAgICAgICAgIGlmIChkZXRhaWxzLm5hbWUoKS5pc051bGwoKSkKICAgICAgICAgICAgICAgICBj
b250aW51ZTsKIApAQCAtOTAsOCArOTIsOCBAQCB2b2lkIFdlYkRhdGFiYXNlTWFuYWdlcjo6Z2V0
RGF0YWJhc2VzQnlPcmlnaW4odWludDY0X3QgY2FsbGJhY2tJRCkgY29uc3QKICAgICAgICAgICAg
IGNvbnRpbnVlOwogCiAgICAgICAgIG9yaWdpbkFuZERhdGFiYXNlcy5vcmlnaW5JZGVudGlmaWVy
ID0gb3JpZ2luc1tpXS0+ZGF0YWJhc2VJZGVudGlmaWVyKCk7Ci0gICAgICAgIG9yaWdpbkFuZERh
dGFiYXNlcy5vcmlnaW5RdW90YSA9IERhdGFiYXNlTWFuYWdlcjo6bWFuYWdlcigpLnF1b3RhRm9y
T3JpZ2luKG9yaWdpbnNbaV0uZ2V0KCkpOwotICAgICAgICBvcmlnaW5BbmREYXRhYmFzZXMub3Jp
Z2luVXNhZ2UgPSBEYXRhYmFzZU1hbmFnZXI6Om1hbmFnZXIoKS51c2FnZUZvck9yaWdpbihvcmln
aW5zW2ldLmdldCgpKTsKKyAgICAgICAgb3JpZ2luQW5kRGF0YWJhc2VzLm9yaWdpblF1b3RhID0g
ZGF0YWJhc2VNYW5hZ2VyLnF1b3RhRm9yT3JpZ2luKG9yaWdpbnNbaV0uZ2V0KCkpOworICAgICAg
ICBvcmlnaW5BbmREYXRhYmFzZXMub3JpZ2luVXNhZ2UgPSBkYXRhYmFzZU1hbmFnZXIudXNhZ2VG
b3JPcmlnaW4ob3JpZ2luc1tpXS5nZXQoKSk7CiAgICAgICAgIG9yaWdpbkFuZERhdGFiYXNlcy5k
YXRhYmFzZXMuc3dhcChkZXRhaWxzVmVjdG9yKTsgCiAgICAgICAgIG9yaWdpbkFuZERhdGFiYXNl
c1ZlY3Rvci5hcHBlbmQob3JpZ2luQW5kRGF0YWJhc2VzKTsKICAgICB9CkBAIC0xMDIsNyArMTA0
LDcgQEAgdm9pZCBXZWJEYXRhYmFzZU1hbmFnZXI6OmdldERhdGFiYXNlc0J5T3JpZ2luKHVpbnQ2
NF90IGNhbGxiYWNrSUQpIGNvbnN0CiB2b2lkIFdlYkRhdGFiYXNlTWFuYWdlcjo6Z2V0RGF0YWJh
c2VPcmlnaW5zKHVpbnQ2NF90IGNhbGxiYWNrSUQpIGNvbnN0CiB7CiAgICAgVmVjdG9yPFJlZlB0
cjxTZWN1cml0eU9yaWdpbj4+IG9yaWdpbnM7Ci0gICAgRGF0YWJhc2VNYW5hZ2VyOjptYW5hZ2Vy
KCkub3JpZ2lucyhvcmlnaW5zKTsKKyAgICBEYXRhYmFzZU1hbmFnZXI6OnNpbmdsZXRvbigpLm9y
aWdpbnMob3JpZ2lucyk7CiAKICAgICBzaXplX3QgbnVtT3JpZ2lucyA9IG9yaWdpbnMuc2l6ZSgp
OwogCkBAIC0xMTgsNyArMTIwLDcgQEAgdm9pZCBXZWJEYXRhYmFzZU1hbmFnZXI6OmRlbGV0ZURh
dGFiYXNlV2l0aE5hbWVGb3JPcmlnaW4oY29uc3QgU3RyaW5nJiBkYXRhYmFzZUkKICAgICBpZiAo
IW9yaWdpbikKICAgICAgICAgcmV0dXJuOwogCi0gICAgRGF0YWJhc2VNYW5hZ2VyOjptYW5hZ2Vy
KCkuZGVsZXRlRGF0YWJhc2Uob3JpZ2luLmdldCgpLCBkYXRhYmFzZUlkZW50aWZpZXIpOworICAg
IERhdGFiYXNlTWFuYWdlcjo6c2luZ2xldG9uKCkuZGVsZXRlRGF0YWJhc2Uob3JpZ2luLmdldCgp
LCBkYXRhYmFzZUlkZW50aWZpZXIpOwogfQogCiB2b2lkIFdlYkRhdGFiYXNlTWFuYWdlcjo6ZGVs
ZXRlRGF0YWJhc2VzRm9yT3JpZ2luKGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllcikgY29u
c3QKQEAgLTEyNywxMiArMTI5LDEyIEBAIHZvaWQgV2ViRGF0YWJhc2VNYW5hZ2VyOjpkZWxldGVE
YXRhYmFzZXNGb3JPcmlnaW4oY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyCiAgICAgaWYg
KCFvcmlnaW4pCiAgICAgICAgIHJldHVybjsKIAotICAgIERhdGFiYXNlTWFuYWdlcjo6bWFuYWdl
cigpLmRlbGV0ZU9yaWdpbihvcmlnaW4uZ2V0KCkpOworICAgIERhdGFiYXNlTWFuYWdlcjo6c2lu
Z2xldG9uKCkuZGVsZXRlT3JpZ2luKG9yaWdpbi5nZXQoKSk7CiB9CiAKIHZvaWQgV2ViRGF0YWJh
c2VNYW5hZ2VyOjpkZWxldGVBbGxEYXRhYmFzZXMoKSBjb25zdAogewotICAgIERhdGFiYXNlTWFu
YWdlcjo6bWFuYWdlcigpLmRlbGV0ZUFsbERhdGFiYXNlcygpOworICAgIERhdGFiYXNlTWFuYWdl
cjo6c2luZ2xldG9uKCkuZGVsZXRlQWxsRGF0YWJhc2VzKCk7CiB9CiAKIHZvaWQgV2ViRGF0YWJh
c2VNYW5hZ2VyOjpzZXRRdW90YUZvck9yaWdpbihjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZp
ZXIsIHVuc2lnbmVkIGxvbmcgbG9uZyBxdW90YSkgY29uc3QKQEAgLTE0NSw3ICsxNDcsNyBAQCB2
b2lkIFdlYkRhdGFiYXNlTWFuYWdlcjo6c2V0UXVvdGFGb3JPcmlnaW4oY29uc3QgU3RyaW5nJiBv
cmlnaW5JZGVudGlmaWVyLCB1bnNpZwogICAgIGlmICghb3JpZ2luKQogICAgICAgICByZXR1cm47
CiAKLSAgICBEYXRhYmFzZU1hbmFnZXI6Om1hbmFnZXIoKS5zZXRRdW90YShvcmlnaW4uZ2V0KCks
IHF1b3RhKTsKKyAgICBEYXRhYmFzZU1hbmFnZXI6OnNpbmdsZXRvbigpLnNldFF1b3RhKG9yaWdp
bi5nZXQoKSwgcXVvdGEpOwogfQogCiB2b2lkIFdlYkRhdGFiYXNlTWFuYWdlcjo6ZGlzcGF0Y2hE
aWRNb2RpZnlPcmlnaW4oU2VjdXJpdHlPcmlnaW4qIG9yaWdpbikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA4NzBlZDkyNGVlZjVhNGY5M2U1
OWI4NTA0Mjc0MzRmZTE3OGZlYTc5Li5kMWI4YjdkYjdlZDIwZGFkNzBmZDZhODViMjNhOTg1M2Ey
ODkwMDFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwCkBAIC0yNzE0LDcgKzI3MTQsNyBAQCB2b2lkIFdlYlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2Vz
KGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmIHN0b3JlKQogICAgIHNldHRpbmdzLnNldEludGVy
YWN0aXZlRm9ybVZhbGlkYXRpb25FbmFibGVkKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQ
cmVmZXJlbmNlc0tleTo6aW50ZXJhY3RpdmVGb3JtVmFsaWRhdGlvbkVuYWJsZWRLZXkoKSkpOwog
ICAgIHNldHRpbmdzLnNldFNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZChzdG9yZS5nZXRCb29sVmFs
dWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OnNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZEtleSgp
KSk7CiAKLSAgICBEYXRhYmFzZU1hbmFnZXI6Om1hbmFnZXIoKS5zZXRJc0F2YWlsYWJsZShzdG9y
ZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmRhdGFiYXNlc0VuYWJsZWRL
ZXkoKSkpOworICAgIERhdGFiYXNlTWFuYWdlcjo6c2luZ2xldG9uKCkuc2V0SXNBdmFpbGFibGUo
c3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpkYXRhYmFzZXNFbmFi
bGVkS2V5KCkpKTsKIAogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICBzZXR0aW5ncy5z
ZXRGdWxsU2NyZWVuRW5hYmxlZChzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5j
ZXNLZXk6OmZ1bGxTY3JlZW5FbmFibGVkS2V5KCkpKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>