<?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>173309</bug_id>
          
          <creation_ts>2017-06-13 02:34:24 -0700</creation_ts>
          <short_desc>Add API::NotificationProvider</short_desc>
          <delta_ts>2017-06-14 09:18:08 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>173312</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>achristensen</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1318611</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-06-13 02:34:24 -0700</bug_when>
    <thetext>It will be used by the GTK+ port instead of the C API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1318612</commentid>
    <comment_count>1</comment_count>
      <attachid>312759</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-06-13 02:36:03 -0700</bug_when>
    <thetext>Created attachment 312759
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1318625</commentid>
    <comment_count>2</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-06-13 03:36:55 -0700</bug_when>
    <thetext>This doesn&apos;t build because it depends on changes made to UniqueRef in bug #173266</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1319016</commentid>
    <comment_count>3</comment_count>
      <attachid>312863</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-06-13 23:16:30 -0700</bug_when>
    <thetext>Created attachment 312863
Patch

It should build now</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1319151</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-06-14 09:18:08 -0700</bug_when>
    <thetext>Committed r218260: &lt;http://trac.webkit.org/changeset/218260&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>312759</attachid>
            <date>2017-06-13 02:36:03 -0700</date>
            <delta_ts>2017-06-13 23:16:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-api-notification-provider.diff</filename>
            <type>text/plain</type>
            <size>23311</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBmODI2NmY2ZTQ5MC4uM2Y3MmM3ZTMxMzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEs
