<?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>30981</bug_id>
          
          <creation_ts>2009-10-31 13:59:36 -0700</creation_ts>
          <short_desc>WebGL allows objects to be used with the wrong context</short_desc>
          <delta_ts>2009-11-06 16:56:40 -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>WebGL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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="Oliver Hunt">oliver</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>cmarrin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>159576</commentid>
    <comment_count>0</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-10-31 13:59:36 -0700</bug_when>
    <thetext>There are currently no guards to prevent WebGL objects created by one context from (attempting) to be used with another.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159577</commentid>
    <comment_count>1</comment_count>
      <attachid>42259</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-10-31 14:04:11 -0700</bug_when>
    <thetext>Created attachment 42259
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159582</commentid>
    <comment_count>2</comment_count>
      <attachid>42259</attachid>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2009-10-31 15:00:20 -0700</bug_when>
    <thetext>Comment on attachment 42259
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159584</commentid>
    <comment_count>3</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-10-31 15:20:06 -0700</bug_when>
    <thetext>Committed r50381</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>160864</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2009-11-05 10:23:48 -0800</bug_when>
    <thetext>*** Bug 30280 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>42259</attachid>
            <date>2009-10-31 14:04:11 -0700</date>
            <delta_ts>2009-10-31 15:00:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-30981-20091031140409.patch</filename>
            <type>text/plain</type>
            <size>46908</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAxMjRiZWJjLi42M2U2NmIxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMDktMTAt
MzEgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWJHTCBhbGxvd3Mgb2JqZWN0cyB0byBiZSB1
c2VkIHdpdGggdGhlIHdyb25nIGNvbnRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTMwOTgxCisKKyAgICAgICAgQWRkIHRlc3RzIGZvciBudWxsL21p
c3Npbmcgb2JqZWN0IHBhcmFtZXRlcnMgYW5kIG9iamVjdHMgYmVpbmcgdXNlZAorICAgICAgICBv
biB0aGUgd3JvbmcgY29udGV4dC4KKworICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL2luY29y
cmVjdC1jb250ZXh0LW9iamVjdC1iZWhhdmlvdXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2NhbnZhcy93ZWJnbC9pbmNvcnJlY3QtY29udGV4dC1vYmplY3QtYmVoYXZpb3Vy
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL251bGwtb2JqZWN0LWJl
aGF2aW91ci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmds
L251bGwtb2JqZWN0LWJlaGF2aW91ci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2NhbnZh
cy93ZWJnbC9yZXNvdXJjZXMvc2hhZGVyLXRlc3QuanM6CisgICAgICAgIChsb2FkU3RhbmRhcmRQ
cm9ncmFtKToKKyAgICAgICAgKGxvYWRTdGFuZGFyZFZlcnRleFNoYWRlcik6CisgICAgICAgIChs
b2FkU3RhbmRhcmRGcmFnbWVudFNoYWRlcik6CisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wv
c2NyaXB0LXRlc3RzL2luY29ycmVjdC1jb250ZXh0LW9iamVjdC1iZWhhdmlvdXIuanM6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL3NjcmlwdC10ZXN0cy9udWxsLW9iamVjdC1i
ZWhhdmlvdXIuanM6IEFkZGVkLgorCiAyMDA5LTEwLTMwICBFbnJpY2EgQ2FzdWNjaSAgPGVucmlj
YUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9pbmNvcnJlY3QtY29udGV4dC1vYmpl
Y3QtYmVoYXZpb3VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmds
L2luY29ycmVjdC1jb250ZXh0LW9iamVjdC1iZWhhdmlvdXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJmYzczZTgKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9pbmNvcnJlY3QtY29udGV4dC1vYmplY3QtYmVo
YXZpb3VyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM1IEBACitUZXN0cyBjYWxsaW5nIFdlYkdM
IEFQSXMgd2l0aCBvYmplY3RzIGZyb20gb3RoZXIgY29udGV4dHMKKworT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgorCitQQVNTIGNvbnRleHRBLmNvbXBpbGVTaGFkZXIoc2hhZGVyQikgdGhyZXcg
ZXhjZXB0aW9uIEVycm9yOiBUWVBFX01JU01BVENIX0VSUjogRE9NIEV4Y2VwdGlvbiAxNy4KK1BB
U1MgY29udGV4dEEubGlua1Byb2dyYW0ocHJvZ3JhbUIpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjog
VFlQRV9NSVNNQVRDSF9FUlI6IERPTSBFeGNlcHRpb24gMTcuCitQQVNTIGNvbnRleHRBLmF0dGFj
aFNoYWRlcihwcm9ncmFtQSwgc2hhZGVyQikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBUWVBFX01J
U01BVENIX0VSUjogRE9NIEV4Y2VwdGlvbiAxNy4KK1BBU1MgY29udGV4dEEuYXR0YWNoU2hhZGVy
KHByb2dyYW1CLCBzaGFkZXJBKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IFRZUEVfTUlTTUFUQ0hf
RVJSOiBET00gRXhjZXB0aW9uIDE3LgorUEFTUyBjb250ZXh0QS5hdHRhY2hTaGFkZXIocHJvZ3Jh
bUIsIHNoYWRlckIpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogVFlQRV9NSVNNQVRDSF9FUlI6IERP
TSBFeGNlcHRpb24gMTcuCitQQVNTIGNvbnRleHRBLmRldGFjaFNoYWRlcihwcm9ncmFtQSwgc2hh
ZGVyQikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBUWVBFX01JU01BVENIX0VSUjogRE9NIEV4Y2Vw
dGlvbiAxNy4KK1BBU1MgY29udGV4dEEuZGV0YWNoU2hhZGVyKHByb2dyYW1CLCBzaGFkZXJBKSB0
aHJldyBleGNlcHRpb24gRXJyb3I6IFRZUEVfTUlTTUFUQ0hfRVJSOiBET00gRXhjZXB0aW9uIDE3
LgorUEFTUyBjb250ZXh0QS5kZXRhY2hTaGFkZXIocHJvZ3JhbUIsIHNoYWRlckIpIHRocmV3IGV4
Y2VwdGlvbiBFcnJvcjogVFlQRV9NSVNNQVRDSF9FUlI6IERPTSBFeGNlcHRpb24gMTcuCitQQVNT
IGNvbnRleHRBLnNoYWRlclNvdXJjZShzaGFkZXJCLCAnZm9vJykgdGhyZXcgZXhjZXB0aW9uIEVy
cm9yOiBUWVBFX01JU01BVENIX0VSUjogRE9NIEV4Y2VwdGlvbiAxNy4KK1BBU1MgY29udGV4dEEu
YmluZEF0dHJpYkxvY2F0aW9uKHByb2dyYW1CLCAwLCAnZm9vJykgdGhyZXcgZXhjZXB0aW9uIEVy
cm9yOiBUWVBFX01JU01BVENIX0VSUjogRE9NIEV4Y2VwdGlvbiAxNy4KK1BBU1MgY29udGV4dEEu
YmluZEZyYW1lYnVmZmVyKDAsIGZyYW1lQnVmZmVyQikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBU
WVBFX01JU01BVENIX0VSUjogRE9NIEV4Y2VwdGlvbiAxNy4KK1BBU1MgY29udGV4dEEuYmluZFJl
bmRlcmJ1ZmZlcigwLCByZW5kZXJCdWZmZXJCKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IFRZUEVf
TUlTTUFUQ0hfRVJSOiBET00gRXhjZXB0aW9uIDE3LgorUEFTUyBjb250ZXh0QS5iaW5kVGV4dHVy
ZSh0ZXh0dXJlQikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBUWVBFX01JU01BVENIX0VSUjogRE9N
IEV4Y2VwdGlvbiAxNy4KK1BBU1MgY29udGV4dEEuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoMCwg
MCwgcmVuZGVyQnVmZmVyQikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBUWVBFX01JU01BVENIX0VS
UjogRE9NIEV4Y2VwdGlvbiAxNy4KK1BBU1MgY29udGV4dEEuZnJhbWVidWZmZXJUZXh0dXJlMkQo
MCwgMCwgdGV4dHVyZUIpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogVFlQRV9NSVNNQVRDSF9FUlI6
IERPTSBFeGNlcHRpb24gMTcuCitQQVNTIGNvbnRleHRBLmdldFByb2dyYW1pKHByb2dyYW1CLCAw
KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IFRZUEVfTUlTTUFUQ0hfRVJSOiBET00gRXhjZXB0aW9u
IDE3LgorUEFTUyBjb250ZXh0QS5nZXRQcm9ncmFtaXYocHJvZ3JhbUIsIDApIHRocmV3IGV4Y2Vw
dGlvbiBFcnJvcjogVFlQRV9NSVNNQVRDSF9FUlI6IERPTSBFeGNlcHRpb24gMTcuCitQQVNTIGNv
bnRleHRBLmdldFByb2dyYW1JbmZvTG9nKHByb2dyYW1CLCAwKSB0aHJldyBleGNlcHRpb24gRXJy
b3I6IFRZUEVfTUlTTUFUQ0hfRVJSOiBET00gRXhjZXB0aW9uIDE3LgorUEFTUyBjb250ZXh0QS5n
ZXRTaGFkZXJpKHNoYWRlckIsIDApIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogVFlQRV9NSVNNQVRD
SF9FUlI6IERPTSBFeGNlcHRpb24gMTcuCitQQVNTIGNvbnRleHRBLmdldFNoYWRlcml2KHNoYWRl
ckIsIDApIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogVFlQRV9NSVNNQVRDSF9FUlI6IERPTSBFeGNl
cHRpb24gMTcuCitQQVNTIGNvbnRleHRBLmdldFNoYWRlckluZm9Mb2coc2hhZGVyQiwgMCkgdGhy
ZXcgZXhjZXB0aW9uIEVycm9yOiBUWVBFX01JU01BVENIX0VSUjogRE9NIEV4Y2VwdGlvbiAxNy4K
K1BBU1MgY29udGV4dEEuZ2V0U2hhZGVyU291cmNlKHNoYWRlckIpIHRocmV3IGV4Y2VwdGlvbiBF
cnJvcjogVFlQRV9NSVNNQVRDSF9FUlI6IERPTSBFeGNlcHRpb24gMTcuCitQQVNTIGNvbnRleHRB
LmdldFVuaWZvcm1mKHByb2dyYW1CLCBsb2NhdGlvbkEpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjog
VFlQRV9NSVNNQVRDSF9FUlI6IERPTSBFeGNlcHRpb24gMTcuCitQQVNTIGNvbnRleHRBLmdldFVu
aWZvcm1mdihwcm9ncmFtQiwgbG9jYXRpb25BKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IFRZUEVf
TUlTTUFUQ0hfRVJSOiBET00gRXhjZXB0aW9uIDE3LgorUEFTUyBjb250ZXh0QS5nZXRVbmlmb3Jt
aShwcm9ncmFtQiwgbG9jYXRpb25BKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IFRZUEVfTUlTTUFU
Q0hfRVJSOiBET00gRXhjZXB0aW9uIDE3LgorUEFTUyBjb250ZXh0QS5nZXRVbmlmb3JtaXYocHJv
Z3JhbUIsIGxvY2F0aW9uQSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBUWVBFX01JU01BVENIX0VS
UjogRE9NIEV4Y2VwdGlvbiAxNy4KK1BBU1MgY29udGV4dEEuZ2V0VW5pZm9ybUxvY2F0aW9uKHBy
b2dyYW1CLCAndV9tb2RlbFZpZXdQcm9qTWF0cml4JykgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBU
WVBFX01JU01BVENIX0VSUjogRE9NIEV4Y2VwdGlvbiAxNy4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2NhbnZhcy93ZWJnbC9pbmNvcnJlY3QtY29udGV4dC1vYmplY3QtYmVoYXZpb3VyLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9pbmNvcnJlY3QtY29udGV4dC1vYmplY3Qt
YmVoYXZpb3VyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjM3Njg0
ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2luY29y
cmVjdC1jb250ZXh0LW9iamVjdC1iZWhhdmlvdXIuaHRtbApAQCAtMCwwICsxLDE1IEBACis8aHRt
bD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFkZXIt
dGVzdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9u
Ij48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0IHNyYz0ic2NyaXB0
LXRlc3RzL2luY29ycmVjdC1jb250ZXh0LW9iamVjdC1iZWhhdmlvdXIuanMiPjwvc2NyaXB0Pgor
Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZh
cy93ZWJnbC9udWxsLW9iamVjdC1iZWhhdmlvdXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9jYW52YXMvd2ViZ2wvbnVsbC1vYmplY3QtYmVoYXZpb3VyLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMWY4Mjk4Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvbnVsbC1vYmplY3QtYmVoYXZpb3VyLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDM2IEBACitUZXN0cyBjYWxsaW5nIFdlYkdMIEFQSXMgd2l0
aG91dCBwcm92aWRpbmcgdGhlIG5lY2Vzc2FyeSBvYmplY3RzCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworUEFTUyBjb250ZXh0LmNvbXBpbGVTaGFkZXIoKSB0aHJldyBleGNlcHRpb24g
RXJyb3I6IFRZUEVfTUlTTUFUQ0hfRVJSOiBET00gRXhjZXB0aW9uIDE3LgorUEFTUyBjb250ZXh0
LmxpbmtQcm9ncmFtKCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBUWVBFX01JU01BVENIX0VSUjog
RE9NIEV4Y2VwdGlvbiAxNy4KK1BBU1MgY29udGV4dC5hdHRhY2hTaGFkZXIoKSB0aHJldyBleGNl
cHRpb24gRXJyb3I6IFRZUEVfTUlTTUFUQ0hfRVJSOiBET00gRXhjZXB0aW9uIDE3LgorUEFTUyBj
b250ZXh0LmF0dGFjaFNoYWRlcihwcm9ncmFtLCB1bmRlZmluZWQpIHRocmV3IGV4Y2VwdGlvbiBF
cnJvcjogVFlQRV9NSVNNQVRDSF9FUlI6IERPTSBFeGNlcHRpb24gMTcuCitQQVNTIGNvbnRleHQu
YXR0YWNoU2hhZGVyKHVuZGVmaW5lZCwgc2hhZGVyKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IFRZ
UEVfTUlTTUFUQ0hfRVJSOiBET00gRXhjZXB0aW9uIDE3LgorUEFTUyBjb250ZXh0LmRldGFjaFNo
YWRlcihwcm9ncmFtLCB1bmRlZmluZWQpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogVFlQRV9NSVNN
QVRDSF9FUlI6IERPTSBFeGNlcHRpb24gMTcuCitQQVNTIGNvbnRleHQuZGV0YWNoU2hhZGVyKHVu
ZGVmaW5lZCwgc2hhZGVyKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IFRZUEVfTUlTTUFUQ0hfRVJS
OiBET00gRXhjZXB0aW9uIDE3LgorUEFTUyBjb250ZXh0LnNoYWRlclNvdXJjZSgpIHRocmV3IGV4
Y2VwdGlvbiBFcnJvcjogVFlQRV9NSVNNQVRDSF9FUlI6IERPTSBFeGNlcHRpb24gMTcuCitQQVNT
IGNvbnRleHQuc2hhZGVyU291cmNlKHVuZGVmaW5lZCwgJ2ZvbycpIHRocmV3IGV4Y2VwdGlvbiBF
cnJvcjogVFlQRV9NSVNNQVRDSF9FUlI6IERPTSBFeGNlcHRpb24gMTcuCitQQVNTIGNvbnRleHQu
YmluZEF0dHJpYkxvY2F0aW9uKHVuZGVmaW5lZCwgMCwgJ2ZvbycpIHRocmV3IGV4Y2VwdGlvbiBF
cnJvcjogVFlQRV9NSVNNQVRDSF9FUlI6IERPTSBFeGNlcHRpb24gMTcuCitQQVNTIGNvbnRleHQu
YmluZEJ1ZmZlcigwKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IFRZUEVfTUlTTUFUQ0hfRVJSOiBE
T00gRXhjZXB0aW9uIDE3LgorUEFTUyBjb250ZXh0LmJpbmRGcmFtZWJ1ZmZlcigwKSB0aHJldyBl
eGNlcHRpb24gRXJyb3I6IFRZUEVfTUlTTUFUQ0hfRVJSOiBET00gRXhjZXB0aW9uIDE3LgorUEFT
UyBjb250ZXh0LmJpbmRSZW5kZXJidWZmZXIoMCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBUWVBF
X01JU01BVENIX0VSUjogRE9NIEV4Y2VwdGlvbiAxNy4KK1BBU1MgY29udGV4dC5iaW5kVGV4dHVy
ZSgwKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IFRZUEVfTUlTTUFUQ0hfRVJSOiBET00gRXhjZXB0
aW9uIDE3LgorUEFTUyBjb250ZXh0LmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKDAsIDAsIDApIHRo
cmV3IGV4Y2VwdGlvbiBFcnJvcjogVFlQRV9NSVNNQVRDSF9FUlI6IERPTSBFeGNlcHRpb24gMTcu
CitQQVNTIGNvbnRleHQuZnJhbWVidWZmZXJUZXh0dXJlMkQoMCwgMCwgMCkgdGhyZXcgZXhjZXB0
aW9uIEVycm9yOiBUWVBFX01JU01BVENIX0VSUjogRE9NIEV4Y2VwdGlvbiAxNy4KK1BBU1MgY29u
dGV4dC5nZXRQcm9ncmFtaSh1bmRlZmluZWQsIDApIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogVFlQ
RV9NSVNNQVRDSF9FUlI6IERPTSBFeGNlcHRpb24gMTcuCitQQVNTIGNvbnRleHQuZ2V0UHJvZ3Jh
bWl2KHVuZGVmaW5lZCwgMCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBUWVBFX01JU01BVENIX0VS
UjogRE9NIEV4Y2VwdGlvbiAxNy4KK1BBU1MgY29udGV4dC5nZXRQcm9ncmFtSW5mb0xvZyh1bmRl
ZmluZWQsIDApIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogVFlQRV9NSVNNQVRDSF9FUlI6IERPTSBF
eGNlcHRpb24gMTcuCitQQVNTIGNvbnRleHQuZ2V0U2hhZGVyaSh1bmRlZmluZWQsIDApIHRocmV3
IGV4Y2VwdGlvbiBFcnJvcjogVFlQRV9NSVNNQVRDSF9FUlI6IERPTSBFeGNlcHRpb24gMTcuCitQ
QVNTIGNvbnRleHQuZ2V0U2hhZGVyaXYodW5kZWZpbmVkLCAwKSB0aHJldyBleGNlcHRpb24gRXJy
b3I6IFRZUEVfTUlTTUFUQ0hfRVJSOiBET00gRXhjZXB0aW9uIDE3LgorUEFTUyBjb250ZXh0Lmdl
dFNoYWRlckluZm9Mb2codW5kZWZpbmVkLCAwKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IFRZUEVf
TUlTTUFUQ0hfRVJSOiBET00gRXhjZXB0aW9uIDE3LgorUEFTUyBjb250ZXh0LmdldFNoYWRlclNv
dXJjZSh1bmRlZmluZWQpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogVFlQRV9NSVNNQVRDSF9FUlI6
IERPTSBFeGNlcHRpb24gMTcuCitQQVNTIGNvbnRleHQuZ2V0VW5pZm9ybWYodW5kZWZpbmVkLCAw
KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IFRZUEVfTUlTTUFUQ0hfRVJSOiBET00gRXhjZXB0aW9u
IDE3LgorUEFTUyBjb250ZXh0LmdldFVuaWZvcm1mdih1bmRlZmluZWQsIDApIHRocmV3IGV4Y2Vw
dGlvbiBFcnJvcjogVFlQRV9NSVNNQVRDSF9FUlI6IERPTSBFeGNlcHRpb24gMTcuCitQQVNTIGNv
bnRleHQuZ2V0VW5pZm9ybWkodW5kZWZpbmVkLCAwKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IFRZ
UEVfTUlTTUFUQ0hfRVJSOiBET00gRXhjZXB0aW9uIDE3LgorUEFTUyBjb250ZXh0LmdldFVuaWZv
cm1pdih1bmRlZmluZWQsIDApIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogVFlQRV9NSVNNQVRDSF9F
UlI6IERPTSBFeGNlcHRpb24gMTcuCitQQVNTIGNvbnRleHQuZ2V0VW5pZm9ybUxvY2F0aW9uKHVu
ZGVmaW5lZCwgJ2ZvbycpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogVFlQRV9NSVNNQVRDSF9FUlI6
IERPTSBFeGNlcHRpb24gMTcuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wv
bnVsbC1vYmplY3QtYmVoYXZpb3VyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJn
bC9udWxsLW9iamVjdC1iZWhhdmlvdXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5iMDc2YzVmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52
YXMvd2ViZ2wvbnVsbC1vYmplY3QtYmVoYXZpb3VyLmh0bWwKQEAgLTAsMCArMSwxNSBAQAorPGh0
bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vanMvcmVzb3Vy
Y2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhZGVy
LXRlc3QuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJkZXNjcmlwdGlv
biI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlwdCBzcmM9InNjcmlw
dC10ZXN0cy9udWxsLW9iamVjdC1iZWhhdmlvdXIuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0IHNy
Yz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9yZXNv
dXJjZXMvc2hhZGVyLXRlc3QuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9yZXNv
dXJjZXMvc2hhZGVyLXRlc3QuanMKaW5kZXggM2MwYTJjNS4uNWRmNmE1MCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvcmVzb3VyY2VzL3NoYWRlci10ZXN0LmpzCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL3Jlc291cmNlcy9zaGFkZXItdGVzdC5q
cwpAQCAtMTUsMTQgKzE1LDIyIEBAIGZ1bmN0aW9uIGNyZWF0ZTNEQ29udGV4dCgpIHsKIAogZnVu
Y3Rpb24gbG9hZFN0YW5kYXJkUHJvZ3JhbShjb250ZXh0KSB7CiAgICAgdmFyIHByb2dyYW0gPSBj
b250ZXh0LmNyZWF0ZVByb2dyYW0oKTsKKyAgICBjb250ZXh0LmF0dGFjaFNoYWRlcihwcm9ncmFt
LCBsb2FkU3RhbmRhcmRWZXJ0ZXhTaGFkZXIoY29udGV4dCkpOworICAgIGNvbnRleHQuYXR0YWNo
U2hhZGVyKHByb2dyYW0sIGxvYWRTdGFuZGFyZEZyYWdtZW50U2hhZGVyKGNvbnRleHQpKTsKKyAg
ICBjb250ZXh0LmxpbmtQcm9ncmFtKHByb2dyYW0pOworICAgIHJldHVybiBwcm9ncmFtOworfQor
CitmdW5jdGlvbiBsb2FkU3RhbmRhcmRWZXJ0ZXhTaGFkZXIoY29udGV4dCkgewogICAgIHZhciB2
ZXJ0ZXhTaGFkZXIgPSBjb250ZXh0LmNyZWF0ZVNoYWRlcihjb250ZXh0LlZFUlRFWF9TSEFERVIp
OwogICAgIGNvbnRleHQuc2hhZGVyU291cmNlKHZlcnRleFNoYWRlciwgZ2V0U2hhZGVyU291cmNl
KCJyZXNvdXJjZXMvdmVydGV4U2hhZGVyLnZlcnQiKSk7CiAgICAgY29udGV4dC5jb21waWxlU2hh
ZGVyKHZlcnRleFNoYWRlcik7CisgICAgcmV0dXJuIHZlcnRleFNoYWRlcjsKK30KKworZnVuY3Rp
b24gbG9hZFN0YW5kYXJkRnJhZ21lbnRTaGFkZXIoY29udGV4dCkgewogICAgIHZhciBmcmFnbWVu
dFNoYWRlciA9IGNvbnRleHQuY3JlYXRlU2hhZGVyKGNvbnRleHQuRlJBR01FTlRfU0hBREVSKTsK
ICAgICBjb250ZXh0LnNoYWRlclNvdXJjZShmcmFnbWVudFNoYWRlciwgZ2V0U2hhZGVyU291cmNl
KCJyZXNvdXJjZXMvZnJhZ21lbnRTaGFkZXIuZnJhZyIpKTsKICAgICBjb250ZXh0LmNvbXBpbGVT
aGFkZXIoZnJhZ21lbnRTaGFkZXIpOwotICAgIGNvbnRleHQuYXR0YWNoU2hhZGVyKHByb2dyYW0s
IHZlcnRleFNoYWRlcik7Ci0gICAgY29udGV4dC5hdHRhY2hTaGFkZXIocHJvZ3JhbSwgZnJhZ21l
bnRTaGFkZXIpOwotICAgIGNvbnRleHQubGlua1Byb2dyYW0ocHJvZ3JhbSk7Ci0gICAgcmV0dXJu
IHByb2dyYW07CisgICAgcmV0dXJuIGZyYWdtZW50U2hhZGVyOwogfQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvc2NyaXB0LXRlc3RzL2luY29ycmVjdC1jb250ZXh0
LW9iamVjdC1iZWhhdmlvdXIuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9zY3Jp
cHQtdGVzdHMvaW5jb3JyZWN0LWNvbnRleHQtb2JqZWN0LWJlaGF2aW91ci5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNjk5YzdkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvc2NyaXB0LXRlc3RzL2luY29ycmVjdC1jb250ZXh0
LW9iamVjdC1iZWhhdmlvdXIuanMKQEAgLTAsMCArMSw0NyBAQAorZGVzY3JpcHRpb24oIlRlc3Rz
IGNhbGxpbmcgV2ViR0wgQVBJcyB3aXRoIG9iamVjdHMgZnJvbSBvdGhlciBjb250ZXh0cyIpOwor
Cit2YXIgY29udGV4dEEgPSBjcmVhdGUzRENvbnRleHQoKTsKK3ZhciBjb250ZXh0QiA9IGNyZWF0
ZTNEQ29udGV4dCgpOwordmFyIHByb2dyYW1BID0gbG9hZFN0YW5kYXJkUHJvZ3JhbShjb250ZXh0
QSk7Cit2YXIgcHJvZ3JhbUIgPSBsb2FkU3RhbmRhcmRQcm9ncmFtKGNvbnRleHRCKTsKK3ZhciBz
aGFkZXJBID0gbG9hZFN0YW5kYXJkVmVydGV4U2hhZGVyKGNvbnRleHRBKTsKK3ZhciBzaGFkZXJC
ID0gbG9hZFN0YW5kYXJkVmVydGV4U2hhZGVyKGNvbnRleHRCKTsKK3ZhciB0ZXh0dXJlQSA9IGNv
bnRleHRBLmNyZWF0ZVRleHR1cmUoKTsKK3ZhciB0ZXh0dXJlQiA9IGNvbnRleHRCLmNyZWF0ZVRl
eHR1cmUoKTsKK3ZhciBmcmFtZUJ1ZmZlckEgPSBjb250ZXh0QS5jcmVhdGVGcmFtZWJ1ZmZlcigp
OwordmFyIGZyYW1lQnVmZmVyQiA9IGNvbnRleHRCLmNyZWF0ZUZyYW1lYnVmZmVyKCk7Cit2YXIg
cmVuZGVyQnVmZmVyQSA9IGNvbnRleHRBLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpOwordmFyIHJlbmRl
ckJ1ZmZlckIgPSBjb250ZXh0Qi5jcmVhdGVSZW5kZXJidWZmZXIoKTsKK3ZhciBsb2NhdGlvbkEg
PSBjb250ZXh0QS5nZXRVbmlmb3JtTG9jYXRpb24ocHJvZ3JhbUEsICd1X21vZGVsVmlld1Byb2pN
YXRyaXgnKTsKK3ZhciBsb2NhdGlvbkIgPSBjb250ZXh0Qi5nZXRVbmlmb3JtTG9jYXRpb24ocHJv
Z3JhbUIsICd1X21vZGVsVmlld1Byb2pNYXRyaXgnKTsKKworCitzaG91bGRUaHJvdygiY29udGV4
dEEuY29tcGlsZVNoYWRlcihzaGFkZXJCKSIpOworc2hvdWxkVGhyb3coImNvbnRleHRBLmxpbmtQ
cm9ncmFtKHByb2dyYW1CKSIpOworc2hvdWxkVGhyb3coImNvbnRleHRBLmF0dGFjaFNoYWRlcihw
cm9ncmFtQSwgc2hhZGVyQikiKTsKK3Nob3VsZFRocm93KCJjb250ZXh0QS5hdHRhY2hTaGFkZXIo
cHJvZ3JhbUIsIHNoYWRlckEpIik7CitzaG91bGRUaHJvdygiY29udGV4dEEuYXR0YWNoU2hhZGVy
KHByb2dyYW1CLCBzaGFkZXJCKSIpOworc2hvdWxkVGhyb3coImNvbnRleHRBLmRldGFjaFNoYWRl
cihwcm9ncmFtQSwgc2hhZGVyQikiKTsKK3Nob3VsZFRocm93KCJjb250ZXh0QS5kZXRhY2hTaGFk
ZXIocHJvZ3JhbUIsIHNoYWRlckEpIik7CitzaG91bGRUaHJvdygiY29udGV4dEEuZGV0YWNoU2hh
ZGVyKHByb2dyYW1CLCBzaGFkZXJCKSIpOworc2hvdWxkVGhyb3coImNvbnRleHRBLnNoYWRlclNv
dXJjZShzaGFkZXJCLCAnZm9vJykiKTsKK3Nob3VsZFRocm93KCJjb250ZXh0QS5iaW5kQXR0cmli
TG9jYXRpb24ocHJvZ3JhbUIsIDAsICdmb28nKSIpOworc2hvdWxkVGhyb3coImNvbnRleHRBLmJp
bmRGcmFtZWJ1ZmZlcigwLCBmcmFtZUJ1ZmZlckIpIik7CitzaG91bGRUaHJvdygiY29udGV4dEEu
YmluZFJlbmRlcmJ1ZmZlcigwLCByZW5kZXJCdWZmZXJCKSIpOworc2hvdWxkVGhyb3coImNvbnRl
eHRBLmJpbmRUZXh0dXJlKHRleHR1cmVCKSIpOworc2hvdWxkVGhyb3coImNvbnRleHRBLmZyYW1l
YnVmZmVyUmVuZGVyYnVmZmVyKDAsIDAsIHJlbmRlckJ1ZmZlckIpIik7CitzaG91bGRUaHJvdygi
Y29udGV4dEEuZnJhbWVidWZmZXJUZXh0dXJlMkQoMCwgMCwgdGV4dHVyZUIpIik7CitzaG91bGRU
aHJvdygiY29udGV4dEEuZ2V0UHJvZ3JhbWkocHJvZ3JhbUIsIDApIik7CitzaG91bGRUaHJvdygi
Y29udGV4dEEuZ2V0UHJvZ3JhbWl2KHByb2dyYW1CLCAwKSIpOworc2hvdWxkVGhyb3coImNvbnRl
eHRBLmdldFByb2dyYW1JbmZvTG9nKHByb2dyYW1CLCAwKSIpOworc2hvdWxkVGhyb3coImNvbnRl
eHRBLmdldFNoYWRlcmkoc2hhZGVyQiwgMCkiKTsKK3Nob3VsZFRocm93KCJjb250ZXh0QS5nZXRT
aGFkZXJpdihzaGFkZXJCLCAwKSIpOworc2hvdWxkVGhyb3coImNvbnRleHRBLmdldFNoYWRlcklu
Zm9Mb2coc2hhZGVyQiwgMCkiKTsKK3Nob3VsZFRocm93KCJjb250ZXh0QS5nZXRTaGFkZXJTb3Vy
Y2Uoc2hhZGVyQikiKTsKK3Nob3VsZFRocm93KCJjb250ZXh0QS5nZXRVbmlmb3JtZihwcm9ncmFt
QiwgbG9jYXRpb25BKSIpOworc2hvdWxkVGhyb3coImNvbnRleHRBLmdldFVuaWZvcm1mdihwcm9n
cmFtQiwgbG9jYXRpb25BKSIpOworc2hvdWxkVGhyb3coImNvbnRleHRBLmdldFVuaWZvcm1pKHBy
b2dyYW1CLCBsb2NhdGlvbkEpIik7CitzaG91bGRUaHJvdygiY29udGV4dEEuZ2V0VW5pZm9ybWl2
KHByb2dyYW1CLCBsb2NhdGlvbkEpIik7CitzaG91bGRUaHJvdygiY29udGV4dEEuZ2V0VW5pZm9y
bUxvY2F0aW9uKHByb2dyYW1CLCAndV9tb2RlbFZpZXdQcm9qTWF0cml4JykiKTsKKworc3VjY2Vz
c2Z1bGx5UGFyc2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFz
L3dlYmdsL3NjcmlwdC10ZXN0cy9udWxsLW9iamVjdC1iZWhhdmlvdXIuanMgYi9MYXlvdXRUZXN0
cy9mYXN0L2NhbnZhcy93ZWJnbC9zY3JpcHQtdGVzdHMvbnVsbC1vYmplY3QtYmVoYXZpb3VyLmpz
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU0NjNkMGUKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9zY3JpcHQtdGVzdHMvbnVsbC1v
YmplY3QtYmVoYXZpb3VyLmpzCkBAIC0wLDAgKzEsMzYgQEAKK2Rlc2NyaXB0aW9uKCJUZXN0cyBj
YWxsaW5nIFdlYkdMIEFQSXMgd2l0aG91dCBwcm92aWRpbmcgdGhlIG5lY2Vzc2FyeSBvYmplY3Rz
Iik7CisKK3ZhciBjb250ZXh0ID0gY3JlYXRlM0RDb250ZXh0KCk7Cit2YXIgcHJvZ3JhbSA9IGxv
YWRTdGFuZGFyZFByb2dyYW0oY29udGV4dCk7Cit2YXIgc2hhZGVyID0gbG9hZFN0YW5kYXJkVmVy
dGV4U2hhZGVyKGNvbnRleHQpOworCitzaG91bGRUaHJvdygiY29udGV4dC5jb21waWxlU2hhZGVy
KCkiKTsKK3Nob3VsZFRocm93KCJjb250ZXh0LmxpbmtQcm9ncmFtKCkiKTsKK3Nob3VsZFRocm93
KCJjb250ZXh0LmF0dGFjaFNoYWRlcigpIik7CitzaG91bGRUaHJvdygiY29udGV4dC5hdHRhY2hT
aGFkZXIocHJvZ3JhbSwgdW5kZWZpbmVkKSIpOworc2hvdWxkVGhyb3coImNvbnRleHQuYXR0YWNo
U2hhZGVyKHVuZGVmaW5lZCwgc2hhZGVyKSIpOworc2hvdWxkVGhyb3coImNvbnRleHQuZGV0YWNo
U2hhZGVyKHByb2dyYW0sIHVuZGVmaW5lZCkiKTsKK3Nob3VsZFRocm93KCJjb250ZXh0LmRldGFj
aFNoYWRlcih1bmRlZmluZWQsIHNoYWRlcikiKTsKK3Nob3VsZFRocm93KCJjb250ZXh0LnNoYWRl
clNvdXJjZSgpIik7CitzaG91bGRUaHJvdygiY29udGV4dC5zaGFkZXJTb3VyY2UodW5kZWZpbmVk
LCAnZm9vJykiKTsKK3Nob3VsZFRocm93KCJjb250ZXh0LmJpbmRBdHRyaWJMb2NhdGlvbih1bmRl
ZmluZWQsIDAsICdmb28nKSIpOworc2hvdWxkVGhyb3coImNvbnRleHQuYmluZEJ1ZmZlcigwKSIp
Oworc2hvdWxkVGhyb3coImNvbnRleHQuYmluZEZyYW1lYnVmZmVyKDApIik7CitzaG91bGRUaHJv
dygiY29udGV4dC5iaW5kUmVuZGVyYnVmZmVyKDApIik7CitzaG91bGRUaHJvdygiY29udGV4dC5i
aW5kVGV4dHVyZSgwKSIpOworc2hvdWxkVGhyb3coImNvbnRleHQuZnJhbWVidWZmZXJSZW5kZXJi
dWZmZXIoMCwgMCwgMCkiKTsKK3Nob3VsZFRocm93KCJjb250ZXh0LmZyYW1lYnVmZmVyVGV4dHVy
ZTJEKDAsIDAsIDApIik7CitzaG91bGRUaHJvdygiY29udGV4dC5nZXRQcm9ncmFtaSh1bmRlZmlu
ZWQsIDApIik7CitzaG91bGRUaHJvdygiY29udGV4dC5nZXRQcm9ncmFtaXYodW5kZWZpbmVkLCAw
KSIpOworc2hvdWxkVGhyb3coImNvbnRleHQuZ2V0UHJvZ3JhbUluZm9Mb2codW5kZWZpbmVkLCAw
KSIpOworc2hvdWxkVGhyb3coImNvbnRleHQuZ2V0U2hhZGVyaSh1bmRlZmluZWQsIDApIik7Citz
aG91bGRUaHJvdygiY29udGV4dC5nZXRTaGFkZXJpdih1bmRlZmluZWQsIDApIik7CitzaG91bGRU
aHJvdygiY29udGV4dC5nZXRTaGFkZXJJbmZvTG9nKHVuZGVmaW5lZCwgMCkiKTsKK3Nob3VsZFRo
cm93KCJjb250ZXh0LmdldFNoYWRlclNvdXJjZSh1bmRlZmluZWQpIik7CitzaG91bGRUaHJvdygi
Y29udGV4dC5nZXRVbmlmb3JtZih1bmRlZmluZWQsIDApIik7CitzaG91bGRUaHJvdygiY29udGV4
dC5nZXRVbmlmb3JtZnYodW5kZWZpbmVkLCAwKSIpOworc2hvdWxkVGhyb3coImNvbnRleHQuZ2V0
VW5pZm9ybWkodW5kZWZpbmVkLCAwKSIpOworc2hvdWxkVGhyb3coImNvbnRleHQuZ2V0VW5pZm9y
bWl2KHVuZGVmaW5lZCwgMCkiKTsKK3Nob3VsZFRocm93KCJjb250ZXh0LmdldFVuaWZvcm1Mb2Nh
dGlvbih1bmRlZmluZWQsICdmb28nKSIpOworCitzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBj
NDBmYjZiLi45MWYyZTU2IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDA5LTEwLTMxICBPbGl2ZXIgSHVudCAg
PG9saXZlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgV2ViR0wgYWxsb3dzIG9iamVjdHMgdG8gYmUgdXNlZCB3aXRoIHRoZSB3cm9u
ZyBjb250ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0zMDk4MQorCisgICAgICAgIFNpbXBseSBhZGQgbnVsbCBjaGVja3MgYW5kIGEgZmV3IGNvbnRl
eHQgZ3VhcmRzIHRvIGVuc3VyZSB3ZSBkb24ndAorICAgICAgICBkZXJlZiBudWxsIG9yIGF0dGVt
cHQgdG8gdXNlIGFuIG9iamVjdCBmcm9tIGEgZGlmZmVyZW50IGNvbnRleHQuCisKKyAgICAgICAg
VGVzdHM6IGZhc3QvY2FudmFzL3dlYmdsL2luY29ycmVjdC1jb250ZXh0LW9iamVjdC1iZWhhdmlv
dXIuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9jYW52YXMvd2ViZ2wvbnVsbC1vYmplY3QtYmVo
YXZpb3VyLmh0bWwKKworICAgICAgICAqIGh0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRl
eHQzRC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0M0Q6OmF0
dGFjaFNoYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0M0Q6
OmJpbmRBdHRyaWJMb2NhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdD
b250ZXh0M0Q6OmJpbmRCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5n
Q29udGV4dDNEOjpiaW5kRnJhbWVidWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVu
ZGVyaW5nQ29udGV4dDNEOjpiaW5kUmVuZGVyYnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNh
bnZhc1JlbmRlcmluZ0NvbnRleHQzRDo6YmluZFRleHR1cmUpOgorICAgICAgICAoV2ViQ29yZTo6
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDNEOjpjb21waWxlU2hhZGVyKToKKyAgICAgICAgKFdlYkNv
cmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQzRDo6ZGV0YWNoU2hhZGVyKToKKyAgICAgICAgKFdl
YkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQzRDo6ZnJhbWVidWZmZXJSZW5kZXJidWZmZXIp
OgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5nQ29udGV4dDNEOjpmcmFtZWJ1ZmZl
clRleHR1cmUyRCk6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0M0Q6
OmdldFByb2dyYW1pKToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQz
RDo6Z2V0UHJvZ3JhbWl2KToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRl
eHQzRDo6Z2V0UHJvZ3JhbUluZm9Mb2cpOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVy
aW5nQ29udGV4dDNEOjpnZXRTaGFkZXJpKToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRl
cmluZ0NvbnRleHQzRDo6Z2V0U2hhZGVyaXYpOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVu
ZGVyaW5nQ29udGV4dDNEOjpnZXRTaGFkZXJJbmZvTG9nKToKKyAgICAgICAgKFdlYkNvcmU6OkNh
bnZhc1JlbmRlcmluZ0NvbnRleHQzRDo6Z2V0U2hhZGVyU291cmNlKToKKyAgICAgICAgKFdlYkNv
cmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQzRDo6Z2V0VW5pZm9ybWYpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2FudmFzUmVuZGVyaW5nQ29udGV4dDNEOjpnZXRVbmlmb3JtZnYpOgorICAgICAgICAo
V2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5nQ29udGV4dDNEOjpnZXRVbmlmb3JtaSk6CisgICAgICAg
IChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0M0Q6OmdldFVuaWZvcm1pdik6CisgICAg
ICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0M0Q6OmdldFVuaWZvcm1Mb2NhdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0M0Q6OmlzQnVmZmVy
KToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQzRDo6bGlua1Byb2dy
YW0pOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5nQ29udGV4dDNEOjpzaGFkZXJT
b3VyY2UpOgorICAgICAgICAqIGh0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQzRC5o
OgorICAgICAgICAqIGh0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQzRC5pZGw6CisK
IDIwMDktMTAtMzAgIFpvbHRhbiBIb3J2YXRoICA8em9sdGFuQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQzRC5jcHAgYi9XZWJDb3JlL2h0bWwvY2FudmFzL0Nh
bnZhc1JlbmRlcmluZ0NvbnRleHQzRC5jcHAKaW5kZXggNjEyYjRjMy4uODRjY2Y0YyAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0M0QuY3BwCisr
KyBiL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDNELmNwcApAQCAt
MTI3LDQ0ICsxMjcsNjQgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0M0Q6OmFjdGl2ZVRl
eHR1cmUodW5zaWduZWQgbG9uZyB0ZXh0dXJlKQogICAgIGNsZWFudXBBZnRlckdyYXBoaWNzQ2Fs
bChmYWxzZSk7CiB9CiAKLXZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDNEOjphdHRhY2hTaGFk
ZXIoQ2FudmFzUHJvZ3JhbSogcHJvZ3JhbSwgQ2FudmFzU2hhZGVyKiBzaGFkZXIpCit2b2lkIENh
bnZhc1JlbmRlcmluZ0NvbnRleHQzRDo6YXR0YWNoU2hhZGVyKENhbnZhc1Byb2dyYW0qIHByb2dy
YW0sIENhbnZhc1NoYWRlciogc2hhZGVyLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBpZiAo
IXByb2dyYW0gfHwgIXNoYWRlcikKKyAgICBpZiAoIXByb2dyYW0gfHwgcHJvZ3JhbS0+Y29udGV4
dCgpICE9IHRoaXMgfHwgIXNoYWRlciB8fCBzaGFkZXItPmNvbnRleHQoKSAhPSB0aGlzKSB7Cisg
ICAgICAgIGVjID0gVFlQRV9NSVNNQVRDSF9FUlI7CiAgICAgICAgIHJldHVybjsKKyAgICB9CiAg
ICAgbV9jb250ZXh0LT5hdHRhY2hTaGFkZXIocHJvZ3JhbSwgc2hhZGVyKTsKICAgICBjbGVhbnVw
QWZ0ZXJHcmFwaGljc0NhbGwoZmFsc2UpOwogfQogCi12b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRl
eHQzRDo6YmluZEF0dHJpYkxvY2F0aW9uKENhbnZhc1Byb2dyYW0qIHByb2dyYW0sIHVuc2lnbmVk
IGxvbmcgaW5kZXgsIGNvbnN0IFN0cmluZyYgbmFtZSkKK3ZvaWQgQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDNEOjpiaW5kQXR0cmliTG9jYXRpb24oQ2FudmFzUHJvZ3JhbSogcHJvZ3JhbSwgdW5zaWdu
ZWQgbG9uZyBpbmRleCwgY29uc3QgU3RyaW5nJiBuYW1lLCBFeGNlcHRpb25Db2RlJiBlYykKIHsK
LSAgICBpZiAoIXByb2dyYW0pCisgICAgaWYgKCFwcm9ncmFtIHx8IHByb2dyYW0tPmNvbnRleHQo
KSAhPSB0aGlzKSB7CisgICAgICAgIGVjID0gVFlQRV9NSVNNQVRDSF9FUlI7CiAgICAgICAgIHJl
dHVybjsKKyAgICB9CiAgICAgbV9jb250ZXh0LT5iaW5kQXR0cmliTG9jYXRpb24ocHJvZ3JhbSwg
aW5kZXgsIG5hbWUpOwogICAgIGNsZWFudXBBZnRlckdyYXBoaWNzQ2FsbChmYWxzZSk7CiB9CiAK
LXZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDNEOjpiaW5kQnVmZmVyKHVuc2lnbmVkIGxvbmcg
dGFyZ2V0LCBDYW52YXNCdWZmZXIqIGJ1ZmZlcikKK3ZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDNEOjpiaW5kQnVmZmVyKHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBDYW52YXNCdWZmZXIqIGJ1ZmZl
ciwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CisgICAgaWYgKCFidWZmZXIgfHwgYnVmZmVyLT5jb250
ZXh0KCkgIT0gdGhpcykgeworICAgICAgICBlYyA9IFRZUEVfTUlTTUFUQ0hfRVJSOworICAgICAg
ICByZXR1cm47CisgICAgfQogICAgIG1fY29udGV4dC0+YmluZEJ1ZmZlcih0YXJnZXQsIGJ1ZmZl
cik7CiAgICAgY2xlYW51cEFmdGVyR3JhcGhpY3NDYWxsKGZhbHNlKTsKIH0KIAogCi12b2lkIENh
bnZhc1JlbmRlcmluZ0NvbnRleHQzRDo6YmluZEZyYW1lYnVmZmVyKHVuc2lnbmVkIGxvbmcgdGFy
Z2V0LCBDYW52YXNGcmFtZWJ1ZmZlciogYnVmZmVyKQordm9pZCBDYW52YXNSZW5kZXJpbmdDb250
ZXh0M0Q6OmJpbmRGcmFtZWJ1ZmZlcih1bnNpZ25lZCBsb25nIHRhcmdldCwgQ2FudmFzRnJhbWVi
dWZmZXIqIGJ1ZmZlciwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CisgICAgaWYgKCFidWZmZXIgfHwg
YnVmZmVyLT5jb250ZXh0KCkgIT0gdGhpcykgeworICAgICAgICBlYyA9IFRZUEVfTUlTTUFUQ0hf
RVJSOworICAgICAgICByZXR1cm47CisgICAgfQogICAgIG1fY29udGV4dC0+YmluZEZyYW1lYnVm
ZmVyKHRhcmdldCwgYnVmZmVyKTsKICAgICBjbGVhbnVwQWZ0ZXJHcmFwaGljc0NhbGwoZmFsc2Up
OwogfQogCi12b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQzRDo6YmluZFJlbmRlcmJ1ZmZlcih1
bnNpZ25lZCBsb25nIHRhcmdldCwgQ2FudmFzUmVuZGVyYnVmZmVyKiByZW5kZXJidWZmZXIpCit2
b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQzRDo6YmluZFJlbmRlcmJ1ZmZlcih1bnNpZ25lZCBs
b25nIHRhcmdldCwgQ2FudmFzUmVuZGVyYnVmZmVyKiByZW5kZXJCdWZmZXIsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQogewotICAgIG1fY29udGV4dC0+YmluZFJlbmRlcmJ1ZmZlcih0YXJnZXQsIHJlbmRl
cmJ1ZmZlcik7CisgICAgaWYgKCFyZW5kZXJCdWZmZXIgfHwgcmVuZGVyQnVmZmVyLT5jb250ZXh0
KCkgIT0gdGhpcykgeworICAgICAgICBlYyA9IFRZUEVfTUlTTUFUQ0hfRVJSOworICAgICAgICBy
ZXR1cm47CisgICAgfQorICAgIG1fY29udGV4dC0+YmluZFJlbmRlcmJ1ZmZlcih0YXJnZXQsIHJl
bmRlckJ1ZmZlcik7CiAgICAgY2xlYW51cEFmdGVyR3JhcGhpY3NDYWxsKGZhbHNlKTsKIH0KIAog
Ci12b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQzRDo6YmluZFRleHR1cmUodW5zaWduZWQgbG9u
ZyB0YXJnZXQsIENhbnZhc1RleHR1cmUqIHRleHR1cmUpCit2b2lkIENhbnZhc1JlbmRlcmluZ0Nv
bnRleHQzRDo6YmluZFRleHR1cmUodW5zaWduZWQgbG9uZyB0YXJnZXQsIENhbnZhc1RleHR1cmUq
IHRleHR1cmUsIEV4Y2VwdGlvbkNvZGUmIGVjKQogeworICAgIGlmICghdGV4dHVyZSB8fCB0ZXh0
dXJlLT5jb250ZXh0KCkgIT0gdGhpcykgeworICAgICAgICBlYyA9IFRZUEVfTUlTTUFUQ0hfRVJS
OworICAgICAgICByZXR1cm47CisgICAgfQogICAgIG1fY29udGV4dC0+YmluZFRleHR1cmUodGFy
Z2V0LCB0ZXh0dXJlKTsKICAgICBjbGVhbnVwQWZ0ZXJHcmFwaGljc0NhbGwoZmFsc2UpOwogfQpA
QCAtMjYyLDggKzI4MiwxMiBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQzRDo6Y29sb3JN
YXNrKGJvb2wgcmVkLCBib29sIGdyZWVuLCBib29sIGJsdWUsIGJvb2wgYQogICAgIGNsZWFudXBB
ZnRlckdyYXBoaWNzQ2FsbChmYWxzZSk7CiB9CiAKLXZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDNEOjpjb21waWxlU2hhZGVyKENhbnZhc1NoYWRlciogc2hhZGVyKQordm9pZCBDYW52YXNSZW5k
ZXJpbmdDb250ZXh0M0Q6OmNvbXBpbGVTaGFkZXIoQ2FudmFzU2hhZGVyKiBzaGFkZXIsIEV4Y2Vw
dGlvbkNvZGUmIGVjKQogeworICAgIGlmICghc2hhZGVyIHx8IHNoYWRlci0+Y29udGV4dCgpICE9
IHRoaXMpIHsKKyAgICAgICAgZWMgPSBUWVBFX01JU01BVENIX0VSUjsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KICAgICBtX2NvbnRleHQtPmNvbXBpbGVTaGFkZXIoc2hhZGVyKTsKICAgICBjbGVh
bnVwQWZ0ZXJHcmFwaGljc0NhbGwoZmFsc2UpOwogfQpAQCAtNDAwLDExICs0MjQsMTIgQEAgdm9p
ZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0M0Q6OmRlcHRoUmFuZ2UoZG91YmxlIHpOZWFyLCBkb3Vi
bGUgekZhcikKICAgICBjbGVhbnVwQWZ0ZXJHcmFwaGljc0NhbGwoZmFsc2UpOwogfQogCi12b2lk
IENhbnZhc1JlbmRlcmluZ0NvbnRleHQzRDo6ZGV0YWNoU2hhZGVyKENhbnZhc1Byb2dyYW0qIHBy
b2dyYW0sIENhbnZhc1NoYWRlciogc2hhZGVyKQordm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0
M0Q6OmRldGFjaFNoYWRlcihDYW52YXNQcm9ncmFtKiBwcm9ncmFtLCBDYW52YXNTaGFkZXIqIHNo
YWRlciwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgaWYgKCFwcm9ncmFtIHx8ICFzaGFkZXIp
CisgICAgaWYgKCFwcm9ncmFtIHx8IHByb2dyYW0tPmNvbnRleHQoKSAhPSB0aGlzIHx8ICFzaGFk
ZXIgfHwgc2hhZGVyLT5jb250ZXh0KCkgIT0gdGhpcykgeworICAgICAgICBlYyA9IFRZUEVfTUlT
TUFUQ0hfRVJSOwogICAgICAgICByZXR1cm47Ci0KKyAgICB9CiAgICAgbV9jb250ZXh0LT5kZXRh
Y2hTaGFkZXIocHJvZ3JhbSwgc2hhZGVyKTsKICAgICBjbGVhbnVwQWZ0ZXJHcmFwaGljc0NhbGwo
ZmFsc2UpOwogfQpAQCAtNDYwLDIwICs0ODUsMjIgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250
ZXh0M0Q6OmZsdXNoKCkKICAgICBjbGVhbnVwQWZ0ZXJHcmFwaGljc0NhbGwodHJ1ZSk7CiB9CiAK
LXZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDNEOjpmcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcih1
bnNpZ25lZCBsb25nIHRhcmdldCwgdW5zaWduZWQgbG9uZyBhdHRhY2htZW50LCB1bnNpZ25lZCBs
b25nIHJlbmRlcmJ1ZmZlcnRhcmdldCwgQ2FudmFzUmVuZGVyYnVmZmVyKiBidWZmZXIpCit2b2lk
IENhbnZhc1JlbmRlcmluZ0NvbnRleHQzRDo6ZnJhbWVidWZmZXJSZW5kZXJidWZmZXIodW5zaWdu
ZWQgbG9uZyB0YXJnZXQsIHVuc2lnbmVkIGxvbmcgYXR0YWNobWVudCwgdW5zaWduZWQgbG9uZyBy
ZW5kZXJidWZmZXJ0YXJnZXQsIENhbnZhc1JlbmRlcmJ1ZmZlciogYnVmZmVyLCBFeGNlcHRpb25D
b2RlJiBlYykKIHsKLSAgICBpZiAoIWJ1ZmZlcikKKyAgICBpZiAoIWJ1ZmZlciB8fCBidWZmZXIt
PmNvbnRleHQoKSAhPSB0aGlzKSB7CisgICAgICAgIGVjID0gVFlQRV9NSVNNQVRDSF9FUlI7CiAg
ICAgICAgIHJldHVybjsKLSAgICAgICAgCisgICAgfSAgICAgICAKICAgICBtX2NvbnRleHQtPmZy
YW1lYnVmZmVyUmVuZGVyYnVmZmVyKHRhcmdldCwgYXR0YWNobWVudCwgcmVuZGVyYnVmZmVydGFy
Z2V0LCBidWZmZXIpOwogICAgIGNsZWFudXBBZnRlckdyYXBoaWNzQ2FsbChmYWxzZSk7CiB9CiAK
LXZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDNEOjpmcmFtZWJ1ZmZlclRleHR1cmUyRCh1bnNp
Z25lZCBsb25nIHRhcmdldCwgdW5zaWduZWQgbG9uZyBhdHRhY2htZW50LCB1bnNpZ25lZCBsb25n
IHRleHRhcmdldCwgQ2FudmFzVGV4dHVyZSogdGV4dHVyZSwgbG9uZyBsZXZlbCkKK3ZvaWQgQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDNEOjpmcmFtZWJ1ZmZlclRleHR1cmUyRCh1bnNpZ25lZCBsb25n
IHRhcmdldCwgdW5zaWduZWQgbG9uZyBhdHRhY2htZW50LCB1bnNpZ25lZCBsb25nIHRleHRhcmdl
dCwgQ2FudmFzVGV4dHVyZSogdGV4dHVyZSwgbG9uZyBsZXZlbCwgRXhjZXB0aW9uQ29kZSYgZWMp
CiB7Ci0gICAgaWYgKCF0ZXh0dXJlKQorICAgIGlmICghdGV4dHVyZSB8fCB0ZXh0dXJlLT5jb250
ZXh0KCkgIT0gdGhpcykgeworICAgICAgICBlYyA9IFRZUEVfTUlTTUFUQ0hfRVJSOwogICAgICAg
ICByZXR1cm47Ci0gICAgICAgIAorICAgIH0KICAgICBtX2NvbnRleHQtPmZyYW1lYnVmZmVyVGV4
dHVyZTJEKHRhcmdldCwgYXR0YWNobWVudCwgdGV4dGFyZ2V0LCB0ZXh0dXJlLCBsZXZlbCk7CiAg
ICAgY2xlYW51cEFmdGVyR3JhcGhpY3NDYWxsKGZhbHNlKTsKIH0KQEAgLTU5MCwyMiArNjE3LDM1
IEBAIFBhc3NSZWZQdHI8Q2FudmFzSW50QXJyYXk+IENhbnZhc1JlbmRlcmluZ0NvbnRleHQzRDo6
Z2V0SW50ZWdlcnYodW5zaWduZWQgbG9uZyBwCiAgICAgcmV0dXJuIGFycmF5OwogfQogCi1pbnQg
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDNEOjpnZXRQcm9ncmFtaShDYW52YXNQcm9ncmFtKiBwcm9n
cmFtLCB1bnNpZ25lZCBsb25nIHBuYW1lKQoraW50IENhbnZhc1JlbmRlcmluZ0NvbnRleHQzRDo6
Z2V0UHJvZ3JhbWkoQ2FudmFzUHJvZ3JhbSogcHJvZ3JhbSwgdW5zaWduZWQgbG9uZyBwbmFtZSwg
RXhjZXB0aW9uQ29kZSYgZWMpCiB7CisgICAgaWYgKCFwcm9ncmFtIHx8IHByb2dyYW0tPmNvbnRl
eHQoKSAhPSB0aGlzKSB7CisgICAgICAgIGVjID0gVFlQRV9NSVNNQVRDSF9FUlI7CisgICAgICAg
IHJldHVybiAwOworICAgIH0KKwogICAgIGludCByZXN1bHQgPSBtX2NvbnRleHQtPmdldFByb2dy
YW1pKHByb2dyYW0sIHBuYW1lKTsKICAgICBjbGVhbnVwQWZ0ZXJHcmFwaGljc0NhbGwoZmFsc2Up
OwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLVBhc3NSZWZQdHI8Q2FudmFzSW50QXJyYXk+IENh
bnZhc1JlbmRlcmluZ0NvbnRleHQzRDo6Z2V0UHJvZ3JhbWl2KENhbnZhc1Byb2dyYW0qIHByb2dy
YW0sIHVuc2lnbmVkIGxvbmcgcG5hbWUpCitQYXNzUmVmUHRyPENhbnZhc0ludEFycmF5PiBDYW52
YXNSZW5kZXJpbmdDb250ZXh0M0Q6OmdldFByb2dyYW1pdihDYW52YXNQcm9ncmFtKiBwcm9ncmFt
LCB1bnNpZ25lZCBsb25nIHBuYW1lLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKKyAgICBpZiAoIXBy
b2dyYW0gfHwgcHJvZ3JhbS0+Y29udGV4dCgpICE9IHRoaXMpIHsKKyAgICAgICAgZWMgPSBUWVBF
X01JU01BVENIX0VSUjsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQogICAgIFJlZlB0cjxDYW52
YXNJbnRBcnJheT4gYXJyYXkgPSBtX2NvbnRleHQtPmdldFByb2dyYW1pdihwcm9ncmFtLCBwbmFt
ZSk7CiAgICAgY2xlYW51cEFmdGVyR3JhcGhpY3NDYWxsKGZhbHNlKTsKICAgICByZXR1cm4gYXJy
YXk7CiB9CiAKLVN0cmluZyBDYW52YXNSZW5kZXJpbmdDb250ZXh0M0Q6OmdldFByb2dyYW1JbmZv
TG9nKENhbnZhc1Byb2dyYW0qIHByb2dyYW0pCitTdHJpbmcgQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDNEOjpnZXRQcm9ncmFtSW5mb0xvZyhDYW52YXNQcm9ncmFtKiBwcm9ncmFtLCBFeGNlcHRpb25D
b2RlJiBlYykKIHsKKyAgICBpZiAoIXByb2dyYW0gfHwgcHJvZ3JhbS0+Y29udGV4dCgpICE9IHRo
aXMpIHsKKyAgICAgICAgZWMgPSBUWVBFX01JU01BVENIX0VSUjsKKyAgICAgICAgcmV0dXJuICIi
OworICAgIH0KICAgICBTdHJpbmcgcyA9IG1fY29udGV4dC0+Z2V0UHJvZ3JhbUluZm9Mb2cocHJv
Z3JhbSk7CiAgICAgY2xlYW51cEFmdGVyR3JhcGhpY3NDYWxsKGZhbHNlKTsKICAgICByZXR1cm4g
czsKQEAgLTYyNSwyOSArNjY1LDQ1IEBAIFBhc3NSZWZQdHI8Q2FudmFzSW50QXJyYXk+IENhbnZh
c1JlbmRlcmluZ0NvbnRleHQzRDo6Z2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyaXYoCiAgICAgcmV0
dXJuIGFycmF5OwogfQogCi1pbnQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDNEOjpnZXRTaGFkZXJp
KENhbnZhc1NoYWRlciogc2hhZGVyLCB1bnNpZ25lZCBsb25nIHBuYW1lKQoraW50IENhbnZhc1Jl
bmRlcmluZ0NvbnRleHQzRDo6Z2V0U2hhZGVyaShDYW52YXNTaGFkZXIqIHNoYWRlciwgdW5zaWdu
ZWQgbG9uZyBwbmFtZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CisgICAgaWYgKCFzaGFkZXIgfHwg
c2hhZGVyLT5jb250ZXh0KCkgIT0gdGhpcykgeworICAgICAgICBlYyA9IFRZUEVfTUlTTUFUQ0hf
RVJSOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CiAgICAgaW50IHJlc3VsdCA9IG1fY29udGV4
dC0+Z2V0U2hhZGVyaShzaGFkZXIsIHBuYW1lKTsKICAgICBjbGVhbnVwQWZ0ZXJHcmFwaGljc0Nh
bGwoZmFsc2UpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLVBhc3NSZWZQdHI8Q2FudmFzSW50
QXJyYXk+IENhbnZhc1JlbmRlcmluZ0NvbnRleHQzRDo6Z2V0U2hhZGVyaXYoQ2FudmFzU2hhZGVy
KiBzaGFkZXIsIHVuc2lnbmVkIGxvbmcgcG5hbWUpCitQYXNzUmVmUHRyPENhbnZhc0ludEFycmF5
PiBDYW52YXNSZW5kZXJpbmdDb250ZXh0M0Q6OmdldFNoYWRlcml2KENhbnZhc1NoYWRlciogc2hh
ZGVyLCB1bnNpZ25lZCBsb25nIHBuYW1lLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKKyAgICBpZiAo
IXNoYWRlciB8fCBzaGFkZXItPmNvbnRleHQoKSAhPSB0aGlzKSB7CisgICAgICAgIGVjID0gVFlQ
RV9NSVNNQVRDSF9FUlI7CisgICAgICAgIHJldHVybiAwOworICAgIH0KICAgICBSZWZQdHI8Q2Fu
dmFzSW50QXJyYXk+IGFycmF5ID0gbV9jb250ZXh0LT5nZXRTaGFkZXJpdihzaGFkZXIsIHBuYW1l
KTsKICAgICBjbGVhbnVwQWZ0ZXJHcmFwaGljc0NhbGwoZmFsc2UpOwogICAgIHJldHVybiBhcnJh
eTsKIH0KIAotU3RyaW5nIENhbnZhc1JlbmRlcmluZ0NvbnRleHQzRDo6Z2V0U2hhZGVySW5mb0xv
ZyhDYW52YXNTaGFkZXIqIHNoYWRlcikKK1N0cmluZyBDYW52YXNSZW5kZXJpbmdDb250ZXh0M0Q6
OmdldFNoYWRlckluZm9Mb2coQ2FudmFzU2hhZGVyKiBzaGFkZXIsIEV4Y2VwdGlvbkNvZGUmIGVj
KQogeworICAgIGlmICghc2hhZGVyIHx8IHNoYWRlci0+Y29udGV4dCgpICE9IHRoaXMpIHsKKyAg
ICAgICAgZWMgPSBUWVBFX01JU01BVENIX0VSUjsKKyAgICAgICAgcmV0dXJuICIiOworICAgIH0K
ICAgICBTdHJpbmcgcyA9IG1fY29udGV4dC0+Z2V0U2hhZGVySW5mb0xvZyhzaGFkZXIpOwogICAg
IGNsZWFudXBBZnRlckdyYXBoaWNzQ2FsbChmYWxzZSk7CiAgICAgcmV0dXJuIHM7CiB9CiAKLVN0
cmluZyBDYW52YXNSZW5kZXJpbmdDb250ZXh0M0Q6OmdldFNoYWRlclNvdXJjZShDYW52YXNTaGFk
ZXIqIHNoYWRlcikKK1N0cmluZyBDYW52YXNSZW5kZXJpbmdDb250ZXh0M0Q6OmdldFNoYWRlclNv
dXJjZShDYW52YXNTaGFkZXIqIHNoYWRlciwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CisgICAgaWYg
KCFzaGFkZXIgfHwgc2hhZGVyLT5jb250ZXh0KCkgIT0gdGhpcykgeworICAgICAgICBlYyA9IFRZ
UEVfTUlTTUFUQ0hfRVJSOworICAgICAgICByZXR1cm4gIiI7CisgICAgfQogICAgIFN0cmluZyBz
ID0gbV9jb250ZXh0LT5nZXRTaGFkZXJTb3VyY2Uoc2hhZGVyKTsKICAgICBjbGVhbnVwQWZ0ZXJH
cmFwaGljc0NhbGwoZmFsc2UpOwogICAgIHJldHVybiBzOwpAQCAtNjg2LDM2ICs3NDIsNTYgQEAg
UGFzc1JlZlB0cjxDYW52YXNJbnRBcnJheT4gQ2FudmFzUmVuZGVyaW5nQ29udGV4dDNEOjpnZXRU
ZXhQYXJhbWV0ZXJpdih1bnNpZ25lZAogICAgIHJldHVybiBhcnJheTsKIH0KIAotZmxvYXQgQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDNEOjpnZXRVbmlmb3JtZihDYW52YXNQcm9ncmFtKiBwcm9ncmFt
LCBsb25nIGxvY2F0aW9uKQorZmxvYXQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDNEOjpnZXRVbmlm
b3JtZihDYW52YXNQcm9ncmFtKiBwcm9ncmFtLCBsb25nIGxvY2F0aW9uLCBFeGNlcHRpb25Db2Rl
JiBlYykKIHsKKyAgICBpZiAoIXByb2dyYW0gfHwgcHJvZ3JhbS0+Y29udGV4dCgpICE9IHRoaXMp
IHsKKyAgICAgICAgZWMgPSBUWVBFX01JU01BVENIX0VSUjsKKyAgICAgICAgcmV0dXJuIDA7Cisg
ICAgfQogICAgIGZsb2F0IHJlc3VsdCA9IG1fY29udGV4dC0+Z2V0VW5pZm9ybWYocHJvZ3JhbSwg
bG9jYXRpb24pOwogICAgIGNsZWFudXBBZnRlckdyYXBoaWNzQ2FsbChmYWxzZSk7CiAgICAgcmV0
dXJuIHJlc3VsdDsKIH0KIAotUGFzc1JlZlB0cjxDYW52YXNGbG9hdEFycmF5PiBDYW52YXNSZW5k
ZXJpbmdDb250ZXh0M0Q6OmdldFVuaWZvcm1mdihDYW52YXNQcm9ncmFtKiBwcm9ncmFtLCBsb25n
IGxvY2F0aW9uKQorUGFzc1JlZlB0cjxDYW52YXNGbG9hdEFycmF5PiBDYW52YXNSZW5kZXJpbmdD
b250ZXh0M0Q6OmdldFVuaWZvcm1mdihDYW52YXNQcm9ncmFtKiBwcm9ncmFtLCBsb25nIGxvY2F0
aW9uLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKKyAgICBpZiAoIXByb2dyYW0gfHwgcHJvZ3JhbS0+
Y29udGV4dCgpICE9IHRoaXMpIHsKKyAgICAgICAgZWMgPSBUWVBFX01JU01BVENIX0VSUjsKKyAg
ICAgICAgcmV0dXJuIDA7CisgICAgfQogICAgIFJlZlB0cjxDYW52YXNGbG9hdEFycmF5PiBhcnJh
eSA9IG1fY29udGV4dC0+Z2V0VW5pZm9ybWZ2KHByb2dyYW0sIGxvY2F0aW9uKTsKICAgICBjbGVh
bnVwQWZ0ZXJHcmFwaGljc0NhbGwoZmFsc2UpOwogICAgIHJldHVybiBhcnJheTsKIH0KIAotbG9u
ZyBDYW52YXNSZW5kZXJpbmdDb250ZXh0M0Q6OmdldFVuaWZvcm1pKENhbnZhc1Byb2dyYW0qIHBy
b2dyYW0sIGxvbmcgbG9jYXRpb24pCitsb25nIENhbnZhc1JlbmRlcmluZ0NvbnRleHQzRDo6Z2V0
VW5pZm9ybWkoQ2FudmFzUHJvZ3JhbSogcHJvZ3JhbSwgbG9uZyBsb2NhdGlvbiwgRXhjZXB0aW9u
Q29kZSYgZWMpCiB7CisgICAgaWYgKCFwcm9ncmFtIHx8IHByb2dyYW0tPmNvbnRleHQoKSAhPSB0
aGlzKSB7CisgICAgICAgIGVjID0gVFlQRV9NSVNNQVRDSF9FUlI7CisgICAgICAgIHJldHVybiAw
OworICAgIH0KICAgICBsb25nIHJlc3VsdCA9IG1fY29udGV4dC0+Z2V0VW5pZm9ybWkocHJvZ3Jh
bSwgbG9jYXRpb24pOwogICAgIGNsZWFudXBBZnRlckdyYXBoaWNzQ2FsbChmYWxzZSk7CiAgICAg
cmV0dXJuIHJlc3VsdDsKIH0KIAotUGFzc1JlZlB0cjxDYW52YXNJbnRBcnJheT4gQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDNEOjpnZXRVbmlmb3JtaXYoQ2FudmFzUHJvZ3JhbSogcHJvZ3JhbSwgbG9u
ZyBsb2NhdGlvbikKK1Bhc3NSZWZQdHI8Q2FudmFzSW50QXJyYXk+IENhbnZhc1JlbmRlcmluZ0Nv
bnRleHQzRDo6Z2V0VW5pZm9ybWl2KENhbnZhc1Byb2dyYW0qIHByb2dyYW0sIGxvbmcgbG9jYXRp
b24sIEV4Y2VwdGlvbkNvZGUmIGVjKQogeworICAgIGlmICghcHJvZ3JhbSB8fCBwcm9ncmFtLT5j
b250ZXh0KCkgIT0gdGhpcykgeworICAgICAgICBlYyA9IFRZUEVfTUlTTUFUQ0hfRVJSOworICAg
ICAgICByZXR1cm4gMDsKKyAgICB9CiAgICAgUmVmUHRyPENhbnZhc0ludEFycmF5PiBhcnJheSA9
IG1fY29udGV4dC0+Z2V0VW5pZm9ybWl2KHByb2dyYW0sIGxvY2F0aW9uKTsKICAgICBjbGVhbnVw
QWZ0ZXJHcmFwaGljc0NhbGwoZmFsc2UpOwogICAgIHJldHVybiBhcnJheTsKIH0KIAotbG9uZyBD
YW52YXNSZW5kZXJpbmdDb250ZXh0M0Q6OmdldFVuaWZvcm1Mb2NhdGlvbihDYW52YXNQcm9ncmFt
KiBwcm9ncmFtLCBjb25zdCBTdHJpbmcmIG5hbWUpCitsb25nIENhbnZhc1JlbmRlcmluZ0NvbnRl
eHQzRDo6Z2V0VW5pZm9ybUxvY2F0aW9uKENhbnZhc1Byb2dyYW0qIHByb2dyYW0sIGNvbnN0IFN0
cmluZyYgbmFtZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CisgICAgaWYgKCFwcm9ncmFtIHx8IHBy
b2dyYW0tPmNvbnRleHQoKSAhPSB0aGlzKSB7CisgICAgICAgIGVjID0gVFlQRV9NSVNNQVRDSF9F
UlI7CisgICAgICAgIHJldHVybiAwOworICAgIH0KICAgICByZXR1cm4gbV9jb250ZXh0LT5nZXRV
bmlmb3JtTG9jYXRpb24ocHJvZ3JhbSwgbmFtZSk7CiB9CiAKQEAgLTc2NCw3ICs4NDAsNyBAQCBi
b29sIENhbnZhc1JlbmRlcmluZ0NvbnRleHQzRDo6aXNCdWZmZXIoQ2FudmFzQnVmZmVyKiBidWZm
ZXIpCiB7CiAgICAgaWYgKCFidWZmZXIpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAg
CisKICAgICByZXR1cm4gbV9jb250ZXh0LT5pc0J1ZmZlcihidWZmZXIpOwogfQogCkBAIC04MDQs
MTAgKzg4MCwxMiBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQzRDo6bGluZVdpZHRoKGRv
dWJsZSB3aWR0aCkKICAgICBjbGVhbnVwQWZ0ZXJHcmFwaGljc0NhbGwoZmFsc2UpOwogfQogCi12
b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQzRDo6bGlua1Byb2dyYW0oQ2FudmFzUHJvZ3JhbSog
cHJvZ3JhbSkKK3ZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDNEOjpsaW5rUHJvZ3JhbShDYW52
YXNQcm9ncmFtKiBwcm9ncmFtLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBpZiAoIXByb2dy
YW0pCisgICAgaWYgKCFwcm9ncmFtIHx8IHByb2dyYW0tPmNvbnRleHQoKSAhPSB0aGlzKSB7Cisg
ICAgICAgIGVjID0gVFlQRV9NSVNNQVRDSF9FUlI7CiAgICAgICAgIHJldHVybjsKKyAgICB9CiAg
ICAgICAgIAogICAgIG1fY29udGV4dC0+bGlua1Byb2dyYW0ocHJvZ3JhbSk7CiAgICAgY2xlYW51
cEFmdGVyR3JhcGhpY3NDYWxsKGZhbHNlKTsKQEAgLTg1Niw4ICs5MzQsMTIgQEAgdm9pZCBDYW52
YXNSZW5kZXJpbmdDb250ZXh0M0Q6OnNjaXNzb3IobG9uZyB4LCBsb25nIHksIHVuc2lnbmVkIGxv
bmcgd2lkdGgsIHVuc2kKICAgICBjbGVhbnVwQWZ0ZXJHcmFwaGljc0NhbGwoZmFsc2UpOwogfQog
Ci12b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQzRDo6c2hhZGVyU291cmNlKENhbnZhc1NoYWRl
ciogc2hhZGVyLCBjb25zdCBTdHJpbmcmIHN0cmluZykKK3ZvaWQgQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDNEOjpzaGFkZXJTb3VyY2UoQ2FudmFzU2hhZGVyKiBzaGFkZXIsIGNvbnN0IFN0cmluZyYg
c3RyaW5nLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKKyAgICBpZiAoIXNoYWRlciB8fCBzaGFkZXIt
PmNvbnRleHQoKSAhPSB0aGlzKSB7CisgICAgICAgIGVjID0gVFlQRV9NSVNNQVRDSF9FUlI7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CiAgICAgbV9jb250ZXh0LT5zaGFkZXJTb3VyY2Uoc2hhZGVy
LCBzdHJpbmcpOwogICAgIGNsZWFudXBBZnRlckdyYXBoaWNzQ2FsbChmYWxzZSk7CiB9CmRpZmYg
LS1naXQgYS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQzRC5oIGIv
V2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0M0QuaAppbmRleCA3MGQ5
Yjk1Li40OTM5YTc3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRl
cmluZ0NvbnRleHQzRC5oCisrKyBiL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDNELmgKQEAgLTYxLDEyICs2MSwxMiBAQCBjbGFzcyBXZWJLaXRDU1NNYXRyaXg7CiAg
ICAgICAgIGludCBzaXplSW5CeXRlcyhpbnQgdHlwZSwgRXhjZXB0aW9uQ29kZSYgZWMpOwogCiAg
ICAgICAgIHZvaWQgYWN0aXZlVGV4dHVyZSh1bnNpZ25lZCBsb25nIHRleHR1cmUpOwotICAgICAg
ICB2b2lkIGF0dGFjaFNoYWRlcihDYW52YXNQcm9ncmFtKiwgQ2FudmFzU2hhZGVyKik7Ci0gICAg
ICAgIHZvaWQgYmluZEF0dHJpYkxvY2F0aW9uKENhbnZhc1Byb2dyYW0qLCB1bnNpZ25lZCBsb25n
IGluZGV4LCBjb25zdCBTdHJpbmcmIG5hbWUpOwotICAgICAgICB2b2lkIGJpbmRCdWZmZXIodW5z
aWduZWQgbG9uZyB0YXJnZXQsIENhbnZhc0J1ZmZlciopOwotICAgICAgICB2b2lkIGJpbmRGcmFt
ZWJ1ZmZlcih1bnNpZ25lZCBsb25nIHRhcmdldCwgQ2FudmFzRnJhbWVidWZmZXIqKTsKLSAgICAg
ICAgdm9pZCBiaW5kUmVuZGVyYnVmZmVyKHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBDYW52YXNSZW5k
ZXJidWZmZXIqKTsKLSAgICAgICAgdm9pZCBiaW5kVGV4dHVyZSh1bnNpZ25lZCBsb25nIHRhcmdl
dCwgQ2FudmFzVGV4dHVyZSopOworICAgICAgICB2b2lkIGF0dGFjaFNoYWRlcihDYW52YXNQcm9n
cmFtKiwgQ2FudmFzU2hhZGVyKiwgRXhjZXB0aW9uQ29kZSYgZWMpOworICAgICAgICB2b2lkIGJp
bmRBdHRyaWJMb2NhdGlvbihDYW52YXNQcm9ncmFtKiwgdW5zaWduZWQgbG9uZyBpbmRleCwgY29u
c3QgU3RyaW5nJiBuYW1lLCBFeGNlcHRpb25Db2RlJiBlYyk7CisgICAgICAgIHZvaWQgYmluZEJ1
ZmZlcih1bnNpZ25lZCBsb25nIHRhcmdldCwgQ2FudmFzQnVmZmVyKiwgRXhjZXB0aW9uQ29kZSYg
ZWMpOworICAgICAgICB2b2lkIGJpbmRGcmFtZWJ1ZmZlcih1bnNpZ25lZCBsb25nIHRhcmdldCwg
Q2FudmFzRnJhbWVidWZmZXIqLCBFeGNlcHRpb25Db2RlJiBlYyk7CisgICAgICAgIHZvaWQgYmlu
ZFJlbmRlcmJ1ZmZlcih1bnNpZ25lZCBsb25nIHRhcmdldCwgQ2FudmFzUmVuZGVyYnVmZmVyKiwg
RXhjZXB0aW9uQ29kZSYgZWMpOworICAgICAgICB2b2lkIGJpbmRUZXh0dXJlKHVuc2lnbmVkIGxv
bmcgdGFyZ2V0LCBDYW52YXNUZXh0dXJlKiwgRXhjZXB0aW9uQ29kZSYgZWMpOwogICAgICAgICB2
b2lkIGJsZW5kQ29sb3IoZG91YmxlIHJlZCwgZG91YmxlIGdyZWVuLCBkb3VibGUgYmx1ZSwgZG91
YmxlIGFscGhhKTsKICAgICAgICAgdm9pZCBibGVuZEVxdWF0aW9uKHVuc2lnbmVkIGxvbmcgbW9k
ZSk7CiAgICAgICAgIHZvaWQgYmxlbmRFcXVhdGlvblNlcGFyYXRlKHVuc2lnbmVkIGxvbmcgbW9k
ZVJHQiwgdW5zaWduZWQgbG9uZyBtb2RlQWxwaGEpOwpAQCAtODMsNyArODMsNyBAQCBjbGFzcyBX
ZWJLaXRDU1NNYXRyaXg7CiAgICAgICAgIHZvaWQgY2xlYXJEZXB0aChkb3VibGUpOwogICAgICAg
ICB2b2lkIGNsZWFyU3RlbmNpbChsb25nKTsKICAgICAgICAgdm9pZCBjb2xvck1hc2soYm9vbCBy
ZWQsIGJvb2wgZ3JlZW4sIGJvb2wgYmx1ZSwgYm9vbCBhbHBoYSk7Ci0gICAgICAgIHZvaWQgY29t
cGlsZVNoYWRlcihDYW52YXNTaGFkZXIqKTsKKyAgICAgICAgdm9pZCBjb21waWxlU2hhZGVyKENh
bnZhc1NoYWRlciosIEV4Y2VwdGlvbkNvZGUmIGVjKTsKICAgICAgICAgCiAgICAgICAgIC8vdm9p
ZCBjb21wcmVzc2VkVGV4SW1hZ2UyRCh1bnNpZ25lZCBsb25nIHRhcmdldCwgbG9uZyBsZXZlbCwg
dW5zaWduZWQgbG9uZyBpbnRlcm5hbGZvcm1hdCwgdW5zaWduZWQgbG9uZyB3aWR0aCwgdW5zaWdu
ZWQgbG9uZyBoZWlnaHQsIGxvbmcgYm9yZGVyLCB1bnNpZ25lZCBsb25nIGltYWdlU2l6ZSwgY29u
c3Qgdm9pZCogZGF0YSk7CiAgICAgICAgIC8vdm9pZCBjb21wcmVzc2VkVGV4U3ViSW1hZ2UyRCh1
bnNpZ25lZCBsb25nIHRhcmdldCwgbG9uZyBsZXZlbCwgbG9uZyB4b2Zmc2V0LCBsb25nIHlvZmZz
ZXQsIHVuc2lnbmVkIGxvbmcgd2lkdGgsIHVuc2lnbmVkIGxvbmcgaGVpZ2h0LCB1bnNpZ25lZCBs
b25nIGZvcm1hdCwgdW5zaWduZWQgbG9uZyBpbWFnZVNpemUsIGNvbnN0IHZvaWQqIGRhdGEpOwpA
QCAtMTEwLDcgKzExMCw3IEBAIGNsYXNzIFdlYktpdENTU01hdHJpeDsKICAgICAgICAgdm9pZCBk
ZXB0aEZ1bmModW5zaWduZWQgbG9uZyk7CiAgICAgICAgIHZvaWQgZGVwdGhNYXNrKGJvb2wpOwog
ICAgICAgICB2b2lkIGRlcHRoUmFuZ2UoZG91YmxlIHpOZWFyLCBkb3VibGUgekZhcik7Ci0gICAg
ICAgIHZvaWQgZGV0YWNoU2hhZGVyKENhbnZhc1Byb2dyYW0qLCBDYW52YXNTaGFkZXIqKTsKKyAg
ICAgICAgdm9pZCBkZXRhY2hTaGFkZXIoQ2FudmFzUHJvZ3JhbSosIENhbnZhc1NoYWRlciosIEV4
Y2VwdGlvbkNvZGUmIGVjKTsKICAgICAgICAgdm9pZCBkaXNhYmxlKHVuc2lnbmVkIGxvbmcgY2Fw
KTsKICAgICAgICAgdm9pZCBkaXNhYmxlVmVydGV4QXR0cmliQXJyYXkodW5zaWduZWQgbG9uZyBp
bmRleCk7CiAgICAgICAgIHZvaWQgZHJhd0FycmF5cyh1bnNpZ25lZCBsb25nIG1vZGUsIGxvbmcg
Zmlyc3QsIGxvbmcgY291bnQpOwpAQCAtMTIwLDggKzEyMCw4IEBAIGNsYXNzIFdlYktpdENTU01h
dHJpeDsKICAgICAgICAgdm9pZCBlbmFibGVWZXJ0ZXhBdHRyaWJBcnJheSh1bnNpZ25lZCBsb25n
IGluZGV4KTsKICAgICAgICAgdm9pZCBmaW5pc2goKTsKICAgICAgICAgdm9pZCBmbHVzaCgpOwot
ICAgICAgICB2b2lkIGZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKHVuc2lnbmVkIGxvbmcgdGFyZ2V0
LCB1bnNpZ25lZCBsb25nIGF0dGFjaG1lbnQsIHVuc2lnbmVkIGxvbmcgcmVuZGVyYnVmZmVydGFy
Z2V0LCBDYW52YXNSZW5kZXJidWZmZXIqKTsKLSAgICAgICAgdm9pZCBmcmFtZWJ1ZmZlclRleHR1
cmUyRCh1bnNpZ25lZCBsb25nIHRhcmdldCwgdW5zaWduZWQgbG9uZyBhdHRhY2htZW50LCB1bnNp
Z25lZCBsb25nIHRleHRhcmdldCwgQ2FudmFzVGV4dHVyZSosIGxvbmcgbGV2ZWwpOworICAgICAg
ICB2b2lkIGZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCB1bnNp
Z25lZCBsb25nIGF0dGFjaG1lbnQsIHVuc2lnbmVkIGxvbmcgcmVuZGVyYnVmZmVydGFyZ2V0LCBD
YW52YXNSZW5kZXJidWZmZXIqLCBFeGNlcHRpb25Db2RlJiBlYyk7CisgICAgICAgIHZvaWQgZnJh
bWVidWZmZXJUZXh0dXJlMkQodW5zaWduZWQgbG9uZyB0YXJnZXQsIHVuc2lnbmVkIGxvbmcgYXR0
YWNobWVudCwgdW5zaWduZWQgbG9uZyB0ZXh0YXJnZXQsIENhbnZhc1RleHR1cmUqLCBsb25nIGxl
dmVsLCBFeGNlcHRpb25Db2RlJiBlYyk7CiAgICAgICAgIHZvaWQgZnJvbnRGYWNlKHVuc2lnbmVk
IGxvbmcgbW9kZSk7CiAgICAgICAgIHZvaWQgZ2VuZXJhdGVNaXBtYXAodW5zaWduZWQgbG9uZyB0
YXJnZXQpOwogCkBAIC0xNDMsMjAgKzE0MywyMCBAQCBjbGFzcyBXZWJLaXRDU1NNYXRyaXg7CiAg
ICAgICAgIFBhc3NSZWZQdHI8Q2FudmFzSW50QXJyYXk+IGdldEZyYW1lYnVmZmVyQXR0YWNobWVu
dFBhcmFtZXRlcml2KHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCB1bnNpZ25lZCBsb25nIGF0dGFjaG1l
bnQsIHVuc2lnbmVkIGxvbmcgcG5hbWUpOwogICAgICAgICBpbnQgZ2V0SW50ZWdlcih1bnNpZ25l
ZCBsb25nIHBuYW1lKTsKICAgICAgICAgUGFzc1JlZlB0cjxDYW52YXNJbnRBcnJheT4gZ2V0SW50
ZWdlcnYodW5zaWduZWQgbG9uZyBwbmFtZSk7Ci0gICAgICAgIGludCBnZXRQcm9ncmFtaShDYW52
YXNQcm9ncmFtKiwgdW5zaWduZWQgbG9uZyBwbmFtZSk7Ci0gICAgICAgIFBhc3NSZWZQdHI8Q2Fu
dmFzSW50QXJyYXk+IGdldFByb2dyYW1pdihDYW52YXNQcm9ncmFtKiwgdW5zaWduZWQgbG9uZyBw
bmFtZSk7Ci0gICAgICAgIFN0cmluZyBnZXRQcm9ncmFtSW5mb0xvZyhDYW52YXNQcm9ncmFtKik7
CisgICAgICAgIGludCBnZXRQcm9ncmFtaShDYW52YXNQcm9ncmFtKiwgdW5zaWduZWQgbG9uZyBw
bmFtZSwgRXhjZXB0aW9uQ29kZSYgZWMpOworICAgICAgICBQYXNzUmVmUHRyPENhbnZhc0ludEFy
cmF5PiBnZXRQcm9ncmFtaXYoQ2FudmFzUHJvZ3JhbSosIHVuc2lnbmVkIGxvbmcgcG5hbWUsIEV4
Y2VwdGlvbkNvZGUmIGVjKTsKKyAgICAgICAgU3RyaW5nIGdldFByb2dyYW1JbmZvTG9nKENhbnZh
c1Byb2dyYW0qLCBFeGNlcHRpb25Db2RlJiBlYyk7CiAgICAgICAgIGludCBnZXRSZW5kZXJidWZm
ZXJQYXJhbWV0ZXJpKHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCB1bnNpZ25lZCBsb25nIHBuYW1lKTsK
ICAgICAgICAgUGFzc1JlZlB0cjxDYW52YXNJbnRBcnJheT4gZ2V0UmVuZGVyYnVmZmVyUGFyYW1l
dGVyaXYodW5zaWduZWQgbG9uZyB0YXJnZXQsIHVuc2lnbmVkIGxvbmcgcG5hbWUpOwotICAgICAg
ICBpbnQgZ2V0U2hhZGVyaShDYW52YXNTaGFkZXIqLCB1bnNpZ25lZCBsb25nIHBuYW1lKTsKLSAg
ICAgICAgUGFzc1JlZlB0cjxDYW52YXNJbnRBcnJheT4gZ2V0U2hhZGVyaXYoQ2FudmFzU2hhZGVy
KiwgdW5zaWduZWQgbG9uZyBwbmFtZSk7CisgICAgICAgIGludCBnZXRTaGFkZXJpKENhbnZhc1No
YWRlciosIHVuc2lnbmVkIGxvbmcgcG5hbWUsIEV4Y2VwdGlvbkNvZGUmIGVjKTsKKyAgICAgICAg
UGFzc1JlZlB0cjxDYW52YXNJbnRBcnJheT4gZ2V0U2hhZGVyaXYoQ2FudmFzU2hhZGVyKiwgdW5z
aWduZWQgbG9uZyBwbmFtZSwgRXhjZXB0aW9uQ29kZSYgZWMpOwogCi0gICAgICAgIFN0cmluZyBn
ZXRTaGFkZXJJbmZvTG9nKENhbnZhc1NoYWRlciopOworICAgICAgICBTdHJpbmcgZ2V0U2hhZGVy
SW5mb0xvZyhDYW52YXNTaGFkZXIqLCBFeGNlcHRpb25Db2RlJiBlYyk7CiAKICAgICAgICAgLy8g
VEJECiAgICAgICAgIC8vIHZvaWQgZ2xHZXRTaGFkZXJQcmVjaXNpb25Gb3JtYXQgKEdMZW51bSBz
aGFkZXJ0eXBlLCBHTGVudW0gcHJlY2lzaW9udHlwZSwgR0xpbnQqIHJhbmdlLCBHTGludCogcHJl
Y2lzaW9uKTsKIAotICAgICAgICBTdHJpbmcgZ2V0U2hhZGVyU291cmNlKENhbnZhc1NoYWRlciop
OworICAgICAgICBTdHJpbmcgZ2V0U2hhZGVyU291cmNlKENhbnZhc1NoYWRlciosIEV4Y2VwdGlv
bkNvZGUmIGVjKTsKICAgICAgICAgU3RyaW5nIGdldFN0cmluZyh1bnNpZ25lZCBsb25nIG5hbWUp
OwogCiAgICAgICAgIGZsb2F0IGdldFRleFBhcmFtZXRlcmYodW5zaWduZWQgbG9uZyB0YXJnZXQs
IHVuc2lnbmVkIGxvbmcgcG5hbWUpOwpAQCAtMTY0LDEyICsxNjQsMTIgQEAgY2xhc3MgV2ViS2l0
Q1NTTWF0cml4OwogICAgICAgICBpbnQgZ2V0VGV4UGFyYW1ldGVyaSh1bnNpZ25lZCBsb25nIHRh
cmdldCwgdW5zaWduZWQgbG9uZyBwbmFtZSk7CiAgICAgICAgIFBhc3NSZWZQdHI8Q2FudmFzSW50
QXJyYXk+IGdldFRleFBhcmFtZXRlcml2KHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCB1bnNpZ25lZCBs
b25nIHBuYW1lKTsKIAotICAgICAgICBmbG9hdCBnZXRVbmlmb3JtZihDYW52YXNQcm9ncmFtKiBw
cm9ncmFtLCBsb25nIGxvY2F0aW9uKTsKLSAgICAgICAgUGFzc1JlZlB0cjxDYW52YXNGbG9hdEFy
cmF5PiBnZXRVbmlmb3JtZnYoQ2FudmFzUHJvZ3JhbSogcHJvZ3JhbSwgbG9uZyBsb2NhdGlvbik7
Ci0gICAgICAgIGxvbmcgZ2V0VW5pZm9ybWkoQ2FudmFzUHJvZ3JhbSogcHJvZ3JhbSwgbG9uZyBs
b2NhdGlvbik7Ci0gICAgICAgIFBhc3NSZWZQdHI8Q2FudmFzSW50QXJyYXk+IGdldFVuaWZvcm1p
dihDYW52YXNQcm9ncmFtKiBwcm9ncmFtLCBsb25nIGxvY2F0aW9uKTsKKyAgICAgICAgZmxvYXQg
Z2V0VW5pZm9ybWYoQ2FudmFzUHJvZ3JhbSogcHJvZ3JhbSwgbG9uZyBsb2NhdGlvbiwgRXhjZXB0
aW9uQ29kZSYgZWMpOworICAgICAgICBQYXNzUmVmUHRyPENhbnZhc0Zsb2F0QXJyYXk+IGdldFVu
aWZvcm1mdihDYW52YXNQcm9ncmFtKiBwcm9ncmFtLCBsb25nIGxvY2F0aW9uLCBFeGNlcHRpb25D
b2RlJiBlYyk7CisgICAgICAgIGxvbmcgZ2V0VW5pZm9ybWkoQ2FudmFzUHJvZ3JhbSogcHJvZ3Jh
bSwgbG9uZyBsb2NhdGlvbiwgRXhjZXB0aW9uQ29kZSYgZWMpOworICAgICAgICBQYXNzUmVmUHRy
PENhbnZhc0ludEFycmF5PiBnZXRVbmlmb3JtaXYoQ2FudmFzUHJvZ3JhbSogcHJvZ3JhbSwgbG9u
ZyBsb2NhdGlvbiwgRXhjZXB0aW9uQ29kZSYgZWMpOwogCi0gICAgICAgIGxvbmcgZ2V0VW5pZm9y
bUxvY2F0aW9uKENhbnZhc1Byb2dyYW0qLCBjb25zdCBTdHJpbmcmIG5hbWUpOworICAgICAgICBs
b25nIGdldFVuaWZvcm1Mb2NhdGlvbihDYW52YXNQcm9ncmFtKiwgY29uc3QgU3RyaW5nJiBuYW1l
LCBFeGNlcHRpb25Db2RlJiBlYyk7CiAKICAgICAgICAgZmxvYXQgZ2V0VmVydGV4QXR0cmliZih1
bnNpZ25lZCBsb25nIGluZGV4LCB1bnNpZ25lZCBsb25nIHBuYW1lKTsKICAgICAgICAgUGFzc1Jl
ZlB0cjxDYW52YXNGbG9hdEFycmF5PiBnZXRWZXJ0ZXhBdHRyaWJmdih1bnNpZ25lZCBsb25nIGlu
ZGV4LCB1bnNpZ25lZCBsb25nIHBuYW1lKTsKQEAgLTE4Nyw3ICsxODcsNyBAQCBjbGFzcyBXZWJL
aXRDU1NNYXRyaXg7CiAgICAgICAgIGJvb2wgaXNTaGFkZXIoQ2FudmFzU2hhZGVyKik7CiAgICAg
ICAgIGJvb2wgaXNUZXh0dXJlKENhbnZhc1RleHR1cmUqKTsKICAgICAgICAgdm9pZCBsaW5lV2lk
dGgoZG91YmxlKTsKLSAgICAgICAgdm9pZCBsaW5rUHJvZ3JhbShDYW52YXNQcm9ncmFtKik7Cisg
ICAgICAgIHZvaWQgbGlua1Byb2dyYW0oQ2FudmFzUHJvZ3JhbSosIEV4Y2VwdGlvbkNvZGUmIGVj
KTsKICAgICAgICAgdm9pZCBwaXhlbFN0b3JlaSh1bnNpZ25lZCBsb25nIHBuYW1lLCBsb25nIHBh
cmFtKTsKICAgICAgICAgdm9pZCBwb2x5Z29uT2Zmc2V0KGRvdWJsZSBmYWN0b3IsIGRvdWJsZSB1
bml0cyk7CiAgICAgICAgIApAQCAtMTk3LDcgKzE5Nyw3IEBAIGNsYXNzIFdlYktpdENTU01hdHJp
eDsKICAgICAgICAgdm9pZCByZW5kZXJidWZmZXJTdG9yYWdlKHVuc2lnbmVkIGxvbmcgdGFyZ2V0
LCB1bnNpZ25lZCBsb25nIGludGVybmFsZm9ybWF0LCB1bnNpZ25lZCBsb25nIHdpZHRoLCB1bnNp
Z25lZCBsb25nIGhlaWdodCk7CiAgICAgICAgIHZvaWQgc2FtcGxlQ292ZXJhZ2UoZG91YmxlIHZh
bHVlLCBib29sIGludmVydCk7CiAgICAgICAgIHZvaWQgc2Npc3Nvcihsb25nIHgsIGxvbmcgeSwg
dW5zaWduZWQgbG9uZyB3aWR0aCwgdW5zaWduZWQgbG9uZyBoZWlnaHQpOwotICAgICAgICB2b2lk
IHNoYWRlclNvdXJjZShDYW52YXNTaGFkZXIqLCBjb25zdCBTdHJpbmcmKTsKKyAgICAgICAgdm9p
ZCBzaGFkZXJTb3VyY2UoQ2FudmFzU2hhZGVyKiwgY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29k
ZSYgZWMpOwogICAgICAgICB2b2lkIHN0ZW5jaWxGdW5jKHVuc2lnbmVkIGxvbmcgZnVuYywgbG9u
ZyByZWYsIHVuc2lnbmVkIGxvbmcgbWFzayk7CiAgICAgICAgIHZvaWQgc3RlbmNpbEZ1bmNTZXBh
cmF0ZSh1bnNpZ25lZCBsb25nIGZhY2UsIHVuc2lnbmVkIGxvbmcgZnVuYywgbG9uZyByZWYsIHVu
c2lnbmVkIGxvbmcgbWFzayk7CiAgICAgICAgIHZvaWQgc3RlbmNpbE1hc2sodW5zaWduZWQgbG9u
Zyk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRl
eHQzRC5pZGwgYi9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQzRC5p
ZGwKaW5kZXggZGIwZmZmMy4uNjNlYzJkNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL2NhbnZh
cy9DYW52YXNSZW5kZXJpbmdDb250ZXh0M0QuaWRsCisrKyBiL1dlYkNvcmUvaHRtbC9jYW52YXMv
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDNELmlkbApAQCAtNDYxLDEyICs0NjEsMTIgQEAgbW9kdWxl
IGh0bWwgewogICAgICAgICBsb25nIHNpemVJbkJ5dGVzKGluIHVuc2lnbmVkIGxvbmcgdHlwZSkg
cmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKICAgICAgICAgdm9pZCAgICAgICAgIGFjdGl2ZVRleHR1
cmUoaW4gdW5zaWduZWQgbG9uZyB0ZXh0dXJlKTsKLSAgICAgICAgdm9pZCAgICAgICAgIGF0dGFj
aFNoYWRlcihpbiBDYW52YXNQcm9ncmFtIHByb2dyYW0sIGluIENhbnZhc1NoYWRlciBzaGFkZXIp
OwotICAgICAgICB2b2lkICAgICAgICAgYmluZEF0dHJpYkxvY2F0aW9uKGluIENhbnZhc1Byb2dy
YW0gcHJvZ3JhbSwgaW4gdW5zaWduZWQgbG9uZyBpbmRleCwgaW4gRE9NU3RyaW5nIG5hbWUpOwot
ICAgICAgICB2b2lkICAgICAgICAgYmluZEJ1ZmZlcihpbiB1bnNpZ25lZCBsb25nIHRhcmdldCwg
aW4gQ2FudmFzQnVmZmVyIGJ1ZmZlcik7Ci0gICAgICAgIHZvaWQgICAgICAgICBiaW5kRnJhbWVi
dWZmZXIoaW4gdW5zaWduZWQgbG9uZyB0YXJnZXQsIGluIENhbnZhc0ZyYW1lYnVmZmVyIGZyYW1l
YnVmZmVyKTsKLSAgICAgICAgdm9pZCAgICAgICAgIGJpbmRSZW5kZXJidWZmZXIoaW4gdW5zaWdu
ZWQgbG9uZyB0YXJnZXQsIGluIENhbnZhc1JlbmRlcmJ1ZmZlciByZW5kZXJidWZmZXIpOwotICAg
ICAgICB2b2lkICAgICAgICAgYmluZFRleHR1cmUoaW4gdW5zaWduZWQgbG9uZyB0YXJnZXQsIGlu
IENhbnZhc1RleHR1cmUgdGV4dHVyZSk7CisgICAgICAgIHZvaWQgICAgICAgICBhdHRhY2hTaGFk
ZXIoaW4gQ2FudmFzUHJvZ3JhbSBwcm9ncmFtLCBpbiBDYW52YXNTaGFkZXIgc2hhZGVyKSByYWlz
ZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgdm9pZCAgICAgICAgIGJpbmRBdHRyaWJMb2NhdGlv
bihpbiBDYW52YXNQcm9ncmFtIHByb2dyYW0sIGluIHVuc2lnbmVkIGxvbmcgaW5kZXgsIGluIERP
TVN0cmluZyBuYW1lKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgdm9pZCAgICAgICAg
IGJpbmRCdWZmZXIoaW4gdW5zaWduZWQgbG9uZyB0YXJnZXQsIGluIENhbnZhc0J1ZmZlciBidWZm
ZXIpIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICB2b2lkICAgICAgICAgYmluZEZyYW1l
YnVmZmVyKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiBDYW52YXNGcmFtZWJ1ZmZlciBmcmFt
ZWJ1ZmZlcikgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIHZvaWQgICAgICAgICBiaW5k
UmVuZGVyYnVmZmVyKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiBDYW52YXNSZW5kZXJidWZm
ZXIgcmVuZGVyYnVmZmVyKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgdm9pZCAgICAg
ICAgIGJpbmRUZXh0dXJlKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiBDYW52YXNUZXh0dXJl
IHRleHR1cmUpIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICB2b2lkICAgICAgICAgYmxl
bmRDb2xvcihpbiBkb3VibGUgcmVkLCBpbiBkb3VibGUgZ3JlZW4sIGluIGRvdWJsZSBibHVlLCBp
biBkb3VibGUgYWxwaGEpOwogICAgICAgICB2b2lkICAgICAgICAgYmxlbmRFcXVhdGlvbiggaW4g
dW5zaWduZWQgbG9uZyBtb2RlICk7CiAgICAgICAgIHZvaWQgICAgICAgICBibGVuZEVxdWF0aW9u
U2VwYXJhdGUoaW4gdW5zaWduZWQgbG9uZyBtb2RlUkdCLCBpbiB1bnNpZ25lZCBsb25nIG1vZGVB
bHBoYSk7CkBAIC00ODYsNyArNDg2LDcgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICB2b2lkICAg
ICAgICAgY2xlYXJEZXB0aChpbiBkb3VibGUgZGVwdGgpOwogICAgICAgICB2b2lkICAgICAgICAg
Y2xlYXJTdGVuY2lsKGluIGxvbmcgcyk7CiAgICAgICAgIHZvaWQgICAgICAgICBjb2xvck1hc2so
aW4gYm9vbGVhbiByZWQsIGluIGJvb2xlYW4gZ3JlZW4sIGluIGJvb2xlYW4gYmx1ZSwgaW4gYm9v
bGVhbiBhbHBoYSk7Ci0gICAgICAgIHZvaWQgICAgICAgICBjb21waWxlU2hhZGVyKGluIENhbnZh
c1NoYWRlciBzaGFkZXIpOworICAgICAgICB2b2lkICAgICAgICAgY29tcGlsZVNoYWRlcihpbiBD
YW52YXNTaGFkZXIgc2hhZGVyKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgCiAgICAg
ICAgIC8vdm9pZCAgICAgICAgIGNvbXByZXNzZWRUZXhJbWFnZTJEKGluIHVuc2lnbmVkIGxvbmcg
dGFyZ2V0LCBpbiBsb25nIGxldmVsLCBpbiB1bnNpZ25lZCBsb25nIGludGVybmFsZm9ybWF0LCBp
biB1bnNpZ25lZCBsb25nIHdpZHRoLCBpbiB1bnNpZ25lZCBsb25nIGhlaWdodCwgaW4gbG9uZyBi
b3JkZXIsIGluIHVuc2lnbmVkIGxvbmcgaW1hZ2VTaXplLCBjb25zdCB2b2lkKiBkYXRhKTsKICAg
ICAgICAgLy92b2lkICAgICAgICAgY29tcHJlc3NlZFRleFN1YkltYWdlMkQoaW4gdW5zaWduZWQg
bG9uZyB0YXJnZXQsIGluIGxvbmcgbGV2ZWwsIGluIGxvbmcgeG9mZnNldCwgaW4gbG9uZyB5b2Zm
c2V0LCBpbiB1bnNpZ25lZCBsb25nIHdpZHRoLCBpbiB1bnNpZ25lZCBsb25nIGhlaWdodCwgaW4g
dW5zaWduZWQgbG9uZyBmb3JtYXQsIGluIHVuc2lnbmVkIGxvbmcgaW1hZ2VTaXplLCBjb25zdCB2
b2lkKiBkYXRhKTsKQEAgLTUxNCw3ICs1MTQsNyBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIHZv
aWQgICAgICAgICBkZXB0aE1hc2soaW4gYm9vbGVhbiBmbGFnKTsKICAgICAgICAgLy8gRklYTUU6
IHRoaXMgZGlmZmVycyBmcm9tIHRoZSBjdXJyZW50IFdlYkdMIHNwZWMgKGRlcHRoUmFuZ2VmKQog
ICAgICAgICB2b2lkICAgICAgICAgZGVwdGhSYW5nZShpbiBkb3VibGUgek5lYXIsIGluIGRvdWJs
ZSB6RmFyKTsKLSAgICAgICAgdm9pZCAgICAgICAgIGRldGFjaFNoYWRlcihpbiBDYW52YXNQcm9n
cmFtIHByb2dyYW0sIGluIENhbnZhc1NoYWRlciBzaGFkZXIpOworICAgICAgICB2b2lkICAgICAg
ICAgZGV0YWNoU2hhZGVyKGluIENhbnZhc1Byb2dyYW0gcHJvZ3JhbSwgaW4gQ2FudmFzU2hhZGVy
IHNoYWRlcikgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIHZvaWQgICAgICAgICBkaXNh
YmxlKGluIHVuc2lnbmVkIGxvbmcgY2FwKTsKICAgICAgICAgdm9pZCAgICAgICAgIGRpc2FibGVW
ZXJ0ZXhBdHRyaWJBcnJheShpbiB1bnNpZ25lZCBsb25nIGluZGV4KTsKICAgICAgICAgdm9pZCAg
ICAgICAgIGRyYXdBcnJheXMoaW4gdW5zaWduZWQgbG9uZyBtb2RlLCBpbiBsb25nIGZpcnN0LCBp
biB1bnNpZ25lZCBsb25nIGNvdW50KTsKQEAgLTUyNCw4ICs1MjQsOCBAQCBtb2R1bGUgaHRtbCB7
CiAgICAgICAgIHZvaWQgICAgICAgICBlbmFibGVWZXJ0ZXhBdHRyaWJBcnJheShpbiB1bnNpZ25l
ZCBsb25nIGluZGV4KTsKICAgICAgICAgdm9pZCAgICAgICAgIGZpbmlzaCgpOwogICAgICAgICB2
b2lkICAgICAgICAgZmx1c2goKTsKLSAgICAgICAgdm9pZCAgICAgICAgIGZyYW1lYnVmZmVyUmVu
ZGVyYnVmZmVyKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiB1bnNpZ25lZCBsb25nIGF0dGFj
aG1lbnQsIGluIHVuc2lnbmVkIGxvbmcgcmVuZGVyYnVmZmVydGFyZ2V0LCBpbiBDYW52YXNSZW5k
ZXJidWZmZXIgcmVuZGVyYnVmZmVyKTsKLSAgICAgICAgdm9pZCAgICAgICAgIGZyYW1lYnVmZmVy
VGV4dHVyZTJEKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiB1bnNpZ25lZCBsb25nIGF0dGFj
aG1lbnQsIGluIHVuc2lnbmVkIGxvbmcgdGV4dGFyZ2V0LCBpbiBDYW52YXNUZXh0dXJlIHRleHR1
cmUsIGluIGxvbmcgbGV2ZWwpOworICAgICAgICB2b2lkICAgICAgICAgZnJhbWVidWZmZXJSZW5k
ZXJidWZmZXIoaW4gdW5zaWduZWQgbG9uZyB0YXJnZXQsIGluIHVuc2lnbmVkIGxvbmcgYXR0YWNo
bWVudCwgaW4gdW5zaWduZWQgbG9uZyByZW5kZXJidWZmZXJ0YXJnZXQsIGluIENhbnZhc1JlbmRl
cmJ1ZmZlciByZW5kZXJidWZmZXIpIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICB2b2lk
ICAgICAgICAgZnJhbWVidWZmZXJUZXh0dXJlMkQoaW4gdW5zaWduZWQgbG9uZyB0YXJnZXQsIGlu
IHVuc2lnbmVkIGxvbmcgYXR0YWNobWVudCwgaW4gdW5zaWduZWQgbG9uZyB0ZXh0YXJnZXQsIGlu
IENhbnZhc1RleHR1cmUgdGV4dHVyZSwgaW4gbG9uZyBsZXZlbCkgcmFpc2VzKERPTUV4Y2VwdGlv
bik7CiAgICAgICAgIHZvaWQgICAgICAgICBmcm9udEZhY2UoaW4gdW5zaWduZWQgbG9uZyBtb2Rl
KTsKICAgICAgICAgdm9pZCAgICAgICAgIGdlbmVyYXRlTWlwbWFwKGluIHVuc2lnbmVkIGxvbmcg
dGFyZ2V0KTsKICAgICAgICAgCkBAIC01NTIsMjAgKzU1MiwyMCBAQCBtb2R1bGUgaHRtbCB7CiAg
ICAgICAgIENhbnZhc0ludEFycmF5IGdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcml2
KGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiB1bnNpZ25lZCBsb25nIGF0dGFjaG1lbnQsIGlu
IHVuc2lnbmVkIGxvbmcgcG5hbWUpOwogICAgICAgICBsb25nIGdldEludGVnZXIoaW4gdW5zaWdu
ZWQgbG9uZyBwbmFtZSk7CiAgICAgICAgIENhbnZhc0ludEFycmF5IGdldEludGVnZXJ2KGluIHVu
c2lnbmVkIGxvbmcgcG5hbWUpOwotICAgICAgICBsb25nIGdldFByb2dyYW1pKGluIENhbnZhc1By
b2dyYW0gcHJvZ3JhbSwgaW4gdW5zaWduZWQgbG9uZyBwbmFtZSk7Ci0gICAgICAgIENhbnZhc0lu
dEFycmF5IGdldFByb2dyYW1pdihpbiBDYW52YXNQcm9ncmFtIHByb2dyYW0sIGluIHVuc2lnbmVk
IGxvbmcgcG5hbWUpOwotICAgICAgICBET01TdHJpbmcgZ2V0UHJvZ3JhbUluZm9Mb2coaW4gQ2Fu
dmFzUHJvZ3JhbSBwcm9ncmFtKTsKKyAgICAgICAgbG9uZyBnZXRQcm9ncmFtaShpbiBDYW52YXNQ
cm9ncmFtIHByb2dyYW0sIGluIHVuc2lnbmVkIGxvbmcgcG5hbWUpIHJhaXNlcyhET01FeGNlcHRp
b24pOworICAgICAgICBDYW52YXNJbnRBcnJheSBnZXRQcm9ncmFtaXYoaW4gQ2FudmFzUHJvZ3Jh
bSBwcm9ncmFtLCBpbiB1bnNpZ25lZCBsb25nIHBuYW1lKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsK
KyAgICAgICAgRE9NU3RyaW5nIGdldFByb2dyYW1JbmZvTG9nKGluIENhbnZhc1Byb2dyYW0gcHJv
Z3JhbSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIGxvbmcgZ2V0UmVuZGVyYnVmZmVy
UGFyYW1ldGVyaShpbiB1bnNpZ25lZCBsb25nIHRhcmdldCwgaW4gdW5zaWduZWQgbG9uZyBwbmFt
ZSk7CiAgICAgICAgIENhbnZhc0ludEFycmF5IGdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcml2KGlu
IHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiB1bnNpZ25lZCBsb25nIHBuYW1lKTsKLSAgICAgICAg
bG9uZyBnZXRTaGFkZXJpKGluIENhbnZhc1NoYWRlciBzaGFkZXIsIGluIHVuc2lnbmVkIGxvbmcg
cG5hbWUpOwotICAgICAgICBDYW52YXNJbnRBcnJheSBnZXRTaGFkZXJpdihpbiBDYW52YXNTaGFk
ZXIgc2hhZGVyLCBpbiB1bnNpZ25lZCBsb25nIHBuYW1lKTsKKyAgICAgICAgbG9uZyBnZXRTaGFk
ZXJpKGluIENhbnZhc1NoYWRlciBzaGFkZXIsIGluIHVuc2lnbmVkIGxvbmcgcG5hbWUpIHJhaXNl
cyhET01FeGNlcHRpb24pOworICAgICAgICBDYW52YXNJbnRBcnJheSBnZXRTaGFkZXJpdihpbiBD
YW52YXNTaGFkZXIgc2hhZGVyLCBpbiB1bnNpZ25lZCBsb25nIHBuYW1lKSByYWlzZXMoRE9NRXhj
ZXB0aW9uKTsKIAotICAgICAgICBET01TdHJpbmcgICAgZ2V0U2hhZGVySW5mb0xvZyhpbiBDYW52
YXNTaGFkZXIgc2hhZGVyKTsKKyAgICAgICAgRE9NU3RyaW5nICAgIGdldFNoYWRlckluZm9Mb2co
aW4gQ2FudmFzU2hhZGVyIHNoYWRlcikgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKICAgICAgICAg
Ly8gVEJECiAgICAgICAgIC8vIHZvaWQgZ2xHZXRTaGFkZXJQcmVjaXNpb25Gb3JtYXQgKEdMZW51
bSBzaGFkZXJ0eXBlLCBHTGVudW0gcHJlY2lzaW9udHlwZSwgR0xpbnQqIHJhbmdlLCBHTGludCog
cHJlY2lzaW9uKTsKIAotICAgICAgICBET01TdHJpbmcgICAgZ2V0U2hhZGVyU291cmNlKGluIENh
bnZhc1NoYWRlciBzaGFkZXIpOworICAgICAgICBET01TdHJpbmcgICAgZ2V0U2hhZGVyU291cmNl
KGluIENhbnZhc1NoYWRlciBzaGFkZXIpIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICBE
T01TdHJpbmcgICAgZ2V0U3RyaW5nKGluIHVuc2lnbmVkIGxvbmcgbmFtZSk7CiAKICAgICAgICAg
ZmxvYXQgZ2V0VGV4UGFyYW1ldGVyZihpbiB1bnNpZ25lZCBsb25nIHRhcmdldCwgaW4gdW5zaWdu
ZWQgbG9uZyBwbmFtZSk7CkBAIC01NzMsMTIgKzU3MywxMiBAQCBtb2R1bGUgaHRtbCB7CiAgICAg
ICAgIGxvbmcgZ2V0VGV4UGFyYW1ldGVyaShpbiB1bnNpZ25lZCBsb25nIHRhcmdldCwgaW4gdW5z
aWduZWQgbG9uZyBwbmFtZSk7CiAgICAgICAgIENhbnZhc0ludEFycmF5IGdldFRleFBhcmFtZXRl
cml2KGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiB1bnNpZ25lZCBsb25nIHBuYW1lKTsKIAot
ICAgICAgICBmbG9hdCBnZXRVbmlmb3JtZihpbiBDYW52YXNQcm9ncmFtIHByb2dyYW0sIGluIGxv
bmcgbG9jYXRpb24pOwotICAgICAgICBDYW52YXNGbG9hdEFycmF5IGdldFVuaWZvcm1mdihpbiBD
YW52YXNQcm9ncmFtIHByb2dyYW0sIGluIGxvbmcgbG9jYXRpb24pOwotICAgICAgICBsb25nIGdl
dFVuaWZvcm1pKGluIENhbnZhc1Byb2dyYW0gcHJvZ3JhbSwgaW4gbG9uZyBsb2NhdGlvbik7Ci0g
ICAgICAgIENhbnZhc0ludEFycmF5IGdldFVuaWZvcm1pdihpbiBDYW52YXNQcm9ncmFtIHByb2dy
YW0sIGluIGxvbmcgbG9jYXRpb24pOworICAgICAgICBmbG9hdCBnZXRVbmlmb3JtZihpbiBDYW52
YXNQcm9ncmFtIHByb2dyYW0sIGluIGxvbmcgbG9jYXRpb24pIHJhaXNlcyhET01FeGNlcHRpb24p
OworICAgICAgICBDYW52YXNGbG9hdEFycmF5IGdldFVuaWZvcm1mdihpbiBDYW52YXNQcm9ncmFt
IHByb2dyYW0sIGluIGxvbmcgbG9jYXRpb24pIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAg
ICBsb25nIGdldFVuaWZvcm1pKGluIENhbnZhc1Byb2dyYW0gcHJvZ3JhbSwgaW4gbG9uZyBsb2Nh
dGlvbikgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIENhbnZhc0ludEFycmF5IGdldFVu
aWZvcm1pdihpbiBDYW52YXNQcm9ncmFtIHByb2dyYW0sIGluIGxvbmcgbG9jYXRpb24pIHJhaXNl
cyhET01FeGNlcHRpb24pOwogICAgICAgICAKLSAgICAgICAgbG9uZyBnZXRVbmlmb3JtTG9jYXRp
b24oaW4gQ2FudmFzUHJvZ3JhbSBwcm9ncmFtLCBpbiBET01TdHJpbmcgbmFtZSk7CisgICAgICAg
IGxvbmcgZ2V0VW5pZm9ybUxvY2F0aW9uKGluIENhbnZhc1Byb2dyYW0gcHJvZ3JhbSwgaW4gRE9N
U3RyaW5nIG5hbWUpIHJhaXNlcyhET01FeGNlcHRpb24pOwogCiAgICAgICAgIGZsb2F0IGdldFZl
cnRleEF0dHJpYmYoaW4gdW5zaWduZWQgbG9uZyBpbmRleCwgaW4gdW5zaWduZWQgbG9uZyBwbmFt
ZSk7CiAgICAgICAgIENhbnZhc0Zsb2F0QXJyYXkgZ2V0VmVydGV4QXR0cmliZnYoaW4gdW5zaWdu
ZWQgbG9uZyBpbmRleCwgaW4gdW5zaWduZWQgbG9uZyBwbmFtZSk7CkBAIC01OTYsMTcgKzU5Niwx
NyBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIGJvb2xlYW4gICAgICBpc1NoYWRlcihpbiBDYW52
YXNTaGFkZXIgc2hhZGVyKTsKICAgICAgICAgYm9vbGVhbiAgICAgIGlzVGV4dHVyZShpbiBDYW52
YXNUZXh0dXJlIHRleHR1cmUpOwogICAgICAgICB2b2lkICAgICAgICAgbGluZVdpZHRoKGluIGRv
dWJsZSB3aWR0aCk7Ci0gICAgICAgIHZvaWQgICAgICAgICBsaW5rUHJvZ3JhbShpbiBDYW52YXNQ
cm9ncmFtIHByb2dyYW0pOworICAgICAgICB2b2lkICAgICAgICAgbGlua1Byb2dyYW0oaW4gQ2Fu
dmFzUHJvZ3JhbSBwcm9ncmFtKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgdm9pZCAg
ICAgICAgIHBpeGVsU3RvcmVpKGluIHVuc2lnbmVkIGxvbmcgcG5hbWUsIGluIGxvbmcgcGFyYW0p
OwogICAgICAgICB2b2lkICAgICAgICAgcG9seWdvbk9mZnNldChpbiBkb3VibGUgZmFjdG9yLCBp
biBkb3VibGUgdW5pdHMpOwotICAgICAgICAKKwogICAgICAgICBDYW52YXNBcnJheSByZWFkUGl4
ZWxzKGluIGxvbmcgeCwgaW4gbG9uZyB5LCBpbiB1bnNpZ25lZCBsb25nIHdpZHRoLCBpbiB1bnNp
Z25lZCBsb25nIGhlaWdodCwgaW4gdW5zaWduZWQgbG9uZyBmb3JtYXQsIGluIHVuc2lnbmVkIGxv
bmcgdHlwZSk7CiAgICAgICAgIAogICAgICAgICB2b2lkICAgICAgICAgcmVsZWFzZVNoYWRlckNv
bXBpbGVyKCk7CiAgICAgICAgIHZvaWQgICAgICAgICByZW5kZXJidWZmZXJTdG9yYWdlKGluIHVu
c2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiB1bnNpZ25lZCBsb25nIGludGVybmFsZm9ybWF0LCBpbiB1
bnNpZ25lZCBsb25nIHdpZHRoLCBpbiB1bnNpZ25lZCBsb25nIGhlaWdodCk7CiAgICAgICAgIHZv
aWQgICAgICAgICBzYW1wbGVDb3ZlcmFnZShpbiBkb3VibGUgdmFsdWUsIGluIGJvb2xlYW4gaW52
ZXJ0KTsKICAgICAgICAgdm9pZCAgICAgICAgIHNjaXNzb3IoaW4gbG9uZyB4LCBpbiBsb25nIHks
IGluIHVuc2lnbmVkIGxvbmcgd2lkdGgsIGluIHVuc2lnbmVkIGxvbmcgaGVpZ2h0KTsKLSAgICAg
ICAgdm9pZCAgICAgICAgIHNoYWRlclNvdXJjZShpbiBDYW52YXNTaGFkZXIgc2hhZGVyLCBpbiBE
T01TdHJpbmcgc3RyaW5nKTsKKyAgICAgICAgdm9pZCAgICAgICAgIHNoYWRlclNvdXJjZShpbiBD
YW52YXNTaGFkZXIgc2hhZGVyLCBpbiBET01TdHJpbmcgc3RyaW5nKSByYWlzZXMoRE9NRXhjZXB0
aW9uKTsKICAgICAgICAgdm9pZCAgICAgICAgIHN0ZW5jaWxGdW5jKGluIHVuc2lnbmVkIGxvbmcg
ZnVuYywgaW4gbG9uZyByZWYsIGluIHVuc2lnbmVkIGxvbmcgbWFzayk7CiAgICAgICAgIHZvaWQg
ICAgICAgICBzdGVuY2lsRnVuY1NlcGFyYXRlKGluIHVuc2lnbmVkIGxvbmcgZmFjZSwgaW4gdW5z
aWduZWQgbG9uZyBmdW5jLCBpbiBsb25nIHJlZiwgaW4gdW5zaWduZWQgbG9uZyBtYXNrKTsKICAg
ICAgICAgdm9pZCAgICAgICAgIHN0ZW5jaWxNYXNrKGluIHVuc2lnbmVkIGxvbmcgbWFzayk7
</data>
<flag name="review"
          id="23770"
          type_id="1"
          status="+"
          setter="jhoneycutt"
    />
          </attachment>
      

    </bug>

</bugzilla>