- From: Kostas Karasavvas <kkarasavvas@gmail.com>
- Date: Thu, 12 Nov 2020 15:00:56 +0200
- To: Adrian Gropper <agropper@healthurl.com>
- Cc: Jarno van Driel <jarnovandriel@gmail.com>, Leonard Rosenthol <lrosenth@adobe.com>, "public-credentials@w3.org" <public-credentials@w3.org>
- Message-ID: <CABE6yHu8yaP3peNoXpqhJ8wCFYpzwedaPCuUWAwAK1ce_Pg_og@mail.gmail.com>
Superficially: RFC3161 requires trust to the entity behind the timestamping service (not that important for many use cases) while blockchain timestamping is trustless (depending on use case/implementation). Blockchain network integrity determines security of the timestamp. Arguably, a lot of blockchain networks are not good enough. Extra secure networks, like the Bitcoin network, can guarantee a timestamp of +-30mins and not an exact one since miners have some control over the timestamp. On Fri, Nov 6, 2020 at 6:47 PM Adrian Gropper <agropper@healthurl.com> wrote: > What’s the relationship between RFC3161 and OpenTimestamps or other > blockchain timestamp schemes ;-) ? > > On Fri, Nov 6, 2020 at 10:44 AM Jarno van Driel <jarnovandriel@gmail.com> > wrote: > >> "Yes, and that is, IMO, its biggest fail..." >> >> >> I'm sorry you feel this way about it. Personally I think it's very useful >> as an intermediate between publishers, more formal environments and >> consumers of such data. Having schema.org be the one true center of all >> would IMO be presumptuous to say the least while also trampling on work >> done by others. Clearly there's always going to be some unfortunate >> overlap, though a lot of issues for consuming parties that come from this >> often (not always of course) can be resolved through some mapping of terms. >> At the same time I also feel it plays a very nice role in getting >> publishers (like myself) familiar with structured data and the fact there >> actually exist other (more formal) methods of annotating data (which, for >> example, in many cases I'd never have known existed). >> >> Anyways, each person clearly has the right have his own opinion about it, >> nevertheless I think it's of the utmost importance that what schema.org >> tries to accomplish doesn't get in the way of more formal/expressive >> standards, hence reaching out to people in this group to try to prevent our >> proposal does exactly that. >> >> Thanks for the additional comments and I'll definitely look into RFC 3161 >> timestamps and AdES-based signatures as well (seems I got plenty of >> rabbit holes to dive into). >> >> Op vr 6 nov. 2020 om 15:39 schreef Leonard Rosenthol <lrosenth@adobe.com >> >: >> >>> The ISCC is just a (potentially long) string – so you can store it in >>> your JSON any way that you would like. >>> >>> >>> >>> > Schema.org is a vocabulary with as few constraints as possible >>> >>> > >>> >>> Yes, and that is, IMO, its biggest fail. The lack of actual Schemas – >>> made even more ludicrous by its name – makes its use in formal metadata >>> environment difficult. In the case of CAI, we did two things. (1) We >>> defined formal (JSON) schemas for some key schema.org grammars such as >>> `Place`, `GeoCoordinates` and `ClaimReview` and then (2) we enabled support >>> for using any arbitrary Schema.org grammar. >>> >>> >>> >>> For timestamping, CAI uses standard RFC 3161 timestamps. Not only it is >>> a well understand and deployed solution, but it also aligns with our >>> standard AdES-based signatures for compliance with ISO and ETSI standards >>> and the legal requirements of the EU, Japan and other countries. >>> >>> >>> >>> Leonard >>> >>> >>> >>> *From: *Jarno van Driel <jarnovandriel@gmail.com> >>> *Date: *Friday, November 6, 2020 at 8:20 AM >>> *To: *"public-credentials@w3.org" <public-credentials@w3.org> >>> *Cc: *"public-credentials@w3.org" <public-credentials@w3.org> >>> *Subject: *Re: looking for help with/guidance for a schema.org proposal >>> *Resent-From: *<public-credentials@w3.org> >>> *Resent-Date: *Friday, November 6, 2020 at 8:18 AM >>> >>> >>> >>> @Leonard and @Tzviya, are there any resources that show examples of ISCC >>> metadata in JSON so I can compare these with the different examples >>> we created for our proposal? >>> >>> >>> >>> @Leonard, happen to have a resource showing examples of how the CAI >>> aligns with schema.org >>> <https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fschema.org%2F&data=04%7C01%7Clrosenth%40adobe.com%7C22cd3c6aa01c41a3160108d88256ae03%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C1%7C637402656092991697%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=Ci5AYsHapNcLbrqL4ZHmTHiVBSBoC%2FUp7ij%2FOHiMAOU%3D&reserved=0> >>> ? >>> >>> >>> >>> Schema.org is a vocabulary with as few constraints as possible so that >>> publishers are free to describe the things they want. It's up to each >>> individual consumer of schema.org >>> <https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fschema.org%2F&data=04%7C01%7Clrosenth%40adobe.com%7C22cd3c6aa01c41a3160108d88256ae03%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C1%7C637402656092991697%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=Ci5AYsHapNcLbrqL4ZHmTHiVBSBoC%2FUp7ij%2FOHiMAOU%3D&reserved=0> annotated >>> markup (e.g. search engines, social media platforms) to decide for >>> themselves which elements of the vocabulary they need/support for their >>> applications, as well as for describing any constraints in regards to the >>> data shapes and values they want from publishers. >>> >>> >>> >>> And so the intent behind our schema.org >>> <https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fschema.org%2F&data=04%7C01%7Clrosenth%40adobe.com%7C22cd3c6aa01c41a3160108d88256ae03%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C1%7C637402656093001690%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=dceLN6%2FQnyC54BvgbNQzvZ4mwqnqRIoSmcXZbtO8SRU%3D&reserved=0> proposal >>> is to be agnostic in regards to the identifiers (or any other value) that >>> can be used/expressed (and any infrastructure/service used to generate >>> these). Thus we're trying to come up with a schema.org >>> <https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fschema.org%2F&data=04%7C01%7Clrosenth%40adobe.com%7C22cd3c6aa01c41a3160108d88256ae03%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C1%7C637402656093001690%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=dceLN6%2FQnyC54BvgbNQzvZ4mwqnqRIoSmcXZbtO8SRU%3D&reserved=0> method >>> for describing timestamps (and the elements needed for these) that doesn't >>> conflict with any major draft/proposal/standard out there yet has enough >>> expressivity to 'point the way' to validators to be able to get the info >>> they need (possibly elsewhere) and do their thing via their preferred >>> methods. >>> >>> >>> >>> Practically this means that ids for DID, BLINK, ISCC and others - even >>> though not incorporated in the examples I provided - could be expressed as >>> an URN via JSON-LD's @id (or at least, that's how we think about it), e.g. >>> >>> { >>> >>> "@context":"https://schema.org >>> <https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fschema.org%2F&data=04%7C01%7Clrosenth%40adobe.com%7C22cd3c6aa01c41a3160108d88256ae03%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637402656093011686%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=hcUwoUx4SLBEqbkvIN%2BpjnvJbehh%2BUxlr5IVJa51Zk0%3D&reserved=0> >>> ", >>> >>> "@type":"BlockchainTransaction", >>> >>> >>> "@id":"blink:ethereum:ropsten:0xafdcf0708ab37df3eef706ea0c1b985a8fa10b11607fe1c0558022b51f450635" >>> >>> } >>> >>> >>> >>> Which is why I'd love to have the examples I asked for (if there are >>> any) so I can try to find out if our proposal contains anything that might >>> cause any conflict (and possibly ask help if I fail in doing so myself). >>> >>> >>> >>> @Detlef, I'll take a look at the resources you provided. Thanks for >>> pointing out long-term-preservation as well. To be honest it's not >>> something we had discussed yet though it's something I'll definitely >>> discuss with the others (we've taken the baby-steps approach to prevent our >>> proposal being too granular from the start). >>> >>> >>> >>> Op do 5 nov. 2020 om 15:25 schreef <detlef.huehnlein@ecsec.de>: >>> >>> Dear Jarno, >>> >>> >>> >>> I would like to encourage you to look at RFC 4998 >>> <https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Ftools.ietf.org%2Fhtml%2Frfc4998&data=04%7C01%7Clrosenth%40adobe.com%7C22cd3c6aa01c41a3160108d88256ae03%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C1%7C637402656093011686%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=O9C4tvxDHu8CwUu2f7J03Oe6rdiZfkuPceeMIaIYsxc%3D&reserved=0> >>> for the use of >>> >>> Merkle Trees for efficient time stamping (and long-term preservation of >>> evidence >>> >>> as addressed in ETSI TS 119 512 >>> <https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.etsi.org%2Fdeliver%2Fetsi_ts%2F119500_119599%2F119512%2F01.01.01_60%2Fts_119512v010101p.pdf&data=04%7C01%7Clrosenth%40adobe.com%7C22cd3c6aa01c41a3160108d88256ae03%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C1%7C637402656093021684%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=cMayR6RKvH2%2FKh1llC2B%2FVc8hYqb%2FGZp6e6eJYlYA%2B4%3D&reserved=0>, >>> if the long-term perspective is important in your use cases). >>> >>> >>> >>> Maybe we could one day come up with a MerkleProof202x, which can be used >>> with both >>> >>> blockchain based and classical RFC 3161 >>> <https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Ftools.ietf.org%2Fhtml%2Frfc3161&data=04%7C01%7Clrosenth%40adobe.com%7C22cd3c6aa01c41a3160108d88256ae03%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C1%7C637402656093021684%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=i%2FudnLRVQl%2F1me7gmKqmPLOjkvknXiaZWkU8fQxA8Z8%3D&reserved=0> >>> time stamps? >>> >>> >>> >>> BR, >>> >>> Detlef >>> >>> >>> >>> *Von:* Jarno van Driel <jarnovandriel@gmail.com> >>> *Gesendet:* Donnerstag, 5. November 2020 14:06 >>> *An:* public-credentials@w3.org >>> *Betreff:* looking for help with/guidance for a schema.org >>> <https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fschema.org%2F&data=04%7C01%7Clrosenth%40adobe.com%7C22cd3c6aa01c41a3160108d88256ae03%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C1%7C637402656093031678%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=0ABmpcHzzqAZovyjgVvTwV2RT%2B1aHl7PaJZEhqPVat0%3D&reserved=0> >>> proposal >>> >>> >>> >>> Hi folks, >>> >>> >>> >>> I'm one of the editors of a recent schema.org >>> <https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fschema.org%2F&data=04%7C01%7Clrosenth%40adobe.com%7C22cd3c6aa01c41a3160108d88256ae03%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C1%7C637402656093031678%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=0ABmpcHzzqAZovyjgVvTwV2RT%2B1aHl7PaJZEhqPVat0%3D&reserved=0> >>> proposal for time-stamping content via blockchain >>> <https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fschemaorg%2Fschemaorg%2Fissues%2F2756&data=04%7C01%7Clrosenth%40adobe.com%7C22cd3c6aa01c41a3160108d88256ae03%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C1%7C637402656093041676%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=v7vAxbr2fPhs%2FJWL01dq4Opn7ftNSe4Tb7ldu9A0oxE%3D&reserved=0> and >>> am hoping you can provide us (the authors of the proposal) with some >>> help/guidance as to how this proposal might be realized such that it: >>> >>> - allows everyday publishers to publish markup to: >>> >>> >>> - timestamp their content in a 'simple' yet verifiable manner >>> - optionally provide the content used (a Key) for generating a >>> transaction hash >>> - optionally provide the content used for generating a >>> transaction hash of previous editions of the content (via a Key that refers >>> to its previous edition) >>> >>> >>> - *doesn't conflict *with the (enormous) amount of work this group >>> has already done >>> >>> Prior to posting the schema.org >>> <https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fschema.org%2F&data=04%7C01%7Clrosenth%40adobe.com%7C22cd3c6aa01c41a3160108d88256ae03%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C1%7C637402656093041676%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=BLKX4%2BHs7WjS%2B0WK0kmPfLaVwdp0R7thjwg4Ag4cq5o%3D&reserved=0> >>> proposal Manu Sporny was so kind to provide us with some resources that he >>> recommended we should read (about merkle-proof, opentimestamps, chainpoint >>> and hash-links) though after we posted the proposal it became clear we >>> hadn't succeeded in preventing conflicts with MerkleProof2019 (and possibly >>> also with other parts of the work this group has done). >>> >>> >>> >>> So over the last 4-5 days I've taken a real deep dive into the Security >>> Vocabulary >>> <https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fw3c-ccg.github.io%2Fsecurity-vocab%2F&data=04%7C01%7Clrosenth%40adobe.com%7C22cd3c6aa01c41a3160108d88256ae03%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C1%7C637402656093051665%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=tAlZLQpfWmkwpVzmhQSZZDdyxDuUj3Cyk9k8Amr1LD0%3D&reserved=0> only >>> to end up feeling completely overwhelmed by it and subsequently have come >>> to a halt in working on our schema.org >>> <https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fschema.org%2F&data=04%7C01%7Clrosenth%40adobe.com%7C22cd3c6aa01c41a3160108d88256ae03%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C1%7C637402656093051665%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=faH5BNh0WNzrbOLcdzuGq4V1TPPoXMF%2FrF5blvv04Tc%3D&reserved=0> >>> proposal as I realized we won't be able to get this done without your input >>> (because we're set on not getting into conflict with your drafts). >>> >>> >>> >>> The (maybe naive) objective of our proposal is to provide publishers >>> with an 'easy' solution to achieve the objectives I mentioned above and as >>> such provide validators with the minimum data they need (entry-points so to >>> say) to be to validate the timestamps (by getting the rest of the >>> information they need elsewhere). >>> >>> >>> >>> Any help would be greatly appreciated! >>> >>> >>> >>> -- >>> >>> >>> >>> The markup model for time-stamping content we've come up with thus far >>> looks like this: >>> >>> { >>> "@context":"https://schema.org >>> <https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fschema.org%2F&data=04%7C01%7Clrosenth%40adobe.com%7C22cd3c6aa01c41a3160108d88256ae03%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637402656093061660%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=xVvUBNAXhxd%2FudE1LJMa2doBY08CxhLy0cf4O%2FNSZLM%3D&reserved=0> >>> ", >>> "@type":"Article", >>> "name":"A time-stamped article", >>> "mainEntityOfPage":"https://example.com/time-stamped-article/ >>> <https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fexample.com%2Ftime-stamped-article%2F&data=04%7C01%7Clrosenth%40adobe.com%7C22cd3c6aa01c41a3160108d88256ae03%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C1%7C637402656093061660%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=E42I1d8mNa8IDO8SxpIXbopr7R98GhwhFRYoRQEz4rU%3D&reserved=0> >>> ", >>> "timestamp": >>> { >>> "@type":"BlockchainTransaction", >>> >>> "identifier":"0fce9c929ef03838775703d4cf55b7b1bdd6a5cc3503a2606dbe3b6c0cf0a802", >>> >>> "hash":"8A258E516081C36B866812E49495628CBDC1DD4126DB321A28AE95EE55B83BAB", >>> "hashingKey":" >>> https://example.com/json/?key=8A258E516081C36B866812E49495628CBDC1DD4126DB321A28AE95EE55B83BAB >>> <https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fexample.com%2Fjson%2F%3Fkey%3D8A258E516081C36B866812E49495628CBDC1DD4126DB321A28AE95EE55B83BAB&data=04%7C01%7Clrosenth%40adobe.com%7C22cd3c6aa01c41a3160108d88256ae03%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C1%7C637402656093071652%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=ml7FwrkIIMsASD5G8p2%2FPv%2BiLqV6xWD3nVa%2B7Qg2WV4%3D&reserved=0> >>> ", >>> "isPartOf": >>> { >>> "@type":"BlockchainBlock", >>> >>> "identifier":"058ca16036c058217753b01200118f3ed92bfb2cee9a6c75bdb7bb1d110a767e", >>> "blockHeight":3456789 >>> }, >>> "recordedIn": >>> { >>> "@type":"Blockchain", >>> "name":"eos", >>> "network":"mainnet", >>> >>> "identifier":"aca376f206b8fc25a6ed44dbdc66547c36c6c33e3a119ffbeaef943642f0e906" >>> } >>> } >>> } >>> >>> >>> >>> The markup model for the Key looks like this: >>> >>> { >>> "@context":"https://schema.org >>> <https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fschema.org%2F&data=04%7C01%7Clrosenth%40adobe.com%7C22cd3c6aa01c41a3160108d88256ae03%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637402656093071652%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=4cQmaHVrc28IcK3IpdT5BCgpe5JRT1lzbBMzRgK3oZs%3D&reserved=0> >>> ", >>> "@type":"Key", >>> "dateCreated":"2020-09-27T20:28:41+01:00", >>> "isBasedOn":"https://example.com/time-stamped-article/ >>> <https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fexample.com%2Ftime-stamped-article%2F&data=04%7C01%7Clrosenth%40adobe.com%7C22cd3c6aa01c41a3160108d88256ae03%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C1%7C637402656093081650%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=OapL0eZ5ILC8uc3JAOamBZJ6BLLmZG3%2B95oRv%2BT%2Fq%2FM%3D&reserved=0> >>> ", >>> "encodingAlgorithm":"SHA-256", >>> "encodingFormat":"text/html" >>> "text":"<h1>Nunc eget lorem dolor sed</h1>\t\t\n\t\t\t<h2>Suspendisse >>> sed nisi lacus sed viverra tellus.</h2>\t\t\n\t\t\t<p>Non consectetur a >>> erat nam at lectus urna. Ut porttitor leo a diam sollicitudin tempor id >>> eu.</p>..." >>> } >>> >>> -- Konstantinos A. Karasavvas Software Architect, Blockchain Engineer, Researcher, Educator https://twitter.com/kkarasavvas
Received on Thursday, 12 November 2020 13:01:22 UTC