NSArMSw0NyBAQAogMjAxNy0wNi0xMyAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGln
YWxpYS5jb20+CiAKKyAgICAgICAgQWRkIEFQSTo6Tm90aWZpY2F0aW9uUHJvdmlkZXIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MzMwOQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEl0IHdpbGwgYmUgdXNl
ZCBieSB0aGUgR1RLKyBwb3J0IGluc3RlYWQgb2YgdGhlIEMgQVBJLgorCisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9BUElOb3RpZmljYXRpb25Qcm92aWRlci5oOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25Qcm92aWRlci5o
LgorICAgICAgICAoQVBJOjpOb3RpZmljYXRpb25Qcm92aWRlcjo6c2hvdyk6CisgICAgICAgIChB
UEk6Ok5vdGlmaWNhdGlvblByb3ZpZGVyOjpjYW5jZWwpOgorICAgICAgICAoQVBJOjpOb3RpZmlj
YXRpb25Qcm92aWRlcjo6ZGlkRGVzdHJveU5vdGlmaWNhdGlvbik6CisgICAgICAgIChBUEk6Ok5v
dGlmaWNhdGlvblByb3ZpZGVyOjpjbGVhck5vdGlmaWNhdGlvbnMpOgorICAgICAgICAoQVBJOjpO
b3RpZmljYXRpb25Qcm92aWRlcjo6YWRkTm90aWZpY2F0aW9uTWFuYWdlcik6CisgICAgICAgIChB
UEk6Ok5vdGlmaWNhdGlvblByb3ZpZGVyOjpyZW1vdmVOb3RpZmljYXRpb25NYW5hZ2VyKToKKyAg
ICAgICAgKEFQSTo6Tm90aWZpY2F0aW9uUHJvdmlkZXI6Om5vdGlmaWNhdGlvblBlcm1pc3Npb25z
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tOb3RpZmljYXRpb25NYW5hZ2VyLmNwcDoK
KyAgICAgICAgKFdLTm90aWZpY2F0aW9uTWFuYWdlclNldFByb3ZpZGVyKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OldlYk5vdGlmaWNh
dGlvbk1hbmFnZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFn
ZXJQcm94eTo6c2V0UHJvdmlkZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25N
YW5hZ2VyUHJveHk6OnByb2Nlc3NQb29sRGVzdHJveWVkKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Tm90aWZpY2F0aW9uTWFuYWdlclByb3h5Ojpub3RpZmljYXRpb25QZXJtaXNzaW9ucyk6CisgICAg
ICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6c2hvdyk6CisgICAgICAg
IChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6Y2FuY2VsKToKKyAgICAgICAg
KFdlYktpdDo6V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5OjpkaWREZXN0cm95Tm90aWZpY2F0
aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5OjpjbGVh
ck5vdGlmaWNhdGlvbnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5v
dGlmaWNhdGlvbk1hbmFnZXJQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Ob3RpZmljYXRp
b25zL1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTm90
aWZpY2F0aW9uUHJvdmlkZXI6OldlYk5vdGlmaWNhdGlvblByb3ZpZGVyKToKKyAgICAgICAgKFdl
YktpdDo6V2ViTm90aWZpY2F0aW9uUHJvdmlkZXI6OnNob3cpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJOb3RpZmljYXRpb25Qcm92aWRlcjo6Y2FuY2VsKToKKyAgICAgICAgKFdlYktpdDo6V2ViTm90
aWZpY2F0aW9uUHJvdmlkZXI6OmRpZERlc3Ryb3lOb3RpZmljYXRpb24pOgorICAgICAgICAoV2Vi
S2l0OjpXZWJOb3RpZmljYXRpb25Qcm92aWRlcjo6YWRkTm90aWZpY2F0aW9uTWFuYWdlcik6Cisg
ICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvblByb3ZpZGVyOjpyZW1vdmVOb3RpZmljYXRp
b25NYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uUHJvdmlkZXI6Om5v
dGlmaWNhdGlvblBlcm1pc3Npb25zKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTm90aWZpY2F0aW9u
cy9XZWJOb3RpZmljYXRpb25Qcm92aWRlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9j
ZXNzUG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpjcmVhdGVOZXdX
ZWJQcm9jZXNzKToKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisKKzIwMTctMDYtMTMgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCiAgICAgICAgIE9iamVjdHMgb3duaW5nIEFQSSBjbGllbnRzIHNob3VsZCB1c2UgVW5pcXVl
UmVmCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzMy
NjYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElOb3RpZmlj
YXRpb25Qcm92aWRlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElOb3RpZmlj
YXRpb25Qcm92aWRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41
YzhjOWJkYjY5NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQVBJTm90aWZpY2F0aW9uUHJvdmlkZXIuaApAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE3IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1
ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CisKK25h
bWVzcGFjZSBXZWJLaXQgeworY2xhc3MgV2ViTm90aWZpY2F0aW9uOworY2xhc3MgV2ViTm90aWZp
Y2F0aW9uTWFuYWdlclByb3h5OworY2xhc3MgV2ViUGFnZVByb3h5OworfQorCituYW1lc3BhY2Ug
QVBJIHsKKworY2xhc3MgTm90aWZpY2F0aW9uUHJvdmlkZXIgeworcHVibGljOgorICAgIHZpcnR1
YWwgfk5vdGlmaWNhdGlvblByb3ZpZGVyKCkgPSBkZWZhdWx0OworCisgICAgdmlydHVhbCB2b2lk
IHNob3coV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbiYpIHsg
fQorICAgIHZpcnR1YWwgdm9pZCBjYW5jZWwoV2ViS2l0OjpXZWJOb3RpZmljYXRpb24mKSB7IH0K
KyAgICB2aXJ0dWFsIHZvaWQgZGlkRGVzdHJveU5vdGlmaWNhdGlvbihXZWJLaXQ6OldlYk5vdGlm
aWNhdGlvbiYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBjbGVhck5vdGlmaWNhdGlvbnMoY29uc3Qg
VmVjdG9yPHVpbnQ2NF90PiYgLypub3RpZmljYXRpb25JRHMqLykgeyB9CisKKyAgICB2aXJ0dWFs
IHZvaWQgYWRkTm90aWZpY2F0aW9uTWFuYWdlcihXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFn
ZXJQcm94eSYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCByZW1vdmVOb3RpZmljYXRpb25NYW5hZ2Vy
KFdlYktpdDo6V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5JikgeyB9CisKKyAgICB2aXJ0dWFs
IEhhc2hNYXA8V1RGOjpTdHJpbmcsIGJvb2w+IG5vdGlmaWNhdGlvblBlcm1pc3Npb25zKCkgeyBy
ZXR1cm4gSGFzaE1hcDxXVEY6OlN0cmluZywgYm9vbD4oKTsgfTsKK307CisKK30gLy8gbmFtZXNw
YWNlIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLTm90
aWZpY2F0aW9uTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tO
b3RpZmljYXRpb25NYW5hZ2VyLmNwcAppbmRleCA0NzZmMDhiYmExMy4uYjIyM2Q2Zjg3YmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS05vdGlmaWNhdGlvbk1h
bmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS05vdGlmaWNh
dGlvbk1hbmFnZXIuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiV0tBUElDYXN0Lmgi
CiAjaW5jbHVkZSAiV2ViTm90aWZpY2F0aW9uLmgiCiAjaW5jbHVkZSAiV2ViTm90aWZpY2F0aW9u
TWFuYWdlclByb3h5LmgiCisjaW5jbHVkZSAiV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuaCIKIAog
dXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIApAQCAtNDAsNyArNDEsNyBAQCBXS1R5cGVJRCBXS05v
dGlmaWNhdGlvbk1hbmFnZXJHZXRUeXBlSUQoKQogCiB2b2lkIFdLTm90aWZpY2F0aW9uTWFuYWdl
clNldFByb3ZpZGVyKFdLTm90aWZpY2F0aW9uTWFuYWdlclJlZiBtYW5hZ2VyUmVmLCBjb25zdCBX
S05vdGlmaWNhdGlvblByb3ZpZGVyQmFzZSogd2tQcm92aWRlcikKIHsKLSAgICB0b0ltcGwobWFu
YWdlclJlZiktPmluaXRpYWxpemVQcm92aWRlcih3a1Byb3ZpZGVyKTsKKyAgICB0b0ltcGwobWFu
YWdlclJlZiktPnNldFByb3ZpZGVyKHN0ZDo6bWFrZV91bmlxdWU8V2ViTm90aWZpY2F0aW9uUHJv
dmlkZXI+KHdrUHJvdmlkZXIpKTsKIH0KIAogdm9pZCBXS05vdGlmaWNhdGlvbk1hbmFnZXJQcm92
aWRlckRpZFNob3dOb3RpZmljYXRpb24oV0tOb3RpZmljYXRpb25NYW5hZ2VyUmVmIG1hbmFnZXJS
ZWYsIHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1h
bmFnZXJQcm94eS5jcHAKaW5kZXggMjE4YmMyZmQ0MGUuLjE1OGEzOWQ5YzJlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25N
YW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRp
b25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHAKQEAgLTI3LDcgKzI3LDcgQEAKICNp
bmNsdWRlICJXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaCIKIAogI2luY2x1ZGUgIkFQSUFy
cmF5LmgiCi0jaW5jbHVkZSAiQVBJRGljdGlvbmFyeS5oIgorI2luY2x1ZGUgIkFQSU5vdGlmaWNh
dGlvblByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiQVBJU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRl
ICJXZWJOb3RpZmljYXRpb24uaCIKICNpbmNsdWRlICJXZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVz
c2FnZXMuaCIKQEAgLTU3LDIwICs1NywyNiBAQCBSZWY8V2ViTm90aWZpY2F0aW9uTWFuYWdlclBy
b3h5PiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OmNyZWF0ZShXZWJQcm9jZXNzUAogCiBX
ZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eShX
ZWJQcm9jZXNzUG9vbCogcHJvY2Vzc1Bvb2wpCiAgICAgOiBXZWJDb250ZXh0U3VwcGxlbWVudChw
cm9jZXNzUG9vbCkKKyAgICAsIG1fcHJvdmlkZXIobWFrZVVuaXF1ZVJlZjxBUEk6Ok5vdGlmaWNh
dGlvblByb3ZpZGVyPigpKQogewogfQogCi12b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94
eTo6aW5pdGlhbGl6ZVByb3ZpZGVyKGNvbnN0IFdLTm90aWZpY2F0aW9uUHJvdmlkZXJCYXNlKiBw
cm92aWRlcikKK3ZvaWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5OjpzZXRQcm92aWRlcihz
dGQ6OnVuaXF1ZV9wdHI8QVBJOjpOb3RpZmljYXRpb25Qcm92aWRlcj4mJiBwcm92aWRlcikKIHsK
LSAgICBtX3Byb3ZpZGVyLmluaXRpYWxpemUocHJvdmlkZXIpOwotICAgIG1fcHJvdmlkZXIuYWRk
Tm90aWZpY2F0aW9uTWFuYWdlcih0aGlzKTsKKyAgICBpZiAoIXByb3ZpZGVyKSB7CisgICAgICAg
IG1fcHJvdmlkZXIgPSBtYWtlVW5pcXVlUmVmPEFQSTo6Tm90aWZpY2F0aW9uUHJvdmlkZXI+KCk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX3Byb3ZpZGVyID0gV1RGTW92ZShwcm92
aWRlcik7CisgICAgbV9wcm92aWRlci0+YWRkTm90aWZpY2F0aW9uTWFuYWdlcigqdGhpcyk7CiB9
CiAKIC8vIFdlYkNvbnRleHRTdXBwbGVtZW50CiAKIHZvaWQgV2ViTm90aWZpY2F0aW9uTWFuYWdl
clByb3h5Ojpwcm9jZXNzUG9vbERlc3Ryb3llZCgpCiB7Ci0gICAgbV9wcm92aWRlci5yZW1vdmVO
b3RpZmljYXRpb25NYW5hZ2VyKHRoaXMpOworICAgIG1fcHJvdmlkZXItPnJlbW92ZU5vdGlmaWNh
dGlvbk1hbmFnZXIoKnRoaXMpOwogfQogCiB2b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94
eTo6cmVmV2ViQ29udGV4dFN1cHBsZW1lbnQoKQpAQCAtODMsMTkgKzg5LDkgQEAgdm9pZCBXZWJO
b3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OmRlcmVmV2ViQ29udGV4dFN1cHBsZW1lbnQoKQogICAg
IEFQSTo6T2JqZWN0OjpkZXJlZigpOwogfQogCi12b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQ
cm94eTo6cG9wdWxhdGVDb3B5T2ZOb3RpZmljYXRpb25QZXJtaXNzaW9ucyhIYXNoTWFwPFN0cmlu
ZywgYm9vbD4mIHBlcm1pc3Npb25zKQorSGFzaE1hcDxTdHJpbmcsIGJvb2w+IFdlYk5vdGlmaWNh
dGlvbk1hbmFnZXJQcm94eTo6bm90aWZpY2F0aW9uUGVybWlzc2lvbnMoKQogewotICAgIFJlZlB0
cjxBUEk6OkRpY3Rpb25hcnk+IGtub3duUGVybWlzc2lvbnMgPSBtX3Byb3ZpZGVyLm5vdGlmaWNh
dGlvblBlcm1pc3Npb25zKCk7Ci0KLSAgICBpZiAoIWtub3duUGVybWlzc2lvbnMpCi0gICAgICAg
IHJldHVybjsKLQotICAgIHBlcm1pc3Npb25zLmNsZWFyKCk7Ci0gICAgUmVmPEFQSTo6QXJyYXk+
IGtub3duT3JpZ2lucyA9IGtub3duUGVybWlzc2lvbnMtPmtleXMoKTsKLSAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IGtub3duT3JpZ2lucy0+c2l6ZSgpOyArK2kpIHsKLSAgICAgICAgQVBJOjpT
dHJpbmcqIG9yaWdpbiA9IGtub3duT3JpZ2lucy0+YXQ8QVBJOjpTdHJpbmc+KGkpOwotICAgICAg
ICBwZXJtaXNzaW9ucy5zZXQob3JpZ2luLT5zdHJpbmcoKSwga25vd25QZXJtaXNzaW9ucy0+Z2V0
PEFQSTo6Qm9vbGVhbj4ob3JpZ2luLT5zdHJpbmcoKSktPnZhbHVlKCkpOwotICAgIH0KKyAgICBy
ZXR1cm4gbV9wcm92aWRlci0+bm90aWZpY2F0aW9uUGVybWlzc2lvbnMoKTsKIH0KIAogdm9pZCBX
ZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OnNob3coV2ViUGFnZVByb3h5KiB3ZWJQYWdlLCBj
b25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBTdHJpbmcmIGJvZHksIGNvbnN0IFN0cmluZyYgaWNv
blVSTCwgY29uc3QgU3RyaW5nJiB0YWcsIGNvbnN0IFN0cmluZyYgbGFuZywgV2ViQ29yZTo6Tm90
aWZpY2F0aW9uRGlyZWN0aW9uIGRpciwgY29uc3QgU3RyaW5nJiBvcmlnaW5TdHJpbmcsIHVpbnQ2
NF90IHBhZ2VOb3RpZmljYXRpb25JRCkKQEAgLTEwNSwxMyArMTAxLDEzIEBAIHZvaWQgV2ViTm90
aWZpY2F0aW9uTWFuYWdlclByb3h5OjpzaG93KFdlYlBhZ2VQcm94eSogd2ViUGFnZSwgY29uc3Qg
U3RyaW5nJiB0aXRsCiAgICAgc3RkOjpwYWlyPHVpbnQ2NF90LCB1aW50NjRfdD4gbm90aWZpY2F0
aW9uSURQYWlyID0gc3RkOjptYWtlX3BhaXIod2ViUGFnZS0+cGFnZUlEKCksIHBhZ2VOb3RpZmlj
YXRpb25JRCk7CiAgICAgbV9nbG9iYWxOb3RpZmljYXRpb25NYXAuc2V0KGdsb2JhbE5vdGlmaWNh
dGlvbklELCBub3RpZmljYXRpb25JRFBhaXIpOwogICAgIG1fbm90aWZpY2F0aW9ucy5zZXQobm90
aWZpY2F0aW9uSURQYWlyLCBzdGQ6Om1ha2VfcGFpcihnbG9iYWxOb3RpZmljYXRpb25JRCwgbm90
aWZpY2F0aW9uKSk7Ci0gICAgbV9wcm92aWRlci5zaG93KHdlYlBhZ2UsIG5vdGlmaWNhdGlvbi5n
ZXQoKSk7CisgICAgbV9wcm92aWRlci0+c2hvdygqd2ViUGFnZSwgKm5vdGlmaWNhdGlvbik7CiB9
CiAKIHZvaWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5OjpjYW5jZWwoV2ViUGFnZVByb3h5
KiB3ZWJQYWdlLCB1aW50NjRfdCBwYWdlTm90aWZpY2F0aW9uSUQpCiB7CiAgICAgaWYgKFdlYk5v
dGlmaWNhdGlvbiogbm90aWZpY2F0aW9uID0gbV9ub3RpZmljYXRpb25zLmdldChzdGQ6Om1ha2Vf
cGFpcih3ZWJQYWdlLT5wYWdlSUQoKSwgcGFnZU5vdGlmaWNhdGlvbklEKSkuc2Vjb25kLmdldCgp
KQotICAgICAgICBtX3Byb3ZpZGVyLmNhbmNlbChub3RpZmljYXRpb24pOworICAgICAgICBtX3By
b3ZpZGVyLT5jYW5jZWwoKm5vdGlmaWNhdGlvbik7CiB9CiAgICAgCiB2b2lkIFdlYk5vdGlmaWNh
dGlvbk1hbmFnZXJQcm94eTo6ZGlkRGVzdHJveU5vdGlmaWNhdGlvbihXZWJQYWdlUHJveHkqIHdl
YlBhZ2UsIHVpbnQ2NF90IHBhZ2VOb3RpZmljYXRpb25JRCkKQEAgLTEyMCw3ICsxMTYsNyBAQCB2
b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6ZGlkRGVzdHJveU5vdGlmaWNhdGlvbihX
ZWJQYWdlUHJveHkqIHdlYlBhZ2UsCiAgICAgaWYgKHVpbnQ2NF90IGdsb2JhbE5vdGlmaWNhdGlv
bklEID0gZ2xvYmFsSUROb3RpZmljYXRpb25QYWlyLmZpcnN0KSB7CiAgICAgICAgIFdlYk5vdGlm
aWNhdGlvbiogbm90aWZpY2F0aW9uID0gZ2xvYmFsSUROb3RpZmljYXRpb25QYWlyLnNlY29uZC5n
ZXQoKTsKICAgICAgICAgbV9nbG9iYWxOb3RpZmljYXRpb25NYXAucmVtb3ZlKGdsb2JhbE5vdGlm
aWNhdGlvbklEKTsKLSAgICAgICAgbV9wcm92aWRlci5kaWREZXN0cm95Tm90aWZpY2F0aW9uKG5v
dGlmaWNhdGlvbik7CisgICAgICAgIG1fcHJvdmlkZXItPmRpZERlc3Ryb3lOb3RpZmljYXRpb24o
Km5vdGlmaWNhdGlvbik7CiAgICAgfQogfQogCkBAIC0xNjYsNyArMTYyLDcgQEAgdm9pZCBXZWJO
b3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OmNsZWFyTm90aWZpY2F0aW9ucyhXZWJQYWdlUHJveHkq
IHdlYlBhZ2UsIGNvbnMKICAgICAgICAgbV9ub3RpZmljYXRpb25zLnJlbW92ZShwYWdlTm90aWZp
Y2F0aW9uKTsKICAgICB9CiAKLSAgICBtX3Byb3ZpZGVyLmNsZWFyTm90aWZpY2F0aW9ucyhnbG9i
YWxOb3RpZmljYXRpb25JRHMpOworICAgIG1fcHJvdmlkZXItPmNsZWFyTm90aWZpY2F0aW9ucyhn
bG9iYWxOb3RpZmljYXRpb25JRHMpOwogfQogCiB2b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQ
cm94eTo6cHJvdmlkZXJEaWRTaG93Tm90aWZpY2F0aW9uKHVpbnQ2NF90IGdsb2JhbE5vdGlmaWNh
dGlvbklEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlv
bnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaAppbmRleCA4M2Mx
Yjg0YzIwNi4uMmUyNjRiMmMwOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQ
cm94eS5oCkBAIC0yOSw5ICsyOSw5IEBACiAjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCiAjaW5jbHVk
ZSAiTWVzc2FnZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dFN1cHBsZW1lbnQuaCIK
LSNpbmNsdWRlICJXZWJOb3RpZmljYXRpb25Qcm92aWRlci5oIgogI2luY2x1ZGUgPFdlYkNvcmUv
Tm90aWZpY2F0aW9uQ2xpZW50Lmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRl
IDx3dGYvVW5pcXVlUmVmLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00MCwxMSArNDAsMTMgQEAgZW51bSBjbGFzcyBOb3RpZmlj
YXRpb25EaXJlY3Rpb247CiAKIG5hbWVzcGFjZSBBUEkgewogY2xhc3MgQXJyYXk7CitjbGFzcyBO
b3RpZmljYXRpb25Qcm92aWRlcjsKIGNsYXNzIFNlY3VyaXR5T3JpZ2luOwogfQogCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAorY2xhc3MgV2ViTm90aWZpY2F0aW9uOwogY2xhc3MgV2ViUGFnZVByb3h5
OwogY2xhc3MgV2ViUHJvY2Vzc1Bvb2w7CiAKQEAgLTU1LDggKzU3LDggQEAgcHVibGljOgogCiAg
ICAgc3RhdGljIFJlZjxXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk+IGNyZWF0ZShXZWJQcm9j
ZXNzUG9vbCopOwogCi0gICAgdm9pZCBpbml0aWFsaXplUHJvdmlkZXIoY29uc3QgV0tOb3RpZmlj
YXRpb25Qcm92aWRlckJhc2UqKTsKLSAgICB2b2lkIHBvcHVsYXRlQ29weU9mTm90aWZpY2F0aW9u
UGVybWlzc2lvbnMoSGFzaE1hcDxTdHJpbmcsIGJvb2w+Jik7CisgICAgdm9pZCBzZXRQcm92aWRl
cihzdGQ6OnVuaXF1ZV9wdHI8QVBJOjpOb3RpZmljYXRpb25Qcm92aWRlcj4mJik7CisgICAgSGFz
aE1hcDxTdHJpbmcsIGJvb2w+IG5vdGlmaWNhdGlvblBlcm1pc3Npb25zKCk7CiAKICAgICB2b2lk
IHNob3coV2ViUGFnZVByb3h5KiwgY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiBi
b2R5LCBjb25zdCBTdHJpbmcmIGljb25VUkwsIGNvbnN0IFN0cmluZyYgdGFnLCBjb25zdCBTdHJp
bmcmIGxhbmcsIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkRpcmVjdGlvbiwgY29uc3QgU3RyaW5nJiBv
cmlnaW5TdHJpbmcsIHVpbnQ2NF90IHBhZ2VOb3RpZmljYXRpb25JRCk7CiAgICAgdm9pZCBjYW5j
ZWwoV2ViUGFnZVByb3h5KiwgdWludDY0X3QgcGFnZU5vdGlmaWNhdGlvbklEKTsKQEAgLTg2LDcg
Kzg4LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlZldlYkNvbnRleHRTdXBwbGVtZW50KCkgb3Zl
cnJpZGU7CiAgICAgdm9pZCBkZXJlZldlYkNvbnRleHRTdXBwbGVtZW50KCkgb3ZlcnJpZGU7CiAK
LSAgICBXZWJOb3RpZmljYXRpb25Qcm92aWRlciBtX3Byb3ZpZGVyOworICAgIFVuaXF1ZVJlZjxB
UEk6Ok5vdGlmaWNhdGlvblByb3ZpZGVyPiBtX3Byb3ZpZGVyOwogICAgIC8vIFBhaXIgY29tcHJp
c2VkIG9mIHdlYiBwYWdlIElEIGFuZCB0aGUgd2ViIHByb2Nlc3MncyBub3RpZmljYXRpb24gSUQK
ICAgICBIYXNoTWFwPHVpbnQ2NF90LCBzdGQ6OnBhaXI8dWludDY0X3QsIHVpbnQ2NF90Pj4gbV9n
bG9iYWxOb3RpZmljYXRpb25NYXA7CiAgICAgLy8gS2V5IHBhaXIgY29tcHJpc2VkIG9mIHdlYiBw
YWdlIElEIGFuZCB0aGUgd2ViIHByb2Nlc3MncyBub3RpZmljYXRpb24gSUQ7IHZhbHVlIHBhaXIg
Y29tcHJpc2VkIG9mIGdsb2JhbCBub3RpZmljYXRpb24gSUQsIGFuZCBub3RpZmljYXRpb24gb2Jq
ZWN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9X
ZWJOb3RpZmljYXRpb25Qcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90
aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25Qcm92aWRlci5jcHAKaW5kZXggZGIzNTg4Y2E0YzEu
LjI2NWMxNTlkOWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZp
Y2F0aW9ucy9XZWJOb3RpZmljYXRpb25Qcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuY3BwCkBAIC0z
NywyOCArMzcsMzMgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLXZvaWQgV2ViTm90aWZpY2F0
aW9uUHJvdmlkZXI6OnNob3coV2ViUGFnZVByb3h5KiBwYWdlLCBXZWJOb3RpZmljYXRpb24qIG5v
dGlmaWNhdGlvbikKK1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyOjpXZWJOb3RpZmljYXRpb25Qcm92
aWRlcihjb25zdCBXS05vdGlmaWNhdGlvblByb3ZpZGVyQmFzZSogcHJvdmlkZXIpCit7CisgICAg
aW5pdGlhbGl6ZShwcm92aWRlcik7Cit9CisKK3ZvaWQgV2ViTm90aWZpY2F0aW9uUHJvdmlkZXI6
OnNob3coV2ViUGFnZVByb3h5JiBwYWdlLCBXZWJOb3RpZmljYXRpb24mIG5vdGlmaWNhdGlvbikK
IHsKICAgICBpZiAoIW1fY2xpZW50LnNob3cpCiAgICAgICAgIHJldHVybjsKLSAgICAKLSAgICBt
X2NsaWVudC5zaG93KHRvQVBJKHBhZ2UpLCB0b0FQSShub3RpZmljYXRpb24pLCBtX2NsaWVudC5i
YXNlLmNsaWVudEluZm8pOworCisgICAgbV9jbGllbnQuc2hvdyh0b0FQSSgmcGFnZSksIHRvQVBJ
KCZub3RpZmljYXRpb24pLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwogfQogCi12b2lkIFdl
Yk5vdGlmaWNhdGlvblByb3ZpZGVyOjpjYW5jZWwoV2ViTm90aWZpY2F0aW9uKiBub3RpZmljYXRp
b24pCit2b2lkIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyOjpjYW5jZWwoV2ViTm90aWZpY2F0aW9u
JiBub3RpZmljYXRpb24pCiB7CiAgICAgaWYgKCFtX2NsaWVudC5jYW5jZWwpCiAgICAgICAgIHJl
dHVybjsKLSAgICAKLSAgICBtX2NsaWVudC5jYW5jZWwodG9BUEkobm90aWZpY2F0aW9uKSwgbV9j
bGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKworICAgIG1fY2xpZW50LmNhbmNlbCh0b0FQSSgmbm90
aWZpY2F0aW9uKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKIH0KIAotdm9pZCBXZWJOb3Rp
ZmljYXRpb25Qcm92aWRlcjo6ZGlkRGVzdHJveU5vdGlmaWNhdGlvbihXZWJOb3RpZmljYXRpb24q
IG5vdGlmaWNhdGlvbikKK3ZvaWQgV2ViTm90aWZpY2F0aW9uUHJvdmlkZXI6OmRpZERlc3Ryb3lO
b3RpZmljYXRpb24oV2ViTm90aWZpY2F0aW9uJiBub3RpZmljYXRpb24pCiB7CiAgICAgaWYgKCFt
X2NsaWVudC5kaWREZXN0cm95Tm90aWZpY2F0aW9uKQogICAgICAgICByZXR1cm47Ci0gICAgCi0g
ICAgbV9jbGllbnQuZGlkRGVzdHJveU5vdGlmaWNhdGlvbih0b0FQSShub3RpZmljYXRpb24pLCBt
X2NsaWVudC5iYXNlLmNsaWVudEluZm8pOworCisgICAgbV9jbGllbnQuZGlkRGVzdHJveU5vdGlm
aWNhdGlvbih0b0FQSSgmbm90aWZpY2F0aW9uKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsK
IH0KIAogdm9pZCBXZWJOb3RpZmljYXRpb25Qcm92aWRlcjo6Y2xlYXJOb3RpZmljYXRpb25zKGNv
bnN0IFZlY3Rvcjx1aW50NjRfdD4mIG5vdGlmaWNhdGlvbklEcykKQEAgLTc1LDI4ICs4MCwzOCBA
QCB2b2lkIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyOjpjbGVhck5vdGlmaWNhdGlvbnMoY29uc3Qg
VmVjdG9yPHVpbnQ2NF90PiYgbm90aWZpYwogICAgIG1fY2xpZW50LmNsZWFyTm90aWZpY2F0aW9u
cyh0b0FQSShBUEk6OkFycmF5OjpjcmVhdGUoV1RGTW92ZShhcnJheUlEcykpLnB0cigpKSwgbV9j
bGllbnQuYmFzZS5jbGllbnRJbmZvKTsKIH0KIAotdm9pZCBXZWJOb3RpZmljYXRpb25Qcm92aWRl
cjo6YWRkTm90aWZpY2F0aW9uTWFuYWdlcihXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkqIG1h
bmFnZXIpCit2b2lkIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyOjphZGROb3RpZmljYXRpb25NYW5h
Z2VyKFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eSYgbWFuYWdlcikKIHsKICAgICBpZiAoIW1f
Y2xpZW50LmFkZE5vdGlmaWNhdGlvbk1hbmFnZXIpCiAgICAgICAgIHJldHVybjsKLSAgICAKLSAg
ICBtX2NsaWVudC5hZGROb3RpZmljYXRpb25NYW5hZ2VyKHRvQVBJKG1hbmFnZXIpLCBtX2NsaWVu
dC5iYXNlLmNsaWVudEluZm8pOworCisgICAgbV9jbGllbnQuYWRkTm90aWZpY2F0aW9uTWFuYWdl
cih0b0FQSSgmbWFuYWdlciksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CiB9CiAKLXZvaWQg
V2ViTm90aWZpY2F0aW9uUHJvdmlkZXI6OnJlbW92ZU5vdGlmaWNhdGlvbk1hbmFnZXIoV2ViTm90
aWZpY2F0aW9uTWFuYWdlclByb3h5KiBtYW5hZ2VyKQordm9pZCBXZWJOb3RpZmljYXRpb25Qcm92
aWRlcjo6cmVtb3ZlTm90aWZpY2F0aW9uTWFuYWdlcihXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJv
eHkmIG1hbmFnZXIpCiB7CiAgICAgaWYgKCFtX2NsaWVudC5yZW1vdmVOb3RpZmljYXRpb25NYW5h
Z2VyKQogICAgICAgICByZXR1cm47Ci0gICAgCi0gICAgbV9jbGllbnQucmVtb3ZlTm90aWZpY2F0
aW9uTWFuYWdlcih0b0FQSShtYW5hZ2VyKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKwor
ICAgIG1fY2xpZW50LnJlbW92ZU5vdGlmaWNhdGlvbk1hbmFnZXIodG9BUEkoJm1hbmFnZXIpLCBt
X2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwogfQogCi1SZWZQdHI8QVBJOjpEaWN0aW9uYXJ5PiBX
ZWJOb3RpZmljYXRpb25Qcm92aWRlcjo6bm90aWZpY2F0aW9uUGVybWlzc2lvbnMoKQorSGFzaE1h
cDxXVEY6OlN0cmluZywgYm9vbD4gV2ViTm90aWZpY2F0aW9uUHJvdmlkZXI6Om5vdGlmaWNhdGlv
blBlcm1pc3Npb25zKCkKIHsKKyAgICBIYXNoTWFwPFdURjo6U3RyaW5nLCBib29sPiBwZXJtaXNz
aW9uczsKICAgICBpZiAoIW1fY2xpZW50Lm5vdGlmaWNhdGlvblBlcm1pc3Npb25zKQotICAgICAg
ICByZXR1cm4gQVBJOjpEaWN0aW9uYXJ5OjpjcmVhdGUoKTsKKyAgICAgICAgcmV0dXJuIHBlcm1p
c3Npb25zOworCisgICAgUmVmUHRyPEFQSTo6RGljdGlvbmFyeT4ga25vd25QZXJtaXNzaW9ucyA9
IGFkb3B0UmVmKHRvSW1wbChtX2NsaWVudC5ub3RpZmljYXRpb25QZXJtaXNzaW9ucyhtX2NsaWVu
dC5iYXNlLmNsaWVudEluZm8pKSk7CisgICAgaWYgKCFrbm93blBlcm1pc3Npb25zKQorICAgICAg
ICByZXR1cm4gcGVybWlzc2lvbnM7CiAKLSAgICByZXR1cm4gYWRvcHRSZWYodG9JbXBsKG1fY2xp
ZW50Lm5vdGlmaWNhdGlvblBlcm1pc3Npb25zKG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbykpKTsK
KyAgICBSZWY8QVBJOjpBcnJheT4ga25vd25PcmlnaW5zID0ga25vd25QZXJtaXNzaW9ucy0+a2V5
cygpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwga25vd25PcmlnaW5zLT5zaXplKCk7ICsr
aSkgeworICAgICAgICBBUEk6OlN0cmluZyogb3JpZ2luID0ga25vd25PcmlnaW5zLT5hdDxBUEk6
OlN0cmluZz4oaSk7CisgICAgICAgIHBlcm1pc3Npb25zLnNldChvcmlnaW4tPnN0cmluZygpLCBr
bm93blBlcm1pc3Npb25zLT5nZXQ8QVBJOjpCb29sZWFuPihvcmlnaW4tPnN0cmluZygpKS0+dmFs
dWUoKSk7CisgICAgfQorICAgIHJldHVybiBwZXJtaXNzaW9uczsKIH0KIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0
aW9ucy9XZWJOb3RpZmljYXRpb25Qcm92aWRlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuaAppbmRleCAyNjJiMWU1MzJk
MS4uOTVkZTkxMDVhZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3Rp
ZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuaApAQCAtMjcs
MTQgKzI3LDEyIEBACiAjZGVmaW5lIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyX2gKIAogI2luY2x1
ZGUgIkFQSUNsaWVudC5oIgorI2luY2x1ZGUgIkFQSU5vdGlmaWNhdGlvblByb3ZpZGVyLmgiCiAj
aW5jbHVkZSAiV0tOb3RpZmljYXRpb25Qcm92aWRlci5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJk
Lmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgQVBJIHsKLQotY2xhc3Mg
RGljdGlvbmFyeTsKLQogdGVtcGxhdGU8PiBzdHJ1Y3QgQ2xpZW50VHJhaXRzPFdLTm90aWZpY2F0
aW9uUHJvdmlkZXJCYXNlPiB7CiAgICAgdHlwZWRlZiBzdGQ6OnR1cGxlPFdLTm90aWZpY2F0aW9u
UHJvdmlkZXJWMD4gVmVyc2lvbnM7CiB9OwpAQCAtNDUsMTggKzQzLDIwIEBAIG5hbWVzcGFjZSBX
ZWJLaXQgewogY2xhc3MgV2ViTm90aWZpY2F0aW9uOwogY2xhc3MgV2ViTm90aWZpY2F0aW9uTWFu
YWdlclByb3h5OwogY2xhc3MgV2ViUGFnZVByb3h5OwotICAgIAotY2xhc3MgV2ViTm90aWZpY2F0
aW9uUHJvdmlkZXIgOiBwdWJsaWMgQVBJOjpDbGllbnQ8V0tOb3RpZmljYXRpb25Qcm92aWRlckJh
c2U+IHsKKworY2xhc3MgV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIgOiBwdWJsaWMgQVBJOjpOb3Rp
ZmljYXRpb25Qcm92aWRlciwgcHVibGljIEFQSTo6Q2xpZW50PFdLTm90aWZpY2F0aW9uUHJvdmlk
ZXJCYXNlPiB7CiBwdWJsaWM6Ci0gICAgdm9pZCBzaG93KFdlYlBhZ2VQcm94eSosIFdlYk5vdGlm
aWNhdGlvbiopOwotICAgIHZvaWQgY2FuY2VsKFdlYk5vdGlmaWNhdGlvbiopOwotICAgIHZvaWQg
ZGlkRGVzdHJveU5vdGlmaWNhdGlvbihXZWJOb3RpZmljYXRpb24qKTsKLSAgICB2b2lkIGNsZWFy
Tm90aWZpY2F0aW9ucyhjb25zdCBWZWN0b3I8dWludDY0X3Q+JiBub3RpZmljYXRpb25JRHMpOwor
ICAgIGV4cGxpY2l0IFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyKGNvbnN0IFdLTm90aWZpY2F0aW9u
UHJvdmlkZXJCYXNlKik7CisKKyAgICB2b2lkIHNob3coV2ViUGFnZVByb3h5JiwgV2ViTm90aWZp
Y2F0aW9uJikgb3ZlcnJpZGU7CisgICAgdm9pZCBjYW5jZWwoV2ViTm90aWZpY2F0aW9uJikgb3Zl
cnJpZGU7CisgICAgdm9pZCBkaWREZXN0cm95Tm90aWZpY2F0aW9uKFdlYk5vdGlmaWNhdGlvbiYp
IG92ZXJyaWRlOworICAgIHZvaWQgY2xlYXJOb3RpZmljYXRpb25zKGNvbnN0IFZlY3Rvcjx1aW50
NjRfdD4mIG5vdGlmaWNhdGlvbklEcykgb3ZlcnJpZGU7CisKKyAgICB2b2lkIGFkZE5vdGlmaWNh
dGlvbk1hbmFnZXIoV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5Jikgb3ZlcnJpZGU7CisgICAg
dm9pZCByZW1vdmVOb3RpZmljYXRpb25NYW5hZ2VyKFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94
eSYpIG92ZXJyaWRlOwogCi0gICAgdm9pZCBhZGROb3RpZmljYXRpb25NYW5hZ2VyKFdlYk5vdGlm
aWNhdGlvbk1hbmFnZXJQcm94eSopOwotICAgIHZvaWQgcmVtb3ZlTm90aWZpY2F0aW9uTWFuYWdl
cihXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkqKTsKLSAgICAKLSAgICBSZWZQdHI8QVBJOjpE
aWN0aW9uYXJ5PiBub3RpZmljYXRpb25QZXJtaXNzaW9ucygpOworICAgIEhhc2hNYXA8V1RGOjpT
dHJpbmcsIGJvb2w+IG5vdGlmaWNhdGlvblBlcm1pc3Npb25zKCkgb3ZlcnJpZGU7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Bvb2wuY3BwCmluZGV4IGU2ZjYxYjc1NGNmLi45ZGYyNDU2NjlhZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC03MTUsNyArNzE1LDcgQEAgV2Vi
UHJvY2Vzc1Byb3h5JiBXZWJQcm9jZXNzUG9vbDo6Y3JlYXRlTmV3V2ViUHJvY2VzcyhXZWJzaXRl
RGF0YVN0b3JlJiB3ZWJzaXRlRGEKIAogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQogICAgIC8v
IEZJWE1FOiBUaGVyZSBzaG91bGQgYmUgYSBnZW5lcmljIHdheSBmb3Igc3VwcGxlbWVudHMgdG8g
YWRkIHRvIHRoZSBpbnRpYWxpemF0aW9uIHBhcmFtZXRlcnMuCi0gICAgc3VwcGxlbWVudDxXZWJO
b3RpZmljYXRpb25NYW5hZ2VyUHJveHk+KCktPnBvcHVsYXRlQ29weU9mTm90aWZpY2F0aW9uUGVy
bWlzc2lvbnMocGFyYW1ldGVycy5ub3RpZmljYXRpb25QZXJtaXNzaW9ucyk7CisgICAgcGFyYW1l
dGVycy5ub3RpZmljYXRpb25QZXJtaXNzaW9ucyA9IHN1cHBsZW1lbnQ8V2ViTm90aWZpY2F0aW9u
TWFuYWdlclByb3h5PigpLT5ub3RpZmljYXRpb25QZXJtaXNzaW9ucygpOwogI2VuZGlmCiAKICAg
ICBwYXJhbWV0ZXJzLnBsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlcyA9IG1fcGx1Z0luQXV0b1N0
YXJ0UHJvdmlkZXIuYXV0b1N0YXJ0T3JpZ2luSGFzaGVzQ29weSgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dl
YktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGRmODNhYjY2OGM5
Li40NTZiYzU3YWEwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtMTIwNyw2ICsxMjA3LDcgQEAKIAkJNzVBOEQyQzkxODdDQ0ZB
RjAwQzM5QzlFIC8qIFdLV2Vic2l0ZURhdGFTdG9yZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1QThEMkM1MTg3Q0NGOUYwMEMzOUM5RSAvKiBXS1dl
YnNpdGVEYXRhU3RvcmUubW0gKi87IH07CiAJCTc1QThEMkQ2MTg3RDFDMEUwMEMzOUM5RSAvKiBX
S1dlYnNpdGVEYXRhU3RvcmVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNzVBOEQyRDQxODdEMUMwMTAwQzM5QzlFIC8qIFdLV2Vic2l0ZURh
dGFTdG9yZUludGVybmFsLmggKi87IH07CiAJCTc2MkI3NDhEMTIwQkM3NUMwMDgxOTMzOSAvKiBX
S1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNzYyQjc0ODQxMjBCQkEyRDAwODE5MzM5IC8qIFdLUHJlZmVyZW5jZXNS
ZWZQcml2YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKKwkJN0ExRTJBODUxRUVGRTg5MjAwMzdBMEUwIC8qIEFQSU5vdGlmaWNhdGlvblByb3ZpZGVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QTFFMkE4
NDFFRUZFODhBMDAzN0EwRTAgLyogQVBJTm90aWZpY2F0aW9uUHJvdmlkZXIuaCAqLzsgfTsKIAkJ
N0EzQUNFMUIxRUVFRjc5QjAwQTg2NEE0IC8qIEFQSUluamVjdGVkQnVuZGxlUGFnZUxvYWRlckNs
aWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0Ez
QUNFMUExRUVFRjc4QzAwQTg2NEE0IC8qIEFQSUluamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVu
dC5oICovOyB9OwogCQk3QTc3MkM4RDFEREQ0QTI1MDAwRjM0RjEgLyogY29tLmFwcGxlLldlYktp
dC5wbHVnaW4tY29tbW9uLnNiIGluIENvcHkgUGx1Zy1pbiBTYW5kYm94IFByb2ZpbGVzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdBMTUwNjcyMURENTYyOTgwMDFGNEI1OCAv
KiBjb20uYXBwbGUuV2ViS2l0LnBsdWdpbi1jb21tb24uc2IgKi87IH07CiAJCTdBNzkxRUZBMUM3
Q0ZDRjEwMEM0QzUyQiAvKiBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmVNZXNzYWdlUmVj
ZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
N0E3OTFFRjkxQzdDRkIzNzAwQzRDNTJCIC8qIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9y
ZU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CkBAIC0zNDk0LDYgKzM0OTUsNyBAQAogCQk3NjJC
NzQ4MTEyMEJCQTAxMDA4MTkzMzkgLyogRm9udFNtb290aGluZ0xldmVsLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZvbnRTbW9vdGhpbmdMZXZlbC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk3NjJCNzQ4NDEyMEJCQTJEMDA4MTkzMzkgLyogV0tQcmVmZXJlbmNl
c1JlZlByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tQcmVmZXJl
bmNlc1JlZlByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0ExNTA2NzIx
REQ1NjI5ODAwMUY0QjU4IC8qIGNvbS5hcHBsZS5XZWJLaXQucGx1Z2luLWNvbW1vbi5zYiAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSAiY29tLmFwcGxlLldlYktpdC5wbHVnaW4tY29tbW9uLnNiIjsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0ExRTJBODQxRUVGRTg4QTAwMzdBMEUwIC8q
IEFQSU5vdGlmaWNhdGlvblByb3ZpZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEFQSU5vdGlmaWNhdGlvblByb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTdBM0FDRTFBMUVFRUY3OEMwMEE4NjRBNCAvKiBBUElJbmplY3RlZEJ1bmRsZVBhZ2VMb2Fk
ZXJDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVBJSW5qZWN0ZWRC
dW5kbGVQYWdlTG9hZGVyQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdB
NUUzOTQ5MUQ1QkQ4QTcwMEI0QjdDRSAvKiBjb20ubWFjcm9tZWRpYS5GbGFzaCBQbGF5ZXIgRVNS
LnBsdWdpbi5zYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSAiY29tLm1hY3JvbWVkaWEuRmxhc2gg
UGxheWVyIEVTUi5wbHVnaW4uc2IiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QTc5
MUVGODFDN0NGQjEwMDBDNEM1MkIgLyogV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlTWVz
c2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTY5MDEsNiArNjkwMyw3IEBACiAJCQkJQkNGNjlGQTExMTc2RDAxNDAwNDcxQTUyIC8qIEFQSU5h
dmlnYXRpb25EYXRhLmNwcCAqLywKIAkJCQlCQ0Y2OUZBMDExNzZEMDE0MDA0NzFBNTIgLyogQVBJ
TmF2aWdhdGlvbkRhdGEuaCAqLywKIAkJCQkyREY5RUVFRDFBNzg2RUFEMDBCNkNGQkUgLyogQVBJ
TmF2aWdhdGlvblJlc3BvbnNlLmggKi8sCisJCQkJN0ExRTJBODQxRUVGRTg4QTAwMzdBMEUwIC8q
IEFQSU5vdGlmaWNhdGlvblByb3ZpZGVyLmggKi8sCiAJCQkJQkM4NTdGQjQxMkI4MzBFNjAwRURF
QjJFIC8qIEFQSU9wZW5QYW5lbFBhcmFtZXRlcnMuY3BwICovLAogCQkJCUJDODU3RkIzMTJCODMw
RTYwMEVERUIyRSAvKiBBUElPcGVuUGFuZWxQYXJhbWV0ZXJzLmggKi8sCiAJCQkJN0M4OUQyOTUx
QTY3NTNCMjAwM0E1RkRFIC8qIEFQSVBhZ2VDb25maWd1cmF0aW9uLmNwcCAqLywKQEAgLTgxNjMs
NiArODE2Niw3IEBACiAJCQkJNTEwRjU5MTAxRERFMjk2OTAwNDEyRkY1IC8qIF9XS0ljb25Mb2Fk
aW5nRGVsZWdhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTM3QTY0RTU1MThGMzhFM0MwMEVCMzBG
MSAvKiBfV0tJbnB1dERlbGVnYXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDc5MEE5RDFBRDcw
NTBEMDBBQjkwQjMgLyogX1dLTGF5b3V0TW9kZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJN0ExRTJB
ODUxRUVGRTg5MjAwMzdBMEUwIC8qIEFQSU5vdGlmaWNhdGlvblByb3ZpZGVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk1MTBGNTkxMTFEREUyOTcwMDA0MTJGRjUgLyogX1dLTGlua0ljb25QYXJhbWV0
ZXJzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMTE4QTlGMzE5MDhCOEVBMDBGN0M5MkIgLyogX1dL
TlNGaWxlTWFuYWdlckV4dHJhcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMyMzYxMUUxQjAxNURB
ODAwRkE5MjMyIC8qIF9XS092ZXJsYXlTY3JvbGxiYXJTdHlsZS5oIGluIEhlYWRlcnMgKi8sCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>312863</attachid>
            <date>2017-06-13 23:16:30 -0700</date>
            <delta_ts>2017-06-14 08:40:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-notification-api.diff</filename>
            <type>text/plain</type>
            <size>23215</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA0YWIwOTE5MjU4ZC4uYmIyMjM3YjZiYjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NSBAQAorMjAxNy0wNi0xMyAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGln
YWxpYS5jb20+CisKKyAgICAgICAgQWRkIEFQSTo6Tm90aWZpY2F0aW9uUHJvdmlkZXIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MzMwOQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEl0IHdpbGwgYmUgdXNl
ZCBieSB0aGUgR1RLKyBwb3J0IGluc3RlYWQgb2YgdGhlIEMgQVBJLgorCisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9BUElOb3RpZmljYXRpb25Qcm92aWRlci5oOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25Qcm92aWRlci5o
LgorICAgICAgICAoQVBJOjpOb3RpZmljYXRpb25Qcm92aWRlcjo6c2hvdyk6CisgICAgICAgIChB
UEk6Ok5vdGlmaWNhdGlvblByb3ZpZGVyOjpjYW5jZWwpOgorICAgICAgICAoQVBJOjpOb3RpZmlj
YXRpb25Qcm92aWRlcjo6ZGlkRGVzdHJveU5vdGlmaWNhdGlvbik6CisgICAgICAgIChBUEk6Ok5v
dGlmaWNhdGlvblByb3ZpZGVyOjpjbGVhck5vdGlmaWNhdGlvbnMpOgorICAgICAgICAoQVBJOjpO
b3RpZmljYXRpb25Qcm92aWRlcjo6YWRkTm90aWZpY2F0aW9uTWFuYWdlcik6CisgICAgICAgIChB
UEk6Ok5vdGlmaWNhdGlvblByb3ZpZGVyOjpyZW1vdmVOb3RpZmljYXRpb25NYW5hZ2VyKToKKyAg
ICAgICAgKEFQSTo6Tm90aWZpY2F0aW9uUHJvdmlkZXI6Om5vdGlmaWNhdGlvblBlcm1pc3Npb25z
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tOb3RpZmljYXRpb25NYW5hZ2VyLmNwcDoK
KyAgICAgICAgKFdLTm90aWZpY2F0aW9uTWFuYWdlclNldFByb3ZpZGVyKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OldlYk5vdGlmaWNh
dGlvbk1hbmFnZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFn
ZXJQcm94eTo6c2V0UHJvdmlkZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25N
YW5hZ2VyUHJveHk6OnByb2Nlc3NQb29sRGVzdHJveWVkKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Tm90aWZpY2F0aW9uTWFuYWdlclByb3h5Ojpub3RpZmljYXRpb25QZXJtaXNzaW9ucyk6CisgICAg
ICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6c2hvdyk6CisgICAgICAg
IChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6Y2FuY2VsKToKKyAgICAgICAg
KFdlYktpdDo6V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5OjpkaWREZXN0cm95Tm90aWZpY2F0
aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5OjpjbGVh
ck5vdGlmaWNhdGlvbnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5v
dGlmaWNhdGlvbk1hbmFnZXJQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Ob3RpZmljYXRp
b25zL1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTm90
aWZpY2F0aW9uUHJvdmlkZXI6OldlYk5vdGlmaWNhdGlvblByb3ZpZGVyKToKKyAgICAgICAgKFdl
YktpdDo6V2ViTm90aWZpY2F0aW9uUHJvdmlkZXI6OnNob3cpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJOb3RpZmljYXRpb25Qcm92aWRlcjo6Y2FuY2VsKToKKyAgICAgICAgKFdlYktpdDo6V2ViTm90
aWZpY2F0aW9uUHJvdmlkZXI6OmRpZERlc3Ryb3lOb3RpZmljYXRpb24pOgorICAgICAgICAoV2Vi
S2l0OjpXZWJOb3RpZmljYXRpb25Qcm92aWRlcjo6YWRkTm90aWZpY2F0aW9uTWFuYWdlcik6Cisg
ICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvblByb3ZpZGVyOjpyZW1vdmVOb3RpZmljYXRp
b25NYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uUHJvdmlkZXI6Om5v
dGlmaWNhdGlvblBlcm1pc3Npb25zKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTm90aWZpY2F0aW9u
cy9XZWJOb3RpZmljYXRpb25Qcm92aWRlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9j
ZXNzUG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpjcmVhdGVOZXdX
ZWJQcm9jZXNzKToKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisKIDIwMTctMDYtMTMgIE1hdHQgUmFqY2EgIDxtcmFqY2FAYXBwbGUuY29tPgogCiAgICAgICAg
IFdlYnNpdGVQb2xpY2llczogbGV0IGNsaWVudHMgc2VsZWN0IHNwZWNpZmljIGF1dG9wbGF5IHF1
aXJrcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElOb3RpZmlj
YXRpb25Qcm92aWRlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElOb3RpZmlj
YXRpb25Qcm92aWRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41
YzhjOWJkYjY5NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQVBJTm90aWZpY2F0aW9uUHJvdmlkZXIuaApAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE3IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1
ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CisKK25h
bWVzcGFjZSBXZWJLaXQgeworY2xhc3MgV2ViTm90aWZpY2F0aW9uOworY2xhc3MgV2ViTm90aWZp
Y2F0aW9uTWFuYWdlclByb3h5OworY2xhc3MgV2ViUGFnZVByb3h5OworfQorCituYW1lc3BhY2Ug
QVBJIHsKKworY2xhc3MgTm90aWZpY2F0aW9uUHJvdmlkZXIgeworcHVibGljOgorICAgIHZpcnR1
YWwgfk5vdGlmaWNhdGlvblByb3ZpZGVyKCkgPSBkZWZhdWx0OworCisgICAgdmlydHVhbCB2b2lk
IHNob3coV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbiYpIHsg
fQorICAgIHZpcnR1YWwgdm9pZCBjYW5jZWwoV2ViS2l0OjpXZWJOb3RpZmljYXRpb24mKSB7IH0K
KyAgICB2aXJ0dWFsIHZvaWQgZGlkRGVzdHJveU5vdGlmaWNhdGlvbihXZWJLaXQ6OldlYk5vdGlm
aWNhdGlvbiYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBjbGVhck5vdGlmaWNhdGlvbnMoY29uc3Qg
VmVjdG9yPHVpbnQ2NF90PiYgLypub3RpZmljYXRpb25JRHMqLykgeyB9CisKKyAgICB2aXJ0dWFs
IHZvaWQgYWRkTm90aWZpY2F0aW9uTWFuYWdlcihXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFn
ZXJQcm94eSYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCByZW1vdmVOb3RpZmljYXRpb25NYW5hZ2Vy
KFdlYktpdDo6V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5JikgeyB9CisKKyAgICB2aXJ0dWFs
IEhhc2hNYXA8V1RGOjpTdHJpbmcsIGJvb2w+IG5vdGlmaWNhdGlvblBlcm1pc3Npb25zKCkgeyBy
ZXR1cm4gSGFzaE1hcDxXVEY6OlN0cmluZywgYm9vbD4oKTsgfTsKK307CisKK30gLy8gbmFtZXNw
YWNlIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLTm90
aWZpY2F0aW9uTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tO
b3RpZmljYXRpb25NYW5hZ2VyLmNwcAppbmRleCA0NzZmMDhiYmExMy4uYjIyM2Q2Zjg3YmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS05vdGlmaWNhdGlvbk1h
bmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS05vdGlmaWNh
dGlvbk1hbmFnZXIuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiV0tBUElDYXN0Lmgi
CiAjaW5jbHVkZSAiV2ViTm90aWZpY2F0aW9uLmgiCiAjaW5jbHVkZSAiV2ViTm90aWZpY2F0aW9u
TWFuYWdlclByb3h5LmgiCisjaW5jbHVkZSAiV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuaCIKIAog
dXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIApAQCAtNDAsNyArNDEsNyBAQCBXS1R5cGVJRCBXS05v
dGlmaWNhdGlvbk1hbmFnZXJHZXRUeXBlSUQoKQogCiB2b2lkIFdLTm90aWZpY2F0aW9uTWFuYWdl
clNldFByb3ZpZGVyKFdLTm90aWZpY2F0aW9uTWFuYWdlclJlZiBtYW5hZ2VyUmVmLCBjb25zdCBX
S05vdGlmaWNhdGlvblByb3ZpZGVyQmFzZSogd2tQcm92aWRlcikKIHsKLSAgICB0b0ltcGwobWFu
YWdlclJlZiktPmluaXRpYWxpemVQcm92aWRlcih3a1Byb3ZpZGVyKTsKKyAgICB0b0ltcGwobWFu
YWdlclJlZiktPnNldFByb3ZpZGVyKHN0ZDo6bWFrZV91bmlxdWU8V2ViTm90aWZpY2F0aW9uUHJv
dmlkZXI+KHdrUHJvdmlkZXIpKTsKIH0KIAogdm9pZCBXS05vdGlmaWNhdGlvbk1hbmFnZXJQcm92
aWRlckRpZFNob3dOb3RpZmljYXRpb24oV0tOb3RpZmljYXRpb25NYW5hZ2VyUmVmIG1hbmFnZXJS
ZWYsIHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1h
bmFnZXJQcm94eS5jcHAKaW5kZXggMjE4YmMyZmQ0MGUuLmM4NWNjNWEwNDY1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25N
YW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRp
b25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHAKQEAgLTI3LDcgKzI3LDcgQEAKICNp
bmNsdWRlICJXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaCIKIAogI2luY2x1ZGUgIkFQSUFy
cmF5LmgiCi0jaW5jbHVkZSAiQVBJRGljdGlvbmFyeS5oIgorI2luY2x1ZGUgIkFQSU5vdGlmaWNh
dGlvblByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiQVBJU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRl
ICJXZWJOb3RpZmljYXRpb24uaCIKICNpbmNsdWRlICJXZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVz
c2FnZXMuaCIKQEAgLTU3LDIwICs1NywyNiBAQCBSZWY8V2ViTm90aWZpY2F0aW9uTWFuYWdlclBy
b3h5PiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OmNyZWF0ZShXZWJQcm9jZXNzUAogCiBX
ZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eShX
ZWJQcm9jZXNzUG9vbCogcHJvY2Vzc1Bvb2wpCiAgICAgOiBXZWJDb250ZXh0U3VwcGxlbWVudChw
cm9jZXNzUG9vbCkKKyAgICAsIG1fcHJvdmlkZXIoc3RkOjptYWtlX3VuaXF1ZTxBUEk6Ok5vdGlm
aWNhdGlvblByb3ZpZGVyPigpKQogewogfQogCi12b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQ
cm94eTo6aW5pdGlhbGl6ZVByb3ZpZGVyKGNvbnN0IFdLTm90aWZpY2F0aW9uUHJvdmlkZXJCYXNl
KiBwcm92aWRlcikKK3ZvaWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5OjpzZXRQcm92aWRl
cihzdGQ6OnVuaXF1ZV9wdHI8QVBJOjpOb3RpZmljYXRpb25Qcm92aWRlcj4mJiBwcm92aWRlcikK
IHsKLSAgICBtX3Byb3ZpZGVyLmluaXRpYWxpemUocHJvdmlkZXIpOwotICAgIG1fcHJvdmlkZXIu
YWRkTm90aWZpY2F0aW9uTWFuYWdlcih0aGlzKTsKKyAgICBpZiAoIXByb3ZpZGVyKSB7CisgICAg
ICAgIG1fcHJvdmlkZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPEFQSTo6Tm90aWZpY2F0aW9uUHJvdmlk
ZXI+KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX3Byb3ZpZGVyID0gV1RGTW92
ZShwcm92aWRlcik7CisgICAgbV9wcm92aWRlci0+YWRkTm90aWZpY2F0aW9uTWFuYWdlcigqdGhp
cyk7CiB9CiAKIC8vIFdlYkNvbnRleHRTdXBwbGVtZW50CiAKIHZvaWQgV2ViTm90aWZpY2F0aW9u
TWFuYWdlclByb3h5Ojpwcm9jZXNzUG9vbERlc3Ryb3llZCgpCiB7Ci0gICAgbV9wcm92aWRlci5y
ZW1vdmVOb3RpZmljYXRpb25NYW5hZ2VyKHRoaXMpOworICAgIG1fcHJvdmlkZXItPnJlbW92ZU5v
dGlmaWNhdGlvbk1hbmFnZXIoKnRoaXMpOwogfQogCiB2b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFn
ZXJQcm94eTo6cmVmV2ViQ29udGV4dFN1cHBsZW1lbnQoKQpAQCAtODMsMTkgKzg5LDkgQEAgdm9p
ZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OmRlcmVmV2ViQ29udGV4dFN1cHBsZW1lbnQo
KQogICAgIEFQSTo6T2JqZWN0OjpkZXJlZigpOwogfQogCi12b2lkIFdlYk5vdGlmaWNhdGlvbk1h
bmFnZXJQcm94eTo6cG9wdWxhdGVDb3B5T2ZOb3RpZmljYXRpb25QZXJtaXNzaW9ucyhIYXNoTWFw
PFN0cmluZywgYm9vbD4mIHBlcm1pc3Npb25zKQorSGFzaE1hcDxTdHJpbmcsIGJvb2w+IFdlYk5v
dGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6bm90aWZpY2F0aW9uUGVybWlzc2lvbnMoKQogewotICAg
IFJlZlB0cjxBUEk6OkRpY3Rpb25hcnk+IGtub3duUGVybWlzc2lvbnMgPSBtX3Byb3ZpZGVyLm5v
dGlmaWNhdGlvblBlcm1pc3Npb25zKCk7Ci0KLSAgICBpZiAoIWtub3duUGVybWlzc2lvbnMpCi0g
ICAgICAgIHJldHVybjsKLQotICAgIHBlcm1pc3Npb25zLmNsZWFyKCk7Ci0gICAgUmVmPEFQSTo6
QXJyYXk+IGtub3duT3JpZ2lucyA9IGtub3duUGVybWlzc2lvbnMtPmtleXMoKTsKLSAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IGtub3duT3JpZ2lucy0+c2l6ZSgpOyArK2kpIHsKLSAgICAgICAg
QVBJOjpTdHJpbmcqIG9yaWdpbiA9IGtub3duT3JpZ2lucy0+YXQ8QVBJOjpTdHJpbmc+KGkpOwot
ICAgICAgICBwZXJtaXNzaW9ucy5zZXQob3JpZ2luLT5zdHJpbmcoKSwga25vd25QZXJtaXNzaW9u
cy0+Z2V0PEFQSTo6Qm9vbGVhbj4ob3JpZ2luLT5zdHJpbmcoKSktPnZhbHVlKCkpOwotICAgIH0K
KyAgICByZXR1cm4gbV9wcm92aWRlci0+bm90aWZpY2F0aW9uUGVybWlzc2lvbnMoKTsKIH0KIAog
dm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OnNob3coV2ViUGFnZVByb3h5KiB3ZWJQ
YWdlLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBTdHJpbmcmIGJvZHksIGNvbnN0IFN0cmlu
ZyYgaWNvblVSTCwgY29uc3QgU3RyaW5nJiB0YWcsIGNvbnN0IFN0cmluZyYgbGFuZywgV2ViQ29y
ZTo6Tm90aWZpY2F0aW9uRGlyZWN0aW9uIGRpciwgY29uc3QgU3RyaW5nJiBvcmlnaW5TdHJpbmcs
IHVpbnQ2NF90IHBhZ2VOb3RpZmljYXRpb25JRCkKQEAgLTEwNSwxMyArMTAxLDEzIEBAIHZvaWQg
V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5OjpzaG93KFdlYlBhZ2VQcm94eSogd2ViUGFnZSwg
Y29uc3QgU3RyaW5nJiB0aXRsCiAgICAgc3RkOjpwYWlyPHVpbnQ2NF90LCB1aW50NjRfdD4gbm90
aWZpY2F0aW9uSURQYWlyID0gc3RkOjptYWtlX3BhaXIod2ViUGFnZS0+cGFnZUlEKCksIHBhZ2VO
b3RpZmljYXRpb25JRCk7CiAgICAgbV9nbG9iYWxOb3RpZmljYXRpb25NYXAuc2V0KGdsb2JhbE5v
dGlmaWNhdGlvbklELCBub3RpZmljYXRpb25JRFBhaXIpOwogICAgIG1fbm90aWZpY2F0aW9ucy5z
ZXQobm90aWZpY2F0aW9uSURQYWlyLCBzdGQ6Om1ha2VfcGFpcihnbG9iYWxOb3RpZmljYXRpb25J
RCwgbm90aWZpY2F0aW9uKSk7Ci0gICAgbV9wcm92aWRlci5zaG93KHdlYlBhZ2UsIG5vdGlmaWNh
dGlvbi5nZXQoKSk7CisgICAgbV9wcm92aWRlci0+c2hvdygqd2ViUGFnZSwgKm5vdGlmaWNhdGlv
bik7CiB9CiAKIHZvaWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5OjpjYW5jZWwoV2ViUGFn
ZVByb3h5KiB3ZWJQYWdlLCB1aW50NjRfdCBwYWdlTm90aWZpY2F0aW9uSUQpCiB7CiAgICAgaWYg
KFdlYk5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9uID0gbV9ub3RpZmljYXRpb25zLmdldChzdGQ6
Om1ha2VfcGFpcih3ZWJQYWdlLT5wYWdlSUQoKSwgcGFnZU5vdGlmaWNhdGlvbklEKSkuc2Vjb25k
LmdldCgpKQotICAgICAgICBtX3Byb3ZpZGVyLmNhbmNlbChub3RpZmljYXRpb24pOworICAgICAg
ICBtX3Byb3ZpZGVyLT5jYW5jZWwoKm5vdGlmaWNhdGlvbik7CiB9CiAgICAgCiB2b2lkIFdlYk5v
dGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6ZGlkRGVzdHJveU5vdGlmaWNhdGlvbihXZWJQYWdlUHJv
eHkqIHdlYlBhZ2UsIHVpbnQ2NF90IHBhZ2VOb3RpZmljYXRpb25JRCkKQEAgLTEyMCw3ICsxMTYs
NyBAQCB2b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6ZGlkRGVzdHJveU5vdGlmaWNh
dGlvbihXZWJQYWdlUHJveHkqIHdlYlBhZ2UsCiAgICAgaWYgKHVpbnQ2NF90IGdsb2JhbE5vdGlm
aWNhdGlvbklEID0gZ2xvYmFsSUROb3RpZmljYXRpb25QYWlyLmZpcnN0KSB7CiAgICAgICAgIFdl
Yk5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9uID0gZ2xvYmFsSUROb3RpZmljYXRpb25QYWlyLnNl
Y29uZC5nZXQoKTsKICAgICAgICAgbV9nbG9iYWxOb3RpZmljYXRpb25NYXAucmVtb3ZlKGdsb2Jh
bE5vdGlmaWNhdGlvbklEKTsKLSAgICAgICAgbV9wcm92aWRlci5kaWREZXN0cm95Tm90aWZpY2F0
aW9uKG5vdGlmaWNhdGlvbik7CisgICAgICAgIG1fcHJvdmlkZXItPmRpZERlc3Ryb3lOb3RpZmlj
YXRpb24oKm5vdGlmaWNhdGlvbik7CiAgICAgfQogfQogCkBAIC0xNjYsNyArMTYyLDcgQEAgdm9p
ZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OmNsZWFyTm90aWZpY2F0aW9ucyhXZWJQYWdl
UHJveHkqIHdlYlBhZ2UsIGNvbnMKICAgICAgICAgbV9ub3RpZmljYXRpb25zLnJlbW92ZShwYWdl
Tm90aWZpY2F0aW9uKTsKICAgICB9CiAKLSAgICBtX3Byb3ZpZGVyLmNsZWFyTm90aWZpY2F0aW9u
cyhnbG9iYWxOb3RpZmljYXRpb25JRHMpOworICAgIG1fcHJvdmlkZXItPmNsZWFyTm90aWZpY2F0
aW9ucyhnbG9iYWxOb3RpZmljYXRpb25JRHMpOwogfQogCiB2b2lkIFdlYk5vdGlmaWNhdGlvbk1h
bmFnZXJQcm94eTo6cHJvdmlkZXJEaWRTaG93Tm90aWZpY2F0aW9uKHVpbnQ2NF90IGdsb2JhbE5v
dGlmaWNhdGlvbklEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlm
aWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaAppbmRl
eCA4M2MxYjg0YzIwNi4uNTQyZmJkOTcyNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1h
bmFnZXJQcm94eS5oCkBAIC0yOSw3ICsyOSw2IEBACiAjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCiAj
aW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dFN1cHBsZW1l
bnQuaCIKLSNpbmNsdWRlICJXZWJOb3RpZmljYXRpb25Qcm92aWRlci5oIgogI2luY2x1ZGUgPFdl
YkNvcmUvTm90aWZpY2F0aW9uQ2xpZW50Lmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CkBAIC00MCwxMSArMzksMTMgQEAgZW51bSBj
bGFzcyBOb3RpZmljYXRpb25EaXJlY3Rpb247CiAKIG5hbWVzcGFjZSBBUEkgewogY2xhc3MgQXJy
YXk7CitjbGFzcyBOb3RpZmljYXRpb25Qcm92aWRlcjsKIGNsYXNzIFNlY3VyaXR5T3JpZ2luOwog
fQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorY2xhc3MgV2ViTm90aWZpY2F0aW9uOwogY2xhc3Mg
V2ViUGFnZVByb3h5OwogY2xhc3MgV2ViUHJvY2Vzc1Bvb2w7CiAKQEAgLTU1LDggKzU2LDggQEAg
cHVibGljOgogCiAgICAgc3RhdGljIFJlZjxXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk+IGNy
ZWF0ZShXZWJQcm9jZXNzUG9vbCopOwogCi0gICAgdm9pZCBpbml0aWFsaXplUHJvdmlkZXIoY29u
c3QgV0tOb3RpZmljYXRpb25Qcm92aWRlckJhc2UqKTsKLSAgICB2b2lkIHBvcHVsYXRlQ29weU9m
Tm90aWZpY2F0aW9uUGVybWlzc2lvbnMoSGFzaE1hcDxTdHJpbmcsIGJvb2w+Jik7CisgICAgdm9p
ZCBzZXRQcm92aWRlcihzdGQ6OnVuaXF1ZV9wdHI8QVBJOjpOb3RpZmljYXRpb25Qcm92aWRlcj4m
Jik7CisgICAgSGFzaE1hcDxTdHJpbmcsIGJvb2w+IG5vdGlmaWNhdGlvblBlcm1pc3Npb25zKCk7
CiAKICAgICB2b2lkIHNob3coV2ViUGFnZVByb3h5KiwgY29uc3QgU3RyaW5nJiB0aXRsZSwgY29u
c3QgU3RyaW5nJiBib2R5LCBjb25zdCBTdHJpbmcmIGljb25VUkwsIGNvbnN0IFN0cmluZyYgdGFn
LCBjb25zdCBTdHJpbmcmIGxhbmcsIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkRpcmVjdGlvbiwgY29u
c3QgU3RyaW5nJiBvcmlnaW5TdHJpbmcsIHVpbnQ2NF90IHBhZ2VOb3RpZmljYXRpb25JRCk7CiAg
ICAgdm9pZCBjYW5jZWwoV2ViUGFnZVByb3h5KiwgdWludDY0X3QgcGFnZU5vdGlmaWNhdGlvbklE
KTsKQEAgLTg2LDcgKzg3LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlZldlYkNvbnRleHRTdXBw
bGVtZW50KCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBkZXJlZldlYkNvbnRleHRTdXBwbGVtZW50KCkg
b3ZlcnJpZGU7CiAKLSAgICBXZWJOb3RpZmljYXRpb25Qcm92aWRlciBtX3Byb3ZpZGVyOworICAg
IHN0ZDo6dW5pcXVlX3B0cjxBUEk6Ok5vdGlmaWNhdGlvblByb3ZpZGVyPiBtX3Byb3ZpZGVyOwog
ICAgIC8vIFBhaXIgY29tcHJpc2VkIG9mIHdlYiBwYWdlIElEIGFuZCB0aGUgd2ViIHByb2Nlc3Mn
cyBub3RpZmljYXRpb24gSUQKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBzdGQ6OnBhaXI8dWludDY0
X3QsIHVpbnQ2NF90Pj4gbV9nbG9iYWxOb3RpZmljYXRpb25NYXA7CiAgICAgLy8gS2V5IHBhaXIg
Y29tcHJpc2VkIG9mIHdlYiBwYWdlIElEIGFuZCB0aGUgd2ViIHByb2Nlc3MncyBub3RpZmljYXRp
b24gSUQ7IHZhbHVlIHBhaXIgY29tcHJpc2VkIG9mIGdsb2JhbCBub3RpZmljYXRpb24gSUQsIGFu
ZCBub3RpZmljYXRpb24gb2JqZWN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25Qcm92aWRlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25Qcm92aWRlci5jcHAK
aW5kZXggZGIzNTg4Y2E0YzEuLjI2NWMxNTlkOWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25Qcm92aWRlci5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9u
UHJvdmlkZXIuY3BwCkBAIC0zNywyOCArMzcsMzMgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAK
LXZvaWQgV2ViTm90aWZpY2F0aW9uUHJvdmlkZXI6OnNob3coV2ViUGFnZVByb3h5KiBwYWdlLCBX
ZWJOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbikKK1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyOjpX
ZWJOb3RpZmljYXRpb25Qcm92aWRlcihjb25zdCBXS05vdGlmaWNhdGlvblByb3ZpZGVyQmFzZSog
cHJvdmlkZXIpCit7CisgICAgaW5pdGlhbGl6ZShwcm92aWRlcik7Cit9CisKK3ZvaWQgV2ViTm90
aWZpY2F0aW9uUHJvdmlkZXI6OnNob3coV2ViUGFnZVByb3h5JiBwYWdlLCBXZWJOb3RpZmljYXRp
b24mIG5vdGlmaWNhdGlvbikKIHsKICAgICBpZiAoIW1fY2xpZW50LnNob3cpCiAgICAgICAgIHJl
dHVybjsKLSAgICAKLSAgICBtX2NsaWVudC5zaG93KHRvQVBJKHBhZ2UpLCB0b0FQSShub3RpZmlj
YXRpb24pLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOworCisgICAgbV9jbGllbnQuc2hvdyh0
b0FQSSgmcGFnZSksIHRvQVBJKCZub3RpZmljYXRpb24pLCBtX2NsaWVudC5iYXNlLmNsaWVudElu
Zm8pOwogfQogCi12b2lkIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyOjpjYW5jZWwoV2ViTm90aWZp
Y2F0aW9uKiBub3RpZmljYXRpb24pCit2b2lkIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyOjpjYW5j
ZWwoV2ViTm90aWZpY2F0aW9uJiBub3RpZmljYXRpb24pCiB7CiAgICAgaWYgKCFtX2NsaWVudC5j
YW5jZWwpCiAgICAgICAgIHJldHVybjsKLSAgICAKLSAgICBtX2NsaWVudC5jYW5jZWwodG9BUEko
bm90aWZpY2F0aW9uKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKworICAgIG1fY2xpZW50
LmNhbmNlbCh0b0FQSSgmbm90aWZpY2F0aW9uKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsK
IH0KIAotdm9pZCBXZWJOb3RpZmljYXRpb25Qcm92aWRlcjo6ZGlkRGVzdHJveU5vdGlmaWNhdGlv
bihXZWJOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbikKK3ZvaWQgV2ViTm90aWZpY2F0aW9uUHJv
dmlkZXI6OmRpZERlc3Ryb3lOb3RpZmljYXRpb24oV2ViTm90aWZpY2F0aW9uJiBub3RpZmljYXRp
b24pCiB7CiAgICAgaWYgKCFtX2NsaWVudC5kaWREZXN0cm95Tm90aWZpY2F0aW9uKQogICAgICAg
ICByZXR1cm47Ci0gICAgCi0gICAgbV9jbGllbnQuZGlkRGVzdHJveU5vdGlmaWNhdGlvbih0b0FQ
SShub3RpZmljYXRpb24pLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOworCisgICAgbV9jbGll
bnQuZGlkRGVzdHJveU5vdGlmaWNhdGlvbih0b0FQSSgmbm90aWZpY2F0aW9uKSwgbV9jbGllbnQu
YmFzZS5jbGllbnRJbmZvKTsKIH0KIAogdm9pZCBXZWJOb3RpZmljYXRpb25Qcm92aWRlcjo6Y2xl
YXJOb3RpZmljYXRpb25zKGNvbnN0IFZlY3Rvcjx1aW50NjRfdD4mIG5vdGlmaWNhdGlvbklEcykK
QEAgLTc1LDI4ICs4MCwzOCBAQCB2b2lkIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyOjpjbGVhck5v
dGlmaWNhdGlvbnMoY29uc3QgVmVjdG9yPHVpbnQ2NF90PiYgbm90aWZpYwogICAgIG1fY2xpZW50
LmNsZWFyTm90aWZpY2F0aW9ucyh0b0FQSShBUEk6OkFycmF5OjpjcmVhdGUoV1RGTW92ZShhcnJh
eUlEcykpLnB0cigpKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKIH0KIAotdm9pZCBXZWJO
b3RpZmljYXRpb25Qcm92aWRlcjo6YWRkTm90aWZpY2F0aW9uTWFuYWdlcihXZWJOb3RpZmljYXRp
b25NYW5hZ2VyUHJveHkqIG1hbmFnZXIpCit2b2lkIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyOjph
ZGROb3RpZmljYXRpb25NYW5hZ2VyKFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eSYgbWFuYWdl
cikKIHsKICAgICBpZiAoIW1fY2xpZW50LmFkZE5vdGlmaWNhdGlvbk1hbmFnZXIpCiAgICAgICAg
IHJldHVybjsKLSAgICAKLSAgICBtX2NsaWVudC5hZGROb3RpZmljYXRpb25NYW5hZ2VyKHRvQVBJ
KG1hbmFnZXIpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOworCisgICAgbV9jbGllbnQuYWRk
Tm90aWZpY2F0aW9uTWFuYWdlcih0b0FQSSgmbWFuYWdlciksIG1fY2xpZW50LmJhc2UuY2xpZW50
SW5mbyk7CiB9CiAKLXZvaWQgV2ViTm90aWZpY2F0aW9uUHJvdmlkZXI6OnJlbW92ZU5vdGlmaWNh
dGlvbk1hbmFnZXIoV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5KiBtYW5hZ2VyKQordm9pZCBX
ZWJOb3RpZmljYXRpb25Qcm92aWRlcjo6cmVtb3ZlTm90aWZpY2F0aW9uTWFuYWdlcihXZWJOb3Rp
ZmljYXRpb25NYW5hZ2VyUHJveHkmIG1hbmFnZXIpCiB7CiAgICAgaWYgKCFtX2NsaWVudC5yZW1v
dmVOb3RpZmljYXRpb25NYW5hZ2VyKQogICAgICAgICByZXR1cm47Ci0gICAgCi0gICAgbV9jbGll
bnQucmVtb3ZlTm90aWZpY2F0aW9uTWFuYWdlcih0b0FQSShtYW5hZ2VyKSwgbV9jbGllbnQuYmFz
ZS5jbGllbnRJbmZvKTsKKworICAgIG1fY2xpZW50LnJlbW92ZU5vdGlmaWNhdGlvbk1hbmFnZXIo
dG9BUEkoJm1hbmFnZXIpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwogfQogCi1SZWZQdHI8
QVBJOjpEaWN0aW9uYXJ5PiBXZWJOb3RpZmljYXRpb25Qcm92aWRlcjo6bm90aWZpY2F0aW9uUGVy
bWlzc2lvbnMoKQorSGFzaE1hcDxXVEY6OlN0cmluZywgYm9vbD4gV2ViTm90aWZpY2F0aW9uUHJv
dmlkZXI6Om5vdGlmaWNhdGlvblBlcm1pc3Npb25zKCkKIHsKKyAgICBIYXNoTWFwPFdURjo6U3Ry
aW5nLCBib29sPiBwZXJtaXNzaW9uczsKICAgICBpZiAoIW1fY2xpZW50Lm5vdGlmaWNhdGlvblBl
cm1pc3Npb25zKQotICAgICAgICByZXR1cm4gQVBJOjpEaWN0aW9uYXJ5OjpjcmVhdGUoKTsKKyAg
ICAgICAgcmV0dXJuIHBlcm1pc3Npb25zOworCisgICAgUmVmUHRyPEFQSTo6RGljdGlvbmFyeT4g
a25vd25QZXJtaXNzaW9ucyA9IGFkb3B0UmVmKHRvSW1wbChtX2NsaWVudC5ub3RpZmljYXRpb25Q
ZXJtaXNzaW9ucyhtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pKSk7CisgICAgaWYgKCFrbm93blBl
cm1pc3Npb25zKQorICAgICAgICByZXR1cm4gcGVybWlzc2lvbnM7CiAKLSAgICByZXR1cm4gYWRv
cHRSZWYodG9JbXBsKG1fY2xpZW50Lm5vdGlmaWNhdGlvblBlcm1pc3Npb25zKG1fY2xpZW50LmJh
c2UuY2xpZW50SW5mbykpKTsKKyAgICBSZWY8QVBJOjpBcnJheT4ga25vd25PcmlnaW5zID0ga25v
d25QZXJtaXNzaW9ucy0+a2V5cygpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwga25vd25P
cmlnaW5zLT5zaXplKCk7ICsraSkgeworICAgICAgICBBUEk6OlN0cmluZyogb3JpZ2luID0ga25v
d25PcmlnaW5zLT5hdDxBUEk6OlN0cmluZz4oaSk7CisgICAgICAgIHBlcm1pc3Npb25zLnNldChv
cmlnaW4tPnN0cmluZygpLCBrbm93blBlcm1pc3Npb25zLT5nZXQ8QVBJOjpCb29sZWFuPihvcmln
aW4tPnN0cmluZygpKS0+dmFsdWUoKSk7CisgICAgfQorICAgIHJldHVybiBwZXJtaXNzaW9uczsK
IH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25Qcm92aWRlci5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIu
aAppbmRleCAyNjJiMWU1MzJkMS4uOTVkZTkxMDVhZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9u
UHJvdmlkZXIuaApAQCAtMjcsMTQgKzI3LDEyIEBACiAjZGVmaW5lIFdlYk5vdGlmaWNhdGlvblBy
b3ZpZGVyX2gKIAogI2luY2x1ZGUgIkFQSUNsaWVudC5oIgorI2luY2x1ZGUgIkFQSU5vdGlmaWNh
dGlvblByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiV0tOb3RpZmljYXRpb25Qcm92aWRlci5oIgogI2lu
Y2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3Bh
Y2UgQVBJIHsKLQotY2xhc3MgRGljdGlvbmFyeTsKLQogdGVtcGxhdGU8PiBzdHJ1Y3QgQ2xpZW50
VHJhaXRzPFdLTm90aWZpY2F0aW9uUHJvdmlkZXJCYXNlPiB7CiAgICAgdHlwZWRlZiBzdGQ6OnR1
cGxlPFdLTm90aWZpY2F0aW9uUHJvdmlkZXJWMD4gVmVyc2lvbnM7CiB9OwpAQCAtNDUsMTggKzQz
LDIwIEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2ViTm90aWZpY2F0aW9uOwogY2xhc3Mg
V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5OwogY2xhc3MgV2ViUGFnZVByb3h5OwotICAgIAot
Y2xhc3MgV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIgOiBwdWJsaWMgQVBJOjpDbGllbnQ8V0tOb3Rp
ZmljYXRpb25Qcm92aWRlckJhc2U+IHsKKworY2xhc3MgV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIg
OiBwdWJsaWMgQVBJOjpOb3RpZmljYXRpb25Qcm92aWRlciwgcHVibGljIEFQSTo6Q2xpZW50PFdL
Tm90aWZpY2F0aW9uUHJvdmlkZXJCYXNlPiB7CiBwdWJsaWM6Ci0gICAgdm9pZCBzaG93KFdlYlBh
Z2VQcm94eSosIFdlYk5vdGlmaWNhdGlvbiopOwotICAgIHZvaWQgY2FuY2VsKFdlYk5vdGlmaWNh
dGlvbiopOwotICAgIHZvaWQgZGlkRGVzdHJveU5vdGlmaWNhdGlvbihXZWJOb3RpZmljYXRpb24q
KTsKLSAgICB2b2lkIGNsZWFyTm90aWZpY2F0aW9ucyhjb25zdCBWZWN0b3I8dWludDY0X3Q+JiBu
b3RpZmljYXRpb25JRHMpOworICAgIGV4cGxpY2l0IFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyKGNv
bnN0IFdLTm90aWZpY2F0aW9uUHJvdmlkZXJCYXNlKik7CisKKyAgICB2b2lkIHNob3coV2ViUGFn
ZVByb3h5JiwgV2ViTm90aWZpY2F0aW9uJikgb3ZlcnJpZGU7CisgICAgdm9pZCBjYW5jZWwoV2Vi
Tm90aWZpY2F0aW9uJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWREZXN0cm95Tm90aWZpY2F0aW9u
KFdlYk5vdGlmaWNhdGlvbiYpIG92ZXJyaWRlOworICAgIHZvaWQgY2xlYXJOb3RpZmljYXRpb25z
KGNvbnN0IFZlY3Rvcjx1aW50NjRfdD4mIG5vdGlmaWNhdGlvbklEcykgb3ZlcnJpZGU7CisKKyAg
ICB2b2lkIGFkZE5vdGlmaWNhdGlvbk1hbmFnZXIoV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5
Jikgb3ZlcnJpZGU7CisgICAgdm9pZCByZW1vdmVOb3RpZmljYXRpb25NYW5hZ2VyKFdlYk5vdGlm
aWNhdGlvbk1hbmFnZXJQcm94eSYpIG92ZXJyaWRlOwogCi0gICAgdm9pZCBhZGROb3RpZmljYXRp
b25NYW5hZ2VyKFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eSopOwotICAgIHZvaWQgcmVtb3Zl
Tm90aWZpY2F0aW9uTWFuYWdlcihXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkqKTsKLSAgICAK
LSAgICBSZWZQdHI8QVBJOjpEaWN0aW9uYXJ5PiBub3RpZmljYXRpb25QZXJtaXNzaW9ucygpOwor
ICAgIEhhc2hNYXA8V1RGOjpTdHJpbmcsIGJvb2w+IG5vdGlmaWNhdGlvblBlcm1pc3Npb25zKCkg
b3ZlcnJpZGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IGFmYzQ3NjgzMTU5Li40NGI1MGY3YWQ5
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC03
MTUsNyArNzE1LDcgQEAgV2ViUHJvY2Vzc1Byb3h5JiBXZWJQcm9jZXNzUG9vbDo6Y3JlYXRlTmV3
V2ViUHJvY2VzcyhXZWJzaXRlRGF0YVN0b3JlJiB3ZWJzaXRlRGEKIAogI2lmIEVOQUJMRShOT1RJ
RklDQVRJT05TKQogICAgIC8vIEZJWE1FOiBUaGVyZSBzaG91bGQgYmUgYSBnZW5lcmljIHdheSBm
b3Igc3VwcGxlbWVudHMgdG8gYWRkIHRvIHRoZSBpbnRpYWxpemF0aW9uIHBhcmFtZXRlcnMuCi0g
ICAgc3VwcGxlbWVudDxXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk+KCktPnBvcHVsYXRlQ29w
eU9mTm90aWZpY2F0aW9uUGVybWlzc2lvbnMocGFyYW1ldGVycy5ub3RpZmljYXRpb25QZXJtaXNz
aW9ucyk7CisgICAgcGFyYW1ldGVycy5ub3RpZmljYXRpb25QZXJtaXNzaW9ucyA9IHN1cHBsZW1l
bnQ8V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5PigpLT5ub3RpZmljYXRpb25QZXJtaXNzaW9u
cygpOwogI2VuZGlmCiAKICAgICBwYXJhbWV0ZXJzLnBsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hl
cyA9IG1fcGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXIuYXV0b1N0YXJ0T3JpZ2luSGFzaGVzQ29weSgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IGRmODNhYjY2OGM5Li40NTZiYzU3YWEwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTIwNyw2ICsxMjA3LDcgQEAK
IAkJNzVBOEQyQzkxODdDQ0ZBRjAwQzM5QzlFIC8qIFdLV2Vic2l0ZURhdGFTdG9yZS5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1QThEMkM1MTg3Q0NG
OUYwMEMzOUM5RSAvKiBXS1dlYnNpdGVEYXRhU3RvcmUubW0gKi87IH07CiAJCTc1QThEMkQ2MTg3
RDFDMEUwMEMzOUM5RSAvKiBXS1dlYnNpdGVEYXRhU3RvcmVJbnRlcm5hbC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzVBOEQyRDQxODdEMUMwMTAwQzM5
QzlFIC8qIFdLV2Vic2l0ZURhdGFTdG9yZUludGVybmFsLmggKi87IH07CiAJCTc2MkI3NDhEMTIw
QkM3NUMwMDgxOTMzOSAvKiBXS1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzYyQjc0ODQxMjBCQkEyRDAwODE5MzM5
IC8qIFdLUHJlZmVyZW5jZXNSZWZQcml2YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJN0ExRTJBODUxRUVGRTg5MjAwMzdBMEUwIC8qIEFQSU5v
dGlmaWNhdGlvblByb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3QTFFMkE4NDFFRUZFODhBMDAzN0EwRTAgLyogQVBJTm90aWZpY2F0aW9uUHJv
dmlkZXIuaCAqLzsgfTsKIAkJN0EzQUNFMUIxRUVFRjc5QjAwQTg2NEE0IC8qIEFQSUluamVjdGVk
QnVuZGxlUGFnZUxvYWRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gN0EzQUNFMUExRUVFRjc4QzAwQTg2NEE0IC8qIEFQSUluamVjdGVkQnVu
ZGxlUGFnZUxvYWRlckNsaWVudC5oICovOyB9OwogCQk3QTc3MkM4RDFEREQ0QTI1MDAwRjM0RjEg
LyogY29tLmFwcGxlLldlYktpdC5wbHVnaW4tY29tbW9uLnNiIGluIENvcHkgUGx1Zy1pbiBTYW5k
Ym94IFByb2ZpbGVzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdBMTUwNjcy
MURENTYyOTgwMDFGNEI1OCAvKiBjb20uYXBwbGUuV2ViS2l0LnBsdWdpbi1jb21tb24uc2IgKi87
IH07CiAJCTdBNzkxRUZBMUM3Q0ZDRjEwMEM0QzUyQiAvKiBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmVNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gN0E3OTFFRjkxQzdDRkIzNzAwQzRDNTJCIC8qIFdlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CkBAIC0zNDk0LDYg
KzM0OTUsNyBAQAogCQk3NjJCNzQ4MTEyMEJCQTAxMDA4MTkzMzkgLyogRm9udFNtb290aGluZ0xl
dmVsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZvbnRTbW9vdGhpbmdMZXZl
bC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NjJCNzQ4NDEyMEJCQTJEMDA4MTkz
MzkgLyogV0tQcmVmZXJlbmNlc1JlZlByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV0tQcmVmZXJlbmNlc1JlZlByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJN0ExNTA2NzIxREQ1NjI5ODAwMUY0QjU4IC8qIGNvbS5hcHBsZS5XZWJLaXQucGx1
Z2luLWNvbW1vbi5zYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSAiY29tLmFwcGxlLldlYktpdC5w
bHVnaW4tY29tbW9uLnNiIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0ExRTJBODQx
RUVGRTg4QTAwMzdBMEUwIC8qIEFQSU5vdGlmaWNhdGlvblByb3ZpZGVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFQSU5vdGlmaWNhdGlvblByb3ZpZGVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdBM0FDRTFBMUVFRUY3OEMwMEE4NjRBNCAvKiBBUElJbmpl
Y3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQVBJSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTdBNUUzOTQ5MUQ1QkQ4QTcwMEI0QjdDRSAvKiBjb20ubWFjcm9tZWRp
YS5GbGFzaCBQbGF5ZXIgRVNSLnBsdWdpbi5zYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSAiY29t
Lm1hY3JvbWVkaWEuRmxhc2ggUGxheWVyIEVTUi5wbHVnaW4uc2IiOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk3QTc5MUVGODFDN0NGQjEwMDBDNEM1MkIgLyogV2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTY5MDEsNiArNjkwMyw3IEBACiAJCQkJQkNGNjlGQTExMTc2RDAx
NDAwNDcxQTUyIC8qIEFQSU5hdmlnYXRpb25EYXRhLmNwcCAqLywKIAkJCQlCQ0Y2OUZBMDExNzZE
MDE0MDA0NzFBNTIgLyogQVBJTmF2aWdhdGlvbkRhdGEuaCAqLywKIAkJCQkyREY5RUVFRDFBNzg2
RUFEMDBCNkNGQkUgLyogQVBJTmF2aWdhdGlvblJlc3BvbnNlLmggKi8sCisJCQkJN0ExRTJBODQx
RUVGRTg4QTAwMzdBMEUwIC8qIEFQSU5vdGlmaWNhdGlvblByb3ZpZGVyLmggKi8sCiAJCQkJQkM4
NTdGQjQxMkI4MzBFNjAwRURFQjJFIC8qIEFQSU9wZW5QYW5lbFBhcmFtZXRlcnMuY3BwICovLAog
CQkJCUJDODU3RkIzMTJCODMwRTYwMEVERUIyRSAvKiBBUElPcGVuUGFuZWxQYXJhbWV0ZXJzLmgg
Ki8sCiAJCQkJN0M4OUQyOTUxQTY3NTNCMjAwM0E1RkRFIC8qIEFQSVBhZ2VDb25maWd1cmF0aW9u
LmNwcCAqLywKQEAgLTgxNjMsNiArODE2Niw3IEBACiAJCQkJNTEwRjU5MTAxRERFMjk2OTAwNDEy
RkY1IC8qIF9XS0ljb25Mb2FkaW5nRGVsZWdhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTM3QTY0
RTU1MThGMzhFM0MwMEVCMzBGMSAvKiBfV0tJbnB1dERlbGVnYXRlLmggaW4gSGVhZGVycyAqLywK
IAkJCQkyRDc5MEE5RDFBRDcwNTBEMDBBQjkwQjMgLyogX1dLTGF5b3V0TW9kZS5oIGluIEhlYWRl
cnMgKi8sCisJCQkJN0ExRTJBODUxRUVGRTg5MjAwMzdBMEUwIC8qIEFQSU5vdGlmaWNhdGlvblBy
b3ZpZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTBGNTkxMTFEREUyOTcwMDA0MTJGRjUgLyog
X1dLTGlua0ljb25QYXJhbWV0ZXJzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMTE4QTlGMzE5MDhC
OEVBMDBGN0M5MkIgLyogX1dLTlNGaWxlTWFuYWdlckV4dHJhcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJOTMyMzYxMUUxQjAxNURBODAwRkE5MjMyIC8qIF9XS092ZXJsYXlTY3JvbGxiYXJTdHlsZS5o
IGluIEhlYWRlcnMgKi8sCg==
</data>
<flag name="review"
          id="333759"
          type_id="1"
          status="+"
          setter="achristensen"
    />
          </attachment>
      

    </bug>

</bugzilla>