
From nobody Sun Nov  3 08:45:41 2019
Return-Path: <lgl@island-resort.com>
X-Original-To: cbor@ietfa.amsl.com
Delivered-To: cbor@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id A3D79120047 for <cbor@ietfa.amsl.com>; Sun,  3 Nov 2019 08:45:38 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.895
X-Spam-Level: 
X-Spam-Status: No, score=-1.895 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id dgODpRpJmM5t for <cbor@ietfa.amsl.com>; Sun,  3 Nov 2019 08:45:35 -0800 (PST)
Received: from p3plsmtpa06-04.prod.phx3.secureserver.net (p3plsmtpa06-04.prod.phx3.secureserver.net [173.201.192.105]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id B9977120044 for <cbor@ietf.org>; Sun,  3 Nov 2019 08:45:35 -0800 (PST)
Received: from [10.122.0.58] ([45.56.150.85]) by :SMTPAUTH: with ESMTPA id RJ0PiHLU3r3FgRJ0Qid1OJ; Sun, 03 Nov 2019 09:45:34 -0700
From: Laurence Lundblade <lgl@island-resort.com>
Message-Id: <87889E65-0152-455A-A6B7-C5F336DC97A4@island-resort.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_AB45DAC2-3C57-4534-8595-68F9EF3AFDFE"
Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.11\))
Date: Sun, 3 Nov 2019 08:45:33 -0800
In-Reply-To: <ed45e995-1858-3169-1be6-0cce5ce37ce3@imt-atlantique.fr>
Cc: cbor@ietf.org
To: Christophe Lohr <christophe.lohr@imt-atlantique.fr>
References: <92400DAA-A713-4905-A721-34B138E25192@tzi.org> <ed45e995-1858-3169-1be6-0cce5ce37ce3@imt-atlantique.fr>
X-Mailer: Apple Mail (2.3445.104.11)
X-CMAE-Envelope: MS4wfN0zjrWB0HLsoiSX9glYyxtha7aBlSgwZ1EXFOj0AmrKR7p0X2grl0UkVXvLNn6kgd+OdBoYEDPfXDMx7cXGfMXynJQZmcVU238UQ7cs2iAtCTarL7FY ktaGQX2nwAXcvs/8PfMZ5i2diwxBlp2dTV31S1rdJTd7QP9rm/Tk/mu2x03bCK2K+FIGSo+aKEZ2aQXAxq/EueLpx0Kgck2KDRU=
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/Hz7VjeBab9DxPas9E5_KfOmZwN0>
Subject: Re: [Cbor] 7049bis: The concept of "optional tagging" is not really used in practice #126
X-BeenThere: cbor@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Concise Binary Object Representation \(CBOR\)" <cbor.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cbor>, <mailto:cbor-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cbor/>
List-Post: <mailto:cbor@ietf.org>
List-Help: <mailto:cbor-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cbor>, <mailto:cbor-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 03 Nov 2019 16:45:39 -0000

--Apple-Mail=_AB45DAC2-3C57-4534-8595-68F9EF3AFDFE
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8

I=E2=80=99m not really a data structure scientist or such, but I think I =
can see Christophe=E2=80=99s point.=20

Maybe CBOR-based (and JSON-based) protocols don=E2=80=99t have a formal =
schema language, but these protocols rely on ordering and such. For =
example in a COSE_Sign1 it is expected that the first data item is the =
protected headers, the second the unprotected headers, the third the =
payload and the fourth the signature. I don=E2=80=99t think you can call =
them self-describing.

It seems like CBOR and JSON say =E2=80=9Cno schema=E2=80=99=E2=80=9D to =
distance from the horror of XML schemas, but in reality CDDL and prose =
protocol specs are schemas in spirit.

Maybe a key question here is whether you can say in CDDL =E2=80=9Cthis =
next item must always be interpreted as a date even though it will never =
have a date tag=E2=80=9D. If CDDL doesn=E2=80=99t have than, then you =
can=E2=80=99t describe some CBOR-protocols with it. CWT would be one of =
those protocols as it forbids adding the tag to dates.

To summarize what I understand about tagging:

The designer of a new CBOR data item type like a date format will =
generally register a tag for it. These new data types can be really =
simple, like epoch dates or really complex like COSE_Sign1.

The designer of a protocol using a new data type will indicate in their =
protocol for each occurrence of it whether the tag must be present or =
not (never saying the tag may or may not be present). The designer will =
typically require the tag only when necessary to disambiguate the type =
of the data item.

The implementor of a general purpose library to generate one of these =
new data item types must give the caller the option to include or not =
include the tag. Maybe this is just by never automatically outputting =
the tag and having a distinct output tag function.

The implementor of a general purpose library to decode one of these new =
data types must allow the caller to say that the next data item should =
be decoded as this new data type whether or not it is tagged. Maybe it =
even errors out if it is tagged for the cases where the protocol =
document says no tag should be used.

What I don=E2=80=99t know is whether CDDL can describe all this desired =
behavior.

LL




> On Oct 24, 2019, at 1:50 AM, Christophe Lohr =
<christophe.lohr@imt-atlantique.fr> wrote:
>=20
> On 23/10/2019 13:38, Carsten Bormann wrote:
>> Section 3.4 talks about "optional tagging" as a secondary purpose of =
tags. But in today's CBOR protocols, tags are rarely "optional" in the =
sense that they can simply be left out without a change in semantics, as =
3.4 para 3 implies.
>>=20
>> This concept comes up again in 4.2.2, where "optional tagging" is =
outlawed in deterministic encoding (but then the text goes on to explain =
that protocols might choose to retain tags, but doesn't say why).
>=20
> To be honest, I don't really understand how much optional are tags.
>=20
> A CDD rule with tags matchs cbor items with tags and reject cbor items
> without tags. Tags are not optional from the data-model point of view.
>=20
>=20
> Moreover, please consider this CDDL objective:
> (https://tools.ietf.org/html/rfc7049#section-1.1)
>=20
>    3.  Data must be able to be decoded without a schema description.
>        *  Similar to JSON, encoded data should be self-describing so
>           that a generic decoder can be written.
>=20
>=20
> Well, how to do this without putting tags everywhere for everything?
> (Or I need more explanation about what is "self-describing" and what =
is
> a "schema description")
>=20
> Let say I receive data. How may I know that this number is a =
temperature
> and not a distance, and that this byte-string is an uuid and not a =
small
> picture?
>=20
> The first way is to have a schema (written or not): That is to say a
> certain preliminary knowledge of expected data which tell me that this
> number at this place or associated to this map-key is a temperature.
> The second way is to decorate data with tags, all data.
> A third way is a compromise between the two first ones: I have a =
certain
> level of preliminary knoledge of what data are (a kind of schema
> description), with possibly some missing parts that are filled by =
tags.
>=20
> But the only way to decode data _without_ a schema description is to
> have tags everywhere for everything.
> Surprisingly, json has no tags and is claimed to be self-describing. =
Is
> it really? I'm lost.
>=20
> My feeling is that this objective CBOR should be not so demanding.
>=20
> Best regards,
> Christophe
>=20
> _______________________________________________
> CBOR mailing list
> CBOR@ietf.org
> https://www.ietf.org/mailman/listinfo/cbor


--Apple-Mail=_AB45DAC2-3C57-4534-8595-68F9EF3AFDFE
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=utf-8

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html; =
charset=3Dutf-8"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; line-break: after-white-space;" class=3D"">I=E2=80=
=99m not really a data structure scientist or such, but I think I can =
see Christophe=E2=80=99s point.&nbsp;<div class=3D""><br =
class=3D""></div><div class=3D"">Maybe CBOR-based (and JSON-based) =
protocols don=E2=80=99t have a formal schema language, but these =
protocols rely on ordering and such. For example in a COSE_Sign1 it is =
expected that the first data item is the protected headers, the second =
the unprotected headers, the third the payload and the fourth the =
signature. I don=E2=80=99t think you can call them =
self-describing.</div><div class=3D""><br class=3D""></div><div =
class=3D"">It seems like CBOR and JSON say =E2=80=9Cno schema=E2=80=99=E2=80=
=9D to distance from the horror of XML schemas, but in reality CDDL and =
prose protocol specs are schemas in spirit.</div><div class=3D""><br =
class=3D""></div><div class=3D"">Maybe a key question here is whether =
you can say in CDDL =E2=80=9Cthis next item must always be interpreted =
as a date even though it will never have a date tag=E2=80=9D. If CDDL =
doesn=E2=80=99t have than, then you can=E2=80=99t describe some =
CBOR-protocols with it. CWT would be one of those protocols as it =
forbids adding the tag to dates.</div><div class=3D""><br =
class=3D""></div><div class=3D"">To summarize what I understand about =
tagging:</div><div class=3D""><br class=3D""></div><blockquote =
style=3D"margin: 0 0 0 40px; border: none; padding: 0px;" class=3D""><div =
class=3D"">The designer of a new CBOR data item type like a date format =
will generally register a tag for it. These new data types can be really =
simple, like epoch dates or really complex like COSE_Sign1.</div><div =
class=3D""><br class=3D""></div><div class=3D"">The designer of a =
protocol using a new data type will indicate in their protocol for each =
occurrence of it whether the tag must be present or not (never saying =
the tag may or may not be present). The designer will typically require =
the tag only when necessary to disambiguate the type of the data =
item.</div><div class=3D""><br class=3D""></div><div class=3D"">The =
implementor of a general purpose library to generate one of these new =
data item types must give the caller the option to include or not =
include the tag. Maybe this is just by never automatically outputting =
the tag and having a distinct output tag function.</div><div =
class=3D""><br class=3D""></div><div class=3D"">The implementor of a =
general purpose library to decode one of these new data types must allow =
the caller to say that the next data item should be decoded as this new =
data type whether or not it is tagged. Maybe it even errors out if it is =
tagged for the cases where the protocol document says no tag should be =
used.</div><div class=3D""><br class=3D""></div></blockquote>What I =
don=E2=80=99t know is whether CDDL can describe all this desired =
behavior.<div class=3D""><br class=3D""></div><div class=3D"">LL<br =
class=3D""><div class=3D""><br class=3D""></div><div class=3D""><br =
class=3D""></div><div class=3D""><br class=3D""></div><div =
class=3D""><div><br class=3D""><blockquote type=3D"cite" class=3D""><div =
class=3D"">On Oct 24, 2019, at 1:50 AM, Christophe Lohr &lt;<a =
href=3D"mailto:christophe.lohr@imt-atlantique.fr" =
class=3D"">christophe.lohr@imt-atlantique.fr</a>&gt; wrote:</div><br =
class=3D"Apple-interchange-newline"><div class=3D""><div class=3D"">On =
23/10/2019 13:38, Carsten Bormann wrote:<br class=3D""><blockquote =
type=3D"cite" class=3D"">Section 3.4 talks about "optional tagging" as a =
secondary purpose of tags. But in today's CBOR protocols, tags are =
rarely "optional" in the sense that they can simply be left out without =
a change in semantics, as 3.4 para 3 implies.<br class=3D""><br =
class=3D"">This concept comes up again in 4.2.2, where "optional =
tagging" is outlawed in deterministic encoding (but then the text goes =
on to explain that protocols might choose to retain tags, but doesn't =
say why).<br class=3D""></blockquote><br class=3D"">To be honest, I =
don't really understand how much optional are tags.<br class=3D""><br =
class=3D"">A CDD rule with tags matchs cbor items with tags and reject =
cbor items<br class=3D"">without tags. Tags are not optional from the =
data-model point of view.<br class=3D""><br class=3D""><br =
class=3D"">Moreover, please consider this CDDL objective:<br =
class=3D"">(<a href=3D"https://tools.ietf.org/html/rfc7049#section-1.1" =
class=3D"">https://tools.ietf.org/html/rfc7049#section-1.1</a>)<br =
class=3D""><br class=3D"">&nbsp;&nbsp; 3.&nbsp; Data must be able to be =
decoded without a schema description.<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *&nbsp; Similar to JSON, =
encoded data should be self-describing so<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; that a =
generic decoder can be written.<br class=3D""><br class=3D""><br =
class=3D"">Well, how to do this without putting tags everywhere for =
everything?<br class=3D"">(Or I need more explanation about what is =
"self-describing" and what is<br class=3D"">a "schema description")<br =
class=3D""><br class=3D"">Let say I receive data. How may I know that =
this number is a temperature<br class=3D"">and not a distance, and that =
this byte-string is an uuid and not a small<br class=3D"">picture?<br =
class=3D""><br class=3D"">The first way is to have a schema (written or =
not): That is to say a<br class=3D"">certain preliminary knowledge of =
expected data which tell me that this<br class=3D"">number at this place =
or associated to this map-key is a temperature.<br class=3D"">The second =
way is to decorate data with tags, all data.<br class=3D"">A third way =
is a compromise between the two first ones: I have a certain<br =
class=3D"">level of preliminary knoledge of what data are (a kind of =
schema<br class=3D"">description), with possibly some missing parts that =
are filled by tags.<br class=3D""><br class=3D"">But the only way to =
decode data _without_ a schema description is to<br class=3D"">have tags =
everywhere for everything.<br class=3D"">Surprisingly, json has no tags =
and is claimed to be self-describing. Is<br class=3D"">it really? I'm =
lost.<br class=3D""><br class=3D"">My feeling is that this objective =
CBOR should be not so demanding.<br class=3D""><br class=3D"">Best =
regards,<br class=3D"">Christophe<br class=3D""><br =
class=3D"">_______________________________________________<br =
class=3D"">CBOR mailing list<br class=3D""><a =
href=3D"mailto:CBOR@ietf.org" class=3D"">CBOR@ietf.org</a><br =
class=3D"">https://www.ietf.org/mailman/listinfo/cbor<br =
class=3D""></div></div></blockquote></div><br =
class=3D""></div></div></body></html>=

--Apple-Mail=_AB45DAC2-3C57-4534-8595-68F9EF3AFDFE--


From nobody Sun Nov  3 08:57:27 2019
Return-Path: <lgl@island-resort.com>
X-Original-To: cbor@ietfa.amsl.com
Delivered-To: cbor@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 202F712008F for <cbor@ietfa.amsl.com>; Sun,  3 Nov 2019 08:57:25 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.897
X-Spam-Level: 
X-Spam-Status: No, score=-1.897 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id b8yRade2r4W4 for <cbor@ietfa.amsl.com>; Sun,  3 Nov 2019 08:57:23 -0800 (PST)
Received: from p3plsmtpa06-02.prod.phx3.secureserver.net (p3plsmtpa06-02.prod.phx3.secureserver.net [173.201.192.103]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 3CE0412004A for <cbor@ietf.org>; Sun,  3 Nov 2019 08:57:23 -0800 (PST)
Received: from [10.122.0.58] ([45.56.150.85]) by :SMTPAUTH: with ESMTPA id RJBpiZe3M4y4cRJBqipfSr; Sun, 03 Nov 2019 09:57:22 -0700
From: Laurence Lundblade <lgl@island-resort.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_305F2178-37CD-4839-8EB2-C86BCED237DF"
Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.11\))
Message-Id: <1F1C4AE2-25DB-455F-846C-A262A82A4A33@island-resort.com>
Date: Sun, 3 Nov 2019 08:57:21 -0800
To: cbor@ietf.org
X-Mailer: Apple Mail (2.3445.104.11)
X-CMAE-Envelope: MS4wfIuHZdPxiSpcAYtxyK8lbyDmUHj57ehvAx3D9PcxQAhlqhoHGVmSoiRbQUSovulz1ODOGYFFzEDEPLNJh9lHDGrq6F90Jdd66/8vDZFa4AL9XuBeZgR9 TkgFLvljbsadkHkCElVFfo/w1y/iQIF/1Txadyo6rpz7/282f9U8ju7G
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/y1EZ-IylFpJ3_MndQGADSbKhx0s>
Subject: [Cbor] Validity checking and tags
X-BeenThere: cbor@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Concise Binary Object Representation \(CBOR\)" <cbor.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cbor>, <mailto:cbor-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cbor/>
List-Post: <mailto:cbor@ietf.org>
List-Help: <mailto:cbor-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cbor>, <mailto:cbor-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 03 Nov 2019 16:57:25 -0000

--Apple-Mail=_305F2178-37CD-4839-8EB2-C86BCED237DF
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8

Some CBOR protocols will require use of a tag to indicate a particular =
data type (on a per instance basis) and others will explicitly prohibit =
use of a tag (on a per instance basis).

That implies that generic validity processing can only be performed on =
data items that are explicitly tagged. For example generic processing =
can=E2=80=99t check the internal structure of a decimal fraction for =
validity unless it is tagged. It just won=E2=80=99t know that it is a =
decimal fraction.

I think we expect protocols using using these new / custom / registered =
/ bespoke data types to not require instances to be tagged, so validity =
checking will be limited.=20

I think this is mostly OK, but wanted to point it out.

(We refer to these new / custom / registered / bespoke data types =
primarily as tagged, but then say the tag is not necessary; I think this =
is confusing).=20

LL



--Apple-Mail=_305F2178-37CD-4839-8EB2-C86BCED237DF
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=utf-8

<html><body style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; =
-webkit-line-break: after-white-space;" class=3D"">Some CBOR protocols =
will require use of a tag to indicate a particular data type (on a per =
instance basis) and others will explicitly prohibit use of a tag (on a =
per instance basis).<div class=3D""><br class=3D""></div><div =
class=3D"">That implies that <i class=3D"">generic</i> validity =
processing can only be performed on data items that are explicitly =
tagged. For example generic processing can=E2=80=99t check the internal =
structure of a decimal fraction for validity unless it is tagged. It =
just won=E2=80=99t know that it is a decimal fraction.</div><div =
class=3D""><br class=3D""></div><div class=3D"">I think we expect =
protocols using using these new / custom / registered / bespoke data =
types to not require instances to be tagged, so validity checking will =
be limited.&nbsp;</div><div class=3D""><br class=3D""></div><div =
class=3D""><div class=3D"">I think this is mostly OK, but wanted to =
point it out.</div></div><div class=3D""><br class=3D""></div><div =
class=3D"">(We refer to these new / custom / registered / bespoke data =
types primarily as tagged, but then say the tag is not necessary; I =
think this is confusing).&nbsp;</div><div class=3D""><br =
class=3D""></div><div class=3D"">LL</div><div class=3D""><br =
class=3D""></div><div class=3D""><br class=3D""></div></body></html>=

--Apple-Mail=_305F2178-37CD-4839-8EB2-C86BCED237DF--


From nobody Sun Nov  3 08:59:50 2019
Return-Path: <cabo@tzi.org>
X-Original-To: cbor@ietfa.amsl.com
Delivered-To: cbor@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id F33561200CC for <cbor@ietfa.amsl.com>; Sun,  3 Nov 2019 08:59:46 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.2
X-Spam-Level: 
X-Spam-Status: No, score=-4.2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id tKKuVmWSi00K for <cbor@ietfa.amsl.com>; Sun,  3 Nov 2019 08:59:44 -0800 (PST)
Received: from gabriel-vm-2.zfn.uni-bremen.de (gabriel-vm-2.zfn.uni-bremen.de [134.102.50.17]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 462F712008F for <cbor@ietf.org>; Sun,  3 Nov 2019 08:59:44 -0800 (PST)
Received: from [192.168.217.102] (p548DC893.dip0.t-ipconnect.de [84.141.200.147]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by gabriel-vm-2.zfn.uni-bremen.de (Postfix) with ESMTPSA id 475hxB1wNgzyfw; Sun,  3 Nov 2019 17:59:42 +0100 (CET)
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 11.5 \(3445.9.1\))
From: Carsten Bormann <cabo@tzi.org>
In-Reply-To: <87889E65-0152-455A-A6B7-C5F336DC97A4@island-resort.com>
Date: Sun, 3 Nov 2019 17:59:41 +0100
Cc: Christophe Lohr <christophe.lohr@imt-atlantique.fr>, cbor@ietf.org
X-Mao-Original-Outgoing-Id: 594493179.809954-6fcbf509bcbe4a2f3a262a3fa1536a55
Content-Transfer-Encoding: quoted-printable
Message-Id: <CBC1EF6C-FAF5-4AC9-B0DC-C3FD2ED8B88D@tzi.org>
References: <92400DAA-A713-4905-A721-34B138E25192@tzi.org> <ed45e995-1858-3169-1be6-0cce5ce37ce3@imt-atlantique.fr> <87889E65-0152-455A-A6B7-C5F336DC97A4@island-resort.com>
To: Laurence Lundblade <lgl@island-resort.com>
X-Mailer: Apple Mail (2.3445.9.1)
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/WXfdpt6ckt_dm8waLOQqF3AlaZs>
Subject: Re: [Cbor] 7049bis: The concept of "optional tagging" is not really used in practice #126
X-BeenThere: cbor@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Concise Binary Object Representation \(CBOR\)" <cbor.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cbor>, <mailto:cbor-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cbor/>
List-Post: <mailto:cbor@ietf.org>
List-Help: <mailto:cbor-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cbor>, <mailto:cbor-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 03 Nov 2019 16:59:47 -0000

Hi Laurence,

CDDL does not describe behavior, but the shape of data.

> Maybe a key question here is whether you can say in CDDL =E2=80=9Cthis =
next item must always be interpreted as a date even though it will never =
have a date tag=E2=80=9D.

CDDL can say =E2=80=9Cthis item is a number=E2=80=9D.  It does not tell =
you how to =E2=80=9Cinterpret=E2=80=9D things, that would be the job of =
a language that transforms the data just received into data that is used =
by an application.

> If CDDL doesn=E2=80=99t have than, then you can=E2=80=99t describe =
some CBOR-protocols with it.

You sure can =E2=80=9Cdescribe=E2=80=9D the shape of data in CBOR =
protocols, but you will also need some information about how you plan to =
interpret the data.

> CWT would be one of those protocols as it forbids adding the tag to =
dates.

(For the exp, nbf, and iat claims, or claim numbers 4 to 6:) Yes, the =
CWT RFC (RFC 8392) tells you that the value here is a number, not a =
tagged date.

> The designer of a protocol using a new data type will indicate in =
their protocol for each occurrence of it whether the tag must be present =
or not (never saying the tag may or may not be present). The designer =
will typically require the tag only when necessary to disambiguate the =
type of the data item.

Right.  If you need to register for CWT a new claim that could either =
take a number (such as the longitude of the satellite that this claim is =
about) or a date/time (such as the time the satellite was launched), =
then a tag could be useful to make that distinction. =20

That example is a bit contrived, because it=E2=80=99s just not as usual =
to have a choice between a number and a date.  More likely might be a =
choice between a date/time represented as a Tag 1 and a Tag 1001.  The =
encoding could choose to leave off the tag from the number that is the =
enclosed item of Tag 1, so you would have a choice between a number and =
a Tag 1001.

> The implementor of a general purpose library to generate one of these =
new data item types must give the caller the option to include or not =
include the tag. Maybe this is just by never automatically outputting =
the tag and having a distinct output tag function.
>=20
> The implementor of a general purpose library to decode one of these =
new data types must allow the caller to say that the next data item =
should be decoded as this new data type whether or not it is tagged. =
Maybe it even errors out if it is tagged for the cases where the =
protocol document says no tag should be used.

Right.

> What I don=E2=80=99t know is whether CDDL can describe all this =
desired behavior.

CDDL can describe the shape of the data interchanged, but it can=E2=80=99t=
 describe the mapping to application semantics.  It can provide hints, =
and that=E2=80=99s one of the things that the unwrap operator is good =
for: When you apply it to a tag, this is a hint that you do not just =
want the data shape of that tag=E2=80=99d enclosed item, but also its =
semantics.

Gr=C3=BC=C3=9Fe, Carsten


From nobody Sun Nov  3 09:05:04 2019
Return-Path: <henk.birkholz@sit.fraunhofer.de>
X-Original-To: cbor@ietfa.amsl.com
Delivered-To: cbor@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 9B5A7120048 for <cbor@ietfa.amsl.com>; Sun,  3 Nov 2019 09:05:00 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.9
X-Spam-Level: 
X-Spam-Status: No, score=-6.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_HI=-5, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id lLFmoPqFh7GC for <cbor@ietfa.amsl.com>; Sun,  3 Nov 2019 09:04:57 -0800 (PST)
Received: from mailext.sit.fraunhofer.de (mailext.sit.fraunhofer.de [141.12.72.89]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 957DB120044 for <cbor@ietf.org>; Sun,  3 Nov 2019 09:04:55 -0800 (PST)
Received: from mail.sit.fraunhofer.de (mail.sit.fraunhofer.de [141.12.84.171]) by mailext.sit.fraunhofer.de (8.15.2/8.15.2/Debian-10) with ESMTPS id xA3H4rsM015453 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA256 bits=128 verify=NOT); Sun, 3 Nov 2019 18:04:54 +0100
Received: from [192.168.16.50] (79.234.112.245) by mail.sit.fraunhofer.de (141.12.84.171) with Microsoft SMTP Server (TLS) id 14.3.468.0; Sun, 3 Nov 2019 18:04:48 +0100
To: Laurence Lundblade <lgl@island-resort.com>, Christophe Lohr <christophe.lohr@imt-atlantique.fr>
CC: <cbor@ietf.org>
References: <92400DAA-A713-4905-A721-34B138E25192@tzi.org> <ed45e995-1858-3169-1be6-0cce5ce37ce3@imt-atlantique.fr> <87889E65-0152-455A-A6B7-C5F336DC97A4@island-resort.com>
From: Henk Birkholz <henk.birkholz@sit.fraunhofer.de>
Message-ID: <88ea442d-8fc0-31fa-d00b-7e9c0c047323@sit.fraunhofer.de>
Date: Sun, 3 Nov 2019 18:04:47 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.9.0
MIME-Version: 1.0
In-Reply-To: <87889E65-0152-455A-A6B7-C5F336DC97A4@island-resort.com>
Content-Type: text/plain; charset="utf-8"; format=flowed
Content-Language: en-US
Content-Transfer-Encoding: 8bit
X-Originating-IP: [79.234.112.245]
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/eJ9V6MobQMTeynPOSVFl-xEiMT4>
Subject: Re: [Cbor] 7049bis: The concept of "optional tagging" is not really used in practice #126
X-BeenThere: cbor@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Concise Binary Object Representation \(CBOR\)" <cbor.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cbor>, <mailto:cbor-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cbor/>
List-Post: <mailto:cbor@ietf.org>
List-Help: <mailto:cbor-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cbor>, <mailto:cbor-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 03 Nov 2019 17:05:01 -0000

Hi Laurence,

please see below.

On 03.11.19 17:45, Laurence Lundblade wrote:
> I’m not really a data structure scientist or such, but I think I can see 
> Christophe’s point
> 
> Maybe CBOR-based (and JSON-based) protocols don’t have a formal schema 
> language, but these protocols rely on ordering and such. For example in 
> a COSE_Sign1 it is expected that the first data item is the protected 
> headers, the second the unprotected headers, the third the payload and 
> the fourth the signature. I don’t think you can call them self-describing.
> 
> It seems like CBOR and JSON say “no schema’” to distance from the horror 
> of XML schemas, but in reality CDDL and prose protocol specs are schemas 
> in spirit.
> 
> Maybe a key question here is whether you can say in CDDL “this next item 
> must always be interpreted as a date even though it will never have a 
> date tag”.

I would not use the term "interpretation" here. CDDL is a language, it 
in unambiguous in that regard. But I think it can do exactly what you 
mean :-) It describes the structure of CBOR/JSON messages/documents - if 
it precise enough, CBOR tags are not needed, but to ensure that 
precision you need a dedicated authority, I think.

If CDDL doesn’t have than, then you can’t describe some
> CBOR-protocols with it. CWT would be one of those protocols as it 
> forbids adding the tag to dates.
> 
> To summarize what I understand about tagging:
> 
>     The designer of a new CBOR data item type like a date format will
>     generally register a tag for it. These new data types can be really
>     simple, like epoch dates or really complex like COSE_Sign1.
> 
>     The designer of a protocol using a new data type will indicate in
>     their protocol for each occurrence of it whether the tag must be
>     present or not (never saying the tag may or may not be present). The
>     designer will typically require the tag only when necessary to
>     disambiguate the type of the data item.
> 
>     The implementor of a general purpose library to generate one of
>     these new data item types must give the caller the option to include
>     or not include the tag. Maybe this is just by never automatically
>     outputting the tag and having a distinct output tag function.
> 
>     The implementor of a general purpose library to decode one of these
>     new data types must allow the caller to say that the next data item
>     should be decoded as this new data type whether or not it is tagged.
>     Maybe it even errors out if it is tagged for the cases where the
>     protocol document says no tag should be used.
> 
> What I don’t know is whether CDDL can describe all this desired behavior.
> 
> LL
> 
> 
> 
> 
>> On Oct 24, 2019, at 1:50 AM, Christophe Lohr 
>> <christophe.lohr@imt-atlantique.fr 
>> <mailto:christophe.lohr@imt-atlantique.fr>> wrote:
>>
>> On 23/10/2019 13:38, Carsten Bormann wrote:
>>> Section 3.4 talks about "optional tagging" as a secondary purpose of 
>>> tags. But in today's CBOR protocols, tags are rarely "optional" in 
>>> the sense that they can simply be left out without a change in 
>>> semantics, as 3.4 para 3 implies.
>>>
>>> This concept comes up again in 4.2.2, where "optional tagging" is 
>>> outlawed in deterministic encoding (but then the text goes on to 
>>> explain that protocols might choose to retain tags, but doesn't say why).
>>
>> To be honest, I don't really understand how much optional are tags.
>>
>> A CDD rule with tags matchs cbor items with tags and reject cbor items
>> without tags. Tags are not optional from the data-model point of view.
>>
>>
>> Moreover, please consider this CDDL objective:
>> (https://tools.ietf.org/html/rfc7049#section-1.1)
>>
>>    3.  Data must be able to be decoded without a schema description.
>>        *  Similar to JSON, encoded data should be self-describing so
>>           that a generic decoder can be written.
>>
>>
>> Well, how to do this without putting tags everywhere for everything?
>> (Or I need more explanation about what is "self-describing" and what is
>> a "schema description")
>>
>> Let say I receive data. How may I know that this number is a temperature
>> and not a distance, and that this byte-string is an uuid and not a small
>> picture?
>>
>> The first way is to have a schema (written or not): That is to say a
>> certain preliminary knowledge of expected data which tell me that this
>> number at this place or associated to this map-key is a temperature.
>> The second way is to decorate data with tags, all data.
>> A third way is a compromise between the two first ones: I have a certain
>> level of preliminary knoledge of what data are (a kind of schema
>> description), with possibly some missing parts that are filled by tags.
>>
>> But the only way to decode data _without_ a schema description is to
>> have tags everywhere for everything.
>> Surprisingly, json has no tags and is claimed to be self-describing. Is
>> it really? I'm lost.
>>
>> My feeling is that this objective CBOR should be not so demanding.
>>
>> Best regards,
>> Christophe
>>
>> _______________________________________________
>> CBOR mailing list
>> CBOR@ietf.org <mailto:CBOR@ietf.org>
>> https://www.ietf.org/mailman/listinfo/cbor
> 
> 
> _______________________________________________
> CBOR mailing list
> CBOR@ietf.org
> https://www.ietf.org/mailman/listinfo/cbor
> 


From nobody Sun Nov  3 09:18:17 2019
Return-Path: <cabo@tzi.org>
X-Original-To: cbor@ietfa.amsl.com
Delivered-To: cbor@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 59ACF12004A for <cbor@ietfa.amsl.com>; Sun,  3 Nov 2019 09:18:15 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.2
X-Spam-Level: 
X-Spam-Status: No, score=-4.2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id jeBFTuf0wvsn for <cbor@ietfa.amsl.com>; Sun,  3 Nov 2019 09:18:12 -0800 (PST)
Received: from gabriel-vm-2.zfn.uni-bremen.de (gabriel-vm-2.zfn.uni-bremen.de [134.102.50.17]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 7F5F1120018 for <cbor@ietf.org>; Sun,  3 Nov 2019 09:18:12 -0800 (PST)
Received: from [192.168.217.102] (p548DC893.dip0.t-ipconnect.de [84.141.200.147]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by gabriel-vm-2.zfn.uni-bremen.de (Postfix) with ESMTPSA id 475jLV66kmzyfs; Sun,  3 Nov 2019 18:18:10 +0100 (CET)
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 11.5 \(3445.9.1\))
From: Carsten Bormann <cabo@tzi.org>
In-Reply-To: <1F1C4AE2-25DB-455F-846C-A262A82A4A33@island-resort.com>
Date: Sun, 3 Nov 2019 18:18:10 +0100
Cc: cbor@ietf.org
X-Mao-Original-Outgoing-Id: 594494288.505784-825dd31063ae7234f28bad8484d01b82
Content-Transfer-Encoding: quoted-printable
Message-Id: <89CDD13F-26C9-41B4-97B9-6182ECBC4465@tzi.org>
References: <1F1C4AE2-25DB-455F-846C-A262A82A4A33@island-resort.com>
To: Laurence Lundblade <lgl@island-resort.com>
X-Mailer: Apple Mail (2.3445.9.1)
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/TJ-c-XdgyITNZrtratDG6504QPs>
Subject: Re: [Cbor] Validity checking and tags
X-BeenThere: cbor@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Concise Binary Object Representation \(CBOR\)" <cbor.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cbor>, <mailto:cbor-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cbor/>
List-Post: <mailto:cbor@ietf.org>
List-Help: <mailto:cbor-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cbor>, <mailto:cbor-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 03 Nov 2019 17:18:15 -0000

> Some CBOR protocols will require use of a tag to indicate a particular =
data type (on a per instance basis) and others will explicitly prohibit =
use of a tag (on a per instance basis).

Normally, you don=E2=80=99t =E2=80=9Cprohibit a tag=E2=80=9D, you say =
what you want.  =E2=80=9CThis is a number.=E2=80=9D

As in (RFC 8392 in one slide):

cwt =3D {
  ? iss =3D> text
  ? sub =3D> text
  ? aud =3D> text
  ? exp =3D> ~time
  ? nbf =3D> ~time
  ? iat =3D> ~time
  ? cti =3D> bytes
  * int =3D> any
}

iss =3D 1
sub =3D 2
aud =3D 3
exp =3D 4
nbf =3D 5
iat =3D 6
cti =3D 7

~time is a number (with a strong hint that this number is meant to be =
interpreted as similar to how the enclosed data item of a tag with =
number 1 would be, i.e. as an epoch-based time).

Note that the prelude says:

                  time =3D #6.1(number)
                  number =3D int / float

So the three lines

  ? exp =3D> number
  ? nbf =3D> number
  ? iat =3D> number

in the above would have meant exactly the same, but without the little =
hint about interpretation.

> That implies that generic validity processing can only be performed on =
data items that are explicitly tagged. For example generic processing =
can=E2=80=99t check the internal structure of a decimal fraction for =
validity unless it is tagged. It just won=E2=80=99t know that it is a =
decimal fraction.

Generic validity processing sees an array and sees that this is valid =
(from a generic validity processing point of view).  Indeed, it won=E2=80=99=
t know that the application intends to process this as a decimal =
fraction.

> I think we expect protocols using using these new / custom / =
registered / bespoke data types to not require instances to be tagged, =
so validity checking will be limited.=20

The checking cannot be done as =E2=80=9Ctag validity=E2=80=9D, but it =
needs to be done in the application.

> I think this is mostly OK, but wanted to point it out.

I think so, too.

> (We refer to these new / custom / registered / bespoke data types =
primarily as tagged, but then say the tag is not necessary; I think this =
is confusing).=20

The short form is: A CBOR-based protocol can make use of a tag =
definition in an interesting way: not by shaping the data as the tag =
that has been defined, but by shaping the data as what would have been =
the enclosed data item of the tag, and then saying with that (in prose, =
at this point) that the data item is to be processed as if it where that =
enclosed data item of the tag.  That is a useful device to reduce the =
amount of variation between different protocols.  Providing direct =
support for this from a CBOR decoder implementation would be an =
interesting addition (it would become a schema-informed CBOR decoder =
then, of course).

All this discussion may be somewhat clouded by the fact that RFC 7049 =
speaks about =E2=80=9Coptional tags=E2=80=9D; these have never turned =
out to be particularly useful, so we should no longer talk about those =
when writing up 7049bis.

Gr=C3=BC=C3=9Fe, Carsten


From nobody Sun Nov  3 12:41:47 2019
Return-Path: <christophe.lohr@imt-atlantique.fr>
X-Original-To: cbor@ietfa.amsl.com
Delivered-To: cbor@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 6BCA0120073 for <cbor@ietfa.amsl.com>; Sun,  3 Nov 2019 12:41:45 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level: 
X-Spam-Status: No, score=-2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9,  DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=imt-atlantique.fr
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id dFVwc6EBpg55 for <cbor@ietfa.amsl.com>; Sun,  3 Nov 2019 12:41:42 -0800 (PST)
Received: from zproxy110.enst.fr (zproxy110.enst.fr [IPv6:2001:660:330f:2::c0]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 668E712002E for <cbor@ietf.org>; Sun,  3 Nov 2019 12:41:42 -0800 (PST)
Received: from localhost (localhost [IPv6:::1]) by zproxy110.enst.fr (Postfix) with ESMTP id B032E81360 for <cbor@ietf.org>; Sun,  3 Nov 2019 21:41:40 +0100 (CET)
Received: from zproxy110.enst.fr ([IPv6:::1]) by localhost (zproxy110.enst.fr [IPv6:::1]) (amavisd-new, port 10032) with ESMTP id exssrNXDt_FO for <cbor@ietf.org>; Sun,  3 Nov 2019 21:41:40 +0100 (CET)
Received: from localhost (localhost [IPv6:::1]) by zproxy110.enst.fr (Postfix) with ESMTP id 44A9B8137C for <cbor@ietf.org>; Sun,  3 Nov 2019 21:41:40 +0100 (CET)
DKIM-Filter: OpenDKIM Filter v2.10.3 zproxy110.enst.fr 44A9B8137C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=imt-atlantique.fr; s=50EA75E8-DE22-11E6-A6DE-0662BA474D24; t=1572813700; bh=X68noN6GxAo7Zbt+MvNamy6oS0EkN+vxCwxT3iCdjio=; h=To:From:Message-ID:Date:MIME-Version; b=QvBomA9HNYasGtxE2KkhS600lvbdW/wEz0Ki1/v7caOoaztbBh9seeYX+vzWYPUac GPiZORRVWDEKgAjZBBLk1CpH8YA5xTw0rrmRETQ1bo5+pCm1uieCdwrLok4id5TiCm m/KrbaCt06qXNxYAbQpLva8si+4GQ5KIeY0ga4vg=
X-Virus-Scanned: amavisd-new at zproxy110.enst.fr
Received: from zproxy110.enst.fr ([IPv6:::1]) by localhost (zproxy110.enst.fr [IPv6:::1]) (amavisd-new, port 10026) with ESMTP id HRwztPTVZlbI for <cbor@ietf.org>; Sun,  3 Nov 2019 21:41:40 +0100 (CET)
Received: from [192.168.1.4] (157.68.93.79.rev.sfr.net [79.93.68.157]) by zproxy110.enst.fr (Postfix) with ESMTPSA id 0D58181360 for <cbor@ietf.org>; Sun,  3 Nov 2019 21:41:39 +0100 (CET)
References: <92400DAA-A713-4905-A721-34B138E25192@tzi.org> <ed45e995-1858-3169-1be6-0cce5ce37ce3@imt-atlantique.fr> <87889E65-0152-455A-A6B7-C5F336DC97A4@island-resort.com>
To: cbor@ietf.org
From: Christophe Lohr <christophe.lohr@imt-atlantique.fr>
Openpgp: preference=signencrypt
Autocrypt: addr=christophe.lohr@imt-atlantique.fr; prefer-encrypt=mutual; keydata= mQINBFidiI4BEAC/zpewWjK9zQSDxb5ue3RvpVE3GJJZHZtCTnUpUnlMs2cKE5ZFwgYnMGr6 hFZFubcZcg2iTWCAcGcaqGHufFlv1+T/zw6tN0XUEnJRDAdqPeefjrRzf264efp/2kfftJkU rWS7cPPOYjSbsB+TMjDL13+lGAh3wceo8kXrCRSEKnzCGKcwrgNNIWwISqD/+1/2rppCEE55 Mx7Gh/NtLDhrhrlSJe5UhRa5PHG17FyFwnpP+Mplqy5AGjt2cEdooQBqOJR8k0UksYmSw2uU 2zP779xr9Jh9zjwZxXFia6Q7ZmOMnMjMWG225iVPphye5TS1s/1LTOXZYUWFY8RCuVxR2YHg C0qsd5lC0Hei/WODt0Lx0T4DgHXEe6zqg1X4PKCqWW7DaPUMy1v1yfu8K1T7ySUSxNan8XuA om15iYqJHjHLBuMxq3TKAOoHaWecdP7tAK58WVncsWb4vQZGweSQRsr/CBgRmsZM4UcT0Kkr t0rOAfpW9t4vz3dqn80MwRu9UGVnc2fLgC0Ml+ymsBFnDZjYTg/4vAas7E9V2E7uVfOXB9Mr PwB4u3+VdKgI2qRYEUUbvmrw9sYX/we4eh3qUtXcSXuvhu4ukDrjFKMGgZXccgXbsevzi24o j3IopUdrY0OrsMXhqHlMwrw4iq5aZujxP0T1CzVW6qAIZD9HewARAQABtEJDaHJpc3RvcGhl IExvaHIgKFdvcmsgYWRkcmVzcykgPGNocmlzdG9waGUubG9ockBpbXQtYXRsYW50aXF1ZS5m cj6JAk4EEwEIADgWIQRBlpOqI8ZwLZqLQzc/4GWuK29VCgUCWJ2IjgIbAwULCQgHAgYVCAkK CwIEFgIDAQIeAQIXgAAKCRA/4GWuK29VCnAaD/wIwRul4rfN5g9PPX5o89JtXKJHbdl/Ql8W +td240unsleBaJkqZTcnARmk+enYB5d54taM6e+Sodsjskt1P4mwX1AVR2/F/woeqEZxMMKQ xAQHFP+IInYsJHFw8qYO33Dc+Xlf6FGXMHGsPDoPbpWIZLMJbh20K9VeeEMuOBuTGnZHJhDy SyBnkgF3z4m37VVZKIC4CMbpswEqSPrI+U7Bmcr4LseqRN/6P3ivAHvF3hTy2cpAvLfbBQSm E91CdRzzZ5rvYnk3SsiBZ75IelYmaCqpDSPuzJSMAePiI3SvdoVWl4Hl81y0lGfFeMkx+xxk 01YJUFAjIllOW0xVueODuXT70XI+xkds1QIuSG8IO/AaDk7zrB+5LpPTF+vrdd07yTyk6gUD ZJqWI56Nhvkq+ORskWnPDOHy6Zd1Ov4ke3bVxuGn0Y/Vzkdp7U2SqJEb82OkGAWw4IS9NbWm IlKKxsGJSsnlq7HxX0m/5+DTHnlCjdI/iyXxUOwp15Wc7M7xOwg+34ME1uUJ9lOsqxVUopYG e2rbJK+LNzRUHx+aDSE3LYSEd481h6lelqJ9bE1Dri2Um/YHZK8DoVvrMV7+FdfjX75ooaV+ XDa4rc6M0lIz20yPBB2kWC2qAObelRNK28pUWMfc4fS238pIjYqlhassImksSEVWq52ypryi l7kCDQRYnYiOARAAwdGm1tsrDtx8nn5ykcld8fYM4LRPRrwekDi7GYuJZq2rQvVccMpmb9v8 nlloYEDAf7nnqlH7nHEmZP+j6w0oxkUp/leKGeGddEiLsKY+BcmgricktNxdsoIryDLpmI+j qjGw5UtEBDO8+iBDi+Nu78SSa9UKEfxw+KUhPWWUiHSKEO4+wov0B5dswTtVGACtbjwTFVVr LHCXP0O4nmlRgh89y7rEFIReOMLQUxzHttMsEe7qlZuX49jYtAabAaFmmh96BoepQY1Gq1+M ShD9PTUb2dKpNBwWbM94gHIkYYHcChPsAbj1D3Xgxx2U+55+49zUClJ6AXxNZQGtPvhYsYm+ Fde2REQh7zcefjTq2FvXIXyUiRyYL2nR3oQTzdsuoY81zBokETt7hVeRa/vHblLIx25mFrqF ccjKvE4NmMzYTh7oUJWPWGB/o6WxGlDG01hz6Kv+fCxRReW1nbMOxe7FjCTTuzxF9Y9pueE8 MOKMTXR1Z1dnznOyTfqkKEYKejPpD3nZPhNUrnxkiccjKI1RRyWqz9mXCZWw/NdWOscGorNL +KAyFpNRFXelgIsPcmSBrZq3Z6+QBYEgm92qo5/dnvf/vwZBXdeiNuhkz0iyDiFsMWIyiJ/b bZBmbnNTbSHmbS0ObbuO3duWCs/m3wKiDjACAdG7HXNsFFL2L1sAEQEAAYkCNgQYAQgAIBYh BEGWk6ojxnAtmotDNz/gZa4rb1UKBQJYnYiOAhsMAAoJED/gZa4rb1UKpO4P/RqIjeePf4o9 rcT93UfSPgg+dlJjv1OgCYkURrXHB80h3PKEO9YDCcW6b0Zmzr048eNNGk54d5pflqZClIte IjgV6OcsGrSydickN9rRmXhRbwqcEhLasjJaSyIFwxmadc7aBuiFSJyuvHU4OPBZIx3eArb5 e+vNeNkP14p0yrWUeQ608xn8WgReDyIxwmnMkxoZkwlj9O2+zCyyLo6jKtVCfn4LZpwcwUP9 awQeQqU7WYckzm4fO+2JxmZ0zhIjia3ROdrw00H3V8KbDWcKTL7IWDqoLF/afDRQTMkrDmmY LF6Pgk5Lg/uUo3CBv8EzJXscZ2w6Ttzv0o5lECHMpQvmeitW56/rfQMIZTXhOxrhzi5jXWRz t0M54F9PVmyOX9a5qrlyU28mi1Mgs+uvmjXMFEwg+h8lCrayeOR1nwPMr4FgoHsHU6JyUVxv pIgBF5Q8HpPZuQUEaEz5Bl3uEI3ofI616dCmh42GCHOFvc8bIORwLYaNTs0zGEc4bLVe9cGf i7uJTfshDnL4aKGLbNebV7mUJ1TNEQ8Syx5fWpt/92XECtE9ovSQHCXabTNzGb63Z5HtqOUA TTNmm76rXBSrlvtPv548cMXw4dejA09u1tCFNEyuHzOgT2ZJzEkUY96iNf5ZC+qyOcttgQWV ejdE1EpSVxnHMn0oG8z+dXZZ
Message-ID: <06592ab7-f3cb-1a59-1b32-ffba3194162c@imt-atlantique.fr>
Date: Sun, 3 Nov 2019 21:40:39 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.9.0
MIME-Version: 1.0
In-Reply-To: <87889E65-0152-455A-A6B7-C5F336DC97A4@island-resort.com>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Content-Language: fr
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/-axF7tKS0O7FaHa__RjPuumccI0>
Subject: Re: [Cbor] 7049bis: The concept of "optional tagging" is not really used in practice #126
X-BeenThere: cbor@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Concise Binary Object Representation \(CBOR\)" <cbor.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cbor>, <mailto:cbor-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cbor/>
List-Post: <mailto:cbor@ietf.org>
List-Help: <mailto:cbor-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cbor>, <mailto:cbor-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 03 Nov 2019 20:41:46 -0000

>> =C2=A0=C2=A0 3.=C2=A0 Data must be able to be decoded without a schema=
 description.
>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 *=C2=A0 Similar to JSON, encoded =
data should be self-describing so
>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 that a generic =
decoder can be written.

My confusion comes probably from vocabulary issues.

The sentence here probably talks about "a schema description" from the
/coding-decoding/ point of view, and nothing else.

Such as, let's say, the IP header: without the RFC in hands (its
description), there is no way to decode a set of 20 bytes and to guess
that the first 4 bits are an unsigned int, followed by another 4 bits
unsigned int, followed by an array of 8 booleans, etc.=C2=A0
A CBOR (or a JSON) coding format can tell this, without the need of
another writing document to specify this.

However, I read "schema description" from the /semantic/ point of view:
a description which explains the meaning of data items.=C2=A0 The IP RFC =
not
only tells that the first 4bits are an unsigned int, it also tells that
this number is the protocol version.=C2=A0
CBOR (neither JSON) can't tells this by itself, except if one defines a
TAG for this.


So, the next question is: "is there some guidelines for using TAGs?"

Well, it's probably too early. One may have to wait that CBOR usages
grow in maturity.
But what's your opinion?

Let's say I'm designing a system.=C2=A0 CBOR is used (for messages, recor=
ding
data files, or whatever).
What should I decide for my system design regarding CBOR TAGs?
Shall I:
- prohibit TAGs since this is redundant with other parts of my design
specifications (which already explicit the meaning of each field); or
- put TAGs everywhere for everything because TAGs bring semantic to data;=
 or
- add TAGs to some fields and not to others (which ones and why?)

The right answer is probably: "this depends". ;-)
but of what?

Best regards
Christophe



From nobody Sun Nov  3 13:02:21 2019
Return-Path: <lgl@island-resort.com>
X-Original-To: cbor@ietfa.amsl.com
Delivered-To: cbor@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E876E1200CE for <cbor@ietfa.amsl.com>; Sun,  3 Nov 2019 13:02:19 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.898
X-Spam-Level: 
X-Spam-Status: No, score=-1.898 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id yHltrcGk0w3c for <cbor@ietfa.amsl.com>; Sun,  3 Nov 2019 13:02:17 -0800 (PST)
Received: from p3plsmtpa08-06.prod.phx3.secureserver.net (p3plsmtpa08-06.prod.phx3.secureserver.net [173.201.193.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id BE6D31200C1 for <cbor@ietf.org>; Sun,  3 Nov 2019 13:02:17 -0800 (PST)
Received: from [10.122.0.22] ([45.56.150.85]) by :SMTPAUTH: with ESMTPA id RN0qiNlpIksi3RN0qi1Hpi; Sun, 03 Nov 2019 14:02:17 -0700
From: Laurence Lundblade <lgl@island-resort.com>
Message-Id: <8B119642-7D8D-4BEF-AD75-0AC9935BCD7C@island-resort.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_4772C1B3-3AC1-43A3-AE80-A83692423BB4"
Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.11\))
Date: Sun, 3 Nov 2019 13:02:16 -0800
In-Reply-To: <CBC1EF6C-FAF5-4AC9-B0DC-C3FD2ED8B88D@tzi.org>
Cc: Christophe Lohr <christophe.lohr@imt-atlantique.fr>, cbor@ietf.org
To: Carsten Bormann <cabo@tzi.org>
References: <92400DAA-A713-4905-A721-34B138E25192@tzi.org> <ed45e995-1858-3169-1be6-0cce5ce37ce3@imt-atlantique.fr> <87889E65-0152-455A-A6B7-C5F336DC97A4@island-resort.com> <CBC1EF6C-FAF5-4AC9-B0DC-C3FD2ED8B88D@tzi.org>
X-Mailer: Apple Mail (2.3445.104.11)
X-CMAE-Envelope: MS4wfBGFX0Nw9F0SAlY0QQlz97h469bxm2/93oHJn4mMUl5lBUsqByuuIdB2mqsKEPcpLA9eNzet1HpolKuM1FSkWmKTZQIZINDIi4qSyDrYL6g/j2KSX9V1 B2PnCH4/gJfSWp80qca5swhhT7U//8XgkikoDorfe7d72bVoee2d+8/iM/JmqbgnBBhHh0nSuj2E8unKDL5XTIhU8PKi0wbpZJ8xMendHww5nrYmQrQA6WEj
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/naAdT8ST4agyyY5X3GLVMRLLg9s>
Subject: Re: [Cbor] 7049bis: The concept of "optional tagging" is not really used in practice #126
X-BeenThere: cbor@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Concise Binary Object Representation \(CBOR\)" <cbor.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cbor>, <mailto:cbor-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cbor/>
List-Post: <mailto:cbor@ietf.org>
List-Help: <mailto:cbor-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cbor>, <mailto:cbor-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 03 Nov 2019 21:02:20 -0000

--Apple-Mail=_4772C1B3-3AC1-43A3-AE80-A83692423BB4
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8

OK. I understand.  To use it one of these new types in CDDL, =
particularly those with a internal structure, you make a pair of CDDL =
headers, one for tagged and one for untagged that describe it like COSE =
did (from 8152):

   COSE_Messages =3D COSE_Untagged_Message / COSE_Tagged_Message

   COSE_Untagged_Message =3D COSE_Sign / COSE_Sign1 /
       COSE_Encrypt / COSE_Encrypt0 /
       COSE_Mac / COSE_Mac0

   COSE_Tagged_Message =3D COSE_Sign_Tagged / COSE_Sign1_Tagged /
       COSE_Encrypt_Tagged / COSE_Encrypt0_Tagged /
       COSE_Mac_Tagged / COSE_Mac0_Tagged

   ...

   COSE_Sign1_Tagged =3D #6.18(COSE_Sign1)

   COSE_Sign1 =3D [
       Headers,
       payload : bstr / nil,
       signature : bstr
   ]

Would be cool if there were standard CDDL definitions ready for =
normative reference for all the =E2=80=9Ctagged=E2=80=9D data types =
defined in 7049 / 7049bis.

LL


> On Nov 3, 2019, at 8:59 AM, Carsten Bormann <cabo@tzi.org> wrote:
>=20
> Hi Laurence,
>=20
> CDDL does not describe behavior, but the shape of data.
>=20
>> Maybe a key question here is whether you can say in CDDL =E2=80=9Cthis =
next item must always be interpreted as a date even though it will never =
have a date tag=E2=80=9D.
>=20
> CDDL can say =E2=80=9Cthis item is a number=E2=80=9D.  It does not =
tell you how to =E2=80=9Cinterpret=E2=80=9D things, that would be the =
job of a language that transforms the data just received into data that =
is used by an application.
>=20
>> If CDDL doesn=E2=80=99t have than, then you can=E2=80=99t describe =
some CBOR-protocols with it.
>=20
> You sure can =E2=80=9Cdescribe=E2=80=9D the shape of data in CBOR =
protocols, but you will also need some information about how you plan to =
interpret the data.
>=20
>> CWT would be one of those protocols as it forbids adding the tag to =
dates.
>=20
> (For the exp, nbf, and iat claims, or claim numbers 4 to 6:) Yes, the =
CWT RFC (RFC 8392) tells you that the value here is a number, not a =
tagged date.
>=20
>> The designer of a protocol using a new data type will indicate in =
their protocol for each occurrence of it whether the tag must be present =
or not (never saying the tag may or may not be present). The designer =
will typically require the tag only when necessary to disambiguate the =
type of the data item.
>=20
> Right.  If you need to register for CWT a new claim that could either =
take a number (such as the longitude of the satellite that this claim is =
about) or a date/time (such as the time the satellite was launched), =
then a tag could be useful to make that distinction. =20
>=20
> That example is a bit contrived, because it=E2=80=99s just not as =
usual to have a choice between a number and a date.  More likely might =
be a choice between a date/time represented as a Tag 1 and a Tag 1001.  =
The encoding could choose to leave off the tag from the number that is =
the enclosed item of Tag 1, so you would have a choice between a number =
and a Tag 1001.
>=20
>> The implementor of a general purpose library to generate one of these =
new data item types must give the caller the option to include or not =
include the tag. Maybe this is just by never automatically outputting =
the tag and having a distinct output tag function.
>>=20
>> The implementor of a general purpose library to decode one of these =
new data types must allow the caller to say that the next data item =
should be decoded as this new data type whether or not it is tagged. =
Maybe it even errors out if it is tagged for the cases where the =
protocol document says no tag should be used.
>=20
> Right.
>=20
>> What I don=E2=80=99t know is whether CDDL can describe all this =
desired behavior.
>=20
> CDDL can describe the shape of the data interchanged, but it can=E2=80=99=
t describe the mapping to application semantics.  It can provide hints, =
and that=E2=80=99s one of the things that the unwrap operator is good =
for: When you apply it to a tag, this is a hint that you do not just =
want the data shape of that tag=E2=80=99d enclosed item, but also its =
semantics.
>=20
> Gr=C3=BC=C3=9Fe, Carsten
>=20
>=20


--Apple-Mail=_4772C1B3-3AC1-43A3-AE80-A83692423BB4
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=utf-8

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html; =
charset=3Dutf-8"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; line-break: after-white-space;" class=3D"">OK. =
I understand. &nbsp;To use it one of these new types in CDDL, =
particularly those with a internal structure, you make a pair of CDDL =
headers, one for tagged and one for untagged that describe it like COSE =
did (from 8152):<div class=3D""><br class=3D""></div><div class=3D""><pre =
class=3D"newpage" style=3D"font-size: 13.333333015441895px; margin-top: =
0px; margin-bottom: 0px; break-before: page;">   COSE_Messages =3D =
COSE_Untagged_Message / COSE_Tagged_Message

   COSE_Untagged_Message =3D COSE_Sign / COSE_Sign1 /
       COSE_Encrypt / COSE_Encrypt0 /
       COSE_Mac / COSE_Mac0

   COSE_Tagged_Message =3D COSE_Sign_Tagged / COSE_Sign1_Tagged /
       COSE_Encrypt_Tagged / COSE_Encrypt0_Tagged /
       COSE_Mac_Tagged / COSE_Mac0_Tagged</pre><pre class=3D"newpage" =
style=3D"font-size: 13.333333015441895px; margin-top: 0px; =
margin-bottom: 0px; break-before: page;"><br class=3D""></pre><pre =
class=3D"newpage" style=3D"font-size: 13.333333015441895px; margin-top: =
0px; margin-bottom: 0px; break-before: page;"><pre class=3D"newpage" =
style=3D"margin-top: 0px; margin-bottom: 0px; break-before: page;">   =
...</pre><div class=3D""><br class=3D""></div></pre><pre class=3D"newpage"=
 style=3D"font-size: 13.333333015441895px; margin-top: 0px; =
margin-bottom: 0px; break-before: page;"><pre class=3D"newpage" =
style=3D"margin-top: 0px; margin-bottom: 0px; break-before: page;">   =
COSE_Sign1_Tagged =3D #6.18(COSE_Sign1)</pre><pre class=3D"newpage" =
style=3D"margin-top: 0px; margin-bottom: 0px; break-before: page;"><br =
class=3D""></pre><pre class=3D"newpage" style=3D"margin-top: 0px; =
margin-bottom: 0px; break-before: page;"><pre class=3D"newpage" =
style=3D"margin-top: 0px; margin-bottom: 0px; break-before: page;">   =
COSE_Sign1 =3D [
       Headers,
       payload : bstr / nil,
       signature : bstr
   ]</pre></pre><pre class=3D"newpage" style=3D"margin-top: 0px; =
margin-bottom: 0px; break-before: page;"><br class=3D""></pre></pre><div =
class=3D"">Would be cool if there were standard CDDL definitions ready =
for normative reference for all the =E2=80=9Ctagged=E2=80=9D data types =
defined in 7049 / 7049bis.</div><div class=3D""><br class=3D""></div><div =
class=3D"">LL</div><div class=3D""><br class=3D""></div><div><br =
class=3D""><blockquote type=3D"cite" class=3D""><div class=3D"">On Nov =
3, 2019, at 8:59 AM, Carsten Bormann &lt;<a href=3D"mailto:cabo@tzi.org" =
class=3D"">cabo@tzi.org</a>&gt; wrote:</div><br =
class=3D"Apple-interchange-newline"><div class=3D""><div class=3D"">Hi =
Laurence,<br class=3D""><br class=3D"">CDDL does not describe behavior, =
but the shape of data.<br class=3D""><br class=3D""><blockquote =
type=3D"cite" class=3D"">Maybe a key question here is whether you can =
say in CDDL =E2=80=9Cthis next item must always be interpreted as a date =
even though it will never have a date tag=E2=80=9D.<br =
class=3D""></blockquote><br class=3D"">CDDL can say =E2=80=9Cthis item =
is a number=E2=80=9D. &nbsp;It does not tell you how to =E2=80=9Cinterpret=
=E2=80=9D things, that would be the job of a language that transforms =
the data just received into data that is used by an application.<br =
class=3D""><br class=3D""><blockquote type=3D"cite" class=3D"">If CDDL =
doesn=E2=80=99t have than, then you can=E2=80=99t describe some =
CBOR-protocols with it.<br class=3D""></blockquote><br class=3D"">You =
sure can =E2=80=9Cdescribe=E2=80=9D the shape of data in CBOR protocols, =
but you will also need some information about how you plan to interpret =
the data.<br class=3D""><br class=3D""><blockquote type=3D"cite" =
class=3D"">CWT would be one of those protocols as it forbids adding the =
tag to dates.<br class=3D""></blockquote><br class=3D"">(For the exp, =
nbf, and iat claims, or claim numbers 4 to 6:) Yes, the CWT RFC (RFC =
8392) tells you that the value here is a number, not a tagged date.<br =
class=3D""><br class=3D""><blockquote type=3D"cite" class=3D"">The =
designer of a protocol using a new data type will indicate in their =
protocol for each occurrence of it whether the tag must be present or =
not (never saying the tag may or may not be present). The designer will =
typically require the tag only when necessary to disambiguate the type =
of the data item.<br class=3D""></blockquote><br class=3D"">Right. =
&nbsp;If you need to register for CWT a new claim that could either take =
a number (such as the longitude of the satellite that this claim is =
about) or a date/time (such as the time the satellite was launched), =
then a tag could be useful to make that distinction. &nbsp;<br =
class=3D""><br class=3D"">That example is a bit contrived, because =
it=E2=80=99s just not as usual to have a choice between a number and a =
date. &nbsp;More likely might be a choice between a date/time =
represented as a Tag 1 and a Tag 1001. &nbsp;The encoding could choose =
to leave off the tag from the number that is the enclosed item of Tag 1, =
so you would have a choice between a number and a Tag 1001.<br =
class=3D""><br class=3D""><blockquote type=3D"cite" class=3D"">The =
implementor of a general purpose library to generate one of these new =
data item types must give the caller the option to include or not =
include the tag. Maybe this is just by never automatically outputting =
the tag and having a distinct output tag function.<br class=3D""><br =
class=3D"">The implementor of a general purpose library to decode one of =
these new data types must allow the caller to say that the next data =
item should be decoded as this new data type whether or not it is =
tagged. Maybe it even errors out if it is tagged for the cases where the =
protocol document says no tag should be used.<br =
class=3D""></blockquote><br class=3D"">Right.<br class=3D""><br =
class=3D""><blockquote type=3D"cite" class=3D"">What I don=E2=80=99t =
know is whether CDDL can describe all this desired behavior.<br =
class=3D""></blockquote><br class=3D"">CDDL can describe the shape of =
the data interchanged, but it can=E2=80=99t describe the mapping to =
application semantics. &nbsp;It can provide hints, and that=E2=80=99s =
one of the things that the unwrap operator is good for: When you apply =
it to a tag, this is a hint that you do not just want the data shape of =
that tag=E2=80=99d enclosed item, but also its semantics.<br =
class=3D""><br class=3D"">Gr=C3=BC=C3=9Fe, Carsten<br class=3D""><br =
class=3D""><br class=3D""></div></div></blockquote></div><br =
class=3D""></div></body></html>=

--Apple-Mail=_4772C1B3-3AC1-43A3-AE80-A83692423BB4--


From nobody Sun Nov  3 13:04:06 2019
Return-Path: <cabo@tzi.org>
X-Original-To: cbor@ietfa.amsl.com
Delivered-To: cbor@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 1FCA61200CE for <cbor@ietfa.amsl.com>; Sun,  3 Nov 2019 13:04:05 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.2
X-Spam-Level: 
X-Spam-Status: No, score=-4.2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id kaesINT_yrjz for <cbor@ietfa.amsl.com>; Sun,  3 Nov 2019 13:04:02 -0800 (PST)
Received: from gabriel-vm-2.zfn.uni-bremen.de (gabriel-vm-2.zfn.uni-bremen.de [134.102.50.17]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id ECA051200C4 for <cbor@ietf.org>; Sun,  3 Nov 2019 13:04:01 -0800 (PST)
Received: from [192.168.217.102] (p548DC893.dip0.t-ipconnect.de [84.141.200.147]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by gabriel-vm-2.zfn.uni-bremen.de (Postfix) with ESMTPSA id 475pM43PhjzyWd; Sun,  3 Nov 2019 22:04:00 +0100 (CET)
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 11.5 \(3445.9.1\))
From: Carsten Bormann <cabo@tzi.org>
In-Reply-To: <06592ab7-f3cb-1a59-1b32-ffba3194162c@imt-atlantique.fr>
Date: Sun, 3 Nov 2019 22:03:59 +0100
Cc: cbor@ietf.org
X-Mao-Original-Outgoing-Id: 594507838.0811599-f7a75664086a1285a6bde5f772ba8956
Content-Transfer-Encoding: quoted-printable
Message-Id: <B6CB0130-87F9-4DF0-A55B-07AFAC247823@tzi.org>
References: <92400DAA-A713-4905-A721-34B138E25192@tzi.org> <ed45e995-1858-3169-1be6-0cce5ce37ce3@imt-atlantique.fr> <87889E65-0152-455A-A6B7-C5F336DC97A4@island-resort.com> <06592ab7-f3cb-1a59-1b32-ffba3194162c@imt-atlantique.fr>
To: Christophe Lohr <christophe.lohr@imt-atlantique.fr>
X-Mailer: Apple Mail (2.3445.9.1)
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/TnylwXS0MJb-Mw2i_NKmEmLSJvw>
Subject: Re: [Cbor] 7049bis: The concept of "optional tagging" is not really used in practice #126
X-BeenThere: cbor@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Concise Binary Object Representation \(CBOR\)" <cbor.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cbor>, <mailto:cbor-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cbor/>
List-Post: <mailto:cbor@ietf.org>
List-Help: <mailto:cbor-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cbor>, <mailto:cbor-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 03 Nov 2019 21:04:05 -0000

>=20
> However, I read "schema description" from the /semantic/ point of =
view:
> a description which explains the meaning of data items. =20

Right.  =E2=80=9CSchema=E2=80=9D probably is one of the most misused =
terms in this space.
(That=E2=80=99s why CDDL is called a =E2=80=9Cdata definition =
language=E2=80=9D.)

> The IP RFC not
> only tells that the first 4bits are an unsigned int, it also tells =
that
> this number is the protocol version.=20
> CBOR (neither JSON) can't tells this by itself, except if one defines =
a
> TAG for this.

Tags (we prefer to write simple English words in lower case) tell you =
how to interpret an enclosed item with different (additional) data =
semantics.  So a tag with number 1 tells you the enclosed number really =
is to be interpreted as a POSIX epoch-based date.

> So, the next question is: =E2=80=9Cis there some guidelines for using =
TAGs?"
>=20
> Well, it's probably too early. One may have to wait that CBOR usages
> grow in maturity.

CBOR has been around for half a decade now, so I think we have a pretty =
good comprehension now of when to use tags.

> What should I decide for my system design regarding CBOR TAGs?

=E2=9E=94 Use tags when they are useful.

There are no general guidelines like the ones you propose below, because =
the usefulness depends on the specific context.

> Shall I:
> - prohibit TAGs since this is redundant with other parts of my design
> specifications (which already explicit the meaning of each field); or

If you have a relatively rigid data shape (=E2=80=9Cschema=E2=80=9D in =
the usual structural sense), you may indeed not need tags, because you =
can infer an alternative interpretation from structure (e.g., field =
names in a map used as a struct, position in a record, etc.).  They may =
still be useful when you want to express a choice, e.g., if you want to =
support both epoch-based and text-based dates, use Tag 0 or Tag 1.  =
Another example is integers: If you expect to interchange integers that =
might not fit into 64 bits, use a choice between a built-in integer =
(major types 0 and 1) and a tag 2/3:

                  uint =3D #0
                  nint =3D #1
                  int =3D uint / nint
                  biguint =3D #6.2(bstr)
                  bignint =3D #6.3(bstr)
                  bigint =3D biguint / bignint
                  integer =3D int / bigint


> - put TAGs everywhere for everything because TAGs bring semantic to =
data; or

"Everywhere=E2=80=9D I don=E2=80=99t know.  But if you expect your =
implementations to rely on generic decoders/encoders doing the work, =
using tags may be a labor-saving device.  This is particularly useful =
when CBOR is used for general serialization in a programming environment =
(where you may not have a hard and fast data definition with your data).

> - add TAGs to some fields and not to others (which ones and why?)

Yes.  Only add them when they are useful.  To express a choice, and/or =
to have the generic codec do the work.

Gr=C3=BC=C3=9Fe, Carsten


From nobody Sun Nov  3 13:05:22 2019
Return-Path: <cabo@tzi.org>
X-Original-To: cbor@ietfa.amsl.com
Delivered-To: cbor@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C03781200C4 for <cbor@ietfa.amsl.com>; Sun,  3 Nov 2019 13:05:20 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.2
X-Spam-Level: 
X-Spam-Status: No, score=-4.2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id HvidhGbHDCWx for <cbor@ietfa.amsl.com>; Sun,  3 Nov 2019 13:05:18 -0800 (PST)
Received: from gabriel-vm-2.zfn.uni-bremen.de (gabriel-vm-2.zfn.uni-bremen.de [134.102.50.17]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 1E85D1200C1 for <cbor@ietf.org>; Sun,  3 Nov 2019 13:05:18 -0800 (PST)
Received: from [192.168.217.102] (p548DC893.dip0.t-ipconnect.de [84.141.200.147]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by gabriel-vm-2.zfn.uni-bremen.de (Postfix) with ESMTPSA id 475pNX4nmlzyNM; Sun,  3 Nov 2019 22:05:16 +0100 (CET)
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 11.5 \(3445.9.1\))
From: Carsten Bormann <cabo@tzi.org>
In-Reply-To: <8B119642-7D8D-4BEF-AD75-0AC9935BCD7C@island-resort.com>
Date: Sun, 3 Nov 2019 22:05:16 +0100
Cc: Christophe Lohr <christophe.lohr@imt-atlantique.fr>, cbor@ietf.org
X-Mao-Original-Outgoing-Id: 594507914.173039-54981c0de7b2fe7236bf6b79489d6304
Content-Transfer-Encoding: quoted-printable
Message-Id: <B86EE13B-12C9-4918-8BE9-5E4BEBF3B779@tzi.org>
References: <92400DAA-A713-4905-A721-34B138E25192@tzi.org> <ed45e995-1858-3169-1be6-0cce5ce37ce3@imt-atlantique.fr> <87889E65-0152-455A-A6B7-C5F336DC97A4@island-resort.com> <CBC1EF6C-FAF5-4AC9-B0DC-C3FD2ED8B88D@tzi.org> <8B119642-7D8D-4BEF-AD75-0AC9935BCD7C@island-resort.com>
To: Laurence Lundblade <lgl@island-resort.com>
X-Mailer: Apple Mail (2.3445.9.1)
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/vef-2Usl8On-ieP1TE7vnZ_uDhY>
Subject: Re: [Cbor] 7049bis: The concept of "optional tagging" is not really used in practice #126
X-BeenThere: cbor@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Concise Binary Object Representation \(CBOR\)" <cbor.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cbor>, <mailto:cbor-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cbor/>
List-Post: <mailto:cbor@ietf.org>
List-Help: <mailto:cbor-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cbor>, <mailto:cbor-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 03 Nov 2019 21:05:21 -0000

On Nov 3, 2019, at 22:02, Laurence Lundblade <lgl@island-resort.com> =
wrote:
>=20
> Would be cool if there were standard CDDL definitions ready for =
normative reference for all the =E2=80=9Ctagged=E2=80=9D data types =
defined in 7049 / 7049bis.

Do you mean anything beyond Appendix D of RFC 8610?

https://tools.ietf.org/html/rfc8610#appendix-D

Gr=C3=BC=C3=9Fe, Carsten


From nobody Sun Nov  3 13:07:05 2019
Return-Path: <henk.birkholz@sit.fraunhofer.de>
X-Original-To: cbor@ietfa.amsl.com
Delivered-To: cbor@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 4E25B1200CE for <cbor@ietfa.amsl.com>; Sun,  3 Nov 2019 13:07:03 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.9
X-Spam-Level: 
X-Spam-Status: No, score=-6.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_HI=-5, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 5wAOQmuySeRJ for <cbor@ietfa.amsl.com>; Sun,  3 Nov 2019 13:07:00 -0800 (PST)
Received: from mailext.sit.fraunhofer.de (mailext.sit.fraunhofer.de [141.12.72.89]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 1970F1200C1 for <cbor@ietf.org>; Sun,  3 Nov 2019 13:06:59 -0800 (PST)
Received: from mail.sit.fraunhofer.de (mail.sit.fraunhofer.de [141.12.84.171]) by mailext.sit.fraunhofer.de (8.15.2/8.15.2/Debian-10) with ESMTPS id xA3L6v1F031813 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA256 bits=128 verify=NOT); Sun, 3 Nov 2019 22:06:58 +0100
Received: from [192.168.16.50] (79.234.112.245) by mail.sit.fraunhofer.de (141.12.84.171) with Microsoft SMTP Server (TLS) id 14.3.468.0; Sun, 3 Nov 2019 22:06:52 +0100
To: Laurence Lundblade <lgl@island-resort.com>, Carsten Bormann <cabo@tzi.org>
CC: <cbor@ietf.org>, Christophe Lohr <christophe.lohr@imt-atlantique.fr>
References: <92400DAA-A713-4905-A721-34B138E25192@tzi.org> <ed45e995-1858-3169-1be6-0cce5ce37ce3@imt-atlantique.fr> <87889E65-0152-455A-A6B7-C5F336DC97A4@island-resort.com> <CBC1EF6C-FAF5-4AC9-B0DC-C3FD2ED8B88D@tzi.org> <8B119642-7D8D-4BEF-AD75-0AC9935BCD7C@island-resort.com>
From: Henk Birkholz <henk.birkholz@sit.fraunhofer.de>
Message-ID: <3a7e36aa-a93b-feb7-0bf2-8745e8997699@sit.fraunhofer.de>
Date: Sun, 3 Nov 2019 22:06:51 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.9.0
MIME-Version: 1.0
In-Reply-To: <8B119642-7D8D-4BEF-AD75-0AC9935BCD7C@island-resort.com>
Content-Type: text/plain; charset="utf-8"; format=flowed
Content-Language: en-US
Content-Transfer-Encoding: 8bit
X-Originating-IP: [79.234.112.245]
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/PBiAfauI0_rpg1oX4aqP3VnYpV4>
Subject: Re: [Cbor] 7049bis: The concept of "optional tagging" is not really used in practice #126
X-BeenThere: cbor@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Concise Binary Object Representation \(CBOR\)" <cbor.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cbor>, <mailto:cbor-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cbor/>
List-Post: <mailto:cbor@ietf.org>
List-Help: <mailto:cbor-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cbor>, <mailto:cbor-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 03 Nov 2019 21:07:03 -0000

Well there is this for starters

> https://tools.ietf.org/html/rfc8610#appendix-D


On 03.11.19 22:02, Laurence Lundblade wrote:
> OK. I understand.  To use it one of these new types in CDDL, 
> particularly those with a internal structure, you make a pair of CDDL 
> headers, one for tagged and one for untagged that describe it like COSE 
> did (from 8152):
> 
>     COSE_Messages = COSE_Untagged_Message / COSE_Tagged_Message
> 
>     COSE_Untagged_Message = COSE_Sign / COSE_Sign1 /
>         COSE_Encrypt / COSE_Encrypt0 /
>         COSE_Mac / COSE_Mac0
> 
>     COSE_Tagged_Message = COSE_Sign_Tagged / COSE_Sign1_Tagged /
>         COSE_Encrypt_Tagged / COSE_Encrypt0_Tagged /
>         COSE_Mac_Tagged / COSE_Mac0_Tagged
> 
> 
>     ....
> 
> 
>     COSE_Sign1_Tagged = #6.18(COSE_Sign1)
> 
> 
>     COSE_Sign1 = [
>         Headers,
>         payload : bstr / nil,
>         signature : bstr
>     ]
> 
> 
> Would be cool if there were standard CDDL definitions ready for 
> normative reference for all the “tagged” data types defined in 7049 / 
> 7049bis.
> 
> LL
> 
> 
>> On Nov 3, 2019, at 8:59 AM, Carsten Bormann <cabo@tzi.org 
>> <mailto:cabo@tzi.org>> wrote:
>>
>> Hi Laurence,
>>
>> CDDL does not describe behavior, but the shape of data.
>>
>>> Maybe a key question here is whether you can say in CDDL “this next 
>>> item must always be interpreted as a date even though it will never 
>>> have a date tag”.
>>
>> CDDL can say “this item is a number”.  It does not tell you how to 
>> “interpret” things, that would be the job of a language that 
>> transforms the data just received into data that is used by an 
>> application.
>>
>>> If CDDL doesn’t have than, then you can’t describe some 
>>> CBOR-protocols with it.
>>
>> You sure can “describe” the shape of data in CBOR protocols, but you 
>> will also need some information about how you plan to interpret the data.
>>
>>> CWT would be one of those protocols as it forbids adding the tag to 
>>> dates.
>>
>> (For the exp, nbf, and iat claims, or claim numbers 4 to 6:) Yes, the 
>> CWT RFC (RFC 8392) tells you that the value here is a number, not a 
>> tagged date.
>>
>>> The designer of a protocol using a new data type will indicate in 
>>> their protocol for each occurrence of it whether the tag must be 
>>> present or not (never saying the tag may or may not be present). The 
>>> designer will typically require the tag only when necessary to 
>>> disambiguate the type of the data item.
>>
>> Right.  If you need to register for CWT a new claim that could either 
>> take a number (such as the longitude of the satellite that this claim 
>> is about) or a date/time (such as the time the satellite was 
>> launched), then a tag could be useful to make that distinction.
>>
>> That example is a bit contrived, because it’s just not as usual to 
>> have a choice between a number and a date.  More likely might be a 
>> choice between a date/time represented as a Tag 1 and a Tag 1001.  The 
>> encoding could choose to leave off the tag from the number that is the 
>> enclosed item of Tag 1, so you would have a choice between a number 
>> and a Tag 1001.
>>
>>> The implementor of a general purpose library to generate one of these 
>>> new data item types must give the caller the option to include or not 
>>> include the tag. Maybe this is just by never automatically outputting 
>>> the tag and having a distinct output tag function.
>>>
>>> The implementor of a general purpose library to decode one of these 
>>> new data types must allow the caller to say that the next data item 
>>> should be decoded as this new data type whether or not it is tagged. 
>>> Maybe it even errors out if it is tagged for the cases where the 
>>> protocol document says no tag should be used.
>>
>> Right.
>>
>>> What I don’t know is whether CDDL can describe all this desired behavior.
>>
>> CDDL can describe the shape of the data interchanged, but it can’t 
>> describe the mapping to application semantics.  It can provide hints, 
>> and that’s one of the things that the unwrap operator is good for: 
>> When you apply it to a tag, this is a hint that you do not just want 
>> the data shape of that tag’d enclosed item, but also its semantics.
>>
>> Grüße, Carsten
>>
>>
> 
> 
> _______________________________________________
> CBOR mailing list
> CBOR@ietf.org
> https://www.ietf.org/mailman/listinfo/cbor
> 


From nobody Sun Nov  3 13:08:13 2019
Return-Path: <henk.birkholz@sit.fraunhofer.de>
X-Original-To: cbor@ietfa.amsl.com
Delivered-To: cbor@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 8F27F12082F for <cbor@ietfa.amsl.com>; Sun,  3 Nov 2019 13:08:08 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.9
X-Spam-Level: 
X-Spam-Status: No, score=-6.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_HI=-5, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id USBHJ2RJY02z for <cbor@ietfa.amsl.com>; Sun,  3 Nov 2019 13:08:06 -0800 (PST)
Received: from mailext.sit.fraunhofer.de (mailext.sit.fraunhofer.de [141.12.72.89]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 24CAF120110 for <cbor@ietf.org>; Sun,  3 Nov 2019 13:08:05 -0800 (PST)
Received: from mail.sit.fraunhofer.de (mail.sit.fraunhofer.de [141.12.84.171]) by mailext.sit.fraunhofer.de (8.15.2/8.15.2/Debian-10) with ESMTPS id xA3L83EH031976 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA256 bits=128 verify=NOT); Sun, 3 Nov 2019 22:08:04 +0100
Received: from [192.168.16.50] (79.234.112.245) by mail.sit.fraunhofer.de (141.12.84.171) with Microsoft SMTP Server (TLS) id 14.3.468.0; Sun, 3 Nov 2019 22:07:58 +0100
To: Carsten Bormann <cabo@tzi.org>, Laurence Lundblade <lgl@island-resort.com>
CC: <cbor@ietf.org>, Christophe Lohr <christophe.lohr@imt-atlantique.fr>
References: <92400DAA-A713-4905-A721-34B138E25192@tzi.org> <ed45e995-1858-3169-1be6-0cce5ce37ce3@imt-atlantique.fr> <87889E65-0152-455A-A6B7-C5F336DC97A4@island-resort.com> <CBC1EF6C-FAF5-4AC9-B0DC-C3FD2ED8B88D@tzi.org> <8B119642-7D8D-4BEF-AD75-0AC9935BCD7C@island-resort.com> <B86EE13B-12C9-4918-8BE9-5E4BEBF3B779@tzi.org>
From: Henk Birkholz <henk.birkholz@sit.fraunhofer.de>
Message-ID: <0b6b6814-2c58-5f3f-6932-796f0978ae37@sit.fraunhofer.de>
Date: Sun, 3 Nov 2019 22:07:57 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.9.0
MIME-Version: 1.0
In-Reply-To: <B86EE13B-12C9-4918-8BE9-5E4BEBF3B779@tzi.org>
Content-Type: text/plain; charset="utf-8"; format=flowed
Content-Language: en-US
Content-Transfer-Encoding: 8bit
X-Originating-IP: [79.234.112.245]
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/23GSc7om2Y5LtPfddbNTyk7SyKg>
Subject: Re: [Cbor] 7049bis: The concept of "optional tagging" is not really used in practice #126
X-BeenThere: cbor@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Concise Binary Object Representation \(CBOR\)" <cbor.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cbor>, <mailto:cbor-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cbor/>
List-Post: <mailto:cbor@ietf.org>
List-Help: <mailto:cbor-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cbor>, <mailto:cbor-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 03 Nov 2019 21:08:13 -0000

Okay, as I am only seem to add redundancy, I'll just add an offset of 30 
min before I reply here :o)

On 03.11.19 22:05, Carsten Bormann wrote:
> On Nov 3, 2019, at 22:02, Laurence Lundblade <lgl@island-resort.com> wrote:
>>
>> Would be cool if there were standard CDDL definitions ready for normative reference for all the “tagged” data types defined in 7049 / 7049bis.
> 
> Do you mean anything beyond Appendix D of RFC 8610?
> 
> https://tools.ietf.org/html/rfc8610#appendix-D
> 
> Grüße, Carsten
> 
> _______________________________________________
> CBOR mailing list
> CBOR@ietf.org
> https://www.ietf.org/mailman/listinfo/cbor
> 


From nobody Sun Nov  3 13:48:16 2019
Return-Path: <ietf@augustcellars.com>
X-Original-To: cbor@ietfa.amsl.com
Delivered-To: cbor@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id CB325120024 for <cbor@ietfa.amsl.com>; Sun,  3 Nov 2019 13:48:14 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.899
X-Spam-Level: 
X-Spam-Status: No, score=-1.899 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id G8XwaX-DYlaO for <cbor@ietfa.amsl.com>; Sun,  3 Nov 2019 13:48:11 -0800 (PST)
Received: from mail2.augustcellars.com (augustcellars.com [50.45.239.150]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 1DCE412001E for <cbor@ietf.org>; Sun,  3 Nov 2019 13:48:11 -0800 (PST)
Received: from Jude (192.168.1.159) by mail2.augustcellars.com (192.168.1.201) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Sun, 3 Nov 2019 13:48:04 -0800
From: Jim Schaad <ietf@augustcellars.com>
To: 'Laurence Lundblade' <lgl@island-resort.com>, 'Christophe Lohr' <christophe.lohr@imt-atlantique.fr>
CC: <cbor@ietf.org>
References: <92400DAA-A713-4905-A721-34B138E25192@tzi.org> <ed45e995-1858-3169-1be6-0cce5ce37ce3@imt-atlantique.fr> <87889E65-0152-455A-A6B7-C5F336DC97A4@island-resort.com>
In-Reply-To: <87889E65-0152-455A-A6B7-C5F336DC97A4@island-resort.com>
Date: Sun, 3 Nov 2019 13:48:01 -0800
Message-ID: <00e701d59290$5f1e8800$1d5b9800$@augustcellars.com>
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="----=_NextPart_000_00E8_01D5924D.50FDB900"
X-Mailer: Microsoft Outlook 16.0
Content-Language: en-us
Thread-Index: AQGnHXGXCgNhMDA3lcYHl4TPKUnPNwIaBkgZAi7v+2yntJceIA==
X-Originating-IP: [192.168.1.159]
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/7r5Q1sM6rGV1GNoyllIBQhL7C_0>
Subject: Re: [Cbor] 7049bis: The concept of "optional tagging" is not really used in practice #126
X-BeenThere: cbor@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Concise Binary Object Representation \(CBOR\)" <cbor.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cbor>, <mailto:cbor-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cbor/>
List-Post: <mailto:cbor@ietf.org>
List-Help: <mailto:cbor-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cbor>, <mailto:cbor-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 03 Nov 2019 21:48:15 -0000

------=_NextPart_000_00E8_01D5924D.50FDB900
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable

=20

=20

From: CBOR <cbor-bounces@ietf.org> On Behalf Of Laurence Lundblade
Sent: Sunday, November 3, 2019 8:46 AM
To: Christophe Lohr <christophe.lohr@imt-atlantique.fr>
Cc: cbor@ietf.org
Subject: Re: [Cbor] 7049bis: The concept of "optional tagging" is not =
really used in practice #126

=20

I=E2=80=99m not really a data structure scientist or such, but I think I =
can see Christophe=E2=80=99s point.=20

=20

Maybe CBOR-based (and JSON-based) protocols don=E2=80=99t have a formal =
schema language, but these protocols rely on ordering and such. For =
example in a COSE_Sign1 it is expected that the first data item is the =
protected headers, the second the unprotected headers, the third the =
payload and the fourth the signature. I don=E2=80=99t think you can call =
them self-describing.

=20

[JLS] I consider the term self-describing to be a completely different =
beast.  The data can be parsed without the knowledge of the schema.  =
This is not a true statement with ASN.1 where a data description label, =
such as this is a SEQUENCE can be replace with a tag and the parser =
without the schema has no idea what the data type and structure of the =
data type is supposed to be.  This is not an issue for XML either as far =
as I know.

=20

Jim

=20

=20

It seems like CBOR and JSON say =E2=80=9Cno schema=E2=80=99=E2=80=9D to =
distance from the horror of XML schemas, but in reality CDDL and prose =
protocol specs are schemas in spirit.

=20

Maybe a key question here is whether you can say in CDDL =E2=80=9Cthis =
next item must always be interpreted as a date even though it will never =
have a date tag=E2=80=9D. If CDDL doesn=E2=80=99t have than, then you =
can=E2=80=99t describe some CBOR-protocols with it. CWT would be one of =
those protocols as it forbids adding the tag to dates.

=20

To summarize what I understand about tagging:

=20

The designer of a new CBOR data item type like a date format will =
generally register a tag for it. These new data types can be really =
simple, like epoch dates or really complex like COSE_Sign1.

=20

The designer of a protocol using a new data type will indicate in their =
protocol for each occurrence of it whether the tag must be present or =
not (never saying the tag may or may not be present). The designer will =
typically require the tag only when necessary to disambiguate the type =
of the data item.

=20

The implementor of a general purpose library to generate one of these =
new data item types must give the caller the option to include or not =
include the tag. Maybe this is just by never automatically outputting =
the tag and having a distinct output tag function.

=20

The implementor of a general purpose library to decode one of these new =
data types must allow the caller to say that the next data item should =
be decoded as this new data type whether or not it is tagged. Maybe it =
even errors out if it is tagged for the cases where the protocol =
document says no tag should be used.

=20

What I don=E2=80=99t know is whether CDDL can describe all this desired =
behavior.

=20

LL

=20

=20

=20





On Oct 24, 2019, at 1:50 AM, Christophe Lohr =
<christophe.lohr@imt-atlantique.fr =
<mailto:christophe.lohr@imt-atlantique.fr> > wrote:

=20

On 23/10/2019 13:38, Carsten Bormann wrote:



Section 3.4 talks about "optional tagging" as a secondary purpose of =
tags. But in today's CBOR protocols, tags are rarely "optional" in the =
sense that they can simply be left out without a change in semantics, as =
3.4 para 3 implies.

This concept comes up again in 4.2.2, where "optional tagging" is =
outlawed in deterministic encoding (but then the text goes on to explain =
that protocols might choose to retain tags, but doesn't say why).


To be honest, I don't really understand how much optional are tags.

A CDD rule with tags matchs cbor items with tags and reject cbor items
without tags. Tags are not optional from the data-model point of view.


Moreover, please consider this CDDL objective:
(https://tools.ietf.org/html/rfc7049#section-1.1)

   3.  Data must be able to be decoded without a schema description.
       *  Similar to JSON, encoded data should be self-describing so
          that a generic decoder can be written.


Well, how to do this without putting tags everywhere for everything?
(Or I need more explanation about what is "self-describing" and what is
a "schema description")

Let say I receive data. How may I know that this number is a temperature
and not a distance, and that this byte-string is an uuid and not a small
picture?

The first way is to have a schema (written or not): That is to say a
certain preliminary knowledge of expected data which tell me that this
number at this place or associated to this map-key is a temperature.
The second way is to decorate data with tags, all data.
A third way is a compromise between the two first ones: I have a certain
level of preliminary knoledge of what data are (a kind of schema
description), with possibly some missing parts that are filled by tags.

But the only way to decode data _without_ a schema description is to
have tags everywhere for everything.
Surprisingly, json has no tags and is claimed to be self-describing. Is
it really? I'm lost.

My feeling is that this objective CBOR should be not so demanding.

Best regards,
Christophe

_______________________________________________
CBOR mailing list
CBOR@ietf.org <mailto:CBOR@ietf.org>=20
https://www.ietf.org/mailman/listinfo/cbor

=20


------=_NextPart_000_00E8_01D5924D.50FDB900
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" =
xmlns:o=3D"urn:schemas-microsoft-com:office:office" =
xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" =
xmlns=3D"http://www.w3.org/TR/REC-html40"><head><meta =
http-equiv=3DContent-Type content=3D"text/html; charset=3Dutf-8"><meta =
name=3DGenerator content=3D"Microsoft Word 15 (filtered =
medium)"><style><!--
/* Font Definitions */
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:purple;
	text-decoration:underline;}
p.msonormal0, li.msonormal0, div.msonormal0
	{mso-style-name:msonormal;
	mso-margin-top-alt:auto;
	margin-right:0in;
	mso-margin-bottom-alt:auto;
	margin-left:0in;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;}
span.EmailStyle19
	{mso-style-type:personal-reply;
	font-family:"Calibri",sans-serif;
	color:windowtext;}
.MsoChpDefault
	{mso-style-type:export-only;
	font-size:10.0pt;}
@page WordSection1
	{size:8.5in 11.0in;
	margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
	{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]--></head><body lang=3DEN-US link=3Dblue =
vlink=3Dpurple><div class=3DWordSection1><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p><div><div =
style=3D'border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in =
0in 0in'><p class=3DMsoNormal><b>From:</b> CBOR =
&lt;cbor-bounces@ietf.org&gt; <b>On Behalf Of </b>Laurence =
Lundblade<br><b>Sent:</b> Sunday, November 3, 2019 8:46 AM<br><b>To:</b> =
Christophe Lohr &lt;christophe.lohr@imt-atlantique.fr&gt;<br><b>Cc:</b> =
cbor@ietf.org<br><b>Subject:</b> Re: [Cbor] 7049bis: The concept of =
&quot;optional tagging&quot; is not really used in practice =
#126<o:p></o:p></p></div></div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p><p class=3DMsoNormal>I=E2=80=99m =
not really a data structure scientist or such, but I think I can see =
Christophe=E2=80=99s point.&nbsp;<o:p></o:p></p><div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p></div><div><p =
class=3DMsoNormal>Maybe CBOR-based (and JSON-based) protocols =
don=E2=80=99t have a formal schema language, but these protocols rely on =
ordering and such. For example in a COSE_Sign1 it is expected that the =
first data item is the protected headers, the second the unprotected =
headers, the third the payload and the fourth the signature. I =
don=E2=80=99t think you can call them self-describing.<o:p></o:p></p><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p><p class=3DMsoNormal>[JLS] I =
consider the term self-describing to be a completely different beast. =
=C2=A0The data can be parsed without the knowledge of the schema.=C2=A0 =
This is not a true statement with ASN.1 where a data description label, =
such as this is a SEQUENCE can be replace with a tag and the parser =
without the schema has no idea what the data type and structure of the =
data type is supposed to be.=C2=A0 This is not an issue for XML either =
as far as I know.<o:p></o:p></p><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p><p =
class=3DMsoNormal>Jim<o:p></o:p></p><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p></div><div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p></div><div><p =
class=3DMsoNormal>It seems like CBOR and JSON say =E2=80=9Cno =
schema=E2=80=99=E2=80=9D to distance from the horror of XML schemas, but =
in reality CDDL and prose protocol specs are schemas in =
spirit.<o:p></o:p></p></div><div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p></div><div><p =
class=3DMsoNormal>Maybe a key question here is whether you can say in =
CDDL =E2=80=9Cthis next item must always be interpreted as a date even =
though it will never have a date tag=E2=80=9D. If CDDL doesn=E2=80=99t =
have than, then you can=E2=80=99t describe some CBOR-protocols with it. =
CWT would be one of those protocols as it forbids adding the tag to =
dates.<o:p></o:p></p></div><div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p></div><div><p =
class=3DMsoNormal>To summarize what I understand about =
tagging:<o:p></o:p></p></div><div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p></div><blockquote =
style=3D'margin-left:30.0pt;margin-right:0in'><div><p =
class=3DMsoNormal>The designer of a new CBOR data item type like a date =
format will generally register a tag for it. These new data types can be =
really simple, like epoch dates or really complex like =
COSE_Sign1.<o:p></o:p></p></div><div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p></div><div><p =
class=3DMsoNormal>The designer of a protocol using a new data type will =
indicate in their protocol for each occurrence of it whether the tag =
must be present or not (never saying the tag may or may not be present). =
The designer will typically require the tag only when necessary to =
disambiguate the type of the data item.<o:p></o:p></p></div><div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p></div><div><p =
class=3DMsoNormal>The implementor of a general purpose library to =
generate one of these new data item types must give the caller the =
option to include or not include the tag. Maybe this is just by never =
automatically outputting the tag and having a distinct output tag =
function.<o:p></o:p></p></div><div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p></div><div><p =
class=3DMsoNormal>The implementor of a general purpose library to decode =
one of these new data types must allow the caller to say that the next =
data item should be decoded as this new data type whether or not it is =
tagged. Maybe it even errors out if it is tagged for the cases where the =
protocol document says no tag should be =
used.<o:p></o:p></p></div><div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p></div></blockquote><p =
class=3DMsoNormal>What I don=E2=80=99t know is whether CDDL can describe =
all this desired behavior.<o:p></o:p></p><div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p></div><div><p =
class=3DMsoNormal>LL<o:p></o:p></p><div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p></div><div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p></div><div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p></div><div><div><p =
class=3DMsoNormal><br><br><o:p></o:p></p><blockquote =
style=3D'margin-top:5.0pt;margin-bottom:5.0pt'><div><p =
class=3DMsoNormal>On Oct 24, 2019, at 1:50 AM, Christophe Lohr &lt;<a =
href=3D"mailto:christophe.lohr@imt-atlantique.fr">christophe.lohr@imt-atl=
antique.fr</a>&gt; wrote:<o:p></o:p></p></div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p><div><div><p class=3DMsoNormal>On =
23/10/2019 13:38, Carsten Bormann =
wrote:<br><br><o:p></o:p></p><blockquote =
style=3D'margin-top:5.0pt;margin-bottom:5.0pt'><p =
class=3DMsoNormal>Section 3.4 talks about &quot;optional tagging&quot; =
as a secondary purpose of tags. But in today's CBOR protocols, tags are =
rarely &quot;optional&quot; in the sense that they can simply be left =
out without a change in semantics, as 3.4 para 3 implies.<br><br>This =
concept comes up again in 4.2.2, where &quot;optional tagging&quot; is =
outlawed in deterministic encoding (but then the text goes on to explain =
that protocols might choose to retain tags, but doesn't say =
why).<o:p></o:p></p></blockquote><p class=3DMsoNormal><br>To be honest, =
I don't really understand how much optional are tags.<br><br>A CDD rule =
with tags matchs cbor items with tags and reject cbor items<br>without =
tags. Tags are not optional from the data-model point of =
view.<br><br><br>Moreover, please consider this CDDL objective:<br>(<a =
href=3D"https://tools.ietf.org/html/rfc7049#section-1.1">https://tools.ie=
tf.org/html/rfc7049#section-1.1</a>)<br><br>&nbsp;&nbsp; 3.&nbsp; Data =
must be able to be decoded without a schema =
description.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *&nbsp; Similar to =
JSON, encoded data should be self-describing =
so<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; that a =
generic decoder can be written.<br><br><br>Well, how to do this without =
putting tags everywhere for everything?<br>(Or I need more explanation =
about what is &quot;self-describing&quot; and what is<br>a &quot;schema =
description&quot;)<br><br>Let say I receive data. How may I know that =
this number is a temperature<br>and not a distance, and that this =
byte-string is an uuid and not a small<br>picture?<br><br>The first way =
is to have a schema (written or not): That is to say a<br>certain =
preliminary knowledge of expected data which tell me that this<br>number =
at this place or associated to this map-key is a temperature.<br>The =
second way is to decorate data with tags, all data.<br>A third way is a =
compromise between the two first ones: I have a certain<br>level of =
preliminary knoledge of what data are (a kind of schema<br>description), =
with possibly some missing parts that are filled by tags.<br><br>But the =
only way to decode data _without_ a schema description is to<br>have =
tags everywhere for everything.<br>Surprisingly, json has no tags and is =
claimed to be self-describing. Is<br>it really? I'm lost.<br><br>My =
feeling is that this objective CBOR should be not so =
demanding.<br><br>Best =
regards,<br>Christophe<br><br>___________________________________________=
____<br>CBOR mailing list<br><a =
href=3D"mailto:CBOR@ietf.org">CBOR@ietf.org</a><br><a =
href=3D"https://www.ietf.org/mailman/listinfo/cbor">https://www.ietf.org/=
mailman/listinfo/cbor</a><o:p></o:p></p></div></div></blockquote></div><p=
 class=3DMsoNormal><o:p>&nbsp;</o:p></p></div></div></div></body></html>
------=_NextPart_000_00E8_01D5924D.50FDB900--


From nobody Sun Nov  3 16:03:18 2019
Return-Path: <cabo@tzi.org>
X-Original-To: cbor@ietfa.amsl.com
Delivered-To: cbor@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 4E9FA12004F for <cbor@ietfa.amsl.com>; Sun,  3 Nov 2019 16:03:15 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.199
X-Spam-Level: 
X-Spam-Status: No, score=-4.199 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id AyDxVNaaB1kv for <cbor@ietfa.amsl.com>; Sun,  3 Nov 2019 16:03:13 -0800 (PST)
Received: from gabriel-vm-2.zfn.uni-bremen.de (gabriel-vm-2.zfn.uni-bremen.de [134.102.50.17]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id CDD0A12003E for <cbor@ietf.org>; Sun,  3 Nov 2019 16:03:12 -0800 (PST)
Received: from [192.168.217.102] (p548DC893.dip0.t-ipconnect.de [84.141.200.147]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by gabriel-vm-2.zfn.uni-bremen.de (Postfix) with ESMTPSA id 475tKm60dXzySF; Mon,  4 Nov 2019 01:03:08 +0100 (CET)
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 11.5 \(3445.9.1\))
From: Carsten Bormann <cabo@tzi.org>
In-Reply-To: <87889E65-0152-455A-A6B7-C5F336DC97A4@island-resort.com>
Date: Mon, 4 Nov 2019 01:03:10 +0100
Cc: Christophe Lohr <christophe.lohr@imt-atlantique.fr>, cbor@ietf.org
X-Mao-Original-Outgoing-Id: 594518588.141502-c7ea9df27385886642688ba33870ba98
Content-Transfer-Encoding: quoted-printable
Message-Id: <F8CCD1C9-268B-4B78-9FDD-DF2E5E2A96B5@tzi.org>
References: <92400DAA-A713-4905-A721-34B138E25192@tzi.org> <ed45e995-1858-3169-1be6-0cce5ce37ce3@imt-atlantique.fr> <87889E65-0152-455A-A6B7-C5F336DC97A4@island-resort.com>
To: Laurence Lundblade <lgl@island-resort.com>
X-Mailer: Apple Mail (2.3445.9.1)
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/sw33XM4pvIG_9Nf_LmCj_C8HvZQ>
Subject: Re: [Cbor] 7049bis: The concept of "optional tagging" is not really used in practice #126
X-BeenThere: cbor@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Concise Binary Object Representation \(CBOR\)" <cbor.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cbor>, <mailto:cbor-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cbor/>
List-Post: <mailto:cbor@ietf.org>
List-Help: <mailto:cbor-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cbor>, <mailto:cbor-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 04 Nov 2019 00:03:16 -0000

On Nov 3, 2019, at 17:45, Laurence Lundblade <lgl@island-resort.com> =
wrote:
>=20
> It seems like CBOR and JSON say =E2=80=9Cno schema=E2=80=99=E2=80=9D =
to distance from the horror of XML schemas, but in reality CDDL and =
prose protocol specs are schemas in spirit.

One of the innovations of XML with respect to SGML was that it allowed =
schemaless parsing (parsing without a DTD).  In practice, this was =
marred by having default values in the DTD, so you couldn=E2=80=99t =
quite use schemaless parsing with a lot of real-world data.  But it =
still was a major item of progress, and people who got the point started =
to shun adding defaults to DTDs.

Schemaless parsing means that you can develop a parser independent of =
the application.
This is a major boon when you consider the fact that it is quite easy to =
introduce bugs in parsers, and bugs in input parsers are a significant =
attack vector.
Application considerations don=E2=80=99t enter a schemaless parser, so =
you can use a hardened, debugged implementation for parsing.

Default value processing is an example of data transformation, from the =
parsed input to something that an application can use (and back!).  =
Adding information about more general forms of such a transformation to =
a data definition language is a major item of interest.  First of all, =
it needs a data model for what the application can use.  Doing only =
defaults processing as in a DTD-based XML parser is easy, because the =
application data model is a simplified version of the interchange data =
model.  Now if you add something like tag processing (or, more =
generally, conversions between platform data types and the conventions =
used for representing them in interchange), the abstractions can get =
more leaky.

Fortunately, none of this is needed for completing 7049bis.

Gr=C3=BC=C3=9Fe, Carsten


From nobody Mon Nov  4 08:28:08 2019
Return-Path: <lgl@island-resort.com>
X-Original-To: cbor@ietfa.amsl.com
Delivered-To: cbor@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 8B2C0120B5E for <cbor@ietfa.amsl.com>; Mon,  4 Nov 2019 08:28:05 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.896
X-Spam-Level: 
X-Spam-Status: No, score=-1.896 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id qTiQqO6HH6cJ for <cbor@ietfa.amsl.com>; Mon,  4 Nov 2019 08:28:02 -0800 (PST)
Received: from p3plsmtpa11-07.prod.phx3.secureserver.net (p3plsmtpa11-07.prod.phx3.secureserver.net [68.178.252.108]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id B6CFB120B3D for <cbor@ietf.org>; Mon,  4 Nov 2019 08:28:02 -0800 (PST)
Received: from [10.122.0.118] ([45.56.150.85]) by :SMTPAUTH: with ESMTPA id RfCziW5aVOBX8RfD0inrbo; Mon, 04 Nov 2019 09:28:02 -0700
From: Laurence Lundblade <lgl@island-resort.com>
Message-Id: <3F9E4E02-7A86-4954-8E31-0E28D2B2FCDA@island-resort.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_BA7E3C5F-A86D-49E0-8675-BF7AA19652FA"
Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.11\))
Date: Mon, 4 Nov 2019 08:28:01 -0800
In-Reply-To: <B86EE13B-12C9-4918-8BE9-5E4BEBF3B779@tzi.org>
Cc: cbor@ietf.org, Christophe Lohr <christophe.lohr@imt-atlantique.fr>
To: Carsten Bormann <cabo@tzi.org>
References: <92400DAA-A713-4905-A721-34B138E25192@tzi.org> <ed45e995-1858-3169-1be6-0cce5ce37ce3@imt-atlantique.fr> <87889E65-0152-455A-A6B7-C5F336DC97A4@island-resort.com> <CBC1EF6C-FAF5-4AC9-B0DC-C3FD2ED8B88D@tzi.org> <8B119642-7D8D-4BEF-AD75-0AC9935BCD7C@island-resort.com> <B86EE13B-12C9-4918-8BE9-5E4BEBF3B779@tzi.org>
X-Mailer: Apple Mail (2.3445.104.11)
X-CMAE-Envelope: MS4wfLd8vkg0Hnfn6kfwvl7Pu5hAncy1VbSoinPguW9IB5t4YFHsUjcvh9aZ4iqqfKV0TUG7u+pRfeX2cLoBFwMUa8R7vY3oyaKBingFabr2XMZGfkdqcEso glc4+FFvoqtTbanVKc0tGVjKV6PH+6KaduDV7rjgheeaLw6j88K30m0rgUlIyJVjxtaGVlWhjgplumdKmxxwqQbRZ/GCSDBwNQursvXMIJ0mec2KnRa9Tdb+
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/ZSNHKT65FH7Edfsd2PAJLjYc5k4>
Subject: Re: [Cbor] 7049bis: The concept of "optional tagging" is not really used in practice #126
X-BeenThere: cbor@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Concise Binary Object Representation \(CBOR\)" <cbor.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cbor>, <mailto:cbor-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cbor/>
List-Post: <mailto:cbor@ietf.org>
List-Help: <mailto:cbor-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cbor>, <mailto:cbor-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 04 Nov 2019 16:28:06 -0000

--Apple-Mail=_BA7E3C5F-A86D-49E0-8675-BF7AA19652FA
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8


> On Nov 3, 2019, at 1:05 PM, Carsten Bormann <cabo@tzi.org> wrote:
>=20
> On Nov 3, 2019, at 22:02, Laurence Lundblade <lgl@island-resort.com> =
wrote:
>>=20
>> Would be cool if there were standard CDDL definitions ready for =
normative reference for all the =E2=80=9Ctagged=E2=80=9D data types =
defined in 7049 / 7049bis.
>=20
> Do you mean anything beyond Appendix D of RFC 8610?
>=20
> https://tools.ietf.org/html/rfc8610#appendix-D

Was thinking more like COSE:

decfrac =3D [
              e10: int,
              m: integer
           ]

decfrac_tagged =3D #6.4(decfrac)


That way you can say exactly which you want in CDDL without constructing =
the CDDL for the non-tagged form. Will also help make it clear that  =
protocol designers need to be clear and pick one.

Maybe even ask that every new registered data type have CDDL like this =
published suitable for normative reference as a requirement for getting =
into the IANA registry?

LL


--Apple-Mail=_BA7E3C5F-A86D-49E0-8675-BF7AA19652FA
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=utf-8

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html; =
charset=3Dutf-8"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; line-break: after-white-space;" class=3D""><br =
class=3D""><div><blockquote type=3D"cite" class=3D""><div class=3D"">On =
Nov 3, 2019, at 1:05 PM, Carsten Bormann &lt;<a =
href=3D"mailto:cabo@tzi.org" class=3D"">cabo@tzi.org</a>&gt; =
wrote:</div><br class=3D"Apple-interchange-newline"><div class=3D""><div =
class=3D"">On Nov 3, 2019, at 22:02, Laurence Lundblade &lt;<a =
href=3D"mailto:lgl@island-resort.com" =
class=3D"">lgl@island-resort.com</a>&gt; wrote:<br class=3D""><blockquote =
type=3D"cite" class=3D""><br class=3D"">Would be cool if there were =
standard CDDL definitions ready for normative reference for all the =
=E2=80=9Ctagged=E2=80=9D data types defined in 7049 / 7049bis.<br =
class=3D""></blockquote><br class=3D"">Do you mean anything beyond =
Appendix D of RFC 8610?<br class=3D""><br class=3D""><a =
href=3D"https://tools.ietf.org/html/rfc8610#appendix-D" =
class=3D"">https://tools.ietf.org/html/rfc8610#appendix-D</a><br =
class=3D""></div></div></blockquote><br class=3D""></div><div>Was =
thinking more like COSE:</div><div><br class=3D""></div><blockquote =
style=3D"margin: 0 0 0 40px; border: none; padding: 0px;" =
class=3D""><div><font face=3D"Courier" class=3D"">decfrac =3D =
[</font></div><div><font face=3D"Courier" class=3D"">&nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; e10: int,</font></div><div><font =
face=3D"Courier" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; m: integer</font></div><div><font face=3D"Courier" =
class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp;]</font></div><div><font face=3D"Courier" class=3D""><br =
class=3D""></font></div><div><div><font face=3D"Courier" =
class=3D"">decfrac_tagged =3D =
#6.4(decfrac)</font></div></div></blockquote><div><div class=3D""><br =
class=3D""></div></div><div><br class=3D""></div><div>That way you can =
say exactly which you want in CDDL without constructing the CDDL for the =
non-tagged form. Will also help make it clear that &nbsp;protocol =
designers need to be clear and pick one.</div><div><br =
class=3D""></div><div>Maybe even ask that every new registered data type =
have CDDL like this published suitable for normative reference as a =
requirement for getting into the IANA registry?</div><div><br =
class=3D""></div><div>LL</div><div><br class=3D""></div></body></html>=

--Apple-Mail=_BA7E3C5F-A86D-49E0-8675-BF7AA19652FA--


From nobody Mon Nov  4 08:34:23 2019
Return-Path: <cabo@tzi.org>
X-Original-To: cbor@ietfa.amsl.com
Delivered-To: cbor@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 2624B120232 for <cbor@ietfa.amsl.com>; Mon,  4 Nov 2019 08:34:22 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.199
X-Spam-Level: 
X-Spam-Status: No, score=-4.199 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id NRFvP4_iEUav for <cbor@ietfa.amsl.com>; Mon,  4 Nov 2019 08:34:20 -0800 (PST)
Received: from gabriel-vm-2.zfn.uni-bremen.de (gabriel-vm-2.zfn.uni-bremen.de [134.102.50.17]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 1588E12011F for <cbor@ietf.org>; Mon,  4 Nov 2019 08:34:20 -0800 (PST)
Received: from [192.168.217.102] (p548DC893.dip0.t-ipconnect.de [84.141.200.147]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by gabriel-vm-2.zfn.uni-bremen.de (Postfix) with ESMTPSA id 476JKQ1vRRzyjS; Mon,  4 Nov 2019 17:34:18 +0100 (CET)
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 11.5 \(3445.9.1\))
From: Carsten Bormann <cabo@tzi.org>
In-Reply-To: <3F9E4E02-7A86-4954-8E31-0E28D2B2FCDA@island-resort.com>
Date: Mon, 4 Nov 2019 17:34:17 +0100
Cc: cbor@ietf.org, Christophe Lohr <christophe.lohr@imt-atlantique.fr>
X-Mao-Original-Outgoing-Id: 594578055.681186-09573d8762d033e2facc76f92b42e5fb
Content-Transfer-Encoding: quoted-printable
Message-Id: <E7C97A51-BE67-4752-ADE6-A985E0B8A7AF@tzi.org>
References: <92400DAA-A713-4905-A721-34B138E25192@tzi.org> <ed45e995-1858-3169-1be6-0cce5ce37ce3@imt-atlantique.fr> <87889E65-0152-455A-A6B7-C5F336DC97A4@island-resort.com> <CBC1EF6C-FAF5-4AC9-B0DC-C3FD2ED8B88D@tzi.org> <8B119642-7D8D-4BEF-AD75-0AC9935BCD7C@island-resort.com> <B86EE13B-12C9-4918-8BE9-5E4BEBF3B779@tzi.org> <3F9E4E02-7A86-4954-8E31-0E28D2B2FCDA@island-resort.com>
To: Laurence Lundblade <lgl@island-resort.com>
X-Mailer: Apple Mail (2.3445.9.1)
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/S1H5jY-xzXFBgw2BlwMOXJ8ycK8>
Subject: Re: [Cbor] 7049bis: The concept of "optional tagging" is not really used in practice #126
X-BeenThere: cbor@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Concise Binary Object Representation \(CBOR\)" <cbor.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cbor>, <mailto:cbor-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cbor/>
List-Post: <mailto:cbor@ietf.org>
List-Help: <mailto:cbor-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cbor>, <mailto:cbor-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 04 Nov 2019 16:34:22 -0000

On Nov 4, 2019, at 17:28, Laurence Lundblade <lgl@island-resort.com> =
wrote:
>=20
> Was thinking more like COSE:
>=20
> decfrac =3D [
>               e10: int,
>               m: integer
>            ]
>=20
> decfrac_tagged =3D #6.4(decfrac)

That kind of style was written when we didn=E2=80=99t have the unwrap =
operator.

RFC 8610 says:

                  decfrac =3D #6.4([e10: int, m: integer])

Which is exactly what is called =E2=80=9Cdecfrac_tagged=E2=80=9D in the =
above.
If you don=E2=80=99t want the tag, just write ~decfrac, and you have =
what you called decfrac in your example.

(And the fact that the unwrap convention works universally obviates the =
need to come up with noisy conventions such as _tagged.)

> That way you can say exactly which you want in CDDL without =
constructing the CDDL for the non-tagged form. Will also help make it =
clear that  protocol designers need to be clear and pick one.
>=20
> Maybe even ask that every new registered data type have CDDL like this =
published suitable for normative reference as a requirement for getting =
into the IANA registry?

Requiring this would create too much coupling.
Suggesting this is a good job for the DE :-)

(=E2=80=9Csuitable for normative reference=E2=80=9D is a different =
issue, though.)

Gr=C3=BC=C3=9Fe, Carsten


From nobody Mon Nov  4 15:22:04 2019
Return-Path: <internet-drafts@ietf.org>
X-Original-To: cbor@ietf.org
Delivered-To: cbor@ietfa.amsl.com
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id 7AEFA1207FB; Mon,  4 Nov 2019 15:21:56 -0800 (PST)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
From: internet-drafts@ietf.org
To: <i-d-announce@ietf.org>
Cc: cbor@ietf.org
X-Test-IDTracker: no
X-IETF-IDTracker: 6.108.0
Auto-Submitted: auto-generated
Precedence: bulk
Reply-To: cbor@ietf.org
Message-ID: <157290971643.13964.10442200211561663375@ietfa.amsl.com>
Date: Mon, 04 Nov 2019 15:21:56 -0800
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/7qhr0nxsm-4w5Lx2PWuPjOKr9RY>
Subject: [Cbor] I-D Action: draft-ietf-cbor-7049bis-08.txt
X-BeenThere: cbor@ietf.org
X-Mailman-Version: 2.1.29
List-Id: "Concise Binary Object Representation \(CBOR\)" <cbor.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cbor>, <mailto:cbor-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cbor/>
List-Post: <mailto:cbor@ietf.org>
List-Help: <mailto:cbor-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cbor>, <mailto:cbor-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 04 Nov 2019 23:21:56 -0000

A New Internet-Draft is available from the on-line Internet-Drafts directories.
This draft is a work item of the Concise Binary Object Representation Maintenance and Extensions WG of the IETF.

        Title           : Concise Binary Object Representation (CBOR)
        Authors         : Carsten Bormann
                          Paul Hoffman
	Filename        : draft-ietf-cbor-7049bis-08.txt
	Pages           : 70
	Date            : 2019-11-04

Abstract:
   The Concise Binary Object Representation (CBOR) is a data format
   whose design goals include the possibility of extremely small code
   size, fairly small message size, and extensibility without the need
   for version negotiation.  These design goals make it different from
   earlier binary serializations such as ASN.1 and MessagePack.

   This document is a revised edition of RFC 7049, with editorial
   improvements, added detail, and fixed errata.  This revision formally
   obsoletes RFC 7049, while keeping full compatibility of the
   interchange format from RFC 7049.  It does not create a new version
   of the format.


The IETF datatracker status page for this draft is:
https://datatracker.ietf.org/doc/draft-ietf-cbor-7049bis/

There are also htmlized versions available at:
https://tools.ietf.org/html/draft-ietf-cbor-7049bis-08
https://datatracker.ietf.org/doc/html/draft-ietf-cbor-7049bis-08

A diff from the previous version is available at:
https://www.ietf.org/rfcdiff?url2=draft-ietf-cbor-7049bis-08


Please note that it may take a couple of minutes from the time of submission
until the htmlized version and diff are available at tools.ietf.org.

Internet-Drafts are also available by anonymous FTP at:
ftp://ftp.ietf.org/internet-drafts/


From nobody Mon Nov  4 15:26:56 2019
Return-Path: <internet-drafts@ietf.org>
X-Original-To: cbor@ietf.org
Delivered-To: cbor@ietfa.amsl.com
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id BC4E9120B30; Mon,  4 Nov 2019 15:26:51 -0800 (PST)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
From: internet-drafts@ietf.org
To: <i-d-announce@ietf.org>
Cc: cbor@ietf.org
X-Test-IDTracker: no
X-IETF-IDTracker: 6.108.0
Auto-Submitted: auto-generated
Precedence: bulk
Reply-To: cbor@ietf.org
Message-ID: <157291001172.13984.17072316613413501610@ietfa.amsl.com>
Date: Mon, 04 Nov 2019 15:26:51 -0800
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/fUPOJDxNDWi5iwswolFNGKghXL8>
Subject: [Cbor] I-D Action: draft-ietf-cbor-7049bis-09.txt
X-BeenThere: cbor@ietf.org
X-Mailman-Version: 2.1.29
List-Id: "Concise Binary Object Representation \(CBOR\)" <cbor.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cbor>, <mailto:cbor-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cbor/>
List-Post: <mailto:cbor@ietf.org>
List-Help: <mailto:cbor-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cbor>, <mailto:cbor-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 04 Nov 2019 23:26:55 -0000

A New Internet-Draft is available from the on-line Internet-Drafts directories.
This draft is a work item of the Concise Binary Object Representation Maintenance and Extensions WG of the IETF.

        Title           : Concise Binary Object Representation (CBOR)
        Authors         : Carsten Bormann
                          Paul Hoffman
	Filename        : draft-ietf-cbor-7049bis-09.txt
	Pages           : 70
	Date            : 2019-11-04

Abstract:
   The Concise Binary Object Representation (CBOR) is a data format
   whose design goals include the possibility of extremely small code
   size, fairly small message size, and extensibility without the need
   for version negotiation.  These design goals make it different from
   earlier binary serializations such as ASN.1 and MessagePack.

   This document is a revised edition of RFC 7049, with editorial
   improvements, added detail, and fixed errata.  This revision formally
   obsoletes RFC 7049, while keeping full compatibility of the
   interchange format from RFC 7049.  It does not create a new version
   of the format.


The IETF datatracker status page for this draft is:
https://datatracker.ietf.org/doc/draft-ietf-cbor-7049bis/

There are also htmlized versions available at:
https://tools.ietf.org/html/draft-ietf-cbor-7049bis-09
https://datatracker.ietf.org/doc/html/draft-ietf-cbor-7049bis-09

A diff from the previous version is available at:
https://www.ietf.org/rfcdiff?url2=draft-ietf-cbor-7049bis-09


Please note that it may take a couple of minutes from the time of submission
until the htmlized version and diff are available at tools.ietf.org.

Internet-Drafts are also available by anonymous FTP at:
ftp://ftp.ietf.org/internet-drafts/


From nobody Mon Nov  4 15:35:39 2019
Return-Path: <cabo@tzi.org>
X-Original-To: cbor@ietfa.amsl.com
Delivered-To: cbor@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 3A5741209D1 for <cbor@ietfa.amsl.com>; Mon,  4 Nov 2019 15:35:34 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.199
X-Spam-Level: 
X-Spam-Status: No, score=-4.199 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id AIxP-fcwll0y for <cbor@ietfa.amsl.com>; Mon,  4 Nov 2019 15:35:31 -0800 (PST)
Received: from gabriel-vm-2.zfn.uni-bremen.de (gabriel-vm-2.zfn.uni-bremen.de [134.102.50.17]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D4E5D120910 for <cbor@ietf.org>; Mon,  4 Nov 2019 15:35:30 -0800 (PST)
Received: from client-0152.vpn.uni-bremen.de (client-0152.vpn.uni-bremen.de [134.102.107.152]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by gabriel-vm-2.zfn.uni-bremen.de (Postfix) with ESMTPSA id 476TgP1cqKzydC; Tue,  5 Nov 2019 00:35:29 +0100 (CET)
From: Carsten Bormann <cabo@tzi.org>
Content-Type: text/plain; charset=utf-8
X-Mao-Original-Outgoing-Id: 594603327.047892-f6ffdf1e6c111621f1a9d58fc31787a0
Content-Transfer-Encoding: quoted-printable
Mime-Version: 1.0 (Mac OS X Mail 11.5 \(3445.9.1\))
Date: Tue, 5 Nov 2019 00:35:28 +0100
Message-Id: <AF58A490-9E49-4E20-9044-E9AC2C3B8D4B@tzi.org>
To: cbor@ietf.org
X-Mailer: Apple Mail (2.3445.9.1)
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/MTwIzI42vcfxw3evIvIJiCkHCkY>
Subject: [Cbor] 7049bis -08 and -09 submitted
X-BeenThere: cbor@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Concise Binary Object Representation \(CBOR\)" <cbor.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cbor>, <mailto:cbor-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cbor/>
List-Post: <mailto:cbor@ietf.org>
List-Help: <mailto:cbor-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cbor>, <mailto:cbor-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 04 Nov 2019 23:35:38 -0000

Right before the I-D deadline, I have submitted two new versions of =
7049bis

Version -08:
https://www.ietf.org/rfcdiff?url2=3Ddraft-ietf-cbor-7049bis-08
Contains all the changes that we had done about a week ago, so should be =
relatively stable.

Version -09:
https://www.ietf.org/rfcdiff?url2=3Ddraft-ietf-cbor-7049bis-09
has all the bleeding edge stuff that has not had as much review.

These were submitted separately so you can look at the changes =
separately.

Of course, if you want the firehose:

=
https://www.ietf.org/rfcdiff?url1=3Ddraft-ietf-cbor-7049bis-07&url2=3Ddraf=
t-ietf-cbor-7049bis-09

It would be great to get some review so we can decide whether -09 is the =
WGLC version.
(I have done some issue processing, but not yet a grand re-read.
Expect some WGLC comments from me as well ;-)

There are a few remnant issues at:

https://github.com/cbor-wg/CBORbis/issues

which I believe can be closed, but before that I'd like to hear some =
support for closing them.

Gr=C3=BC=C3=9Fe, Carsten


From nobody Wed Nov  6 01:35:13 2019
Return-Path: <francesca.palombini@ericsson.com>
X-Original-To: cbor@ietfa.amsl.com
Delivered-To: cbor@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 7F6E6120103 for <cbor@ietfa.amsl.com>; Wed,  6 Nov 2019 01:35:11 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level: 
X-Spam-Status: No, score=-2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9,  DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_FONT_LOW_CONTRAST=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=ericsson.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id meJXtGqZefZG for <cbor@ietfa.amsl.com>; Wed,  6 Nov 2019 01:35:08 -0800 (PST)
Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-eopbgr150050.outbound.protection.outlook.com [40.107.15.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 45C14120073 for <cbor@ietf.org>; Wed,  6 Nov 2019 01:35:07 -0800 (PST)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jiavPohfutltVteVV8k4sGs7zNsIlJkGBZ+PKLJPbTTTsrj/jd9MCbd3XTtoxWIu9cXv5EijYUd9ZqrrMJQxEhpSU4NbSqXBpL2l571rNTAn9m3hPtbyxi/rAwHhH75IGgdDkOalfVftdxirbq20HuS2R+oLbGUUwsY93otu2hCZDPPVDMpre8q2uV13PkGQEJNXhje8u/TBUgln+04ONp93PJtZ0/QoTDjQGL/Dyh+VPGQ61sntUYQF4vyuo285GP6OpCY6rk23pdftJS0kkbGMmZOwDPKzbduyVAOQ3wY4HOpfd1tV0F0x+V3642SmX0k7KkspFFO7FwcpBEnoZQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;  s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=v0F2vyO/uoCxBfEN+c3H8MVt60T0okvI47NwLHqPtHk=; b=ROxh8Kh/kFqD7WTpRdroQLB8Abrf59s9wjuJYHNXfW3idQTVt9gFEaC9Ycv1WkLjAMzjB0/5aRQ8ltPo18yIdWdwBVaULVQgoW2DdRnEgoXxa8LtESNO147nPCRu9gR+E/PtVhSKBhMo8KmjUdOtPSZP3mDmAtDs0W2ccJJ94rg/w5bHKkSY5NxArU9FwBlvI1fQkpyL8nBnasy10omtGTAf73NDrRQ4t1etMVD4kSgkcR0u9sHGtVIuKK9kaeaOtwwRHr8XLEHTchYNa8uTLLR6XBac7HSCgPC0vyf3f/TpVuiMRdZ4AnoYeSvbKRRgCEBzsY9Kt+8NuJ3dmIjdBw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=ericsson.com; dmarc=pass action=none header.from=ericsson.com; dkim=pass header.d=ericsson.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ericsson.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=v0F2vyO/uoCxBfEN+c3H8MVt60T0okvI47NwLHqPtHk=; b=OgfNYsz7MPqKZhqpie23uryORkf5bUoYZE4CQzzjUjxK7uiiSL0IB0MerZnItbTf0OYZjO/nI/JNzDFjb8CYG3yKgbFD8rW6NI9PoGjZ7N59N27NjJ1YabXa+GDqL8umxinXuEhy+NDSFuYj479JaXy2ZheWiQLUupyLcf3IVvo=
Received: from VI1PR07MB5469.eurprd07.prod.outlook.com (20.178.14.214) by VI1PR07MB5056.eurprd07.prod.outlook.com (20.177.203.80) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2430.13; Wed, 6 Nov 2019 09:35:05 +0000
Received: from VI1PR07MB5469.eurprd07.prod.outlook.com ([fe80::a8d5:a784:a19:5c76]) by VI1PR07MB5469.eurprd07.prod.outlook.com ([fe80::a8d5:a784:a19:5c76%6]) with mapi id 15.20.2430.017; Wed, 6 Nov 2019 09:35:05 +0000
From: Francesca Palombini <francesca.palombini@ericsson.com>
To: "cbor@ietf.org" <cbor@ietf.org>
CC: Carsten Bormann <cabocabo@gmail.com>, Jim Schaad <ietf@augustcellars.com>
Thread-Topic: CBOR Interim: 2019-11-06
Thread-Index: AQHVlIV4q/wMge1kUUufGCBYuNuLwQ==
Date: Wed, 6 Nov 2019 09:35:05 +0000
Message-ID: <4ED88D25-846D-4307-97E4-BEEDC4451ABF@ericsson.com>
Accept-Language: en-GB, en-US
Content-Language: en-GB
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: spf=none (sender IP is ) smtp.mailfrom=francesca.palombini@ericsson.com; 
x-originating-ip: [158.174.219.143]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 5f563bd2-7e6c-44fa-ae76-08d7629c9b62
x-ms-traffictypediagnostic: VI1PR07MB5056:
x-ms-exchange-purlcount: 5
x-microsoft-antispam-prvs: <VI1PR07MB50567A3364B25C89366D4D9798790@VI1PR07MB5056.eurprd07.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:9508;
x-forefront-prvs: 02135EB356
x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(396003)(346002)(136003)(39860400002)(366004)(376002)(199004)(189003)(53754006)(497574002)(6116002)(25786009)(478600001)(6436002)(6916009)(4326008)(54906003)(8936002)(2351001)(186003)(14444005)(256004)(16799955002)(476003)(6506007)(1730700003)(66446008)(81166006)(3846002)(81156014)(606006)(14454004)(966005)(36756003)(66476007)(66556008)(2501003)(486006)(64756008)(7736002)(71200400001)(71190400001)(102836004)(86362001)(91956017)(76116006)(44832011)(66946007)(5640700003)(2616005)(8676002)(26005)(316002)(6306002)(54896002)(236005)(6512007)(2906002)(99286004)(6486002)(66066001)(33656002)(5660300002); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR07MB5056; H:VI1PR07MB5469.eurprd07.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; 
received-spf: None (protection.outlook.com: ericsson.com does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 0jZpofpsNzdnA0ObKyql2d7E7HRTA4Epble5vuYIO/LAboCupTmynbV7ndGEOaan47cppcoK92JkvP+XhHA6EbdFwg6Csx6IH/gUM7hR1rCyFfvDsecJxaD6fdfaBTwY1XKlW8kT7Wcna9y1PqqHU0Ypmazp60FXhJ3/jl3c99k96OrXPln8gCDow+rpUvrETAa6bNYDTsO0NHEeX3HWfFYa11JIX5nCvFXV0ukbO12vT2+Uj0HMKOlUE2nmRagLrQZElFAEt8yQn4nPoDoXAbU6LdG6ICj5DCxFpKKj8jt7TIKXcGfAX2M2FXWsw1SDaA9F1q4UvftbnICp7vfEBsv/u4TZ1qwgxcqFLcgXYOW+pwnqgPU10MJuzf98bwEhrmLGnWQ4hopyCFfw7jTBB4xTuCeu3anNBdJXHL1i+l7kMl8MQwKXelUnDDIx50TexO3ml+yvPZjNtCSDFFjYkq5hslGYRQatGVASZXYsbrw=
x-ms-exchange-transport-forked: True
Content-Type: multipart/alternative; boundary="_000_4ED88D25846D430797E4BEEDC4451ABFericssoncom_"
MIME-Version: 1.0
X-OriginatorOrg: ericsson.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5f563bd2-7e6c-44fa-ae76-08d7629c9b62
X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Nov 2019 09:35:05.6431 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 92e84ceb-fbfd-47ab-be52-080c6b87953f
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: ru4cq4/EEhakWEuM5R7Ov5JzQ17Oo4+v/ZhjMg90J4hi5Kfao/bl+8q3naB1AWqScrSux4tt6yi5E9tkVE3F0xfiouJ3XMZrCpmHlIighPHhBkG6RVc33wOZP9tkUSYl
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR07MB5056
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/-FFVwmjFpfGJMgTau2EaCsTuamM>
Subject: [Cbor] CBOR Interim: 2019-11-06
X-BeenThere: cbor@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Concise Binary Object Representation \(CBOR\)" <cbor.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cbor>, <mailto:cbor-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cbor/>
List-Post: <mailto:cbor@ietf.org>
List-Help: <mailto:cbor-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cbor>, <mailto:cbor-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 06 Nov 2019 09:35:12 -0000

--_000_4ED88D25846D430797E4BEEDC4451ABFericssoncom_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

SGkgYWxsLA0KDQpUb2RheeKAmXMgaW50ZXJpbSB3aWxsIHByb2JhYmx5IGJlIGEgc2hvcnQgb25l
LCBidXQgSSB3YW50IHRvIGhhdmUgYSBjaGF0IGFuZCBzZWUgaWYgYW55Ym9keSB3YXMgYWJsZSB0
byByZWFkIHRoZSB1cGRhdGUgb24gQ0JPUiBDYXJzdGVuIHBvc3RlZCAodGhhbmtzIENhcnN0ZW4h
KS4gSWYgc28sIHdlIGNhbiBkaXNjdXNzIGl0LCBvdGhlcndpc2UgSSBvbmx5IGhhdmUgYSBjb3Vw
bGUgb2YgcXVpY2sgaXRlbXMgb24gdGhlIGFnZW5kYSAoYWdlbmRhIHNsb3RzIGluIFNpbmdhcG9y
ZSwgYW5kIENEREwgY29udGludWVkKS4gSSBkb27igJl0IHRoaW5rIHdl4oCZbGwgdGFrZSB0aGUg
ZnVsbCBob3VyLg0KDQoNCldlYmV4OiBodHRwczovL2lldGYud2ViZXguY29tL2lldGYvai5waHA/
TVRJRD1tMTIzN2E5ODEyNDExMWRlM2E0YzRlNjFkZmFjYTA1ZDUNCkFnZW5kYTogaHR0cHM6Ly9k
YXRhdHJhY2tlci5pZXRmLm9yZy9tZWV0aW5nL2ludGVyaW0tMjAxOS1jYm9yLTE5L21hdGVyaWFs
cy9hZ2VuZGEtaW50ZXJpbS0yMDE5LWNib3ItMTktc2Vzc2ENClRpbWU6IGh0dHBzOi8vd3d3Lndv
cmxkdGltZWJ1ZGR5LmNvbS8/cW09MSZsaWQ9MTIsMTAwLDUsOCZoPTEwMCZkYXRlPTIwMTktMTEt
MDYmc2xuPTE2LTE3DQoNCg0KVGFsayB0byB5b3UgbGF0ZXIsDQpGcmFuY2VzY2ENCg0KDQoNCkhl
bGxvLA0KQ0JPUiBXb3JraW5nIEdyb3VwIGludml0ZXMgeW91IHRvIGpvaW4gdGhpcyBXZWJleCBt
ZWV0aW5nLg0KDQoNCg0KQ0JPUiBXRyBDb25mZXJlbmNlIENhbGwNCk9jY3VycyBldmVyeSAyIHdl
ZWsocykgb24gV2VkbmVzZGF5IGVmZmVjdGl2ZSBXZWRuZXNkYXksIE1heSAyMiwgMjAxOSB1bnRp
bCBXZWRuZXNkYXksIE5vdmVtYmVyIDYsIDIwMTkgZnJvbSA1OjAwIFBNIHRvIDY6MDAgUE0sIChV
VEMrMDE6MDApIEFtc3RlcmRhbSwgQmVybGluLCBCZXJuLCBSb21lLCBTdG9ja2hvbG0sIFZpZW5u
YQ0KNTowMCBwbSAgfCAgRXVyb3BlIFN1bW1lciBUaW1lIChBbXN0ZXJkYW0sIEdNVCswMjowMCkg
IHwgIDEgaHINCg0KTWVldGluZyBudW1iZXIgKGFjY2VzcyBjb2RlKTogNjQxIDc2MCAxNTcNCg0K
TWVldGluZyBwYXNzd29yZDogVVBBdDlyQm4NCg0KDQoNCkFkZCB0byBDYWxlbmRhcjxodHRwczov
L2lldGYud2ViZXguY29tL2lldGYvai5waHA/TVRJRD1tMWQwNjM2MDY5YTI4YmQ3YzhjYzA5MGU3
NDE1NjVjOGM+DQpXaGVuIGl0J3MgdGltZSwgam9pbiB0aGUgbWVldGluZzxodHRwczovL2lldGYu
d2ViZXguY29tL2lldGYvai5waHA/TVRJRD1tMTIzN2E5ODEyNDExMWRlM2E0YzRlNjFkZmFjYTA1
ZDU+Lg0KDQoNCg0KSm9pbiBieSBwaG9uZQ0KMS02NTAtNDc5LTMyMDg8dGVsOiUyQjEtNjUwLTQ3
OS0zMjA4LCwqMDEqNjQxNzYwMTU3JTIzJTIzKjAxKj4gQ2FsbC1pbiB0b2xsIG51bWJlciAoVVMv
Q2FuYWRhKQ0KDQoNCg0KQ2FuJ3Qgam9pbiB0aGUgbWVldGluZz88aHR0cHM6Ly9jb2xsYWJvcmF0
aW9uaGVscC5jaXNjby5jb20vYXJ0aWNsZS9XQlgwMDAwMjkwNTU+DQoNCg0KDQpJTVBPUlRBTlQg
Tk9USUNFOiBQbGVhc2Ugbm90ZSB0aGF0IHRoaXMgV2ViZXggc2VydmljZSBhbGxvd3MgYXVkaW8g
YW5kIG90aGVyIGluZm9ybWF0aW9uIHNlbnQgZHVyaW5nIHRoZSBzZXNzaW9uIHRvIGJlIHJlY29y
ZGVkLCB3aGljaCBtYXkgYmUgZGlzY292ZXJhYmxlIGluIGEgbGVnYWwgbWF0dGVyLiBCeSBqb2lu
aW5nIHRoaXMgc2Vzc2lvbiwgeW91IGF1dG9tYXRpY2FsbHkgY29uc2VudCB0byBzdWNoIHJlY29y
ZGluZ3MuIElmIHlvdSBkbyBub3QgY29uc2VudCB0byBiZWluZyByZWNvcmRlZCwgZGlzY3VzcyB5
b3VyIGNvbmNlcm5zIHdpdGggdGhlIGhvc3Qgb3IgZG8gbm90IGpvaW4gdGhlIHNlc3Npb24uDQoN
Cg==

--_000_4ED88D25846D430797E4BEEDC4451ABFericssoncom_
Content-Type: text/html; charset="utf-8"
Content-ID: <5CA3BCBEA4C3E648BB688330F3505B6D@eurprd07.prod.outlook.com>
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6bz0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6b2ZmaWNlIiB4
bWxuczp3PSJ1cm46c2NoZW1hcy1taWNyb3NvZnQtY29tOm9mZmljZTp3b3JkIiB4bWxuczptPSJo
dHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS8yMDA0LzEyL29tbWwiIHhtbG5zPSJo
dHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwIj4NCjxoZWFkPg0KPG1ldGEgaHR0cC1lcXVp
dj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPg0KPG1l
dGEgbmFtZT0iR2VuZXJhdG9yIiBjb250ZW50PSJNaWNyb3NvZnQgV29yZCAxNSAoZmlsdGVyZWQg
bWVkaXVtKSI+DQo8c3R5bGU+PCEtLQ0KLyogRm9udCBEZWZpbml0aW9ucyAqLw0KQGZvbnQtZmFj
ZQ0KCXtmb250LWZhbWlseToiQ2FtYnJpYSBNYXRoIjsNCglwYW5vc2UtMToyIDQgNSAzIDUgNCA2
IDMgMiA0O30NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6Q2FsaWJyaTsNCglwYW5vc2UtMToy
IDE1IDUgMiAyIDIgNCAzIDIgNDt9DQpAZm9udC1mYWNlDQoJe2ZvbnQtZmFtaWx5Oi13ZWJraXQt
c3RhbmRhcmQ7DQoJcGFub3NlLTE6MiAxMSA2IDQgMiAyIDIgMiAyIDQ7fQ0KLyogU3R5bGUgRGVm
aW5pdGlvbnMgKi8NCnAuTXNvTm9ybWFsLCBsaS5Nc29Ob3JtYWwsIGRpdi5Nc29Ob3JtYWwNCgl7
bWFyZ2luOjBjbTsNCgltYXJnaW4tYm90dG9tOi4wMDAxcHQ7DQoJZm9udC1zaXplOjEyLjBwdDsN
Cglmb250LWZhbWlseToiQ2FsaWJyaSIsc2Fucy1zZXJpZjsNCgltc28tZmFyZWFzdC1sYW5ndWFn
ZTpFTi1VUzt9DQphOmxpbmssIHNwYW4uTXNvSHlwZXJsaW5rDQoJe21zby1zdHlsZS1wcmlvcml0
eTo5OTsNCgljb2xvcjojMDU2M0MxOw0KCXRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fQ0KYTp2
aXNpdGVkLCBzcGFuLk1zb0h5cGVybGlua0ZvbGxvd2VkDQoJe21zby1zdHlsZS1wcmlvcml0eTo5
OTsNCgljb2xvcjojOTU0RjcyOw0KCXRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fQ0Kc3Bhbi5F
bWFpbFN0eWxlMTcNCgl7bXNvLXN0eWxlLXR5cGU6cGVyc29uYWwtY29tcG9zZTsNCglmb250LWZh
bWlseToiQ2FsaWJyaSIsc2Fucy1zZXJpZjsNCgljb2xvcjp3aW5kb3d0ZXh0O30NCnNwYW4uYXBw
bGUtY29udmVydGVkLXNwYWNlDQoJe21zby1zdHlsZS1uYW1lOmFwcGxlLWNvbnZlcnRlZC1zcGFj
ZTt9DQouTXNvQ2hwRGVmYXVsdA0KCXttc28tc3R5bGUtdHlwZTpleHBvcnQtb25seTsNCgltc28t
ZmFyZWFzdC1sYW5ndWFnZTpFTi1VUzt9DQpAcGFnZSBXb3JkU2VjdGlvbjENCgl7c2l6ZTo2MTIu
MHB0IDc5Mi4wcHQ7DQoJbWFyZ2luOjcyLjBwdCA3Mi4wcHQgNzIuMHB0IDcyLjBwdDt9DQpkaXYu
V29yZFNlY3Rpb24xDQoJe3BhZ2U6V29yZFNlY3Rpb24xO30NCi0tPjwvc3R5bGU+DQo8L2hlYWQ+
DQo8Ym9keSBsYW5nPSJFTi1HQiIgbGluaz0iIzA1NjNDMSIgdmxpbms9IiM5NTRGNzIiPg0KPGRp
diBjbGFzcz0iV29yZFNlY3Rpb24xIj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9
IlNWIiBzdHlsZT0iZm9udC1zaXplOjExLjBwdCI+SGkgYWxsLDxvOnA+PC9vOnA+PC9zcGFuPjwv
cD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IlNWIiBzdHlsZT0iZm9udC1zaXpl
OjExLjBwdCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQiPlRvZGF54oCZcyBpbnRlcmltIHdpbGwg
cHJvYmFibHkgYmUgYSBzaG9ydCBvbmUsIGJ1dCBJIHdhbnQgdG8gaGF2ZSBhIGNoYXQgYW5kIHNl
ZSBpZiBhbnlib2R5IHdhcyBhYmxlIHRvIHJlYWQgdGhlIHVwZGF0ZSBvbiBDQk9SIENhcnN0ZW4g
cG9zdGVkICh0aGFua3MgQ2Fyc3RlbiEpLiBJZiBzbywgd2UgY2FuIGRpc2N1c3MgaXQsIG90aGVy
d2lzZSBJIG9ubHkgaGF2ZQ0KIGEgY291cGxlIG9mIHF1aWNrIGl0ZW1zIG9uIHRoZSBhZ2VuZGEg
KGFnZW5kYSBzbG90cyBpbiBTaW5nYXBvcmUsIGFuZCBDRERMIGNvbnRpbnVlZCkuIEkgZG9u4oCZ
dCB0aGluayB3ZeKAmWxsIHRha2UgdGhlIGZ1bGwgaG91ci48bzpwPjwvbzpwPjwvc3Bhbj48L3A+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdCI+PG86
cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5
bGU9ImZvbnQtc2l6ZToxMS4wcHQiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0Ij5XZWJleDogPGEg
aHJlZj0iaHR0cHM6Ly9pZXRmLndlYmV4LmNvbS9pZXRmL2oucGhwP01USUQ9bTEyMzdhOTgxMjQx
MTFkZTNhNGM0ZTYxZGZhY2EwNWQ1Ij4NCmh0dHBzOi8vaWV0Zi53ZWJleC5jb20vaWV0Zi9qLnBo
cD9NVElEPW0xMjM3YTk4MTI0MTExZGUzYTRjNGU2MWRmYWNhMDVkNTwvYT4gPG86cD4NCjwvbzpw
Pjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJTViIgc3R5bGU9
ImZvbnQtc2l6ZToxMS4wcHQiPkFnZW5kYTogPC9zcGFuPjxhIGhyZWY9Imh0dHBzOi8vZGF0YXRy
YWNrZXIuaWV0Zi5vcmcvbWVldGluZy9pbnRlcmltLTIwMTktY2Jvci0xOS9tYXRlcmlhbHMvYWdl
bmRhLWludGVyaW0tMjAxOS1jYm9yLTE5LXNlc3NhIj48c3BhbiBsYW5nPSJTViI+aHR0cHM6Ly9k
YXRhdHJhY2tlci5pZXRmLm9yZy9tZWV0aW5nL2ludGVyaW0tMjAxOS1jYm9yLTE5L21hdGVyaWFs
cy9hZ2VuZGEtaW50ZXJpbS0yMDE5LWNib3ItMTktc2Vzc2E8L3NwYW4+PC9hPjxzcGFuIGxhbmc9
IlNWIj48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBz
dHlsZT0iZm9udC1zaXplOjExLjBwdCI+VGltZTogPC9zcGFuPjxhIGhyZWY9Imh0dHBzOi8vd3d3
LndvcmxkdGltZWJ1ZGR5LmNvbS8/cW09MSZhbXA7bGlkPTEyLDEwMCw1LDgmYW1wO2g9MTAwJmFt
cDtkYXRlPTIwMTktMTEtMDYmYW1wO3Nsbj0xNi0xNyI+aHR0cHM6Ly93d3cud29ybGR0aW1lYnVk
ZHkuY29tLz9xbT0xJmFtcDtsaWQ9MTIsMTAwLDUsOCZhbXA7aD0xMDAmYW1wO2RhdGU9MjAxOS0x
MS0wNiZhbXA7c2xuPTE2LTE3PC9hPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFu
PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0
Ij48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3Bh
biBzdHlsZT0iZm9udC1zaXplOjExLjBwdCI+VGFsayB0byB5b3UgbGF0ZXIsPG86cD48L286cD48
L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTox
MS4wcHQiPkZyYW5jZXNjYTxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0Ij48bzpwPiZuYnNwOzwvbzpwPjwvc3Bh
bj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBw
dCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHRhYmxlIGNsYXNzPSJNc29Ob3JtYWxU
YWJsZSIgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMCIgYWxpZ249ImxlZnQiIHdpZHRoPSI1MjUi
IHN0eWxlPSJ3aWR0aDozOTMuNzVwdDttYXJnaW4tbGVmdDozLjc1cHQiPg0KPHRib2R5Pg0KPHRy
Pg0KPHRkIHZhbGlnbj0idG9wIiBzdHlsZT0icGFkZGluZzowY20gMGNtIDBjbSAwY20iPg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9ImxpbmUtaGVpZ2h0OjE1LjBwdDttc28tZWxlbWVudDpm
cmFtZTttc28tZWxlbWVudC1mcmFtZS1oc3BhY2U6Ni4wcHQ7bXNvLWVsZW1lbnQtd3JhcDphcm91
bmQ7bXNvLWVsZW1lbnQtYW5jaG9yLXZlcnRpY2FsOnBhcmFncmFwaDttc28tZWxlbWVudC1hbmNo
b3ItaG9yaXpvbnRhbDpjb2x1bW47bXNvLWhlaWdodC1ydWxlOmV4YWN0bHkiPg0KPHNwYW4gc3R5
bGU9ImZvbnQtc2l6ZToxMS41cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssc2Fucy1z
ZXJpZjtjb2xvcjojNjY2NjY2Ij4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8dGFibGUg
Y2xhc3M9Ik1zb05vcm1hbFRhYmxlIiBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIwIiB3aWR0aD0i
NTI1IiBzdHlsZT0id2lkdGg6MzkzLjc1cHQiPg0KPHRib2R5Pg0KPHRyPg0KPHRkIHN0eWxlPSJw
YWRkaW5nOjBjbSAwY20gMGNtIDBjbSI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibGlu
ZS1oZWlnaHQ6MTUuMHB0O21zby1lbGVtZW50OmZyYW1lO21zby1lbGVtZW50LWZyYW1lLWhzcGFj
ZTo2LjBwdDttc28tZWxlbWVudC13cmFwOmFyb3VuZDttc28tZWxlbWVudC1hbmNob3ItdmVydGlj
YWw6cGFyYWdyYXBoO21zby1lbGVtZW50LWFuY2hvci1ob3Jpem9udGFsOmNvbHVtbjttc28taGVp
Z2h0LXJ1bGU6ZXhhY3RseSI+DQo8c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjVwdDtmb250LWZh
bWlseTomcXVvdDtBcmlhbCZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiM0RDRENEQiPkhlbGxvLDwv
c3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvdGQ+DQo8L3RyPg0KPHRyPg0KPHRkIHN0eWxlPSJwYWRk
aW5nOjcuNXB0IDBjbSAwY20gMGNtIj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJsaW5l
LWhlaWdodDoxNS4wcHQ7bXNvLWVsZW1lbnQ6ZnJhbWU7bXNvLWVsZW1lbnQtZnJhbWUtaHNwYWNl
OjYuMHB0O21zby1lbGVtZW50LXdyYXA6YXJvdW5kO21zby1lbGVtZW50LWFuY2hvci12ZXJ0aWNh
bDpwYXJhZ3JhcGg7bXNvLWVsZW1lbnQtYW5jaG9yLWhvcml6b250YWw6Y29sdW1uO21zby1oZWln
aHQtcnVsZTpleGFjdGx5Ij4NCjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuNXB0O2ZvbnQtZmFt
aWx5OiZxdW90O0FyaWFsJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzRENEQ0RCI+Q0JPUiBXb3Jr
aW5nIEdyb3VwIGludml0ZXMgeW91IHRvIGpvaW4gdGhpcyBXZWJleCBtZWV0aW5nLjwvc3Bhbj48
bzpwPjwvbzpwPjwvcD4NCjwvdGQ+DQo8L3RyPg0KPC90Ym9keT4NCjwvdGFibGU+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIiBzdHlsZT0ibGluZS1oZWlnaHQ6MTUuMHB0O21zby1lbGVtZW50OmZyYW1l
O21zby1lbGVtZW50LWZyYW1lLWhzcGFjZTo2LjBwdDttc28tZWxlbWVudC13cmFwOmFyb3VuZDtt
c28tZWxlbWVudC1hbmNob3ItdmVydGljYWw6cGFyYWdyYXBoO21zby1lbGVtZW50LWFuY2hvci1o
b3Jpem9udGFsOmNvbHVtbjttc28taGVpZ2h0LXJ1bGU6ZXhhY3RseSI+DQo8c3BhbiBzdHlsZT0i
Zm9udC1zaXplOjExLjVwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OyxzYW5zLXNlcmlm
O2NvbG9yOiM2NjY2NjYiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjx0YWJsZSBjbGFz
cz0iTXNvTm9ybWFsVGFibGUiIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjAiIHdpZHRoPSI1MjUi
IHN0eWxlPSJ3aWR0aDozOTMuNzVwdCI+DQo8dGJvZHk+DQo8dHIgc3R5bGU9ImhlaWdodDoxNS4w
cHQiPg0KPHRkIHN0eWxlPSJwYWRkaW5nOjBjbSAwY20gMGNtIDBjbTtoZWlnaHQ6MTUuMHB0Ij4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJsaW5lLWhlaWdodDoxNS4wcHQ7bXNvLWVsZW1l
bnQ6ZnJhbWU7bXNvLWVsZW1lbnQtZnJhbWUtaHNwYWNlOjYuMHB0O21zby1lbGVtZW50LXdyYXA6
YXJvdW5kO21zby1lbGVtZW50LWFuY2hvci12ZXJ0aWNhbDpwYXJhZ3JhcGg7bXNvLWVsZW1lbnQt
YW5jaG9yLWhvcml6b250YWw6Y29sdW1uO21zby1oZWlnaHQtcnVsZTpleGFjdGx5Ij4NCjxzcGFu
IHN0eWxlPSJmb250LXNpemU6MTEuNXB0O2ZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LHNh
bnMtc2VyaWY7Y29sb3I6IzY2NjY2NiI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC90
ZD4NCjwvdHI+DQo8L3Rib2R5Pg0KPC90YWJsZT4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxl
PSJsaW5lLWhlaWdodDoxNS4wcHQ7bXNvLWVsZW1lbnQ6ZnJhbWU7bXNvLWVsZW1lbnQtZnJhbWUt
aHNwYWNlOjYuMHB0O21zby1lbGVtZW50LXdyYXA6YXJvdW5kO21zby1lbGVtZW50LWFuY2hvci12
ZXJ0aWNhbDpwYXJhZ3JhcGg7bXNvLWVsZW1lbnQtYW5jaG9yLWhvcml6b250YWw6Y29sdW1uO21z
by1oZWlnaHQtcnVsZTpleGFjdGx5Ij4NCjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuNXB0O2Zv
bnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzY2NjY2NiI+Jm5i
c3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHRhYmxlIGNsYXNzPSJNc29Ob3JtYWxUYWJsZSIg
Ym9yZGVyPSIwIiBjZWxscGFkZGluZz0iMCIgd2lkdGg9IjEwMCUiIHN0eWxlPSJ3aWR0aDoxMDAu
MCUiPg0KPHRib2R5Pg0KPHRyPg0KPHRkIHN0eWxlPSJwYWRkaW5nOjBjbSAwY20gMGNtIDBjbSI+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibGluZS1oZWlnaHQ6MTUuMHB0O21zby1lbGVt
ZW50OmZyYW1lO21zby1lbGVtZW50LWZyYW1lLWhzcGFjZTo2LjBwdDttc28tZWxlbWVudC13cmFw
OmFyb3VuZDttc28tZWxlbWVudC1hbmNob3ItdmVydGljYWw6cGFyYWdyYXBoO21zby1lbGVtZW50
LWFuY2hvci1ob3Jpem9udGFsOmNvbHVtbjttc28taGVpZ2h0LXJ1bGU6ZXhhY3RseSI+DQo8Yj48
c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssc2Fucy1zZXJpZjtjb2xv
cjojNEQ0RDREIj5DQk9SIFdHIENvbmZlcmVuY2UgQ2FsbDwvc3Bhbj48L2I+PG86cD48L286cD48
L3A+DQo8L3RkPg0KPC90cj4NCjx0cj4NCjx0ZCBzdHlsZT0icGFkZGluZzowY20gMGNtIDBjbSAw
Y20iPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9ImxpbmUtaGVpZ2h0OjE1LjBwdDttc28t
ZWxlbWVudDpmcmFtZTttc28tZWxlbWVudC1mcmFtZS1oc3BhY2U6Ni4wcHQ7bXNvLWVsZW1lbnQt
d3JhcDphcm91bmQ7bXNvLWVsZW1lbnQtYW5jaG9yLXZlcnRpY2FsOnBhcmFncmFwaDttc28tZWxl
bWVudC1hbmNob3ItaG9yaXpvbnRhbDpjb2x1bW47bXNvLWhlaWdodC1ydWxlOmV4YWN0bHkiPg0K
PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS41cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVv
dDssc2Fucy1zZXJpZjtjb2xvcjojNjY2NjY2Ij5PY2N1cnMgZXZlcnkgMiB3ZWVrKHMpIG9uIFdl
ZG5lc2RheSBlZmZlY3RpdmUgV2VkbmVzZGF5LCBNYXkgMjIsIDIwMTkgdW50aWwgV2VkbmVzZGF5
LCBOb3ZlbWJlciA2LCAyMDE5IGZyb20gNTowMCBQTSB0byA2OjAwIFBNLCAoVVRDJiM0MzswMTow
MCkgQW1zdGVyZGFtLCBCZXJsaW4sIEJlcm4sIFJvbWUsIFN0b2NraG9sbSwNCiBWaWVubmE8c3Bh
biBjbGFzcz0iYXBwbGUtY29udmVydGVkLXNwYWNlIj4mbmJzcDs8L3NwYW4+PC9zcGFuPjxvOnA+
PC9vOnA+PC9wPg0KPC90ZD4NCjwvdHI+DQo8dHI+DQo8dGQgc3R5bGU9InBhZGRpbmc6MGNtIDBj
bSAwY20gMGNtIj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJsaW5lLWhlaWdodDoxNS4w
cHQ7bXNvLWVsZW1lbnQ6ZnJhbWU7bXNvLWVsZW1lbnQtZnJhbWUtaHNwYWNlOjYuMHB0O21zby1l
bGVtZW50LXdyYXA6YXJvdW5kO21zby1lbGVtZW50LWFuY2hvci12ZXJ0aWNhbDpwYXJhZ3JhcGg7
bXNvLWVsZW1lbnQtYW5jaG9yLWhvcml6b250YWw6Y29sdW1uO21zby1oZWlnaHQtcnVsZTpleGFj
dGx5Ij4NCjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuNXB0O2ZvbnQtZmFtaWx5OiZxdW90O0Fy
aWFsJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzY2NjY2NiI+NTowMCBwbSZuYnNwOyZuYnNwO3wm
bmJzcDsmbmJzcDtFdXJvcGUgU3VtbWVyIFRpbWUgKEFtc3RlcmRhbSwgR01UJiM0MzswMjowMCkm
bmJzcDsmbmJzcDt8Jm5ic3A7Jm5ic3A7MSBocjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvdGQ+
DQo8L3RyPg0KPC90Ym9keT4NCjwvdGFibGU+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0i
bGluZS1oZWlnaHQ6MTUuMHB0O21zby1lbGVtZW50OmZyYW1lO21zby1lbGVtZW50LWZyYW1lLWhz
cGFjZTo2LjBwdDttc28tZWxlbWVudC13cmFwOmFyb3VuZDttc28tZWxlbWVudC1hbmNob3ItdmVy
dGljYWw6cGFyYWdyYXBoO21zby1lbGVtZW50LWFuY2hvci1ob3Jpem9udGFsOmNvbHVtbjttc28t
aGVpZ2h0LXJ1bGU6ZXhhY3RseSI+DQo8c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjVwdDtmb250
LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiM2NjY2NjYiPiZuYnNw
Ozwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjx0YWJsZSBjbGFzcz0iTXNvTm9ybWFsVGFibGUiIGJv
cmRlcj0iMCIgY2VsbHBhZGRpbmc9IjAiIHdpZHRoPSIwIiBzdHlsZT0id2lkdGg6MGNtIj4NCjx0
Ym9keT4NCjx0cj4NCjx0ZCBzdHlsZT0icGFkZGluZzowY20gMGNtIDBjbSAwY20iPg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCIgc3R5bGU9ImxpbmUtaGVpZ2h0OjE1LjBwdDttc28tZWxlbWVudDpmcmFt
ZTttc28tZWxlbWVudC1mcmFtZS1oc3BhY2U6Ni4wcHQ7bXNvLWVsZW1lbnQtd3JhcDphcm91bmQ7
bXNvLWVsZW1lbnQtYW5jaG9yLXZlcnRpY2FsOnBhcmFncmFwaDttc28tZWxlbWVudC1hbmNob3It
aG9yaXpvbnRhbDpjb2x1bW47bXNvLWhlaWdodC1ydWxlOmV4YWN0bHkiPg0KPHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZToxMS41cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssc2Fucy1zZXJp
Zjtjb2xvcjojNjY2NjY2Ij5NZWV0aW5nIG51bWJlciAoYWNjZXNzIGNvZGUpOiA2NDEgNzYwIDE1
Nzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvdGQ+DQo8L3RyPg0KPC90Ym9keT4NCjwvdGFibGU+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibGluZS1oZWlnaHQ6MTUuMHB0O21zby1lbGVt
ZW50OmZyYW1lO21zby1lbGVtZW50LWZyYW1lLWhzcGFjZTo2LjBwdDttc28tZWxlbWVudC13cmFw
OmFyb3VuZDttc28tZWxlbWVudC1hbmNob3ItdmVydGljYWw6cGFyYWdyYXBoO21zby1lbGVtZW50
LWFuY2hvci1ob3Jpem9udGFsOmNvbHVtbjttc28taGVpZ2h0LXJ1bGU6ZXhhY3RseSI+DQo8c3Bh
biBzdHlsZT0iZm9udC1zaXplOjExLjVwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90Oyxz
YW5zLXNlcmlmO2NvbG9yOiM2NjY2NjYiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjx0
YWJsZSBjbGFzcz0iTXNvTm9ybWFsVGFibGUiIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjAiIHdp
ZHRoPSIwIiBzdHlsZT0id2lkdGg6MGNtIj4NCjx0Ym9keT4NCjx0cj4NCjx0ZCBzdHlsZT0icGFk
ZGluZzowY20gMGNtIDBjbSAwY20iPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9ImxpbmUt
aGVpZ2h0OjE1LjBwdDttc28tZWxlbWVudDpmcmFtZTttc28tZWxlbWVudC1mcmFtZS1oc3BhY2U6
Ni4wcHQ7bXNvLWVsZW1lbnQtd3JhcDphcm91bmQ7bXNvLWVsZW1lbnQtYW5jaG9yLXZlcnRpY2Fs
OnBhcmFncmFwaDttc28tZWxlbWVudC1hbmNob3ItaG9yaXpvbnRhbDpjb2x1bW47bXNvLWhlaWdo
dC1ydWxlOmV4YWN0bHkiPg0KPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS41cHQ7Zm9udC1mYW1p
bHk6JnF1b3Q7QXJpYWwmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojNjY2NjY2Ij5NZWV0aW5nIHBh
c3N3b3JkOiBVUEF0OXJCbjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvdGQ+DQo8L3RyPg0KPC90
Ym9keT4NCjwvdGFibGU+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWJvdHRv
bToxMi4wcHQ7bGluZS1oZWlnaHQ6MTUuMHB0O21zby1lbGVtZW50OmZyYW1lO21zby1lbGVtZW50
LWZyYW1lLWhzcGFjZTo2LjBwdDttc28tZWxlbWVudC13cmFwOmFyb3VuZDttc28tZWxlbWVudC1h
bmNob3ItdmVydGljYWw6cGFyYWdyYXBoO21zby1lbGVtZW50LWFuY2hvci1ob3Jpem9udGFsOmNv
bHVtbjttc28taGVpZ2h0LXJ1bGU6ZXhhY3RseSI+DQo8c3BhbiBzdHlsZT0iZm9udC1zaXplOjEx
LjVwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiM2NjY2
NjYiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjx0YWJsZSBjbGFzcz0iTXNvTm9ybWFs
VGFibGUiIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjAiIHdpZHRoPSI1MjUiIHN0eWxlPSJ3aWR0
aDozOTMuNzVwdCI+DQo8dGJvZHk+DQo8dHIgc3R5bGU9ImhlaWdodDoxNS4wcHQiPg0KPHRkIHN0
eWxlPSJwYWRkaW5nOjBjbSAwY20gMGNtIDBjbTtoZWlnaHQ6MTUuMHB0Ij4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiIHN0eWxlPSJsaW5lLWhlaWdodDoxNS4wcHQ7bXNvLWVsZW1lbnQ6ZnJhbWU7bXNv
LWVsZW1lbnQtZnJhbWUtaHNwYWNlOjYuMHB0O21zby1lbGVtZW50LXdyYXA6YXJvdW5kO21zby1l
bGVtZW50LWFuY2hvci12ZXJ0aWNhbDpwYXJhZ3JhcGg7bXNvLWVsZW1lbnQtYW5jaG9yLWhvcml6
b250YWw6Y29sdW1uO21zby1oZWlnaHQtcnVsZTpleGFjdGx5Ij4NCjxzcGFuIHN0eWxlPSJmb250
LXNpemU6MTEuNXB0O2ZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LHNhbnMtc2VyaWY7Y29s
b3I6IzY2NjY2NiI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC90ZD4NCjwvdHI+DQo8
L3Rib2R5Pg0KPC90YWJsZT4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJsaW5lLWhlaWdo
dDoxNS4wcHQ7bXNvLWVsZW1lbnQ6ZnJhbWU7bXNvLWVsZW1lbnQtZnJhbWUtaHNwYWNlOjYuMHB0
O21zby1lbGVtZW50LXdyYXA6YXJvdW5kO21zby1lbGVtZW50LWFuY2hvci12ZXJ0aWNhbDpwYXJh
Z3JhcGg7bXNvLWVsZW1lbnQtYW5jaG9yLWhvcml6b250YWw6Y29sdW1uO21zby1oZWlnaHQtcnVs
ZTpleGFjdGx5Ij4NCjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuNXB0O2ZvbnQtZmFtaWx5OiZx
dW90O0FyaWFsJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzY2NjY2NiI+Jm5ic3A7PC9zcGFuPjxv
OnA+PC9vOnA+PC9wPg0KPHRhYmxlIGNsYXNzPSJNc29Ob3JtYWxUYWJsZSIgYm9yZGVyPSIwIiBj
ZWxscGFkZGluZz0iMCIgd2lkdGg9IjAiIHN0eWxlPSJ3aWR0aDowY207bWluLXdpZHRoOiAxODZw
eCAhaW1wb3J0YW50O2JhY2tncm91bmQtcG9zaXRpb246aW5pdGlhbCBpbml0aWFsO2JhY2tncm91
bmQtcmVwZWF0OmluaXRpYWwgaW5pdGlhbCI+DQo8dGJvZHk+DQo8dHI+DQo8dGQgc3R5bGU9InBh
ZGRpbmc6MGNtIDBjbSAwY20gMGNtO21pbi13aWR0aDogMTg2cHggIWltcG9ydGFudCI+DQo8dGFi
bGUgY2xhc3M9Ik1zb05vcm1hbFRhYmxlIiBib3JkZXI9IjEiIGNlbGxzcGFjaW5nPSIwIiBjZWxs
cGFkZGluZz0iMCIgd2lkdGg9IjAiIHN0eWxlPSJ3aWR0aDowY207YmFja2dyb3VuZDojMDQ4Q0JG
O2JvcmRlcjpzb2xpZCAjMDQ4Q0JGIDEuNXB0O21pbi13aWR0aDogMTg2cHggIWltcG9ydGFudCI+
DQo8dGJvZHk+DQo8dHI+DQo8dGQgc3R5bGU9ImJvcmRlcjpub25lO3BhZGRpbmc6MTAuNXB0IDE1
LjBwdCAxMC41cHQgMTUuMHB0O21pbi13aWR0aDogMTg2cHggIWltcG9ydGFudDtiYWNrZ3JvdW5k
LXBvc2l0aW9uOmluaXRpYWwgaW5pdGlhbDtiYWNrZ3JvdW5kLXJlcGVhdDppbml0aWFsIGluaXRp
YWwiPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgYWxpZ249ImNlbnRlciIgc3R5bGU9InRleHQtYWxp
Z246Y2VudGVyO2xpbmUtaGVpZ2h0OjE1LjBwdDttc28tZWxlbWVudDpmcmFtZTttc28tZWxlbWVu
dC1mcmFtZS1oc3BhY2U6Ni4wcHQ7bXNvLWVsZW1lbnQtd3JhcDphcm91bmQ7bXNvLWVsZW1lbnQt
YW5jaG9yLXZlcnRpY2FsOnBhcmFncmFwaDttc28tZWxlbWVudC1hbmNob3ItaG9yaXpvbnRhbDpj
b2x1bW47bXNvLWhlaWdodC1ydWxlOmV4YWN0bHkiPg0KPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTox
MS41cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojNjY2
NjY2Ij48YSBocmVmPSJodHRwczovL2lldGYud2ViZXguY29tL2lldGYvai5waHA/TVRJRD1tMWQw
NjM2MDY5YTI4YmQ3YzhjYzA5MGU3NDE1NjVjOGMiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTUu
MHB0O2NvbG9yOndoaXRlIj5BZGQgdG8gQ2FsZW5kYXI8L3NwYW4+PC9hPjwvc3Bhbj48bzpwPjwv
bzpwPjwvcD4NCjwvdGQ+DQo8L3RyPg0KPC90Ym9keT4NCjwvdGFibGU+DQo8L3RkPg0KPHRkIHN0
eWxlPSJwYWRkaW5nOjBjbSAwY20gMGNtIDBjbTttaW4td2lkdGg6IDE4NnB4ICFpbXBvcnRhbnQi
Pg0KPHRhYmxlIGNsYXNzPSJNc29Ob3JtYWxUYWJsZSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0i
MCIgY2VsbHBhZGRpbmc9IjAiIHdpZHRoPSIwIiBzdHlsZT0id2lkdGg6MGNtO21pbi13aWR0aDog
MTg2cHggIWltcG9ydGFudCI+DQo8dGJvZHk+DQo8dHI+DQo8dGQgc3R5bGU9InBhZGRpbmc6MGNt
IDBjbSAwY20gMTIuMHB0O21pbi13aWR0aDogMTg2cHggIWltcG9ydGFudCI+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIiBzdHlsZT0ibGluZS1oZWlnaHQ6MTUuMHB0O21zby1lbGVtZW50OmZyYW1lO21z
by1lbGVtZW50LWZyYW1lLWhzcGFjZTo2LjBwdDttc28tZWxlbWVudC13cmFwOmFyb3VuZDttc28t
ZWxlbWVudC1hbmNob3ItdmVydGljYWw6cGFyYWdyYXBoO21zby1lbGVtZW50LWFuY2hvci1ob3Jp
em9udGFsOmNvbHVtbjttc28taGVpZ2h0LXJ1bGU6ZXhhY3RseSI+DQo8c3BhbiBzdHlsZT0iZm9u
dC1zaXplOjExLjVwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OyxzYW5zLXNlcmlmO2Nv
bG9yOiM2NjY2NjYiPldoZW4gaXQncyB0aW1lLDxzcGFuIGNsYXNzPSJhcHBsZS1jb252ZXJ0ZWQt
c3BhY2UiPiZuYnNwOzwvc3Bhbj48YSBocmVmPSJodHRwczovL2lldGYud2ViZXguY29tL2lldGYv
ai5waHA/TVRJRD1tMTIzN2E5ODEyNDExMWRlM2E0YzRlNjFkZmFjYTA1ZDUiPjxzcGFuIHN0eWxl
PSJjb2xvcjojMDBBRkY5Ij5qb2luIHRoZSBtZWV0aW5nPC9zcGFuPjwvYT4uPC9zcGFuPjxvOnA+
PC9vOnA+PC9wPg0KPC90ZD4NCjwvdHI+DQo8L3Rib2R5Pg0KPC90YWJsZT4NCjwvdGQ+DQo8L3Ry
Pg0KPC90Ym9keT4NCjwvdGFibGU+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibGluZS1o
ZWlnaHQ6MTUuMHB0O21zby1lbGVtZW50OmZyYW1lO21zby1lbGVtZW50LWZyYW1lLWhzcGFjZTo2
LjBwdDttc28tZWxlbWVudC13cmFwOmFyb3VuZDttc28tZWxlbWVudC1hbmNob3ItdmVydGljYWw6
cGFyYWdyYXBoO21zby1lbGVtZW50LWFuY2hvci1ob3Jpem9udGFsOmNvbHVtbjttc28taGVpZ2h0
LXJ1bGU6ZXhhY3RseSI+DQombmJzcDs8bzpwPjwvbzpwPjwvcD4NCjx0YWJsZSBjbGFzcz0iTXNv
Tm9ybWFsVGFibGUiIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjAiIHdpZHRoPSI1MjUiIHN0eWxl
PSJ3aWR0aDozOTMuNzVwdCI+DQo8dGJvZHk+DQo8dHIgc3R5bGU9ImhlaWdodDoxNS4wcHQiPg0K
PHRkIHN0eWxlPSJwYWRkaW5nOjBjbSAwY20gMGNtIDBjbTtoZWlnaHQ6MTUuMHB0Ij4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJsaW5lLWhlaWdodDoxNS4wcHQ7bXNvLWVsZW1lbnQ6ZnJh
bWU7bXNvLWVsZW1lbnQtZnJhbWUtaHNwYWNlOjYuMHB0O21zby1lbGVtZW50LXdyYXA6YXJvdW5k
O21zby1lbGVtZW50LWFuY2hvci12ZXJ0aWNhbDpwYXJhZ3JhcGg7bXNvLWVsZW1lbnQtYW5jaG9y
LWhvcml6b250YWw6Y29sdW1uO21zby1oZWlnaHQtcnVsZTpleGFjdGx5Ij4NCjxzcGFuIHN0eWxl
PSJmb250LXNpemU6MTEuNXB0O2ZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LHNhbnMtc2Vy
aWY7Y29sb3I6IzY2NjY2NiI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC90ZD4NCjwv
dHI+DQo8L3Rib2R5Pg0KPC90YWJsZT4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJsaW5l
LWhlaWdodDoxNS4wcHQ7bXNvLWVsZW1lbnQ6ZnJhbWU7bXNvLWVsZW1lbnQtZnJhbWUtaHNwYWNl
OjYuMHB0O21zby1lbGVtZW50LXdyYXA6YXJvdW5kO21zby1lbGVtZW50LWFuY2hvci12ZXJ0aWNh
bDpwYXJhZ3JhcGg7bXNvLWVsZW1lbnQtYW5jaG9yLWhvcml6b250YWw6Y29sdW1uO21zby1oZWln
aHQtcnVsZTpleGFjdGx5Ij4NCiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPHRhYmxlIGNsYXNzPSJN
c29Ob3JtYWxUYWJsZSIgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMCIgd2lkdGg9IjUyNSIgc3R5
bGU9IndpZHRoOjM5My43NXB0Ij4NCjx0Ym9keT4NCjx0cj4NCjx0ZCBzdHlsZT0icGFkZGluZzow
Y20gMGNtIDBjbSAwY20iPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9ImxpbmUtaGVpZ2h0
OjE1LjBwdDttc28tZWxlbWVudDpmcmFtZTttc28tZWxlbWVudC1mcmFtZS1oc3BhY2U6Ni4wcHQ7
bXNvLWVsZW1lbnQtd3JhcDphcm91bmQ7bXNvLWVsZW1lbnQtYW5jaG9yLXZlcnRpY2FsOnBhcmFn
cmFwaDttc28tZWxlbWVudC1hbmNob3ItaG9yaXpvbnRhbDpjb2x1bW47bXNvLWhlaWdodC1ydWxl
OmV4YWN0bHkiPg0KPGI+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7
LHNhbnMtc2VyaWY7Y29sb3I6IzY2NjY2NiI+Sm9pbiBieSBwaG9uZTwvc3Bhbj48L2I+PG86cD48
L286cD48L3A+DQo8L3RkPg0KPC90cj4NCjx0cj4NCjx0ZCBzdHlsZT0icGFkZGluZzowY20gMGNt
IDBjbSAwY20iPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9ImxpbmUtaGVpZ2h0OjE1LjBw
dDttc28tZWxlbWVudDpmcmFtZTttc28tZWxlbWVudC1mcmFtZS1oc3BhY2U6Ni4wcHQ7bXNvLWVs
ZW1lbnQtd3JhcDphcm91bmQ7bXNvLWVsZW1lbnQtYW5jaG9yLXZlcnRpY2FsOnBhcmFncmFwaDtt
c28tZWxlbWVudC1hbmNob3ItaG9yaXpvbnRhbDpjb2x1bW47bXNvLWhlaWdodC1ydWxlOmV4YWN0
bHkiPg0KPGI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS41cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7
QXJpYWwmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojNjY2NjY2Ij48YSBocmVmPSJ0ZWw6JTJCMS02
NTAtNDc5LTMyMDgsLCowMSo2NDE3NjAxNTclMjMlMjMqMDEqIj48c3BhbiBzdHlsZT0iY29sb3I6
IzAwQUZGOSI+MS02NTAtNDc5LTMyMDg8L3NwYW4+PC9hPjwvc3Bhbj48L2I+PHNwYW4gY2xhc3M9
ImFwcGxlLWNvbnZlcnRlZC1zcGFjZSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS41cHQ7Zm9u
dC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojNjY2NjY2Ij4mbmJz
cDs8L3NwYW4+PC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuNXB0O2ZvbnQtZmFtaWx5
OiZxdW90O0FyaWFsJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzY2NjY2NiI+Q2FsbC1pbg0KIHRv
bGwgbnVtYmVyIChVUy9DYW5hZGEpPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC90ZD4NCjwvdHI+
DQo8dHI+DQo8dGQgc3R5bGU9InBhZGRpbmc6MGNtIDBjbSAwY20gMGNtIj48L3RkPg0KPC90cj4N
CjwvdGJvZHk+DQo8L3RhYmxlPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9ImxpbmUtaGVp
Z2h0OjE1LjBwdDttc28tZWxlbWVudDpmcmFtZTttc28tZWxlbWVudC1mcmFtZS1oc3BhY2U6Ni4w
cHQ7bXNvLWVsZW1lbnQtd3JhcDphcm91bmQ7bXNvLWVsZW1lbnQtYW5jaG9yLXZlcnRpY2FsOnBh
cmFncmFwaDttc28tZWxlbWVudC1hbmNob3ItaG9yaXpvbnRhbDpjb2x1bW47bXNvLWhlaWdodC1y
dWxlOmV4YWN0bHkiPg0KJm5ic3A7PG86cD48L286cD48L3A+DQo8dGFibGUgY2xhc3M9Ik1zb05v
cm1hbFRhYmxlIiBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIwIiB3aWR0aD0iNTI1IiBzdHlsZT0i
d2lkdGg6MzkzLjc1cHQiPg0KPHRib2R5Pg0KPHRyIHN0eWxlPSJoZWlnaHQ6MTUuMHB0Ij4NCjx0
ZCBzdHlsZT0icGFkZGluZzowY20gMGNtIDBjbSAwY207aGVpZ2h0OjE1LjBwdCI+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIiBzdHlsZT0ibGluZS1oZWlnaHQ6MTUuMHB0O21zby1lbGVtZW50OmZyYW1l
O21zby1lbGVtZW50LWZyYW1lLWhzcGFjZTo2LjBwdDttc28tZWxlbWVudC13cmFwOmFyb3VuZDtt
c28tZWxlbWVudC1hbmNob3ItdmVydGljYWw6cGFyYWdyYXBoO21zby1lbGVtZW50LWFuY2hvci1o
b3Jpem9udGFsOmNvbHVtbjttc28taGVpZ2h0LXJ1bGU6ZXhhY3RseSI+DQo8c3BhbiBzdHlsZT0i
Zm9udC1zaXplOjExLjVwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OyxzYW5zLXNlcmlm
O2NvbG9yOiM2NjY2NjYiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvdGQ+DQo8L3Ry
Pg0KPC90Ym9keT4NCjwvdGFibGU+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibGluZS1o
ZWlnaHQ6MTUuMHB0O21zby1lbGVtZW50OmZyYW1lO21zby1lbGVtZW50LWZyYW1lLWhzcGFjZTo2
LjBwdDttc28tZWxlbWVudC13cmFwOmFyb3VuZDttc28tZWxlbWVudC1hbmNob3ItdmVydGljYWw6
cGFyYWdyYXBoO21zby1lbGVtZW50LWFuY2hvci1ob3Jpem9udGFsOmNvbHVtbjttc28taGVpZ2h0
LXJ1bGU6ZXhhY3RseSI+DQombmJzcDs8bzpwPjwvbzpwPjwvcD4NCjx0YWJsZSBjbGFzcz0iTXNv
Tm9ybWFsVGFibGUiIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjAiIHdpZHRoPSI1MjUiIHN0eWxl
PSJ3aWR0aDozOTMuNzVwdCI+DQo8dGJvZHk+DQo8dHI+DQo8dGQgc3R5bGU9InBhZGRpbmc6MGNt
IDBjbSAwY20gMGNtIj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJsaW5lLWhlaWdodDox
NS4wcHQ7bXNvLWVsZW1lbnQ6ZnJhbWU7bXNvLWVsZW1lbnQtZnJhbWUtaHNwYWNlOjYuMHB0O21z
by1lbGVtZW50LXdyYXA6YXJvdW5kO21zby1lbGVtZW50LWFuY2hvci12ZXJ0aWNhbDpwYXJhZ3Jh
cGg7bXNvLWVsZW1lbnQtYW5jaG9yLWhvcml6b250YWw6Y29sdW1uO21zby1oZWlnaHQtcnVsZTpl
eGFjdGx5Ij4NCjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTAuMHB0O2ZvbnQtZmFtaWx5OiZxdW90
O0FyaWFsJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzY2NjY2NiI+PGEgaHJlZj0iaHR0cHM6Ly9j
b2xsYWJvcmF0aW9uaGVscC5jaXNjby5jb20vYXJ0aWNsZS9XQlgwMDAwMjkwNTUiPjxzcGFuIHN0
eWxlPSJjb2xvcjojMDBBRkY5Ij5DYW4ndCBqb2luIHRoZSBtZWV0aW5nPzwvc3Bhbj48L2E+PC9z
cGFuPjxvOnA+PC9vOnA+PC9wPg0KPC90ZD4NCjwvdHI+DQo8L3Rib2R5Pg0KPC90YWJsZT4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJsaW5lLWhlaWdodDoxNS4wcHQ7bXNvLWVsZW1lbnQ6
ZnJhbWU7bXNvLWVsZW1lbnQtZnJhbWUtaHNwYWNlOjYuMHB0O21zby1lbGVtZW50LXdyYXA6YXJv
dW5kO21zby1lbGVtZW50LWFuY2hvci12ZXJ0aWNhbDpwYXJhZ3JhcGg7bXNvLWVsZW1lbnQtYW5j
aG9yLWhvcml6b250YWw6Y29sdW1uO21zby1oZWlnaHQtcnVsZTpleGFjdGx5Ij4NCiZuYnNwOzxv
OnA+PC9vOnA+PC9wPg0KPHRhYmxlIGNsYXNzPSJNc29Ob3JtYWxUYWJsZSIgYm9yZGVyPSIwIiBj
ZWxscGFkZGluZz0iMCIgd2lkdGg9IjUyNSIgc3R5bGU9IndpZHRoOjM5My43NXB0Ij4NCjx0Ym9k
eT4NCjx0ciBzdHlsZT0iaGVpZ2h0OjcuNXB0Ij4NCjx0ZCBzdHlsZT0icGFkZGluZzowY20gMGNt
IDBjbSAwY207aGVpZ2h0OjcuNXB0Ij4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28t
ZWxlbWVudDpmcmFtZTttc28tZWxlbWVudC1mcmFtZS1oc3BhY2U6Ni4wcHQ7bXNvLWVsZW1lbnQt
d3JhcDphcm91bmQ7bXNvLWVsZW1lbnQtYW5jaG9yLXZlcnRpY2FsOnBhcmFncmFwaDttc28tZWxl
bWVudC1hbmNob3ItaG9yaXpvbnRhbDpjb2x1bW47bXNvLWhlaWdodC1ydWxlOmV4YWN0bHkiPg0K
PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS41cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVv
dDssc2Fucy1zZXJpZjtjb2xvcjojNjY2NjY2Ij4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+
DQo8L3RkPg0KPC90cj4NCjwvdGJvZHk+DQo8L3RhYmxlPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIg
c3R5bGU9ImxpbmUtaGVpZ2h0OjE1LjBwdDttc28tZWxlbWVudDpmcmFtZTttc28tZWxlbWVudC1m
cmFtZS1oc3BhY2U6Ni4wcHQ7bXNvLWVsZW1lbnQtd3JhcDphcm91bmQ7bXNvLWVsZW1lbnQtYW5j
aG9yLXZlcnRpY2FsOnBhcmFncmFwaDttc28tZWxlbWVudC1hbmNob3ItaG9yaXpvbnRhbDpjb2x1
bW47bXNvLWhlaWdodC1ydWxlOmV4YWN0bHkiPg0KJm5ic3A7PG86cD48L286cD48L3A+DQo8dGFi
bGUgY2xhc3M9Ik1zb05vcm1hbFRhYmxlIiBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIwIiB3aWR0
aD0iNTI1IiBzdHlsZT0id2lkdGg6MzkzLjc1cHQiPg0KPHRib2R5Pg0KPHRyPg0KPHRkIHN0eWxl
PSJwYWRkaW5nOjBjbSAwY20gMGNtIDBjbSI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0i
bGluZS1oZWlnaHQ6MTUuMHB0O21zby1lbGVtZW50OmZyYW1lO21zby1lbGVtZW50LWZyYW1lLWhz
cGFjZTo2LjBwdDttc28tZWxlbWVudC13cmFwOmFyb3VuZDttc28tZWxlbWVudC1hbmNob3ItdmVy
dGljYWw6cGFyYWdyYXBoO21zby1lbGVtZW50LWFuY2hvci1ob3Jpem9udGFsOmNvbHVtbjttc28t
aGVpZ2h0LXJ1bGU6ZXhhY3RseSI+DQo8c3BhbiBzdHlsZT0iZm9udC1zaXplOjkuMHB0O2ZvbnQt
ZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6I0EwQTBBMCI+SU1QT1JU
QU5UIE5PVElDRTogUGxlYXNlIG5vdGUgdGhhdCB0aGlzIFdlYmV4IHNlcnZpY2UgYWxsb3dzIGF1
ZGlvIGFuZCBvdGhlciBpbmZvcm1hdGlvbiBzZW50IGR1cmluZyB0aGUgc2Vzc2lvbiB0byBiZSBy
ZWNvcmRlZCwgd2hpY2ggbWF5IGJlIGRpc2NvdmVyYWJsZSBpbiBhIGxlZ2FsIG1hdHRlci4gQnkg
am9pbmluZw0KIHRoaXMgc2Vzc2lvbiwgeW91IGF1dG9tYXRpY2FsbHkgY29uc2VudCB0byBzdWNo
IHJlY29yZGluZ3MuIElmIHlvdSBkbyBub3QgY29uc2VudCB0byBiZWluZyByZWNvcmRlZCwgZGlz
Y3VzcyB5b3VyIGNvbmNlcm5zIHdpdGggdGhlIGhvc3Qgb3IgZG8gbm90IGpvaW4gdGhlIHNlc3Np
b24uPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC90ZD4NCjwvdHI+DQo8L3Rib2R5Pg0KPC90YWJs
ZT4NCjwvdGQ+DQo8L3RyPg0KPC90Ym9keT4NCjwvdGFibGU+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+
PC9wPg0KPC9kaXY+DQo8L2JvZHk+DQo8L2h0bWw+DQo=

--_000_4ED88D25846D430797E4BEEDC4451ABFericssoncom_--


From nobody Wed Nov  6 04:24:15 2019
Return-Path: <cabo@tzi.org>
X-Original-To: cbor@ietfa.amsl.com
Delivered-To: cbor@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id A77CC120860 for <cbor@ietfa.amsl.com>; Wed,  6 Nov 2019 04:24:12 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.2
X-Spam-Level: 
X-Spam-Status: No, score=-4.2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=unavailable autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id VG2EkpjHxWMb for <cbor@ietfa.amsl.com>; Wed,  6 Nov 2019 04:24:08 -0800 (PST)
Received: from gabriel-vm-2.zfn.uni-bremen.de (gabriel-vm-2.zfn.uni-bremen.de [134.102.50.17]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id B7DD612006D for <cbor@ietf.org>; Wed,  6 Nov 2019 04:24:08 -0800 (PST)
Received: from [192.168.217.102] (p548DC893.dip0.t-ipconnect.de [84.141.200.147]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by gabriel-vm-2.zfn.uni-bremen.de (Postfix) with ESMTPSA id 477Qgp5Y6lzyXN; Wed,  6 Nov 2019 13:24:06 +0100 (CET)
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 11.5 \(3445.9.1\))
From: Carsten Bormann <cabo@tzi.org>
In-Reply-To: <4ED88D25-846D-4307-97E4-BEEDC4451ABF@ericsson.com>
Date: Wed, 6 Nov 2019 13:24:12 +0100
Cc: "cbor@ietf.org" <cbor@ietf.org>, Jim Schaad <ietf@augustcellars.com>
X-Mao-Original-Outgoing-Id: 594735848.6385289-92dae32a8e14b3fa17f1c2e032532617
Content-Transfer-Encoding: quoted-printable
Message-Id: <48A20127-CC94-406B-8CC4-788035534E47@tzi.org>
References: <4ED88D25-846D-4307-97E4-BEEDC4451ABF@ericsson.com>
To: Francesca Palombini <francesca.palombini=40ericsson.com@dmarc.ietf.org>
X-Mailer: Apple Mail (2.3445.9.1)
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/GCJbEnucLSOYAcDO4H82j04Jygk>
Subject: Re: [Cbor] CBOR Interim: 2019-11-06
X-BeenThere: cbor@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Concise Binary Object Representation \(CBOR\)" <cbor.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cbor>, <mailto:cbor-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cbor/>
List-Post: <mailto:cbor@ietf.org>
List-Help: <mailto:cbor-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cbor>, <mailto:cbor-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 06 Nov 2019 12:24:13 -0000

We probably should also discuss the one open issue that didn=E2=80=99t =
lead to text changes:

https://github.com/cbor-wg/CBORbis/issues/63

I personally think we are as good on this as we can be, but I would love =
to hear other views.

Gr=C3=BC=C3=9Fe, Carsten


> On Nov 6, 2019, at 10:35, Francesca Palombini =
<francesca.palombini=3D40ericsson.com@dmarc.ietf.org> wrote:
>=20
> Hi all,
> =20
> Today=E2=80=99s interim will probably be a short one, but I want to =
have a chat and see if anybody was able to read the update on CBOR =
Carsten posted (thanks Carsten!). If so, we can discuss it, otherwise I =
only have a couple of quick items on the agenda (agenda slots in =
Singapore, and CDDL continued). I don=E2=80=99t think we=E2=80=99ll take =
the full hour.
> =20
> =20
> Webex: =
https://ietf.webex.com/ietf/j.php?MTID=3Dm1237a98124111de3a4c4e61dfaca05d5=

> Agenda: =
https://datatracker.ietf.org/meeting/interim-2019-cbor-19/materials/agenda=
-interim-2019-cbor-19-sessa
> Time: =
https://www.worldtimebuddy.com/?qm=3D1&lid=3D12,100,5,8&h=3D100&date=3D201=
9-11-06&sln=3D16-17
> =20
> =20
> Talk to you later,
> Francesca
> =20
> =20
> =20
> Hello,
> CBOR Working Group invites you to join this Webex meeting.
> =20
> =20
> =20
> CBOR WG Conference Call
> Occurs every 2 week(s) on Wednesday effective Wednesday, May 22, 2019 =
until Wednesday, November 6, 2019 from 5:00 PM to 6:00 PM, (UTC+01:00) =
Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna=20
> 5:00 pm  |  Europe Summer Time (Amsterdam, GMT+02:00)  |  1 hr
> =20
> Meeting number (access code): 641 760 157
> =20
> Meeting password: UPAt9rBn
> =20
>=20
> =20
> =20
> Add to Calendar
> When it's time, join the meeting.
> =20
> =20
> =20
> Join by phone
> 1-650-479-3208 Call-in toll number (US/Canada)
> =20
> =20
> =20
> Can't join the meeting?
> =20
> =20
> =20
> IMPORTANT NOTICE: Please note that this Webex service allows audio and =
other information sent during the session to be recorded, which may be =
discoverable in a legal matter. By joining this session, you =
automatically consent to such recordings. If you do not consent to being =
recorded, discuss your concerns with the host or do not join the =
session.
> =20
> _______________________________________________
> CBOR mailing list
> CBOR@ietf.org
> https://www.ietf.org/mailman/listinfo/cbor


From nobody Wed Nov  6 08:08:39 2019
Return-Path: <francesca.palombini@ericsson.com>
X-Original-To: cbor@ietfa.amsl.com
Delivered-To: cbor@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 9D28512011F for <cbor@ietfa.amsl.com>; Wed,  6 Nov 2019 08:08:36 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level: 
X-Spam-Status: No, score=-2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9,  DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_FONT_LOW_CONTRAST=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=ericsson.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id c0P3y_U78M2J for <cbor@ietfa.amsl.com>; Wed,  6 Nov 2019 08:08:34 -0800 (PST)
Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-eopbgr50067.outbound.protection.outlook.com [40.107.5.67]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 0D47F120885 for <cbor@ietf.org>; Wed,  6 Nov 2019 08:08:24 -0800 (PST)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dr9mVUIwn54Pb7zAoY36UUGrmkCITIw9Gleij9pa0tTphVO2NN/p47rYqlt+SmhPZXEr04nwW+GTAILHCNFMZrEVaQ8Mu8nCg/IxqgcoJgtTc8X/hwl7lOH41h841jyx3CTv55+3AfCSjK8qCBg57dJRTYpz2eNCGSDt2lqpyFWW3Ba38FYrKFm70GMqEmonbXaWdgsxw8NmThAsIfDTH2ouYukBx30pp215rESfu9moFZ9jScL9OASIktwddm+kHdww0vGws7Vqf45M3gty855zqSG+l63r04pBNZIPvwHr/210W/GjNpKOAF/DeomtuogRNLthSpFbsdVvyDp/9Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;  s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=/cjNctDORJgL2MO+dgzLYV4TTB7YsVomJNHFT5RidoE=; b=GK7wgAdvkCoXroAOTSCpSlsOrkMVu8f9SXR9+SNu8MUuv+6R/oQc6LEgPYXm/tkv27NN9K8O28ZlXY1bOOaZSwHOlhPsNENmbWdgA6pkYYqccpvLtzBFrPa2LmtQFgS4p8G/wGK5YvaNgfrMizGEPmnmVTiYkDeduT4i/K6CAyiPCosoxayHA3eUWo2FAr105zjUsGxs2wHYbpbLdkkKL/A9EvH37l+HL8XkHNj0n/AZn92Vpq3XtiYQW6IG1ei+kzZf56zvhVEiqHCXzBQCoTf7sJm2sOgjDdgf/savwdwGMg4t2gwWLonVTofJ4I8g4naJ0xXljmhxc7AoFOhu0A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=ericsson.com; dmarc=pass action=none header.from=ericsson.com; dkim=pass header.d=ericsson.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ericsson.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=/cjNctDORJgL2MO+dgzLYV4TTB7YsVomJNHFT5RidoE=; b=RlNSFHmMI7/fRRIhK0CCdod5wXN2Lhmj/tAd3NXMW5Xo5hVljaMTHrmtkECJkvviNjigS/9X3a7Lah7fihk//7V6UolOrLkS71ExpmsqieCJ4jCRasVRPq2e283yuBirFL/ehdm7cy3m90RX2sUbhFPTaX0ZuyeylgDn99086qg=
Received: from VI1PR07MB5469.eurprd07.prod.outlook.com (20.178.14.214) by VI1PR07MB3853.eurprd07.prod.outlook.com (52.134.26.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2430.16; Wed, 6 Nov 2019 16:08:21 +0000
Received: from VI1PR07MB5469.eurprd07.prod.outlook.com ([fe80::a8d5:a784:a19:5c76]) by VI1PR07MB5469.eurprd07.prod.outlook.com ([fe80::a8d5:a784:a19:5c76%6]) with mapi id 15.20.2430.017; Wed, 6 Nov 2019 16:08:21 +0000
From: Francesca Palombini <francesca.palombini@ericsson.com>
To: "cbor@ietf.org" <cbor@ietf.org>
CC: Jim Schaad <ietf@augustcellars.com>
Thread-Topic: [Cbor] CBOR Interim: 2019-11-06
Thread-Index: AQHVlLxpEUOhFcEsV0mym/jgiJqeKA==
Date: Wed, 6 Nov 2019 16:08:21 +0000
Message-ID: <07363E43-7C09-4333-A5D5-C3864263F7A0@ericsson.com>
Accept-Language: en-GB, en-US
Content-Language: en-GB
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: spf=none (sender IP is ) smtp.mailfrom=francesca.palombini@ericsson.com; 
x-originating-ip: [158.174.219.143]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: cb6cfc08-edd6-42ca-2312-08d762d38bb8
x-ms-traffictypediagnostic: VI1PR07MB3853:
x-ms-exchange-purlcount: 5
x-microsoft-antispam-prvs: <VI1PR07MB3853D1067E639A8B8E5CD5B698790@VI1PR07MB3853.eurprd07.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:9508;
x-forefront-prvs: 02135EB356
x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(39860400002)(396003)(136003)(376002)(346002)(366004)(53754006)(189003)(199004)(497574002)(256004)(66946007)(6486002)(8676002)(5660300002)(2906002)(44832011)(81166006)(2501003)(2351001)(26005)(5640700003)(6916009)(102836004)(316002)(229853002)(53546011)(6306002)(6246003)(66066001)(71200400001)(14454004)(16799955002)(71190400001)(6436002)(66556008)(6116002)(6512007)(966005)(81156014)(1730700003)(54896002)(486006)(3846002)(478600001)(7736002)(6506007)(236005)(25786009)(86362001)(91956017)(2616005)(606006)(36756003)(476003)(64756008)(76116006)(8936002)(33656002)(66476007)(66446008)(186003)(4326008)(14444005)(99286004); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR07MB3853; H:VI1PR07MB5469.eurprd07.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; 
received-spf: None (protection.outlook.com: ericsson.com does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: LiuM/+eN+2jmW6Y/YUiHLJ/aWpn6B/iOPn3+roLDP7NWDNIgevAC66ndamklJC3O4oNrD1kW07lHwwvqUedIfvessk0jZXhNBKFh3Gx+FH1N4CsUiXrLAOK8R9gLnIzbPuypyHPxg/iwsR8Mu/jQ6NQmsiXqjY7zD6P4BzkW7WEuUWhM6KRKLTtrDjBeFnaz6qMbYMPfvzP3roT9XJ2JreXCnOyXpaIpYO9sn9KOFs9t4O7BJfXsHoqr3d6r97GB9fxj/Yt+eZmLEZarrAuje/tvGqq4H94tYSFTTTl6rwVxHTpVOdHOFMf06mk5E3p7ECmOFRf9suHJz2JPp0sd1fht1Ba3fG/NpPQdW4nI8CBr/9BpvELs/D/5nwSjpATm1rtLb7Y3CGtCj44IqHk/mybxEzcAIUrxoDxR1Ba1NkQrpP1lsNYiCIbKtiHKXcgDAlezxUApetlNSeyaLKmMcGbvYufv0A2QyAZksuckWuc=
x-ms-exchange-transport-forked: True
Content-Type: multipart/alternative; boundary="_000_07363E437C094333A5D5C3864263F7A0ericssoncom_"
MIME-Version: 1.0
X-OriginatorOrg: ericsson.com
X-MS-Exchange-CrossTenant-Network-Message-Id: cb6cfc08-edd6-42ca-2312-08d762d38bb8
X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Nov 2019 16:08:21.6717 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 92e84ceb-fbfd-47ab-be52-080c6b87953f
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: sbNQwQj73YM3LYYzr6G9aYyp17KtzeOWQ3SNGZ5IeMD9RwzSf9FJo/atl91rb1IDQ9+070SkveMCfVwvoqlI4wyMCqcrYaAT3HZKL9U9dpOcajvkQ3q9MUjpeNNNiiRL
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR07MB3853
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/uqe2brSbxw0lPHn2kvZbgSvLipQ>
Subject: Re: [Cbor] CBOR Interim: 2019-11-06
X-BeenThere: cbor@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Concise Binary Object Representation \(CBOR\)" <cbor.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cbor>, <mailto:cbor-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cbor/>
List-Post: <mailto:cbor@ietf.org>
List-Help: <mailto:cbor-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cbor>, <mailto:cbor-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 06 Nov 2019 16:08:37 -0000

--_000_07363E437C094333A5D5C3864263F7A0ericssoncom_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

U28sIEkgcG9zdGVkIHRoZSB3cm9uZyB0aW1lIGluIHRoZSBhZ2VuZGEsIGJ1dCB0aGUgd29ybGR0
aW1lYnVkZHkgbGluayBiZWxvdyBpcyBjb3JyZWN0LCB0aGUgbWVldGluZyBpcyBub3cuDQoNCkZy
YW5jZXNjYQ0KDQoNCkZyb206IENCT1IgPGNib3ItYm91bmNlc0BpZXRmLm9yZz4gb24gYmVoYWxm
IG9mIEZyYW5jZXNjYSBQYWxvbWJpbmkgPGZyYW5jZXNjYS5wYWxvbWJpbmk9NDBlcmljc3Nvbi5j
b21AZG1hcmMuaWV0Zi5vcmc+DQpEYXRlOiBXZWRuZXNkYXksIDYgTm92ZW1iZXIgMjAxOSBhdCAx
MDozNQ0KVG86ICJjYm9yQGlldGYub3JnIiA8Y2JvckBpZXRmLm9yZz4NCkNjOiBDYXJzdGVuIEJv
cm1hbm4gPGNhYm9jYWJvQGdtYWlsLmNvbT4sIEppbSBTY2hhYWQgPGlldGZAYXVndXN0Y2VsbGFy
cy5jb20+DQpTdWJqZWN0OiBbQ2Jvcl0gQ0JPUiBJbnRlcmltOiAyMDE5LTExLTA2DQoNCkhpIGFs
bCwNCg0KVG9kYXnigJlzIGludGVyaW0gd2lsbCBwcm9iYWJseSBiZSBhIHNob3J0IG9uZSwgYnV0
IEkgd2FudCB0byBoYXZlIGEgY2hhdCBhbmQgc2VlIGlmIGFueWJvZHkgd2FzIGFibGUgdG8gcmVh
ZCB0aGUgdXBkYXRlIG9uIENCT1IgQ2Fyc3RlbiBwb3N0ZWQgKHRoYW5rcyBDYXJzdGVuISkuIElm
IHNvLCB3ZSBjYW4gZGlzY3VzcyBpdCwgb3RoZXJ3aXNlIEkgb25seSBoYXZlIGEgY291cGxlIG9m
IHF1aWNrIGl0ZW1zIG9uIHRoZSBhZ2VuZGEgKGFnZW5kYSBzbG90cyBpbiBTaW5nYXBvcmUsIGFu
ZCBDRERMIGNvbnRpbnVlZCkuIEkgZG9u4oCZdCB0aGluayB3ZeKAmWxsIHRha2UgdGhlIGZ1bGwg
aG91ci4NCg0KDQpXZWJleDogaHR0cHM6Ly9pZXRmLndlYmV4LmNvbS9pZXRmL2oucGhwP01USUQ9
bTEyMzdhOTgxMjQxMTFkZTNhNGM0ZTYxZGZhY2EwNWQ1DQpBZ2VuZGE6IGh0dHBzOi8vZGF0YXRy
YWNrZXIuaWV0Zi5vcmcvbWVldGluZy9pbnRlcmltLTIwMTktY2Jvci0xOS9tYXRlcmlhbHMvYWdl
bmRhLWludGVyaW0tMjAxOS1jYm9yLTE5LXNlc3NhDQpUaW1lOiBodHRwczovL3d3dy53b3JsZHRp
bWVidWRkeS5jb20vP3FtPTEmbGlkPTEyLDEwMCw1LDgmaD0xMDAmZGF0ZT0yMDE5LTExLTA2JnNs
bj0xNi0xNw0KDQoNClRhbGsgdG8geW91IGxhdGVyLA0KRnJhbmNlc2NhDQoNCg0KDQpIZWxsbywN
CkNCT1IgV29ya2luZyBHcm91cCBpbnZpdGVzIHlvdSB0byBqb2luIHRoaXMgV2ViZXggbWVldGlu
Zy4NCg0KDQoNCkNCT1IgV0cgQ29uZmVyZW5jZSBDYWxsDQpPY2N1cnMgZXZlcnkgMiB3ZWVrKHMp
IG9uIFdlZG5lc2RheSBlZmZlY3RpdmUgV2VkbmVzZGF5LCBNYXkgMjIsIDIwMTkgdW50aWwgV2Vk
bmVzZGF5LCBOb3ZlbWJlciA2LCAyMDE5IGZyb20gNTowMCBQTSB0byA2OjAwIFBNLCAoVVRDKzAx
OjAwKSBBbXN0ZXJkYW0sIEJlcmxpbiwgQmVybiwgUm9tZSwgU3RvY2tob2xtLCBWaWVubmENCjU6
MDAgcG0gIHwgIEV1cm9wZSBTdW1tZXIgVGltZSAoQW1zdGVyZGFtLCBHTVQrMDI6MDApICB8ICAx
IGhyDQoNCk1lZXRpbmcgbnVtYmVyIChhY2Nlc3MgY29kZSk6IDY0MSA3NjAgMTU3DQoNCk1lZXRp
bmcgcGFzc3dvcmQ6IFVQQXQ5ckJuDQoNCg0KDQpBZGQgdG8gQ2FsZW5kYXI8aHR0cHM6Ly9pZXRm
LndlYmV4LmNvbS9pZXRmL2oucGhwP01USUQ9bTFkMDYzNjA2OWEyOGJkN2M4Y2MwOTBlNzQxNTY1
YzhjPg0KV2hlbiBpdCdzIHRpbWUsIGpvaW4gdGhlIG1lZXRpbmc8aHR0cHM6Ly9pZXRmLndlYmV4
LmNvbS9pZXRmL2oucGhwP01USUQ9bTEyMzdhOTgxMjQxMTFkZTNhNGM0ZTYxZGZhY2EwNWQ1Pi4N
Cg0KDQoNCkpvaW4gYnkgcGhvbmUNCjEtNjUwLTQ3OS0zMjA4PHRlbDolMkIxLTY1MC00NzktMzIw
OCwsKjAxKjY0MTc2MDE1NyUyMyUyMyowMSo+IENhbGwtaW4gdG9sbCBudW1iZXIgKFVTL0NhbmFk
YSkNCg0KDQoNCkNhbid0IGpvaW4gdGhlIG1lZXRpbmc/PGh0dHBzOi8vY29sbGFib3JhdGlvbmhl
bHAuY2lzY28uY29tL2FydGljbGUvV0JYMDAwMDI5MDU1Pg0KDQoNCg0KSU1QT1JUQU5UIE5PVElD
RTogUGxlYXNlIG5vdGUgdGhhdCB0aGlzIFdlYmV4IHNlcnZpY2UgYWxsb3dzIGF1ZGlvIGFuZCBv
dGhlciBpbmZvcm1hdGlvbiBzZW50IGR1cmluZyB0aGUgc2Vzc2lvbiB0byBiZSByZWNvcmRlZCwg
d2hpY2ggbWF5IGJlIGRpc2NvdmVyYWJsZSBpbiBhIGxlZ2FsIG1hdHRlci4gQnkgam9pbmluZyB0
aGlzIHNlc3Npb24sIHlvdSBhdXRvbWF0aWNhbGx5IGNvbnNlbnQgdG8gc3VjaCByZWNvcmRpbmdz
LiBJZiB5b3UgZG8gbm90IGNvbnNlbnQgdG8gYmVpbmcgcmVjb3JkZWQsIGRpc2N1c3MgeW91ciBj
b25jZXJucyB3aXRoIHRoZSBob3N0IG9yIGRvIG5vdCBqb2luIHRoZSBzZXNzaW9uLg0KDQo=

--_000_07363E437C094333A5D5C3864263F7A0ericssoncom_
Content-Type: text/html; charset="utf-8"
Content-ID: <E63B87152438EA40983EA36A6345633B@eurprd07.prod.outlook.com>
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6bz0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6b2ZmaWNlIiB4
bWxuczp3PSJ1cm46c2NoZW1hcy1taWNyb3NvZnQtY29tOm9mZmljZTp3b3JkIiB4bWxuczptPSJo
dHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS8yMDA0LzEyL29tbWwiIHhtbG5zPSJo
dHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwIj4NCjxoZWFkPg0KPG1ldGEgaHR0cC1lcXVp
dj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPg0KPG1l
dGEgbmFtZT0iR2VuZXJhdG9yIiBjb250ZW50PSJNaWNyb3NvZnQgV29yZCAxNSAoZmlsdGVyZWQg
bWVkaXVtKSI+DQo8c3R5bGU+PCEtLQ0KLyogRm9udCBEZWZpbml0aW9ucyAqLw0KQGZvbnQtZmFj
ZQ0KCXtmb250LWZhbWlseToiQ2FtYnJpYSBNYXRoIjsNCglwYW5vc2UtMToyIDQgNSAzIDUgNCA2
IDMgMiA0O30NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6Q2FsaWJyaTsNCglwYW5vc2UtMToy
IDE1IDUgMiAyIDIgNCAzIDIgNDt9DQovKiBTdHlsZSBEZWZpbml0aW9ucyAqLw0KcC5Nc29Ob3Jt
YWwsIGxpLk1zb05vcm1hbCwgZGl2Lk1zb05vcm1hbA0KCXttYXJnaW46MGNtOw0KCW1hcmdpbi1i
b3R0b206LjAwMDFwdDsNCglmb250LXNpemU6MTIuMHB0Ow0KCWZvbnQtZmFtaWx5OiJDYWxpYnJp
IixzYW5zLXNlcmlmOw0KCW1zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTO30NCmE6bGluaywgc3Bh
bi5Nc29IeXBlcmxpbmsNCgl7bXNvLXN0eWxlLXByaW9yaXR5Ojk5Ow0KCWNvbG9yOiMwNTYzQzE7
DQoJdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9DQphOnZpc2l0ZWQsIHNwYW4uTXNvSHlwZXJs
aW5rRm9sbG93ZWQNCgl7bXNvLXN0eWxlLXByaW9yaXR5Ojk5Ow0KCWNvbG9yOiM5NTRGNzI7DQoJ
dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9DQpwLm1zb25vcm1hbDAsIGxpLm1zb25vcm1hbDAs
IGRpdi5tc29ub3JtYWwwDQoJe21zby1zdHlsZS1uYW1lOm1zb25vcm1hbDsNCgltc28tbWFyZ2lu
LXRvcC1hbHQ6YXV0bzsNCgltYXJnaW4tcmlnaHQ6MGNtOw0KCW1zby1tYXJnaW4tYm90dG9tLWFs
dDphdXRvOw0KCW1hcmdpbi1sZWZ0OjBjbTsNCglmb250LXNpemU6MTEuMHB0Ow0KCWZvbnQtZmFt
aWx5OiJDYWxpYnJpIixzYW5zLXNlcmlmO30NCnNwYW4uRW1haWxTdHlsZTE4DQoJe21zby1zdHls
ZS10eXBlOnBlcnNvbmFsOw0KCWZvbnQtZmFtaWx5OiJDYWxpYnJpIixzYW5zLXNlcmlmOw0KCWNv
bG9yOndpbmRvd3RleHQ7fQ0Kc3Bhbi5hcHBsZS1jb252ZXJ0ZWQtc3BhY2UNCgl7bXNvLXN0eWxl
LW5hbWU6YXBwbGUtY29udmVydGVkLXNwYWNlO30NCnNwYW4uRW1haWxTdHlsZTIwDQoJe21zby1z
dHlsZS10eXBlOnBlcnNvbmFsLXJlcGx5Ow0KCWZvbnQtZmFtaWx5OiJDYWxpYnJpIixzYW5zLXNl
cmlmOw0KCWNvbG9yOndpbmRvd3RleHQ7fQ0KLk1zb0NocERlZmF1bHQNCgl7bXNvLXN0eWxlLXR5
cGU6ZXhwb3J0LW9ubHk7DQoJZm9udC1zaXplOjEwLjBwdDt9DQpAcGFnZSBXb3JkU2VjdGlvbjEN
Cgl7c2l6ZTo2MTIuMHB0IDc5Mi4wcHQ7DQoJbWFyZ2luOjcyLjBwdCA3Mi4wcHQgNzIuMHB0IDcy
LjBwdDt9DQpkaXYuV29yZFNlY3Rpb24xDQoJe3BhZ2U6V29yZFNlY3Rpb24xO30NCi0tPjwvc3R5
bGU+DQo8L2hlYWQ+DQo8Ym9keSBsYW5nPSJFTi1HQiIgbGluaz0iIzA1NjNDMSIgdmxpbms9IiM5
NTRGNzIiPg0KPGRpdiBjbGFzcz0iV29yZFNlY3Rpb24xIj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
PjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2NvbG9yOmJsYWNrO21zby1mYXJlYXN0LWxh
bmd1YWdlOkVOLUdCIj5TbywgSSBwb3N0ZWQgdGhlIHdyb25nIHRpbWUgaW4gdGhlIGFnZW5kYSwg
YnV0IHRoZSB3b3JsZHRpbWVidWRkeSBsaW5rIGJlbG93IGlzIGNvcnJlY3QsIHRoZSBtZWV0aW5n
IGlzIG5vdy48L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOmJsYWNrO21zby1mYXJlYXN0LWxhbmd1
YWdlOkVOLUdCIj48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48
c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtjb2xvcjpibGFjazttc28tZmFyZWFzdC1sYW5n
dWFnZTpFTi1HQiI+Jm5ic3A7PC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjpibGFjazttc28tZmFy
ZWFzdC1sYW5ndWFnZTpFTi1HQiI+PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Y29sb3I6YmxhY2s7bXNvLWZh
cmVhc3QtbGFuZ3VhZ2U6RU4tR0IiPkZyYW5jZXNjYTwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6
YmxhY2s7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tR0IiPjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0Ij48bzpw
PiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHls
ZT0iZm9udC1zaXplOjExLjBwdCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPGRpdiBz
dHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLXRvcDpzb2xpZCAjQjVDNERGIDEuMHB0O3BhZGRpbmc6
My4wcHQgMGNtIDBjbSAwY20iPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGI+PHNwYW4gc3R5bGU9
ImNvbG9yOmJsYWNrIj5Gcm9tOiA8L3NwYW4+PC9iPjxzcGFuIHN0eWxlPSJjb2xvcjpibGFjayI+
Q0JPUiAmbHQ7Y2Jvci1ib3VuY2VzQGlldGYub3JnJmd0OyBvbiBiZWhhbGYgb2YgRnJhbmNlc2Nh
IFBhbG9tYmluaSAmbHQ7ZnJhbmNlc2NhLnBhbG9tYmluaT00MGVyaWNzc29uLmNvbUBkbWFyYy5p
ZXRmLm9yZyZndDs8YnI+DQo8Yj5EYXRlOiA8L2I+V2VkbmVzZGF5LCA2IE5vdmVtYmVyIDIwMTkg
YXQgMTA6MzU8YnI+DQo8Yj5UbzogPC9iPiZxdW90O2Nib3JAaWV0Zi5vcmcmcXVvdDsgJmx0O2Ni
b3JAaWV0Zi5vcmcmZ3Q7PGJyPg0KPGI+Q2M6IDwvYj5DYXJzdGVuIEJvcm1hbm4gJmx0O2NhYm9j
YWJvQGdtYWlsLmNvbSZndDssIEppbSBTY2hhYWQgJmx0O2lldGZAYXVndXN0Y2VsbGFycy5jb20m
Z3Q7PGJyPg0KPGI+U3ViamVjdDogPC9iPltDYm9yXSBDQk9SIEludGVyaW06IDIwMTktMTEtMDY8
L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOmJsYWNrO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLUdC
Ij48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdCI+PG86cD4mbmJzcDs8L286cD48L3Nw
YW4+PC9wPg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJTViIgc3R5
bGU9ImZvbnQtc2l6ZToxMS4wcHQiPkhpIGFsbCw8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJTViIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQi
PiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFu
IHN0eWxlPSJmb250LXNpemU6MTEuMHB0Ij5Ub2RheeKAmXMgaW50ZXJpbSB3aWxsIHByb2JhYmx5
IGJlIGEgc2hvcnQgb25lLCBidXQgSSB3YW50IHRvIGhhdmUgYSBjaGF0IGFuZCBzZWUgaWYgYW55
Ym9keSB3YXMgYWJsZSB0byByZWFkIHRoZSB1cGRhdGUgb24gQ0JPUiBDYXJzdGVuIHBvc3RlZCAo
dGhhbmtzIENhcnN0ZW4hKS4gSWYgc28sIHdlIGNhbiBkaXNjdXNzIGl0LCBvdGhlcndpc2UgSSBv
bmx5IGhhdmUNCiBhIGNvdXBsZSBvZiBxdWljayBpdGVtcyBvbiB0aGUgYWdlbmRhIChhZ2VuZGEg
c2xvdHMgaW4gU2luZ2Fwb3JlLCBhbmQgQ0RETCBjb250aW51ZWQpLiBJIGRvbuKAmXQgdGhpbmsg
d2XigJlsbCB0YWtlIHRoZSBmdWxsIGhvdXIuPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQiPiZuYnNwOzwvc3Bh
bj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250
LXNpemU6MTEuMHB0Ij4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdCI+V2ViZXg6IDxhIGhyZWY9Imh0
dHBzOi8vaWV0Zi53ZWJleC5jb20vaWV0Zi9qLnBocD9NVElEPW0xMjM3YTk4MTI0MTExZGUzYTRj
NGU2MWRmYWNhMDVkNSI+DQpodHRwczovL2lldGYud2ViZXguY29tL2lldGYvai5waHA/TVRJRD1t
MTIzN2E5ODEyNDExMWRlM2E0YzRlNjFkZmFjYTA1ZDU8L2E+IDwvc3Bhbj4NCjxvOnA+PC9vOnA+
PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iU1YiIHN0eWxlPSJmb250LXNp
emU6MTEuMHB0Ij5BZ2VuZGE6IDwvc3Bhbj48YSBocmVmPSJodHRwczovL2RhdGF0cmFja2VyLmll
dGYub3JnL21lZXRpbmcvaW50ZXJpbS0yMDE5LWNib3ItMTkvbWF0ZXJpYWxzL2FnZW5kYS1pbnRl
cmltLTIwMTktY2Jvci0xOS1zZXNzYSI+PHNwYW4gbGFuZz0iU1YiPmh0dHBzOi8vZGF0YXRyYWNr
ZXIuaWV0Zi5vcmcvbWVldGluZy9pbnRlcmltLTIwMTktY2Jvci0xOS9tYXRlcmlhbHMvYWdlbmRh
LWludGVyaW0tMjAxOS1jYm9yLTE5LXNlc3NhPC9zcGFuPjwvYT48bzpwPjwvbzpwPjwvcD4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0Ij5UaW1lOiA8
L3NwYW4+PGEgaHJlZj0iaHR0cHM6Ly93d3cud29ybGR0aW1lYnVkZHkuY29tLz9xbT0xJmFtcDts
aWQ9MTIsMTAwLDUsOCZhbXA7aD0xMDAmYW1wO2RhdGU9MjAxOS0xMS0wNiZhbXA7c2xuPTE2LTE3
Ij5odHRwczovL3d3dy53b3JsZHRpbWVidWRkeS5jb20vP3FtPTEmYW1wO2xpZD0xMiwxMDAsNSw4
JmFtcDtoPTEwMCZhbXA7ZGF0ZT0yMDE5LTExLTA2JmFtcDtzbG49MTYtMTc8L2E+PG86cD48L286
cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBw
dCI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNw
YW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0Ij5UYWxr
IHRvIHlvdSBsYXRlciw8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdCI+RnJhbmNlc2NhPC9zcGFuPjxvOnA+PC9v
OnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4w
cHQiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxz
cGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0Ij4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+
DQo8dGFibGUgY2xhc3M9Ik1zb05vcm1hbFRhYmxlIiBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIw
IiBhbGlnbj0ibGVmdCIgd2lkdGg9IjUyNSIgc3R5bGU9IndpZHRoOjM5My43NXB0O21hcmdpbi1s
ZWZ0OjMuNzVwdCI+DQo8dGJvZHk+DQo8dHI+DQo8dGQgdmFsaWduPSJ0b3AiIHN0eWxlPSJwYWRk
aW5nOjBjbSAwY20gMGNtIDBjbSI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibGluZS1o
ZWlnaHQ6MTUuMHB0O21zby1lbGVtZW50OmZyYW1lO21zby1lbGVtZW50LWZyYW1lLWhzcGFjZTo2
LjBwdDttc28tZWxlbWVudC13cmFwOmFyb3VuZDttc28tZWxlbWVudC1hbmNob3ItdmVydGljYWw6
cGFyYWdyYXBoO21zby1lbGVtZW50LWFuY2hvci1ob3Jpem9udGFsOmNvbHVtbjttc28taGVpZ2h0
LXJ1bGU6ZXhhY3RseSI+DQo8c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjVwdDtmb250LWZhbWls
eTomcXVvdDtBcmlhbCZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiM2NjY2NjYiPiZuYnNwOzwvc3Bh
bj48bzpwPjwvbzpwPjwvcD4NCjx0YWJsZSBjbGFzcz0iTXNvTm9ybWFsVGFibGUiIGJvcmRlcj0i
MCIgY2VsbHBhZGRpbmc9IjAiIHdpZHRoPSI1MjUiIHN0eWxlPSJ3aWR0aDozOTMuNzVwdCI+DQo8
dGJvZHk+DQo8dHI+DQo8dGQgc3R5bGU9InBhZGRpbmc6MGNtIDBjbSAwY20gMGNtIj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJsaW5lLWhlaWdodDoxNS4wcHQ7bXNvLWVsZW1lbnQ6ZnJh
bWU7bXNvLWVsZW1lbnQtZnJhbWUtaHNwYWNlOjYuMHB0O21zby1lbGVtZW50LXdyYXA6YXJvdW5k
O21zby1lbGVtZW50LWFuY2hvci12ZXJ0aWNhbDpwYXJhZ3JhcGg7bXNvLWVsZW1lbnQtYW5jaG9y
LWhvcml6b250YWw6Y29sdW1uO21zby1oZWlnaHQtcnVsZTpleGFjdGx5Ij4NCjxzcGFuIHN0eWxl
PSJmb250LXNpemU6MTEuNXB0O2ZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LHNhbnMtc2Vy
aWY7Y29sb3I6IzRENEQ0RCI+SGVsbG8sPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC90ZD4NCjwv
dHI+DQo8dHI+DQo8dGQgc3R5bGU9InBhZGRpbmc6Ny41cHQgMGNtIDBjbSAwY20iPg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCIgc3R5bGU9ImxpbmUtaGVpZ2h0OjE1LjBwdDttc28tZWxlbWVudDpmcmFt
ZTttc28tZWxlbWVudC1mcmFtZS1oc3BhY2U6Ni4wcHQ7bXNvLWVsZW1lbnQtd3JhcDphcm91bmQ7
bXNvLWVsZW1lbnQtYW5jaG9yLXZlcnRpY2FsOnBhcmFncmFwaDttc28tZWxlbWVudC1hbmNob3It
aG9yaXpvbnRhbDpjb2x1bW47bXNvLWhlaWdodC1ydWxlOmV4YWN0bHkiPg0KPHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZToxMS41cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssc2Fucy1zZXJp
Zjtjb2xvcjojNEQ0RDREIj5DQk9SIFdvcmtpbmcgR3JvdXAgaW52aXRlcyB5b3UgdG8gam9pbiB0
aGlzIFdlYmV4IG1lZXRpbmcuPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC90ZD4NCjwvdHI+DQo8
L3Rib2R5Pg0KPC90YWJsZT4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJsaW5lLWhlaWdo
dDoxNS4wcHQ7bXNvLWVsZW1lbnQ6ZnJhbWU7bXNvLWVsZW1lbnQtZnJhbWUtaHNwYWNlOjYuMHB0
O21zby1lbGVtZW50LXdyYXA6YXJvdW5kO21zby1lbGVtZW50LWFuY2hvci12ZXJ0aWNhbDpwYXJh
Z3JhcGg7bXNvLWVsZW1lbnQtYW5jaG9yLWhvcml6b250YWw6Y29sdW1uO21zby1oZWlnaHQtcnVs
ZTpleGFjdGx5Ij4NCjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuNXB0O2ZvbnQtZmFtaWx5OiZx
dW90O0FyaWFsJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzY2NjY2NiI+Jm5ic3A7PC9zcGFuPjxv
OnA+PC9vOnA+PC9wPg0KPHRhYmxlIGNsYXNzPSJNc29Ob3JtYWxUYWJsZSIgYm9yZGVyPSIwIiBj
ZWxscGFkZGluZz0iMCIgd2lkdGg9IjUyNSIgc3R5bGU9IndpZHRoOjM5My43NXB0Ij4NCjx0Ym9k
eT4NCjx0ciBzdHlsZT0iaGVpZ2h0OjE1LjBwdCI+DQo8dGQgc3R5bGU9InBhZGRpbmc6MGNtIDBj
bSAwY20gMGNtO2hlaWdodDoxNS4wcHQiPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Imxp
bmUtaGVpZ2h0OjE1LjBwdDttc28tZWxlbWVudDpmcmFtZTttc28tZWxlbWVudC1mcmFtZS1oc3Bh
Y2U6Ni4wcHQ7bXNvLWVsZW1lbnQtd3JhcDphcm91bmQ7bXNvLWVsZW1lbnQtYW5jaG9yLXZlcnRp
Y2FsOnBhcmFncmFwaDttc28tZWxlbWVudC1hbmNob3ItaG9yaXpvbnRhbDpjb2x1bW47bXNvLWhl
aWdodC1ydWxlOmV4YWN0bHkiPg0KPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS41cHQ7Zm9udC1m
YW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojNjY2NjY2Ij4mbmJzcDs8
L3NwYW4+PG86cD48L286cD48L3A+DQo8L3RkPg0KPC90cj4NCjwvdGJvZHk+DQo8L3RhYmxlPg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9ImxpbmUtaGVpZ2h0OjE1LjBwdDttc28tZWxlbWVu
dDpmcmFtZTttc28tZWxlbWVudC1mcmFtZS1oc3BhY2U6Ni4wcHQ7bXNvLWVsZW1lbnQtd3JhcDph
cm91bmQ7bXNvLWVsZW1lbnQtYW5jaG9yLXZlcnRpY2FsOnBhcmFncmFwaDttc28tZWxlbWVudC1h
bmNob3ItaG9yaXpvbnRhbDpjb2x1bW47bXNvLWhlaWdodC1ydWxlOmV4YWN0bHkiPg0KPHNwYW4g
c3R5bGU9ImZvbnQtc2l6ZToxMS41cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssc2Fu
cy1zZXJpZjtjb2xvcjojNjY2NjY2Ij4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8dGFi
bGUgY2xhc3M9Ik1zb05vcm1hbFRhYmxlIiBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIwIiB3aWR0
aD0iMTAwJSIgc3R5bGU9IndpZHRoOjEwMC4wJSI+DQo8dGJvZHk+DQo8dHI+DQo8dGQgc3R5bGU9
InBhZGRpbmc6MGNtIDBjbSAwY20gMGNtIj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJs
aW5lLWhlaWdodDoxNS4wcHQ7bXNvLWVsZW1lbnQ6ZnJhbWU7bXNvLWVsZW1lbnQtZnJhbWUtaHNw
YWNlOjYuMHB0O21zby1lbGVtZW50LXdyYXA6YXJvdW5kO21zby1lbGVtZW50LWFuY2hvci12ZXJ0
aWNhbDpwYXJhZ3JhcGg7bXNvLWVsZW1lbnQtYW5jaG9yLWhvcml6b250YWw6Y29sdW1uO21zby1o
ZWlnaHQtcnVsZTpleGFjdGx5Ij4NCjxiPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtB
cmlhbCZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiM0RDRENEQiPkNCT1IgV0cgQ29uZmVyZW5jZSBD
YWxsPC9zcGFuPjwvYj48bzpwPjwvbzpwPjwvcD4NCjwvdGQ+DQo8L3RyPg0KPHRyPg0KPHRkIHN0
eWxlPSJwYWRkaW5nOjBjbSAwY20gMGNtIDBjbSI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHls
ZT0ibGluZS1oZWlnaHQ6MTUuMHB0O21zby1lbGVtZW50OmZyYW1lO21zby1lbGVtZW50LWZyYW1l
LWhzcGFjZTo2LjBwdDttc28tZWxlbWVudC13cmFwOmFyb3VuZDttc28tZWxlbWVudC1hbmNob3It
dmVydGljYWw6cGFyYWdyYXBoO21zby1lbGVtZW50LWFuY2hvci1ob3Jpem9udGFsOmNvbHVtbjtt
c28taGVpZ2h0LXJ1bGU6ZXhhY3RseSI+DQo8c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjVwdDtm
b250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiM2NjY2NjYiPk9j
Y3VycyBldmVyeSAyIHdlZWsocykgb24gV2VkbmVzZGF5IGVmZmVjdGl2ZSBXZWRuZXNkYXksIE1h
eSAyMiwgMjAxOSB1bnRpbCBXZWRuZXNkYXksIE5vdmVtYmVyIDYsIDIwMTkgZnJvbSA1OjAwIFBN
IHRvIDY6MDAgUE0sIChVVEMmIzQzOzAxOjAwKSBBbXN0ZXJkYW0sIEJlcmxpbiwgQmVybiwgUm9t
ZSwgU3RvY2tob2xtLA0KIFZpZW5uYTxzcGFuIGNsYXNzPSJhcHBsZS1jb252ZXJ0ZWQtc3BhY2Ui
PiZuYnNwOzwvc3Bhbj48L3NwYW4+PG86cD48L286cD48L3A+DQo8L3RkPg0KPC90cj4NCjx0cj4N
Cjx0ZCBzdHlsZT0icGFkZGluZzowY20gMGNtIDBjbSAwY20iPg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCIgc3R5bGU9ImxpbmUtaGVpZ2h0OjE1LjBwdDttc28tZWxlbWVudDpmcmFtZTttc28tZWxlbWVu
dC1mcmFtZS1oc3BhY2U6Ni4wcHQ7bXNvLWVsZW1lbnQtd3JhcDphcm91bmQ7bXNvLWVsZW1lbnQt
YW5jaG9yLXZlcnRpY2FsOnBhcmFncmFwaDttc28tZWxlbWVudC1hbmNob3ItaG9yaXpvbnRhbDpj
b2x1bW47bXNvLWhlaWdodC1ydWxlOmV4YWN0bHkiPg0KPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTox
MS41cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojNjY2
NjY2Ij41OjAwIHBtJm5ic3A7Jm5ic3A7fCZuYnNwOyZuYnNwO0V1cm9wZSBTdW1tZXIgVGltZSAo
QW1zdGVyZGFtLCBHTVQmIzQzOzAyOjAwKSZuYnNwOyZuYnNwO3wmbmJzcDsmbmJzcDsxIGhyPC9z
cGFuPjxvOnA+PC9vOnA+PC9wPg0KPC90ZD4NCjwvdHI+DQo8L3Rib2R5Pg0KPC90YWJsZT4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJsaW5lLWhlaWdodDoxNS4wcHQ7bXNvLWVsZW1lbnQ6
ZnJhbWU7bXNvLWVsZW1lbnQtZnJhbWUtaHNwYWNlOjYuMHB0O21zby1lbGVtZW50LXdyYXA6YXJv
dW5kO21zby1lbGVtZW50LWFuY2hvci12ZXJ0aWNhbDpwYXJhZ3JhcGg7bXNvLWVsZW1lbnQtYW5j
aG9yLWhvcml6b250YWw6Y29sdW1uO21zby1oZWlnaHQtcnVsZTpleGFjdGx5Ij4NCjxzcGFuIHN0
eWxlPSJmb250LXNpemU6MTEuNXB0O2ZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LHNhbnMt
c2VyaWY7Y29sb3I6IzY2NjY2NiI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHRhYmxl
IGNsYXNzPSJNc29Ob3JtYWxUYWJsZSIgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMCIgd2lkdGg9
IjAiIHN0eWxlPSJ3aWR0aDowY20iPg0KPHRib2R5Pg0KPHRyPg0KPHRkIHN0eWxlPSJwYWRkaW5n
OjBjbSAwY20gMGNtIDBjbSI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibGluZS1oZWln
aHQ6MTUuMHB0O21zby1lbGVtZW50OmZyYW1lO21zby1lbGVtZW50LWZyYW1lLWhzcGFjZTo2LjBw
dDttc28tZWxlbWVudC13cmFwOmFyb3VuZDttc28tZWxlbWVudC1hbmNob3ItdmVydGljYWw6cGFy
YWdyYXBoO21zby1lbGVtZW50LWFuY2hvci1ob3Jpem9udGFsOmNvbHVtbjttc28taGVpZ2h0LXJ1
bGU6ZXhhY3RseSI+DQo8c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjVwdDtmb250LWZhbWlseTom
cXVvdDtBcmlhbCZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiM2NjY2NjYiPk1lZXRpbmcgbnVtYmVy
IChhY2Nlc3MgY29kZSk6IDY0MSA3NjAgMTU3PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC90ZD4N
CjwvdHI+DQo8L3Rib2R5Pg0KPC90YWJsZT4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJs
aW5lLWhlaWdodDoxNS4wcHQ7bXNvLWVsZW1lbnQ6ZnJhbWU7bXNvLWVsZW1lbnQtZnJhbWUtaHNw
YWNlOjYuMHB0O21zby1lbGVtZW50LXdyYXA6YXJvdW5kO21zby1lbGVtZW50LWFuY2hvci12ZXJ0
aWNhbDpwYXJhZ3JhcGg7bXNvLWVsZW1lbnQtYW5jaG9yLWhvcml6b250YWw6Y29sdW1uO21zby1o
ZWlnaHQtcnVsZTpleGFjdGx5Ij4NCjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuNXB0O2ZvbnQt
ZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzY2NjY2NiI+Jm5ic3A7
PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHRhYmxlIGNsYXNzPSJNc29Ob3JtYWxUYWJsZSIgYm9y
ZGVyPSIwIiBjZWxscGFkZGluZz0iMCIgd2lkdGg9IjAiIHN0eWxlPSJ3aWR0aDowY20iPg0KPHRi
b2R5Pg0KPHRyPg0KPHRkIHN0eWxlPSJwYWRkaW5nOjBjbSAwY20gMGNtIDBjbSI+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIiBzdHlsZT0ibGluZS1oZWlnaHQ6MTUuMHB0O21zby1lbGVtZW50OmZyYW1l
O21zby1lbGVtZW50LWZyYW1lLWhzcGFjZTo2LjBwdDttc28tZWxlbWVudC13cmFwOmFyb3VuZDtt
c28tZWxlbWVudC1hbmNob3ItdmVydGljYWw6cGFyYWdyYXBoO21zby1lbGVtZW50LWFuY2hvci1o
b3Jpem9udGFsOmNvbHVtbjttc28taGVpZ2h0LXJ1bGU6ZXhhY3RseSI+DQo8c3BhbiBzdHlsZT0i
Zm9udC1zaXplOjExLjVwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OyxzYW5zLXNlcmlm
O2NvbG9yOiM2NjY2NjYiPk1lZXRpbmcgcGFzc3dvcmQ6IFVQQXQ5ckJuPC9zcGFuPjxvOnA+PC9v
OnA+PC9wPg0KPC90ZD4NCjwvdHI+DQo8L3Rib2R5Pg0KPC90YWJsZT4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiIHN0eWxlPSJtYXJnaW4tYm90dG9tOjEyLjBwdDtsaW5lLWhlaWdodDoxNS4wcHQ7bXNv
LWVsZW1lbnQ6ZnJhbWU7bXNvLWVsZW1lbnQtZnJhbWUtaHNwYWNlOjYuMHB0O21zby1lbGVtZW50
LXdyYXA6YXJvdW5kO21zby1lbGVtZW50LWFuY2hvci12ZXJ0aWNhbDpwYXJhZ3JhcGg7bXNvLWVs
ZW1lbnQtYW5jaG9yLWhvcml6b250YWw6Y29sdW1uO21zby1oZWlnaHQtcnVsZTpleGFjdGx5Ij4N
CjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuNXB0O2ZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1
b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzY2NjY2NiI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9w
Pg0KPHRhYmxlIGNsYXNzPSJNc29Ob3JtYWxUYWJsZSIgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0i
MCIgd2lkdGg9IjUyNSIgc3R5bGU9IndpZHRoOjM5My43NXB0Ij4NCjx0Ym9keT4NCjx0ciBzdHls
ZT0iaGVpZ2h0OjE1LjBwdCI+DQo8dGQgc3R5bGU9InBhZGRpbmc6MGNtIDBjbSAwY20gMGNtO2hl
aWdodDoxNS4wcHQiPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9ImxpbmUtaGVpZ2h0OjE1
LjBwdDttc28tZWxlbWVudDpmcmFtZTttc28tZWxlbWVudC1mcmFtZS1oc3BhY2U6Ni4wcHQ7bXNv
LWVsZW1lbnQtd3JhcDphcm91bmQ7bXNvLWVsZW1lbnQtYW5jaG9yLXZlcnRpY2FsOnBhcmFncmFw
aDttc28tZWxlbWVudC1hbmNob3ItaG9yaXpvbnRhbDpjb2x1bW47bXNvLWhlaWdodC1ydWxlOmV4
YWN0bHkiPg0KPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS41cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7
QXJpYWwmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojNjY2NjY2Ij4mbmJzcDs8L3NwYW4+PG86cD48
L286cD48L3A+DQo8L3RkPg0KPC90cj4NCjwvdGJvZHk+DQo8L3RhYmxlPg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCIgc3R5bGU9ImxpbmUtaGVpZ2h0OjE1LjBwdDttc28tZWxlbWVudDpmcmFtZTttc28t
ZWxlbWVudC1mcmFtZS1oc3BhY2U6Ni4wcHQ7bXNvLWVsZW1lbnQtd3JhcDphcm91bmQ7bXNvLWVs
ZW1lbnQtYW5jaG9yLXZlcnRpY2FsOnBhcmFncmFwaDttc28tZWxlbWVudC1hbmNob3ItaG9yaXpv
bnRhbDpjb2x1bW47bXNvLWhlaWdodC1ydWxlOmV4YWN0bHkiPg0KPHNwYW4gc3R5bGU9ImZvbnQt
c2l6ZToxMS41cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssc2Fucy1zZXJpZjtjb2xv
cjojNjY2NjY2Ij4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8dGFibGUgY2xhc3M9Ik1z
b05vcm1hbFRhYmxlIiBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIwIiB3aWR0aD0iMCIgc3R5bGU9
IndpZHRoOjBjbTttaW4td2lkdGg6IDE4NnB4ICFpbXBvcnRhbnQ7YmFja2dyb3VuZC1wb3NpdGlv
bjppbml0aWFsIGluaXRpYWw7YmFja2dyb3VuZC1yZXBlYXQ6aW5pdGlhbCBpbml0aWFsIj4NCjx0
Ym9keT4NCjx0cj4NCjx0ZCBzdHlsZT0icGFkZGluZzowY20gMGNtIDBjbSAwY207bWluLXdpZHRo
OiAxODZweCAhaW1wb3J0YW50Ij4NCjx0YWJsZSBjbGFzcz0iTXNvTm9ybWFsVGFibGUiIGJvcmRl
cj0iMSIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIwIiB3aWR0aD0iMCIgc3R5bGU9Indp
ZHRoOjBjbTtiYWNrZ3JvdW5kOiMwNDhDQkY7Ym9yZGVyOnNvbGlkICMwNDhDQkYgMS41cHQ7bWlu
LXdpZHRoOiAxODZweCAhaW1wb3J0YW50Ij4NCjx0Ym9keT4NCjx0cj4NCjx0ZCBzdHlsZT0iYm9y
ZGVyOm5vbmU7cGFkZGluZzoxMC41cHQgMTUuMHB0IDEwLjVwdCAxNS4wcHQ7bWluLXdpZHRoOiAx
ODZweCAhaW1wb3J0YW50Ij4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIGFsaWduPSJjZW50ZXIiIHN0
eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjtsaW5lLWhlaWdodDoxNS4wcHQ7bXNvLWVsZW1lbnQ6ZnJh
bWU7bXNvLWVsZW1lbnQtZnJhbWUtaHNwYWNlOjYuMHB0O21zby1lbGVtZW50LXdyYXA6YXJvdW5k
O21zby1lbGVtZW50LWFuY2hvci12ZXJ0aWNhbDpwYXJhZ3JhcGg7bXNvLWVsZW1lbnQtYW5jaG9y
LWhvcml6b250YWw6Y29sdW1uO21zby1oZWlnaHQtcnVsZTpleGFjdGx5Ij4NCjxzcGFuIHN0eWxl
PSJmb250LXNpemU6MTEuNXB0O2ZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LHNhbnMtc2Vy
aWY7Y29sb3I6IzY2NjY2NiI+PGEgaHJlZj0iaHR0cHM6Ly9pZXRmLndlYmV4LmNvbS9pZXRmL2ou
cGhwP01USUQ9bTFkMDYzNjA2OWEyOGJkN2M4Y2MwOTBlNzQxNTY1YzhjIj48c3BhbiBzdHlsZT0i
Zm9udC1zaXplOjE1LjBwdDtjb2xvcjp3aGl0ZSI+QWRkIHRvIENhbGVuZGFyPC9zcGFuPjwvYT48
L3NwYW4+PG86cD48L286cD48L3A+DQo8L3RkPg0KPC90cj4NCjwvdGJvZHk+DQo8L3RhYmxlPg0K
PC90ZD4NCjx0ZCBzdHlsZT0icGFkZGluZzowY20gMGNtIDBjbSAwY207bWluLXdpZHRoOiAxODZw
eCAhaW1wb3J0YW50Ij4NCjx0YWJsZSBjbGFzcz0iTXNvTm9ybWFsVGFibGUiIGJvcmRlcj0iMCIg
Y2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIwIiB3aWR0aD0iMCIgc3R5bGU9IndpZHRoOjBj
bTttaW4td2lkdGg6IDE4NnB4ICFpbXBvcnRhbnQiPg0KPHRib2R5Pg0KPHRyPg0KPHRkIHN0eWxl
PSJwYWRkaW5nOjBjbSAwY20gMGNtIDEyLjBwdDttaW4td2lkdGg6IDE4NnB4ICFpbXBvcnRhbnQi
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9ImxpbmUtaGVpZ2h0OjE1LjBwdDttc28tZWxl
bWVudDpmcmFtZTttc28tZWxlbWVudC1mcmFtZS1oc3BhY2U6Ni4wcHQ7bXNvLWVsZW1lbnQtd3Jh
cDphcm91bmQ7bXNvLWVsZW1lbnQtYW5jaG9yLXZlcnRpY2FsOnBhcmFncmFwaDttc28tZWxlbWVu
dC1hbmNob3ItaG9yaXpvbnRhbDpjb2x1bW47bXNvLWhlaWdodC1ydWxlOmV4YWN0bHkiPg0KPHNw
YW4gc3R5bGU9ImZvbnQtc2l6ZToxMS41cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDss
c2Fucy1zZXJpZjtjb2xvcjojNjY2NjY2Ij5XaGVuIGl0J3MgdGltZSw8c3BhbiBjbGFzcz0iYXBw
bGUtY29udmVydGVkLXNwYWNlIj4mbmJzcDs8L3NwYW4+PGEgaHJlZj0iaHR0cHM6Ly9pZXRmLndl
YmV4LmNvbS9pZXRmL2oucGhwP01USUQ9bTEyMzdhOTgxMjQxMTFkZTNhNGM0ZTYxZGZhY2EwNWQ1
Ij48c3BhbiBzdHlsZT0iY29sb3I6IzAwQUZGOSI+am9pbiB0aGUgbWVldGluZzwvc3Bhbj48L2E+
Ljwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvdGQ+DQo8L3RyPg0KPC90Ym9keT4NCjwvdGFibGU+
DQo8L3RkPg0KPC90cj4NCjwvdGJvZHk+DQo8L3RhYmxlPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIg
c3R5bGU9ImxpbmUtaGVpZ2h0OjE1LjBwdDttc28tZWxlbWVudDpmcmFtZTttc28tZWxlbWVudC1m
cmFtZS1oc3BhY2U6Ni4wcHQ7bXNvLWVsZW1lbnQtd3JhcDphcm91bmQ7bXNvLWVsZW1lbnQtYW5j
aG9yLXZlcnRpY2FsOnBhcmFncmFwaDttc28tZWxlbWVudC1hbmNob3ItaG9yaXpvbnRhbDpjb2x1
bW47bXNvLWhlaWdodC1ydWxlOmV4YWN0bHkiPg0KJm5ic3A7PG86cD48L286cD48L3A+DQo8dGFi
bGUgY2xhc3M9Ik1zb05vcm1hbFRhYmxlIiBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIwIiB3aWR0
aD0iNTI1IiBzdHlsZT0id2lkdGg6MzkzLjc1cHQiPg0KPHRib2R5Pg0KPHRyIHN0eWxlPSJoZWln
aHQ6MTUuMHB0Ij4NCjx0ZCBzdHlsZT0icGFkZGluZzowY20gMGNtIDBjbSAwY207aGVpZ2h0OjE1
LjBwdCI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibGluZS1oZWlnaHQ6MTUuMHB0O21z
by1lbGVtZW50OmZyYW1lO21zby1lbGVtZW50LWZyYW1lLWhzcGFjZTo2LjBwdDttc28tZWxlbWVu
dC13cmFwOmFyb3VuZDttc28tZWxlbWVudC1hbmNob3ItdmVydGljYWw6cGFyYWdyYXBoO21zby1l
bGVtZW50LWFuY2hvci1ob3Jpem9udGFsOmNvbHVtbjttc28taGVpZ2h0LXJ1bGU6ZXhhY3RseSI+
DQo8c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjVwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZx
dW90OyxzYW5zLXNlcmlmO2NvbG9yOiM2NjY2NjYiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwv
cD4NCjwvdGQ+DQo8L3RyPg0KPC90Ym9keT4NCjwvdGFibGU+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
IiBzdHlsZT0ibGluZS1oZWlnaHQ6MTUuMHB0O21zby1lbGVtZW50OmZyYW1lO21zby1lbGVtZW50
LWZyYW1lLWhzcGFjZTo2LjBwdDttc28tZWxlbWVudC13cmFwOmFyb3VuZDttc28tZWxlbWVudC1h
bmNob3ItdmVydGljYWw6cGFyYWdyYXBoO21zby1lbGVtZW50LWFuY2hvci1ob3Jpem9udGFsOmNv
bHVtbjttc28taGVpZ2h0LXJ1bGU6ZXhhY3RseSI+DQombmJzcDs8bzpwPjwvbzpwPjwvcD4NCjx0
YWJsZSBjbGFzcz0iTXNvTm9ybWFsVGFibGUiIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjAiIHdp
ZHRoPSI1MjUiIHN0eWxlPSJ3aWR0aDozOTMuNzVwdCI+DQo8dGJvZHk+DQo8dHI+DQo8dGQgc3R5
bGU9InBhZGRpbmc6MGNtIDBjbSAwY20gMGNtIj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxl
PSJsaW5lLWhlaWdodDoxNS4wcHQ7bXNvLWVsZW1lbnQ6ZnJhbWU7bXNvLWVsZW1lbnQtZnJhbWUt
aHNwYWNlOjYuMHB0O21zby1lbGVtZW50LXdyYXA6YXJvdW5kO21zby1lbGVtZW50LWFuY2hvci12
ZXJ0aWNhbDpwYXJhZ3JhcGg7bXNvLWVsZW1lbnQtYW5jaG9yLWhvcml6b250YWw6Y29sdW1uO21z
by1oZWlnaHQtcnVsZTpleGFjdGx5Ij4NCjxiPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVv
dDtBcmlhbCZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiM2NjY2NjYiPkpvaW4gYnkgcGhvbmU8L3Nw
YW4+PC9iPjxvOnA+PC9vOnA+PC9wPg0KPC90ZD4NCjwvdHI+DQo8dHI+DQo8dGQgc3R5bGU9InBh
ZGRpbmc6MGNtIDBjbSAwY20gMGNtIj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJsaW5l
LWhlaWdodDoxNS4wcHQ7bXNvLWVsZW1lbnQ6ZnJhbWU7bXNvLWVsZW1lbnQtZnJhbWUtaHNwYWNl
OjYuMHB0O21zby1lbGVtZW50LXdyYXA6YXJvdW5kO21zby1lbGVtZW50LWFuY2hvci12ZXJ0aWNh
bDpwYXJhZ3JhcGg7bXNvLWVsZW1lbnQtYW5jaG9yLWhvcml6b250YWw6Y29sdW1uO21zby1oZWln
aHQtcnVsZTpleGFjdGx5Ij4NCjxiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuNXB0O2ZvbnQt
ZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzY2NjY2NiI+PGEgaHJl
Zj0idGVsOiUyQjEtNjUwLTQ3OS0zMjA4LCwqMDEqNjQxNzYwMTU3JTIzJTIzKjAxKiI+PHNwYW4g
c3R5bGU9ImNvbG9yOiMwMEFGRjkiPjEtNjUwLTQ3OS0zMjA4PC9zcGFuPjwvYT48L3NwYW4+PC9i
PjxzcGFuIGNsYXNzPSJhcHBsZS1jb252ZXJ0ZWQtc3BhY2UiPjxzcGFuIHN0eWxlPSJmb250LXNp
emU6MTEuNXB0O2ZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6
IzY2NjY2NiI+Jm5ic3A7PC9zcGFuPjwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjVw
dDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiM2NjY2NjYi
PkNhbGwtaW4NCiB0b2xsIG51bWJlciAoVVMvQ2FuYWRhKTwvc3Bhbj48bzpwPjwvbzpwPjwvcD4N
CjwvdGQ+DQo8L3RyPg0KPHRyPg0KPHRkIHN0eWxlPSJwYWRkaW5nOjBjbSAwY20gMGNtIDBjbSI+
PC90ZD4NCjwvdHI+DQo8L3Rib2R5Pg0KPC90YWJsZT4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0
eWxlPSJsaW5lLWhlaWdodDoxNS4wcHQ7bXNvLWVsZW1lbnQ6ZnJhbWU7bXNvLWVsZW1lbnQtZnJh
bWUtaHNwYWNlOjYuMHB0O21zby1lbGVtZW50LXdyYXA6YXJvdW5kO21zby1lbGVtZW50LWFuY2hv
ci12ZXJ0aWNhbDpwYXJhZ3JhcGg7bXNvLWVsZW1lbnQtYW5jaG9yLWhvcml6b250YWw6Y29sdW1u
O21zby1oZWlnaHQtcnVsZTpleGFjdGx5Ij4NCiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPHRhYmxl
IGNsYXNzPSJNc29Ob3JtYWxUYWJsZSIgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMCIgd2lkdGg9
IjUyNSIgc3R5bGU9IndpZHRoOjM5My43NXB0Ij4NCjx0Ym9keT4NCjx0ciBzdHlsZT0iaGVpZ2h0
OjE1LjBwdCI+DQo8dGQgc3R5bGU9InBhZGRpbmc6MGNtIDBjbSAwY20gMGNtO2hlaWdodDoxNS4w
cHQiPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9ImxpbmUtaGVpZ2h0OjE1LjBwdDttc28t
ZWxlbWVudDpmcmFtZTttc28tZWxlbWVudC1mcmFtZS1oc3BhY2U6Ni4wcHQ7bXNvLWVsZW1lbnQt
d3JhcDphcm91bmQ7bXNvLWVsZW1lbnQtYW5jaG9yLXZlcnRpY2FsOnBhcmFncmFwaDttc28tZWxl
bWVudC1hbmNob3ItaG9yaXpvbnRhbDpjb2x1bW47bXNvLWhlaWdodC1ydWxlOmV4YWN0bHkiPg0K
PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS41cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVv
dDssc2Fucy1zZXJpZjtjb2xvcjojNjY2NjY2Ij4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+
DQo8L3RkPg0KPC90cj4NCjwvdGJvZHk+DQo8L3RhYmxlPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIg
c3R5bGU9ImxpbmUtaGVpZ2h0OjE1LjBwdDttc28tZWxlbWVudDpmcmFtZTttc28tZWxlbWVudC1m
cmFtZS1oc3BhY2U6Ni4wcHQ7bXNvLWVsZW1lbnQtd3JhcDphcm91bmQ7bXNvLWVsZW1lbnQtYW5j
aG9yLXZlcnRpY2FsOnBhcmFncmFwaDttc28tZWxlbWVudC1hbmNob3ItaG9yaXpvbnRhbDpjb2x1
bW47bXNvLWhlaWdodC1ydWxlOmV4YWN0bHkiPg0KJm5ic3A7PG86cD48L286cD48L3A+DQo8dGFi
bGUgY2xhc3M9Ik1zb05vcm1hbFRhYmxlIiBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIwIiB3aWR0
aD0iNTI1IiBzdHlsZT0id2lkdGg6MzkzLjc1cHQiPg0KPHRib2R5Pg0KPHRyPg0KPHRkIHN0eWxl
PSJwYWRkaW5nOjBjbSAwY20gMGNtIDBjbSI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0i
bGluZS1oZWlnaHQ6MTUuMHB0O21zby1lbGVtZW50OmZyYW1lO21zby1lbGVtZW50LWZyYW1lLWhz
cGFjZTo2LjBwdDttc28tZWxlbWVudC13cmFwOmFyb3VuZDttc28tZWxlbWVudC1hbmNob3ItdmVy
dGljYWw6cGFyYWdyYXBoO21zby1lbGVtZW50LWFuY2hvci1ob3Jpem9udGFsOmNvbHVtbjttc28t
aGVpZ2h0LXJ1bGU6ZXhhY3RseSI+DQo8c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwLjBwdDtmb250
LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiM2NjY2NjYiPjxhIGhy
ZWY9Imh0dHBzOi8vY29sbGFib3JhdGlvbmhlbHAuY2lzY28uY29tL2FydGljbGUvV0JYMDAwMDI5
MDU1Ij48c3BhbiBzdHlsZT0iY29sb3I6IzAwQUZGOSI+Q2FuJ3Qgam9pbiB0aGUgbWVldGluZz88
L3NwYW4+PC9hPjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvdGQ+DQo8L3RyPg0KPC90Ym9keT4N
CjwvdGFibGU+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibGluZS1oZWlnaHQ6MTUuMHB0
O21zby1lbGVtZW50OmZyYW1lO21zby1lbGVtZW50LWZyYW1lLWhzcGFjZTo2LjBwdDttc28tZWxl
bWVudC13cmFwOmFyb3VuZDttc28tZWxlbWVudC1hbmNob3ItdmVydGljYWw6cGFyYWdyYXBoO21z
by1lbGVtZW50LWFuY2hvci1ob3Jpem9udGFsOmNvbHVtbjttc28taGVpZ2h0LXJ1bGU6ZXhhY3Rs
eSI+DQombmJzcDs8bzpwPjwvbzpwPjwvcD4NCjx0YWJsZSBjbGFzcz0iTXNvTm9ybWFsVGFibGUi
IGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjAiIHdpZHRoPSI1MjUiIHN0eWxlPSJ3aWR0aDozOTMu
NzVwdCI+DQo8dGJvZHk+DQo8dHIgc3R5bGU9ImhlaWdodDo3LjVwdCI+DQo8dGQgc3R5bGU9InBh
ZGRpbmc6MGNtIDBjbSAwY20gMGNtO2hlaWdodDo3LjVwdCI+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
IiBzdHlsZT0ibXNvLWVsZW1lbnQ6ZnJhbWU7bXNvLWVsZW1lbnQtZnJhbWUtaHNwYWNlOjYuMHB0
O21zby1lbGVtZW50LXdyYXA6YXJvdW5kO21zby1lbGVtZW50LWFuY2hvci12ZXJ0aWNhbDpwYXJh
Z3JhcGg7bXNvLWVsZW1lbnQtYW5jaG9yLWhvcml6b250YWw6Y29sdW1uO21zby1oZWlnaHQtcnVs
ZTpleGFjdGx5Ij4NCjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuNXB0O2ZvbnQtZmFtaWx5OiZx
dW90O0FyaWFsJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzY2NjY2NiI+Jm5ic3A7PC9zcGFuPjxv
OnA+PC9vOnA+PC9wPg0KPC90ZD4NCjwvdHI+DQo8L3Rib2R5Pg0KPC90YWJsZT4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiIHN0eWxlPSJsaW5lLWhlaWdodDoxNS4wcHQ7bXNvLWVsZW1lbnQ6ZnJhbWU7
bXNvLWVsZW1lbnQtZnJhbWUtaHNwYWNlOjYuMHB0O21zby1lbGVtZW50LXdyYXA6YXJvdW5kO21z
by1lbGVtZW50LWFuY2hvci12ZXJ0aWNhbDpwYXJhZ3JhcGg7bXNvLWVsZW1lbnQtYW5jaG9yLWhv
cml6b250YWw6Y29sdW1uO21zby1oZWlnaHQtcnVsZTpleGFjdGx5Ij4NCiZuYnNwOzxvOnA+PC9v
OnA+PC9wPg0KPHRhYmxlIGNsYXNzPSJNc29Ob3JtYWxUYWJsZSIgYm9yZGVyPSIwIiBjZWxscGFk
ZGluZz0iMCIgd2lkdGg9IjUyNSIgc3R5bGU9IndpZHRoOjM5My43NXB0Ij4NCjx0Ym9keT4NCjx0
cj4NCjx0ZCBzdHlsZT0icGFkZGluZzowY20gMGNtIDBjbSAwY20iPg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCIgc3R5bGU9ImxpbmUtaGVpZ2h0OjE1LjBwdDttc28tZWxlbWVudDpmcmFtZTttc28tZWxl
bWVudC1mcmFtZS1oc3BhY2U6Ni4wcHQ7bXNvLWVsZW1lbnQtd3JhcDphcm91bmQ7bXNvLWVsZW1l
bnQtYW5jaG9yLXZlcnRpY2FsOnBhcmFncmFwaDttc28tZWxlbWVudC1hbmNob3ItaG9yaXpvbnRh
bDpjb2x1bW47bXNvLWhlaWdodC1ydWxlOmV4YWN0bHkiPg0KPHNwYW4gc3R5bGU9ImZvbnQtc2l6
ZTo5LjBwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiNB
MEEwQTAiPklNUE9SVEFOVCBOT1RJQ0U6IFBsZWFzZSBub3RlIHRoYXQgdGhpcyBXZWJleCBzZXJ2
aWNlIGFsbG93cyBhdWRpbyBhbmQgb3RoZXIgaW5mb3JtYXRpb24gc2VudCBkdXJpbmcgdGhlIHNl
c3Npb24gdG8gYmUgcmVjb3JkZWQsIHdoaWNoIG1heSBiZSBkaXNjb3ZlcmFibGUgaW4gYSBsZWdh
bCBtYXR0ZXIuIEJ5IGpvaW5pbmcNCiB0aGlzIHNlc3Npb24sIHlvdSBhdXRvbWF0aWNhbGx5IGNv
bnNlbnQgdG8gc3VjaCByZWNvcmRpbmdzLiBJZiB5b3UgZG8gbm90IGNvbnNlbnQgdG8gYmVpbmcg
cmVjb3JkZWQsIGRpc2N1c3MgeW91ciBjb25jZXJucyB3aXRoIHRoZSBob3N0IG9yIGRvIG5vdCBq
b2luIHRoZSBzZXNzaW9uLjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvdGQ+DQo8L3RyPg0KPC90
Ym9keT4NCjwvdGFibGU+DQo8L3RkPg0KPC90cj4NCjwvdGJvZHk+DQo8L3RhYmxlPg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQiPiZuYnNwOzwvc3Bh
bj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9ib2R5Pg0KPC9odG1sPg0K

--_000_07363E437C094333A5D5C3864263F7A0ericssoncom_--


From nobody Wed Nov  6 08:54:59 2019
Return-Path: <francesca.palombini@ericsson.com>
X-Original-To: cbor@ietfa.amsl.com
Delivered-To: cbor@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id F25E0120BE8 for <cbor@ietfa.amsl.com>; Wed,  6 Nov 2019 08:54:45 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level: 
X-Spam-Status: No, score=-2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9,  DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_FONT_LOW_CONTRAST=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=ericsson.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id D3tUdOl-oyyu for <cbor@ietfa.amsl.com>; Wed,  6 Nov 2019 08:54:43 -0800 (PST)
Received: from EUR03-DB5-obe.outbound.protection.outlook.com (mail-eopbgr40071.outbound.protection.outlook.com [40.107.4.71]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 8BEAC120921 for <cbor@ietf.org>; Wed,  6 Nov 2019 08:54:42 -0800 (PST)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LW33Z/gMW0+85+S91Imq9V7jT+kI2GMGoBAbouSevdmbQ0oZb+v7TFdmdchpYV6h9oBXTgBuZs0qp3Ro+iQfYpygnMLrnP+T1SR5ObEjPuicFmVdr+a+wqaGzpfjiBiUejiYD8ugt3PaxtlwrtF0CyV65n48JkAOuFZXPRwDsJSfbhhFnWdx31OYuStnbjQDooAO+uncqz7b5xhOEhgYaA7Ju4wsVMQP7sEM3O68r0HVEcUMIw2CcBpcvqcNDm4rIk/aORnl8lhnn2FB7LVUIs2k+yyheQxTCaxAnQv6zm51BqmV5opfYMdc9NtZDbV0Lt0k4ByUVSXunnbQza/DRQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;  s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=X2kbastXi3asUC+zjHCYoJKbOrJFrMA0W7iuaHRg38g=; b=gtsQbzWxiMe+wnJMgQXDid0Aq22Psxl2azMFjz4x8lr/r2B2uuUq4XtkRG4ebL3/AksRKccs3d1o7KbNhwK4xtwchvoL6X3Q4AZ5ygaDdVVqWcTxlMrXmMjYPo1RfDzvKGTrTTY6RSA8Tr8guY72ZTQLlvLkb3SWe5tr/9JLD3juw8SRElstZxCpgiFelFFB/zYIJzSjoXEvpOEWPrOmxcHUAn0awzjejYwTcwgj1CyNqo4D5tXbSRi6MJVu0+D4mq/4X1zwE1Wwc2FiDo8HlNIcIJmJD2tmmu+1kfhpM8igea0ALZU0r4MvWRAWLVCR/cK+2g6mWDoftgqvLKoiPA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=ericsson.com; dmarc=pass action=none header.from=ericsson.com; dkim=pass header.d=ericsson.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ericsson.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=X2kbastXi3asUC+zjHCYoJKbOrJFrMA0W7iuaHRg38g=; b=W3WIOYbiMwKgX2XcC1gzMT6hgotSOlEyLYhIUU0ECmR+VsGv6viUFTv7IZDASU7Q75QoUU+1k6Mtt7uNU1n853xOoPo+GP+R9ODTzoPqbtUoE+sqj7Z2QTCXnJoJrurOu2dzeP4b29J3/Kr1O/LPfV6jcFQpacWYps7YWHqlAVE=
Received: from VI1PR07MB5469.eurprd07.prod.outlook.com (20.178.14.214) by VI1PR07MB3118.eurprd07.prod.outlook.com (10.175.242.156) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2430.16; Wed, 6 Nov 2019 16:54:39 +0000
Received: from VI1PR07MB5469.eurprd07.prod.outlook.com ([fe80::a8d5:a784:a19:5c76]) by VI1PR07MB5469.eurprd07.prod.outlook.com ([fe80::a8d5:a784:a19:5c76%6]) with mapi id 15.20.2430.017; Wed, 6 Nov 2019 16:54:38 +0000
From: Francesca Palombini <francesca.palombini@ericsson.com>
To: "cbor@ietf.org" <cbor@ietf.org>
Thread-Topic: Minutes interim 2019-11-06
Thread-Index: AQHVlMLgs78Sn75mQUep5aB+y0uPGg==
Date: Wed, 6 Nov 2019 16:54:38 +0000
Message-ID: <B99B66EB-A62C-4CD0-8CA0-36462F71973B@ericsson.com>
Accept-Language: en-GB, en-US
Content-Language: en-GB
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: spf=none (sender IP is ) smtp.mailfrom=francesca.palombini@ericsson.com; 
x-originating-ip: [95.192.17.88]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 748e9c7b-21dc-479f-3fe4-08d762da0308
x-ms-traffictypediagnostic: VI1PR07MB3118:
x-ms-exchange-purlcount: 9
x-microsoft-antispam-prvs: <VI1PR07MB311893351826DE35E80854C298790@VI1PR07MB3118.eurprd07.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:8882;
x-forefront-prvs: 02135EB356
x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(346002)(396003)(366004)(376002)(136003)(39860400002)(53754006)(199004)(189003)(497574002)(256004)(8936002)(9326002)(6916009)(102836004)(53546011)(6506007)(14444005)(2501003)(5640700003)(25786009)(1730700003)(81156014)(476003)(2616005)(81166006)(3846002)(16799955002)(33656002)(99286004)(5660300002)(316002)(26005)(186003)(36756003)(6512007)(2906002)(91956017)(76116006)(71200400001)(6116002)(8676002)(486006)(86362001)(44832011)(66476007)(66556008)(64756008)(66446008)(6486002)(6436002)(7736002)(236005)(966005)(606006)(66066001)(6306002)(66946007)(54896002)(71190400001)(14454004)(2351001)(478600001); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR07MB3118; H:VI1PR07MB5469.eurprd07.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; 
received-spf: None (protection.outlook.com: ericsson.com does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 7eML9KgdNAAq11WMzoZGG7RFtw6kiwrvZjBeGpMqZ3piDoKIN2KF/sgZoDIfhDISmnhK5wlgY9PX8mh/G6L53mlgTI3y6FN12Z+XhBMjSgrP2Hmu/ZncxBspyUe3M0r8vxk165HpjqS2OfLrpux6zjLMNHpE6xn9GGNTZONrsAfDfXL3SJSyHuJjNfTrJf8h5hRuLMFCe0UWHk7ZeMq0GAzWGp4nVIOwsBB1tksbaUOEcWFXip1njg0Vt2fo05ajcbaROssysip/J0R4uk7ltppBC7FLEeIb3q5Jpz/0nlWvjw21xSoIEyiNPbTbg4SMgS5+0xyCsYDFcgYxdrbYQWOzhwVf34O23ofL/OnHz+PchYWsx4Y3Yq5LWIYxLj2FlbdsuECwZZgQcY6yaFubI4+t6iu6Z7jB20DoMJBqsLJME2Eb3laVkdBEo+2oTkD1EOJZ6IpiSDJu4E2J9FPFMfbW0V3BhU5ns8WlOJBQPq4=
x-ms-exchange-transport-forked: True
Content-Type: multipart/alternative; boundary="_000_B99B66EBA62C4CD08CA036462F71973Bericssoncom_"
MIME-Version: 1.0
X-OriginatorOrg: ericsson.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 748e9c7b-21dc-479f-3fe4-08d762da0308
X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Nov 2019 16:54:38.5301 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 92e84ceb-fbfd-47ab-be52-080c6b87953f
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 7IEGU0DuZvy0fQoe8DBXWSSTH1qLwjKSa/wevc/onpipeJ1xz2jo6+S1bKfLwWQj8ffD/rZSNxfceTTesAcnmywhXNnaBZeyaKYjhGDeYtWjyPZlQtK8nDRVaXd3tqyO
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR07MB3118
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/8nNUwHxVmb4aB_RBpAQW04muXX4>
Subject: [Cbor] Minutes interim 2019-11-06
X-BeenThere: cbor@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Concise Binary Object Representation \(CBOR\)" <cbor.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cbor>, <mailto:cbor-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cbor/>
List-Post: <mailto:cbor@ietf.org>
List-Help: <mailto:cbor-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cbor>, <mailto:cbor-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 06 Nov 2019 16:54:49 -0000

--_000_B99B66EBA62C4CD08CA036462F71973Bericssoncom_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

SGksDQoNCkhlcmUgYXJlIHRoZSBtaW51dGVzIGZyb20gdG9kYXnigJlzIGludGVyaW06IGh0dHBz
Oi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvbWVldGluZy9pbnRlcmltLTIwMTktY2Jvci0xOS9tYXRl
cmlhbHMvbWludXRlcy1pbnRlcmltLTIwMTktY2Jvci0xOS0yMDE5MTEwNjE2MDANCg0KUmV2aWV3
ZXJzIG9mIENCT1IsIHBsZWFzZSB0YWtlIGEgbW9tZW50IHRvIHJldmlldyB0aGUgdXBkYXRlIENh
cnN0ZW4gbWFkZSwgYW5kIGxldCB1cyBrbm93IG9mIGFueSBjb25jZXJucy9jb21tZW50cy4gRmVl
ZGJhY2sgc3RhdGluZyBubyBjb25jZXJucyBpcyBhbHNvIGFwcHJlY2lhdGVkLiBDdXQgYW5kIHBh
c3RlZCBmcm9tIENhcnN0ZW7igJlzIG1haWw6DQoNClZlcnNpb24gLTA4Og0KaHR0cHM6Ly93d3cu
aWV0Zi5vcmcvcmZjZGlmZj91cmwyPWRyYWZ0LWlldGYtY2Jvci03MDQ5YmlzLTA4DQpDb250YWlu
cyBhbGwgdGhlIGNoYW5nZXMgdGhhdCB3ZSBoYWQgZG9uZSBhYm91dCBhIHdlZWsgYWdvLCBzbyBz
aG91bGQgYmUgcmVsYXRpdmVseSBzdGFibGUuDQoNClZlcnNpb24gLTA5Og0KaHR0cHM6Ly93d3cu
aWV0Zi5vcmcvcmZjZGlmZj91cmwyPWRyYWZ0LWlldGYtY2Jvci03MDQ5YmlzLTA5DQpoYXMgYWxs
IHRoZSBibGVlZGluZyBlZGdlIHN0dWZmIHRoYXQgaGFzIG5vdCBoYWQgYXMgbXVjaCByZXZpZXcu
DQoNClRoZXNlIHdlcmUgc3VibWl0dGVkIHNlcGFyYXRlbHkgc28geW91IGNhbiBsb29rIGF0IHRo
ZSBjaGFuZ2VzIHNlcGFyYXRlbHkuDQoNCk9mIGNvdXJzZSwgaWYgeW91IHdhbnQgdGhlIGZpcmVo
b3NlOg0KaHR0cHM6Ly93d3cuaWV0Zi5vcmcvcmZjZGlmZj91cmwxPWRyYWZ0LWlldGYtY2Jvci03
MDQ5YmlzLTA3JnVybDI9ZHJhZnQtaWV0Zi1jYm9yLTcwNDliaXMtMDkNCg0KDQpTZWUgeW91IGlu
IFNpbmdhcG9yZSwNCkZyYW5jZXNjYQ0KDQpGcm9tOiBDQk9SIDxjYm9yLWJvdW5jZXNAaWV0Zi5v
cmc8bWFpbHRvOmNib3ItYm91bmNlc0BpZXRmLm9yZz4+IG9uIGJlaGFsZiBvZiBGcmFuY2VzY2Eg
UGFsb21iaW5pIDxmcmFuY2VzY2EucGFsb21iaW5pPTQwZXJpY3Nzb24uY29tQGRtYXJjLmlldGYu
b3JnPG1haWx0bzpmcmFuY2VzY2EucGFsb21iaW5pPTQwZXJpY3Nzb24uY29tQGRtYXJjLmlldGYu
b3JnPj4NCkRhdGU6IFdlZG5lc2RheSwgNiBOb3ZlbWJlciAyMDE5IGF0IDEwOjM1DQpUbzogImNi
b3JAaWV0Zi5vcmc8bWFpbHRvOmNib3JAaWV0Zi5vcmc+IiA8Y2JvckBpZXRmLm9yZzxtYWlsdG86
Y2JvckBpZXRmLm9yZz4+DQpDYzogQ2Fyc3RlbiBCb3JtYW5uIDxjYWJvY2Fib0BnbWFpbC5jb208
bWFpbHRvOmNhYm9jYWJvQGdtYWlsLmNvbT4+LCBKaW0gU2NoYWFkIDxpZXRmQGF1Z3VzdGNlbGxh
cnMuY29tPG1haWx0bzppZXRmQGF1Z3VzdGNlbGxhcnMuY29tPj4NClN1YmplY3Q6IFtDYm9yXSBD
Qk9SIEludGVyaW06IDIwMTktMTEtMDYNCg0KSGkgYWxsLA0KDQpUb2RheeKAmXMgaW50ZXJpbSB3
aWxsIHByb2JhYmx5IGJlIGEgc2hvcnQgb25lLCBidXQgSSB3YW50IHRvIGhhdmUgYSBjaGF0IGFu
ZCBzZWUgaWYgYW55Ym9keSB3YXMgYWJsZSB0byByZWFkIHRoZSB1cGRhdGUgb24gQ0JPUiBDYXJz
dGVuIHBvc3RlZCAodGhhbmtzIENhcnN0ZW4hKS4gSWYgc28sIHdlIGNhbiBkaXNjdXNzIGl0LCBv
dGhlcndpc2UgSSBvbmx5IGhhdmUgYSBjb3VwbGUgb2YgcXVpY2sgaXRlbXMgb24gdGhlIGFnZW5k
YSAoYWdlbmRhIHNsb3RzIGluIFNpbmdhcG9yZSwgYW5kIENEREwgY29udGludWVkKS4gSSBkb27i
gJl0IHRoaW5rIHdl4oCZbGwgdGFrZSB0aGUgZnVsbCBob3VyLg0KDQoNCldlYmV4OiBodHRwczov
L2lldGYud2ViZXguY29tL2lldGYvai5waHA/TVRJRD1tMTIzN2E5ODEyNDExMWRlM2E0YzRlNjFk
ZmFjYTA1ZDUNCkFnZW5kYTogaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9tZWV0aW5nL2lu
dGVyaW0tMjAxOS1jYm9yLTE5L21hdGVyaWFscy9hZ2VuZGEtaW50ZXJpbS0yMDE5LWNib3ItMTkt
c2Vzc2ENClRpbWU6IGh0dHBzOi8vd3d3LndvcmxkdGltZWJ1ZGR5LmNvbS8/cW09MSZsaWQ9MTIs
MTAwLDUsOCZoPTEwMCZkYXRlPTIwMTktMTEtMDYmc2xuPTE2LTE3DQoNCg0KVGFsayB0byB5b3Ug
bGF0ZXIsDQpGcmFuY2VzY2ENCg0KDQoNCkhlbGxvLA0KQ0JPUiBXb3JraW5nIEdyb3VwIGludml0
ZXMgeW91IHRvIGpvaW4gdGhpcyBXZWJleCBtZWV0aW5nLg0KDQoNCg0KQ0JPUiBXRyBDb25mZXJl
bmNlIENhbGwNCk9jY3VycyBldmVyeSAyIHdlZWsocykgb24gV2VkbmVzZGF5IGVmZmVjdGl2ZSBX
ZWRuZXNkYXksIE1heSAyMiwgMjAxOSB1bnRpbCBXZWRuZXNkYXksIE5vdmVtYmVyIDYsIDIwMTkg
ZnJvbSA1OjAwIFBNIHRvIDY6MDAgUE0sIChVVEMrMDE6MDApIEFtc3RlcmRhbSwgQmVybGluLCBC
ZXJuLCBSb21lLCBTdG9ja2hvbG0sIFZpZW5uYQ0KNTowMCBwbSAgfCAgRXVyb3BlIFN1bW1lciBU
aW1lIChBbXN0ZXJkYW0sIEdNVCswMjowMCkgIHwgIDEgaHINCg0KTWVldGluZyBudW1iZXIgKGFj
Y2VzcyBjb2RlKTogNjQxIDc2MCAxNTcNCg0KTWVldGluZyBwYXNzd29yZDogVVBBdDlyQm4NCg0K
DQoNCkFkZCB0byBDYWxlbmRhcjxodHRwczovL2lldGYud2ViZXguY29tL2lldGYvai5waHA/TVRJ
RD1tMWQwNjM2MDY5YTI4YmQ3YzhjYzA5MGU3NDE1NjVjOGM+DQpXaGVuIGl0J3MgdGltZSwgam9p
biB0aGUgbWVldGluZzxodHRwczovL2lldGYud2ViZXguY29tL2lldGYvai5waHA/TVRJRD1tMTIz
N2E5ODEyNDExMWRlM2E0YzRlNjFkZmFjYTA1ZDU+Lg0KDQoNCg0KSm9pbiBieSBwaG9uZQ0KMS02
NTAtNDc5LTMyMDg8dGVsOiUyQjEtNjUwLTQ3OS0zMjA4LCwqMDEqNjQxNzYwMTU3JTIzJTIzKjAx
Kj4gQ2FsbC1pbiB0b2xsIG51bWJlciAoVVMvQ2FuYWRhKQ0KDQoNCg0KQ2FuJ3Qgam9pbiB0aGUg
bWVldGluZz88aHR0cHM6Ly9jb2xsYWJvcmF0aW9uaGVscC5jaXNjby5jb20vYXJ0aWNsZS9XQlgw
MDAwMjkwNTU+DQoNCg0KDQpJTVBPUlRBTlQgTk9USUNFOiBQbGVhc2Ugbm90ZSB0aGF0IHRoaXMg
V2ViZXggc2VydmljZSBhbGxvd3MgYXVkaW8gYW5kIG90aGVyIGluZm9ybWF0aW9uIHNlbnQgZHVy
aW5nIHRoZSBzZXNzaW9uIHRvIGJlIHJlY29yZGVkLCB3aGljaCBtYXkgYmUgZGlzY292ZXJhYmxl
IGluIGEgbGVnYWwgbWF0dGVyLiBCeSBqb2luaW5nIHRoaXMgc2Vzc2lvbiwgeW91IGF1dG9tYXRp
Y2FsbHkgY29uc2VudCB0byBzdWNoIHJlY29yZGluZ3MuIElmIHlvdSBkbyBub3QgY29uc2VudCB0
byBiZWluZyByZWNvcmRlZCwgZGlzY3VzcyB5b3VyIGNvbmNlcm5zIHdpdGggdGhlIGhvc3Qgb3Ig
ZG8gbm90IGpvaW4gdGhlIHNlc3Npb24uDQoNCg0K

--_000_B99B66EBA62C4CD08CA036462F71973Bericssoncom_
Content-Type: text/html; charset="utf-8"
Content-ID: <035E885C0DB15C41B8566320B9C5B12E@eurprd07.prod.outlook.com>
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6bz0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6b2ZmaWNlIiB4
bWxuczp3PSJ1cm46c2NoZW1hcy1taWNyb3NvZnQtY29tOm9mZmljZTp3b3JkIiB4bWxuczptPSJo
dHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS8yMDA0LzEyL29tbWwiIHhtbG5zPSJo
dHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwIj4NCjxoZWFkPg0KPG1ldGEgaHR0cC1lcXVp
dj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPg0KPG1l
dGEgbmFtZT0iR2VuZXJhdG9yIiBjb250ZW50PSJNaWNyb3NvZnQgV29yZCAxNSAoZmlsdGVyZWQg
bWVkaXVtKSI+DQo8c3R5bGU+PCEtLQ0KLyogRm9udCBEZWZpbml0aW9ucyAqLw0KQGZvbnQtZmFj
ZQ0KCXtmb250LWZhbWlseToiQ2FtYnJpYSBNYXRoIjsNCglwYW5vc2UtMToyIDQgNSAzIDUgNCA2
IDMgMiA0O30NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6Q2FsaWJyaTsNCglwYW5vc2UtMToy
IDE1IDUgMiAyIDIgNCAzIDIgNDt9DQpAZm9udC1mYWNlDQoJe2ZvbnQtZmFtaWx5Oi13ZWJraXQt
c3RhbmRhcmQ7DQoJcGFub3NlLTE6MiAxMSA2IDQgMiAyIDIgMiAyIDQ7fQ0KLyogU3R5bGUgRGVm
aW5pdGlvbnMgKi8NCnAuTXNvTm9ybWFsLCBsaS5Nc29Ob3JtYWwsIGRpdi5Nc29Ob3JtYWwNCgl7
bWFyZ2luOjBjbTsNCgltYXJnaW4tYm90dG9tOi4wMDAxcHQ7DQoJZm9udC1zaXplOjEyLjBwdDsN
Cglmb250LWZhbWlseToiQ2FsaWJyaSIsc2Fucy1zZXJpZjsNCgltc28tZmFyZWFzdC1sYW5ndWFn
ZTpFTi1VUzt9DQphOmxpbmssIHNwYW4uTXNvSHlwZXJsaW5rDQoJe21zby1zdHlsZS1wcmlvcml0
eTo5OTsNCgljb2xvcjojMDU2M0MxOw0KCXRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fQ0KYTp2
aXNpdGVkLCBzcGFuLk1zb0h5cGVybGlua0ZvbGxvd2VkDQoJe21zby1zdHlsZS1wcmlvcml0eTo5
OTsNCgljb2xvcjojOTU0RjcyOw0KCXRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fQ0Kc3Bhbi5F
bWFpbFN0eWxlMTcNCgl7bXNvLXN0eWxlLXR5cGU6cGVyc29uYWwtY29tcG9zZTsNCglmb250LWZh
bWlseToiQ2FsaWJyaSIsc2Fucy1zZXJpZjsNCgljb2xvcjp3aW5kb3d0ZXh0O30NCnNwYW4uYXBw
bGUtY29udmVydGVkLXNwYWNlDQoJe21zby1zdHlsZS1uYW1lOmFwcGxlLWNvbnZlcnRlZC1zcGFj
ZTt9DQouTXNvQ2hwRGVmYXVsdA0KCXttc28tc3R5bGUtdHlwZTpleHBvcnQtb25seTsNCglmb250
LWZhbWlseToiQ2FsaWJyaSIsc2Fucy1zZXJpZjsNCgltc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1V
Uzt9DQpAcGFnZSBXb3JkU2VjdGlvbjENCgl7c2l6ZTo2MTIuMHB0IDc5Mi4wcHQ7DQoJbWFyZ2lu
OjcyLjBwdCA3Mi4wcHQgNzIuMHB0IDcyLjBwdDt9DQpkaXYuV29yZFNlY3Rpb24xDQoJe3BhZ2U6
V29yZFNlY3Rpb24xO30NCi0tPjwvc3R5bGU+DQo8L2hlYWQ+DQo8Ym9keSBsYW5nPSJFTi1HQiIg
bGluaz0iIzA1NjNDMSIgdmxpbms9IiM5NTRGNzIiPg0KPGRpdiBjbGFzcz0iV29yZFNlY3Rpb24x
Ij4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJjb2xvcjpibGFjayI+SGksPG86
cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9ImNhcmV0LWNv
bG9yOiByZ2IoMCwgMCwgMCk7Zm9udC12YXJpYW50LWNhcHM6IG5vcm1hbDtvcnBoYW5zOiBhdXRv
O3RleHQtYWxpZ246c3RhcnQ7d2lkb3dzOiBhdXRvOy13ZWJraXQtdGV4dC1zaXplLWFkanVzdDog
YXV0bzstd2Via2l0LXRleHQtc3Ryb2tlLXdpZHRoOiAwcHg7d29yZC1zcGFjaW5nOjBweCI+DQo8
c3BhbiBzdHlsZT0iY29sb3I6YmxhY2siPiZuYnNwOzxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJjYXJldC1jb2xvcjogcmdiKDAsIDAsIDApO2ZvbnQt
dmFyaWFudC1jYXBzOiBub3JtYWw7b3JwaGFuczogYXV0bzt0ZXh0LWFsaWduOnN0YXJ0O3dpZG93
czogYXV0bzstd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IGF1dG87LXdlYmtpdC10ZXh0LXN0cm9r
ZS13aWR0aDogMHB4O3dvcmQtc3BhY2luZzowcHgiPg0KPHNwYW4gc3R5bGU9ImNvbG9yOmJsYWNr
Ij5IZXJlIGFyZSB0aGUgbWludXRlcyBmcm9tIHRvZGF54oCZcyBpbnRlcmltOjxzcGFuIGNsYXNz
PSJhcHBsZS1jb252ZXJ0ZWQtc3BhY2UiPiZuYnNwOzwvc3Bhbj48YSBocmVmPSJodHRwczovL2Rh
dGF0cmFja2VyLmlldGYub3JnL21lZXRpbmcvaW50ZXJpbS0yMDE5LWNib3ItMTkvbWF0ZXJpYWxz
L21pbnV0ZXMtaW50ZXJpbS0yMDE5LWNib3ItMTktMjAxOTExMDYxNjAwIj48c3BhbiBzdHlsZT0i
Y29sb3I6Izk1NEY3MiI+aHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9tZWV0aW5nL2ludGVy
aW0tMjAxOS1jYm9yLTE5L21hdGVyaWFscy9taW51dGVzLWludGVyaW0tMjAxOS1jYm9yLTE5LTIw
MTkxMTA2MTYwMDwvc3Bhbj48L2E+PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCIgc3R5bGU9ImNhcmV0LWNvbG9yOiByZ2IoMCwgMCwgMCk7Zm9udC12YXJpYW50LWNh
cHM6IG5vcm1hbDtvcnBoYW5zOiBhdXRvO3RleHQtYWxpZ246c3RhcnQ7d2lkb3dzOiBhdXRvOy13
ZWJraXQtdGV4dC1zaXplLWFkanVzdDogYXV0bzstd2Via2l0LXRleHQtc3Ryb2tlLXdpZHRoOiAw
cHg7d29yZC1zcGFjaW5nOjBweCI+DQo8c3BhbiBzdHlsZT0iY29sb3I6YmxhY2siPiZuYnNwOzxv
OnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJjYXJldC1j
b2xvcjogcmdiKDAsIDAsIDApO2ZvbnQtdmFyaWFudC1jYXBzOiBub3JtYWw7b3JwaGFuczogYXV0
bzt0ZXh0LWFsaWduOnN0YXJ0O3dpZG93czogYXV0bzstd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6
IGF1dG87LXdlYmtpdC10ZXh0LXN0cm9rZS13aWR0aDogMHB4O3dvcmQtc3BhY2luZzowcHgiPg0K
PHNwYW4gc3R5bGU9ImNvbG9yOmJsYWNrIj5SZXZpZXdlcnMgb2YgQ0JPUiwgcGxlYXNlIHRha2Ug
YSBtb21lbnQgdG8gcmV2aWV3IHRoZSB1cGRhdGUgQ2Fyc3RlbiBtYWRlLCBhbmQgbGV0IHVzIGtu
b3cgb2YgYW55IGNvbmNlcm5zL2NvbW1lbnRzLiBGZWVkYmFjayBzdGF0aW5nIG5vIGNvbmNlcm5z
IGlzIGFsc28gYXBwcmVjaWF0ZWQuIEN1dCBhbmQgcGFzdGVkIGZyb20gQ2Fyc3RlbuKAmXMgbWFp
bDo8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0iY2Fy
ZXQtY29sb3I6IHJnYigwLCAwLCAwKTtmb250LXZhcmlhbnQtY2Fwczogbm9ybWFsO29ycGhhbnM6
IGF1dG87dGV4dC1hbGlnbjpzdGFydDt3aWRvd3M6IGF1dG87LXdlYmtpdC10ZXh0LXNpemUtYWRq
dXN0OiBhdXRvOy13ZWJraXQtdGV4dC1zdHJva2Utd2lkdGg6IDBweDt3b3JkLXNwYWNpbmc6MHB4
Ij4NCjxzcGFuIHN0eWxlPSJjb2xvcjpibGFjayI+Jm5ic3A7PG86cD48L286cD48L3NwYW4+PC9w
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9ImNhcmV0LWNvbG9yOiByZ2IoMCwgMCwgMCk7
Zm9udC12YXJpYW50LWNhcHM6IG5vcm1hbDtvcnBoYW5zOiBhdXRvO3RleHQtYWxpZ246c3RhcnQ7
d2lkb3dzOiBhdXRvOy13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogYXV0bzstd2Via2l0LXRleHQt
c3Ryb2tlLXdpZHRoOiAwcHg7d29yZC1zcGFjaW5nOjBweCI+DQo8c3BhbiBzdHlsZT0iY29sb3I6
YmxhY2siPlZlcnNpb24gLTA4OjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiIHN0eWxlPSJjYXJldC1jb2xvcjogcmdiKDAsIDAsIDApO2ZvbnQtdmFyaWFudC1jYXBz
OiBub3JtYWw7b3JwaGFuczogYXV0bzt0ZXh0LWFsaWduOnN0YXJ0O3dpZG93czogYXV0bzstd2Vi
a2l0LXRleHQtc2l6ZS1hZGp1c3Q6IGF1dG87LXdlYmtpdC10ZXh0LXN0cm9rZS13aWR0aDogMHB4
O3dvcmQtc3BhY2luZzowcHgiPg0KPHNwYW4gc3R5bGU9ImNvbG9yOmJsYWNrIj48YSBocmVmPSJo
dHRwczovL3d3dy5pZXRmLm9yZy9yZmNkaWZmP3VybDI9ZHJhZnQtaWV0Zi1jYm9yLTcwNDliaXMt
MDgiIHRpdGxlPSJodHRwczovL3d3dy5pZXRmLm9yZy9yZmNkaWZmP3VybDI9ZHJhZnQtaWV0Zi1j
Ym9yLTcwNDliaXMtMDgiPjxzcGFuIHN0eWxlPSJjb2xvcjojOTU0RjcyIj5odHRwczovL3d3dy5p
ZXRmLm9yZy9yZmNkaWZmP3VybDI9ZHJhZnQtaWV0Zi1jYm9yLTcwNDliaXMtMDg8L3NwYW4+PC9h
PjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJjYXJl
dC1jb2xvcjogcmdiKDAsIDAsIDApO2ZvbnQtdmFyaWFudC1jYXBzOiBub3JtYWw7b3JwaGFuczog
YXV0bzt0ZXh0LWFsaWduOnN0YXJ0O3dpZG93czogYXV0bzstd2Via2l0LXRleHQtc2l6ZS1hZGp1
c3Q6IGF1dG87LXdlYmtpdC10ZXh0LXN0cm9rZS13aWR0aDogMHB4O3dvcmQtc3BhY2luZzowcHgi
Pg0KPHNwYW4gc3R5bGU9ImNvbG9yOmJsYWNrIj5Db250YWlucyBhbGwgdGhlIGNoYW5nZXMgdGhh
dCB3ZSBoYWQgZG9uZSBhYm91dCBhIHdlZWsgYWdvLCBzbyBzaG91bGQgYmUgcmVsYXRpdmVseSBz
dGFibGUuPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9
ImNhcmV0LWNvbG9yOiByZ2IoMCwgMCwgMCk7Zm9udC12YXJpYW50LWNhcHM6IG5vcm1hbDtvcnBo
YW5zOiBhdXRvO3RleHQtYWxpZ246c3RhcnQ7d2lkb3dzOiBhdXRvOy13ZWJraXQtdGV4dC1zaXpl
LWFkanVzdDogYXV0bzstd2Via2l0LXRleHQtc3Ryb2tlLXdpZHRoOiAwcHg7d29yZC1zcGFjaW5n
OjBweCI+DQo8c3BhbiBzdHlsZT0iY29sb3I6YmxhY2siPiZuYnNwOzxvOnA+PC9vOnA+PC9zcGFu
PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJjYXJldC1jb2xvcjogcmdiKDAsIDAs
IDApO2ZvbnQtdmFyaWFudC1jYXBzOiBub3JtYWw7b3JwaGFuczogYXV0bzt0ZXh0LWFsaWduOnN0
YXJ0O3dpZG93czogYXV0bzstd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IGF1dG87LXdlYmtpdC10
ZXh0LXN0cm9rZS13aWR0aDogMHB4O3dvcmQtc3BhY2luZzowcHgiPg0KPHNwYW4gc3R5bGU9ImNv
bG9yOmJsYWNrIj5WZXJzaW9uIC0wOTo8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIiBzdHlsZT0iY2FyZXQtY29sb3I6IHJnYigwLCAwLCAwKTtmb250LXZhcmlhbnQt
Y2Fwczogbm9ybWFsO29ycGhhbnM6IGF1dG87dGV4dC1hbGlnbjpzdGFydDt3aWRvd3M6IGF1dG87
LXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiBhdXRvOy13ZWJraXQtdGV4dC1zdHJva2Utd2lkdGg6
IDBweDt3b3JkLXNwYWNpbmc6MHB4Ij4NCjxzcGFuIHN0eWxlPSJjb2xvcjpibGFjayI+PGEgaHJl
Zj0iaHR0cHM6Ly93d3cuaWV0Zi5vcmcvcmZjZGlmZj91cmwyPWRyYWZ0LWlldGYtY2Jvci03MDQ5
YmlzLTA5IiB0aXRsZT0iaHR0cHM6Ly93d3cuaWV0Zi5vcmcvcmZjZGlmZj91cmwyPWRyYWZ0LWll
dGYtY2Jvci03MDQ5YmlzLTA5Ij48c3BhbiBzdHlsZT0iY29sb3I6Izk1NEY3MiI+aHR0cHM6Ly93
d3cuaWV0Zi5vcmcvcmZjZGlmZj91cmwyPWRyYWZ0LWlldGYtY2Jvci03MDQ5YmlzLTA5PC9zcGFu
PjwvYT48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0i
Y2FyZXQtY29sb3I6IHJnYigwLCAwLCAwKTtmb250LXZhcmlhbnQtY2Fwczogbm9ybWFsO29ycGhh
bnM6IGF1dG87dGV4dC1hbGlnbjpzdGFydDt3aWRvd3M6IGF1dG87LXdlYmtpdC10ZXh0LXNpemUt
YWRqdXN0OiBhdXRvOy13ZWJraXQtdGV4dC1zdHJva2Utd2lkdGg6IDBweDt3b3JkLXNwYWNpbmc6
MHB4Ij4NCjxzcGFuIHN0eWxlPSJjb2xvcjpibGFjayI+aGFzIGFsbCB0aGUgYmxlZWRpbmcgZWRn
ZSBzdHVmZiB0aGF0IGhhcyBub3QgaGFkIGFzIG11Y2ggcmV2aWV3LjxvOnA+PC9vOnA+PC9zcGFu
PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJjYXJldC1jb2xvcjogcmdiKDAsIDAs
IDApO2ZvbnQtdmFyaWFudC1jYXBzOiBub3JtYWw7b3JwaGFuczogYXV0bzt0ZXh0LWFsaWduOnN0
YXJ0O3dpZG93czogYXV0bzstd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IGF1dG87LXdlYmtpdC10
ZXh0LXN0cm9rZS13aWR0aDogMHB4O3dvcmQtc3BhY2luZzowcHgiPg0KPHNwYW4gc3R5bGU9ImNv
bG9yOmJsYWNrIj4mbmJzcDs8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIiBzdHlsZT0iY2FyZXQtY29sb3I6IHJnYigwLCAwLCAwKTtmb250LXZhcmlhbnQtY2Fwczog
bm9ybWFsO29ycGhhbnM6IGF1dG87dGV4dC1hbGlnbjpzdGFydDt3aWRvd3M6IGF1dG87LXdlYmtp
dC10ZXh0LXNpemUtYWRqdXN0OiBhdXRvOy13ZWJraXQtdGV4dC1zdHJva2Utd2lkdGg6IDBweDt3
b3JkLXNwYWNpbmc6MHB4Ij4NCjxzcGFuIHN0eWxlPSJjb2xvcjpibGFjayI+VGhlc2Ugd2VyZSBz
dWJtaXR0ZWQgc2VwYXJhdGVseSBzbyB5b3UgY2FuIGxvb2sgYXQgdGhlIGNoYW5nZXMgc2VwYXJh
dGVseS48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0i
Y2FyZXQtY29sb3I6IHJnYigwLCAwLCAwKTtmb250LXZhcmlhbnQtY2Fwczogbm9ybWFsO29ycGhh
bnM6IGF1dG87dGV4dC1hbGlnbjpzdGFydDt3aWRvd3M6IGF1dG87LXdlYmtpdC10ZXh0LXNpemUt
YWRqdXN0OiBhdXRvOy13ZWJraXQtdGV4dC1zdHJva2Utd2lkdGg6IDBweDt3b3JkLXNwYWNpbmc6
MHB4Ij4NCjxzcGFuIHN0eWxlPSJjb2xvcjpibGFjayI+Jm5ic3A7PG86cD48L286cD48L3NwYW4+
PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9ImNhcmV0LWNvbG9yOiByZ2IoMCwgMCwg
MCk7Zm9udC12YXJpYW50LWNhcHM6IG5vcm1hbDtvcnBoYW5zOiBhdXRvO3RleHQtYWxpZ246c3Rh
cnQ7d2lkb3dzOiBhdXRvOy13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogYXV0bzstd2Via2l0LXRl
eHQtc3Ryb2tlLXdpZHRoOiAwcHg7d29yZC1zcGFjaW5nOjBweCI+DQo8c3BhbiBzdHlsZT0iY29s
b3I6YmxhY2siPk9mIGNvdXJzZSwgaWYgeW91IHdhbnQgdGhlIGZpcmVob3NlOjxvOnA+PC9vOnA+
PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJjYXJldC1jb2xvcjogcmdi
KDAsIDAsIDApO2ZvbnQtdmFyaWFudC1jYXBzOiBub3JtYWw7b3JwaGFuczogYXV0bzt0ZXh0LWFs
aWduOnN0YXJ0O3dpZG93czogYXV0bzstd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IGF1dG87LXdl
YmtpdC10ZXh0LXN0cm9rZS13aWR0aDogMHB4O3dvcmQtc3BhY2luZzowcHgiPg0KPHNwYW4gc3R5
bGU9ImNvbG9yOmJsYWNrIj48YSBocmVmPSJodHRwczovL3d3dy5pZXRmLm9yZy9yZmNkaWZmP3Vy
bDE9ZHJhZnQtaWV0Zi1jYm9yLTcwNDliaXMtMDcmYW1wO3VybDI9ZHJhZnQtaWV0Zi1jYm9yLTcw
NDliaXMtMDkiPjxzcGFuIHN0eWxlPSJjb2xvcjojOTU0RjcyIj5odHRwczovL3d3dy5pZXRmLm9y
Zy9yZmNkaWZmP3VybDE9ZHJhZnQtaWV0Zi1jYm9yLTcwNDliaXMtMDcmYW1wO3VybDI9ZHJhZnQt
aWV0Zi1jYm9yLTcwNDliaXMtMDk8L3NwYW4+PC9hPjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJjYXJldC1jb2xvcjogcmdiKDAsIDAsIDApO2ZvbnQt
dmFyaWFudC1jYXBzOiBub3JtYWw7b3JwaGFuczogYXV0bzt0ZXh0LWFsaWduOnN0YXJ0O3dpZG93
czogYXV0bzstd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IGF1dG87LXdlYmtpdC10ZXh0LXN0cm9r
ZS13aWR0aDogMHB4O3dvcmQtc3BhY2luZzowcHgiPg0KPHNwYW4gc3R5bGU9ImNvbG9yOmJsYWNr
Ij4mbmJzcDs8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHls
ZT0iY2FyZXQtY29sb3I6IHJnYigwLCAwLCAwKTtmb250LXZhcmlhbnQtY2Fwczogbm9ybWFsO29y
cGhhbnM6IGF1dG87dGV4dC1hbGlnbjpzdGFydDt3aWRvd3M6IGF1dG87LXdlYmtpdC10ZXh0LXNp
emUtYWRqdXN0OiBhdXRvOy13ZWJraXQtdGV4dC1zdHJva2Utd2lkdGg6IDBweDt3b3JkLXNwYWNp
bmc6MHB4Ij4NCjxzcGFuIHN0eWxlPSJjb2xvcjpibGFjayI+Jm5ic3A7PG86cD48L286cD48L3Nw
YW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9ImNhcmV0LWNvbG9yOiByZ2IoMCwg
MCwgMCk7Zm9udC12YXJpYW50LWNhcHM6IG5vcm1hbDtvcnBoYW5zOiBhdXRvO3RleHQtYWxpZ246
c3RhcnQ7d2lkb3dzOiBhdXRvOy13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogYXV0bzstd2Via2l0
LXRleHQtc3Ryb2tlLXdpZHRoOiAwcHg7d29yZC1zcGFjaW5nOjBweCI+DQo8c3BhbiBzdHlsZT0i
Y29sb3I6YmxhY2siPlNlZSB5b3UgaW4gU2luZ2Fwb3JlLDxicj4NCkZyYW5jZXNjYTxvOnA+PC9v
OnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJjYXJldC1jb2xvcjog
cmdiKDAsIDAsIDApO2ZvbnQtdmFyaWFudC1jYXBzOiBub3JtYWw7b3JwaGFuczogYXV0bzt0ZXh0
LWFsaWduOnN0YXJ0O3dpZG93czogYXV0bzstd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IGF1dG87
LXdlYmtpdC10ZXh0LXN0cm9rZS13aWR0aDogMHB4O3dvcmQtc3BhY2luZzowcHgiPg0KPHNwYW4g
c3R5bGU9ImNvbG9yOmJsYWNrIj4mbmJzcDs8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIj48Yj48c3BhbiBzdHlsZT0iY29sb3I6YmxhY2siPkZyb206PHNwYW4gY2xh
c3M9ImFwcGxlLWNvbnZlcnRlZC1zcGFjZSI+Jm5ic3A7PC9zcGFuPjwvc3Bhbj48L2I+PHNwYW4g
c3R5bGU9ImNvbG9yOmJsYWNrIj5DQk9SICZsdDs8YSBocmVmPSJtYWlsdG86Y2Jvci1ib3VuY2Vz
QGlldGYub3JnIj48c3BhbiBzdHlsZT0iY29sb3I6Izk1NEY3MiI+Y2Jvci1ib3VuY2VzQGlldGYu
b3JnPC9zcGFuPjwvYT4mZ3Q7IG9uIGJlaGFsZiBvZiBGcmFuY2VzY2ENCiBQYWxvbWJpbmkgJmx0
OzxhIGhyZWY9Im1haWx0bzpmcmFuY2VzY2EucGFsb21iaW5pPTQwZXJpY3Nzb24uY29tQGRtYXJj
LmlldGYub3JnIj48c3BhbiBzdHlsZT0iY29sb3I6Izk1NEY3MiI+ZnJhbmNlc2NhLnBhbG9tYmlu
aT00MGVyaWNzc29uLmNvbUBkbWFyYy5pZXRmLm9yZzwvc3Bhbj48L2E+Jmd0Ozxicj4NCjxiPkRh
dGU6PHNwYW4gY2xhc3M9ImFwcGxlLWNvbnZlcnRlZC1zcGFjZSI+Jm5ic3A7PC9zcGFuPjwvYj5X
ZWRuZXNkYXksIDYgTm92ZW1iZXIgMjAxOSBhdCAxMDozNTxicj4NCjxiPlRvOjxzcGFuIGNsYXNz
PSJhcHBsZS1jb252ZXJ0ZWQtc3BhY2UiPiZuYnNwOzwvc3Bhbj48L2I+JnF1b3Q7PGEgaHJlZj0i
bWFpbHRvOmNib3JAaWV0Zi5vcmciPjxzcGFuIHN0eWxlPSJjb2xvcjojOTU0RjcyIj5jYm9yQGll
dGYub3JnPC9zcGFuPjwvYT4mcXVvdDsgJmx0OzxhIGhyZWY9Im1haWx0bzpjYm9yQGlldGYub3Jn
Ij48c3BhbiBzdHlsZT0iY29sb3I6Izk1NEY3MiI+Y2JvckBpZXRmLm9yZzwvc3Bhbj48L2E+Jmd0
Ozxicj4NCjxiPkNjOjxzcGFuIGNsYXNzPSJhcHBsZS1jb252ZXJ0ZWQtc3BhY2UiPiZuYnNwOzwv
c3Bhbj48L2I+Q2Fyc3RlbiBCb3JtYW5uICZsdDs8YSBocmVmPSJtYWlsdG86Y2Fib2NhYm9AZ21h
aWwuY29tIj48c3BhbiBzdHlsZT0iY29sb3I6Izk1NEY3MiI+Y2Fib2NhYm9AZ21haWwuY29tPC9z
cGFuPjwvYT4mZ3Q7LCBKaW0gU2NoYWFkICZsdDs8YSBocmVmPSJtYWlsdG86aWV0ZkBhdWd1c3Rj
ZWxsYXJzLmNvbSI+PHNwYW4gc3R5bGU9ImNvbG9yOiM5NTRGNzIiPmlldGZAYXVndXN0Y2VsbGFy
cy5jb208L3NwYW4+PC9hPiZndDs8YnI+DQo8Yj5TdWJqZWN0OjxzcGFuIGNsYXNzPSJhcHBsZS1j
b252ZXJ0ZWQtc3BhY2UiPiZuYnNwOzwvc3Bhbj48L2I+W0Nib3JdIENCT1IgSW50ZXJpbTogMjAx
OS0xMS0wNjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFu
IHN0eWxlPSJjb2xvcjpibGFjayI+Jm5ic3A7PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCIgc3R5bGU9ImNhcmV0LWNvbG9yOiByZ2IoMCwgMCwgMCk7Zm9udC12YXJp
YW50LWNhcHM6IG5vcm1hbDtvcnBoYW5zOiBhdXRvO3RleHQtYWxpZ246c3RhcnQ7d2lkb3dzOiBh
dXRvOy13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogYXV0bzstd2Via2l0LXRleHQtc3Ryb2tlLXdp
ZHRoOiAwcHg7d29yZC1zcGFjaW5nOjBweCI+DQo8c3BhbiBzdHlsZT0iY29sb3I6YmxhY2siPkhp
IGFsbCw8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0i
Y2FyZXQtY29sb3I6IHJnYigwLCAwLCAwKTtmb250LXZhcmlhbnQtY2Fwczogbm9ybWFsO29ycGhh
bnM6IGF1dG87dGV4dC1hbGlnbjpzdGFydDt3aWRvd3M6IGF1dG87LXdlYmtpdC10ZXh0LXNpemUt
YWRqdXN0OiBhdXRvOy13ZWJraXQtdGV4dC1zdHJva2Utd2lkdGg6IDBweDt3b3JkLXNwYWNpbmc6
MHB4Ij4NCjxzcGFuIHN0eWxlPSJjb2xvcjpibGFjayI+Jm5ic3A7PG86cD48L286cD48L3NwYW4+
PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9ImNhcmV0LWNvbG9yOiByZ2IoMCwgMCwg
MCk7Zm9udC12YXJpYW50LWNhcHM6IG5vcm1hbDtvcnBoYW5zOiBhdXRvO3RleHQtYWxpZ246c3Rh
cnQ7d2lkb3dzOiBhdXRvOy13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogYXV0bzstd2Via2l0LXRl
eHQtc3Ryb2tlLXdpZHRoOiAwcHg7d29yZC1zcGFjaW5nOjBweCI+DQo8c3BhbiBzdHlsZT0iY29s
b3I6YmxhY2siPlRvZGF54oCZcyBpbnRlcmltIHdpbGwgcHJvYmFibHkgYmUgYSBzaG9ydCBvbmUs
IGJ1dCBJIHdhbnQgdG8gaGF2ZSBhIGNoYXQgYW5kIHNlZSBpZiBhbnlib2R5IHdhcyBhYmxlIHRv
IHJlYWQgdGhlIHVwZGF0ZSBvbiBDQk9SIENhcnN0ZW4gcG9zdGVkICh0aGFua3MgQ2Fyc3RlbiEp
LiBJZiBzbywgd2UgY2FuIGRpc2N1c3MgaXQsIG90aGVyd2lzZSBJIG9ubHkgaGF2ZSBhIGNvdXBs
ZSBvZiBxdWljayBpdGVtcw0KIG9uIHRoZSBhZ2VuZGEgKGFnZW5kYSBzbG90cyBpbiBTaW5nYXBv
cmUsIGFuZCBDRERMIGNvbnRpbnVlZCkuIEkgZG9u4oCZdCB0aGluayB3ZeKAmWxsIHRha2UgdGhl
IGZ1bGwgaG91ci48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBz
dHlsZT0iY2FyZXQtY29sb3I6IHJnYigwLCAwLCAwKTtmb250LXZhcmlhbnQtY2Fwczogbm9ybWFs
O29ycGhhbnM6IGF1dG87dGV4dC1hbGlnbjpzdGFydDt3aWRvd3M6IGF1dG87LXdlYmtpdC10ZXh0
LXNpemUtYWRqdXN0OiBhdXRvOy13ZWJraXQtdGV4dC1zdHJva2Utd2lkdGg6IDBweDt3b3JkLXNw
YWNpbmc6MHB4Ij4NCjxzcGFuIHN0eWxlPSJjb2xvcjpibGFjayI+Jm5ic3A7PG86cD48L286cD48
L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9ImNhcmV0LWNvbG9yOiByZ2Io
MCwgMCwgMCk7Zm9udC12YXJpYW50LWNhcHM6IG5vcm1hbDtvcnBoYW5zOiBhdXRvO3RleHQtYWxp
Z246c3RhcnQ7d2lkb3dzOiBhdXRvOy13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogYXV0bzstd2Vi
a2l0LXRleHQtc3Ryb2tlLXdpZHRoOiAwcHg7d29yZC1zcGFjaW5nOjBweCI+DQo8c3BhbiBzdHls
ZT0iY29sb3I6YmxhY2siPiZuYnNwOzxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiIHN0eWxlPSJjYXJldC1jb2xvcjogcmdiKDAsIDAsIDApO2ZvbnQtdmFyaWFudC1j
YXBzOiBub3JtYWw7b3JwaGFuczogYXV0bzt0ZXh0LWFsaWduOnN0YXJ0O3dpZG93czogYXV0bzst
d2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IGF1dG87LXdlYmtpdC10ZXh0LXN0cm9rZS13aWR0aDog
MHB4O3dvcmQtc3BhY2luZzowcHgiPg0KPHNwYW4gc3R5bGU9ImNvbG9yOmJsYWNrIj5XZWJleDo8
c3BhbiBjbGFzcz0iYXBwbGUtY29udmVydGVkLXNwYWNlIj4mbmJzcDs8L3NwYW4+PGEgaHJlZj0i
aHR0cHM6Ly9pZXRmLndlYmV4LmNvbS9pZXRmL2oucGhwP01USUQ9bTEyMzdhOTgxMjQxMTFkZTNh
NGM0ZTYxZGZhY2EwNWQ1Ij48c3BhbiBzdHlsZT0iY29sb3I6Izk1NEY3MiI+aHR0cHM6Ly9pZXRm
LndlYmV4LmNvbS9pZXRmL2oucGhwP01USUQ9bTEyMzdhOTgxMjQxMTFkZTNhNGM0ZTYxZGZhY2Ew
NWQ1PC9zcGFuPjwvYT48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
IiBzdHlsZT0iY2FyZXQtY29sb3I6IHJnYigwLCAwLCAwKTtmb250LXZhcmlhbnQtY2Fwczogbm9y
bWFsO29ycGhhbnM6IGF1dG87dGV4dC1hbGlnbjpzdGFydDt3aWRvd3M6IGF1dG87LXdlYmtpdC10
ZXh0LXNpemUtYWRqdXN0OiBhdXRvOy13ZWJraXQtdGV4dC1zdHJva2Utd2lkdGg6IDBweDt3b3Jk
LXNwYWNpbmc6MHB4Ij4NCjxzcGFuIHN0eWxlPSJjb2xvcjpibGFjayI+QWdlbmRhOjxzcGFuIGNs
YXNzPSJhcHBsZS1jb252ZXJ0ZWQtc3BhY2UiPiZuYnNwOzwvc3Bhbj48YSBocmVmPSJodHRwczov
L2RhdGF0cmFja2VyLmlldGYub3JnL21lZXRpbmcvaW50ZXJpbS0yMDE5LWNib3ItMTkvbWF0ZXJp
YWxzL2FnZW5kYS1pbnRlcmltLTIwMTktY2Jvci0xOS1zZXNzYSI+PHNwYW4gc3R5bGU9ImNvbG9y
OiM5NTRGNzIiPmh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvbWVldGluZy9pbnRlcmltLTIw
MTktY2Jvci0xOS9tYXRlcmlhbHMvYWdlbmRhLWludGVyaW0tMjAxOS1jYm9yLTE5LXNlc3NhPC9z
cGFuPjwvYT48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHls
ZT0iY2FyZXQtY29sb3I6IHJnYigwLCAwLCAwKTtmb250LXZhcmlhbnQtY2Fwczogbm9ybWFsO29y
cGhhbnM6IGF1dG87dGV4dC1hbGlnbjpzdGFydDt3aWRvd3M6IGF1dG87LXdlYmtpdC10ZXh0LXNp
emUtYWRqdXN0OiBhdXRvOy13ZWJraXQtdGV4dC1zdHJva2Utd2lkdGg6IDBweDt3b3JkLXNwYWNp
bmc6MHB4Ij4NCjxzcGFuIHN0eWxlPSJjb2xvcjpibGFjayI+VGltZTo8c3BhbiBjbGFzcz0iYXBw
bGUtY29udmVydGVkLXNwYWNlIj4mbmJzcDs8L3NwYW4+PGEgaHJlZj0iaHR0cHM6Ly93d3cud29y
bGR0aW1lYnVkZHkuY29tLz9xbT0xJmFtcDtsaWQ9MTIsMTAwLDUsOCZhbXA7aD0xMDAmYW1wO2Rh
dGU9MjAxOS0xMS0wNiZhbXA7c2xuPTE2LTE3Ij48c3BhbiBzdHlsZT0iY29sb3I6Izk1NEY3MiI+
aHR0cHM6Ly93d3cud29ybGR0aW1lYnVkZHkuY29tLz9xbT0xJmFtcDtsaWQ9MTIsMTAwLDUsOCZh
bXA7aD0xMDAmYW1wO2RhdGU9MjAxOS0xMS0wNiZhbXA7c2xuPTE2LTE3PC9zcGFuPjwvYT48bzpw
PjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0iY2FyZXQtY29s
b3I6IHJnYigwLCAwLCAwKTtmb250LXZhcmlhbnQtY2Fwczogbm9ybWFsO29ycGhhbnM6IGF1dG87
dGV4dC1hbGlnbjpzdGFydDt3aWRvd3M6IGF1dG87LXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiBh
dXRvOy13ZWJraXQtdGV4dC1zdHJva2Utd2lkdGg6IDBweDt3b3JkLXNwYWNpbmc6MHB4Ij4NCjxz
cGFuIHN0eWxlPSJjb2xvcjpibGFjayI+Jm5ic3A7PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9ImNhcmV0LWNvbG9yOiByZ2IoMCwgMCwgMCk7Zm9udC12
YXJpYW50LWNhcHM6IG5vcm1hbDtvcnBoYW5zOiBhdXRvO3RleHQtYWxpZ246c3RhcnQ7d2lkb3dz
OiBhdXRvOy13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogYXV0bzstd2Via2l0LXRleHQtc3Ryb2tl
LXdpZHRoOiAwcHg7d29yZC1zcGFjaW5nOjBweCI+DQo8c3BhbiBzdHlsZT0iY29sb3I6YmxhY2si
PiZuYnNwOzxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxl
PSJjYXJldC1jb2xvcjogcmdiKDAsIDAsIDApO2ZvbnQtdmFyaWFudC1jYXBzOiBub3JtYWw7b3Jw
aGFuczogYXV0bzt0ZXh0LWFsaWduOnN0YXJ0O3dpZG93czogYXV0bzstd2Via2l0LXRleHQtc2l6
ZS1hZGp1c3Q6IGF1dG87LXdlYmtpdC10ZXh0LXN0cm9rZS13aWR0aDogMHB4O3dvcmQtc3BhY2lu
ZzowcHgiPg0KPHNwYW4gc3R5bGU9ImNvbG9yOmJsYWNrIj5UYWxrIHRvIHlvdSBsYXRlciw8bzpw
PjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0iY2FyZXQtY29s
b3I6IHJnYigwLCAwLCAwKTtmb250LXZhcmlhbnQtY2Fwczogbm9ybWFsO29ycGhhbnM6IGF1dG87
dGV4dC1hbGlnbjpzdGFydDt3aWRvd3M6IGF1dG87LXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiBh
dXRvOy13ZWJraXQtdGV4dC1zdHJva2Utd2lkdGg6IDBweDt3b3JkLXNwYWNpbmc6MHB4Ij4NCjxz
cGFuIHN0eWxlPSJjb2xvcjpibGFjayI+RnJhbmNlc2NhPG86cD48L286cD48L3NwYW4+PC9wPg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9ImNhcmV0LWNvbG9yOiByZ2IoMCwgMCwgMCk7Zm9u
dC12YXJpYW50LWNhcHM6IG5vcm1hbDtvcnBoYW5zOiBhdXRvO3RleHQtYWxpZ246c3RhcnQ7d2lk
b3dzOiBhdXRvOy13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogYXV0bzstd2Via2l0LXRleHQtc3Ry
b2tlLXdpZHRoOiAwcHg7d29yZC1zcGFjaW5nOjBweCI+DQo8c3BhbiBzdHlsZT0iY29sb3I6Ymxh
Y2siPiZuYnNwOzxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0
eWxlPSJjYXJldC1jb2xvcjogcmdiKDAsIDAsIDApO2ZvbnQtdmFyaWFudC1jYXBzOiBub3JtYWw7
b3JwaGFuczogYXV0bzt0ZXh0LWFsaWduOnN0YXJ0O3dpZG93czogYXV0bzstd2Via2l0LXRleHQt
c2l6ZS1hZGp1c3Q6IGF1dG87LXdlYmtpdC10ZXh0LXN0cm9rZS13aWR0aDogMHB4O3dvcmQtc3Bh
Y2luZzowcHgiPg0KPHNwYW4gc3R5bGU9ImNvbG9yOmJsYWNrIj4mbmJzcDs8bzpwPjwvbzpwPjwv
c3Bhbj48L3A+DQo8dGFibGUgY2xhc3M9Ik1zb05vcm1hbFRhYmxlIiBib3JkZXI9IjAiIGNlbGxw
YWRkaW5nPSIwIiBhbGlnbj0ibGVmdCIgd2lkdGg9IjUyNSIgc3R5bGU9IndpZHRoOjM5My43NXB0
O21hcmdpbi1sZWZ0OjMuNzVwdDtjYXJldC1jb2xvcjogcmdiKDAsIDAsIDApO29ycGhhbnM6IGF1
dG87d2lkb3dzOiBhdXRvOy13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogYXV0bzstd2Via2l0LXRl
eHQtc3Ryb2tlLXdpZHRoOiAwcHg7d29yZC1zcGFjaW5nOjBweCI+DQo8dGJvZHk+DQo8dHI+DQo8
dGQgdmFsaWduPSJ0b3AiIHN0eWxlPSJwYWRkaW5nOjBjbSAwY20gMGNtIDBjbSI+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIiBzdHlsZT0ibGluZS1oZWlnaHQ6MTUuMHB0O21zby1lbGVtZW50OmZyYW1l
O21zby1lbGVtZW50LWZyYW1lLWhzcGFjZTo2LjBwdDttc28tZWxlbWVudC13cmFwOmFyb3VuZDtt
c28tZWxlbWVudC1hbmNob3ItdmVydGljYWw6cGFyYWdyYXBoO21zby1lbGVtZW50LWFuY2hvci1o
b3Jpem9udGFsOmNvbHVtbjttc28taGVpZ2h0LXJ1bGU6ZXhhY3RseSI+DQo8c3BhbiBzdHlsZT0i
Zm9udC1zaXplOjExLjVwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OyxzYW5zLXNlcmlm
O2NvbG9yOiM2NjY2NjYiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjx0YWJsZSBjbGFz
cz0iTXNvTm9ybWFsVGFibGUiIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjAiIHdpZHRoPSI1MjUi
IHN0eWxlPSJ3aWR0aDozOTMuNzVwdCI+DQo8dGJvZHk+DQo8dHI+DQo8dGQgc3R5bGU9InBhZGRp
bmc6MGNtIDBjbSAwY20gMGNtIj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJsaW5lLWhl
aWdodDoxNS4wcHQ7bXNvLWVsZW1lbnQ6ZnJhbWU7bXNvLWVsZW1lbnQtZnJhbWUtaHNwYWNlOjYu
MHB0O21zby1lbGVtZW50LXdyYXA6YXJvdW5kO21zby1lbGVtZW50LWFuY2hvci12ZXJ0aWNhbDpw
YXJhZ3JhcGg7bXNvLWVsZW1lbnQtYW5jaG9yLWhvcml6b250YWw6Y29sdW1uO21zby1oZWlnaHQt
cnVsZTpleGFjdGx5Ij4NCjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuNXB0O2ZvbnQtZmFtaWx5
OiZxdW90O0FyaWFsJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzRENEQ0RCI+SGVsbG8sPC9zcGFu
PjxvOnA+PC9vOnA+PC9wPg0KPC90ZD4NCjwvdHI+DQo8dHI+DQo8dGQgc3R5bGU9InBhZGRpbmc6
Ny41cHQgMGNtIDBjbSAwY20iPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9ImxpbmUtaGVp
Z2h0OjE1LjBwdDttc28tZWxlbWVudDpmcmFtZTttc28tZWxlbWVudC1mcmFtZS1oc3BhY2U6Ni4w
cHQ7bXNvLWVsZW1lbnQtd3JhcDphcm91bmQ7bXNvLWVsZW1lbnQtYW5jaG9yLXZlcnRpY2FsOnBh
cmFncmFwaDttc28tZWxlbWVudC1hbmNob3ItaG9yaXpvbnRhbDpjb2x1bW47bXNvLWhlaWdodC1y
dWxlOmV4YWN0bHkiPg0KPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS41cHQ7Zm9udC1mYW1pbHk6
JnF1b3Q7QXJpYWwmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojNEQ0RDREIj5DQk9SIFdvcmtpbmcg
R3JvdXAgaW52aXRlcyB5b3UgdG8gam9pbiB0aGlzIFdlYmV4IG1lZXRpbmcuPC9zcGFuPjxvOnA+
PC9vOnA+PC9wPg0KPC90ZD4NCjwvdHI+DQo8L3Rib2R5Pg0KPC90YWJsZT4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiIHN0eWxlPSJsaW5lLWhlaWdodDoxNS4wcHQ7bXNvLWVsZW1lbnQ6ZnJhbWU7bXNv
LWVsZW1lbnQtZnJhbWUtaHNwYWNlOjYuMHB0O21zby1lbGVtZW50LXdyYXA6YXJvdW5kO21zby1l
bGVtZW50LWFuY2hvci12ZXJ0aWNhbDpwYXJhZ3JhcGg7bXNvLWVsZW1lbnQtYW5jaG9yLWhvcml6
b250YWw6Y29sdW1uO21zby1oZWlnaHQtcnVsZTpleGFjdGx5Ij4NCjxzcGFuIHN0eWxlPSJmb250
LXNpemU6MTEuNXB0O2ZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LHNhbnMtc2VyaWY7Y29s
b3I6IzY2NjY2NiI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHRhYmxlIGNsYXNzPSJN
c29Ob3JtYWxUYWJsZSIgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMCIgd2lkdGg9IjUyNSIgc3R5
bGU9IndpZHRoOjM5My43NXB0Ij4NCjx0Ym9keT4NCjx0ciBzdHlsZT0iaGVpZ2h0OjE1LjBwdCI+
DQo8dGQgc3R5bGU9InBhZGRpbmc6MGNtIDBjbSAwY20gMGNtO2hlaWdodDoxNS4wcHQiPg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9ImxpbmUtaGVpZ2h0OjE1LjBwdDttc28tZWxlbWVudDpm
cmFtZTttc28tZWxlbWVudC1mcmFtZS1oc3BhY2U6Ni4wcHQ7bXNvLWVsZW1lbnQtd3JhcDphcm91
bmQ7bXNvLWVsZW1lbnQtYW5jaG9yLXZlcnRpY2FsOnBhcmFncmFwaDttc28tZWxlbWVudC1hbmNo
b3ItaG9yaXpvbnRhbDpjb2x1bW47bXNvLWhlaWdodC1ydWxlOmV4YWN0bHkiPg0KPHNwYW4gc3R5
bGU9ImZvbnQtc2l6ZToxMS41cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssc2Fucy1z
ZXJpZjtjb2xvcjojNjY2NjY2Ij4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8L3RkPg0K
PC90cj4NCjwvdGJvZHk+DQo8L3RhYmxlPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Imxp
bmUtaGVpZ2h0OjE1LjBwdDttc28tZWxlbWVudDpmcmFtZTttc28tZWxlbWVudC1mcmFtZS1oc3Bh
Y2U6Ni4wcHQ7bXNvLWVsZW1lbnQtd3JhcDphcm91bmQ7bXNvLWVsZW1lbnQtYW5jaG9yLXZlcnRp
Y2FsOnBhcmFncmFwaDttc28tZWxlbWVudC1hbmNob3ItaG9yaXpvbnRhbDpjb2x1bW47bXNvLWhl
aWdodC1ydWxlOmV4YWN0bHkiPg0KPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS41cHQ7Zm9udC1m
YW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojNjY2NjY2Ij4mbmJzcDs8
L3NwYW4+PG86cD48L286cD48L3A+DQo8dGFibGUgY2xhc3M9Ik1zb05vcm1hbFRhYmxlIiBib3Jk
ZXI9IjAiIGNlbGxwYWRkaW5nPSIwIiB3aWR0aD0iMTAwJSIgc3R5bGU9IndpZHRoOjEwMC4wJSI+
DQo8dGJvZHk+DQo8dHI+DQo8dGQgc3R5bGU9InBhZGRpbmc6MGNtIDBjbSAwY20gMGNtIj4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJsaW5lLWhlaWdodDoxNS4wcHQ7bXNvLWVsZW1lbnQ6
ZnJhbWU7bXNvLWVsZW1lbnQtZnJhbWUtaHNwYWNlOjYuMHB0O21zby1lbGVtZW50LXdyYXA6YXJv
dW5kO21zby1lbGVtZW50LWFuY2hvci12ZXJ0aWNhbDpwYXJhZ3JhcGg7bXNvLWVsZW1lbnQtYW5j
aG9yLWhvcml6b250YWw6Y29sdW1uO21zby1oZWlnaHQtcnVsZTpleGFjdGx5Ij4NCjxiPjxzcGFu
IHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiM0
RDRENEQiPkNCT1IgV0cgQ29uZmVyZW5jZSBDYWxsPC9zcGFuPjwvYj48bzpwPjwvbzpwPjwvcD4N
CjwvdGQ+DQo8L3RyPg0KPHRyPg0KPHRkIHN0eWxlPSJwYWRkaW5nOjBjbSAwY20gMGNtIDBjbSI+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibGluZS1oZWlnaHQ6MTUuMHB0O21zby1lbGVt
ZW50OmZyYW1lO21zby1lbGVtZW50LWZyYW1lLWhzcGFjZTo2LjBwdDttc28tZWxlbWVudC13cmFw
OmFyb3VuZDttc28tZWxlbWVudC1hbmNob3ItdmVydGljYWw6cGFyYWdyYXBoO21zby1lbGVtZW50
LWFuY2hvci1ob3Jpem9udGFsOmNvbHVtbjttc28taGVpZ2h0LXJ1bGU6ZXhhY3RseSI+DQo8c3Bh
biBzdHlsZT0iZm9udC1zaXplOjExLjVwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90Oyxz
YW5zLXNlcmlmO2NvbG9yOiM2NjY2NjYiPk9jY3VycyBldmVyeSAyIHdlZWsocykgb24gV2VkbmVz
ZGF5IGVmZmVjdGl2ZSBXZWRuZXNkYXksIE1heSAyMiwgMjAxOSB1bnRpbCBXZWRuZXNkYXksIE5v
dmVtYmVyIDYsIDIwMTkgZnJvbSA1OjAwIFBNIHRvIDY6MDAgUE0sIChVVEMmIzQzOzAxOjAwKSBB
bXN0ZXJkYW0sIEJlcmxpbiwgQmVybiwgUm9tZSwgU3RvY2tob2xtLA0KIFZpZW5uYTxzcGFuIGNs
YXNzPSJhcHBsZS1jb252ZXJ0ZWQtc3BhY2UiPiZuYnNwOzwvc3Bhbj48L3NwYW4+PG86cD48L286
cD48L3A+DQo8L3RkPg0KPC90cj4NCjx0cj4NCjx0ZCBzdHlsZT0icGFkZGluZzowY20gMGNtIDBj
bSAwY20iPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9ImxpbmUtaGVpZ2h0OjE1LjBwdDtt
c28tZWxlbWVudDpmcmFtZTttc28tZWxlbWVudC1mcmFtZS1oc3BhY2U6Ni4wcHQ7bXNvLWVsZW1l
bnQtd3JhcDphcm91bmQ7bXNvLWVsZW1lbnQtYW5jaG9yLXZlcnRpY2FsOnBhcmFncmFwaDttc28t
ZWxlbWVudC1hbmNob3ItaG9yaXpvbnRhbDpjb2x1bW47bXNvLWhlaWdodC1ydWxlOmV4YWN0bHki
Pg0KPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS41cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwm
cXVvdDssc2Fucy1zZXJpZjtjb2xvcjojNjY2NjY2Ij41OjAwIHBtJm5ic3A7Jm5ic3A7fCZuYnNw
OyZuYnNwO0V1cm9wZSBTdW1tZXIgVGltZSAoQW1zdGVyZGFtLCBHTVQmIzQzOzAyOjAwKSZuYnNw
OyZuYnNwO3wmbmJzcDsmbmJzcDsxIGhyPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC90ZD4NCjwv
dHI+DQo8L3Rib2R5Pg0KPC90YWJsZT4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJsaW5l
LWhlaWdodDoxNS4wcHQ7bXNvLWVsZW1lbnQ6ZnJhbWU7bXNvLWVsZW1lbnQtZnJhbWUtaHNwYWNl
OjYuMHB0O21zby1lbGVtZW50LXdyYXA6YXJvdW5kO21zby1lbGVtZW50LWFuY2hvci12ZXJ0aWNh
bDpwYXJhZ3JhcGg7bXNvLWVsZW1lbnQtYW5jaG9yLWhvcml6b250YWw6Y29sdW1uO21zby1oZWln
aHQtcnVsZTpleGFjdGx5Ij4NCjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuNXB0O2ZvbnQtZmFt
aWx5OiZxdW90O0FyaWFsJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzY2NjY2NiI+Jm5ic3A7PC9z
cGFuPjxvOnA+PC9vOnA+PC9wPg0KPHRhYmxlIGNsYXNzPSJNc29Ob3JtYWxUYWJsZSIgYm9yZGVy
PSIwIiBjZWxscGFkZGluZz0iMCIgd2lkdGg9IjAiIHN0eWxlPSJ3aWR0aDowY20iPg0KPHRib2R5
Pg0KPHRyPg0KPHRkIHN0eWxlPSJwYWRkaW5nOjBjbSAwY20gMGNtIDBjbSI+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIiBzdHlsZT0ibGluZS1oZWlnaHQ6MTUuMHB0O21zby1lbGVtZW50OmZyYW1lO21z
by1lbGVtZW50LWZyYW1lLWhzcGFjZTo2LjBwdDttc28tZWxlbWVudC13cmFwOmFyb3VuZDttc28t
ZWxlbWVudC1hbmNob3ItdmVydGljYWw6cGFyYWdyYXBoO21zby1lbGVtZW50LWFuY2hvci1ob3Jp
em9udGFsOmNvbHVtbjttc28taGVpZ2h0LXJ1bGU6ZXhhY3RseSI+DQo8c3BhbiBzdHlsZT0iZm9u
dC1zaXplOjExLjVwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OyxzYW5zLXNlcmlmO2Nv
bG9yOiM2NjY2NjYiPk1lZXRpbmcgbnVtYmVyIChhY2Nlc3MgY29kZSk6IDY0MSA3NjAgMTU3PC9z
cGFuPjxvOnA+PC9vOnA+PC9wPg0KPC90ZD4NCjwvdHI+DQo8L3Rib2R5Pg0KPC90YWJsZT4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJsaW5lLWhlaWdodDoxNS4wcHQ7bXNvLWVsZW1lbnQ6
ZnJhbWU7bXNvLWVsZW1lbnQtZnJhbWUtaHNwYWNlOjYuMHB0O21zby1lbGVtZW50LXdyYXA6YXJv
dW5kO21zby1lbGVtZW50LWFuY2hvci12ZXJ0aWNhbDpwYXJhZ3JhcGg7bXNvLWVsZW1lbnQtYW5j
aG9yLWhvcml6b250YWw6Y29sdW1uO21zby1oZWlnaHQtcnVsZTpleGFjdGx5Ij4NCjxzcGFuIHN0
eWxlPSJmb250LXNpemU6MTEuNXB0O2ZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LHNhbnMt
c2VyaWY7Y29sb3I6IzY2NjY2NiI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHRhYmxl
IGNsYXNzPSJNc29Ob3JtYWxUYWJsZSIgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMCIgd2lkdGg9
IjAiIHN0eWxlPSJ3aWR0aDowY20iPg0KPHRib2R5Pg0KPHRyPg0KPHRkIHN0eWxlPSJwYWRkaW5n
OjBjbSAwY20gMGNtIDBjbSI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibGluZS1oZWln
aHQ6MTUuMHB0O21zby1lbGVtZW50OmZyYW1lO21zby1lbGVtZW50LWZyYW1lLWhzcGFjZTo2LjBw
dDttc28tZWxlbWVudC13cmFwOmFyb3VuZDttc28tZWxlbWVudC1hbmNob3ItdmVydGljYWw6cGFy
YWdyYXBoO21zby1lbGVtZW50LWFuY2hvci1ob3Jpem9udGFsOmNvbHVtbjttc28taGVpZ2h0LXJ1
bGU6ZXhhY3RseSI+DQo8c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjVwdDtmb250LWZhbWlseTom
cXVvdDtBcmlhbCZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiM2NjY2NjYiPk1lZXRpbmcgcGFzc3dv
cmQ6IFVQQXQ5ckJuPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC90ZD4NCjwvdHI+DQo8L3Rib2R5
Pg0KPC90YWJsZT4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tYm90dG9tOjEy
LjBwdDtsaW5lLWhlaWdodDoxNS4wcHQ7bXNvLWVsZW1lbnQ6ZnJhbWU7bXNvLWVsZW1lbnQtZnJh
bWUtaHNwYWNlOjYuMHB0O21zby1lbGVtZW50LXdyYXA6YXJvdW5kO21zby1lbGVtZW50LWFuY2hv
ci12ZXJ0aWNhbDpwYXJhZ3JhcGg7bXNvLWVsZW1lbnQtYW5jaG9yLWhvcml6b250YWw6Y29sdW1u
O21zby1oZWlnaHQtcnVsZTpleGFjdGx5Ij4NCjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuNXB0
O2ZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzY2NjY2NiI+
Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHRhYmxlIGNsYXNzPSJNc29Ob3JtYWxUYWJs
ZSIgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMCIgd2lkdGg9IjUyNSIgc3R5bGU9IndpZHRoOjM5
My43NXB0Ij4NCjx0Ym9keT4NCjx0ciBzdHlsZT0iaGVpZ2h0OjE1LjBwdCI+DQo8dGQgc3R5bGU9
InBhZGRpbmc6MGNtIDBjbSAwY20gMGNtO2hlaWdodDoxNS4wcHQiPg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCIgc3R5bGU9ImxpbmUtaGVpZ2h0OjE1LjBwdDttc28tZWxlbWVudDpmcmFtZTttc28tZWxl
bWVudC1mcmFtZS1oc3BhY2U6Ni4wcHQ7bXNvLWVsZW1lbnQtd3JhcDphcm91bmQ7bXNvLWVsZW1l
bnQtYW5jaG9yLXZlcnRpY2FsOnBhcmFncmFwaDttc28tZWxlbWVudC1hbmNob3ItaG9yaXpvbnRh
bDpjb2x1bW47bXNvLWhlaWdodC1ydWxlOmV4YWN0bHkiPg0KPHNwYW4gc3R5bGU9ImZvbnQtc2l6
ZToxMS41cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjoj
NjY2NjY2Ij4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8L3RkPg0KPC90cj4NCjwvdGJv
ZHk+DQo8L3RhYmxlPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9ImxpbmUtaGVpZ2h0OjE1
LjBwdDttc28tZWxlbWVudDpmcmFtZTttc28tZWxlbWVudC1mcmFtZS1oc3BhY2U6Ni4wcHQ7bXNv
LWVsZW1lbnQtd3JhcDphcm91bmQ7bXNvLWVsZW1lbnQtYW5jaG9yLXZlcnRpY2FsOnBhcmFncmFw
aDttc28tZWxlbWVudC1hbmNob3ItaG9yaXpvbnRhbDpjb2x1bW47bXNvLWhlaWdodC1ydWxlOmV4
YWN0bHkiPg0KPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS41cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7
QXJpYWwmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojNjY2NjY2Ij4mbmJzcDs8L3NwYW4+PG86cD48
L286cD48L3A+DQo8dGFibGUgY2xhc3M9Ik1zb05vcm1hbFRhYmxlIiBib3JkZXI9IjAiIGNlbGxw
YWRkaW5nPSIwIiB3aWR0aD0iMCIgc3R5bGU9IndpZHRoOjBjbTttaW4td2lkdGg6IDE4NnB4ICFp
bXBvcnRhbnQiPg0KPHRib2R5Pg0KPHRyPg0KPHRkIHN0eWxlPSJwYWRkaW5nOjBjbSAwY20gMGNt
IDBjbTttaW4td2lkdGg6IDE4NnB4ICFpbXBvcnRhbnQiPg0KPHRhYmxlIGNsYXNzPSJNc29Ob3Jt
YWxUYWJsZSIgYm9yZGVyPSIxIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjAiIHdpZHRo
PSIwIiBzdHlsZT0id2lkdGg6MGNtO2JhY2tncm91bmQ6IzA0OENCRjtib3JkZXI6c29saWQgIzA0
OENCRiAxLjVwdDttaW4td2lkdGg6IDE4NnB4ICFpbXBvcnRhbnQiPg0KPHRib2R5Pg0KPHRyPg0K
PHRkIHN0eWxlPSJib3JkZXI6bm9uZTtwYWRkaW5nOjEwLjVwdCAxNS4wcHQgMTAuNXB0IDE1LjBw
dDttaW4td2lkdGg6IDE4NnB4ICFpbXBvcnRhbnQ7YmFja2dyb3VuZC1wb3NpdGlvbjppbml0aWFs
IGluaXRpYWw7YmFja2dyb3VuZC1yZXBlYXQ6aW5pdGlhbCBpbml0aWFsIj4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiIGFsaWduPSJjZW50ZXIiIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjtsaW5lLWhl
aWdodDoxNS4wcHQ7bXNvLWVsZW1lbnQ6ZnJhbWU7bXNvLWVsZW1lbnQtZnJhbWUtaHNwYWNlOjYu
MHB0O21zby1lbGVtZW50LXdyYXA6YXJvdW5kO21zby1lbGVtZW50LWFuY2hvci12ZXJ0aWNhbDpw
YXJhZ3JhcGg7bXNvLWVsZW1lbnQtYW5jaG9yLWhvcml6b250YWw6Y29sdW1uO21zby1oZWlnaHQt
cnVsZTpleGFjdGx5Ij4NCjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuNXB0O2ZvbnQtZmFtaWx5
OiZxdW90O0FyaWFsJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzY2NjY2NiI+PGEgaHJlZj0iaHR0
cHM6Ly9pZXRmLndlYmV4LmNvbS9pZXRmL2oucGhwP01USUQ9bTFkMDYzNjA2OWEyOGJkN2M4Y2Mw
OTBlNzQxNTY1YzhjIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjE1LjBwdDtjb2xvcjp3aGl0ZSI+
QWRkIHRvIENhbGVuZGFyPC9zcGFuPjwvYT48L3NwYW4+PG86cD48L286cD48L3A+DQo8L3RkPg0K
PC90cj4NCjwvdGJvZHk+DQo8L3RhYmxlPg0KPC90ZD4NCjx0ZCBzdHlsZT0icGFkZGluZzowY20g
MGNtIDBjbSAwY207bWluLXdpZHRoOiAxODZweCAhaW1wb3J0YW50Ij4NCjx0YWJsZSBjbGFzcz0i
TXNvTm9ybWFsVGFibGUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIw
IiB3aWR0aD0iMCIgc3R5bGU9IndpZHRoOjBjbTttaW4td2lkdGg6IDE4NnB4ICFpbXBvcnRhbnQi
Pg0KPHRib2R5Pg0KPHRyPg0KPHRkIHN0eWxlPSJwYWRkaW5nOjBjbSAwY20gMGNtIDEyLjBwdDtt
aW4td2lkdGg6IDE4NnB4ICFpbXBvcnRhbnQiPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9
ImxpbmUtaGVpZ2h0OjE1LjBwdDttc28tZWxlbWVudDpmcmFtZTttc28tZWxlbWVudC1mcmFtZS1o
c3BhY2U6Ni4wcHQ7bXNvLWVsZW1lbnQtd3JhcDphcm91bmQ7bXNvLWVsZW1lbnQtYW5jaG9yLXZl
cnRpY2FsOnBhcmFncmFwaDttc28tZWxlbWVudC1hbmNob3ItaG9yaXpvbnRhbDpjb2x1bW47bXNv
LWhlaWdodC1ydWxlOmV4YWN0bHkiPg0KPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS41cHQ7Zm9u
dC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojNjY2NjY2Ij5XaGVu
IGl0J3MgdGltZSw8c3BhbiBjbGFzcz0iYXBwbGUtY29udmVydGVkLXNwYWNlIj4mbmJzcDs8L3Nw
YW4+PGEgaHJlZj0iaHR0cHM6Ly9pZXRmLndlYmV4LmNvbS9pZXRmL2oucGhwP01USUQ9bTEyMzdh
OTgxMjQxMTFkZTNhNGM0ZTYxZGZhY2EwNWQ1Ij48c3BhbiBzdHlsZT0iY29sb3I6IzAwQUZGOSI+
am9pbiB0aGUgbWVldGluZzwvc3Bhbj48L2E+Ljwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvdGQ+
DQo8L3RyPg0KPC90Ym9keT4NCjwvdGFibGU+DQo8L3RkPg0KPC90cj4NCjwvdGJvZHk+DQo8L3Rh
YmxlPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9ImxpbmUtaGVpZ2h0OjE1LjBwdDttc28t
ZWxlbWVudDpmcmFtZTttc28tZWxlbWVudC1mcmFtZS1oc3BhY2U6Ni4wcHQ7bXNvLWVsZW1lbnQt
d3JhcDphcm91bmQ7bXNvLWVsZW1lbnQtYW5jaG9yLXZlcnRpY2FsOnBhcmFncmFwaDttc28tZWxl
bWVudC1hbmNob3ItaG9yaXpvbnRhbDpjb2x1bW47bXNvLWhlaWdodC1ydWxlOmV4YWN0bHkiPg0K
Jm5ic3A7PG86cD48L286cD48L3A+DQo8dGFibGUgY2xhc3M9Ik1zb05vcm1hbFRhYmxlIiBib3Jk
ZXI9IjAiIGNlbGxwYWRkaW5nPSIwIiB3aWR0aD0iNTI1IiBzdHlsZT0id2lkdGg6MzkzLjc1cHQi
Pg0KPHRib2R5Pg0KPHRyIHN0eWxlPSJoZWlnaHQ6MTUuMHB0Ij4NCjx0ZCBzdHlsZT0icGFkZGlu
ZzowY20gMGNtIDBjbSAwY207aGVpZ2h0OjE1LjBwdCI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBz
dHlsZT0ibGluZS1oZWlnaHQ6MTUuMHB0O21zby1lbGVtZW50OmZyYW1lO21zby1lbGVtZW50LWZy
YW1lLWhzcGFjZTo2LjBwdDttc28tZWxlbWVudC13cmFwOmFyb3VuZDttc28tZWxlbWVudC1hbmNo
b3ItdmVydGljYWw6cGFyYWdyYXBoO21zby1lbGVtZW50LWFuY2hvci1ob3Jpem9udGFsOmNvbHVt
bjttc28taGVpZ2h0LXJ1bGU6ZXhhY3RseSI+DQo8c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjVw
dDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiM2NjY2NjYi
PiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvdGQ+DQo8L3RyPg0KPC90Ym9keT4NCjwv
dGFibGU+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibGluZS1oZWlnaHQ6MTUuMHB0O21z
by1lbGVtZW50OmZyYW1lO21zby1lbGVtZW50LWZyYW1lLWhzcGFjZTo2LjBwdDttc28tZWxlbWVu
dC13cmFwOmFyb3VuZDttc28tZWxlbWVudC1hbmNob3ItdmVydGljYWw6cGFyYWdyYXBoO21zby1l
bGVtZW50LWFuY2hvci1ob3Jpem9udGFsOmNvbHVtbjttc28taGVpZ2h0LXJ1bGU6ZXhhY3RseSI+
DQombmJzcDs8bzpwPjwvbzpwPjwvcD4NCjx0YWJsZSBjbGFzcz0iTXNvTm9ybWFsVGFibGUiIGJv
cmRlcj0iMCIgY2VsbHBhZGRpbmc9IjAiIHdpZHRoPSI1MjUiIHN0eWxlPSJ3aWR0aDozOTMuNzVw
dCI+DQo8dGJvZHk+DQo8dHI+DQo8dGQgc3R5bGU9InBhZGRpbmc6MGNtIDBjbSAwY20gMGNtIj4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJsaW5lLWhlaWdodDoxNS4wcHQ7bXNvLWVsZW1l
bnQ6ZnJhbWU7bXNvLWVsZW1lbnQtZnJhbWUtaHNwYWNlOjYuMHB0O21zby1lbGVtZW50LXdyYXA6
YXJvdW5kO21zby1lbGVtZW50LWFuY2hvci12ZXJ0aWNhbDpwYXJhZ3JhcGg7bXNvLWVsZW1lbnQt
YW5jaG9yLWhvcml6b250YWw6Y29sdW1uO21zby1oZWlnaHQtcnVsZTpleGFjdGx5Ij4NCjxiPjxz
cGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OyxzYW5zLXNlcmlmO2NvbG9y
OiM2NjY2NjYiPkpvaW4gYnkgcGhvbmU8L3NwYW4+PC9iPjxvOnA+PC9vOnA+PC9wPg0KPC90ZD4N
CjwvdHI+DQo8dHI+DQo8dGQgc3R5bGU9InBhZGRpbmc6MGNtIDBjbSAwY20gMGNtIj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJsaW5lLWhlaWdodDoxNS4wcHQ7bXNvLWVsZW1lbnQ6ZnJh
bWU7bXNvLWVsZW1lbnQtZnJhbWUtaHNwYWNlOjYuMHB0O21zby1lbGVtZW50LXdyYXA6YXJvdW5k
O21zby1lbGVtZW50LWFuY2hvci12ZXJ0aWNhbDpwYXJhZ3JhcGg7bXNvLWVsZW1lbnQtYW5jaG9y
LWhvcml6b250YWw6Y29sdW1uO21zby1oZWlnaHQtcnVsZTpleGFjdGx5Ij4NCjxiPjxzcGFuIHN0
eWxlPSJmb250LXNpemU6MTEuNXB0O2ZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LHNhbnMt
c2VyaWY7Y29sb3I6IzY2NjY2NiI+PGEgaHJlZj0idGVsOiUyQjEtNjUwLTQ3OS0zMjA4LCwqMDEq
NjQxNzYwMTU3JTIzJTIzKjAxKiI+PHNwYW4gc3R5bGU9ImNvbG9yOiMwMEFGRjkiPjEtNjUwLTQ3
OS0zMjA4PC9zcGFuPjwvYT48L3NwYW4+PC9iPjxzcGFuIGNsYXNzPSJhcHBsZS1jb252ZXJ0ZWQt
c3BhY2UiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuNXB0O2ZvbnQtZmFtaWx5OiZxdW90O0Fy
aWFsJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzY2NjY2NiI+Jm5ic3A7PC9zcGFuPjwvc3Bhbj48
c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjVwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90
OyxzYW5zLXNlcmlmO2NvbG9yOiM2NjY2NjYiPkNhbGwtaW4NCiB0b2xsIG51bWJlciAoVVMvQ2Fu
YWRhKTwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvdGQ+DQo8L3RyPg0KPHRyPg0KPHRkIHN0eWxl
PSJwYWRkaW5nOjBjbSAwY20gMGNtIDBjbSI+PC90ZD4NCjwvdHI+DQo8L3Rib2R5Pg0KPC90YWJs
ZT4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJsaW5lLWhlaWdodDoxNS4wcHQ7bXNvLWVs
ZW1lbnQ6ZnJhbWU7bXNvLWVsZW1lbnQtZnJhbWUtaHNwYWNlOjYuMHB0O21zby1lbGVtZW50LXdy
YXA6YXJvdW5kO21zby1lbGVtZW50LWFuY2hvci12ZXJ0aWNhbDpwYXJhZ3JhcGg7bXNvLWVsZW1l
bnQtYW5jaG9yLWhvcml6b250YWw6Y29sdW1uO21zby1oZWlnaHQtcnVsZTpleGFjdGx5Ij4NCiZu
YnNwOzxvOnA+PC9vOnA+PC9wPg0KPHRhYmxlIGNsYXNzPSJNc29Ob3JtYWxUYWJsZSIgYm9yZGVy
PSIwIiBjZWxscGFkZGluZz0iMCIgd2lkdGg9IjUyNSIgc3R5bGU9IndpZHRoOjM5My43NXB0Ij4N
Cjx0Ym9keT4NCjx0ciBzdHlsZT0iaGVpZ2h0OjE1LjBwdCI+DQo8dGQgc3R5bGU9InBhZGRpbmc6
MGNtIDBjbSAwY20gMGNtO2hlaWdodDoxNS4wcHQiPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5
bGU9ImxpbmUtaGVpZ2h0OjE1LjBwdDttc28tZWxlbWVudDpmcmFtZTttc28tZWxlbWVudC1mcmFt
ZS1oc3BhY2U6Ni4wcHQ7bXNvLWVsZW1lbnQtd3JhcDphcm91bmQ7bXNvLWVsZW1lbnQtYW5jaG9y
LXZlcnRpY2FsOnBhcmFncmFwaDttc28tZWxlbWVudC1hbmNob3ItaG9yaXpvbnRhbDpjb2x1bW47
bXNvLWhlaWdodC1ydWxlOmV4YWN0bHkiPg0KPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS41cHQ7
Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojNjY2NjY2Ij4m
bmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8L3RkPg0KPC90cj4NCjwvdGJvZHk+DQo8L3Rh
YmxlPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9ImxpbmUtaGVpZ2h0OjE1LjBwdDttc28t
ZWxlbWVudDpmcmFtZTttc28tZWxlbWVudC1mcmFtZS1oc3BhY2U6Ni4wcHQ7bXNvLWVsZW1lbnQt
d3JhcDphcm91bmQ7bXNvLWVsZW1lbnQtYW5jaG9yLXZlcnRpY2FsOnBhcmFncmFwaDttc28tZWxl
bWVudC1hbmNob3ItaG9yaXpvbnRhbDpjb2x1bW47bXNvLWhlaWdodC1ydWxlOmV4YWN0bHkiPg0K
Jm5ic3A7PG86cD48L286cD48L3A+DQo8dGFibGUgY2xhc3M9Ik1zb05vcm1hbFRhYmxlIiBib3Jk
ZXI9IjAiIGNlbGxwYWRkaW5nPSIwIiB3aWR0aD0iNTI1IiBzdHlsZT0id2lkdGg6MzkzLjc1cHQi
Pg0KPHRib2R5Pg0KPHRyPg0KPHRkIHN0eWxlPSJwYWRkaW5nOjBjbSAwY20gMGNtIDBjbSI+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibGluZS1oZWlnaHQ6MTUuMHB0O21zby1lbGVtZW50
OmZyYW1lO21zby1lbGVtZW50LWZyYW1lLWhzcGFjZTo2LjBwdDttc28tZWxlbWVudC13cmFwOmFy
b3VuZDttc28tZWxlbWVudC1hbmNob3ItdmVydGljYWw6cGFyYWdyYXBoO21zby1lbGVtZW50LWFu
Y2hvci1ob3Jpem9udGFsOmNvbHVtbjttc28taGVpZ2h0LXJ1bGU6ZXhhY3RseSI+DQo8c3BhbiBz
dHlsZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OyxzYW5z
LXNlcmlmO2NvbG9yOiM2NjY2NjYiPjxhIGhyZWY9Imh0dHBzOi8vY29sbGFib3JhdGlvbmhlbHAu
Y2lzY28uY29tL2FydGljbGUvV0JYMDAwMDI5MDU1Ij48c3BhbiBzdHlsZT0iY29sb3I6IzAwQUZG
OSI+Q2FuJ3Qgam9pbiB0aGUgbWVldGluZz88L3NwYW4+PC9hPjwvc3Bhbj48bzpwPjwvbzpwPjwv
cD4NCjwvdGQ+DQo8L3RyPg0KPC90Ym9keT4NCjwvdGFibGU+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
IiBzdHlsZT0ibGluZS1oZWlnaHQ6MTUuMHB0O21zby1lbGVtZW50OmZyYW1lO21zby1lbGVtZW50
LWZyYW1lLWhzcGFjZTo2LjBwdDttc28tZWxlbWVudC13cmFwOmFyb3VuZDttc28tZWxlbWVudC1h
bmNob3ItdmVydGljYWw6cGFyYWdyYXBoO21zby1lbGVtZW50LWFuY2hvci1ob3Jpem9udGFsOmNv
bHVtbjttc28taGVpZ2h0LXJ1bGU6ZXhhY3RseSI+DQombmJzcDs8bzpwPjwvbzpwPjwvcD4NCjx0
YWJsZSBjbGFzcz0iTXNvTm9ybWFsVGFibGUiIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjAiIHdp
ZHRoPSI1MjUiIHN0eWxlPSJ3aWR0aDozOTMuNzVwdCI+DQo8dGJvZHk+DQo8dHIgc3R5bGU9Imhl
aWdodDo3LjVwdCI+DQo8dGQgc3R5bGU9InBhZGRpbmc6MGNtIDBjbSAwY20gMGNtO2hlaWdodDo3
LjVwdCI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLWVsZW1lbnQ6ZnJhbWU7bXNv
LWVsZW1lbnQtZnJhbWUtaHNwYWNlOjYuMHB0O21zby1lbGVtZW50LXdyYXA6YXJvdW5kO21zby1l
bGVtZW50LWFuY2hvci12ZXJ0aWNhbDpwYXJhZ3JhcGg7bXNvLWVsZW1lbnQtYW5jaG9yLWhvcml6
b250YWw6Y29sdW1uO21zby1oZWlnaHQtcnVsZTpleGFjdGx5Ij4NCjxzcGFuIHN0eWxlPSJmb250
LXNpemU6MTEuNXB0O2ZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LHNhbnMtc2VyaWY7Y29s
b3I6IzY2NjY2NiI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC90ZD4NCjwvdHI+DQo8
L3Rib2R5Pg0KPC90YWJsZT4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJsaW5lLWhlaWdo
dDoxNS4wcHQ7bXNvLWVsZW1lbnQ6ZnJhbWU7bXNvLWVsZW1lbnQtZnJhbWUtaHNwYWNlOjYuMHB0
O21zby1lbGVtZW50LXdyYXA6YXJvdW5kO21zby1lbGVtZW50LWFuY2hvci12ZXJ0aWNhbDpwYXJh
Z3JhcGg7bXNvLWVsZW1lbnQtYW5jaG9yLWhvcml6b250YWw6Y29sdW1uO21zby1oZWlnaHQtcnVs
ZTpleGFjdGx5Ij4NCiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPHRhYmxlIGNsYXNzPSJNc29Ob3Jt
YWxUYWJsZSIgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMCIgd2lkdGg9IjUyNSIgc3R5bGU9Indp
ZHRoOjM5My43NXB0Ij4NCjx0Ym9keT4NCjx0cj4NCjx0ZCBzdHlsZT0icGFkZGluZzowY20gMGNt
IDBjbSAwY20iPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9ImxpbmUtaGVpZ2h0OjE1LjBw
dDttc28tZWxlbWVudDpmcmFtZTttc28tZWxlbWVudC1mcmFtZS1oc3BhY2U6Ni4wcHQ7bXNvLWVs
ZW1lbnQtd3JhcDphcm91bmQ7bXNvLWVsZW1lbnQtYW5jaG9yLXZlcnRpY2FsOnBhcmFncmFwaDtt
c28tZWxlbWVudC1hbmNob3ItaG9yaXpvbnRhbDpjb2x1bW47bXNvLWhlaWdodC1ydWxlOmV4YWN0
bHkiPg0KPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo5LjBwdDtmb250LWZhbWlseTomcXVvdDtBcmlh
bCZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiNBMEEwQTAiPklNUE9SVEFOVCBOT1RJQ0U6IFBsZWFz
ZSBub3RlIHRoYXQgdGhpcyBXZWJleCBzZXJ2aWNlIGFsbG93cyBhdWRpbyBhbmQgb3RoZXIgaW5m
b3JtYXRpb24gc2VudCBkdXJpbmcgdGhlIHNlc3Npb24gdG8gYmUgcmVjb3JkZWQsIHdoaWNoIG1h
eSBiZSBkaXNjb3ZlcmFibGUgaW4gYSBsZWdhbCBtYXR0ZXIuIEJ5IGpvaW5pbmcNCiB0aGlzIHNl
c3Npb24sIHlvdSBhdXRvbWF0aWNhbGx5IGNvbnNlbnQgdG8gc3VjaCByZWNvcmRpbmdzLiBJZiB5
b3UgZG8gbm90IGNvbnNlbnQgdG8gYmVpbmcgcmVjb3JkZWQsIGRpc2N1c3MgeW91ciBjb25jZXJu
cyB3aXRoIHRoZSBob3N0IG9yIGRvIG5vdCBqb2luIHRoZSBzZXNzaW9uLjwvc3Bhbj48bzpwPjwv
bzpwPjwvcD4NCjwvdGQ+DQo8L3RyPg0KPC90Ym9keT4NCjwvdGFibGU+DQo8L3RkPg0KPC90cj4N
CjwvdGJvZHk+DQo8L3RhYmxlPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9ImNhcmV0LWNv
bG9yOiByZ2IoMCwgMCwgMCk7Zm9udC12YXJpYW50LWNhcHM6IG5vcm1hbDtvcnBoYW5zOiBhdXRv
O3RleHQtYWxpZ246c3RhcnQ7d2lkb3dzOiBhdXRvOy13ZWJraXQtdGV4dC1zaXplLWFkanVzdDog
YXV0bzstd2Via2l0LXRleHQtc3Ryb2tlLXdpZHRoOiAwcHg7d29yZC1zcGFjaW5nOjBweCI+DQo8
c3BhbiBzdHlsZT0iY29sb3I6YmxhY2siPiZuYnNwOzwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6
YmxhY2siPjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFu
IHN0eWxlPSJmb250LXNpemU6MTEuMHB0Ij48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8
L2Rpdj4NCjwvYm9keT4NCjwvaHRtbD4NCg==

--_000_B99B66EBA62C4CD08CA036462F71973Bericssoncom_--


From nobody Wed Nov  6 09:11:24 2019
Return-Path: <francesca.palombini@ericsson.com>
X-Original-To: cbor@ietfa.amsl.com
Delivered-To: cbor@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 2E9BC1209D7; Wed,  6 Nov 2019 09:11:20 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.001
X-Spam-Level: 
X-Spam-Status: No, score=-2.001 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=ericsson.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id BYEJ9kRHrKiM; Wed,  6 Nov 2019 09:11:17 -0800 (PST)
Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-eopbgr60084.outbound.protection.outlook.com [40.107.6.84]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 8D27F1209B3; Wed,  6 Nov 2019 09:11:17 -0800 (PST)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=NyarOn3WaoF25kT3YyxZYKomZ4ZVnt6kPqdMV/Rq0uI8EzcSRJEado3+H6D7Uh+jaaKLeoyqqTGJ5Q+J3n4SPZNtKGcrp7ph2C8cBbCizbmiclFGhlirUhuK9QCNBlHn9GRXlsZEzgaa5OHy23c+XWX7kuIwiEtseKs5aKFaFvDn4La3Mgz0KVUmJopjte7CSu7Mv0DDWvLotOtHtcC4DC5em7DLl8OezZcO+mYQQwTiNnVb1eVvlFwrwnmE887wCQ4VWmcbQ+WGUj9to9+0YRKfCYf6PUGMTl+TV2Kc+a8hkF4ZB80CwY/CMFWIuje7ZjCHc+Nzb5n2GiKoL6P22w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;  s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=w3bWssVq2ztmuvRnM8jUUByvnh2LfgvvovUOJEDFioA=; b=jQ6GFg05wybJoixQescgeLAET5j7DPcejzaCmW7hmRGEh4FkrIcDQdYLQmi6YpJwuT09oadMhB6zvdhM7J1CJHzomLcfHNiGxOwja6wvsK2VqLOp1bBIqW0moiycSmJ1aRhNQ0/mQlwmzsBIMWUgyLMNr0gDxmYEuxWWjEnzpRtxzs4ObBG9iGsMYJeO6Q1yY6LYxeMp6SElBxVkhh+OjUmdQvr+0mDP5JDD2OjejpzSvLIOypt7PCJyhr8l6Gg0Euwxmge81wVaUcy3cz92tHynvMlUgqx5QjDcoGr0vfuS8++bshCodRaHQzBmJ08spMxVT+GLr1h+piwiYevo6w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=ericsson.com; dmarc=pass action=none header.from=ericsson.com; dkim=pass header.d=ericsson.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ericsson.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=w3bWssVq2ztmuvRnM8jUUByvnh2LfgvvovUOJEDFioA=; b=LLz/MhlORWgePAYW0+2p8ptAx2JYTd1OviFjFVhGkMvkaCCWL/O/+cKRpXfVx7JnXNcuYNpyATttlD0+NIevyMHQW33Fq6ZsHOT4Zs8oCnH1BW8czwbvWVpTLrXVNmRbfB6AXhNrpEJwDs4MnTJ4082R6s0M64ZHTHLTCHWEPZY=
Received: from VI1PR07MB5469.eurprd07.prod.outlook.com (20.178.14.214) by VI1PR07MB4525.eurprd07.prod.outlook.com (20.177.57.152) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2430.16; Wed, 6 Nov 2019 17:11:13 +0000
Received: from VI1PR07MB5469.eurprd07.prod.outlook.com ([fe80::a8d5:a784:a19:5c76]) by VI1PR07MB5469.eurprd07.prod.outlook.com ([fe80::a8d5:a784:a19:5c76%6]) with mapi id 15.20.2430.017; Wed, 6 Nov 2019 17:11:13 +0000
From: Francesca Palombini <francesca.palombini@ericsson.com>
To: "cbor@ietf.org" <cbor@ietf.org>
CC: "cbor-chairs@ietf.org" <cbor-chairs@ietf.org>
Thread-Topic: IETF106 agenda
Thread-Index: AQHVlMUwbZvE2ljsIkeDMkQUTHKzCw==
Date: Wed, 6 Nov 2019 17:11:12 +0000
Message-ID: <3C487045-FFA3-4DC2-82E3-FB885BA34D44@ericsson.com>
Accept-Language: en-GB, en-US
Content-Language: en-GB
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: spf=none (sender IP is ) smtp.mailfrom=francesca.palombini@ericsson.com; 
x-originating-ip: [95.192.17.88]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: ab79ac72-3c29-4b1f-5c92-08d762dc53b5
x-ms-traffictypediagnostic: VI1PR07MB4525:
x-ms-exchange-purlcount: 1
x-microsoft-antispam-prvs: <VI1PR07MB4525E9BFA450CEB7DA69A9B698790@VI1PR07MB4525.eurprd07.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:9508;
x-forefront-prvs: 02135EB356
x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(376002)(136003)(346002)(366004)(396003)(39860400002)(189003)(199004)(8676002)(6306002)(26005)(5660300002)(36756003)(66066001)(54896002)(66946007)(66556008)(9326002)(64756008)(66446008)(66476007)(4326008)(2616005)(476003)(186003)(236005)(6512007)(76116006)(91956017)(6506007)(44832011)(2906002)(450100002)(7116003)(33656002)(2351001)(966005)(3846002)(478600001)(558084003)(99286004)(316002)(14454004)(5640700003)(81156014)(1730700003)(606006)(7736002)(81166006)(86362001)(71200400001)(2501003)(486006)(8936002)(6436002)(102836004)(6486002)(6916009)(71190400001)(25786009)(6116002)(256004); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR07MB4525; H:VI1PR07MB5469.eurprd07.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; 
received-spf: None (protection.outlook.com: ericsson.com does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: R3RQOx5KqVCh00naTIb18fQmDsPqPZwhL6lXiARyQm+rBeWqi9Yl8Tn7HfSwvI0ZsH96MbdGmAOB2Bf7RTIkY8lYViSKZ1HCOQFryPzV9oXsrRULayirbgikcly47/lekPDsPg3lfdTRFx02ODZF5UPPRXHWA1sR2U4PfprAckmI/Iam0dWqT8xLJYGMCMltmjbjh10l+HflfrvgYFCgnhjfSVux4GVifupKSyAxvRrVrDOULFUNptu2LMELHQvjVVYQSnWi3zqSlgHY5AlocJfPqwajseVP9/hjapvPDgKJulJJlLwZoDVO/+eGCM3kK9JUZri57IwOVApICL3p47AR6BKsyDyhPve/CDxtKNbKbAnuGpD8UgEflPi/dXquy1r4FR5GiUKRZUrPcpj/mxoWVpIpFW221Z/cEnuxFqJGsjRzU8HNdnoI3z72D7/xNRcpXgAQODEAf5r5hbvdGMcfMAYTJMPQGw7GxtA47xg=
x-ms-exchange-transport-forked: True
Content-Type: multipart/alternative; boundary="_000_3C487045FFA34DC282E3FB885BA34D44ericssoncom_"
MIME-Version: 1.0
X-OriginatorOrg: ericsson.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ab79ac72-3c29-4b1f-5c92-08d762dc53b5
X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Nov 2019 17:11:13.1417 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 92e84ceb-fbfd-47ab-be52-080c6b87953f
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: Vi2g2A5g+u0BclbGfOzpZS6ilskzH+hhp4/MYkTaOdSWY+cxQWjDeBY2kIrYe4/Tm6u4SPuzA5kvNCT5NNVaYdWALV0obQ5Gxx6w7zrhaT9ggq4qS5nVDXw7hpUaHVdY
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR07MB4525
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/jwhfSCxMBzBpOSWap6I9i5qlwy0>
Subject: [Cbor] IETF106 agenda
X-BeenThere: cbor@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Concise Binary Object Representation \(CBOR\)" <cbor.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cbor>, <mailto:cbor-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cbor/>
List-Post: <mailto:cbor@ietf.org>
List-Help: <mailto:cbor-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cbor>, <mailto:cbor-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 06 Nov 2019 17:11:23 -0000

--_000_3C487045FFA34DC282E3FB885BA34D44ericssoncom_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

SGksDQoNCkEgZHJhZnQgYWdlbmRhIGZvciBJRVRGMTA2IGhhcyBiZWVuIHVwbG9hZGVkIHRvIHRo
ZSBkYXRhdHJhY2tlcjoNCmh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvbWVldGluZy8xMDYv
bWF0ZXJpYWxzL2FnZW5kYS0xMDYtY2Jvci0wMC50eHQNCg0KUGxlYXNlIGxldCB1cyBjaGFpcnMg
a25vdyBpZiB5b3UgaGF2ZSBhbnkgZmVlZGJhY2sgYWJvdXQgdGltZXNsb3RzLCBhbmQgaWYgeW91
J2QgbGlrZSB0byBhZGQgKG9yIHJlbW92ZSkgaXRlbXMuDQoNClRoYW5rcywNCkZyYW5jZXNjYQ0K

--_000_3C487045FFA34DC282E3FB885BA34D44ericssoncom_
Content-Type: text/html; charset="utf-8"
Content-ID: <7988CDBB9EA986409A10C8F3451891CD@eurprd07.prod.outlook.com>
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6bz0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6b2ZmaWNlIiB4
bWxuczp3PSJ1cm46c2NoZW1hcy1taWNyb3NvZnQtY29tOm9mZmljZTp3b3JkIiB4bWxuczptPSJo
dHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS8yMDA0LzEyL29tbWwiIHhtbG5zPSJo
dHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwIj4NCjxoZWFkPg0KPG1ldGEgaHR0cC1lcXVp
dj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPg0KPG1l
dGEgbmFtZT0iR2VuZXJhdG9yIiBjb250ZW50PSJNaWNyb3NvZnQgV29yZCAxNSAoZmlsdGVyZWQg
bWVkaXVtKSI+DQo8c3R5bGU+PCEtLQ0KLyogRm9udCBEZWZpbml0aW9ucyAqLw0KQGZvbnQtZmFj
ZQ0KCXtmb250LWZhbWlseToiQ2FtYnJpYSBNYXRoIjsNCglwYW5vc2UtMToyIDQgNSAzIDUgNCA2
IDMgMiA0O30NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6Q2FsaWJyaTsNCglwYW5vc2UtMToy
IDE1IDUgMiAyIDIgNCAzIDIgNDt9DQovKiBTdHlsZSBEZWZpbml0aW9ucyAqLw0KcC5Nc29Ob3Jt
YWwsIGxpLk1zb05vcm1hbCwgZGl2Lk1zb05vcm1hbA0KCXttYXJnaW46MGNtOw0KCW1hcmdpbi1i
b3R0b206LjAwMDFwdDsNCglmb250LXNpemU6MTIuMHB0Ow0KCWZvbnQtZmFtaWx5OiJDYWxpYnJp
IixzYW5zLXNlcmlmOw0KCW1zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTO30NCmE6bGluaywgc3Bh
bi5Nc29IeXBlcmxpbmsNCgl7bXNvLXN0eWxlLXByaW9yaXR5Ojk5Ow0KCWNvbG9yOiMwNTYzQzE7
DQoJdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9DQphOnZpc2l0ZWQsIHNwYW4uTXNvSHlwZXJs
aW5rRm9sbG93ZWQNCgl7bXNvLXN0eWxlLXByaW9yaXR5Ojk5Ow0KCWNvbG9yOiM5NTRGNzI7DQoJ
dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9DQpzcGFuLkVtYWlsU3R5bGUxNw0KCXttc28tc3R5
bGUtdHlwZTpwZXJzb25hbC1jb21wb3NlOw0KCWZvbnQtZmFtaWx5OiJDYWxpYnJpIixzYW5zLXNl
cmlmOw0KCWNvbG9yOndpbmRvd3RleHQ7fQ0KLk1zb0NocERlZmF1bHQNCgl7bXNvLXN0eWxlLXR5
cGU6ZXhwb3J0LW9ubHk7DQoJZm9udC1mYW1pbHk6IkNhbGlicmkiLHNhbnMtc2VyaWY7DQoJbXNv
LWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVM7fQ0KQHBhZ2UgV29yZFNlY3Rpb24xDQoJe3NpemU6NjEy
LjBwdCA3OTIuMHB0Ow0KCW1hcmdpbjo3Mi4wcHQgNzIuMHB0IDcyLjBwdCA3Mi4wcHQ7fQ0KZGl2
LldvcmRTZWN0aW9uMQ0KCXtwYWdlOldvcmRTZWN0aW9uMTt9DQotLT48L3N0eWxlPg0KPC9oZWFk
Pg0KPGJvZHkgbGFuZz0iRU4tR0IiIGxpbms9IiMwNTYzQzEiIHZsaW5rPSIjOTU0RjcyIj4NCjxk
aXYgY2xhc3M9IldvcmRTZWN0aW9uMSI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5n
PSJTViIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQiPkhpLDxvOnA+PC9vOnA+PC9zcGFuPjwvcD4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IlNWIiBzdHlsZT0iZm9udC1zaXplOjEx
LjBwdCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQiPkEgZHJhZnQgYWdlbmRhIGZvciBJRVRGMTA2
IGhhcyBiZWVuIHVwbG9hZGVkIHRvIHRoZSBkYXRhdHJhY2tlcjo8bzpwPjwvbzpwPjwvc3Bhbj48
L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdCI+
PGEgaHJlZj0iaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9tZWV0aW5nLzEwNi9tYXRlcmlh
bHMvYWdlbmRhLTEwNi1jYm9yLTAwLnR4dCI+aHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9t
ZWV0aW5nLzEwNi9tYXRlcmlhbHMvYWdlbmRhLTEwNi1jYm9yLTAwLnR4dDwvYT48bzpwPjwvbzpw
Pjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXpl
OjExLjBwdCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQiPlBsZWFzZSBsZXQgdXMgY2hhaXJzIGtu
b3cgaWYgeW91IGhhdmUgYW55IGZlZWRiYWNrIGFib3V0IHRpbWVzbG90cywgYW5kIGlmIHlvdSdk
IGxpa2UgdG8gYWRkIChvciByZW1vdmUpIGl0ZW1zLjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0Ij48bzpwPiZu
YnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0i
Zm9udC1zaXplOjExLjBwdCI+VGhhbmtzLDxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0Ij5GcmFuY2VzY2E8bzpw
PjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjwvYm9keT4NCjwvaHRtbD4NCg==

--_000_3C487045FFA34DC282E3FB885BA34D44ericssoncom_--


From nobody Wed Nov  6 09:12:53 2019
Return-Path: <cabo@tzi.org>
X-Original-To: cbor@ietfa.amsl.com
Delivered-To: cbor@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 9B46D120875; Wed,  6 Nov 2019 09:12:41 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.2
X-Spam-Level: 
X-Spam-Status: No, score=-4.2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=unavailable autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id tU9mzR50_O8x; Wed,  6 Nov 2019 09:12:39 -0800 (PST)
Received: from gabriel-vm-2.zfn.uni-bremen.de (gabriel-vm-2.zfn.uni-bremen.de [134.102.50.17]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 94E57120860; Wed,  6 Nov 2019 09:12:39 -0800 (PST)
Received: from [192.168.217.102] (p548DC893.dip0.t-ipconnect.de [84.141.200.147]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by gabriel-vm-2.zfn.uni-bremen.de (Postfix) with ESMTPSA id 477Y4j4pvGzyWt; Wed,  6 Nov 2019 18:12:37 +0100 (CET)
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 11.5 \(3445.9.1\))
From: Carsten Bormann <cabo@tzi.org>
In-Reply-To: <FF14A414-758A-462A-ADF4-3B6EF051FE32@juniper.net>
Date: Wed, 6 Nov 2019 18:12:37 +0100
Cc: Deborah Brungard <db3546@att.com>, Alvaro Retana <aretana.ietf@gmail.com>,  t2trg@irtf.org, cbor@ietf.org
X-Mao-Original-Outgoing-Id: 594753155.580314-500b73e88c3ba69976f774d2d4016f76
Content-Transfer-Encoding: quoted-printable
Message-Id: <26630BB7-A8A6-4A35-BF22-22CEDFDBE3E3@tzi.org>
References: <4BD0608C-A277-4130-B85C-D7A75FAEFD8F@smcquistin.uk> <C464EE6D-3DF8-4101-AA26-BD38A61F8E7B@tzi.org> <FF14A414-758A-462A-ADF4-3B6EF051FE32@juniper.net>
To: "hackathon@ietf.org" <hackathon@ietf.org>
X-Mailer: Apple Mail (2.3445.9.1)
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/jqSrqV7M74KsCLUmU3FfIAmaWBk>
Subject: Re: [Cbor] [hackathon] Formal Languages at the Hackathon
X-BeenThere: cbor@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Concise Binary Object Representation \(CBOR\)" <cbor.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cbor>, <mailto:cbor-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cbor/>
List-Post: <mailto:cbor@ietf.org>
List-Help: <mailto:cbor-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cbor>, <mailto:cbor-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 06 Nov 2019 17:12:42 -0000

On Nov 6, 2019, at 17:52, Antoni Przygienda =
<prz=3D40juniper.net@dmarc.ietf.org> wrote:
>=20
> enhance GRPC or thrift

There are several of these integrated modeling language + encoding =
scheme ecosystems we could latch ourselves up to.  Actually we did that =
already with ASN.1 a long time ago, and it is interesting what people =
who have used it for a few decades now think about it (*).

Obviously there are some requirements for data modeling (mostly around =
handling evolution) that are better served by using a mature FDT =
approach than by graphical representation of various encoding stages =
(the =E2=80=9Cbox notation=E2=80=9D we love from RFC79x etc.). =20

When the encoding dominates your thinking, they get in the way (e.g., =
look at how HTTP/2 is encoded).  So being able to describe an arbitrary =
bespoke encoding with an FDT (like Quentin=E2=80=99s work or YOUPI do, =
within the limits of their expressibility) may be useful in those =
spaces.

When the complexity of the data being modeled dominates your thinking, =
you want a solid encoding scheme such as XML or JSON or CBOR (or you can =
do the latch-up alluded to above).
For standards that are expected to live for a while (=E2=80=9Cdesign for =
decades=E2=80=9D), I prefer situations where the encoding scheme has a =
life of its own, independent of the FDT, so you can swap your FDT if the =
old one is broken (just as we moved from W3C XSD to Relax-NG for most =
XML work).  The integrated approaches may have their own advantages, =
especially in the time-to-market department, while usually wedding you =
to a specific toolchain (or tool ecosystem, as with ASN.1).

Gr=C3=BC=C3=9Fe, Carsten

(*) Especially after you compensate for the inevitable occurrence of =
Stockholm syndrome.


From nobody Wed Nov  6 09:16:40 2019
Return-Path: <cabo@tzi.org>
X-Original-To: cbor@ietfa.amsl.com
Delivered-To: cbor@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 304BA120072 for <cbor@ietfa.amsl.com>; Wed,  6 Nov 2019 09:16:27 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.199
X-Spam-Level: 
X-Spam-Status: No, score=-4.199 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=unavailable autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id EEbL79jCJktm for <cbor@ietfa.amsl.com>; Wed,  6 Nov 2019 09:16:24 -0800 (PST)
Received: from gabriel-vm-2.zfn.uni-bremen.de (gabriel-vm-2.zfn.uni-bremen.de [134.102.50.17]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 61776120071 for <cbor@ietf.org>; Wed,  6 Nov 2019 09:16:24 -0800 (PST)
Received: from [192.168.217.102] (p548DC893.dip0.t-ipconnect.de [84.141.200.147]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by gabriel-vm-2.zfn.uni-bremen.de (Postfix) with ESMTPSA id 477Y9275DSzymQ; Wed,  6 Nov 2019 18:16:22 +0100 (CET)
From: Carsten Bormann <cabo@tzi.org>
Content-Type: multipart/alternative; boundary="Apple-Mail=_EC89DECC-B784-4A4B-8D8C-C5626E9A46A3"
X-Mao-Original-Outgoing-Id: 594753380.4711601-3d13068ba28b8658cd77faa116286851
Mime-Version: 1.0 (Mac OS X Mail 11.5 \(3445.9.1\))
Date: Wed, 6 Nov 2019 18:16:22 +0100
Message-Id: <8C96C2EF-31B5-4ACD-BDFE-11E671BEE06F@tzi.org>
References: <C464EE6D-3DF8-4101-AA26-BD38A61F8E7B@tzi.org>
To: cbor@ietf.org, t2trg@irtf.org
X-Mailer: Apple Mail (2.3445.9.1)
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/ZBKFAbo6wpY1g8C4L1yEDx1st44>
Subject: [Cbor] Fwd: [hackathon] Formal Languages at the Hackathon
X-BeenThere: cbor@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Concise Binary Object Representation \(CBOR\)" <cbor.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cbor>, <mailto:cbor-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cbor/>
List-Post: <mailto:cbor@ietf.org>
List-Help: <mailto:cbor-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cbor>, <mailto:cbor-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 06 Nov 2019 17:16:27 -0000

--Apple-Mail=_EC89DECC-B784-4A4B-8D8C-C5626E9A46A3
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8

Interesting discussion at the hackathon mailing list=E2=80=A6

BTW, we are thinking about getting together in a corner of the hackathon =
room with all the people that work on a hackathon project that employs =
CBOR, so we can have some chatting about cross-pollination and =
coordination of that side as well.

Gr=C3=BC=C3=9Fe, Carsten


> Begin forwarded message:
>=20
> From: Carsten Bormann <cabo@tzi.org>
> Subject: Re: [hackathon] Formal Languages at the Hackathon
> Date: November 6, 2019 at 16:40:11 GMT+1
> To: hackathon@ietf.org
> Cc: Carsten Bormann <cabo@tzi.org>
> Archived-At: =
<https://mailarchive.ietf.org/arch/msg/hackathon/Bu-WHQtU-8gZeiX5O16IZ1bFk=
Ow>
>=20
> I=E2=80=99m sharing the below with t2trg as it appears to be highly =
related to some of our current work.
>=20
> I=E2=80=99d also like to point out that formal description techniques =
(FDT) have been used a lot at the IETF and the IRTF:
>=20
> * we know very well how to use ABNF (RFC 5234) for our text-based =
protocols.  We don=E2=80=99t really have a good way to work with =
multiple layers of ABNF, though; see the difference between RFC 5988 and =
RFC 8288 for some recent improvements (but the link between the layers =
is not formal).  ABNF tools exist for both checking ABNF specs and for =
automatically generating instances (examples).
>=20
> * specific areas have had their FDTs, e.g. RFC 4997 for ROHC, YANG for =
management, etc.  Specifically YANG is increasingly used not only for =
its original purpose, describing management information bases, but also =
for data on the wire (yang-data).  YOUPI [1] is an interesting YANG =
extension for describing arbitrary binary data.
>=20
> [1]: https://tools.ietf.org/html/draft-petrov-t2trg-youpi
>=20
> * some RFCs were to a large extent machine-generated text (e.g., RFC =
7400) or machine-verified (e.g., RFC 8428), based on models in various =
FDTs.  Some of these are very domain-specific, but we could still be =
better on sharing tools (and long-term preserving the sources that =
generated those RFCs).
>=20
> * there is a lively discussion about adding (structural) data modeling =
(a.k.a. =E2=80=9Cschemas=E2=80=9D) to JSON over at the mailing list of =
the closed JSON WG (e.g., [2]).  While that discussion is ongoing, we =
already have CDDL (RFC 8610) for structurally modeling CBOR and JSON =
data.  Maybe one size does not fit all here.  Similar to ABNF, CDDL =
tools can check specs, verify instances against a spec, extract/generate =
code snippets from specs, and generate instances/examples from specs.  =
One next step here is adding links to application semantics.
>=20
> [2]: https://tools.ietf.org/html/draft-ucarion-jddf
>=20
> * the WISHI activity in T2TRG looks at modeling data shapes, =
interaction modeling, and potentially adding protocol bindings towards =
the wire and application semantics towards the application.  Several =
SDOs are providing interesting study subjects, e.g., W3C WoT with their =
Thing Description (TD) [3] and the still somewhat stealthy OneDM group =
with the Simple Definition Format (SDF) [4].  We=E2=80=99ll discuss this =
on the Friday before the IETF [5] and work on tools for it at the =
Hackathon (look for =E2=80=9CWISHI=E2=80=9D).
>=20
> [3]: https://www.w3.org/TR/wot-thing-description/
> [4]: https://github.com/one-data-model/language/blob/master/sdf.md
> [5]: https://github.com/t2trg/2019-11-singapore
> (Yes, you can still register.)
>=20
> I understand that the =E2=80=9CFormal Languages=E2=80=9D activity =
mostly addresses their use in IETF specifications, and I like that angle =
=E2=80=94 there are other uses of formal description techniques that =
possible have a different set of requirements, which sometimes cause the =
requirements of spec writers to be forgotten [6].
>=20
> [6]: =
https://www.iab.org/wp-content/IAB-uploads/2016/03/Noise-in-specifications=
-hurts.pdf
>=20
> So I=E2=80=99m really looking forward to the discussions on Friday, =
November 15th [5] and at the Hackathon.  Getting something going on =
cross-pollinating and coordinating the various FDT activities at IETF =
and IRTF might be a good medium term goal.
>=20
> Gr=C3=BC=C3=9Fe, Carsten
>=20
>=20
>=20
>> On Nov 6, 2019, at 11:09, Stephen McQuistin <sm@smcquistin.uk> wrote:
>>=20
>> Hi all,
>>=20
>> Marc Petit-Huguenin and I are championing formal languages projects =
at the hackathon in Singapore. Broadly, these
>> projects seek to improve the quality of standards by using formal and =
structured languages in specification documents.
>> These documents can then be parsed by tooling that can, for example, =
generate parser code or verify properties for the
>> protocol being specified.
>>=20
>> There will be two formal languages projects being worked on: =
Augmented Packet Header Diagrams and Computerate
>> Specifying. Details for both projects are available on the Wiki at =
https://trac.ietf.org/trac/ietf/meeting/wiki/106hackathon/formal-languages=
,
>> but I'll give a brief outline of the Augmented Packet Header Diagrams =
project here. I'll let Marc describe his
>> Computerate Specifying project separately.
>>=20
>> The Augmented Packet Header Diagram format =
(draft-mcquistin-augmented-ascii-diagrams) is a consistent packet header
>> diagram format and accompanying structured text constructs that allow =
for the parsing process of protocol headers to be
>> fully specified. This provides support for the automatic generation =
of parser code, and for other benefits that follow
>> from being able to use tooling to process packet header diagrams.
>>=20
>> Our goal at the hackathon is to improve both the Augmented Packet =
Header Diagram format itself, by attempting to rewrite
>> existing I-Ds and RFCs using its syntax, and to improve the tooling, =
and in particular, its Rust parser generator.
>>=20
>> Please join us: we are particularly interested in examples of packet =
header diagrams that might be challenging to write
>> in the format our draft describes, and in how our tooling might fit =
into existing workflows.
>>=20
>> I-D: =
https://datatracker.ietf.org/doc/draft-mcquistin-augmented-ascii-diagrams
>> Getting started information: =
https://trac.ietf.org/trac/ietf/meeting/wiki/106hackathon/formal-languages=

>>=20
>> Thanks,
>>=20
>> Stephen
>>=20
>>=20
>>=20
>> _______________________________________________
>> hackathon mailing list
>> hackathon@ietf.org
>> https://www.ietf.org/mailman/listinfo/hackathon
>=20
> _______________________________________________
> hackathon mailing list
> hackathon@ietf.org
> https://www.ietf.org/mailman/listinfo/hackathon


--Apple-Mail=_EC89DECC-B784-4A4B-8D8C-C5626E9A46A3
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=utf-8

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html; =
charset=3Dutf-8"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; line-break: after-white-space;" =
class=3D"">Interesting discussion at the hackathon mailing list=E2=80=A6<d=
iv class=3D""><br class=3D""></div><div class=3D"">BTW, we are thinking =
about getting together in a corner of the hackathon room with all the =
people that work on a hackathon project that employs CBOR, so we can =
have some chatting about cross-pollination and coordination of that side =
as well.</div><div class=3D""><div><br class=3D""></div><div><div>Gr=C3=BC=
=C3=9Fe, Carsten</div><div class=3D""><br class=3D""></div></div><div><br =
class=3D""><blockquote type=3D"cite" class=3D""><div class=3D"">Begin =
forwarded message:</div><br class=3D"Apple-interchange-newline"><div =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px;" class=3D""><span style=3D"font-family: =
-webkit-system-font, Helvetica Neue, Helvetica, sans-serif; =
color:rgba(0, 0, 0, 1.0);" class=3D""><b class=3D"">From: =
</b></span><span style=3D"font-family: -webkit-system-font, Helvetica =
Neue, Helvetica, sans-serif;" class=3D"">Carsten Bormann &lt;<a =
href=3D"mailto:cabo@tzi.org" class=3D"">cabo@tzi.org</a>&gt;<br =
class=3D""></span></div><div style=3D"margin-top: 0px; margin-right: =
0px; margin-bottom: 0px; margin-left: 0px;" class=3D""><span =
style=3D"font-family: -webkit-system-font, Helvetica Neue, Helvetica, =
sans-serif; color:rgba(0, 0, 0, 1.0);" class=3D""><b class=3D"">Subject: =
</b></span><span style=3D"font-family: -webkit-system-font, Helvetica =
Neue, Helvetica, sans-serif;" class=3D""><b class=3D"">Re: [hackathon] =
Formal Languages at the Hackathon</b><br class=3D""></span></div><div =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px;" class=3D""><span style=3D"font-family: =
-webkit-system-font, Helvetica Neue, Helvetica, sans-serif; =
color:rgba(0, 0, 0, 1.0);" class=3D""><b class=3D"">Date: =
</b></span><span style=3D"font-family: -webkit-system-font, Helvetica =
Neue, Helvetica, sans-serif;" class=3D"">November 6, 2019 at 16:40:11 =
GMT+1<br class=3D""></span></div><div style=3D"margin-top: 0px; =
margin-right: 0px; margin-bottom: 0px; margin-left: 0px;" class=3D""><span=
 style=3D"font-family: -webkit-system-font, Helvetica Neue, Helvetica, =
sans-serif; color:rgba(0, 0, 0, 1.0);" class=3D""><b class=3D"">To: =
</b></span><span style=3D"font-family: -webkit-system-font, Helvetica =
Neue, Helvetica, sans-serif;" class=3D""><a =
href=3D"mailto:hackathon@ietf.org" class=3D"">hackathon@ietf.org</a><br =
class=3D""></span></div><div style=3D"margin-top: 0px; margin-right: =
0px; margin-bottom: 0px; margin-left: 0px;" class=3D""><span =
style=3D"font-family: -webkit-system-font, Helvetica Neue, Helvetica, =
sans-serif; color:rgba(0, 0, 0, 1.0);" class=3D""><b class=3D"">Cc: =
</b></span><span style=3D"font-family: -webkit-system-font, Helvetica =
Neue, Helvetica, sans-serif;" class=3D"">Carsten Bormann &lt;<a =
href=3D"mailto:cabo@tzi.org" class=3D"">cabo@tzi.org</a>&gt;<br =
class=3D""></span></div><div style=3D"margin-top: 0px; margin-right: =
0px; margin-bottom: 0px; margin-left: 0px;" class=3D""><span =
style=3D"font-family: -webkit-system-font, Helvetica Neue, Helvetica, =
sans-serif; color:rgba(0, 0, 0, 1.0);" class=3D""><b =
class=3D"">Archived-At: </b></span><span style=3D"font-family: =
-webkit-system-font, Helvetica Neue, Helvetica, sans-serif;" =
class=3D"">&lt;<a =
href=3D"https://mailarchive.ietf.org/arch/msg/hackathon/Bu-WHQtU-8gZeiX5O1=
6IZ1bFkOw" =
class=3D"">https://mailarchive.ietf.org/arch/msg/hackathon/Bu-WHQtU-8gZeiX=
5O16IZ1bFkOw</a>&gt;<br class=3D""></span></div><br class=3D""><div =
class=3D""><div class=3D"">I=E2=80=99m sharing the below with t2trg as =
it appears to be highly related to some of our current work.<br =
class=3D""><br class=3D"">I=E2=80=99d also like to point out that formal =
description techniques (FDT) have been used a lot at the IETF and the =
IRTF:<br class=3D""><br class=3D"">* we know very well how to use ABNF =
(RFC 5234) for our text-based protocols. &nbsp;We don=E2=80=99t really =
have a good way to work with multiple layers of ABNF, though; see the =
difference between RFC 5988 and RFC 8288 for some recent improvements =
(but the link between the layers is not formal). &nbsp;ABNF tools exist =
for both checking ABNF specs and for automatically generating instances =
(examples).<br class=3D""><br class=3D"">* specific areas have had their =
FDTs, e.g. RFC 4997 for ROHC, YANG for management, etc. =
&nbsp;Specifically YANG is increasingly used not only for its original =
purpose, describing management information bases, but also for data on =
the wire (yang-data). &nbsp;YOUPI [1] is an interesting YANG extension =
for describing arbitrary binary data.<br class=3D""><br class=3D"">[1]: =
<a href=3D"https://tools.ietf.org/html/draft-petrov-t2trg-youpi" =
class=3D"">https://tools.ietf.org/html/draft-petrov-t2trg-youpi</a><br =
class=3D""><br class=3D"">* some RFCs were to a large extent =
machine-generated text (e.g., RFC 7400) or machine-verified (e.g., RFC =
8428), based on models in various FDTs. &nbsp;Some of these are very =
domain-specific, but we could still be better on sharing tools (and =
long-term preserving the sources that generated those RFCs).<br =
class=3D""><br class=3D"">* there is a lively discussion about adding =
(structural) data modeling (a.k.a. =E2=80=9Cschemas=E2=80=9D) to JSON =
over at the mailing list of the closed JSON WG (e.g., [2]). &nbsp;While =
that discussion is ongoing, we already have CDDL (RFC 8610) for =
structurally modeling CBOR and JSON data. &nbsp;Maybe one size does not =
fit all here. &nbsp;Similar to ABNF, CDDL tools can check specs, verify =
instances against a spec, extract/generate code snippets from specs, and =
generate instances/examples from specs. &nbsp;One next step here is =
adding links to application semantics.<br class=3D""><br class=3D"">[2]: =
<a href=3D"https://tools.ietf.org/html/draft-ucarion-jddf" =
class=3D"">https://tools.ietf.org/html/draft-ucarion-jddf</a><br =
class=3D""><br class=3D"">* the WISHI activity in T2TRG looks at =
modeling data shapes, interaction modeling, and potentially adding =
protocol bindings towards the wire and application semantics towards the =
application. &nbsp;Several SDOs are providing interesting study =
subjects, e.g., W3C WoT with their Thing Description (TD) [3] and the =
still somewhat stealthy OneDM group with the Simple Definition Format =
(SDF) [4]. &nbsp;We=E2=80=99ll discuss this on the Friday before the =
IETF [5] and work on tools for it at the Hackathon (look for =
=E2=80=9CWISHI=E2=80=9D).<br class=3D""><br class=3D"">[3]: <a =
href=3D"https://www.w3.org/TR/wot-thing-description/" =
class=3D"">https://www.w3.org/TR/wot-thing-description/</a><br =
class=3D"">[4]: <a =
href=3D"https://github.com/one-data-model/language/blob/master/sdf.md" =
class=3D"">https://github.com/one-data-model/language/blob/master/sdf.md</=
a><br class=3D"">[5]: <a =
href=3D"https://github.com/t2trg/2019-11-singapore" =
class=3D"">https://github.com/t2trg/2019-11-singapore</a><br =
class=3D"">(Yes, you can still register.)<br class=3D""><br class=3D"">I =
understand that the =E2=80=9CFormal Languages=E2=80=9D activity mostly =
addresses their use in IETF specifications, and I like that angle =E2=80=94=
 there are other uses of formal description techniques that possible =
have a different set of requirements, which sometimes cause the =
requirements of spec writers to be forgotten [6].<br class=3D""><br =
class=3D"">[6]: <a =
href=3D"https://www.iab.org/wp-content/IAB-uploads/2016/03/Noise-in-specif=
ications-hurts.pdf" =
class=3D"">https://www.iab.org/wp-content/IAB-uploads/2016/03/Noise-in-spe=
cifications-hurts.pdf</a><br class=3D""><br class=3D"">So I=E2=80=99m =
really looking forward to the discussions on Friday, November 15th [5] =
and at the Hackathon. &nbsp;Getting something going on cross-pollinating =
and coordinating the various FDT activities at IETF and IRTF might be a =
good medium term goal.<br class=3D""><br class=3D"">Gr=C3=BC=C3=9Fe, =
Carsten<br class=3D""><br class=3D""><br class=3D""><br =
class=3D""><blockquote type=3D"cite" class=3D"">On Nov 6, 2019, at =
11:09, Stephen McQuistin &lt;<a href=3D"mailto:sm@smcquistin.uk" =
class=3D"">sm@smcquistin.uk</a>&gt; wrote:<br class=3D""><br class=3D"">Hi=
 all,<br class=3D""><br class=3D"">Marc Petit-Huguenin and I are =
championing formal languages projects at the hackathon in Singapore. =
Broadly, these<br class=3D"">projects seek to improve the quality of =
standards by using formal and structured languages in specification =
documents.<br class=3D"">These documents can then be parsed by tooling =
that can, for example, generate parser code or verify properties for =
the<br class=3D"">protocol being specified.<br class=3D""><br =
class=3D"">There will be two formal languages projects being worked on: =
Augmented Packet Header Diagrams and Computerate<br class=3D"">Specifying.=
 Details for both projects are available on the Wiki at <a =
href=3D"https://trac.ietf.org/trac/ietf/meeting/wiki/106hackathon/formal-l=
anguages" =
class=3D"">https://trac.ietf.org/trac/ietf/meeting/wiki/106hackathon/forma=
l-languages</a>,<br class=3D"">but I'll give a brief outline of the =
Augmented Packet Header Diagrams project here. I'll let Marc describe =
his<br class=3D"">Computerate Specifying project separately.<br =
class=3D""><br class=3D"">The Augmented Packet Header Diagram format =
(draft-mcquistin-augmented-ascii-diagrams) is a consistent packet =
header<br class=3D"">diagram format and accompanying structured text =
constructs that allow for the parsing process of protocol headers to =
be<br class=3D"">fully specified. This provides support for the =
automatic generation of parser code, and for other benefits that =
follow<br class=3D"">from being able to use tooling to process packet =
header diagrams.<br class=3D""><br class=3D"">Our goal at the hackathon =
is to improve both the Augmented Packet Header Diagram format itself, by =
attempting to rewrite<br class=3D"">existing I-Ds and RFCs using its =
syntax, and to improve the tooling, and in particular, its Rust parser =
generator.<br class=3D""><br class=3D"">Please join us: we are =
particularly interested in examples of packet header diagrams that might =
be challenging to write<br class=3D"">in the format our draft describes, =
and in how our tooling might fit into existing workflows.<br =
class=3D""><br class=3D"">I-D: <a =
href=3D"https://datatracker.ietf.org/doc/draft-mcquistin-augmented-ascii-d=
iagrams" =
class=3D"">https://datatracker.ietf.org/doc/draft-mcquistin-augmented-asci=
i-diagrams</a><br class=3D"">Getting started information: <a =
href=3D"https://trac.ietf.org/trac/ietf/meeting/wiki/106hackathon/formal-l=
anguages" =
class=3D"">https://trac.ietf.org/trac/ietf/meeting/wiki/106hackathon/forma=
l-languages</a><br class=3D""><br class=3D"">Thanks,<br class=3D""><br =
class=3D"">Stephen<br class=3D""><br class=3D""><br class=3D""><br =
class=3D"">_______________________________________________<br =
class=3D"">hackathon mailing list<br class=3D""><a =
href=3D"mailto:hackathon@ietf.org" class=3D"">hackathon@ietf.org</a><br =
class=3D"">https://www.ietf.org/mailman/listinfo/hackathon<br =
class=3D""></blockquote><br =
class=3D"">_______________________________________________<br =
class=3D"">hackathon mailing list<br class=3D""><a =
href=3D"mailto:hackathon@ietf.org" class=3D"">hackathon@ietf.org</a><br =
class=3D"">https://www.ietf.org/mailman/listinfo/hackathon<br =
class=3D""></div></div></blockquote></div><br =
class=3D""></div></body></html>=

--Apple-Mail=_EC89DECC-B784-4A4B-8D8C-C5626E9A46A3--


From nobody Wed Nov  6 09:21:30 2019
Return-Path: <prz@juniper.net>
X-Original-To: cbor@ietfa.amsl.com
Delivered-To: cbor@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 0C0C7120090; Wed,  6 Nov 2019 09:21:05 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.7
X-Spam-Level: 
X-Spam-Status: No, score=-2.7 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=juniper.net
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id neiJLFNLOBNs; Wed,  6 Nov 2019 09:21:03 -0800 (PST)
Received: from mx0a-00273201.pphosted.com (mx0a-00273201.pphosted.com [208.84.65.16]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 76878120089; Wed,  6 Nov 2019 09:21:03 -0800 (PST)
Received: from pps.filterd (m0108159.ppops.net [127.0.0.1]) by mx0a-00273201.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id xA6HHVVL000771; Wed, 6 Nov 2019 09:20:59 -0800
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=juniper.net; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : mime-version; s=PPS1017; bh=f5w85fNAfaHAR2105XxT7EYAW6ol9geVNNPRSWx1Rr8=; b=iA/6pS8OjjFbwYmBkf+p+QCv/k15mjbHwA1cC3wskyaaHSqxORriF4/tKtu1cSZdIegY Xzk+8fgnejF6n+XDMLqrQCQfUt9o8Rq9c9kJSatR243j03ffMD+JVwe/m39sSfdk+1Oa M07PJ6UhZm1XLJxTMXeKpnV41+UIVbsbsDxX1uoeHfu1O3cq1mcdCxeUojh9MgAHBPcQ 0dktk9HI+EPZUPXCmOdh0ijZLXqD8yTiXL1UiX+Kg/Li+m57SqLqPxMmRByiB8/phcRC 59YSpd1EXOiino84gmmUgwY+DIKpeA55fJjeN8MC8pRUkbNGurni5jnwiBch8VS83noR pQ== 
Received: from nam05-dm3-obe.outbound.protection.outlook.com (mail-dm3nam05lp2051.outbound.protection.outlook.com [104.47.49.51]) by mx0a-00273201.pphosted.com with ESMTP id 2w41vd82qe-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Wed, 06 Nov 2019 09:20:59 -0800
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dJK+z7pKmjZizbjubI6J51oNRFijSYVoRBtI7yl3vJ6cdA/J4Tf34F/q8f9QXlbQj+M+3Bh7Fg/nfO/5kKB6xBjcCPAuQOF1a74KEjX18NITJfSS9QdqSZ8+yeDng9PeJYx0XUzfznizKpcz/O1innyvec47JtdHX104UdALxvOpK2jxWbVe3t9zyKnW6EaWzlO6yRDmsDt/WxZiatnEjKl7kE/S5s/I0Bm7n8kdjxB7KgMposTWNFWBa73dk1KDpMBumxNAY8UUGJwVHFqg2odoWww7KZ9h06/1nz6CX5RXj6AjW0KafIdO+5qhsqTEu0+hDgPoYskAREmC8SZGmw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;  s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=f5w85fNAfaHAR2105XxT7EYAW6ol9geVNNPRSWx1Rr8=; b=jiBzIuFPPgemy+OEyVCcdUOk6kJk/uSgfWNJiigfcnYOX61gGi3irtr6FyEwYS5PenbfX8WG+E9PTECncYF0ZDjKsnr+7DthAmP0iaChMjKlXw3V5+C1B5O/f90H37W9L3CpjsdjhFT2wHXjTcGuvjyfw8woHZi8OOtF9qqrv3tf6UVKEPlbKjMSqrq2Of9iblfGuFPZS6H+RB33BIMbJ7BzFcj6vTY5/wmQogkYQl7jij1NOswcbPQRrIVkw6VnyImGb/2PKXpOQnHY3PM8nllH4d9NC0Az5mFJUWv6swQjJW+XwlUr4I/LDD/2TlIXUegrRHqkYQji2/PFofzL2Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=juniper.net; dmarc=pass action=none header.from=juniper.net; dkim=pass header.d=juniper.net; arc=none
Received: from SN6PR05MB5613.namprd05.prod.outlook.com (52.135.109.221) by SN6PR05MB5391.namprd05.prod.outlook.com (52.135.111.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2430.16; Wed, 6 Nov 2019 17:20:57 +0000
Received: from SN6PR05MB5613.namprd05.prod.outlook.com ([fe80::1cff:aada:b864:8c83]) by SN6PR05MB5613.namprd05.prod.outlook.com ([fe80::1cff:aada:b864:8c83%7]) with mapi id 15.20.2430.020; Wed, 6 Nov 2019 17:20:57 +0000
From: Antoni Przygienda <prz@juniper.net>
To: Carsten Bormann <cabo@tzi.org>, "hackathon@ietf.org" <hackathon@ietf.org>
CC: "cbor@ietf.org" <cbor@ietf.org>, "t2trg@irtf.org" <t2trg@irtf.org>, Deborah Brungard <db3546@att.com>, Alvaro Retana <aretana.ietf@gmail.com>
Thread-Topic: [hackathon] Formal Languages at the Hackathon
Thread-Index: AQHVlIpUHHz09UBtGESbEgrp8q5at6d+R96A//+ODYCAAIvGgP//fCCA
Date: Wed, 6 Nov 2019 17:20:57 +0000
Message-ID: <19B88297-3EB0-4FDD-86A0-E6118729312F@juniper.net>
References: <4BD0608C-A277-4130-B85C-D7A75FAEFD8F@smcquistin.uk> <C464EE6D-3DF8-4101-AA26-BD38A61F8E7B@tzi.org> <FF14A414-758A-462A-ADF4-3B6EF051FE32@juniper.net> <26630BB7-A8A6-4A35-BF22-22CEDFDBE3E3@tzi.org>
In-Reply-To: <26630BB7-A8A6-4A35-BF22-22CEDFDBE3E3@tzi.org>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
msip_labels: MSIP_Label_9784d817-3396-4a4f-b60c-3ef6b345fe55_Enabled=true; MSIP_Label_9784d817-3396-4a4f-b60c-3ef6b345fe55_Name=Juniper Business Use Only; MSIP_Label_9784d817-3396-4a4f-b60c-3ef6b345fe55_Enabled=true; MSIP_Label_9784d817-3396-4a4f-b60c-3ef6b345fe55_SiteId=bea78b3c-4cdb-4130-854a-1d193232e5f4; MSIP_Label_9784d817-3396-4a4f-b60c-3ef6b345fe55_ContentBits=0; MSIP_Label_9784d817-3396-4a4f-b60c-3ef6b345fe55_Method=Standard; MSIP_Label_9784d817-3396-4a4f-b60c-3ef6b345fe55_ActionId=a4095b3b-40e5-4dd9-8620-0000a21454a9; MSIP_Label_9784d817-3396-4a4f-b60c-3ef6b345fe55_SetDate=2019-11-06T17:19:47Z; 
user-agent: Microsoft-MacOutlook/10.1f.0.191103
x-originating-ip: [66.129.239.12]
x-ms-publictraffictype: Email
x-ms-office365-filtering-ht: Tenant
x-ms-office365-filtering-correlation-id: 4c2e9983-ff8e-4e3a-2fe8-08d762ddb005
x-ms-traffictypediagnostic: SN6PR05MB5391:
x-microsoft-antispam-prvs: <SN6PR05MB53918166EF8F03653ACFA0B0AC790@SN6PR05MB5391.namprd05.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:3826;
x-forefront-prvs: 02135EB356
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(346002)(396003)(376002)(136003)(366004)(39860400002)(199004)(189003)(76116006)(316002)(66066001)(26005)(81156014)(6486002)(6506007)(6246003)(86362001)(486006)(11346002)(99286004)(2501003)(2616005)(7736002)(476003)(446003)(8676002)(81166006)(5660300002)(8936002)(76176011)(558084003)(14454004)(58126008)(25786009)(186003)(33656002)(102836004)(229853002)(54896002)(6306002)(36756003)(6512007)(3846002)(71200400001)(66476007)(6116002)(256004)(478600001)(71190400001)(66946007)(66556008)(64756008)(6436002)(4326008)(54906003)(66446008)(91956017)(2906002)(110136005); DIR:OUT; SFP:1102; SCL:1; SRVR:SN6PR05MB5391; H:SN6PR05MB5613.namprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; 
received-spf: None (protection.outlook.com: juniper.net does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: zqJZeakn9qEUjyhGtyFg7KES6Sho9ZduGwISRexoUMfEF5WZj69sWzG4KY8/o42OU4IMfqQsfAHrj2ZNCn87Qnqp4+xIlcvNRBVT9QRXzATPQaGFRY1UMF0voJJaKOfvPwLVfkEKneUwgjLIAjB/l/IlB3qvAxaczlMTTCpSuIzx/WAlDA06N1gf9TQKWocD2WOEQrDCJ5O2ab7/rwTKZLOqybQ01TyA2WfNQoaT05LTKWG0Y5vKP/AS3x60m5041Z/V40y0Bnp2pw7jG4FAMuBjtOed0nBTT2KNNsAB9WcT5PoRFbvrSZUK9MviyihEs5DO579QiXcow8I87V7uzTD4pja8vK6G3Hrx7/Sb5qy3/Kre16y/Js1hiJ9wov1f0iXkx2EcEbSYzbxqVUdb3FdRjdwk/sIWN4BsAKqWae/oUL9l/E02YcBueYN2vtM8
x-ms-exchange-transport-forked: True
Content-Type: multipart/alternative; boundary="_000_19B882973EB04FDD86A0E6118729312Fjunipernet_"
MIME-Version: 1.0
X-OriginatorOrg: juniper.net
X-MS-Exchange-CrossTenant-Network-Message-Id: 4c2e9983-ff8e-4e3a-2fe8-08d762ddb005
X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Nov 2019 17:20:57.4849 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: bea78b3c-4cdb-4130-854a-1d193232e5f4
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: R5L4OdefDfXwwsO0cPp6AIYV1t4fUKZNNAHyjXoo5thpIO2xAlf1rlCv64P1vdIp
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR05MB5391
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.95,18.0.572 definitions=2019-11-06_06:2019-11-06,2019-11-06 signatures=0
X-Proofpoint-Spam-Details: rule=outbound_spam_notspam policy=outbound_spam score=0 adultscore=0 phishscore=0 priorityscore=1501 mlxscore=0 suspectscore=0 spamscore=0 clxscore=1011 bulkscore=0 impostorscore=0 malwarescore=0 mlxlogscore=716 lowpriorityscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-1910280000 definitions=main-1911060166
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/cmCIAo6l0qzQebuKQWUnjGDTaFk>
Subject: Re: [Cbor] [hackathon] Formal Languages at the Hackathon
X-BeenThere: cbor@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Concise Binary Object Representation \(CBOR\)" <cbor.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cbor>, <mailto:cbor-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cbor/>
List-Post: <mailto:cbor@ietf.org>
List-Help: <mailto:cbor-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cbor>, <mailto:cbor-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 06 Nov 2019 17:21:05 -0000

--_000_19B882973EB04FDD86A0E6118729312Fjunipernet_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

DQoNCj4gICAgV2hlbiB0aGUgY29tcGxleGl0eSBvZiB0aGUgZGF0YSBiZWluZyBtb2RlbGVkIGRv
bWluYXRlcyB5b3VyIHRoaW5raW5nIOKApg0KDQoNCg0KVG9ueeKAmXMgZG9nbWE6IOKAnENvbXBs
ZXhpdHkgb2YgYW55IHN1Y2Nlc3NmdWwgdGVjaG5vbG9neSBfYWx3YXlzXyBnb2VzIHVwIHdpdGgg
dGltZeKAnSDwn5iJIPCfmIkNCg0KDQoNCi0tLSB0b255DQoNCg0K

--_000_19B882973EB04FDD86A0E6118729312Fjunipernet_
Content-Type: text/html; charset="utf-8"
Content-ID: <B2F4A4F3EA10814BABA5F5C46D388198@namprd05.prod.outlook.com>
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6bz0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6b2ZmaWNlIiB4
bWxuczp3PSJ1cm46c2NoZW1hcy1taWNyb3NvZnQtY29tOm9mZmljZTp3b3JkIiB4bWxuczptPSJo
dHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS8yMDA0LzEyL29tbWwiIHhtbG5zPSJo
dHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwIj4NCjxoZWFkPg0KPG1ldGEgaHR0cC1lcXVp
dj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPg0KPG1l
dGEgbmFtZT0iR2VuZXJhdG9yIiBjb250ZW50PSJNaWNyb3NvZnQgV29yZCAxNSAoZmlsdGVyZWQg
bWVkaXVtKSI+DQo8c3R5bGU+PCEtLQ0KLyogRm9udCBEZWZpbml0aW9ucyAqLw0KQGZvbnQtZmFj
ZQ0KCXtmb250LWZhbWlseToiQ2FtYnJpYSBNYXRoIjsNCglwYW5vc2UtMToyIDQgNSAzIDUgNCA2
IDMgMiA0O30NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6Q2FsaWJyaTsNCglwYW5vc2UtMToy
IDE1IDUgMiAyIDIgNCAzIDIgNDt9DQovKiBTdHlsZSBEZWZpbml0aW9ucyAqLw0KcC5Nc29Ob3Jt
YWwsIGxpLk1zb05vcm1hbCwgZGl2Lk1zb05vcm1hbA0KCXttYXJnaW46MGluOw0KCW1hcmdpbi1i
b3R0b206LjAwMDFwdDsNCglmb250LXNpemU6MTIuMHB0Ow0KCWZvbnQtZmFtaWx5OiJDYWxpYnJp
IixzYW5zLXNlcmlmO30NCmE6bGluaywgc3Bhbi5Nc29IeXBlcmxpbmsNCgl7bXNvLXN0eWxlLXBy
aW9yaXR5Ojk5Ow0KCWNvbG9yOiMwNTYzQzE7DQoJdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9
DQphOnZpc2l0ZWQsIHNwYW4uTXNvSHlwZXJsaW5rRm9sbG93ZWQNCgl7bXNvLXN0eWxlLXByaW9y
aXR5Ojk5Ow0KCWNvbG9yOiM5NTRGNzI7DQoJdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9DQpw
Lk1zb1BsYWluVGV4dCwgbGkuTXNvUGxhaW5UZXh0LCBkaXYuTXNvUGxhaW5UZXh0DQoJe21zby1z
dHlsZS1wcmlvcml0eTo5OTsNCgltc28tc3R5bGUtbGluazoiUGxhaW4gVGV4dCBDaGFyIjsNCglt
YXJnaW46MGluOw0KCW1hcmdpbi1ib3R0b206LjAwMDFwdDsNCglmb250LXNpemU6MTEuMHB0Ow0K
CWZvbnQtZmFtaWx5OiJDYWxpYnJpIixzYW5zLXNlcmlmO30NCnNwYW4uUGxhaW5UZXh0Q2hhcg0K
CXttc28tc3R5bGUtbmFtZToiUGxhaW4gVGV4dCBDaGFyIjsNCgltc28tc3R5bGUtcHJpb3JpdHk6
OTk7DQoJbXNvLXN0eWxlLWxpbms6IlBsYWluIFRleHQiOw0KCWZvbnQtZmFtaWx5OiJDYWxpYnJp
IixzYW5zLXNlcmlmO30NCi5Nc29DaHBEZWZhdWx0DQoJe21zby1zdHlsZS10eXBlOmV4cG9ydC1v
bmx5Ow0KCWZvbnQtZmFtaWx5OiJDYWxpYnJpIixzYW5zLXNlcmlmO30NCkBwYWdlIFdvcmRTZWN0
aW9uMQ0KCXtzaXplOjguNWluIDExLjBpbjsNCgltYXJnaW46MS4waW4gMS4waW4gMS4waW4gMS4w
aW47fQ0KZGl2LldvcmRTZWN0aW9uMQ0KCXtwYWdlOldvcmRTZWN0aW9uMTt9DQotLT48L3N0eWxl
Pg0KPC9oZWFkPg0KPGJvZHkgbGFuZz0iRU4tVVMiIGxpbms9IiMwNTYzQzEiIHZsaW5rPSIjOTU0
RjcyIj4NCjxkaXYgY2xhc3M9IldvcmRTZWN0aW9uMSI+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0
Ij4mbmJzcDsmbmJzcDsmbmJzcDsgPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5U
ZXh0Ij4mZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7IFdoZW4gdGhlIGNvbXBsZXhpdHkgb2YgdGhlIGRh
dGEgYmVpbmcgbW9kZWxlZCBkb21pbmF0ZXMgeW91ciB0aGlua2luZyDigKYNCjxvOnA+PC9vOnA+
PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8cCBj
bGFzcz0iTXNvUGxhaW5UZXh0Ij5Ub2554oCZcyBkb2dtYTog4oCcQ29tcGxleGl0eSBvZiBhbnkg
c3VjY2Vzc2Z1bCB0ZWNobm9sb2d5IF88aT5hbHdheXM8L2k+XyBnb2VzIHVwIHdpdGggdGltZeKA
nQ0KPHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O0FwcGxlIENvbG9yIEVtb2ppJnF1b3Q7
Ij4mIzEyODUyMTs8L3NwYW4+IDxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtBcHBsZSBD
b2xvciBFbW9qaSZxdW90OyI+DQomIzEyODUyMTs8L3NwYW4+IDxvOnA+PC9vOnA+PC9wPg0KPHAg
Y2xhc3M9Ik1zb1BsYWluVGV4dCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8cCBjbGFzcz0iTXNv
UGxhaW5UZXh0Ij4tLS0gdG9ueSA8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRl
eHQiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2JvZHk+DQo8L2h0bWw+DQo=

--_000_19B882973EB04FDD86A0E6118729312Fjunipernet_--


From nobody Wed Nov  6 12:18:06 2019
Return-Path: <lgl@island-resort.com>
X-Original-To: cbor@ietfa.amsl.com
Delivered-To: cbor@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 066941200A4 for <cbor@ietfa.amsl.com>; Wed,  6 Nov 2019 12:18:05 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.896
X-Spam-Level: 
X-Spam-Status: No, score=-1.896 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 0bYgAMyiVM70 for <cbor@ietfa.amsl.com>; Wed,  6 Nov 2019 12:18:03 -0800 (PST)
Received: from p3plsmtpa06-04.prod.phx3.secureserver.net (p3plsmtpa06-04.prod.phx3.secureserver.net [173.201.192.105]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id F037312004A for <cbor@ietf.org>; Wed,  6 Nov 2019 12:18:02 -0800 (PST)
Received: from [10.122.0.182] ([45.56.150.85]) by :SMTPAUTH: with ESMTPA id SRkfiex5Er3FgSRkgija5p; Wed, 06 Nov 2019 13:18:02 -0700
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.11\))
From: Laurence Lundblade <lgl@island-resort.com>
In-Reply-To: <E7C97A51-BE67-4752-ADE6-A985E0B8A7AF@tzi.org>
Date: Wed, 6 Nov 2019 12:18:00 -0800
Cc: cbor@ietf.org, Christophe Lohr <christophe.lohr@imt-atlantique.fr>
Content-Transfer-Encoding: quoted-printable
Message-Id: <DD122452-435D-447C-92C8-EEFBA51048C0@island-resort.com>
References: <92400DAA-A713-4905-A721-34B138E25192@tzi.org> <ed45e995-1858-3169-1be6-0cce5ce37ce3@imt-atlantique.fr> <87889E65-0152-455A-A6B7-C5F336DC97A4@island-resort.com> <CBC1EF6C-FAF5-4AC9-B0DC-C3FD2ED8B88D@tzi.org> <8B119642-7D8D-4BEF-AD75-0AC9935BCD7C@island-resort.com> <B86EE13B-12C9-4918-8BE9-5E4BEBF3B779@tzi.org> <3F9E4E02-7A86-4954-8E31-0E28D2B2FCDA@island-resort.com> <E7C97A51-BE67-4752-ADE6-A985E0B8A7AF@tzi.org>
To: Carsten Bormann <cabo@tzi.org>
X-Mailer: Apple Mail (2.3445.104.11)
X-CMAE-Envelope: MS4wfA6x4hdFjUPJCvkciC2AtcGLky0QjE14DdBp3F4+mA/S80GG5f4y6/1vpiEr8vfHP6bgdzetxoDhzDXhnHEJVm1vLmB4RoQaOVR6aGphB8bT7W7KY88U usMhglUo6gywKfDWMbBs2Fzl/kypJqpnfvZ3y93p8Ri/BX00+z1fY3hMMjODZoVkOKlNkV+T4p/g1eRI7nGR1A5dX6I20UqPd1j35J+3PGcXd02IBUGdKcQC
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/r_Axlh3zj5-VjLroVqIBEEWy-6U>
Subject: Re: [Cbor] 7049bis: The concept of "optional tagging" is not really used in practice #126
X-BeenThere: cbor@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Concise Binary Object Representation \(CBOR\)" <cbor.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cbor>, <mailto:cbor-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cbor/>
List-Post: <mailto:cbor@ietf.org>
List-Help: <mailto:cbor-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cbor>, <mailto:cbor-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 06 Nov 2019 20:18:05 -0000

Thanks for all the explanations and comments and pointing out things I =
missed when I read CDDL.

One more observation.

Seems like this is all about defining new registered data types, very =
similar to a typedef in C.

For example, this is about a data type for temperature, but not =
indication whether the temperature is of the turkey in the oven or of =
the Chernobyl reactor core.  To distinguish reactor core from turkey it =
is by the ordering in an array or the key/label in a map, never the tag. =
In C it is the variable name.

LL



> On Nov 4, 2019, at 8:34 AM, Carsten Bormann <cabo@tzi.org> wrote:
>=20
> On Nov 4, 2019, at 17:28, Laurence Lundblade <lgl@island-resort.com> =
wrote:
>>=20
>> Was thinking more like COSE:
>>=20
>> decfrac =3D [
>>              e10: int,
>>              m: integer
>>           ]
>>=20
>> decfrac_tagged =3D #6.4(decfrac)
>=20
> That kind of style was written when we didn=E2=80=99t have the unwrap =
operator.
>=20
> RFC 8610 says:
>=20
>                  decfrac =3D #6.4([e10: int, m: integer])
>=20
> Which is exactly what is called =E2=80=9Cdecfrac_tagged=E2=80=9D in =
the above.
> If you don=E2=80=99t want the tag, just write ~decfrac, and you have =
what you called decfrac in your example.
>=20
> (And the fact that the unwrap convention works universally obviates =
the need to come up with noisy conventions such as _tagged.)
>=20
>> That way you can say exactly which you want in CDDL without =
constructing the CDDL for the non-tagged form. Will also help make it =
clear that  protocol designers need to be clear and pick one.
>>=20
>> Maybe even ask that every new registered data type have CDDL like =
this published suitable for normative reference as a requirement for =
getting into the IANA registry?
>=20
> Requiring this would create too much coupling.
> Suggesting this is a good job for the DE :-)
>=20
> (=E2=80=9Csuitable for normative reference=E2=80=9D is a different =
issue, though.)
>=20
> Gr=C3=BC=C3=9Fe, Carsten
>=20
> _______________________________________________
> CBOR mailing list
> CBOR@ietf.org
> https://www.ietf.org/mailman/listinfo/cbor


From nobody Wed Nov  6 13:02:36 2019
Return-Path: <cabo@tzi.org>
X-Original-To: cbor@ietfa.amsl.com
Delivered-To: cbor@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 2434612011E; Wed,  6 Nov 2019 13:02:28 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.2
X-Spam-Level: 
X-Spam-Status: No, score=-4.2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=unavailable autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id DcLPDC4x0Qqk; Wed,  6 Nov 2019 13:02:25 -0800 (PST)
Received: from gabriel-vm-2.zfn.uni-bremen.de (gabriel-vm-2.zfn.uni-bremen.de [134.102.50.17]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 53F01120110; Wed,  6 Nov 2019 13:02:25 -0800 (PST)
Received: from [192.168.217.102] (p548DC893.dip0.t-ipconnect.de [84.141.200.147]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by gabriel-vm-2.zfn.uni-bremen.de (Postfix) with ESMTPSA id 477f9q3ZmHzyT7; Wed,  6 Nov 2019 22:02:23 +0100 (CET)
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 11.5 \(3445.9.1\))
From: Carsten Bormann <cabo@tzi.org>
In-Reply-To: <19B88297-3EB0-4FDD-86A0-E6118729312F@juniper.net>
Date: Wed, 6 Nov 2019 22:02:23 +0100
Cc: "hackathon@ietf.org" <hackathon@ietf.org>, "cbor@ietf.org" <cbor@ietf.org>, "t2trg@irtf.org" <t2trg@irtf.org>, Deborah Brungard <db3546@att.com>, Alvaro Retana <aretana.ietf@gmail.com>
X-Mao-Original-Outgoing-Id: 594766941.191627-8c16912029267332d129620913db40a9
Content-Transfer-Encoding: quoted-printable
Message-Id: <867BC0C8-651A-4EDA-8C24-2E7C877BF624@tzi.org>
References: <4BD0608C-A277-4130-B85C-D7A75FAEFD8F@smcquistin.uk> <C464EE6D-3DF8-4101-AA26-BD38A61F8E7B@tzi.org> <FF14A414-758A-462A-ADF4-3B6EF051FE32@juniper.net> <26630BB7-A8A6-4A35-BF22-22CEDFDBE3E3@tzi.org> <19B88297-3EB0-4FDD-86A0-E6118729312F@juniper.net>
To: Antoni Przygienda <prz@juniper.net>
X-Mailer: Apple Mail (2.3445.9.1)
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/5IKsYaIxYrTFOzmYgdczitN8NLw>
Subject: Re: [Cbor] [hackathon] Formal Languages at the Hackathon
X-BeenThere: cbor@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Concise Binary Object Representation \(CBOR\)" <cbor.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cbor>, <mailto:cbor-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cbor/>
List-Post: <mailto:cbor@ietf.org>
List-Help: <mailto:cbor-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cbor>, <mailto:cbor-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 06 Nov 2019 21:02:28 -0000

On Nov 6, 2019, at 18:20, Antoni Przygienda <prz@juniper.net> wrote:
>=20
> >    When the complexity of the data being modeled dominates your =
thinking =E2=80=A6
> =20
> Tony=E2=80=99s dogma: =E2=80=9CComplexity of any successful technology =
_always_ goes up with time=E2=80=9D =F0=9F=98=89 =F0=9F=98=89

Indeed, that=E2=80=99s why I talked about =E2=80=9Cdominates your =
thinking=E2=80=9D (as opposed to =E2=80=9Cshould dominate your =
thinking=E2=80=9D).

An interesting effect of having a great FDT technique is that it becomes =
much easier to handle complexity.
A follow-on effect is that, as it is so much easier to put in =
complexity, you do put in more of that.
Which will hurt you sooner than you think (*)=E2=80=A6

So I strongly believe that a prerequisite of using FDT successfully is =
that the formal model of your shiny new RFC should now fit on one slide. =
 (Which actually works out for RFC 7071 (+)!)

Gr=C3=BC=C3=9Fe, Carsten

(*) I still remember when I first read the ASN.1 for GSM MAP.  All 950 =
pages [IIRC] of it=E2=80=A6
(+) https://tools.ietf.org/html/rfc8610#page-61


From nobody Wed Nov  6 13:11:53 2019
Return-Path: <mellon@fugue.com>
X-Original-To: cbor@ietfa.amsl.com
Delivered-To: cbor@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 78116120145 for <cbor@ietfa.amsl.com>; Wed,  6 Nov 2019 13:11:48 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level: 
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=fugue-com.20150623.gappssmtp.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id DJXtWFAnBQNi for <cbor@ietfa.amsl.com>; Wed,  6 Nov 2019 13:11:46 -0800 (PST)
Received: from mail-wr1-x42d.google.com (mail-wr1-x42d.google.com [IPv6:2a00:1450:4864:20::42d]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A824A12018D for <cbor@ietf.org>; Wed,  6 Nov 2019 13:11:45 -0800 (PST)
Received: by mail-wr1-x42d.google.com with SMTP id f2so162976wrs.11 for <cbor@ietf.org>; Wed, 06 Nov 2019 13:11:45 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fugue-com.20150623.gappssmtp.com; s=20150623; h=mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=WkpmjJje8UABWhuWQtjq1njaYVfduXpGFAS27YzGEZ4=; b=VxghO5d45bPzGKcexkYUKH5gUJGg9d9KNu60yI96ZJzaJApW8uyXtZQ8rHS/U9FQ5w dczHzaai1JmAjTWhaUhAAU9yB+25CwxZFpAlycZlyUFDglQcmjUHaSeF1mEzYVHf4eFK PZe/pXqUgo/YhHzJIEFV2pzLLkI2Pt68mysKxpZPEg+ApVI177Jj5XYsVdJ4DGW2OCEh zCWJ8MxmCNhL3d7hCApo3M8O2s8NOzGoj6OdkkVK/WNwGUJ6kdGONxLSjT/wIRuN7cS/ /zsNN9zeUwaSQYRFcd5vg+fxssGXZpSnakO6piMuVeVVQ/fYEKHz21xVc6HMCruWq2T1 8nJg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=WkpmjJje8UABWhuWQtjq1njaYVfduXpGFAS27YzGEZ4=; b=AMahytbIj4QxgI26zHLwZjg4WNlGqm8qO9xfP5H/P1pIcDmnb+oiQOQE6CK9Oirvw2 uBmSW09BxE/PD10tuNxGOPFzC8QtmgAYmgdJrg8a+yqje5yFXkivsCCKMys050qlTxWP l8/p7ecwWwVApjmCpVnh7i4WDf27Np9G5WMtjcjMP00/cyb2xYEtxuQ5LoYZZ2a6Fij/ 4m/xQyv2duGpkJQyYYiMVTNTlJfWm+CFZXPoi2YgYdC5tUrWK8JE38OwvmrBNMho/zB3 rSA15VdLf61kpsXkoh6ciBprH+8ZkbSxYGou+g8I3ld1tw/r4HpBQxVl6WPG09NPakyQ X16Q==
X-Gm-Message-State: APjAAAVmEoQbEjT7yADHN7RWfdzaaSn3KAdLAgk5F5jY0Tjqlf1p5W75 moR+rzKXFVeXIpzG6Zc13KGomw==
X-Google-Smtp-Source: APXvYqyvEsKiWxwTfCAV1cwSJ076tzMpdsK9DAvysW1yazK7G5nLt80dE+JR8SSshuaP88JK4sKq0w==
X-Received: by 2002:a5d:6706:: with SMTP id o6mr4713451wru.54.1573074704100; Wed, 06 Nov 2019 13:11:44 -0800 (PST)
Received: from [10.10.172.74] (207.239.197.178.dynamic.wless.lssmb00p-cgnat.res.cust.swisscom.ch. [178.197.239.207]) by smtp.gmail.com with ESMTPSA id g69sm3950088wme.31.2019.11.06.13.11.41 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 06 Nov 2019 13:11:43 -0800 (PST)
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 13.0 \(3600\))
From: Ted Lemon <mellon@fugue.com>
In-Reply-To: <867BC0C8-651A-4EDA-8C24-2E7C877BF624@tzi.org>
Date: Wed, 6 Nov 2019 22:11:38 +0100
Cc: Antoni Przygienda <prz@juniper.net>, "cbor@ietf.org" <cbor@ietf.org>, Alvaro Retana <aretana.ietf@gmail.com>, "t2trg@irtf.org" <t2trg@irtf.org>, Deborah Brungard <db3546@att.com>, "hackathon@ietf.org" <hackathon@ietf.org>
Content-Transfer-Encoding: quoted-printable
Message-Id: <76A4AEEE-7773-4031-988E-00466B23C15E@fugue.com>
References: <4BD0608C-A277-4130-B85C-D7A75FAEFD8F@smcquistin.uk> <C464EE6D-3DF8-4101-AA26-BD38A61F8E7B@tzi.org> <FF14A414-758A-462A-ADF4-3B6EF051FE32@juniper.net> <26630BB7-A8A6-4A35-BF22-22CEDFDBE3E3@tzi.org> <19B88297-3EB0-4FDD-86A0-E6118729312F@juniper.net> <867BC0C8-651A-4EDA-8C24-2E7C877BF624@tzi.org>
To: Carsten Bormann <cabo@tzi.org>
X-Mailer: Apple Mail (2.3600)
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/OeCtxoL00xECUqmp9BhldZcuE48>
Subject: Re: [Cbor] [hackathon] Formal Languages at the Hackathon
X-BeenThere: cbor@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Concise Binary Object Representation \(CBOR\)" <cbor.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cbor>, <mailto:cbor-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cbor/>
List-Post: <mailto:cbor@ietf.org>
List-Help: <mailto:cbor-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cbor>, <mailto:cbor-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 06 Nov 2019 21:11:48 -0000

This is getting kind of long for the hackathon mailing list (not that I =
object to formal languages!).

> On Nov 6, 2019, at 10:02 PM, Carsten Bormann <cabo@tzi.org> wrote:
>=20
> On Nov 6, 2019, at 18:20, Antoni Przygienda <prz@juniper.net> wrote:
>>=20
>>>   When the complexity of the data being modeled dominates your =
thinking =E2=80=A6
>>=20
>> Tony=E2=80=99s dogma: =E2=80=9CComplexity of any successful =
technology _always_ goes up with time=E2=80=9D =F0=9F=98=89 =F0=9F=98=89
>=20
> Indeed, that=E2=80=99s why I talked about =E2=80=9Cdominates your =
thinking=E2=80=9D (as opposed to =E2=80=9Cshould dominate your =
thinking=E2=80=9D).
>=20
> An interesting effect of having a great FDT technique is that it =
becomes much easier to handle complexity.
> A follow-on effect is that, as it is so much easier to put in =
complexity, you do put in more of that.
> Which will hurt you sooner than you think (*)=E2=80=A6
>=20
> So I strongly believe that a prerequisite of using FDT successfully is =
that the formal model of your shiny new RFC should now fit on one slide. =
 (Which actually works out for RFC 7071 (+)!)
>=20
> Gr=C3=BC=C3=9Fe, Carsten
>=20
> (*) I still remember when I first read the ASN.1 for GSM MAP.  All 950 =
pages [IIRC] of it=E2=80=A6
> (+) https://tools.ietf.org/html/rfc8610#page-61
>=20
> _______________________________________________
> hackathon mailing list
> hackathon@ietf.org
> https://www.ietf.org/mailman/listinfo/hackathon


From nobody Wed Nov  6 13:14:16 2019
Return-Path: <marc@petit-huguenin.org>
X-Original-To: cbor@ietfa.amsl.com
Delivered-To: cbor@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 40D111201A3; Wed,  6 Nov 2019 13:14:14 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.108
X-Spam-Level: 
X-Spam-Status: No, score=-1.108 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RDNS_NONE=0.793, SPF_PASS=-0.001] autolearn=no autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id SPGwBpyLJAS4; Wed,  6 Nov 2019 13:14:12 -0800 (PST)
Received: from implementers.org (unknown [IPv6:2001:4b98:dc0:45:216:3eff:fe7f:7abd]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C7A15120120; Wed,  6 Nov 2019 13:14:12 -0800 (PST)
Received: from [IPv6:2001:0:53aa:64c:1047:f4a0:3156:5791] (unknown [IPv6:2001:0:53aa:64c:1047:f4a0:3156:5791]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "Marc Petit-Huguenin", Issuer "implementers.org" (verified OK)) by implementers.org (Postfix) with ESMTPS id DC177AE4A2; Wed,  6 Nov 2019 22:13:58 +0100 (CET)
To: Ted Lemon <mellon@fugue.com>, Carsten Bormann <cabo@tzi.org>
Cc: Deborah Brungard <db3546@att.com>, "t2trg@irtf.org" <t2trg@irtf.org>, "hackathon@ietf.org" <hackathon@ietf.org>, "cbor@ietf.org" <cbor@ietf.org>, Alvaro Retana <aretana.ietf@gmail.com>, Antoni Przygienda <prz@juniper.net>
References: <4BD0608C-A277-4130-B85C-D7A75FAEFD8F@smcquistin.uk> <C464EE6D-3DF8-4101-AA26-BD38A61F8E7B@tzi.org> <FF14A414-758A-462A-ADF4-3B6EF051FE32@juniper.net> <26630BB7-A8A6-4A35-BF22-22CEDFDBE3E3@tzi.org> <19B88297-3EB0-4FDD-86A0-E6118729312F@juniper.net> <867BC0C8-651A-4EDA-8C24-2E7C877BF624@tzi.org> <76A4AEEE-7773-4031-988E-00466B23C15E@fugue.com>
From: Marc Petit-Huguenin <marc@petit-huguenin.org>
Openpgp: preference=signencrypt
Autocrypt: addr=marc@petit-huguenin.org; prefer-encrypt=mutual; keydata= mQINBE6Mh9wBEADrUEDZChteJbQtsHwZITZExr7TAqT7pniNwhBX3nFgd+FrV3lsLKJ1rym2 52MAYpubXEJZGzMp6uCCAnROWbtmQbOm8z/jHnjxHhPqfuYCYPpAQqu8K/Sc194Rp37krMwB jz32yr7+gvWLzRgQGKIh9d2mzy8QLMETVWWQWGb6fEfpOxXo0wumN1rc/275kZwOu44JIPGg zbgwZdnEqYOUUa18K9MXeRDoWbwDISP30CvKuZDwD14lbBE3o7tBQrU9uoMhE7eFlTjbsCox qoubI2tZSuOTF8mRXjPmNrRGtf9mYkQnOB7y6qy/QxmOVMq4IRtHzOYIm/EZ6NTodcpZQHOM 2v6B6YK9uKrYrapSpJzn4f9oU7alT31Y3o2hOlxAWDQ16+Dd1MOPYsKQXOwY1/ihm4PTjiJ8 ud8yPzy7c+BSVs5wkBU6QuLNIgZHrrxdn+KxM+F/oAVtfzO7XzVoeOcXyWi3/CHL5pgoBruY enIF/RrRuplpy09pvZjmFPNfqKBYJGnqpQuqsQwO7LsFqDqfY2EuHg+KsGN1XuN+jxXc48/1 gCnKw7ALSPWEb7g25wD6KfiZTAcyRTG8LePNFQKhw61LbIWmkw9EaVLyXvwPTc1iCSc0dDT/ pcT/z+8xrWOyWGZNZAjR584NlDpKollbItcxYtFcYZkvTCmOVwARAQABtC1NYXJjIFBldGl0 LUh1Z3VlbmluIDxtYXJjQHBldGl0LWh1Z3VlbmluLm9yZz6JAjsEEwEIACUCGyMGCwkIBwMC BhUIAgkKCwQWAgMBAh4BAheAAhkBBQJX8tdbAAoJECnERZXWan7EiNkQAIbS72cyalFjxQ1l vEW9S8NjjwIMbb5+NC2XqDakAmZq+Aav/Yfk8aEc+eAWBboVC3NBBjYojMRXK1XEnD7xPQ1X rWd23TDibKajy/2fo/MS9/s6uPFOAINi1ykOMq8ShxMHcIPC/dvVt59a7DV1KPGlnUheNR7N 4rIbkL5KndatD38yTGkyKsFvVKTHJn3y5zqHTGP0BjE1rxsGEBn4h+EzxVCIMVFQUeMVPKPV dlQY9fxdicSGPK2WKo1KL3CVpnYTuNCAVIGA9DPTXPPKvEte+/+xv10I03pj4w87iMUZt7Ca FTO55Gsf8hZvmpuB224yzrAbquA450EUVcQ7KAPcHrph5KAu0d3nwrjrUDn/RWWbyRiVrPtf hmnAAhkSv7oOxzyMdLvqt7XKGKbABhrl1ZRF8QbquOkyu8n3Bz2Osgw7JyFn9N6svlFPmpML UTEi64NewvN6zszKs/zBS6bn7na75gxHNvjSZpSF6uSLYgmKbyG8vkY/i0s0e0njjOHcpNx1 0mNZ+wOoCgHtSCZFyv14ncioJTiSjtZCs+srW9PFlbOg73C1Op42xV5Y+dh/mCC+rweKtB3t yTAy52v8vPG0VjsLS52x6yUsoDjYV33AmTEaWmGzN5t8BX/qh7pgNIEd9TEwrR3B4LjqMmUk XXWSJG5IM8Zr2OE/t2vyuQINBE6Mh9wBEAC/i4Lh4XEgwi/yHr3XLx/+f38ztn5rrk8XRsK2 WUpu5evxw9iK2oelqWtS71XkW57EavJOjvP4t8FWqRKED5jWN741n12iW/EeLx3KoHMcPTfY 4WWvprxiZPfnCIpQ8j8x0QQSA+Hf96BSkAkOGNkiJDuus5z4XwTktn9gFOwLVx4VRMo+lrCy um6BDHI+4/sOWnrNp2WptI4YKM/uA0HpuLpPKLra0ZW6Bp2TewNpAjbst/VHjqewab0PeSCn CQiHkqIibdgOATT0K6KoVtMxp/WPRSfVImfWCHjT2G7HFMcb6w/jlPSb+u4VtL9yn76CCg8F SqTtzFuqPtbXkhrdSgks/grxiQryMXwpO0uSuUgZ3u2TSs+65Bl2CM5cq+2aBIER5qhpnCv7 B00uHuoNqUEK0VEpLKcqi2ZeVM5oO8iOaBgS9Gh082HQ5JDijEV2J5e4rwXjbRnJ4hqpTjSy caW8HnPI+4S0aqVxbnqW7T6l/xnn7ivK3aPqaRKqUSedHCU3oHIU31n0o5+f5htQeDs/Tpzn ARHkyzu9vZ9CvQXk8daZorA+j/38q6mWU6Mw8FRIu1qPQDmqljobk3vC9BZRSJOn3P8jNMM7 w1j+7Da3rxGBylfa3fmHPyY7dvdyeLmsq7egzTJkpAMN55Qat7iuXeeCdBQLAFHLBP1tvwAR AQABiQIfBBgBCAAJAhsMBQJX8tdcAAoJECnERZXWan7EkMgP/isd3lrSsm/8t+U44LY0/x67 cPmiKa9biveywJZ9Y+Zu/pUP44dP670mY7PmEDGC6lRiPKGmhf7vqq6JJFOqX64VWePQ9QZp kkzAUmIJwQ2Kmcmfrs0J5w2Lf5qaNji25fQYbon0eUFy6eN3BNRSIcg0+OsH7HubTWfpZeJu B7V7k8OFt2+HDx7aNdNutDJIu4V25AzGfonARQzJK62cmB0pwYXpcyDO152OwP12XbpXxXA1 xHGYQBRL98pSbMU5xsMw8j9VQHQRS94aT9Qqnz9SrYuISnMV2WGyIE0rAY3GGz3IcN5LVE1N vSP51ih+YJg/qsBYs8obbfEIZelOuznWf120RgV7P+7ZWCSBohmchuyELQzl9D7FXfulkXA3 RapKQcGJMVPIHYgnlvmE0OXfJl1z09nYRQHitoQhWtviHWl7x/KL42aUzHirLR61iVA2kqkO BhU+u+g2w8qrZj+lJfXIxlbVyLOuBVqkfcK28AR9RriB4Q5hvbDeQJMgfZsV2hBt7huBOqkH nnbSCguqfnmwLGkxoM7RVjCQwvC1M57uwdKMlsTVaBP0RreZnrDngLamK+ibXYe7p8pPAWD9 cuHvkkjML7cIfuvbScDYRmGzia3V9+LVzQCm+q/6xUY1SZvrDz7OaJOy3Xb1d+aPhYaNC0TQ 7IqA1dx8rZYQ
Message-ID: <b73d9abf-ce92-0498-9604-0ee30d306901@petit-huguenin.org>
Date: Wed, 6 Nov 2019 13:13:49 -0800
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.9.0
MIME-Version: 1.0
In-Reply-To: <76A4AEEE-7773-4031-988E-00466B23C15E@fugue.com>
Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="KBvphtwT6ImGcIumDptbTHrLF4FefcSm7"
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/tIu7FCyK2p7wHLDioVz50vus6W0>
Subject: Re: [Cbor] [hackathon] Formal Languages at the Hackathon
X-BeenThere: cbor@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Concise Binary Object Representation \(CBOR\)" <cbor.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cbor>, <mailto:cbor-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cbor/>
List-Post: <mailto:cbor@ietf.org>
List-Help: <mailto:cbor-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cbor>, <mailto:cbor-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 06 Nov 2019 21:14:14 -0000

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--KBvphtwT6ImGcIumDptbTHrLF4FefcSm7
Content-Type: multipart/mixed; boundary="wB8ugpyDRCRmIsZb3fpgHI2uCEJkUg7Zm";
 protected-headers="v1"
From: Marc Petit-Huguenin <marc@petit-huguenin.org>
To: Ted Lemon <mellon@fugue.com>, Carsten Bormann <cabo@tzi.org>
Cc: Deborah Brungard <db3546@att.com>, "t2trg@irtf.org" <t2trg@irtf.org>,
 "hackathon@ietf.org" <hackathon@ietf.org>, "cbor@ietf.org" <cbor@ietf.org>,
 Alvaro Retana <aretana.ietf@gmail.com>, Antoni Przygienda <prz@juniper.net>
Message-ID: <b73d9abf-ce92-0498-9604-0ee30d306901@petit-huguenin.org>
Subject: Re: [hackathon] Formal Languages at the Hackathon
References: <4BD0608C-A277-4130-B85C-D7A75FAEFD8F@smcquistin.uk>
 <C464EE6D-3DF8-4101-AA26-BD38A61F8E7B@tzi.org>
 <FF14A414-758A-462A-ADF4-3B6EF051FE32@juniper.net>
 <26630BB7-A8A6-4A35-BF22-22CEDFDBE3E3@tzi.org>
 <19B88297-3EB0-4FDD-86A0-E6118729312F@juniper.net>
 <867BC0C8-651A-4EDA-8C24-2E7C877BF624@tzi.org>
 <76A4AEEE-7773-4031-988E-00466B23C15E@fugue.com>
In-Reply-To: <76A4AEEE-7773-4031-988E-00466B23C15E@fugue.com>

--wB8ugpyDRCRmIsZb3fpgHI2uCEJkUg7Zm
Content-Type: text/plain; charset=utf-8
Content-Language: en-US
Content-Transfer-Encoding: quoted-printable

Maybe we need a new mailing-list to discuss formal languages...

On 11/6/19 1:11 PM, Ted Lemon wrote:
> This is getting kind of long for the hackathon mailing list (not that I=
 object to formal languages!).
>=20
>> On Nov 6, 2019, at 10:02 PM, Carsten Bormann <cabo@tzi.org> wrote:
>>
>> On Nov 6, 2019, at 18:20, Antoni Przygienda <prz@juniper.net> wrote:
>>>
>>>>   When the complexity of the data being modeled dominates your think=
ing =E2=80=A6
>>>
>>> Tony=E2=80=99s dogma: =E2=80=9CComplexity of any successful technolog=
y _always_ goes up with time=E2=80=9D =F0=9F=98=89 =F0=9F=98=89
>>
>> Indeed, that=E2=80=99s why I talked about =E2=80=9Cdominates your thin=
king=E2=80=9D (as opposed to =E2=80=9Cshould dominate your thinking=E2=80=
=9D).
>>
>> An interesting effect of having a great FDT technique is that it becom=
es much easier to handle complexity.
>> A follow-on effect is that, as it is so much easier to put in complexi=
ty, you do put in more of that.
>> Which will hurt you sooner than you think (*)=E2=80=A6
>>
>> So I strongly believe that a prerequisite of using FDT successfully is=
 that the formal model of your shiny new RFC should now fit on one slide.=
  (Which actually works out for RFC 7071 (+)!)
>>
>> Gr=C3=BC=C3=9Fe, Carsten
>>
>> (*) I still remember when I first read the ASN.1 for GSM MAP.  All 950=
 pages [IIRC] of it=E2=80=A6
>> (+) https://tools.ietf.org/html/rfc8610#page-61
>>
>> _______________________________________________
>> hackathon mailing list
>> hackathon@ietf.org
>> https://www.ietf.org/mailman/listinfo/hackathon
>=20
> _______________________________________________
> hackathon mailing list
> hackathon@ietf.org
> https://www.ietf.org/mailman/listinfo/hackathon
>=20



--wB8ugpyDRCRmIsZb3fpgHI2uCEJkUg7Zm--

--KBvphtwT6ImGcIumDptbTHrLF4FefcSm7
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEBSI+IuCHU8MsI1GjKcRFldZqfsQFAl3DN44ACgkQKcRFldZq
fsQ5pBAAt51yGKxxQzlFT0sCzhmwdmbia9idTvqqTTvCY7X0rbzNN61+xevuZpu6
L90zwwRKRwZzYh4REc4KW6D+A8QDg/QowHt+SNkR2Ss7GMs8dZNCrX7d88IiB21r
lcGSes3zyJJXmtr/6tn5cgAMrNC7QYHXc9yjSsVpNUzqLWjx2iwfzjGa0S/1t/NT
O/w1RPVNwIO0JseAVe1A7A1yTt/rM/tQv/NWOQqnqDG1CCD/bDd/FFZfkuaxSU80
Ldv7ChQgTANWyF739O1pwrHaJ+NnysmQypUZ0r1SsbviVoWZnBlDCc2eVIs67DKx
EN77GSwALFatdW+tMM2sUhwog8HpSjgQdqEdmU9Z5gKs6SY51P62OsaCPEElzl72
ASYr3FEtiwsTgpyjDv4P04p+2cPLnXFFL5onSdircI4siVX+QxPpXGZYVi5kc3lK
uxBMmBR8jCwnLPRPPvbtWA/u/K7VbrhAjaeMgHrsGLf4sFWW98ij8dW8nHz3vbJI
RkCk05CkvA6yAmJMeLHTN6c8tEn8Ul8dmi6bye8bvEWdYk7aFOAik6Jv8li0F1ic
YQY4KFDi9ylT8xTBISnQyyfTAx94F4HblLBpKa2cgPrZvlUhhKjoBlhmYd9qT8yX
s5KxYuldt8NT6O1u4xGNUAG2i7eou7UKNwYxQM54FisNeVvtE5Y=
=Wbcs
-----END PGP SIGNATURE-----

--KBvphtwT6ImGcIumDptbTHrLF4FefcSm7--


From nobody Wed Nov  6 13:17:47 2019
Return-Path: <prz@juniper.net>
X-Original-To: cbor@ietfa.amsl.com
Delivered-To: cbor@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 349EC12002F; Wed,  6 Nov 2019 13:17:45 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.701
X-Spam-Level: 
X-Spam-Status: No, score=-2.701 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=juniper.net header.b=m2zzKKIo; dkim=pass (1024-bit key) header.d=juniper.net header.b=XMjbFCQh
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id T9jDRHYIBNWm; Wed,  6 Nov 2019 13:17:42 -0800 (PST)
Received: from mx0a-00273201.pphosted.com (mx0a-00273201.pphosted.com [208.84.65.16]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E94C0120120; Wed,  6 Nov 2019 13:17:42 -0800 (PST)
Received: from pps.filterd (m0108159.ppops.net [127.0.0.1]) by mx0a-00273201.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id xA6LCdKe004544; Wed, 6 Nov 2019 13:15:53 -0800
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=juniper.net; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-id : content-transfer-encoding : mime-version; s=PPS1017; bh=1H/y2ZHAiI0cQMvlu5gieiWmSuXe4XCRbqunPs+RpOE=; b=m2zzKKIojXf6Aqsq0IGGXC1ZrP1QitrM2RdUdAlMA6QwlCKWxPEWFaTawJgvrPq7ME6F P2aYEcRhgpFM+mB9Wjo6Io8GodyMe2JNSdxG3goc8JZkzLDouo3mMH50aSVlgpk0XXe8 2ODkW+OTeA31YOEEUO6Y6vq5DrLe/oYT42cc3Km4EXm/g7tG6s0fPUi+xHUitkp7n410 RE5851DwHlPggHWwjPTanzGSgOcSm3q4py06q6PNSSBJYS5YGZxZp3gcJOHjQj4odvvf IdI5GHtl7KnSU8DIovvs7Ht6o80y5ILuzTWIAP2pLFp13qoU+SejgP4GJoaONeT+KU8p HA== 
Received: from nam01-sn1-obe.outbound.protection.outlook.com (mail-sn1nam01lp2053.outbound.protection.outlook.com [104.47.32.53]) by mx0a-00273201.pphosted.com with ESMTP id 2w41vd8feb-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 06 Nov 2019 13:15:53 -0800
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=AovCWOveXntDx3EorM0SymsV12OTM0FTktJS3qoViX0JFU6Cafkj/0mt/ULpMbATfZ3GFy1ylU1SIPPR3MR7anpRBKf7FBpwrSJiaUVaQ9p2LZdV0dd+CIieQrMPYmRMq2Ziq2WGIHE60SgdXIKAsUXb2vtQc2IrUd8ulwEIbXb9gwc7nJDGlBhGSgxFpwp76NIWa9aLBkbrv4KSYYW327vmKjximOhb9hq1lgcqdH9r5vtJAAiVUnzHDZ6S0DupLvA6CquuRbTF09xxBAH3BP+1h2vL/zhiNzSL8uvT8McX2Ybx+K+u9oxIO2Nsx4C8LG+5dTAEVjfY6vt0IUzyaQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;  s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=1H/y2ZHAiI0cQMvlu5gieiWmSuXe4XCRbqunPs+RpOE=; b=j9B+6Z+mnnO9/LJpq4Abk3Q2I3kPh7lI7m11AMjTQWYLz9eR6IvHmjvQhuOU7R2OoNSMOEl0kl3TXcdMYlvUN9hFzreckyT3qi5egjkzg28UWesRVzFDciR4Kqk24RqcBXp2XaPPIrFVo8n5L19OpCM1BJ/KfuFLpkMRH65cBLSaFgyRI0h2bzHGQ5+RMHjCbLstFcEf4tNRVLpwdAjoW7a24U1wG81MkdwMNPow8khnv2du8s+MOyFroy3XhDSKlduTMxzgvx5zGIVp1HAI/FpUl0PsEgWAhZ1dbHiqx0phXOm7+b1RUTiV2JIsCAmgxl1rwV/STol6bR/352a7DQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=juniper.net; dmarc=pass action=none header.from=juniper.net; dkim=pass header.d=juniper.net; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=juniper.net; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=1H/y2ZHAiI0cQMvlu5gieiWmSuXe4XCRbqunPs+RpOE=; b=XMjbFCQhyC4CV32504k1wMGHzjsTkjp07a/FG6waHbMIRla6o+amNsi6wooISgvYKGjuRHpzsQpcnVAodttoiFaHp0MbEkdcVrQzrNCzp+qtZN30bnIvQLH7b6y9jgAjsNBole4lOOPDaeYg/g5IafTQuQTZxSV2vIjPv3BfMsM=
Received: from SN6PR05MB5613.namprd05.prod.outlook.com (52.135.109.221) by SN6PR05MB4925.namprd05.prod.outlook.com (52.135.117.31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2430.16; Wed, 6 Nov 2019 21:15:51 +0000
Received: from SN6PR05MB5613.namprd05.prod.outlook.com ([fe80::1cff:aada:b864:8c83]) by SN6PR05MB5613.namprd05.prod.outlook.com ([fe80::1cff:aada:b864:8c83%7]) with mapi id 15.20.2430.020; Wed, 6 Nov 2019 21:15:51 +0000
From: Antoni Przygienda <prz@juniper.net>
To: Carsten Bormann <cabo@tzi.org>
CC: "hackathon@ietf.org" <hackathon@ietf.org>, "cbor@ietf.org" <cbor@ietf.org>, "t2trg@irtf.org" <t2trg@irtf.org>, Deborah Brungard <db3546@att.com>, Alvaro Retana <aretana.ietf@gmail.com>
Thread-Topic: [hackathon] Formal Languages at the Hackathon
Thread-Index: AQHVlIpUHHz09UBtGESbEgrp8q5at6d+R96A//+ODYCAAIvGgP//fCCAgADEEoD//32PgA==
Date: Wed, 6 Nov 2019 21:15:51 +0000
Message-ID: <43EC5C77-63A3-4B9A-95FC-5C4880CD14C7@juniper.net>
References: <4BD0608C-A277-4130-B85C-D7A75FAEFD8F@smcquistin.uk> <C464EE6D-3DF8-4101-AA26-BD38A61F8E7B@tzi.org> <FF14A414-758A-462A-ADF4-3B6EF051FE32@juniper.net> <26630BB7-A8A6-4A35-BF22-22CEDFDBE3E3@tzi.org> <19B88297-3EB0-4FDD-86A0-E6118729312F@juniper.net> <867BC0C8-651A-4EDA-8C24-2E7C877BF624@tzi.org>
In-Reply-To: <867BC0C8-651A-4EDA-8C24-2E7C877BF624@tzi.org>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
msip_labels: MSIP_Label_9784d817-3396-4a4f-b60c-3ef6b345fe55_Enabled=true; MSIP_Label_9784d817-3396-4a4f-b60c-3ef6b345fe55_Name=Juniper Business Use Only; MSIP_Label_9784d817-3396-4a4f-b60c-3ef6b345fe55_Enabled=true; MSIP_Label_9784d817-3396-4a4f-b60c-3ef6b345fe55_SiteId=bea78b3c-4cdb-4130-854a-1d193232e5f4; MSIP_Label_9784d817-3396-4a4f-b60c-3ef6b345fe55_ContentBits=0; MSIP_Label_9784d817-3396-4a4f-b60c-3ef6b345fe55_Method=Standard; MSIP_Label_9784d817-3396-4a4f-b60c-3ef6b345fe55_ActionId=ddf1c02c-e473-4a50-82bd-0000bb1c81ce; MSIP_Label_9784d817-3396-4a4f-b60c-3ef6b345fe55_SetDate=2019-11-06T21:14:35Z; 
user-agent: Microsoft-MacOutlook/10.1f.0.191103
x-originating-ip: [66.129.239.12]
x-ms-publictraffictype: Email
x-ms-office365-filtering-ht: Tenant
x-ms-office365-filtering-correlation-id: 235e7869-8883-435b-5abb-08d762fe80a2
x-ms-traffictypediagnostic: SN6PR05MB4925:
x-ms-exchange-purlcount: 1
x-microsoft-antispam-prvs: <SN6PR05MB492551B88AA2E7F517B848B5AC790@SN6PR05MB4925.namprd05.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:8273;
x-forefront-prvs: 02135EB356
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(376002)(396003)(136003)(39860400002)(346002)(366004)(189003)(199004)(66946007)(99286004)(71190400001)(2906002)(14454004)(6506007)(86362001)(6436002)(53546011)(5660300002)(229853002)(6486002)(66066001)(3846002)(71200400001)(76176011)(6246003)(186003)(476003)(486006)(11346002)(446003)(6306002)(6512007)(4326008)(256004)(2616005)(305945005)(8936002)(6916009)(478600001)(8676002)(316002)(81166006)(81156014)(102836004)(6116002)(54906003)(58126008)(76116006)(26005)(7736002)(36756003)(966005)(66556008)(91956017)(64756008)(66476007)(33656002)(66446008)(25786009); DIR:OUT; SFP:1102; SCL:1; SRVR:SN6PR05MB4925; H:SN6PR05MB5613.namprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; 
received-spf: None (protection.outlook.com: juniper.net does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: DFHBnBrclb9A6ry/SmiGC1pyus9c7ID50f9Z12g87f9wDE+sijvd0P+F8S890cfsfY8zLGjMjqQHJuLBwjEGC/hbP1JXxCgwYykZnJ7Kk3OAxug2wchXrnvZMxzzP5Drnoy/w3pvdA6qd2pqTRPs+1FOvrXJ2wmVCmebqrzeLUWCOIGlf472ocR08dwFtomz095CV0Ziw862URR+V04+43RjsEVs09RcIkVx/nfNDIwewmTOPLVJt/WnhltYYUz2Re68+XNai/ljLpdbYTZ3KSpMPeKi2om9KZG3kJGdPbCDq2WsDuu0gCECS6w6svjTUYA3T4vZSx/iE3hUl0cZFN1jVVFEOBgJjx34dhhxdUxHK1H/erRX8NUnIHVFjh+uANnIrUU84iSVE92v0/2CJ0tDea4w5ZM7pxNESCXQMchs3lxg8Q5fMt4vtL6niCbBjQ5HF3HFqn/6AslrTDSSFa4Coa3nVm98SjfDRtswqG8=
x-ms-exchange-transport-forked: True
Content-Type: text/plain; charset="utf-8"
Content-ID: <EF7E7524C06CB44DA23F3E5606B13520@namprd05.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: juniper.net
X-MS-Exchange-CrossTenant-Network-Message-Id: 235e7869-8883-435b-5abb-08d762fe80a2
X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Nov 2019 21:15:51.4703 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: bea78b3c-4cdb-4130-854a-1d193232e5f4
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 08g/ckK9yrzO+IRR+LuDTmjV4WNK+X4yQ0dH+t8V6oHF/fC1ZVmytl7Vm9aysUYJ
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR05MB4925
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.95,18.0.572 definitions=2019-11-06_07:2019-11-06,2019-11-06 signatures=0
X-Proofpoint-Spam-Details: rule=outbound_spam_notspam policy=outbound_spam score=0 adultscore=0 phishscore=0 priorityscore=1501 mlxscore=0 suspectscore=0 spamscore=0 clxscore=1015 bulkscore=0 impostorscore=0 malwarescore=0 mlxlogscore=999 lowpriorityscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-1910280000 definitions=main-1911060208
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/1QyulIkpEc1bclglJqnnVVqdU7I>
Subject: Re: [Cbor] [hackathon] Formal Languages at the Hackathon
X-BeenThere: cbor@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Concise Binary Object Representation \(CBOR\)" <cbor.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cbor>, <mailto:cbor-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cbor/>
List-Post: <mailto:cbor@ietf.org>
List-Help: <mailto:cbor-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cbor>, <mailto:cbor-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 06 Nov 2019 21:17:45 -0000

QWxsIGNvcnJlY3QsIGV4Y2VwdCB0aGUgImZpdCBvbiBvbmUgc2xpZGUiIGZvciB0aGUgd2hvbGUg
bW9kZWwgaXMgcHJvYmFibHkgd29ya2luZyBmb3IgYW55dGhpbmcgdGhhdCBpcyBub3QgYSByZWFs
IHdvcmxkIHByb2JsZW0gX18gdW5sZXNzIEkgbWlzdW5kZXJzdG9vZCAuLi4gDQoNCi0tLSB0b255
IA0KDQrvu79PbiAxMS82LzE5LCAxOjAyIFBNLCAiQ2Fyc3RlbiBCb3JtYW5uIiA8Y2Fib0B0emku
b3JnPiB3cm90ZToNCg0KICAgIE9uIE5vdiA2LCAyMDE5LCBhdCAxODoyMCwgQW50b25pIFByenln
aWVuZGEgPHByekBqdW5pcGVyLm5ldD4gd3JvdGU6DQogICAgPiANCiAgICA+ID4gICAgV2hlbiB0
aGUgY29tcGxleGl0eSBvZiB0aGUgZGF0YSBiZWluZyBtb2RlbGVkIGRvbWluYXRlcyB5b3VyIHRo
aW5raW5nIOKApg0KICAgID4gIA0KICAgID4gVG9ueeKAmXMgZG9nbWE6IOKAnENvbXBsZXhpdHkg
b2YgYW55IHN1Y2Nlc3NmdWwgdGVjaG5vbG9neSBfYWx3YXlzXyBnb2VzIHVwIHdpdGggdGltZeKA
nSDwn5iJIPCfmIkNCiAgICANCiAgICBJbmRlZWQsIHRoYXTigJlzIHdoeSBJIHRhbGtlZCBhYm91
dCDigJxkb21pbmF0ZXMgeW91ciB0aGlua2luZ+KAnSAoYXMgb3Bwb3NlZCB0byDigJxzaG91bGQg
ZG9taW5hdGUgeW91ciB0aGlua2luZ+KAnSkuDQogICAgDQogICAgQW4gaW50ZXJlc3RpbmcgZWZm
ZWN0IG9mIGhhdmluZyBhIGdyZWF0IEZEVCB0ZWNobmlxdWUgaXMgdGhhdCBpdCBiZWNvbWVzIG11
Y2ggZWFzaWVyIHRvIGhhbmRsZSBjb21wbGV4aXR5Lg0KICAgIEEgZm9sbG93LW9uIGVmZmVjdCBp
cyB0aGF0LCBhcyBpdCBpcyBzbyBtdWNoIGVhc2llciB0byBwdXQgaW4gY29tcGxleGl0eSwgeW91
IGRvIHB1dCBpbiBtb3JlIG9mIHRoYXQuDQogICAgV2hpY2ggd2lsbCBodXJ0IHlvdSBzb29uZXIg
dGhhbiB5b3UgdGhpbmsgKCop4oCmDQogICAgDQogICAgU28gSSBzdHJvbmdseSBiZWxpZXZlIHRo
YXQgYSBwcmVyZXF1aXNpdGUgb2YgdXNpbmcgRkRUIHN1Y2Nlc3NmdWxseSBpcyB0aGF0IHRoZSBm
b3JtYWwgbW9kZWwgb2YgeW91ciBzaGlueSBuZXcgUkZDIHNob3VsZCBub3cgZml0IG9uIG9uZSBz
bGlkZS4gIChXaGljaCBhY3R1YWxseSB3b3JrcyBvdXQgZm9yIFJGQyA3MDcxICgrKSEpDQogICAg
DQogICAgR3LDvMOfZSwgQ2Fyc3Rlbg0KICAgIA0KICAgICgqKSBJIHN0aWxsIHJlbWVtYmVyIHdo
ZW4gSSBmaXJzdCByZWFkIHRoZSBBU04uMSBmb3IgR1NNIE1BUC4gIEFsbCA5NTAgcGFnZXMgW0lJ
UkNdIG9mIGl04oCmDQogICAgKCspIGh0dHBzOi8vdXJsZGVmZW5zZS5jb20vdjMvX19odHRwczov
L3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjODYxMCpwYWdlLTYxX187SXchOFdvQTZSakM4MWMhVHdy
V2lDUjZqOFJEbGNQZmFJU0l4VlY3eGpSbmFTMDRZTDBMbktaa2YzWHhhSGVYeE01M21zQ3lwMlFN
YUEkIA0KICAgIA0KICAgIA0KDQo=


From nobody Fri Nov  8 02:01:38 2019
Return-Path: <francesca.palombini@ericsson.com>
X-Original-To: cbor@ietfa.amsl.com
Delivered-To: cbor@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C99E5120A19 for <cbor@ietfa.amsl.com>; Fri,  8 Nov 2019 02:01:32 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.002
X-Spam-Level: 
X-Spam-Status: No, score=-2.002 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=ericsson.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id CJ3bmuLpirt5 for <cbor@ietfa.amsl.com>; Fri,  8 Nov 2019 02:01:29 -0800 (PST)
Received: from EUR03-AM5-obe.outbound.protection.outlook.com (mail-eopbgr30049.outbound.protection.outlook.com [40.107.3.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 5186D1209F9 for <cbor@ietf.org>; Fri,  8 Nov 2019 02:01:29 -0800 (PST)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hBjaRdxaO+asZQD+5kDPSWd/98pdEV0n8kWEkmYroh9o1Mi9lCfqkCb8JTsv3z9tKWzld45QeqVX2xjW1V4pHeerZHQdyxj4JupyB/lr+tNUbLksTDoMkmrSevIs3x2uEOnKmsMNAavIQ+AXDKJyCX6Zw2/V7J+24PD9MgN5Jp5FG1zL3DLIAfswYTsR7RyNNspTgQDnBhQXECVqO/jz6Jv+XYVBG4RbnN/mnRbQ2FVdNtanpkmwvbq53656ekvemz2yD8HPeJvMbIPE87AIit/+fZ53Pvs1xNYcu/nlt4u+gKLhu7wFG3Uq+5d+n6wvqtjtBn/iBGJzJMJi+GB4HA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;  s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=pq2KNL/elM6guSpaRZz7O8kk9mowXyoDchfj0ewXcA8=; b=T93/5JcMmVvOG6/B5hC/MMKW7rfSkEpxU0eZWZdRzeWs/ne0zQAdw/lE69W/KfH/DTI9PZd/iNrKZA3jjk7vC+XKGdpFflnkGNWhqXGI5WNbhRnTuBOjcnzz6d3UOvL81NdNjOPgrqaVDIRMNHJt1hxeCO7VAtuA0hPmDaBBRR1MevhgPL2p+oKwfUxzDolGYuziaxVTsHcsUMuKF2S6eAYqlfcSJ7QilTxQseHQsSJZ1FLLE7zMAMP5Kxft4jNxKYUTLIOUg9RcsDIJYZefT6ouPudN3Or4oKj7nzjAqEMqP9au4lXQDX+DuNupip2tdbRAW6W7QBiMMXJwhE0Hcw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=ericsson.com; dmarc=pass action=none header.from=ericsson.com; dkim=pass header.d=ericsson.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ericsson.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=pq2KNL/elM6guSpaRZz7O8kk9mowXyoDchfj0ewXcA8=; b=oxDPS6XV/b5/BCk6pPxducyPo6hPVz2eAUA3/IY+akwZcu1xaalYsYRtLbrxVox3ngsuCq13CgZLswN+2GsGbKPM3k71MWcYP9Ur50RdivZ0/6/deqcZYMUJc0xPm147qGcJIExa8KlOca7Uy1RiNizzbBerHr2rzTxG7vTAlsQ=
Received: from VI1PR07MB5469.eurprd07.prod.outlook.com (20.178.14.214) by VI1PR07MB4046.eurprd07.prod.outlook.com (52.134.25.138) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2451.15; Fri, 8 Nov 2019 10:01:27 +0000
Received: from VI1PR07MB5469.eurprd07.prod.outlook.com ([fe80::a8d5:a784:a19:5c76]) by VI1PR07MB5469.eurprd07.prod.outlook.com ([fe80::a8d5:a784:a19:5c76%6]) with mapi id 15.20.2451.013; Fri, 8 Nov 2019 10:01:27 +0000
From: Francesca Palombini <francesca.palombini@ericsson.com>
To: "cbor@ietf.org" <cbor@ietf.org>
Thread-Topic: Preparing for WGLC of 7049bis
Thread-Index: AQHVlht8CEIex/NzckqgWSlhJ64yTQ==
Date: Fri, 8 Nov 2019 10:01:26 +0000
Message-ID: <20A00C16-26F5-461E-88ED-CB0C1E15633F@ericsson.com>
Accept-Language: en-GB, en-US
Content-Language: en-GB
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: spf=none (sender IP is ) smtp.mailfrom=francesca.palombini@ericsson.com; 
x-originating-ip: [192.176.1.84]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 8809241c-64c7-438e-62bc-08d764329ec0
x-ms-traffictypediagnostic: VI1PR07MB4046:
x-microsoft-antispam-prvs: <VI1PR07MB4046C3C9BED91717FC740AAA987B0@VI1PR07MB4046.eurprd07.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-forefront-prvs: 0215D7173F
x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(136003)(346002)(39860400002)(396003)(366004)(376002)(199004)(189003)(44832011)(36756003)(486006)(71190400001)(71200400001)(6916009)(478600001)(14454004)(966005)(256004)(66946007)(76116006)(91956017)(25786009)(66476007)(66556008)(64756008)(66446008)(86362001)(5660300002)(316002)(6116002)(26005)(8676002)(5640700003)(33656002)(2501003)(81166006)(8936002)(186003)(2351001)(3846002)(81156014)(6436002)(6486002)(6306002)(1730700003)(2906002)(476003)(305945005)(7736002)(6512007)(66066001)(6506007)(99286004)(102836004)(2616005); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR07MB4046; H:VI1PR07MB5469.eurprd07.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; 
received-spf: None (protection.outlook.com: ericsson.com does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: ONVWAntxqiQCIqzDC3NaSOmvv7GCdnMFN2SbdIQz6Zs4QeEX+PhI7E5vW+R+slQ/hUsY2W8QPCtD3/nM55Q2sEvh2A61m3avLXd/DSj6+woEZwUsXmWkG2yx4zKV9tN87+T6Cuk91wVm+CwkBi2D2o3F+9wWQucvRh2pF4qzbpw/fwIc/C3733pUC+29J9/qb/JncrJFloDMgmY3zwl0oRLBFYc7fZPuqdQ99c0/5ezHt8BbG/uSqljd0O8UBtJJ0JeFru0AEUEwrWlGouLUsId07fZzI/fS2xJFoV4mfy0lFCDk5IsK8JnHCTWi106O3rlFH6rcAJuj+rkPwJ73Sr9pfahlMZHxkjTY4SzPmvjHqd8TTGlYIP9jdXXIjNny916Ron2VTclT3LSNKkCo2fEuj+i64CyzIWf8s44Y/ZKzxi3SbBPYLY39D+CAs3YH
x-ms-exchange-transport-forked: True
Content-Type: text/plain; charset="utf-8"
Content-ID: <791D75085AEE9B47B3B489DF16475203@eurprd07.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: ericsson.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8809241c-64c7-438e-62bc-08d764329ec0
X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Nov 2019 10:01:26.8926 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 92e84ceb-fbfd-47ab-be52-080c6b87953f
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 0llE6KMyGkEmPsBHiE5z2uxlFD5WdzmYVRD+g8fSC3aSVkLPcM0Pq8lnsY9NzElzyPyg1mR6YdCovSSGmT6v+i/qlQUlmkzznaU8YnFsOm/A2BJMu5mMEYBOXBg1oAib
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR07MB4046
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/7QHq-HzYXhf30NAw5R6dkV4giHA>
Subject: [Cbor] Preparing for WGLC of 7049bis
X-BeenThere: cbor@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Concise Binary Object Representation \(CBOR\)" <cbor.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cbor>, <mailto:cbor-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cbor/>
List-Post: <mailto:cbor@ietf.org>
List-Help: <mailto:cbor-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cbor>, <mailto:cbor-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 08 Nov 2019 10:01:36 -0000

UHJldmlvdXMgcmV2aWV3ZXJzIG9mIDcwNDliaXMsDQoNCkFzIHdlIGFyZSBwcmVwYXJpbmcgdG8g
c3RhcnQgV0dMQyBvbiB0aGlzIGRvY3VtZW50LCBwbGVhc2UgdGFrZSBhIHNlY29uZCB0byBnbyB0
aHJvdWdoIHRoZSBpc3N1ZXMgdGhhdCB3ZXJlIGNsb3NlZCBpbiB0aGVzZSB2ZXJzaW9ucyBhbmQg
cmFpc2UgYW55IGNvbmNlcm5zIGFib3V0IHBvaW50cyBub3QgYmVpbmcgYWRkcmVzc2VkLCBpZiB5
b3UgZmluZCBhbnkuIA0KVW5sZXNzIG1ham9yIGNvbmNlcm5zLCBXR0xDIHdpbGwgc3RhcnQgb24g
Tm92ZW1iZXIsIDE0dGguDQoNClRoYW5rcywNCkZyYW5jZXNjYQ0KDQrvu79PbiAwNS8xMS8yMDE5
LCAwMDozNSwgIkNCT1Igb24gYmVoYWxmIG9mIENhcnN0ZW4gQm9ybWFubiIgPGNib3ItYm91bmNl
c0BpZXRmLm9yZyBvbiBiZWhhbGYgb2YgY2Fib0B0emkub3JnPiB3cm90ZToNCg0KICAgIFJpZ2h0
IGJlZm9yZSB0aGUgSS1EIGRlYWRsaW5lLCBJIGhhdmUgc3VibWl0dGVkIHR3byBuZXcgdmVyc2lv
bnMgb2YgNzA0OWJpcw0KICAgIA0KICAgIFZlcnNpb24gLTA4Og0KICAgIGh0dHBzOi8vd3d3Lmll
dGYub3JnL3JmY2RpZmY/dXJsMj1kcmFmdC1pZXRmLWNib3ItNzA0OWJpcy0wOA0KICAgIENvbnRh
aW5zIGFsbCB0aGUgY2hhbmdlcyB0aGF0IHdlIGhhZCBkb25lIGFib3V0IGEgd2VlayBhZ28sIHNv
IHNob3VsZCBiZSByZWxhdGl2ZWx5IHN0YWJsZS4NCiAgICANCiAgICBWZXJzaW9uIC0wOToNCiAg
ICBodHRwczovL3d3dy5pZXRmLm9yZy9yZmNkaWZmP3VybDI9ZHJhZnQtaWV0Zi1jYm9yLTcwNDli
aXMtMDkNCiAgICBoYXMgYWxsIHRoZSBibGVlZGluZyBlZGdlIHN0dWZmIHRoYXQgaGFzIG5vdCBo
YWQgYXMgbXVjaCByZXZpZXcuDQogICAgDQogICAgVGhlc2Ugd2VyZSBzdWJtaXR0ZWQgc2VwYXJh
dGVseSBzbyB5b3UgY2FuIGxvb2sgYXQgdGhlIGNoYW5nZXMgc2VwYXJhdGVseS4NCiAgICANCiAg
ICBPZiBjb3Vyc2UsIGlmIHlvdSB3YW50IHRoZSBmaXJlaG9zZToNCiAgICANCiAgICBodHRwczov
L3d3dy5pZXRmLm9yZy9yZmNkaWZmP3VybDE9ZHJhZnQtaWV0Zi1jYm9yLTcwNDliaXMtMDcmdXJs
Mj1kcmFmdC1pZXRmLWNib3ItNzA0OWJpcy0wOQ0KICAgIA0KICAgIEl0IHdvdWxkIGJlIGdyZWF0
IHRvIGdldCBzb21lIHJldmlldyBzbyB3ZSBjYW4gZGVjaWRlIHdoZXRoZXIgLTA5IGlzIHRoZSBX
R0xDIHZlcnNpb24uDQogICAgKEkgaGF2ZSBkb25lIHNvbWUgaXNzdWUgcHJvY2Vzc2luZywgYnV0
IG5vdCB5ZXQgYSBncmFuZCByZS1yZWFkLg0KICAgIEV4cGVjdCBzb21lIFdHTEMgY29tbWVudHMg
ZnJvbSBtZSBhcyB3ZWxsIDstKQ0KICAgIA0KICAgIFRoZXJlIGFyZSBhIGZldyByZW1uYW50IGlz
c3VlcyBhdDoNCiAgICANCiAgICBodHRwczovL3Byb3RlY3QyLmZpcmVleWUuY29tL3YxL3VybD9r
PTA4NjI0ZTJiLTU0ZTg2Y2ZkLTA4NjIwZWIwLTBjYzQ3YWQ5M2RjYy03NDg5NWZhODk3OTJmYzJi
JnE9MSZlPWNkYTNmOWYxLTNlY2ItNDY5MC1iMmU3LWZiMWY0MzdjOGRmMyZ1PWh0dHBzJTNBJTJG
JTJGZ2l0aHViLmNvbSUyRmNib3Itd2clMkZDQk9SYmlzJTJGaXNzdWVzDQogICAgDQogICAgd2hp
Y2ggSSBiZWxpZXZlIGNhbiBiZSBjbG9zZWQsIGJ1dCBiZWZvcmUgdGhhdCBJJ2QgbGlrZSB0byBo
ZWFyIHNvbWUgc3VwcG9ydCBmb3IgY2xvc2luZyB0aGVtLg0KICAgIA0KICAgIEdyw7zDn2UsIENh
cnN0ZW4NCiAgICANCiAgICBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fXw0KICAgIENCT1IgbWFpbGluZyBsaXN0DQogICAgQ0JPUkBpZXRmLm9yZw0KICAgIGh0
dHBzOi8vd3d3LmlldGYub3JnL21haWxtYW4vbGlzdGluZm8vY2Jvcg0KICAgIA0KDQo=


From nobody Sun Nov 10 06:30:00 2019
Return-Path: <cabo@tzi.org>
X-Original-To: cbor@ietfa.amsl.com
Delivered-To: cbor@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 8C5F91200B2 for <cbor@ietfa.amsl.com>; Sun, 10 Nov 2019 06:29:58 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.2
X-Spam-Level: 
X-Spam-Status: No, score=-4.2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id TL7H7qzxwjat for <cbor@ietfa.amsl.com>; Sun, 10 Nov 2019 06:29:56 -0800 (PST)
Received: from gabriel-vm-2.zfn.uni-bremen.de (gabriel-vm-2.zfn.uni-bremen.de [134.102.50.17]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 3053712004A for <cbor@ietf.org>; Sun, 10 Nov 2019 06:29:56 -0800 (PST)
Received: from [192.168.217.102] (p548DC893.dip0.t-ipconnect.de [84.141.200.147]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by gabriel-vm-2.zfn.uni-bremen.de (Postfix) with ESMTPSA id 479xH63Wlkz100F; Sun, 10 Nov 2019 15:29:54 +0100 (CET)
From: Carsten Bormann <cabo@tzi.org>
Content-Type: text/plain; charset=utf-8
X-Mao-Original-Outgoing-Id: 595088992.224501-67581a70b2082339ef9e80ab556bdb4c
Content-Transfer-Encoding: quoted-printable
Mime-Version: 1.0 (Mac OS X Mail 11.5 \(3445.9.1\))
Date: Sun, 10 Nov 2019 15:29:53 +0100
Message-Id: <A0288B83-763D-4C21-A867-13B191B0F9FF@tzi.org>
To: cbor@ietf.org
X-Mailer: Apple Mail (2.3445.9.1)
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/j1qVjEDJAtlKybHMPfmRKKdKjmY>
Subject: [Cbor] cddl tool 0.8.10: Fix validating bignums, stricter about text vs. byte strings
X-BeenThere: cbor@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Concise Binary Object Representation \(CBOR\)" <cbor.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cbor>, <mailto:cbor-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cbor/>
List-Post: <mailto:cbor@ietf.org>
List-Help: <mailto:cbor-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cbor>, <mailto:cbor-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 10 Nov 2019 14:29:58 -0000

I just pushed version 0.8.10 of the cddl tool, now with fewer bugs in =
validating bignums and more strictness about text vs. byte strings.

As usual, update with

	gem update

Gr=C3=BC=C3=9Fe, Carsten


From nobody Thu Nov 14 02:41:22 2019
Return-Path: <francesca.palombini@ericsson.com>
X-Original-To: cbor@ietfa.amsl.com
Delivered-To: cbor@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 3E43C120142; Thu, 14 Nov 2019 02:41:19 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.001
X-Spam-Level: 
X-Spam-Status: No, score=-2.001 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=ericsson.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id csUvuoorLHNA; Thu, 14 Nov 2019 02:41:17 -0800 (PST)
Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-eopbgr80082.outbound.protection.outlook.com [40.107.8.82]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 84C2F1200FB; Thu, 14 Nov 2019 02:41:13 -0800 (PST)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=HcagEKVNhDTqdRVK+JHLjLHb7xSWd2nrJoQ2Ck/VAMpEWGHcz3pn1VpEdpeWY3YFp8FqbYx8xE4qZBvMM75DPZgD8YZok6LcqdGPGRgv5cIRRXnMJ/eGmA0TaltEl1d9JJPRu0zHFnnzHAr1XdDp4Lm/X4DdszBK+sN8qIR19zn2+cWH8YwELmQPcPXBaRMQiJm7Nse/2wha4UuwuVRLED4g8yPTowRMdyXBU2UewRgYCILduTYhebsBTm/5DIOs5UGAaZnmGTcSCQbvloGJL72VWOZ9n16GuULiQfkmVFGGS735QBW0wW1F+OJH61b6CeMoik67PNETYqsLv4n14g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;  s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=NmmGuuwcYpqA/MN2jLeTb8yo572v9qmr6rUnbKFh0HQ=; b=ZjhxCfT/Oaiokhtk5QBuQB2CrjOixkw9ckqBlQOHS6+bjPdPGm/gKP/DBKK9uvCQ5DdQUjk1mhtfbKs0+7J0x3NjkUozfEkJyD1IhGoEMPlxjQ54q813dP4K0fb9eKILcJaZipmmG0baBE1WTgMRIG/eZU4V68ryPV/MGxCOT0ikXhyxGt36S7b0N7+jiD8gZPfAqZu9qDBhk8QsqQyy6MXzfZr+EUzX9+tosytg0qg69C3j093+lRRIM6OVJw/9OFr3pudqqgrTXibtKDLvDrZ5LGvqEmCvsOcRAKpGATVYbtQWIYWHcLoB9XKmGwG3z373xZjkH9vbXC2D9r/a8w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=ericsson.com; dmarc=pass action=none header.from=ericsson.com; dkim=pass header.d=ericsson.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ericsson.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=NmmGuuwcYpqA/MN2jLeTb8yo572v9qmr6rUnbKFh0HQ=; b=G+bFO8cz3hb5uDX0FZRI3Fdia/J8rDhvAMl8xZ4Pof1WWqFCBxq+XqtTiv3fd9ehg/CC9n6zox39x5erc1L86ZatF2AwpzAUapbxn0pKGHsl/G+MuXUQgnAnWU9+meGZi6VEDQjMoYSYh39HmdprQSWDqPFid3mWxI3R/iq9D9o=
Received: from VI1PR07MB5469.eurprd07.prod.outlook.com (20.178.14.214) by VI1PR07MB4526.eurprd07.prod.outlook.com (20.177.56.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2474.9; Thu, 14 Nov 2019 10:41:11 +0000
Received: from VI1PR07MB5469.eurprd07.prod.outlook.com ([fe80::a8d5:a784:a19:5c76]) by VI1PR07MB5469.eurprd07.prod.outlook.com ([fe80::a8d5:a784:a19:5c76%6]) with mapi id 15.20.2451.024; Thu, 14 Nov 2019 10:41:11 +0000
From: Francesca Palombini <francesca.palombini@ericsson.com>
To: "cbor@ietf.org" <cbor@ietf.org>
CC: "cbor-chairs@ietf.org" <cbor-chairs@ietf.org>, "draft-ietf-cbor-7049bis@ietf.org" <draft-ietf-cbor-7049bis@ietf.org>
Thread-Topic: =?utf-8?B?8J+UlCBXR0xDIG9uIGRyYWZ0LWlldGYtY2Jvci03MDQ5YmlzLTA5?=
Thread-Index: AQHVmtgHlP3xTHM9I0+UjjjMBCp1ag==
Date: Thu, 14 Nov 2019 10:41:11 +0000
Message-ID: <293AFF31-D0EF-45D6-9B9D-E8136481C404@ericsson.com>
Accept-Language: en-GB, en-US
Content-Language: en-GB
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: spf=none (sender IP is ) smtp.mailfrom=francesca.palombini@ericsson.com; 
x-originating-ip: [158.174.219.143]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 8f684b8c-f094-41bf-c847-08d768ef2a4b
x-ms-traffictypediagnostic: VI1PR07MB4526:
x-microsoft-antispam-prvs: <VI1PR07MB45265DC17B425FF5C1EA01BC98710@VI1PR07MB4526.eurprd07.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:7219;
x-forefront-prvs: 02213C82F8
x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(366004)(346002)(376002)(39860400002)(396003)(136003)(199004)(189003)(71200400001)(71190400001)(36756003)(7736002)(2906002)(54906003)(316002)(6916009)(3846002)(6116002)(99286004)(33656002)(6486002)(966005)(8936002)(4744005)(2351001)(66946007)(476003)(2616005)(66476007)(66556008)(64756008)(6436002)(66446008)(478600001)(5640700003)(236005)(54896002)(6512007)(6306002)(606006)(66066001)(486006)(14454004)(44832011)(2501003)(5660300002)(256004)(91956017)(76116006)(25786009)(102836004)(6506007)(450100002)(4326008)(26005)(1730700003)(81156014)(81166006)(186003)(86362001); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR07MB4526; H:VI1PR07MB5469.eurprd07.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; 
received-spf: None (protection.outlook.com: ericsson.com does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: B0wpNFKAvYeTE0S1CayqlEOSU/9Z0vYVJtNi2v/CUtuXVnWgiuQLksRRHHP6NqYo3vxsHK9S74Vuie2LVrxXmubLI9Gb+zXQuKcKTFMq7W86LRau1g+GJbT/d19d0FUc3Ki6qBb+vw6lN1givTxQFwftpLHDYJZD4L4fhLpx3hck2x8G4/E87EiryYJGtKhcjiev/Nl3Ofq7zNLwnflASTzJ1Gig0HLtwNZtnhLeezMNSyRkt9VIyCa44MKqtctIcOBaH7uahSOmKqp0eyOYeWgHPdMX3MPlHgQLCb5MgkbezlrjnLcOxqlYlapD7zo2kUyWjf/oloiHIrK0Oa7mAglcJnw9l+JRqNAKTl6sWX5bSn77vHzhxygKcoul9z7f4HaqkqSCEqqU+3hpCX8v0EtyBDvCjIG9I/ALqfmaFEwYyv/imWUHWb0nyJj4y+e4
x-ms-exchange-transport-forked: True
Content-Type: multipart/alternative; boundary="_000_293AFF31D0EF45D69B9DE8136481C404ericssoncom_"
MIME-Version: 1.0
X-OriginatorOrg: ericsson.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8f684b8c-f094-41bf-c847-08d768ef2a4b
X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Nov 2019 10:41:11.1267 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 92e84ceb-fbfd-47ab-be52-080c6b87953f
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: +vUKKbxO6kZaN+TNaF30UoF7+G1RIZGgYSeX/2LcB36AP0R+ZMRGGazN7FC6J5UWiHLPaOkcwEFgAeg6f+F1rEUjNiW5+DQDjKDYL3y5dTJbKXoTz1pp4h7EpmcAzJqq
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR07MB4526
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/HSMkPkDdHCKwP9nvO-oUWLsRv3c>
Subject: [Cbor] =?utf-8?q?=F0=9F=94=94_WGLC_on_draft-ietf-cbor-7049bis-09?=
X-BeenThere: cbor@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Concise Binary Object Representation \(CBOR\)" <cbor.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cbor>, <mailto:cbor-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cbor/>
List-Post: <mailto:cbor@ietf.org>
List-Help: <mailto:cbor-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cbor>, <mailto:cbor-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 14 Nov 2019 10:41:20 -0000

--_000_293AFF31D0EF45D69B9DE8136481C404ericssoncom_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

Q0JPUiB3ZywNCg0KVGhpcyBzdGFydHMgYSBmb3VyIHdlZWtzIFdHIGxhc3QgY2FsbCBvbiBodHRw
czovL3Rvb2xzLmlldGYub3JnL2h0bWwvZHJhZnQtaWV0Zi1jYm9yLTcwNDliaXMtMDkgLCBlbmRp
bmcgb24gKlRodXJzZGF5LCAxMiBEZWNlbWJlciouDQpQbGVhc2Ugc2VuZCBpbnB1dHMgdG8gdGhl
IG1haWxpbmcgbGlzdCB0aGF0IHlvdSBoYXZlIHJlYWQgdGhlIGRvY3VtZW50IGFuZCBkbyBvciBk
byBub3QgZmVlbCBpdCBpcyByZWFkeSB0byBwcm9ncmVzcywgYWxvbmcgd2l0aCBhbnkgaXNzdWVz
IHRoYXQgeW91IGJlbGlldmUgbmVlZCB0byBiZSBkZWFsdCB3aXRoLg0KDQpXZSB3aWxsIGRpc2N1
c3MgYW55IG9wZW4gaXNzdWVzIHdl4oCZdmUgZ290dGVuIGF0IHRoZSBmMmYsIFRodXJzZGF5LCAy
MSBOb3ZlbWJlci4NCg0KQ0JPUiBDaGFpcnMNCkppbSAmIEZyYW5jZXNjYQ0K

--_000_293AFF31D0EF45D69B9DE8136481C404ericssoncom_
Content-Type: text/html; charset="utf-8"
Content-ID: <3B9C2D39F0F6C84F813E1C33B8013DEF@eurprd07.prod.outlook.com>
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6bz0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6b2ZmaWNlIiB4
bWxuczp3PSJ1cm46c2NoZW1hcy1taWNyb3NvZnQtY29tOm9mZmljZTp3b3JkIiB4bWxuczptPSJo
dHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS8yMDA0LzEyL29tbWwiIHhtbG5zPSJo
dHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwIj4NCjxoZWFkPg0KPG1ldGEgaHR0cC1lcXVp
dj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPg0KPG1l
dGEgbmFtZT0iR2VuZXJhdG9yIiBjb250ZW50PSJNaWNyb3NvZnQgV29yZCAxNSAoZmlsdGVyZWQg
bWVkaXVtKSI+DQo8c3R5bGU+PCEtLQ0KLyogRm9udCBEZWZpbml0aW9ucyAqLw0KQGZvbnQtZmFj
ZQ0KCXtmb250LWZhbWlseToiQ2FtYnJpYSBNYXRoIjsNCglwYW5vc2UtMToyIDQgNSAzIDUgNCA2
IDMgMiA0O30NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6Q2FsaWJyaTsNCglwYW5vc2UtMToy
IDE1IDUgMiAyIDIgNCAzIDIgNDt9DQovKiBTdHlsZSBEZWZpbml0aW9ucyAqLw0KcC5Nc29Ob3Jt
YWwsIGxpLk1zb05vcm1hbCwgZGl2Lk1zb05vcm1hbA0KCXttYXJnaW46MGNtOw0KCW1hcmdpbi1i
b3R0b206LjAwMDFwdDsNCglmb250LXNpemU6MTIuMHB0Ow0KCWZvbnQtZmFtaWx5OiJDYWxpYnJp
IixzYW5zLXNlcmlmOw0KCW1zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTO30NCmE6bGluaywgc3Bh
bi5Nc29IeXBlcmxpbmsNCgl7bXNvLXN0eWxlLXByaW9yaXR5Ojk5Ow0KCWNvbG9yOiMwNTYzQzE7
DQoJdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9DQphOnZpc2l0ZWQsIHNwYW4uTXNvSHlwZXJs
aW5rRm9sbG93ZWQNCgl7bXNvLXN0eWxlLXByaW9yaXR5Ojk5Ow0KCWNvbG9yOiM5NTRGNzI7DQoJ
dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9DQpzcGFuLkVtYWlsU3R5bGUxNw0KCXttc28tc3R5
bGUtdHlwZTpwZXJzb25hbC1jb21wb3NlOw0KCWZvbnQtZmFtaWx5OiJDYWxpYnJpIixzYW5zLXNl
cmlmOw0KCWNvbG9yOndpbmRvd3RleHQ7fQ0KLk1zb0NocERlZmF1bHQNCgl7bXNvLXN0eWxlLXR5
cGU6ZXhwb3J0LW9ubHk7DQoJbXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVM7fQ0KQHBhZ2UgV29y
ZFNlY3Rpb24xDQoJe3NpemU6NjEyLjBwdCA3OTIuMHB0Ow0KCW1hcmdpbjo3Mi4wcHQgNzIuMHB0
IDcyLjBwdCA3Mi4wcHQ7fQ0KZGl2LldvcmRTZWN0aW9uMQ0KCXtwYWdlOldvcmRTZWN0aW9uMTt9
DQotLT48L3N0eWxlPg0KPC9oZWFkPg0KPGJvZHkgbGFuZz0iRU4tR0IiIGxpbms9IiMwNTYzQzEi
IHZsaW5rPSIjOTU0RjcyIj4NCjxkaXYgY2xhc3M9IldvcmRTZWN0aW9uMSI+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdCI+Q0JPUiB3Zyw8bzpwPjwv
bzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1z
aXplOjExLjBwdCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQiPlRoaXMgc3RhcnRzIGEgZm91ciB3
ZWVrcyBXRyBsYXN0IGNhbGwgb24NCjxhIGhyZWY9Imh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRt
bC9kcmFmdC1pZXRmLWNib3ItNzA0OWJpcy0wOSI+aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1s
L2RyYWZ0LWlldGYtY2Jvci03MDQ5YmlzLTA5PC9hPiAsIGVuZGluZyBvbiAqPGI+VGh1cnNkYXks
IDEyIERlY2VtYmVyPC9iPiouDQo8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdCI+UGxlYXNlIHNlbmQgaW5wdXRz
IHRvIHRoZSBtYWlsaW5nIGxpc3QgdGhhdCB5b3UgaGF2ZSByZWFkIHRoZSBkb2N1bWVudCBhbmQg
ZG8gb3IgZG8gbm90IGZlZWwgaXQgaXMgcmVhZHkgdG8gcHJvZ3Jlc3MsIGFsb25nIHdpdGggYW55
IGlzc3VlcyB0aGF0IHlvdSBiZWxpZXZlIG5lZWQgdG8gYmUgZGVhbHQgd2l0aC48bzpwPjwvbzpw
Pjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXpl
OjExLjBwdCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQiPldlIHdpbGwgZGlzY3VzcyBhbnkgb3Bl
biBpc3N1ZXMgd2XigJl2ZSBnb3R0ZW4gYXQgdGhlIGYyZiwgVGh1cnNkYXksIDIxIE5vdmVtYmVy
LjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxl
PSJmb250LXNpemU6MTEuMHB0Ij48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdCI+Q0JPUiBDaGFpcnM8
bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0i
Zm9udC1zaXplOjExLjBwdCI+SmltICZhbXA7IEZyYW5jZXNjYTxvOnA+PC9vOnA+PC9zcGFuPjwv
cD4NCjwvZGl2Pg0KPC9ib2R5Pg0KPC9odG1sPg0K

--_000_293AFF31D0EF45D69B9DE8136481C404ericssoncom_--


From nobody Sun Nov 17 23:06:30 2019
Return-Path: <sm@smcquistin.uk>
X-Original-To: cbor@ietfa.amsl.com
Delivered-To: cbor@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C83E21208E2 for <cbor@ietfa.amsl.com>; Sun, 17 Nov 2019 23:06:29 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.897
X-Spam-Level: 
X-Spam-Status: No, score=-1.897 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=smcquistin-uk.20150623.gappssmtp.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id sVsEwTY5cvrP for <cbor@ietfa.amsl.com>; Sun, 17 Nov 2019 23:06:26 -0800 (PST)
Received: from mail-pg1-x542.google.com (mail-pg1-x542.google.com [IPv6:2607:f8b0:4864:20::542]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 87BBA120947 for <cbor@ietf.org>; Sun, 17 Nov 2019 23:06:26 -0800 (PST)
Received: by mail-pg1-x542.google.com with SMTP id r18so9145543pgu.13 for <cbor@ietf.org>; Sun, 17 Nov 2019 23:06:26 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=smcquistin-uk.20150623.gappssmtp.com; s=20150623; h=from:message-id:mime-version:subject:date:in-reply-to:cc:to :references; bh=Tgtn+aPKxk8CKpIua84F7MDBMuF8xubrQ8hZRM0d5xI=; b=OuVZYpmGd/S+JBhx4KvgOk53/ZrcrBr8NMVvQ4hQzcFcAaIGN0S0auSfvrtTqQ1IMg WO/hHeliG/CsizPj1f+Div9sxBcLKb4cpQsGZYpxydwIY4UJF3kAspwSBzp+vBd9GVGS D1BheE9A01Us6/AIW+FrTje3aI0j6Dx3CEqTzDC+lbR3CFE6wYQlQ0nr/eB1B5M/m/jP fOCC5M+t5eCYSemBUeYb2OtvavU/rQbwh2DQIToW0XbXndmfCIqmaqLIe7HHMpPykiGb KZ9BNhO8qKPypXs+Kr3rp/TsMPp3uABNPxKzDrxIl3gtt6sco3q1WnPX+G6QVyhxzA2k QNCg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:message-id:mime-version:subject:date :in-reply-to:cc:to:references; bh=Tgtn+aPKxk8CKpIua84F7MDBMuF8xubrQ8hZRM0d5xI=; b=eaTZyj2YZ4eEjjmnTVjBKKRma+bU5j3bF16POpQM7i2GCIuU4L5dWzlgE0CPMg3Rd4 +xOkrkAg6mXmkGmGlV2x4d8UetFCGmqycnsyrVNXwlZWMO3yACoJl7phgivI892qZG6E hkzpQ57nQS41ShwRfoofMOC7LJVGMIPffYbji2EmK/L09HTUf8dIsQacXMD00wq1LS/H 0p4Q4aFJ3apXKgFkt9yxSPhShiYZXfchgr+5h3+80I2FNm9f9eqVZavpb/fv3J/nCtun AWAWXESq5Mhuw8MJht3fnIdkW4Zz5vMsWFhdHsN2NCGOL2K7WXMrKmf4gKEV+fh4qoUX 9HhA==
X-Gm-Message-State: APjAAAWUMKaVsW/o1mGA6Cwo7s1J3CPgUU0xRt4yMDiEB45Ttq0y0m+G 9r78zccb6xBJ3JjKVA5KNQMRaw==
X-Google-Smtp-Source: APXvYqyruwEN3RJRLK8b38nReiC0AqgCbqGSxUkMsxXvIAIDnAGg7IDfGdKHPb2b7BHoMBQZuAibVw==
X-Received: by 2002:a63:68c3:: with SMTP id d186mr14710243pgc.301.1574060785903;  Sun, 17 Nov 2019 23:06:25 -0800 (PST)
Received: from dhcp-98be.meeting.ietf.org (dhcp-98be.meeting.ietf.org. [31.133.152.190]) by smtp.gmail.com with ESMTPSA id f24sm17087902pjp.12.2019.11.17.23.06.21 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 17 Nov 2019 23:06:24 -0800 (PST)
From: Stephen McQuistin <sm@smcquistin.uk>
Message-Id: <FD8E1983-54C6-439E-A838-DA774EEDC1FA@smcquistin.uk>
Content-Type: multipart/alternative; boundary="Apple-Mail=_37E31E01-4A46-46B8-BB67-817DB3D0CF58"
Mime-Version: 1.0 (Mac OS X Mail 13.0 \(3594.4.19\))
Date: Mon, 18 Nov 2019 15:06:19 +0800
In-Reply-To: <b73d9abf-ce92-0498-9604-0ee30d306901@petit-huguenin.org>
Cc: Ted Lemon <mellon@fugue.com>, Carsten Bormann <cabo@tzi.org>, Deborah Brungard <db3546@att.com>, "t2trg@irtf.org" <t2trg@irtf.org>, Alvaro Retana <aretana.ietf@gmail.com>, "cbor@ietf.org" <cbor@ietf.org>, "hackathon@ietf.org" <hackathon@ietf.org>, Antoni Przygienda <prz@juniper.net>
To: Marc Petit-Huguenin <marc@petit-huguenin.org>
References: <4BD0608C-A277-4130-B85C-D7A75FAEFD8F@smcquistin.uk> <C464EE6D-3DF8-4101-AA26-BD38A61F8E7B@tzi.org> <FF14A414-758A-462A-ADF4-3B6EF051FE32@juniper.net> <26630BB7-A8A6-4A35-BF22-22CEDFDBE3E3@tzi.org> <19B88297-3EB0-4FDD-86A0-E6118729312F@juniper.net> <867BC0C8-651A-4EDA-8C24-2E7C877BF624@tzi.org> <76A4AEEE-7773-4031-988E-00466B23C15E@fugue.com> <b73d9abf-ce92-0498-9604-0ee30d306901@petit-huguenin.org>
X-Mailer: Apple Mail (2.3594.4.19)
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/lPFXrgJg_Tmq7MeVmNWyhmbcSf0>
Subject: Re: [Cbor] [hackathon] Formal Languages at the Hackathon
X-BeenThere: cbor@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Concise Binary Object Representation \(CBOR\)" <cbor.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cbor>, <mailto:cbor-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cbor/>
List-Post: <mailto:cbor@ietf.org>
List-Help: <mailto:cbor-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cbor>, <mailto:cbor-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 18 Nov 2019 07:06:30 -0000

--Apple-Mail=_37E31E01-4A46-46B8-BB67-817DB3D0CF58
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8

Hi all,

Given the amount of discussion about this, a new mailing list has been =
created:

	https://www.ietf.org/mailman/listinfo/fdt =
<https://www.ietf.org/mailman/listinfo/fdt> (fdt@ietf.org =
<mailto:fdt@ietf.org>)

The list is for the discussion of formal languages, as they pertain to =
IETF documents. This includes discussion of the requirements of these =
techniques, and of their adoption within the IETF.

In addition, a reminder that we=E2=80=99re holding an informal side =
meeting on Thursday at 8pm. This=E2=80=99ll be at The Winery at CHIJMES =
(Google Maps: https://g.page/thewinerysg <https://g.page/thewinerysg>) =
=E2=80=94 CHIJMES is across the road from the meeting hotel; once there, =
The Winery is downstairs. If you=E2=80=99re planning to come along, let =
us know so that we don=E2=80=99t miss anyone.

Thanks,

Stephen

> On 7 Nov 2019, at 05:13, Marc Petit-Huguenin <marc@petit-huguenin.org> =
wrote:
>=20
> Maybe we need a new mailing-list to discuss formal languages...
>=20
> On 11/6/19 1:11 PM, Ted Lemon wrote:
>> This is getting kind of long for the hackathon mailing list (not that =
I object to formal languages!).
>>=20
>>> On Nov 6, 2019, at 10:02 PM, Carsten Bormann <cabo@tzi.org> wrote:
>>>=20
>>> On Nov 6, 2019, at 18:20, Antoni Przygienda <prz@juniper.net> wrote:
>>>>=20
>>>>>  When the complexity of the data being modeled dominates your =
thinking =E2=80=A6
>>>>=20
>>>> Tony=E2=80=99s dogma: =E2=80=9CComplexity of any successful =
technology _always_ goes up with time=E2=80=9D =F0=9F=98=89 =F0=9F=98=89
>>>=20
>>> Indeed, that=E2=80=99s why I talked about =E2=80=9Cdominates your =
thinking=E2=80=9D (as opposed to =E2=80=9Cshould dominate your =
thinking=E2=80=9D).
>>>=20
>>> An interesting effect of having a great FDT technique is that it =
becomes much easier to handle complexity.
>>> A follow-on effect is that, as it is so much easier to put in =
complexity, you do put in more of that.
>>> Which will hurt you sooner than you think (*)=E2=80=A6
>>>=20
>>> So I strongly believe that a prerequisite of using FDT successfully =
is that the formal model of your shiny new RFC should now fit on one =
slide.  (Which actually works out for RFC 7071 (+)!)
>>>=20
>>> Gr=C3=BC=C3=9Fe, Carsten
>>>=20
>>> (*) I still remember when I first read the ASN.1 for GSM MAP.  All =
950 pages [IIRC] of it=E2=80=A6
>>> (+) https://tools.ietf.org/html/rfc8610#page-61
>>>=20
>>> _______________________________________________
>>> hackathon mailing list
>>> hackathon@ietf.org
>>> https://www.ietf.org/mailman/listinfo/hackathon
>>=20
>> _______________________________________________
>> hackathon mailing list
>> hackathon@ietf.org
>> https://www.ietf.org/mailman/listinfo/hackathon
>>=20
>=20
>=20
> _______________________________________________
> hackathon mailing list
> hackathon@ietf.org
> https://www.ietf.org/mailman/listinfo/hackathon


--Apple-Mail=_37E31E01-4A46-46B8-BB67-817DB3D0CF58
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=utf-8

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html; =
charset=3Dutf-8"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; line-break: after-white-space;" class=3D"">Hi =
all,<div class=3D""><br class=3D""></div><div class=3D"">Given the =
amount of discussion about this, a new mailing list has been =
created:</div><div class=3D""><br class=3D""></div><div class=3D""><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span><a =
href=3D"https://www.ietf.org/mailman/listinfo/fdt" =
class=3D"">https://www.ietf.org/mailman/listinfo/fdt</a>&nbsp;(<a =
href=3D"mailto:fdt@ietf.org" class=3D"">fdt@ietf.org</a>)</div><div =
class=3D""><br class=3D""></div><div class=3D"">The list is for the =
discussion of formal languages, as they pertain to IETF documents. This =
includes discussion of the requirements of&nbsp;these techniques, and of =
their adoption within the IETF.</div><div class=3D""><br =
class=3D""></div><div class=3D"">In addition, a reminder that we=E2=80=99r=
e holding an informal side meeting on Thursday at 8pm. This=E2=80=99ll =
be at The Winery at CHIJMES (Google Maps: <a =
href=3D"https://g.page/thewinerysg" =
class=3D"">https://g.page/thewinerysg</a>) =E2=80=94 CHIJMES is across =
the road from the meeting hotel; once there, The Winery is downstairs. =
If you=E2=80=99re planning to come along, let us know so that we don=E2=80=
=99t miss anyone.</div><div class=3D""><br class=3D""></div><div =
class=3D"">Thanks,</div><div class=3D""><br class=3D""></div><div =
class=3D"">Stephen<br class=3D""><div><br class=3D""><blockquote =
type=3D"cite" class=3D""><div class=3D"">On 7 Nov 2019, at 05:13, Marc =
Petit-Huguenin &lt;<a href=3D"mailto:marc@petit-huguenin.org" =
class=3D"">marc@petit-huguenin.org</a>&gt; wrote:</div><br =
class=3D"Apple-interchange-newline"><div class=3D""><div class=3D"">Maybe =
we need a new mailing-list to discuss formal languages...<br =
class=3D""><br class=3D"">On 11/6/19 1:11 PM, Ted Lemon wrote:<br =
class=3D""><blockquote type=3D"cite" class=3D"">This is getting kind of =
long for the hackathon mailing list (not that I object to formal =
languages!).<br class=3D""><br class=3D""><blockquote type=3D"cite" =
class=3D"">On Nov 6, 2019, at 10:02 PM, Carsten Bormann &lt;<a =
href=3D"mailto:cabo@tzi.org" class=3D"">cabo@tzi.org</a>&gt; wrote:<br =
class=3D""><br class=3D"">On Nov 6, 2019, at 18:20, Antoni Przygienda =
&lt;<a href=3D"mailto:prz@juniper.net" class=3D"">prz@juniper.net</a>&gt; =
wrote:<br class=3D""><blockquote type=3D"cite" class=3D""><br =
class=3D""><blockquote type=3D"cite" class=3D""> &nbsp;When the =
complexity of the data being modeled dominates your thinking =E2=80=A6<br =
class=3D""></blockquote><br class=3D"">Tony=E2=80=99s dogma: =
=E2=80=9CComplexity of any successful technology _always_ goes up with =
time=E2=80=9D =F0=9F=98=89 =F0=9F=98=89<br class=3D""></blockquote><br =
class=3D"">Indeed, that=E2=80=99s why I talked about =E2=80=9Cdominates =
your thinking=E2=80=9D (as opposed to =E2=80=9Cshould dominate your =
thinking=E2=80=9D).<br class=3D""><br class=3D"">An interesting effect =
of having a great FDT technique is that it becomes much easier to handle =
complexity.<br class=3D"">A follow-on effect is that, as it is so much =
easier to put in complexity, you do put in more of that.<br =
class=3D"">Which will hurt you sooner than you think (*)=E2=80=A6<br =
class=3D""><br class=3D"">So I strongly believe that a prerequisite of =
using FDT successfully is that the formal model of your shiny new RFC =
should now fit on one slide. &nbsp;(Which actually works out for RFC =
7071 (+)!)<br class=3D""><br class=3D"">Gr=C3=BC=C3=9Fe, Carsten<br =
class=3D""><br class=3D"">(*) I still remember when I first read the =
ASN.1 for GSM MAP. &nbsp;All 950 pages [IIRC] of it=E2=80=A6<br =
class=3D"">(+) <a href=3D"https://tools.ietf.org/html/rfc8610#page-61" =
class=3D"">https://tools.ietf.org/html/rfc8610#page-61</a><br =
class=3D""><br =
class=3D"">_______________________________________________<br =
class=3D"">hackathon mailing list<br class=3D""><a =
href=3D"mailto:hackathon@ietf.org" class=3D"">hackathon@ietf.org</a><br =
class=3D"">https://www.ietf.org/mailman/listinfo/hackathon<br =
class=3D""></blockquote><br =
class=3D"">_______________________________________________<br =
class=3D"">hackathon mailing list<br class=3D""><a =
href=3D"mailto:hackathon@ietf.org" class=3D"">hackathon@ietf.org</a><br =
class=3D"">https://www.ietf.org/mailman/listinfo/hackathon<br =
class=3D""><br class=3D""></blockquote><br class=3D""><br =
class=3D"">_______________________________________________<br =
class=3D"">hackathon mailing list<br class=3D""><a =
href=3D"mailto:hackathon@ietf.org" class=3D"">hackathon@ietf.org</a><br =
class=3D"">https://www.ietf.org/mailman/listinfo/hackathon<br =
class=3D""></div></div></blockquote></div><br =
class=3D""></div></body></html>=

--Apple-Mail=_37E31E01-4A46-46B8-BB67-817DB3D0CF58--


From nobody Tue Nov 19 05:11:48 2019
Return-Path: <lgl@island-resort.com>
X-Original-To: cbor@ietfa.amsl.com
Delivered-To: cbor@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id EBF2B1208BB for <cbor@ietfa.amsl.com>; Tue, 19 Nov 2019 05:11:47 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.898
X-Spam-Level: 
X-Spam-Status: No, score=-1.898 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id wv2F57DjTWxK for <cbor@ietfa.amsl.com>; Tue, 19 Nov 2019 05:11:46 -0800 (PST)
Received: from p3plsmtpa09-09.prod.phx3.secureserver.net (p3plsmtpa09-09.prod.phx3.secureserver.net [173.201.193.238]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C115A12087E for <cbor@ietf.org>; Tue, 19 Nov 2019 05:11:46 -0800 (PST)
Received: from [172.16.134.137] ([101.100.166.3]) by :SMTPAUTH: with ESMTPA id X3IFiVvCdvE5rX3IGivJXz; Tue, 19 Nov 2019 06:11:45 -0700
From: Laurence Lundblade <lgl@island-resort.com>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Mime-Version: 1.0 (Mac OS X Mail 11.5 \(3445.9.1\))
Message-Id: <03E530C9-4B38-497A-BB4B-91488842C7F3@island-resort.com>
Date: Tue, 19 Nov 2019 21:11:42 +0800
To: cbor@ietf.org
X-Mailer: Apple Mail (2.3445.9.1)
X-CMAE-Envelope: MS4wfFp1/gdb4j50H9rZ9Svkvm27uvPBUzKUj7GDrQX7MEzG8c5iUrngv6ATqryZcS+Q7XlFa0QB9ftKY9yhdBDdXtLmbmcQOTw9wGf6pzvM/xac1JcRUgX/ 8/VSP/N9qDBY0a+lf0KZyaMs6dRBaGS8ctvwl75ELIvMf9On73BDxa/I
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/AoPJm1MxlhU-MrMGRHaS9Vnh8Dg>
Subject: [Cbor] Validity checking
X-BeenThere: cbor@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Concise Binary Object Representation \(CBOR\)" <cbor.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cbor>, <mailto:cbor-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cbor/>
List-Post: <mailto:cbor@ietf.org>
List-Help: <mailto:cbor-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cbor>, <mailto:cbor-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 19 Nov 2019 13:11:48 -0000

I=E2=80=99m not sure if this should be filed as an issue or not, so =
I=E2=80=99ll put it in email first.

Here=E2=80=99s three classes of validity checks:

1) Easy
- Check whether the type of a tagged item is right, for example that =
tagged content of a tag 0 (string date) is a string
Checks in the class are easy and take no extra resources except a few =
lines of code. Any decoder author
Is likely to implement this check for tagged types they support because =
it is sort of the obvious thing to do.

2) Medium
- Check for duplicate keys in a map
Check in this class require writing a some special code and may use a =
lot of extra resources, particularly memory

3) Should not be done by a generic decoder (IMO)
- Check MIME structure
- Check unicode characters
- Check for valid base64
- Check for valid date string
It would be costly and inconvenient to do these in a generic CBOR =
decoder, but not at all for a MIME decoder, unicode renderer or base 64 =
decoder, so it makes almost no sense for a generic CBOR decoder to =
implement them. It would be waste of time and resources.


I don=E2=80=99t think it useful to talk of validity checking or not =
validity checking generic decoders as in the latest section 5.4. (IMO) =
only an insane decoder would check all validity as it would one that =
includes a MIME parser, base64 decoder and such. Many generic decoders =
will do no validity checking at all and be perfectly OK because they =
don=E2=80=99t decode tagged types and don=E2=80=99t do duplicate =
checking.

LL



From nobody Thu Nov 21 04:52:24 2019
Return-Path: <jyasskin@google.com>
X-Original-To: cbor@ietfa.amsl.com
Delivered-To: cbor@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E21A21208C3 for <cbor@ietfa.amsl.com>; Thu, 21 Nov 2019 04:52:22 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -17.499
X-Spam-Level: 
X-Spam-Status: No, score=-17.499 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, ENV_AND_HDR_SPF_MATCH=-0.5, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, USER_IN_DEF_DKIM_WL=-7.5, USER_IN_DEF_SPF_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id L73zArEEARuc for <cbor@ietfa.amsl.com>; Thu, 21 Nov 2019 04:52:21 -0800 (PST)
Received: from mail-qv1-xf2a.google.com (mail-qv1-xf2a.google.com [IPv6:2607:f8b0:4864:20::f2a]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D254C120043 for <cbor@ietf.org>; Thu, 21 Nov 2019 04:52:20 -0800 (PST)
Received: by mail-qv1-xf2a.google.com with SMTP id y18so1339375qve.2 for <cbor@ietf.org>; Thu, 21 Nov 2019 04:52:20 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=9c+lPOCjysvM8bbfKuxwHaK90ygyxvwcWmaEEuK4b+E=; b=WY22PDEtl+wr90L8B0a4p1JJQnoIUaDiCM1coh9P/1CmEWxP8AtWGZ0wKlO7W3YCeT +w1lDYCQa4flgFGLOyMPW6NThhxxlApPP+54uRL92MiB7Scn7+K+ggcW6kjfUDKhhA9U QG5dF0bB509XRkhfBPcc3rkMs5SX8ZWQntk1f1p9gnqn8zaWC0dMPtdOna7SCn5YqYAk mBtTTmKOOX+qmVUK+ciLRwaVAijqrAxyOe+IwMSktgUCALit4Nfy0I65bosvt/uHZ5Kj UUUwYcRUjaHyvQ7MB3nOCAdtRyAUOE8VKSMiQNLgEV6MDznVhXzQX7jIw6GY4tVz08JC AxeQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=9c+lPOCjysvM8bbfKuxwHaK90ygyxvwcWmaEEuK4b+E=; b=JpATpFwzWwxa8SP33HNn3b87MwQp2XZdDTm+eT+8y79nd/e4gfo/yYXJtwQqRutyqT b3DOForoZf54WO7R3RYGRPHqKUQzO1KYC/x7LlgkWsst4z5fFaKawcU1l22etD1SzwHH VCK5PdX80HHaW9XscqkC/XXxoqLJHGyTSDI3ELnQ1lbfiK03tyjHVmpPIsV037iok4ys 366ooFIC6vzJC9goXKq5sNkFIA7TGzqpFFVhnLGnAp4PnyofTuNN1wrjphMOVVQ/zEVA +cP1kAZOmpHPsz0+dj8AHvLX3zztX2zoXspDnMjzpgygzuu63509RTB8layYNuhdbTyV 9U6Q==
X-Gm-Message-State: APjAAAW3supCk0Pp7VakeUY7VTnrelqc5CVXkH3arMNiAsDeUsIY/6HJ qiB0sA0fW0/JkyhYuHoTl7rK1ur24XVGYcINn4xocg/6R3pmO4sc
X-Google-Smtp-Source: APXvYqz/ItuRkv+FWRg4O6dKPKoGpblAjt9n1lQ2WxjAvjNZX+U7qw73rlZL7zcZ6htUhYHpEPNhAcPQNDvYXimliLU=
X-Received: by 2002:a0c:edcc:: with SMTP id i12mr7960618qvr.20.1574340738882;  Thu, 21 Nov 2019 04:52:18 -0800 (PST)
MIME-Version: 1.0
From: Jeffrey Yasskin <jyasskin@google.com>
Date: Thu, 21 Nov 2019 20:52:07 +0800
Message-ID: <CANh-dX=EVDa4EwrgWKof4kCD3nkfV3BvH0Cg5ZKOivmXJ_Dm8g@mail.gmail.com>
To: cbor@ietf.org
Content-Type: multipart/alternative; boundary="0000000000007f89b30597dac470"
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/hQDMXnvoAZZK-HQh40oqc48XR2k>
Subject: [Cbor] Handling duplicate map keys
X-BeenThere: cbor@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Concise Binary Object Representation \(CBOR\)" <cbor.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cbor>, <mailto:cbor-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cbor/>
List-Post: <mailto:cbor@ietf.org>
List-Help: <mailto:cbor-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cbor>, <mailto:cbor-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 21 Nov 2019 12:52:23 -0000

--0000000000007f89b30597dac470
Content-Type: text/plain; charset="UTF-8"

Re https://github.com/cbor-wg/CBORbis/issues/63, we had a long discussion
today at IETF106 about what CBORbis should say about how protocols handle
the (invalid) situation in which a CBOR map contains two entries with the
same key.

Clearly basic-validating
<https://cbor-wg.github.io/CBORbis/draft-ietf-cbor-7049bis.html#basic-validity>
parsers will return an error. The disagreement comes from what if anything
to require from non-validating parsers. An interesting piece of background
information comes from CVE-2013-4787
<https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-4787> and the ZIP
format: A ZIP central directory can have a single filename multiple times
(with no mention of this possibility in the specification
<https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT>). The Android
signature checker (in Java) checked the last occurrence, while the package
loader (in C) used the first. It takes two mistakes for that kind of
vulnerability to happen: 1) The implementer has to parse the format twice
with two different parsers instead of parsing once and operating over that
parse result twice. 2) The format has to fail to say how to deal with
invalid input. We have control over (2).

CBORbis currently says:

"A CBOR-based protocol MUST define what to do when a receiving application
> does see multiple identical keys in a map. The resulting rule in the
> protocol MUST respect the CBOR data model: it cannot prescribe a specific
> handling of the entries with the identical keys, except that it might have
> a rule that having identical keys in a map indicates a malformed map and
> that the decoder has to stop with an error. Duplicate keys are also
> prohibited by CBOR decoders that enforce validity (Section 5.4)."


A) Leaving this alone is one of the possibilities.

B) CBOR itself could say that a protocol implementation with a
non-validating decoder MUST use the *first* entry with a particular key and
discard the rest. (Note that this works even with a streaming decoder,
since it's a requirement at the protocol level.) This would ban three kinds
of implementations:
1) Ones that build up a native map from the full content of the CBOR map,
and unconditionally overwrite any existing entry with the next entry read
from the CBOR map. These can be fixed by checking whether an entry with the
key is already present before writing to it. Some native map APIs might not
be able to do this without a redundant lookup.
2) Ones that initialize a native structure with default values (as opposed
to "missing") and then overwrite those values with the entries read from
the CBOR map. These can be fixed by adding a "missing" value to all the
native structure fields, which might increase the storage needed.
3) Ones that perform some real-world action as they stream each CBOR map
entry and never store the entries at all. I don't see a way to get those to
ignore duplicates. I also worry about the real-world effect of performing
one of those actions twice if it was important to use a map instead of an
array.

C) CBOR could require protocols to use the *last* entry with a given key.
This requires any implementation to scan to the end of a map before using
any of the content, so it's probably a bad idea. It is potentially easier
to implement in a decoder that builds up a native map of the content.

D) CBOR could allow protocols to leave the behavior of duplicate keys
unspecified if they explicitly declare that the fields are not
security-sensitive.


I prefer B and then D. What do other people think?

Jeffrey

--0000000000007f89b30597dac470
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Re=C2=A0<a href=3D"https://github.com/cbor-wg/CBORbis/issu=
es/63">https://github.com/cbor-wg/CBORbis/issues/63</a>, we had a long disc=
ussion today at IETF106 about what CBORbis should say about how protocols h=
andle the (invalid) situation in which a CBOR map contains two entries with=
 the same key.<div><br></div><div>Clearly <a href=3D"https://cbor-wg.github=
.io/CBORbis/draft-ietf-cbor-7049bis.html#basic-validity">basic-validating</=
a> parsers will return an error. The disagreement comes from what if anythi=
ng to require from non-validating parsers. An interesting piece of backgrou=
nd information comes from=C2=A0<a href=3D"https://cve.mitre.org/cgi-bin/cve=
name.cgi?name=3DCVE-2013-4787">CVE-2013-4787</a> and the ZIP format: A ZIP =
central directory can have a single filename multiple times (with no mentio=
n of this possibility in the <a href=3D"https://pkware.cachefly.net/webdocs=
/casestudies/APPNOTE.TXT">specification</a>). The Android signature checker=
 (in Java) checked the last occurrence, while the package loader (in C) use=
d the first. It takes two mistakes for that kind of vulnerability to happen=
: 1) The implementer has to parse the format twice with two different parse=
rs instead of parsing once and operating over that parse result twice. 2) T=
he format has to fail to say how to deal with invalid input. We have contro=
l over (2).</div><div><br></div><div>CBORbis=C2=A0currently says:</div><div=
><br></div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.=
8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">&quot;A CBOR-b=
ased protocol MUST define what to do when a receiving application does see =
multiple identical keys in a map. The resulting rule in the protocol MUST r=
espect the CBOR data model: it cannot prescribe a specific handling of the =
entries with the identical keys, except that it might have a rule that havi=
ng identical keys in a map indicates a malformed map and that the decoder h=
as to stop with an error. Duplicate keys are also prohibited by CBOR decode=
rs that enforce validity (Section 5.4).&quot;</blockquote><div><br></div><d=
iv>A) Leaving this alone is one of the possibilities.</div><div><br></div><=
div>B) CBOR itself could say that a protocol implementation with a non-vali=
dating decoder MUST use the *first* entry with a particular key and discard=
 the rest. (Note that this works even with a streaming decoder, since it&#3=
9;s a requirement at the protocol level.) This would ban three kinds of imp=
lementations:</div><div>1) Ones that build up a native map from the full co=
ntent of the CBOR map, and unconditionally overwrite any existing entry wit=
h the next entry read from the CBOR map. These can be fixed by checking whe=
ther an entry with the key is already present before writing to it. Some na=
tive map APIs might not be able to do this without a redundant lookup.</div=
><div>2) Ones that initialize a native structure with default values (as op=
posed to &quot;missing&quot;) and then overwrite those values with the entr=
ies read from the CBOR map. These can be fixed by adding a &quot;missing&qu=
ot; value to all the native structure fields, which might increase the stor=
age needed.</div><div>3) Ones that perform some real-world action as they s=
tream each CBOR map entry and never store the entries at all. I don&#39;t s=
ee a way to get those to ignore duplicates. I also worry about the real-wor=
ld effect of performing one of those actions twice if it was important to u=
se a map instead of an array.</div><div><br></div><div>C) CBOR could requir=
e protocols to use the *last* entry with a given key. This requires any imp=
lementation to scan to the end of a map before using any of the content, so=
 it&#39;s probably a bad idea. It is potentially easier to implement in a d=
ecoder that builds up a native map of the content.</div><div></div><div><br=
></div><div>D) CBOR could allow protocols to leave the behavior of duplicat=
e keys unspecified if they explicitly declare that the fields are not secur=
ity-sensitive.</div><div><br></div><div><br></div><div>I prefer B and then =
D. What do other people think?</div><div><br></div><div>Jeffrey</div></div>

--0000000000007f89b30597dac470--


From nobody Thu Nov 21 21:28:49 2019
Return-Path: <iesg-secretary@ietf.org>
X-Original-To: cbor@ietf.org
Delivered-To: cbor@ietfa.amsl.com
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id 4FDB112022D; Thu, 21 Nov 2019 21:28:46 -0800 (PST)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit
From: IESG Secretary <iesg-secretary@ietf.org>
To: "IETF-Announce" <ietf-announce@ietf.org>
Cc: cbor@ietf.org
X-Test-IDTracker: no
X-IETF-IDTracker: 6.111.0
Auto-Submitted: auto-generated
Precedence: bulk
Message-ID: <157440052618.32312.15810062675489872843@ietfa.amsl.com>
Date: Thu, 21 Nov 2019 21:28:46 -0800
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/M65DNSsOW7M7c7HuwucTbAeQ9v8>
Subject: [Cbor] Concise Binary Object Representation Maintenance and Extensions (cbor) WG Virtual Meeting: 2019-12-18
X-BeenThere: cbor@ietf.org
X-Mailman-Version: 2.1.29
List-Id: "Concise Binary Object Representation \(CBOR\)" <cbor.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cbor>, <mailto:cbor-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cbor/>
List-Post: <mailto:cbor@ietf.org>
List-Help: <mailto:cbor-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cbor>, <mailto:cbor-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 22 Nov 2019 05:28:46 -0000

The Concise Binary Object Representation Maintenance and Extensions (cbor) Working Group will hold
a virtual interim meeting on 2019-12-18 from 16:00 to 17:00 UTC.

Agenda:
TBD

Information about remote participation:
WebEx details will be sent to the mailing list before each call.

The CBOR working group will have conference calls running  

Day: Wednesday 
Dates:  18 Dec 2019, 15 Jan 2020, 29 Jan 2020 
Time: 16:00 – 17:00 UTC  

We will use the working group WebEx for the calls.  The IETF WebEx
account does not allow International dialling nor US toll free ("800"
numbers), but you can use the WebEx app to connect your device audio,
and there's also the option of connection directly from your browser
if your browser supports it.


From nobody Thu Nov 21 21:29:37 2019
Return-Path: <iesg-secretary@ietf.org>
X-Original-To: cbor@ietf.org
Delivered-To: cbor@ietfa.amsl.com
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id D5ED412022D; Thu, 21 Nov 2019 21:29:34 -0800 (PST)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit
From: IESG Secretary <iesg-secretary@ietf.org>
To: "IETF-Announce" <ietf-announce@ietf.org>
Cc: cbor@ietf.org
X-Test-IDTracker: no
X-IETF-IDTracker: 6.111.0
Auto-Submitted: auto-generated
Precedence: bulk
Message-ID: <157440057483.32468.3160843183861247004@ietfa.amsl.com>
Date: Thu, 21 Nov 2019 21:29:34 -0800
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/mUC5wfunYaPcGIgb7rk04J4ofc8>
Subject: [Cbor] Concise Binary Object Representation Maintenance and Extensions (cbor) WG Virtual Meeting: 2020-01-15
X-BeenThere: cbor@ietf.org
X-Mailman-Version: 2.1.29
List-Id: "Concise Binary Object Representation \(CBOR\)" <cbor.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cbor>, <mailto:cbor-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cbor/>
List-Post: <mailto:cbor@ietf.org>
List-Help: <mailto:cbor-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cbor>, <mailto:cbor-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 22 Nov 2019 05:29:35 -0000

The Concise Binary Object Representation Maintenance and Extensions (cbor) Working Group will hold
a virtual interim meeting on 2020-01-15 from 16:00 to 17:00 UTC.

Agenda:
TBD

Information about remote participation:
WebEx details will be sent to the mailing list before each call.

The CBOR working group will have conference calls running  

Day: Wednesday 
Dates:  18 Dec 2019, 15 Jan 2020, 29 Jan 2020 
Time: 16:00 – 17:00 UTC  

We will use the working group WebEx for the calls.  The IETF WebEx
account does not allow International dialling nor US toll free ("800"
numbers), but you can use the WebEx app to connect your device audio,
and there's also the option of connection directly from your browser
if your browser supports it.


From nobody Thu Nov 21 21:29:57 2019
Return-Path: <iesg-secretary@ietf.org>
X-Original-To: cbor@ietf.org
Delivered-To: cbor@ietfa.amsl.com
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id 164B0120BF0; Thu, 21 Nov 2019 21:29:55 -0800 (PST)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit
From: IESG Secretary <iesg-secretary@ietf.org>
To: "IETF-Announce" <ietf-announce@ietf.org>
Cc: cbor@ietf.org
X-Test-IDTracker: no
X-IETF-IDTracker: 6.111.0
Auto-Submitted: auto-generated
Precedence: bulk
Message-ID: <157440059505.32289.4864924334331782890@ietfa.amsl.com>
Date: Thu, 21 Nov 2019 21:29:55 -0800
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/JeXR-nWawOMuvZVG_ujYAUeT84k>
Subject: [Cbor] Concise Binary Object Representation Maintenance and Extensions (cbor) WG Virtual Meeting: 2020-01-29
X-BeenThere: cbor@ietf.org
X-Mailman-Version: 2.1.29
List-Id: "Concise Binary Object Representation \(CBOR\)" <cbor.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cbor>, <mailto:cbor-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cbor/>
List-Post: <mailto:cbor@ietf.org>
List-Help: <mailto:cbor-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cbor>, <mailto:cbor-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 22 Nov 2019 05:29:55 -0000

The Concise Binary Object Representation Maintenance and Extensions (cbor) Working Group will hold
a virtual interim meeting on 2020-01-29 from 16:00 to 17:00 UTC.

Agenda:
(No agenda submitted)

Information about remote participation:
WebEx details will be sent to the mailing list before each call.

The CBOR working group will have conference calls running  

Day: Wednesday 
Dates:  18 Dec 2019, 15 Jan 2020, 29 Jan 2020 
Time: 16:00 – 17:00 UTC  

We will use the working group WebEx for the calls.  The IETF WebEx
account does not allow International dialling nor US toll free ("800"
numbers), but you can use the WebEx app to connect your device audio,
and there's also the option of connection directly from your browser
if your browser supports it.


From nobody Fri Nov 22 18:00:06 2019
Return-Path: <lgl@island-resort.com>
X-Original-To: cbor@ietfa.amsl.com
Delivered-To: cbor@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 17480120180 for <cbor@ietfa.amsl.com>; Fri, 22 Nov 2019 18:00:05 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.897
X-Spam-Level: 
X-Spam-Status: No, score=-1.897 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 6kMDvmCoPVNV for <cbor@ietfa.amsl.com>; Fri, 22 Nov 2019 18:00:03 -0800 (PST)
Received: from p3plsmtpa07-04.prod.phx3.secureserver.net (p3plsmtpa07-04.prod.phx3.secureserver.net [173.201.192.233]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A3B93120168 for <cbor@ietf.org>; Fri, 22 Nov 2019 18:00:03 -0800 (PST)
Received: from [172.19.249.135] ([38.98.37.136]) by :SMTPAUTH: with ESMTPA id YKiHi3su1Q4JfYKiNij4Ak; Fri, 22 Nov 2019 19:00:02 -0700
From: Laurence Lundblade <lgl@island-resort.com>
Message-Id: <E5C74E1F-A5F4-4AB8-9787-3999C4697C3B@island-resort.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_4E416485-5BF0-4C6D-B865-31F33140BE6F"
Mime-Version: 1.0 (Mac OS X Mail 11.5 \(3445.9.1\))
Date: Sat, 23 Nov 2019 09:59:52 +0800
In-Reply-To: <CANh-dX=EVDa4EwrgWKof4kCD3nkfV3BvH0Cg5ZKOivmXJ_Dm8g@mail.gmail.com>
Cc: cbor@ietf.org
To: Jeffrey Yasskin <jyasskin=40google.com@dmarc.ietf.org>
References: <CANh-dX=EVDa4EwrgWKof4kCD3nkfV3BvH0Cg5ZKOivmXJ_Dm8g@mail.gmail.com>
X-Mailer: Apple Mail (2.3445.9.1)
X-CMAE-Envelope: MS4wfBoQ5/ea9wICwsr+RBCCe+Seo/P0WLvm2TcSKQNZo9s7ntqCO8eMnbQF28lv9ZkNKKOCATUTwpSK2pYtmjDBgXBkUUdeIEL5bTjCw8IkN1cVusx8L6qN C22DdQ6zHWS9NJw7628pT480w7F0ce61MxUdFeDadPMauQP9lTumInNBHakG1kx6ithCy+/QsrTnqPRG0Il7Db81TGX4CzzlzeW1LtnQEb/Oks3gbYrV339b
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/y9EwKVL9Sz0GuuRl6rZ5GAplDxk>
Subject: Re: [Cbor] Handling duplicate map keys
X-BeenThere: cbor@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Concise Binary Object Representation \(CBOR\)" <cbor.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cbor>, <mailto:cbor-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cbor/>
List-Post: <mailto:cbor@ietf.org>
List-Help: <mailto:cbor-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cbor>, <mailto:cbor-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 23 Nov 2019 02:00:05 -0000

--Apple-Mail=_4E416485-5BF0-4C6D-B865-31F33140BE6F
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8

Here=E2=80=99s a rough proposed text:

The protocol designer should make a choice for maps as to whether =
duplicates are allowed or not, particularly as to whether duplicates =
would cause security or functionality problems.

The protocol designer should only require duplicate detection when =
necessary as it can have the following implications:
Some generic decoders do not support duplicate detection because the =
underlying facilities in their programming environment to represent maps =
can=E2=80=99t detect duplicates
Some generic decoders do not support duplicate detection because it =
requires more code and is not required
It requires more resources to implement: 1) memory to store all the keys =
in the map, 2) more code, 3) more CPU time, as much as O(n^2). This is =
particularly an issue with big maps in constrained environments.
It is suggested that protocol designers require duplicate detection only =
no the particular maps for which there is an issue.

Decoders will typically fall into one of these categories:
Full duplicate detection
Pass all items up to caller, allowing the caller to implement duplicate =
detection or not
No duplicate detection
A generic decoder should identify which it is. Some may support more =
than one, selectable by configuration.

Here=E2=80=99s why.

I see no value in take first or take last over duplicate detection. In =
all three all, the keys encountered must be recorded and processed. If =
the map is large this will take a lot of memory. In all cases there is =
some extra code and CPU. CPU time is worse than O(n), perhaps O(n^2). It =
doesn=E2=80=99t matter if the use case is streaming or not. It is the =
memory, code and CPU time that matter.  (Take last can only be =
implemented by decoding the whole map, as it is only after decoding the =
whole map that it can know it has encountered the last; in a way you =
cannot do the last for a streaming decoder).

This is a guess =E2=80=94 I don=E2=80=99t think map libraries that =
don=E2=80=99t support duplicate detection commonly support  take first. =
I suspect some do take first, some do take last and some do take random. =
To me that makes any mention of take first or take last in the =
specification not very valuable especially as it doesn=E2=80=99t have =
much memory, CPU or code advantage over duplicate detection.

LL=

--Apple-Mail=_4E416485-5BF0-4C6D-B865-31F33140BE6F
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=utf-8

<html><body style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; =
-webkit-line-break: after-white-space;" class=3D""><div =
class=3D"">Here=E2=80=99s a rough proposed text:</div><div class=3D""><br =
class=3D""></div><blockquote style=3D"margin: 0 0 0 40px; border: none; =
padding: 0px;" class=3D""><div class=3D"">The protocol designer should =
make a choice for maps as to whether duplicates are allowed or not, =
particularly as to whether duplicates would cause security or =
functionality problems.</div><div class=3D""><br class=3D""></div><div =
class=3D"">The protocol designer should only require duplicate detection =
when necessary as it can have the following implications:</div><div =
class=3D""><ul class=3D""><li class=3D"">Some generic decoders do not =
support duplicate detection because the underlying facilities in their =
programming environment to represent maps can=E2=80=99t detect =
duplicates</li><li class=3D"">Some generic decoders do not support =
duplicate detection because it requires more code and is not =
required</li><li class=3D"">It requires more resources to implement: 1) =
memory to store all the keys in the map, 2) more code, 3) more CPU time, =
as much as O(n^2). This is particularly an issue with big maps in =
constrained environments.</li></ul></div><div class=3D"">It is suggested =
that protocol designers require duplicate detection only no the =
particular maps for which there is an issue.</div><div class=3D""><br =
class=3D""></div><div class=3D"">Decoders will typically fall into one =
of these categories:</div><div class=3D""><ul class=3D""><li =
class=3D"">Full duplicate detection</li><li class=3D"">Pass all items up =
to caller, allowing the caller to implement duplicate detection or =
not</li><li class=3D"">No duplicate detection</li></ul></div><div =
class=3D"">A generic decoder should identify which it is. Some may =
support more than one, selectable by =
configuration.</div></blockquote><div class=3D""><br class=3D""></div><div=
 class=3D"">Here=E2=80=99s why.</div><div class=3D""><br =
class=3D""></div><div class=3D"">I see no value in take first or take =
last over duplicate detection. In all three all, the keys encountered =
must be recorded and processed. If the map is large this will take a lot =
of memory. In all cases there is some extra code and CPU. CPU time is =
worse than O(n), perhaps O(n^2). It doesn=E2=80=99t matter if the use =
case is streaming or not. It is the memory, code and CPU time that =
matter. &nbsp;(Take last can only be implemented by decoding the whole =
map, as it is only after decoding the whole map that it can know it has =
encountered the last; in a way you cannot do the last for a streaming =
decoder).</div><div class=3D""><br class=3D""></div><div class=3D"">This =
is a guess =E2=80=94 I don=E2=80=99t think map libraries that don=E2=80=99=
t support duplicate detection commonly support &nbsp;take first. I =
suspect some do take first, some do take last and some do take random. =
To me that makes any mention of take first or take last in the =
specification not very valuable especially as it doesn=E2=80=99t have =
much memory, CPU or code advantage over duplicate detection.</div><div =
class=3D""><br class=3D""></div><div class=3D"">LL</div></body></html>=

--Apple-Mail=_4E416485-5BF0-4C6D-B865-31F33140BE6F--


From nobody Sat Nov 23 01:11:40 2019
Return-Path: <jyasskin@google.com>
X-Original-To: cbor@ietfa.amsl.com
Delivered-To: cbor@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id CCD4812090A for <cbor@ietfa.amsl.com>; Sat, 23 Nov 2019 01:11:36 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -9.251
X-Spam-Level: 
X-Spam-Status: No, score=-9.251 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.249, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, USER_IN_DEF_SPF_WL=-7.5] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=chromium.org
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id hJUmli4o5aCj for <cbor@ietfa.amsl.com>; Sat, 23 Nov 2019 01:11:35 -0800 (PST)
Received: from mail-qt1-x82f.google.com (mail-qt1-x82f.google.com [IPv6:2607:f8b0:4864:20::82f]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 96DE7120908 for <cbor@ietf.org>; Sat, 23 Nov 2019 01:11:35 -0800 (PST)
Received: by mail-qt1-x82f.google.com with SMTP id r20so10827661qtp.13 for <cbor@ietf.org>; Sat, 23 Nov 2019 01:11:35 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=JlrYV7ve1IiQjUyiUtJlA6/QuP1+8de94x6p4lzuQU8=; b=gBMybBuTPEVYwZV8P2pEDIfZ1sLs1tdxhj7ZlFeR7jzptHc3DliUdg6IkGrTU5Ae9L 1i19APyTCHSC10+DEb3dHPS4ZLapJ4VmLyJLiX1tdttZS1H2b1ceF+VzPZ62/CSmpXzm dPuPa2lBrwUUycy2yGaOGdonPkdysVePvTZVI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=JlrYV7ve1IiQjUyiUtJlA6/QuP1+8de94x6p4lzuQU8=; b=Ygdx/3lEd9Zt/OBvZv0HzPIKCyXQRXZz8fM8dSoBL75apXe7TeW9xQsnk43+jltQZj UfJ6o3zg5zHBwWU7C6E7CuFZOaxiyACsspj3nilMTKgA1YaXz1skJTtNIW+aAb+XXRqX +uFY0MBOxQ0bRgU1kJA/2WYgkvvoHc+mvxuZa69TvpoJS3e0JaHoKs745dMGW/Wt4LW4 FrxURPEBzt/WHHjTUw7Q0ux0IPmcuCJlz+bsdPC+j7w8RdqZQZjk6NRTdCc+raQxTsRt 3MBTL3I9ruL3sh3eD6Ue/aR7Trt9fJxEfJP7ZrYKlS4dWWRWRUqm+kvnly23UadB8wqZ I7CA==
X-Gm-Message-State: APjAAAXKaHzSlua6cjjVt8HM+oZ/WsKeXRmAwHP7TrVRvcWmwtXKmyI0 qoxBiha5QbxhHC5dJqGG0F9pxa+v51SH0KV0vNsAPUDOOFJlOjCM
X-Google-Smtp-Source: APXvYqxRcsfjyNVa9E6uwtlmWL4yA4Y+LZpxR9GqCW7fXvxnT3Go01NH2aN92iSS8jWpnkBXniGPrDGSfTzSwvdRJU8=
X-Received: by 2002:aed:37c6:: with SMTP id j64mr2161577qtb.364.1574500293957;  Sat, 23 Nov 2019 01:11:33 -0800 (PST)
MIME-Version: 1.0
References: <CANh-dX=EVDa4EwrgWKof4kCD3nkfV3BvH0Cg5ZKOivmXJ_Dm8g@mail.gmail.com> <E5C74E1F-A5F4-4AB8-9787-3999C4697C3B@island-resort.com>
In-Reply-To: <E5C74E1F-A5F4-4AB8-9787-3999C4697C3B@island-resort.com>
From: Jeffrey Yasskin <jyasskin@chromium.org>
Date: Sat, 23 Nov 2019 17:11:22 +0800
Message-ID: <CANh-dX=1gkAtfSG-yzCsVAkk=oLM-=dN_JLCr1kQK3d6Jb0fSw@mail.gmail.com>
To: Laurence Lundblade <lgl@island-resort.com>
Cc: Jeffrey Yasskin <jyasskin=40google.com@dmarc.ietf.org>, cbor@ietf.org
Content-Type: multipart/alternative; boundary="000000000000b8db0c0597ffea77"
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/WTc7D5Eiohu21pK7SkqVJhXEtv8>
Subject: Re: [Cbor] Handling duplicate map keys
X-BeenThere: cbor@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Concise Binary Object Representation \(CBOR\)" <cbor.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cbor>, <mailto:cbor-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cbor/>
List-Post: <mailto:cbor@ietf.org>
List-Help: <mailto:cbor-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cbor>, <mailto:cbor-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 23 Nov 2019 09:11:37 -0000

--000000000000b8db0c0597ffea77
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Sat, Nov 23, 2019 at 10:00 AM Laurence Lundblade <lgl@island-resort.com>
wrote:

> Here=E2=80=99s a rough proposed text:
>
> The protocol designer should make a choice for maps as to whether
> duplicates are allowed or not, particularly as to whether duplicates woul=
d
> cause security or functionality problems.
>
> The protocol designer should only require duplicate detection when
> necessary as it can have the following implications:
>
>    - Some generic decoders do not support duplicate detection because the
>    underlying facilities in their programming environment to represent ma=
ps
>    can=E2=80=99t detect duplicates
>    - Some generic decoders do not support duplicate detection because it
>    requires more code and is not required
>
>
>    - It requires more resources to implement: 1) memory to store all the
>    keys in the map, 2) more code, 3) more CPU time, as much as O(n^2). Th=
is is
>    particularly an issue with big maps in constrained environments.
>
> It is suggested that protocol designers require duplicate detection only
> no the particular maps for which there is an issue.
>
> Decoders will typically fall into one of these categories:
>
>    - Full duplicate detection
>    - Pass all items up to caller, allowing the caller to implement
>    duplicate detection or not
>    - No duplicate detection
>
> A generic decoder should identify which it is. Some may support more than
> one, selectable by configuration.
>
>
I don't think generic decoders are relevant here. Protocol implementations
often accumulate their input into a data structure even if they use a
streaming decoder to read the input. Any such protocol can detect
duplicates (of the keys it uses at all) for at most the cost of an extra
bit per field.

Here=E2=80=99s why.
>
> I see no value in take first or take last over duplicate detection. In al=
l
> three all, the keys encountered must be recorded and processed. If the ma=
p
> is large this will take a lot of memory. In all cases there is some extra
> code and CPU. CPU time is worse than O(n), perhaps O(n^2). It doesn=E2=80=
=99t
> matter if the use case is streaming or not. It is the memory, code and CP=
U
> time that matter.  (Take last can only be implemented by decoding the who=
le
> map, as it is only after decoding the whole map that it can know it has
> encountered the last; in a way you cannot do the last for a streaming
> decoder).
>
> This is a guess =E2=80=94 I don=E2=80=99t think map libraries that don=E2=
=80=99t support duplicate
> detection commonly support  take first. I suspect some do take first, som=
e
> do take last and some do take random. To me that makes any mention of tak=
e
> first or take last in the specification not very valuable especially as i=
t
> doesn=E2=80=99t have much memory, CPU or code advantage over duplicate de=
tection.
>

I think you make a good point that if a protocol is going to specify "take
first", it can probably specify "error on duplicate key" for the same cost.
That might imply some much simpler text:

"Protocols based on CBOR SHOULD fail with an error if a map contains a
> duplicate key, except that if the key isn't used at all, they MAY ignore =
it
> instead. Protocols that do not reject duplicate keys MUST (?) document wh=
y
> the cost of rejecting duplicates is too high and why accepting them will
> not lead to security vulnerabilities. An array might be a better choice f=
or
> such protocols."


Do we have any concrete examples of protocols or formats built on CBOR that
don't store anything while parsing their input? One of those might provide
a good example of a protocol that shouldn't reject duplicates.

Jeffrey

--000000000000b8db0c0597ffea77
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div dir=3D"ltr">On Sat, Nov 23, 2019 at 10:00 AM Laurence=
 Lundblade &lt;<a href=3D"mailto:lgl@island-resort.com">lgl@island-resort.c=
om</a>&gt; wrote:<br></div><div class=3D"gmail_quote"><blockquote class=3D"=
gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(20=
4,204,204);padding-left:1ex"><div style=3D"overflow-wrap: break-word;"><div=
>Here=E2=80=99s a rough proposed text:</div><div><br></div><blockquote styl=
e=3D"margin:0px 0px 0px 40px;border:none;padding:0px"><div>The protocol des=
igner should make a choice for maps as to whether duplicates are allowed or=
 not, particularly as to whether duplicates would cause security or functio=
nality problems.</div><div><br></div><div>The protocol designer should only=
 require duplicate detection when necessary as it can have the following im=
plications:</div><div><ul><li>Some generic decoders do not support duplicat=
e detection because the underlying facilities in their programming environm=
ent to represent maps can=E2=80=99t detect duplicates</li><li>Some generic =
decoders do not support duplicate detection because it requires more code a=
nd is not required</li></ul></div></blockquote></div></blockquote><blockquo=
te class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px =
solid rgb(204,204,204);padding-left:1ex"><div style=3D"overflow-wrap: break=
-word;"><blockquote style=3D"margin:0px 0px 0px 40px;border:none;padding:0p=
x"><div><ul><li>It requires more resources to implement: 1) memory to store=
 all the keys in the map, 2) more code, 3) more CPU time, as much as O(n^2)=
. This is particularly an issue with big maps in constrained environments.<=
/li></ul></div><div>It is suggested that protocol designers require duplica=
te detection only no the particular maps for which there is an issue.</div>=
<div><br></div><div>Decoders will typically fall into one of these categori=
es:</div><div><ul><li>Full duplicate detection</li><li>Pass all items up to=
 caller, allowing the caller to implement duplicate detection or not</li><l=
i>No duplicate detection</li></ul></div><div>A generic decoder should ident=
ify which it is. Some may support more than one, selectable by configuratio=
n.</div></blockquote></div></blockquote><div><br></div><div>I don&#39;t thi=
nk generic decoders are relevant here. Protocol implementations often accum=
ulate their input into a data structure even if they use a streaming decode=
r to read the input. Any such protocol can detect duplicates (of the keys i=
t uses at all) for at most the cost of an extra bit per field.</div><div><b=
r></div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex=
;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style=3D"ove=
rflow-wrap: break-word;"><div></div><div>Here=E2=80=99s why.</div><div><br>=
</div><div>I see no value in take first or take last over duplicate detecti=
on. In all three all, the keys encountered must be recorded and processed. =
If the map is large this will take a lot of memory. In all cases there is s=
ome extra code and CPU. CPU time is worse than O(n), perhaps O(n^2). It doe=
sn=E2=80=99t matter if the use case is streaming or not. It is the memory, =
code and CPU time that matter. =C2=A0(Take last can only be implemented by =
decoding the whole map, as it is only after decoding the whole map that it =
can know it has encountered the last; in a way you cannot do the last for a=
 streaming decoder).</div><div><br></div><div>This is a guess =E2=80=94 I d=
on=E2=80=99t think map libraries that don=E2=80=99t support duplicate detec=
tion commonly support =C2=A0take first. I suspect some do take first, some =
do take last and some do take random. To me that makes any mention of take =
first or take last in the specification not very valuable especially as it =
doesn=E2=80=99t have much memory, CPU or code advantage over duplicate dete=
ction.</div></div></blockquote><div><br></div><div>I think you make a good =
point that if a protocol is going to specify &quot;take first&quot;, it can=
 probably specify &quot;error on duplicate key&quot; for the same cost. Tha=
t might imply some much simpler text:</div><div><br></div></div><blockquote=
 style=3D"margin:0 0 0 40px;border:none;padding:0px"><div class=3D"gmail_qu=
ote"><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;bo=
rder-left:1px solid rgb(204,204,204);padding-left:1ex">&quot;Protocols base=
d on CBOR SHOULD fail with an error if a map contains a duplicate key, exce=
pt that if the key isn&#39;t used at all, they MAY ignore it instead. Proto=
cols that do not reject duplicate keys MUST (?) document why the cost of re=
jecting duplicates is too high and why accepting them will not lead to secu=
rity vulnerabilities. An array might be a better choice for such protocols.=
&quot;</blockquote></div></blockquote><div class=3D"gmail_quote"><div><br><=
/div><div>Do we have any concrete examples of protocols or formats built on=
 CBOR that don&#39;t store anything while parsing their input? One of those=
 might provide a good example of a protocol that shouldn&#39;t reject dupli=
cates.</div><div><br></div><div>Jeffrey</div></div></div>

--000000000000b8db0c0597ffea77--


From nobody Sat Nov 23 07:21:55 2019
Return-Path: <lgl@island-resort.com>
X-Original-To: cbor@ietfa.amsl.com
Delivered-To: cbor@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 91E93120116 for <cbor@ietfa.amsl.com>; Sat, 23 Nov 2019 07:21:53 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.895
X-Spam-Level: 
X-Spam-Status: No, score=-1.895 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001] autolearn=unavailable autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id kwlNqwWYRjCy for <cbor@ietfa.amsl.com>; Sat, 23 Nov 2019 07:21:51 -0800 (PST)
Received: from p3plsmtpa06-09.prod.phx3.secureserver.net (p3plsmtpa06-09.prod.phx3.secureserver.net [173.201.192.110]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 6F0EF1200B9 for <cbor@ietf.org>; Sat, 23 Nov 2019 07:21:51 -0800 (PST)
Received: from [10.86.0.74] ([45.56.150.43]) by :SMTPAUTH: with ESMTPA id YXELi8ky2Xf0IYXELicbL1; Sat, 23 Nov 2019 08:21:50 -0700
From: Laurence Lundblade <lgl@island-resort.com>
Message-Id: <F81E1A57-6072-44FA-A148-8F3ED7520791@island-resort.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_B634E199-74B2-4A14-AFEE-0FF99865E609"
Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.11\))
Date: Sat, 23 Nov 2019 07:21:49 -0800
In-Reply-To: <CANh-dX=1gkAtfSG-yzCsVAkk=oLM-=dN_JLCr1kQK3d6Jb0fSw@mail.gmail.com>
Cc: Jeffrey Yasskin <jyasskin=40google.com@dmarc.ietf.org>, cbor@ietf.org
To: Jeffrey Yasskin <jyasskin@chromium.org>
References: <CANh-dX=EVDa4EwrgWKof4kCD3nkfV3BvH0Cg5ZKOivmXJ_Dm8g@mail.gmail.com> <E5C74E1F-A5F4-4AB8-9787-3999C4697C3B@island-resort.com> <CANh-dX=1gkAtfSG-yzCsVAkk=oLM-=dN_JLCr1kQK3d6Jb0fSw@mail.gmail.com>
X-Mailer: Apple Mail (2.3445.104.11)
X-CMAE-Envelope: MS4wfNaX6II8ldZcz/TGAMVkA5R9shhcbtMSducBkF5d874PpyHf+jo9Ut4LcNhVVzEKkMNqN6/wi8onvZQLMWTlvataL2HPofnt7Qhmz1bVEol/vkImn+4f o3uVfkgMbGK6XmT889gaPW/r5QdeiErJp/8oYhdHY/ZwmyIVgaFGtrrxtdZNduNQ0cdX3T6y4KdzcMyGNQiX+djiUfNDAFK0R5CK7try41bH0iUokfdgvtBl bPNksb88iLb58nxEI0nF8w==
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/bxBrfblqFsyCmHPlneN6unJMJNY>
Subject: Re: [Cbor] Handling duplicate map keys
X-BeenThere: cbor@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Concise Binary Object Representation \(CBOR\)" <cbor.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cbor>, <mailto:cbor-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cbor/>
List-Post: <mailto:cbor@ietf.org>
List-Help: <mailto:cbor-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cbor>, <mailto:cbor-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 23 Nov 2019 15:21:53 -0000

--Apple-Mail=_B634E199-74B2-4A14-AFEE-0FF99865E609
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8



> On Nov 23, 2019, at 1:11 AM, Jeffrey Yasskin <jyasskin@chromium.org> =
wrote:
>=20
> On Sat, Nov 23, 2019 at 10:00 AM Laurence Lundblade =
<lgl@island-resort.com <mailto:lgl@island-resort.com>> wrote:
> Here=E2=80=99s a rough proposed text:
>=20
> The protocol designer should make a choice for maps as to whether =
duplicates are allowed or not, particularly as to whether duplicates =
would cause security or functionality problems.
>=20
> The protocol designer should only require duplicate detection when =
necessary as it can have the following implications:
> Some generic decoders do not support duplicate detection because the =
underlying facilities in their programming environment to represent maps =
can=E2=80=99t detect duplicates
> Some generic decoders do not support duplicate detection because it =
requires more code and is not required
> It requires more resources to implement: 1) memory to store all the =
keys in the map, 2) more code, 3) more CPU time, as much as O(n^2).. =
This is particularly an issue with big maps in constrained environments.
> It is suggested that protocol designers require duplicate detection =
only no the particular maps for which there is an issue.
>=20
> Decoders will typically fall into one of these categories:
> Full duplicate detection
> Pass all items up to caller, allowing the caller to implement =
duplicate detection or not
> No duplicate detection
> A generic decoder should identify which it is. Some may support more =
than one, selectable by configuration.
>=20
> I don't think generic decoders are relevant here. Protocol =
implementations often accumulate their input into a data structure even =
if they use a streaming decoder to read the input. Any such protocol can =
detect duplicates (of the keys it uses at all) for at most the cost of =
an extra bit per field.

My intention was that =E2=80=9Cpass all items up=E2=80=9D covers your =
case.=20

My QCBOR + t_cose implementations work exactly as you describe to =
implement dup detection in COSE header parameters. It=E2=80=99s the data =
structures that hold the COSE header params that are used to detect the =
duplicates, not the generic decoder (QCBOR).  This seems like a good way =
to handle this problem for lots of use cases.=20


>=20
> Here=E2=80=99s why.
>=20
> I see no value in take first or take last over duplicate detection. In =
all three all, the keys encountered must be recorded and processed. If =
the map is large this will take a lot of memory. In all cases there is =
some extra code and CPU. CPU time is worse than O(n), perhaps O(n^2). It =
doesn=E2=80=99t matter if the use case is streaming or not. It is the =
memory, code and CPU time that matter.  (Take last can only be =
implemented by decoding the whole map, as it is only after decoding the =
whole map that it can know it has encountered the last; in a way you =
cannot do the last for a streaming decoder).
>=20
> This is a guess =E2=80=94 I don=E2=80=99t think map libraries that =
don=E2=80=99t support duplicate detection commonly support  take first. =
I suspect some do take first, some do take last and some do take random. =
To me that makes any mention of take first or take last in the =
specification not very valuable especially as it doesn=E2=80=99t have =
much memory, CPU or code advantage over duplicate detection.
>=20
> I think you make a good point that if a protocol is going to specify =
"take first", it can probably specify "error on duplicate key" for the =
same cost. That might imply some much simpler text:
>=20
> "Protocols based on CBOR SHOULD fail with an error if a map contains a =
duplicate key, except that if the key isn't used at all, they MAY ignore =
it instead. Protocols that do not reject duplicate keys MUST (?) =
document why the cost of rejecting duplicates is too high and why =
accepting them will not lead to security vulnerabilities. An array might =
be a better choice for such protocols.=E2=80=9D

I think I=E2=80=99d invert it and say that protocols that require =
duplicate detection for security reasons should describe that =
requirement in security considerations so the implementor gets a good =
solid hint that they need to worry about it.

There is lot of text implying that duplicates are bad, but I think it =
would be worth being explicit.

You are an idiot if you design a protocol that considers duplicate input =
valid or necessary. Duplicate map keys are always an error in CBOR and =
will not work with many generic decoders.

>=20
> Do we have any concrete examples of protocols or formats built on CBOR =
that don't store anything while parsing their input? One of those might =
provide a good example of a protocol that shouldn't reject duplicates.


Duplicates will / must only occur in error situations. It is always =
right to reject encoded CBOR that has duplicates.

The main thing is that when duplicates have security implications for =
the protocol, that must be called out and the implementor told to do =
something about them.=20

To say it more in prose: They should either use a generic CBOR decoder =
that errors out on duplicates, or a CBOR decoder that passes duplicates =
up so the protocol implementation on top of CBOR can do the detection. =
What they must not do is use a decoder that does take first, take last =
or randomly takes one of the occurrences.

LL


--Apple-Mail=_B634E199-74B2-4A14-AFEE-0FF99865E609
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=utf-8

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html; =
charset=3Dutf-8"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; line-break: after-white-space;" class=3D""><br =
class=3D""><div><br class=3D""><blockquote type=3D"cite" class=3D""><div =
class=3D"">On Nov 23, 2019, at 1:11 AM, Jeffrey Yasskin &lt;<a =
href=3D"mailto:jyasskin@chromium.org" =
class=3D"">jyasskin@chromium.org</a>&gt; wrote:</div><br =
class=3D"Apple-interchange-newline"><div class=3D""><div dir=3D"ltr" =
class=3D""><div dir=3D"ltr" class=3D"">On Sat, Nov 23, 2019 at 10:00 AM =
Laurence Lundblade &lt;<a href=3D"mailto:lgl@island-resort.com" =
class=3D"">lgl@island-resort.com</a>&gt; wrote:<br class=3D""></div><div =
class=3D"gmail_quote"><blockquote class=3D"gmail_quote" =
style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid =
rgb(204,204,204);padding-left:1ex"><div style=3D"overflow-wrap: =
break-word;" class=3D""><div class=3D"">Here=E2=80=99s a rough proposed =
text:</div><div class=3D""><br class=3D""></div><blockquote =
style=3D"margin:0px 0px 0px 40px;border:none;padding:0px" class=3D""><div =
class=3D"">The protocol designer should make a choice for maps as to =
whether duplicates are allowed or not, particularly as to whether =
duplicates would cause security or functionality problems.</div><div =
class=3D""><br class=3D""></div><div class=3D"">The protocol designer =
should only require duplicate detection when necessary as it can have =
the following implications:</div><div class=3D""><ul class=3D""><li =
class=3D"">Some generic decoders do not support duplicate detection =
because the underlying facilities in their programming environment to =
represent maps can=E2=80=99t detect duplicates</li><li class=3D"">Some =
generic decoders do not support duplicate detection because it requires =
more code and is not =
required</li></ul></div></blockquote></div></blockquote><blockquote =
class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px =
solid rgb(204,204,204);padding-left:1ex"><div style=3D"overflow-wrap: =
break-word;" class=3D""><blockquote style=3D"margin:0px 0px 0px =
40px;border:none;padding:0px" class=3D""><div class=3D""><ul =
class=3D""><li class=3D"">It requires more resources to implement: 1) =
memory to store all the keys in the map, 2) more code, 3) more CPU time, =
as much as O(n^2).. This is particularly an issue with big maps in =
constrained environments.</li></ul></div><div class=3D"">It is suggested =
that protocol designers require duplicate detection only no the =
particular maps for which there is an issue.</div><div class=3D""><br =
class=3D""></div><div class=3D"">Decoders will typically fall into one =
of these categories:</div><div class=3D""><ul class=3D""><li =
class=3D"">Full duplicate detection</li><li class=3D"">Pass all items up =
to caller, allowing the caller to implement duplicate detection or =
not</li><li class=3D"">No duplicate detection</li></ul></div><div =
class=3D"">A generic decoder should identify which it is. Some may =
support more than one, selectable by =
configuration.</div></blockquote></div></blockquote><div class=3D""><br =
class=3D""></div><div class=3D"">I don't think generic decoders are =
relevant here. Protocol implementations often accumulate their input =
into a data structure even if they use a streaming decoder to read the =
input. Any such protocol can detect duplicates (of the keys it uses at =
all) for at most the cost of an extra bit per =
field.</div></div></div></div></blockquote><div><br =
class=3D""></div><div>My intention was that =E2=80=9Cpass all items =
up=E2=80=9D covers your case.&nbsp;</div><div><br class=3D""></div><div>My=
 QCBOR + t_cose implementations work exactly as you describe to =
implement dup detection in COSE header parameters. It=E2=80=99s the data =
structures that hold the COSE header params that are used to detect the =
duplicates, not the generic decoder (QCBOR). &nbsp;This seems like a =
good way to handle this problem for lots of use =
cases.&nbsp;</div><div><br class=3D""></div><div><br =
class=3D""></div><blockquote type=3D"cite" class=3D""><div class=3D""><div=
 dir=3D"ltr" class=3D""><div class=3D"gmail_quote"><div class=3D""><br =
class=3D""></div><blockquote class=3D"gmail_quote" style=3D"margin:0px =
0px 0px 0.8ex;border-left:1px solid =
rgb(204,204,204);padding-left:1ex"><div style=3D"overflow-wrap: =
break-word;" class=3D""><div class=3D""></div><div class=3D"">Here=E2=80=99=
s why.</div><div class=3D""><br class=3D""></div><div class=3D"">I see =
no value in take first or take last over duplicate detection. In all =
three all, the keys encountered must be recorded and processed. If the =
map is large this will take a lot of memory. In all cases there is some =
extra code and CPU. CPU time is worse than O(n), perhaps O(n^2). It =
doesn=E2=80=99t matter if the use case is streaming or not. It is the =
memory, code and CPU time that matter. &nbsp;(Take last can only be =
implemented by decoding the whole map, as it is only after decoding the =
whole map that it can know it has encountered the last; in a way you =
cannot do the last for a streaming decoder).</div><div class=3D""><br =
class=3D""></div><div class=3D"">This is a guess =E2=80=94 I don=E2=80=99t=
 think map libraries that don=E2=80=99t support duplicate detection =
commonly support &nbsp;take first. I suspect some do take first, some do =
take last and some do take random. To me that makes any mention of take =
first or take last in the specification not very valuable especially as =
it doesn=E2=80=99t have much memory, CPU or code advantage over =
duplicate detection.</div></div></blockquote><div class=3D""><br =
class=3D""></div><div class=3D"">I think you make a good point that if a =
protocol is going to specify "take first", it can probably specify =
"error on duplicate key" for the same cost. That might imply some much =
simpler text:</div><div class=3D""><br class=3D""></div></div><blockquote =
style=3D"margin:0 0 0 40px;border:none;padding:0px" class=3D""><div =
class=3D"gmail_quote"><blockquote class=3D"gmail_quote" =
style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid =
rgb(204,204,204);padding-left:1ex">"Protocols based on CBOR SHOULD fail =
with an error if a map contains a duplicate key, except that if the key =
isn't used at all, they MAY ignore it instead. Protocols that do not =
reject duplicate keys MUST (?) document why the cost of rejecting =
duplicates is too high and why accepting them will not lead to security =
vulnerabilities. An array might be a better choice for such =
protocols.=E2=80=9D</blockquote></div></blockquote></div></div></blockquot=
e><div><br class=3D""></div><div>I think I=E2=80=99d invert it and say =
that protocols that require duplicate detection for security reasons =
should describe that requirement in security considerations so the =
implementor gets a good solid hint that they need to worry about =
it.</div><div><br class=3D""></div><div>There is lot of text implying =
that duplicates are bad, but I think it would be worth being =
explicit.</div><div><br class=3D""></div></div><blockquote =
style=3D"margin: 0 0 0 40px; border: none; padding: 0px;" =
class=3D""><div><div>You are an idiot if you design a protocol that =
considers duplicate input valid or necessary. Duplicate map keys are =
always an error in CBOR and will not work with many generic =
decoders.</div></div></blockquote><div><div><br =
class=3D""></div><blockquote type=3D"cite" class=3D""><div class=3D""><div=
 dir=3D"ltr" class=3D""><div class=3D"gmail_quote"><div class=3D""><br =
class=3D""></div><div class=3D"">Do we have any concrete examples of =
protocols or formats built on CBOR that don't store anything while =
parsing their input? One of those might provide a good example of a =
protocol that shouldn't reject =
duplicates.</div></div></div></div></blockquote><div><br =
class=3D""></div><div><br class=3D""></div><div>Duplicates will / must =
only occur in error situations. It is always right to reject encoded =
CBOR that has duplicates.</div><div><br class=3D""></div><div>The main =
thing is that when duplicates have security implications for the =
protocol, that must be called out and the implementor told to do =
something about them.&nbsp;</div><div><br class=3D""></div><div>To say =
it more in prose: They should either use a generic CBOR decoder that =
errors out on duplicates, or a CBOR decoder that passes duplicates up so =
the protocol implementation on top of CBOR can do the detection. What =
they must not do is use a decoder that does take first, take last or =
randomly takes one of the occurrences.</div><div><br =
class=3D""></div></div>LL<div class=3D""><br =
class=3D""></div></body></html>=

--Apple-Mail=_B634E199-74B2-4A14-AFEE-0FF99865E609--


From nobody Sat Nov 23 09:11:27 2019
Return-Path: <lgl@island-resort.com>
X-Original-To: cbor@ietfa.amsl.com
Delivered-To: cbor@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 80F3212082A for <cbor@ietfa.amsl.com>; Sat, 23 Nov 2019 09:11:25 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.895
X-Spam-Level: 
X-Spam-Status: No, score=-1.895 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id zLy0kY4eHRUM for <cbor@ietfa.amsl.com>; Sat, 23 Nov 2019 09:11:24 -0800 (PST)
Received: from p3plsmtpa06-06.prod.phx3.secureserver.net (p3plsmtpa06-06.prod.phx3.secureserver.net [173.201.192.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 8D9AF120133 for <cbor@ietf.org>; Sat, 23 Nov 2019 09:11:24 -0800 (PST)
Received: from [10.86.0.74] ([45.56.150.43]) by :SMTPAUTH: with ESMTPA id YYwNiPM5FtvENYYwOiSCd6; Sat, 23 Nov 2019 10:11:24 -0700
From: Laurence Lundblade <lgl@island-resort.com>
Message-Id: <92F6E676-5669-46C1-9C4E-54719BBB5A7F@island-resort.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_561B23A6-03D4-477A-83F4-E69DE0C41133"
Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.11\))
Date: Sat, 23 Nov 2019 09:11:23 -0800
In-Reply-To: <F81E1A57-6072-44FA-A148-8F3ED7520791@island-resort.com>
Cc: Jeffrey Yasskin <jyasskin=40google.com@dmarc.ietf.org>, cbor@ietf.org
To: Jeffrey Yasskin <jyasskin@chromium.org>
References: <CANh-dX=EVDa4EwrgWKof4kCD3nkfV3BvH0Cg5ZKOivmXJ_Dm8g@mail.gmail.com> <E5C74E1F-A5F4-4AB8-9787-3999C4697C3B@island-resort.com> <CANh-dX=1gkAtfSG-yzCsVAkk=oLM-=dN_JLCr1kQK3d6Jb0fSw@mail.gmail.com> <F81E1A57-6072-44FA-A148-8F3ED7520791@island-resort.com>
X-Mailer: Apple Mail (2.3445.104.11)
X-CMAE-Envelope: MS4wfECwjPyTizuA8Xc0QwQ/vej0lxAaKW19fXhyR2RMBCipTKfzUm1+rFriLCkDvTcV03vP2XQukFY3hlZBtCa0/3g2bBNl3fkTUrw9aBf+uFkFXyshApOb RG4Aq6jLRzU4d7ExCt4GYUlEHXpWTfxLvXuU09gCmXBJtdgzOVHABRjCJ4g7lilbExbSR2thx+bGIgzPjwFNsyKFNPxT47vAfIrl1NiHLIyUGMRqmzBJ5pui JlLipyS6CEVL/Gxg5D6qfw==
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/ib-ABqvcubp2OqVrknf8ArBxljg>
Subject: Re: [Cbor] Handling duplicate map keys
X-BeenThere: cbor@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Concise Binary Object Representation \(CBOR\)" <cbor.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cbor>, <mailto:cbor-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cbor/>
List-Post: <mailto:cbor@ietf.org>
List-Help: <mailto:cbor-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cbor>, <mailto:cbor-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 23 Nov 2019 17:11:25 -0000

--Apple-Mail=_561B23A6-03D4-477A-83F4-E69DE0C41133
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii



> On Nov 23, 2019, at 7:21 AM, Laurence Lundblade =
<lgl@island-resort.com> wrote:
>=20
> To say it more in prose: They should either use a generic CBOR decoder =
that errors out on duplicates, or a CBOR decoder that passes duplicates =
up so the protocol implementation on top of CBOR can do the detection. =
What they must not do is use a decoder that does take first, take last =
or randomly takes one of the occurrences.

To be really explicit (for my brain too), it is never right for normal =
behavior of a CBOR protocol to rely on take first. It is *always* right =
to error out when duplicates are detected.

LL=

--Apple-Mail=_561B23A6-03D4-477A-83F4-E69DE0C41133
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=us-ascii

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html; =
charset=3Dus-ascii"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; line-break: after-white-space;" class=3D""><br =
class=3D""><div><br class=3D""><blockquote type=3D"cite" class=3D""><div =
class=3D"">On Nov 23, 2019, at 7:21 AM, Laurence Lundblade &lt;<a =
href=3D"mailto:lgl@island-resort.com" =
class=3D"">lgl@island-resort.com</a>&gt; wrote:</div><br =
class=3D"Apple-interchange-newline"><div class=3D""><span =
style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
12px; font-style: normal; font-variant-caps: normal; font-weight: =
normal; letter-spacing: normal; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; text-decoration: none; float: none; =
display: inline !important;" class=3D"">To say it more in prose: They =
should either use a generic CBOR decoder that errors out on duplicates, =
or a CBOR decoder that passes duplicates up so the protocol =
implementation on top of CBOR can do the detection. What they must not =
do is use a decoder that does take first, take last or randomly takes =
one of the occurrences.</span></div></blockquote></div><br class=3D""><div=
 class=3D"">To be really explicit (for my brain too), it is never right =
for normal behavior of a CBOR protocol to rely on take first. It is =
*always* right to error out when duplicates are detected.</div><div =
class=3D""><br class=3D""></div><div class=3D"">LL</div></body></html>=

--Apple-Mail=_561B23A6-03D4-477A-83F4-E69DE0C41133--


From nobody Sat Nov 23 17:58:35 2019
Return-Path: <cabo@tzi.org>
X-Original-To: cbor@ietfa.amsl.com
Delivered-To: cbor@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 0CD71120045 for <cbor@ietfa.amsl.com>; Sat, 23 Nov 2019 17:58:33 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.198
X-Spam-Level: 
X-Spam-Status: No, score=-4.198 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id QcGruVf6-ILt for <cbor@ietfa.amsl.com>; Sat, 23 Nov 2019 17:58:30 -0800 (PST)
Received: from gabriel-vm-2.uni-bremen.de (gabriel-vm-2.zfn.uni-bremen.de [134.102.50.17]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A697F120013 for <cbor@ietf.org>; Sat, 23 Nov 2019 17:58:29 -0800 (PST)
Received: from [192.168.217.116] (p548DC893.dip0.t-ipconnect.de [84.141.200.147]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by gabriel-vm-2.uni-bremen.de (Postfix) with ESMTPSA id 47LCxb4YNkz10v2; Sun, 24 Nov 2019 02:58:27 +0100 (CET)
From: Carsten Bormann <cabo@tzi.org>
Content-Type: multipart/alternative; boundary="Apple-Mail=_4C6CCCAB-B84C-4A20-B584-D55731D32961"
X-Mao-Original-Outgoing-Id: 596253505.3359489-d319903be5de4787878440f67b132e9a
Mime-Version: 1.0 (Mac OS X Mail 11.5 \(3445.9.1\))
Date: Sun, 24 Nov 2019 02:58:27 +0100
Message-Id: <DAAD547D-DA33-493B-A4B9-05963C256995@tzi.org>
References: <AA0336B9-FC3C-4E88-ADB9-5D22FC2881EF@tzi.org>
To: cbor@ietf.org
X-Mailer: Apple Mail (2.3445.9.1)
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/tJGv2ytyCIk-cWf00iCdPJJ-WgY>
Subject: [Cbor] Fwd: [Technical Errata Reported] RFC7049 (5917)
X-BeenThere: cbor@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Concise Binary Object Representation \(CBOR\)" <cbor.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cbor>, <mailto:cbor-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cbor/>
List-Post: <mailto:cbor@ietf.org>
List-Help: <mailto:cbor-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cbor>, <mailto:cbor-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 24 Nov 2019 01:58:33 -0000

--Apple-Mail=_4C6CCCAB-B84C-4A20-B584-D55731D32961
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8

Whoops.

Which brings up the idea: Maybe we can start a campaign alerting the =
implementers to our WGLC?
I started in https://github.com/fxamacker/cbor/issues/46 =
<https://github.com/fxamacker/cbor/issues/46>, but there are three score =
implementations remaining=E2=80=A6

Gr=C3=BC=C3=9Fe, Carsten


> Begin forwarded message:
>=20
> From: Carsten Bormann <cabo@tzi.org>
> Subject: Re: [Technical Errata Reported] RFC7049 (5917)
> Date: November 24, 2019 at 02:44:28 GMT+1
> To: RFC Errata System <rfc-editor@rfc-editor.org>
> Cc: Paul Hoffman <paul.hoffman@vpnc.org>, iesg@ietf.org, =
faye.github@gmail.com
>=20
> This errata report is correct.
>=20
> We fixed this in the 7049bis document (which is currently in =
working-group last call) in revision f3bde9d: =
https://github.com/cbor-wg/CBORbis/commit/f3bde9d .  Unfortunately, it =
didn=E2=80=99t occur to us to also supply an errata report, which should =
have been done.
>=20
> Gr=C3=BC=C3=9Fe, Carsten
>=20
>=20
>> On Nov 24, 2019, at 02:06, RFC Errata System =
<rfc-editor@rfc-editor.org> wrote:
>>=20
>> The following errata report has been submitted for RFC7049,
>> "Concise Binary Object Representation (CBOR)".
>>=20
>> --------------------------------------
>> You may review the report below and at:
>> https://www.rfc-editor.org/errata/eid5917
>>=20
>> --------------------------------------
>> Type: Technical
>> Reported by: Faye Amacker <faye.github@gmail.com>
>>=20
>> Section: Appendix A
>>=20
>> Original Text
>> -------------
>> simple(24)                   | 0xf818 =20
>>=20
>> Corrected Text
>> --------------
>>=20
>>=20
>> Notes
>> -----
>> This example violates RFC 7049 section 2.3 Floating-Point Numbers and =
Values with No Content. =20
>>=20
>> The incorrect example in Appendix A clearly uses a value <32 which is =
not allowed.
>>=20
>> First, RFC 7049 section 2.3 has a table that shows:
>> | 24          | Simple value (value 32..255 in following byte)   |
>>=20
>> Next, RFC 7049 section 2.3 says:
>> As with all other major types, the 5-bit value 24 signifies a single-
>> byte extension: it is followed by an additional byte to represent the
>> simple value.  (To minimize confusion, only the values 32 to 255 are
>> used.)
>>=20
>> Wikipedia is also currently incorrect by having an interpretation =
based on the incorrect example from RFC 7049 Appendix A instead of the =
text from RFC 7049 Section 2.3.
>>=20
>> Credits: This problem was first reported at =
https://github.com/fxamacker/cbor/issues/46
>>=20
>> Instructions:
>> -------------
>> This erratum is currently posted as "Reported". If necessary, please
>> use "Reply All" to discuss whether it should be verified or
>> rejected. When a decision is reached, the verifying party =20
>> can log in to change the status and edit the report, if necessary.=20
>>=20
>> --------------------------------------
>> RFC7049 (draft-bormann-cbor-09)
>> --------------------------------------
>> Title               : Concise Binary Object Representation (CBOR)
>> Publication Date    : October 2013
>> Author(s)           : C. Bormann, P. Hoffman
>> Category            : PROPOSED STANDARD
>> Source              : IETF - NON WORKING GROUP
>> Area                : N/A
>> Stream              : IETF
>> Verifying Party     : IESG
>=20


--Apple-Mail=_4C6CCCAB-B84C-4A20-B584-D55731D32961
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=utf-8

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html; =
charset=3Dutf-8"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; line-break: after-white-space;" =
class=3D"">Whoops.<div class=3D""><br class=3D""></div><div =
class=3D"">Which brings up the idea: Maybe we can start a campaign =
alerting the implementers to our WGLC?</div><div class=3D"">I started =
in&nbsp;<a href=3D"https://github.com/fxamacker/cbor/issues/46" =
class=3D"">https://github.com/fxamacker/cbor/issues/46</a>, but there =
are three score implementations remaining=E2=80=A6</div><div =
class=3D""><br class=3D""></div><div class=3D""><div class=3D"">Gr=C3=BC=C3=
=9Fe, Carsten</div><div class=3D""><br class=3D""></div><div><br =
class=3D""><blockquote type=3D"cite" class=3D""><div class=3D"">Begin =
forwarded message:</div><br class=3D"Apple-interchange-newline"><div =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px;" class=3D""><span style=3D"font-family: =
-webkit-system-font, Helvetica Neue, Helvetica, sans-serif; =
color:rgba(0, 0, 0, 1.0);" class=3D""><b class=3D"">From: =
</b></span><span style=3D"font-family: -webkit-system-font, Helvetica =
Neue, Helvetica, sans-serif;" class=3D"">Carsten Bormann &lt;<a =
href=3D"mailto:cabo@tzi.org" class=3D"">cabo@tzi.org</a>&gt;<br =
class=3D""></span></div><div style=3D"margin-top: 0px; margin-right: =
0px; margin-bottom: 0px; margin-left: 0px;" class=3D""><span =
style=3D"font-family: -webkit-system-font, Helvetica Neue, Helvetica, =
sans-serif; color:rgba(0, 0, 0, 1.0);" class=3D""><b class=3D"">Subject: =
</b></span><span style=3D"font-family: -webkit-system-font, Helvetica =
Neue, Helvetica, sans-serif;" class=3D""><b class=3D"">Re: [Technical =
Errata Reported] RFC7049 (5917)</b><br class=3D""></span></div><div =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px;" class=3D""><span style=3D"font-family: =
-webkit-system-font, Helvetica Neue, Helvetica, sans-serif; =
color:rgba(0, 0, 0, 1.0);" class=3D""><b class=3D"">Date: =
</b></span><span style=3D"font-family: -webkit-system-font, Helvetica =
Neue, Helvetica, sans-serif;" class=3D"">November 24, 2019 at 02:44:28 =
GMT+1<br class=3D""></span></div><div style=3D"margin-top: 0px; =
margin-right: 0px; margin-bottom: 0px; margin-left: 0px;" class=3D""><span=
 style=3D"font-family: -webkit-system-font, Helvetica Neue, Helvetica, =
sans-serif; color:rgba(0, 0, 0, 1.0);" class=3D""><b class=3D"">To: =
</b></span><span style=3D"font-family: -webkit-system-font, Helvetica =
Neue, Helvetica, sans-serif;" class=3D"">RFC Errata System &lt;<a =
href=3D"mailto:rfc-editor@rfc-editor.org" =
class=3D"">rfc-editor@rfc-editor.org</a>&gt;<br =
class=3D""></span></div><div style=3D"margin-top: 0px; margin-right: =
0px; margin-bottom: 0px; margin-left: 0px;" class=3D""><span =
style=3D"font-family: -webkit-system-font, Helvetica Neue, Helvetica, =
sans-serif; color:rgba(0, 0, 0, 1.0);" class=3D""><b class=3D"">Cc: =
</b></span><span style=3D"font-family: -webkit-system-font, Helvetica =
Neue, Helvetica, sans-serif;" class=3D"">Paul Hoffman &lt;<a =
href=3D"mailto:paul.hoffman@vpnc.org" =
class=3D"">paul.hoffman@vpnc.org</a>&gt;, <a href=3D"mailto:iesg@ietf.org"=
 class=3D"">iesg@ietf.org</a>, <a href=3D"mailto:faye.github@gmail.com" =
class=3D"">faye.github@gmail.com</a><br class=3D""></span></div><br =
class=3D""><div class=3D""><div class=3D"">This errata report is =
correct.<br class=3D""><br class=3D"">We fixed this in the 7049bis =
document (which is currently in working-group last call) in revision =
f3bde9d: <a href=3D"https://github.com/cbor-wg/CBORbis/commit/f3bde9d" =
class=3D"">https://github.com/cbor-wg/CBORbis/commit/f3bde9d</a> . =
&nbsp;Unfortunately, it didn=E2=80=99t occur to us to also supply an =
errata report, which should have been done.<br class=3D""><br =
class=3D"">Gr=C3=BC=C3=9Fe, Carsten<br class=3D""><br class=3D""><br =
class=3D""><blockquote type=3D"cite" class=3D"">On Nov 24, 2019, at =
02:06, RFC Errata System &lt;<a href=3D"mailto:rfc-editor@rfc-editor.org" =
class=3D"">rfc-editor@rfc-editor.org</a>&gt; wrote:<br class=3D""><br =
class=3D"">The following errata report has been submitted for =
RFC7049,<br class=3D"">"Concise Binary Object Representation (CBOR)".<br =
class=3D""><br class=3D"">--------------------------------------<br =
class=3D"">You may review the report below and at:<br class=3D""><a =
href=3D"https://www.rfc-editor.org/errata/eid5917" =
class=3D"">https://www.rfc-editor.org/errata/eid5917</a><br class=3D""><br=
 class=3D"">--------------------------------------<br class=3D"">Type: =
Technical<br class=3D"">Reported by: Faye Amacker =
&lt;faye.github@gmail.com&gt;<br class=3D""><br class=3D"">Section: =
Appendix A<br class=3D""><br class=3D"">Original Text<br =
class=3D"">-------------<br class=3D"">simple(24) =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;| 0xf818 &nbsp;<br class=3D""><br =
class=3D"">Corrected Text<br class=3D"">--------------<br class=3D""><br =
class=3D""><br class=3D"">Notes<br class=3D"">-----<br class=3D"">This =
example violates RFC 7049 section 2.3 Floating-Point Numbers and Values =
with No Content. &nbsp;<br class=3D""><br class=3D"">The incorrect =
example in Appendix A clearly uses a value &lt;32 which is not =
allowed.<br class=3D""><br class=3D"">First, RFC 7049 section 2.3 has a =
table that shows:<br class=3D"">| 24 =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;| Simple value =
(value 32..255 in following byte) &nbsp;&nbsp;|<br class=3D""><br =
class=3D"">Next, RFC 7049 section 2.3 says:<br class=3D"">As with all =
other major types, the 5-bit value 24 signifies a single-<br =
class=3D"">byte extension: it is followed by an additional byte to =
represent the<br class=3D"">simple value. &nbsp;(To minimize confusion, =
only the values 32 to 255 are<br class=3D"">used.)<br class=3D""><br =
class=3D"">Wikipedia is also currently incorrect by having an =
interpretation based on the incorrect example from RFC 7049 Appendix A =
instead of the text from RFC 7049 Section 2.3.<br class=3D""><br =
class=3D"">Credits: This problem was first reported at =
https://github.com/fxamacker/cbor/issues/46<br class=3D""><br =
class=3D"">Instructions:<br class=3D"">-------------<br class=3D"">This =
erratum is currently posted as "Reported". If necessary, please<br =
class=3D"">use "Reply All" to discuss whether it should be verified =
or<br class=3D"">rejected. When a decision is reached, the verifying =
party &nbsp;<br class=3D"">can log in to change the status and edit the =
report, if necessary. <br class=3D""><br =
class=3D"">--------------------------------------<br class=3D"">RFC7049 =
(draft-bormann-cbor-09)<br =
class=3D"">--------------------------------------<br class=3D"">Title =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;: Concise Binary Object Representation (CBOR)<br =
class=3D"">Publication Date &nbsp;&nbsp;&nbsp;: October 2013<br =
class=3D"">Author(s) =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: C. =
Bormann, P. Hoffman<br class=3D"">Category =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: =
PROPOSED STANDARD<br class=3D"">Source =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;: IETF - NON WORKING GROUP<br class=3D"">Area =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;: N/A<br class=3D"">Stream =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;: IETF<br class=3D"">Verifying Party &nbsp;&nbsp;&nbsp;&nbsp;: =
IESG<br class=3D""></blockquote><br =
class=3D""></div></div></blockquote></div><br =
class=3D""></div></body></html>=

--Apple-Mail=_4C6CCCAB-B84C-4A20-B584-D55731D32961--


From nobody Sun Nov 24 02:49:12 2019
Return-Path: <jyasskin@google.com>
X-Original-To: cbor@ietfa.amsl.com
Delivered-To: cbor@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 7DFE212012A for <cbor@ietfa.amsl.com>; Sun, 24 Nov 2019 02:49:11 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -9.25
X-Spam-Level: 
X-Spam-Status: No, score=-9.25 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.249, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, USER_IN_DEF_SPF_WL=-7.5] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=chromium.org
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id TLiAQzxyzczB for <cbor@ietfa.amsl.com>; Sun, 24 Nov 2019 02:49:09 -0800 (PST)
Received: from mail-qv1-xf2c.google.com (mail-qv1-xf2c.google.com [IPv6:2607:f8b0:4864:20::f2c]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A1DB312012C for <cbor@ietf.org>; Sun, 24 Nov 2019 02:49:09 -0800 (PST)
Received: by mail-qv1-xf2c.google.com with SMTP id cv8so4597286qvb.3 for <cbor@ietf.org>; Sun, 24 Nov 2019 02:49:09 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=D1zSoC2UF6+sm0Jb58JdETnwZpQc7ScWw+QOcIqL5cA=; b=IigGZs4upYzAIaXohQW6Lqxc9QLLbirkG/mH35xJU2hyyqp3ruTwSAgbGetptbNqh/ ZKw25fGlFUCTVIXs4Bg8q2M1/QfYhA8jCTVblwNHk3+jO01iJ85FHiHNbB+Xwnx2TSI+ V2hHx1RHqozZtB7no/04Cy6kFSdRh2Xcs8uWk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=D1zSoC2UF6+sm0Jb58JdETnwZpQc7ScWw+QOcIqL5cA=; b=PsHowx26t1D/hr7qch8neHrl93qsze1CsFn+Wvi94sPNcdJPEfqT7i8NDParj+VL7I Or5BCkN3eMW3xu72EcbEI66s+F61mq02PZFBXtvezrJ4qx4kxIEsQ/94UHD+uOnRSmYB ZtKFL+Dr+arIfeFmPL+om/3CGUpJHcVT2QHpX64HOT5ST6qWg7TdgXmhX0z24NIaOx6r dPfntI67Ti4ddVciTyZjsiHtNrdyc/aE+2OQ0DJgfd1RRLIq4ZAnDONUHzMwYYKdK80x VJAZ84lELv1hXapCF40RYGWTWOHQ7ypuBVvU+WLwKtuLYqtYn96TKJcWitwPrFkd29Up tgfg==
X-Gm-Message-State: APjAAAVbTjTG/7SsCG/pr/J3Y+1qpQXi/GK3sB9g2v6GBguNjRH7UtGs js3fJInH+vYBITt/0HGF9869auapwqhxS2Y0nZq2yg==
X-Google-Smtp-Source: APXvYqx5QBYssMh35jwHtdCkU6kep0hD/EZQprBmZBpvbSbiid6umR9cMZ4OSaAEtaW8oFD+jAvE5hPRtlt+AtQHPCU=
X-Received: by 2002:a0c:fa0a:: with SMTP id q10mr21691022qvn.193.1574592547856;  Sun, 24 Nov 2019 02:49:07 -0800 (PST)
MIME-Version: 1.0
References: <CANh-dX=EVDa4EwrgWKof4kCD3nkfV3BvH0Cg5ZKOivmXJ_Dm8g@mail.gmail.com> <E5C74E1F-A5F4-4AB8-9787-3999C4697C3B@island-resort.com> <CANh-dX=1gkAtfSG-yzCsVAkk=oLM-=dN_JLCr1kQK3d6Jb0fSw@mail.gmail.com> <F81E1A57-6072-44FA-A148-8F3ED7520791@island-resort.com>
In-Reply-To: <F81E1A57-6072-44FA-A148-8F3ED7520791@island-resort.com>
From: Jeffrey Yasskin <jyasskin@chromium.org>
Date: Sun, 24 Nov 2019 02:48:56 -0800
Message-ID: <CANh-dXmxzoEjb-yhL-R1p-xvBF8kZwOpzoS_fziPfuxFhbykhA@mail.gmail.com>
To: Laurence Lundblade <lgl@island-resort.com>
Cc: Jeffrey Yasskin <jyasskin@chromium.org>,  Jeffrey Yasskin <jyasskin=40google.com@dmarc.ietf.org>, cbor@ietf.org
Content-Type: multipart/alternative; boundary="0000000000007b97c90598156577"
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/7sf2pKY7hrKlBINMUcu8eV9herc>
Subject: Re: [Cbor] Handling duplicate map keys
X-BeenThere: cbor@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Concise Binary Object Representation \(CBOR\)" <cbor.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cbor>, <mailto:cbor-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cbor/>
List-Post: <mailto:cbor@ietf.org>
List-Help: <mailto:cbor-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cbor>, <mailto:cbor-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 24 Nov 2019 10:49:11 -0000

--0000000000007b97c90598156577
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Comments inline:

On Sat, Nov 23, 2019 at 7:21 AM Laurence Lundblade <lgl@island-resort.com>
wrote:

> On Nov 23, 2019, at 1:11 AM, Jeffrey Yasskin <jyasskin@chromium.org>
> wrote:
>
> On Sat, Nov 23, 2019 at 10:00 AM Laurence Lundblade <lgl@island-resort.co=
m>
> wrote:
>
>> Here=E2=80=99s a rough proposed text:
>>
>> The protocol designer should make a choice for maps as to whether
>> duplicates are allowed or not, particularly as to whether duplicates wou=
ld
>> cause security or functionality problems.
>>
>> The protocol designer should only require duplicate detection when
>> necessary as it can have the following implications:
>>
>>    - Some generic decoders do not support duplicate detection because
>>    the underlying facilities in their programming environment to represe=
nt
>>    maps can=E2=80=99t detect duplicates
>>    - Some generic decoders do not support duplicate detection because it
>>    requires more code and is not required
>>
>>
>>    - It requires more resources to implement: 1) memory to store all the
>>    keys in the map, 2) more code, 3) more CPU time, as much as O(n^2).. =
This
>>    is particularly an issue with big maps in constrained environments.
>>
>> It is suggested that protocol designers require duplicate detection only
>> no the particular maps for which there is an issue.
>>
>> Decoders will typically fall into one of these categories:
>>
>>    - Full duplicate detection
>>    - Pass all items up to caller, allowing the caller to implement
>>    duplicate detection or not
>>    - No duplicate detection
>>
>> A generic decoder should identify which it is. Some may support more tha=
n
>> one, selectable by configuration.
>>
>>
> I don't think generic decoders are relevant here. Protocol implementation=
s
> often accumulate their input into a data structure even if they use a
> streaming decoder to read the input. Any such protocol can detect
> duplicates (of the keys it uses at all) for at most the cost of an extra
> bit per field.
>
>
> My intention was that =E2=80=9Cpass all items up=E2=80=9D covers your cas=
e.
>
> My QCBOR + t_cose implementations work exactly as you describe to
> implement dup detection in COSE header parameters. It=E2=80=99s the data =
structures
> that hold the COSE header params that are used to detect the duplicates,
> not the generic decoder (QCBOR).  This seems like a good way to handle th=
is
> problem for lots of use cases.
>

Yep, that's the model I'm thinking of. I'm clearly struggling to put it
into understandable spec language.

> I think you make a good point that if a protocol is going to specify "tak=
e
> first", it can probably specify "error on duplicate key" for the same cos=
t.
> That might imply some much simpler text:
>
> "Protocols based on CBOR SHOULD fail with an error if a map contains a
>> duplicate key, except that if the key isn't used at all, they MAY ignore=
 it
>> instead. Protocols that do not reject duplicate keys MUST (?) document w=
hy
>> the cost of rejecting duplicates is too high and why accepting them will
>> not lead to security vulnerabilities. An array might be a better choice =
for
>> such protocols.=E2=80=9D
>
>
> I think I=E2=80=99d invert it and say that protocols that require duplica=
te
> detection for security reasons should describe that requirement in securi=
ty
> considerations so the implementor gets a good solid hint that they need t=
o
> worry about it.
>

There's an interesting difference of approach here. It's plausible to say
that protocol designers should pick the secure design only when they
realize their design has security implications, but I prefer to say that
they should pick the secure design unless they think about it and realize
the design doesn't have security implications. I think the second will get
us noticeably more security in a world where designers don't have time to
think about every aspect of every piece of their design.

There is lot of text implying that duplicates are bad, but I think it would
> be worth being explicit.
>
> You are an idiot if you design a protocol that considers duplicate input
> valid or necessary. Duplicate map keys are always an error in CBOR and wi=
ll
> not work with many generic decoders.
>
>
I wouldn't say "idiot", just "wrong". The spec already says you "MUST NOT"
do this, but I'm not opposed to making that statement more direct.

Thanks,
Jeffrey

--0000000000007b97c90598156577
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>Comments inline:</div><div dir=3D"ltr"><br></div><div=
 dir=3D"ltr">On Sat, Nov 23, 2019 at 7:21 AM Laurence Lundblade &lt;<a href=
=3D"mailto:lgl@island-resort.com">lgl@island-resort.com</a>&gt; wrote:</div=
><div class=3D"gmail_quote"><blockquote class=3D"gmail_quote" style=3D"marg=
in:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1e=
x"><div style=3D"overflow-wrap: break-word;"><div><blockquote type=3D"cite"=
><div>On Nov 23, 2019, at 1:11 AM, Jeffrey Yasskin &lt;<a href=3D"mailto:jy=
asskin@chromium.org" target=3D"_blank">jyasskin@chromium.org</a>&gt; wrote:=
</div><br><div><div dir=3D"ltr"><div dir=3D"ltr">On Sat, Nov 23, 2019 at 10=
:00 AM Laurence Lundblade &lt;<a href=3D"mailto:lgl@island-resort.com" targ=
et=3D"_blank">lgl@island-resort.com</a>&gt; wrote:<br></div><div class=3D"g=
mail_quote"><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0=
.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><div>Her=
e=E2=80=99s a rough proposed text:</div><div><br></div><blockquote style=3D=
"margin:0px 0px 0px 40px;border:none;padding:0px"><div>The protocol designe=
r should make a choice for maps as to whether duplicates are allowed or not=
, particularly as to whether duplicates would cause security or functionali=
ty problems.</div><div><br></div><div>The protocol designer should only req=
uire duplicate detection when necessary as it can have the following implic=
ations:</div><div><ul><li>Some generic decoders do not support duplicate de=
tection because the underlying facilities in their programming environment =
to represent maps can=E2=80=99t detect duplicates</li><li>Some generic deco=
ders do not support duplicate detection because it requires more code and i=
s not required</li></ul></div></blockquote></div></blockquote><blockquote c=
lass=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px soli=
d rgb(204,204,204);padding-left:1ex"><div><blockquote style=3D"margin:0px 0=
px 0px 40px;border:none;padding:0px"><div><ul><li>It requires more resource=
s to implement: 1) memory to store all the keys in the map, 2) more code, 3=
) more CPU time, as much as O(n^2).. This is particularly an issue with big=
 maps in constrained environments.</li></ul></div><div>It is suggested that=
 protocol designers require duplicate detection only no the particular maps=
 for which there is an issue.</div><div><br></div><div>Decoders will typica=
lly fall into one of these categories:</div><div><ul><li>Full duplicate det=
ection</li><li>Pass all items up to caller, allowing the caller to implemen=
t duplicate detection or not</li><li>No duplicate detection</li></ul></div>=
<div>A generic decoder should identify which it is. Some may support more t=
han one, selectable by configuration.</div></blockquote></div></blockquote>=
<div><br></div><div>I don&#39;t think generic decoders are relevant here. P=
rotocol implementations often accumulate their input into a data structure =
even if they use a streaming decoder to read the input. Any such protocol c=
an detect duplicates (of the keys it uses at all) for at most the cost of a=
n extra bit per field.</div></div></div></div></blockquote><div><br></div><=
div>My intention was that =E2=80=9Cpass all items up=E2=80=9D covers your c=
ase.=C2=A0</div><div><br></div><div>My QCBOR + t_cose implementations work =
exactly as you describe to implement dup detection in COSE header parameter=
s. It=E2=80=99s the data structures that hold the COSE header params that a=
re used to detect the duplicates, not the generic decoder (QCBOR).=C2=A0 Th=
is seems like a good way to handle this problem for lots of use cases.=C2=
=A0</div></div></div></blockquote><div><br></div><div>Yep, that&#39;s the m=
odel I&#39;m thinking of. I&#39;m clearly struggling to put it into underst=
andable spec language.=C2=A0</div><blockquote class=3D"gmail_quote" style=
=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding=
-left:1ex"><div style=3D"overflow-wrap: break-word;"><blockquote type=3D"ci=
te"><div dir=3D"ltr"><div class=3D"gmail_quote"><div>I think you make a goo=
d point that if a protocol is going to specify &quot;take first&quot;, it c=
an probably specify &quot;error on duplicate key&quot; for the same cost. T=
hat might imply some much simpler text:</div><div><br></div></div><blockquo=
te style=3D"margin:0px 0px 0px 40px;border:none;padding:0px"><div class=3D"=
gmail_quote"><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px =
0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">&quot;Protoc=
ols based on CBOR SHOULD fail with an error if a map contains a duplicate k=
ey, except that if the key isn&#39;t used at all, they MAY ignore it instea=
d. Protocols that do not reject duplicate keys MUST (?) document why the co=
st of rejecting duplicates is too high and why accepting them will not lead=
 to security vulnerabilities. An array might be a better choice for such pr=
otocols.=E2=80=9D</blockquote></div></blockquote></div></blockquote><div><b=
r></div><div>I think I=E2=80=99d invert it and say that protocols that requ=
ire duplicate detection for security reasons should describe that requireme=
nt in security considerations so the implementor gets a good solid hint tha=
t they need to worry about it.</div></div></blockquote><div><br></div><div>=
There&#39;s an interesting difference of approach here. It&#39;s plausible =
to say that protocol designers should pick the secure design only when they=
 realize their design has security implications, but I prefer to say that t=
hey should pick the secure design unless they think about it and realize th=
e design doesn&#39;t have security implications. I think the second will ge=
t us noticeably more security in a world where designers don&#39;t have tim=
e to think about every aspect of every piece of their design.</div><div><br=
></div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;=
border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style=3D"over=
flow-wrap: break-word;"><div><div></div><div>There is lot of text implying =
that duplicates are bad, but I think it would be worth being explicit.</div=
><div><br></div></div><blockquote style=3D"margin:0px 0px 0px 40px;border:n=
one;padding:0px"><div><div>You are an idiot if you design a protocol that c=
onsiders duplicate input valid or necessary. Duplicate map keys are always =
an error in CBOR and will not work with many generic decoders.</div></div><=
/blockquote></div></blockquote><div>=C2=A0</div><div>I wouldn&#39;t say &qu=
ot;idiot&quot;, just &quot;wrong&quot;. The spec already says you &quot;MUS=
T NOT&quot; do this, but I&#39;m not opposed to making that statement more =
direct.<br></div><div><br></div><div>Thanks,<br>Jeffrey</div></div></div>

--0000000000007b97c90598156577--


From nobody Sun Nov 24 03:24:05 2019
Return-Path: <jyasskin@google.com>
X-Original-To: cbor@ietfa.amsl.com
Delivered-To: cbor@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id BE3D912012A for <cbor@ietfa.amsl.com>; Sun, 24 Nov 2019 03:24:03 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -9.24
X-Spam-Level: 
X-Spam-Status: No, score=-9.24 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.249, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_KAM_HTML_FONT_INVALID=0.01, URIBL_BLOCKED=0.001, USER_IN_DEF_SPF_WL=-7.5] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=chromium.org
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id lNDZtRCR6VP2 for <cbor@ietfa.amsl.com>; Sun, 24 Nov 2019 03:24:01 -0800 (PST)
Received: from mail-qt1-x832.google.com (mail-qt1-x832.google.com [IPv6:2607:f8b0:4864:20::832]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 342A2120128 for <cbor@ietf.org>; Sun, 24 Nov 2019 03:24:01 -0800 (PST)
Received: by mail-qt1-x832.google.com with SMTP id y39so13780335qty.0 for <cbor@ietf.org>; Sun, 24 Nov 2019 03:24:01 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=CfWuL7SBpBqVOfbR3S0nKkr7z5BM+6c4BN4ugkT0RNw=; b=A2VmWH4Suo35/iYihe90gvYawfpG94DfPMGZPM/s3xNvqhtZ2ww46YhnL63ygrfUz/ t819/XAMF85Ffdk2tpeeLa0kxEzj8fF6wYMsNiAuT3HBPL5rkB+uNc6YQh4pgtRowZVo mzkOHwrMYcmJsdFlTfBYWUyM5Qbb4gwMG69Z0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=CfWuL7SBpBqVOfbR3S0nKkr7z5BM+6c4BN4ugkT0RNw=; b=E8u8QVj3vm9Pg0AXXfSIndNSBW4kb4ao9EVPkk1G2TYyOdoGrZgOTEPcwPWSbjp7C7 neUgepxxv5kAy9Yuqaet9mthPCoSO2op6hMZ9+bdxoQyL5C2lJs9QLwT/WP3hCYkrOjx JVpvEm5uXz+9FeQexGDpfF83f3rkwwp7E9tZmk934QytCHS/has4G9dhrUk2sey0wozm FRVJuvo2ru7cKHwupN0Hm1zyf5gzWe214GzshPWNiAHQLrzC0+Tg2Vj+LZKxFKFOKP1y PSeBsDi+aHBQm7cxP3XQ77NS18ja4Vmk3uW20cKoneTzWuYmOA10XhPHvSFt6+VETU8/ FeXg==
X-Gm-Message-State: APjAAAWcnwDV+V9yaH+741WrmEp3SzETNRm3lRXTHx+lIZxa+1o3IrSQ wv/l/iazpSokNE1CNPUuGoNBe6oI9AHAOymGYUQQHA==
X-Google-Smtp-Source: APXvYqzuSFmqroOQOHUF4MpS9WsYL8bQ9Aa5Ns85euD0wc6mWXydLPJjtvipcS7V+n02h2AXDttCYf+lAZ1xhcVE2yc=
X-Received: by 2002:ac8:138b:: with SMTP id h11mr6444943qtj.153.1574594639366;  Sun, 24 Nov 2019 03:23:59 -0800 (PST)
MIME-Version: 1.0
References: <293AFF31-D0EF-45D6-9B9D-E8136481C404@ericsson.com>
In-Reply-To: <293AFF31-D0EF-45D6-9B9D-E8136481C404@ericsson.com>
From: Jeffrey Yasskin <jyasskin@chromium.org>
Date: Sun, 24 Nov 2019 03:23:47 -0800
Message-ID: <CANh-dXnPRd7w_z2LA0gYD0GHVbmych4BGA5_-vmJz+Zn1qBh_w@mail.gmail.com>
To: Francesca Palombini <francesca.palombini=40ericsson.com@dmarc.ietf.org>
Cc: "cbor@ietf.org" <cbor@ietf.org>,  "draft-ietf-cbor-7049bis@ietf.org" <draft-ietf-cbor-7049bis@ietf.org>,  "cbor-chairs@ietf.org" <cbor-chairs@ietf.org>
Content-Type: multipart/alternative; boundary="0000000000002584e4059815e2d6"
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/B84oVjRdGM8Du4z1tPopBQEDSCU>
Subject: Re: [Cbor]  =?utf-8?q?=F0=9F=94=94_WGLC_on_draft-ietf-cbor-7049bis-09?=
X-BeenThere: cbor@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Concise Binary Object Representation \(CBOR\)" <cbor.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cbor>, <mailto:cbor-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cbor/>
List-Post: <mailto:cbor@ietf.org>
List-Help: <mailto:cbor-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cbor>, <mailto:cbor-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 24 Nov 2019 11:24:04 -0000

--0000000000002584e4059815e2d6
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Sorry I've been so lax with incremental reviews. Here's a complete set of
comments covering all of
https://tools.ietf.org/html/draft-ietf-cbor-7049bis-09 (although I only
skimmed the appendices). Overall, this is way better than RFC 7049. Thanks
to everyone who worked on improving it!

1.  Introduction

   -

   "The format defined here follows some specific design goals that are not
   well met by current formats." <- "Follows" doesn't really work. Maybe
   "pursues"? "Satisfies"?
   -

   "It is important to note that this is not a proposal that the grammar in
   RFC 8259 be extended in general, since doing so would cause a significan=
t
   backwards incompatibility with already deployed JSON documents." <- This=
 is
   probably not necessary anymore. It could be removed entirely or replaced
   with "This format is not an extension of the grammar in RFC 8259."


3.1.  Major Types

   -

   In Table 1, can we spell out "Major Type" instead of "mt"?


3.4.  Tagging of Items

   -

   I'm not sure what "while retaining its structure" accomplishes here. Can
   we remove it?
   -

   "That is, a tag is a data item consisting of a tag number and an
   enclosed value. The content of the tag (the enclosed data item) is the d=
ata
   item (the value) that is being tagged." might be unnecessary. I think it=
's
   covered by the earlier text in this section. If it's still needed, it
   should probably move earlier to where we define tagged data. It doesn't =
fit
   next to the discussion of what it means to put a tag inside a tag.
   -

   "it can just jump over the initial bytes of the tag (that encode the tag
   number)" isn't quite right: it's not just skipping it, it's reporting bo=
th
   the tag number and value to the application. Maybe "Understanding the
   semantics of tags is optional for a decoder: it can present the tag numb=
er
   and content to the application without interpreting the tag as a whole."


3.4.1.  Date and Time

   -

   The next two sections seem like they should be subsections.


3.4.3.  Epoch-based Date/Time

   -

   "An application that requires tag number 1 support may restrict" has a
   lowercase MAY, which has an ambiguous effect after RFC 8174. Do we want =
MAY
   or can?


3.4.4.  Bignums

   -

   This section has a forward reference to "preferred encoding", which
   should cite section 4.1. I note that 4.1 uses "preferred serialization"
   instead, so maybe we should switch this section to that term.
   -

   "and preferred encoding never makes use of bignums that also can be
   expressed as basic integers (see below)." <- This seems inconsistent wit=
h
   "In the generic data model, bignum values are not equal to integers from
   the basic data model". If they're not the same value at the data model
   level, they can't be alternate encodings of each other.


3.4.5.  Decimal Fractions and Bigfloats

   -

   "Decimal fractions (tag number 4) use base-10 exponents; the value of a
   decimal fraction data item is m*(10**e). Bigfloats (tag number 5) use
   base-2 exponents; the value of a bigfloat data item is m*(2**e)." is
   redundant with the first paragraph of the section.
   -

   This section also suggests that integers be used instead of integral
   bigdecimals and bigfloats. That only works if the specific data model sa=
ys
   they're equivalent. Maybe we should say specific data models SHOULD make
   them equivalent and then SHOULD set the preferred encoding to the intege=
r
   version?


3.4.6.2.  Expected Later Encoding for CBOR-to-JSON Converters

   -

   This section only defines the tags obliquely and never says what tag 23
   means. I suggest starting sentences with the tag number, e.g. "Tag numbe=
r
   21 means the contained byte string is expected to be encoded in base64ur=
l
   without padding ... Tag number 22 means ..."


3.4.6.3.  Encoded Text

   -

   "Tag numbers 33 and 34 are for base64url- and base64-encoded text
   strings" should maybe have "respectively"?


4.1.  Preferred Serialization

   -

   "1_000_000_000" has enough digits that maybe we should use 10**9 (or
   10<sup>9</sup> in v3) instead.


4.2.  Deterministically Encoded CBOR

   -

   "Some protocols may want" has a lowercase "may". Consider "might".


4.2.1.  Core Deterministic Encoding Requirements

   -

   This section says "Floating point values also MUST use the shortest form
   that preserves the value, e.g. 1.5 is encoded as 0xf93e00 and 1000000.5 =
as
   0xfa49742408.", but 4.2.2 says "If a protocol allows for IEEE floats, th=
en
   additional deterministic encoding rules might need to be added." We shou=
ld
   only put the float rule in one of these sections.


4.2.2.  Additional Deterministic Encoding Considerations

   -

   "the deterministic format would not allow them" isn't clear what "them"
   is. Do we mean "would not allow the data to be tagged"? Or should we jus=
t
   say that the deterministic format for the protocol needs to specify whet=
her
   the tag is or is not present?
   -

   The "If a protocol includes a field that can express floating-point
   values" paragraph also assumes "=E2=80=A6 and the protocol's specific da=
ta model
   declares integers and floating point values to be interchangeable".
   -

   The "A protocol might give encoders the choice of representing a URL
   ..." item feels like it's repeating the "CBOR tags present =E2=80=A6" pa=
ragraph.
   Maybe we should move it to an example in that paragraph?
   -

   Maybe the ""Protocols that include floating, big integer, or other
   complex values need to define extra requirements on their deterministic
   encodings. For example:" introductory sentence belongs at the top of the
   whole section.


5.  Creating CBOR-Based Protocols

   -

   "This section discusses" might read better as "The rest of this section"
   since it's after a bit of the section.


5.2.  Generic Encoders and Decoders

   -

   "Even though CBOR attempts to minimize these cases, not all well-formed
   CBOR data is valid" is redundant with a lot of text from earlier in the
   document.
   -

   I wonder if this whole subsection is out of place. It reads like a
   definition of generic en/decoders rather than a consideration for design=
ing
   protocols. Maybe it should be a subsection of "Terminology"?


5.3.  Validity of Items

   -

   "The first layer that does process the semantics of an invalid CBOR item
   MUST take one of two choices:" covers our discussion of duplicate map ke=
ys.
   Right now, our requirements aren't consistent with the requirements in t=
his
   section, so we should make sure to incorporate this section when we reso=
lve
   those.


5.3.2.  Tag validity

   -

   "might present this tag to the application in a similar way to how it
   would present a tag with an unknown tag number" seems to suggest that it=
's
   wrong to replace the invalid tag with an error marker or to stop process=
ing
   entirely, even though that's what 5.3 suggests.


5.5.  Numbers

   -

   "the JavaScript number system treats all numbers as floating point" is
   no longer true:
   https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global=
_Objects/BigInt
   -

   "a compact application should accept" uses a lowercase "should" and
   would seem to discourage compact applications that check for a
   deterministic decoding. Do we mean that accepting wider encodings is lik=
ely
   to make the application more compact?
   -

   "The preferred encoding for a floating-point value is the shortest
   floating-point encoding" is redundant with section 4.1, although it does
   include more detail. I *think* I'd rather put the whole definition of th=
e
   preferred encoding in 4.1 instead of having some of it in protocol
   considerations.


5.6.  Specifying Keys for Maps

   -

   "probably should be limited" -> "may need to be limited" or "the
   specification is probably simpler if"? To avoid BCP 14 terms.
   -

   We're already discussing the question of duplicate keys in another
   thread.
   -

   "except to specify that some, orders" has an extra comma.
   -

   "be enough reason on its own" -> "on their own"
   -

   The "should consider using small integers as keys" has the downside that
   it makes it harder for humans to understand the meaning of the data with=
out
   the schema. "for constrained devices" might protect the rest of us from
   that downside, but would it make sense to say it explicitly?


5.6.1.  Equivalence of Keys

   -

   This section might be shorter if it just says that map keys are
   duplicates if they have the same value in the generic data model or if t=
he
   specific data model for the protocol (Section 2.2) says they're equivale=
nt.
   The rest of the section just duplicates information that's already in
   Section 2. The note in the last paragraph does still seem useful.


8.1.  Encoding Indicators

   -

   "Note that the encoding indicator "_" is thus an abbreviation of the
   full form "_7", which is not used." is confusing where it is. It might m=
ake
   more sense if we swap its paragraph with the previous one and move it to
   after the definition of "[_ 1, 2]".
   -

   "As a special case, byte and text strings of indefinite length" doesn't
   seem like a special case to me. It's just the way you represent the
   encoding of an indefinite-length byte or text string.


9.2.  Tags Registry

   -

   Did we decide not to tighten registration for the 256=E2=80=9365535 spac=
e?


9.3.  Media Type ("MIME Type")

   -

   Is there a reason this section switches to artwork in the middle?


9.4.  CoAP Content-Format

   -

   Could this section link to
   https://www.iana.org/assignments/core-parameters/core-parameters.xhtml#c=
ontent-formats
   ?


Appendix A.  Examples

   -

   This starts with some references to Unicode code points, which could use
   the new <u> tag.


Appendix F.  Changes from RFC 7049

   -

   This looks quite incomplete.



Jeffrey

On Thu, Nov 14, 2019 at 6:41 PM Francesca Palombini <francesca.palombini=3D
40ericsson.com@dmarc.ietf.org> wrote:

> CBOR wg,
>
>
>
> This starts a four weeks WG last call on
> https://tools.ietf.org/html/draft-ietf-cbor-7049bis-09 , ending on **Thur=
sday,
> 12 December**.
>
> Please send inputs to the mailing list that you have read the document an=
d
> do or do not feel it is ready to progress, along with any issues that you
> believe need to be dealt with.
>
>
>
> We will discuss any open issues we=E2=80=99ve gotten at the f2f, Thursday=
, 21
> November.
>
>
>
> CBOR Chairs
>
> Jim & Francesca
> _______________________________________________
> CBOR mailing list
> CBOR@ietf.org
> https://www.ietf.org/mailman/listinfo/cbor
>

--0000000000002584e4059815e2d6
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div><span id=3D"gmail-docs-internal-guid-ed7498f0-7fff-c9=
6d-03d9-efaaa0b07e05"><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0=
pt;margin-bottom:5pt"><font face=3D"arial, sans-serif"><span style=3D"color=
:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;font-v=
ariant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">Sorr=
y I&#39;ve been so lax with incremental reviews. Here&#39;s a complete set =
of comments covering all of</span><a href=3D"https://tools.ietf.org/html/dr=
aft-ietf-cbor-7049bis-09" style=3D"text-decoration-line:none"><span style=
=3D"text-decoration-line:none;color:rgb(0,0,0);background-color:transparent=
;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:=
baseline;white-space:pre-wrap"> </span><span style=3D"text-decoration-line:=
underline;background-color:transparent;font-variant-numeric:normal;font-var=
iant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">https:=
//tools.ietf.org/html/draft-ietf-cbor-7049bis-09</span></a>=C2=A0(although =
I only skimmed the appendices)<span style=3D"color:rgb(0,0,0);background-co=
lor:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;=
vertical-align:baseline;white-space:pre-wrap">. Overall, this is way better=
 than RFC 7049. Thanks to everyone who worked on improving it!</span></font=
></p><font face=3D"arial, sans-serif"><br></font><p dir=3D"ltr" style=3D"li=
ne-height:1.38;margin-top:0pt;margin-bottom:5pt"><span style=3D"color:rgb(0=
,0,0);background-color:transparent;font-variant-numeric:normal;font-variant=
-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><font face=
=3D"arial, sans-serif">1.=C2=A0 Introduction</font></span></p><ul style=3D"=
margin-top:0px;margin-bottom:0px"><li dir=3D"ltr" style=3D"list-style-type:=
disc;color:rgb(0,0,0);background-color:transparent;font-variant-numeric:nor=
mal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre"=
><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:12pt;margin-bottom:0pt=
"><span style=3D"background-color:transparent;font-variant-numeric:normal;f=
ont-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"=
><font face=3D"arial, sans-serif">&quot;The format defined here follows som=
e specific design goals that are not well met by current formats.&quot; &lt=
;- &quot;Follows&quot; doesn&#39;t really work. Maybe &quot;pursues&quot;? =
&quot;Satisfies&quot;?</font></span></p></li><li dir=3D"ltr" style=3D"list-=
style-type:disc;color:rgb(0,0,0);background-color:transparent;font-variant-=
numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white=
-space:pre"><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-=
bottom:12pt"><span style=3D"background-color:transparent;font-variant-numer=
ic:normal;font-variant-east-asian:normal;vertical-align:baseline;white-spac=
e:pre-wrap"><font face=3D"arial, sans-serif">&quot;It is important to note =
that this is not a proposal that the grammar in RFC 8259 be extended in gen=
eral, since doing so would cause a significant backwards incompatibility wi=
th already deployed JSON documents.&quot; &lt;- This is probably not necess=
ary anymore. It could be removed entirely or replaced with &quot;This forma=
t is not an extension of the grammar in RFC 8259.&quot;</font></span></p></=
li></ul><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bott=
om:5pt"><span style=3D"color:rgb(0,0,0);background-color:transparent;font-v=
ariant-numeric:normal;font-variant-east-asian:normal;vertical-align:baselin=
e;white-space:pre-wrap"><font face=3D"arial, sans-serif"><br></font></span>=
</p><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:5=
pt"><span style=3D"color:rgb(0,0,0);background-color:transparent;font-varia=
nt-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;wh=
ite-space:pre-wrap"><font face=3D"arial, sans-serif">3.1.=C2=A0 Major Types=
</font></span></p><ul style=3D"margin-top:0px;margin-bottom:0px"><li dir=3D=
"ltr" style=3D"list-style-type:disc;color:rgb(0,0,0);background-color:trans=
parent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-=
align:baseline;white-space:pre"><p dir=3D"ltr" style=3D"line-height:1.38;ma=
rgin-top:0pt;margin-bottom:5pt"><span style=3D"background-color:transparent=
;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:=
baseline;white-space:pre-wrap"><font face=3D"arial, sans-serif">In Table 1,=
 can we spell out &quot;Major Type&quot; instead of &quot;mt&quot;?</font><=
/span></p></li></ul><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt=
;margin-bottom:5pt"><span style=3D"color:rgb(0,0,0);background-color:transp=
arent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-a=
lign:baseline;white-space:pre-wrap"><font face=3D"arial, sans-serif"><br></=
font></span></p><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;mar=
gin-bottom:5pt"><span style=3D"color:rgb(0,0,0);background-color:transparen=
t;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align=
:baseline;white-space:pre-wrap"><font face=3D"arial, sans-serif">3.4.=C2=A0=
 Tagging of Items</font></span></p><ul style=3D"margin-top:0px;margin-botto=
m:0px"><li dir=3D"ltr" style=3D"list-style-type:disc;color:rgb(0,0,0);backg=
round-color:transparent;font-variant-numeric:normal;font-variant-east-asian=
:normal;vertical-align:baseline;white-space:pre"><p dir=3D"ltr" style=3D"li=
ne-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"background-=
color:transparent;font-variant-numeric:normal;font-variant-east-asian:norma=
l;vertical-align:baseline;white-space:pre-wrap"><font face=3D"arial, sans-s=
erif">I&#39;m not sure what &quot;while retaining its structure&quot; accom=
plishes here. Can we remove it?</font></span></p></li><li dir=3D"ltr" style=
=3D"list-style-type:disc;color:rgb(0,0,0);background-color:transparent;font=
-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:basel=
ine;white-space:pre"><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0p=
t;margin-bottom:0pt"><span style=3D"background-color:transparent;font-varia=
nt-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;wh=
ite-space:pre-wrap"><font face=3D"arial, sans-serif">&quot;That is, a tag i=
s a data item consisting of a tag number and an enclosed value. The content=
 of the tag (the enclosed data item) is the data item (the value) that is b=
eing tagged.&quot; might be unnecessary. I think it&#39;s covered by the ea=
rlier text in this section. If it&#39;s still needed, it should probably mo=
ve earlier to where we define tagged data. It doesn&#39;t fit next to the d=
iscussion of what it means to put a tag inside a tag.</font></span></p></li=
><li dir=3D"ltr" style=3D"list-style-type:disc;color:rgb(0,0,0);background-=
color:transparent;font-variant-numeric:normal;font-variant-east-asian:norma=
l;vertical-align:baseline;white-space:pre"><p dir=3D"ltr" style=3D"line-hei=
ght:1.38;margin-top:0pt;margin-bottom:5pt"><span style=3D"background-color:=
transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vert=
ical-align:baseline;white-space:pre-wrap"><font face=3D"arial, sans-serif">=
&quot;it can just jump over the initial bytes of the tag (that encode the t=
ag number)&quot; isn&#39;t quite right: it&#39;s not just skipping it, it&#=
39;s reporting both the tag number and value to the application. Maybe &quo=
t;Understanding the semantics of tags is optional for a decoder: it can pre=
sent the tag number and content to the application without interpreting the=
 tag as a whole.&quot;</font></span></p></li></ul><p dir=3D"ltr" style=3D"l=
ine-height:1.38;margin-top:0pt;margin-bottom:5pt"><span style=3D"color:rgb(=
0,0,0);background-color:transparent;font-variant-numeric:normal;font-varian=
t-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><font fac=
e=3D"arial, sans-serif"><br></font></span></p><p dir=3D"ltr" style=3D"line-=
height:1.38;margin-top:0pt;margin-bottom:5pt"><span style=3D"color:rgb(0,0,=
0);background-color:transparent;font-variant-numeric:normal;font-variant-ea=
st-asian:normal;vertical-align:baseline;white-space:pre-wrap"><font face=3D=
"arial, sans-serif">3.4.1.=C2=A0 Date and Time</font></span></p><ul style=
=3D"margin-top:0px;margin-bottom:0px"><li dir=3D"ltr" style=3D"list-style-t=
ype:disc;color:rgb(0,0,0);background-color:transparent;font-variant-numeric=
:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:=
pre"><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:=
5pt"><span style=3D"background-color:transparent;font-variant-numeric:norma=
l;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wr=
ap"><font face=3D"arial, sans-serif">The next two sections seem like they s=
hould be subsections.</font></span></p></li></ul><p dir=3D"ltr" style=3D"li=
ne-height:1.38;margin-top:0pt;margin-bottom:5pt"><span style=3D"color:rgb(0=
,0,0);background-color:transparent;font-variant-numeric:normal;font-variant=
-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><font face=
=3D"arial, sans-serif"><br></font></span></p><p dir=3D"ltr" style=3D"line-h=
eight:1.38;margin-top:0pt;margin-bottom:5pt"><span style=3D"color:rgb(0,0,0=
);background-color:transparent;font-variant-numeric:normal;font-variant-eas=
t-asian:normal;vertical-align:baseline;white-space:pre-wrap"><font face=3D"=
arial, sans-serif">3.4.3.=C2=A0 Epoch-based Date/Time</font></span></p><ul =
style=3D"margin-top:0px;margin-bottom:0px"><li dir=3D"ltr" style=3D"list-st=
yle-type:disc;color:rgb(0,0,0);background-color:transparent;font-variant-nu=
meric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-s=
pace:pre"><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bo=
ttom:5pt"><span style=3D"background-color:transparent;font-variant-numeric:=
normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:p=
re-wrap"><font face=3D"arial, sans-serif">&quot;An application that require=
s tag number 1 support may restrict&quot; has a lowercase MAY, which has an=
 ambiguous effect after RFC 8174. Do we want MAY or can?</font></span></p><=
/li></ul><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bot=
tom:5pt"><span style=3D"color:rgb(0,0,0);background-color:transparent;font-=
variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseli=
ne;white-space:pre-wrap"><font face=3D"arial, sans-serif"><br></font></span=
></p><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:=
5pt"><span style=3D"color:rgb(0,0,0);background-color:transparent;font-vari=
ant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;w=
hite-space:pre-wrap"><font face=3D"arial, sans-serif">3.4.4.=C2=A0 Bignums<=
/font></span></p><ul style=3D"margin-top:0px;margin-bottom:0px"><li dir=3D"=
ltr" style=3D"list-style-type:disc;color:rgb(0,0,0);background-color:transp=
arent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-a=
lign:baseline;white-space:pre"><p dir=3D"ltr" style=3D"line-height:1.38;mar=
gin-top:0pt;margin-bottom:0pt"><span style=3D"background-color:transparent;=
font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:b=
aseline;white-space:pre-wrap"><font face=3D"arial, sans-serif">This section=
 has a forward reference to &quot;preferred encoding&quot;, which should ci=
te section 4.1. I note that 4.1 uses &quot;preferred serialization&quot; in=
stead, so maybe we should switch this section to that term.</font></span></=
p></li><li dir=3D"ltr" style=3D"list-style-type:disc;color:rgb(0,0,0);backg=
round-color:transparent;font-variant-numeric:normal;font-variant-east-asian=
:normal;vertical-align:baseline;white-space:pre"><p dir=3D"ltr" style=3D"li=
ne-height:1.38;margin-top:0pt;margin-bottom:5pt"><span style=3D"background-=
color:transparent;font-variant-numeric:normal;font-variant-east-asian:norma=
l;vertical-align:baseline;white-space:pre-wrap"><font face=3D"arial, sans-s=
erif">&quot;and preferred encoding never makes use of bignums that also can=
 be expressed as basic integers (see below).&quot; &lt;- This seems inconsi=
stent with &quot;In the generic data model, bignum values are not equal to =
integers from the basic data model&quot;. If they&#39;re not the same value=
 at the data model level, they can&#39;t be alternate encodings of each oth=
er.</font></span></p></li></ul><p dir=3D"ltr" style=3D"line-height:1.38;mar=
gin-top:0pt;margin-bottom:5pt"><span style=3D"color:rgb(0,0,0);background-c=
olor:transparent;font-variant-numeric:normal;font-variant-east-asian:normal=
;vertical-align:baseline;white-space:pre-wrap"><font face=3D"arial, sans-se=
rif"><br></font></span></p><p dir=3D"ltr" style=3D"line-height:1.38;margin-=
top:0pt;margin-bottom:5pt"><span style=3D"color:rgb(0,0,0);background-color=
:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;ver=
tical-align:baseline;white-space:pre-wrap"><font face=3D"arial, sans-serif"=
>3.4.5.=C2=A0 Decimal Fractions and Bigfloats</font></span></p><ul style=3D=
"margin-top:0px;margin-bottom:0px"><li dir=3D"ltr" style=3D"list-style-type=
:disc;color:rgb(0,0,0);background-color:transparent;font-variant-numeric:no=
rmal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre=
"><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt=
"><span style=3D"background-color:transparent;font-variant-numeric:normal;f=
ont-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"=
><font face=3D"arial, sans-serif">&quot;Decimal fractions (tag number 4) us=
e base-10 exponents; the value of a decimal fraction data item is m*(10**e)=
. Bigfloats (tag number 5) use base-2 exponents; the value of a bigfloat da=
ta item is m*(2**e).&quot; is redundant with the first paragraph of the sec=
tion.</font></span></p></li><li dir=3D"ltr" style=3D"list-style-type:disc;c=
olor:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;fo=
nt-variant-east-asian:normal;vertical-align:baseline;white-space:pre"><p di=
r=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:5pt"><span=
 style=3D"background-color:transparent;font-variant-numeric:normal;font-var=
iant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><font =
face=3D"arial, sans-serif">This section also suggests that integers be used=
 instead of integral bigdecimals and bigfloats. That only works if the spec=
ific data model says they&#39;re equivalent. Maybe we should say specific d=
ata models SHOULD make them equivalent and then SHOULD set the preferred en=
coding to the integer version?</font></span></p></li></ul><p dir=3D"ltr" st=
yle=3D"line-height:1.38;margin-top:0pt;margin-bottom:5pt"><span style=3D"co=
lor:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;fon=
t-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><=
font face=3D"arial, sans-serif"><br></font></span></p><p dir=3D"ltr" style=
=3D"line-height:1.38;margin-top:0pt;margin-bottom:5pt"><span style=3D"color=
:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;font-v=
ariant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><fon=
t face=3D"arial, sans-serif">3.4.6.2.=C2=A0 Expected Later Encoding for CBO=
R-to-JSON Converters</font></span></p><ul style=3D"margin-top:0px;margin-bo=
ttom:0px"><li dir=3D"ltr" style=3D"list-style-type:disc;color:rgb(0,0,0);ba=
ckground-color:transparent;font-variant-numeric:normal;font-variant-east-as=
ian:normal;vertical-align:baseline;white-space:pre"><p dir=3D"ltr" style=3D=
"line-height:1.38;margin-top:0pt;margin-bottom:5pt"><span style=3D"backgrou=
nd-color:transparent;font-variant-numeric:normal;font-variant-east-asian:no=
rmal;vertical-align:baseline;white-space:pre-wrap"><font face=3D"arial, san=
s-serif">This section only defines the tags obliquely and never says what t=
ag 23 means. I suggest starting sentences with the tag number, e.g. &quot;T=
ag number 21 means the contained byte string is expected to be encoded in b=
ase64url without padding ... Tag number 22 means ...&quot;</font></span></p=
></li></ul><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-b=
ottom:5pt"><span style=3D"color:rgb(0,0,0);background-color:transparent;fon=
t-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:base=
line;white-space:pre-wrap"><font face=3D"arial, sans-serif"><br></font></sp=
an></p><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-botto=
m:5pt"><span style=3D"color:rgb(0,0,0);background-color:transparent;font-va=
riant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline=
;white-space:pre-wrap"><font face=3D"arial, sans-serif">3.4.6.3.=C2=A0 Enco=
ded Text</font></span></p><ul style=3D"margin-top:0px;margin-bottom:0px"><l=
i dir=3D"ltr" style=3D"list-style-type:disc;color:rgb(0,0,0);background-col=
or:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;v=
ertical-align:baseline;white-space:pre"><p dir=3D"ltr" style=3D"line-height=
:1.38;margin-top:0pt;margin-bottom:5pt"><span style=3D"background-color:tra=
nsparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertica=
l-align:baseline;white-space:pre-wrap"><font face=3D"arial, sans-serif">&qu=
ot;Tag numbers 33 and 34 are for base64url- and base64-encoded text strings=
&quot; should maybe have &quot;respectively&quot;?</font></span></p></li></=
ul><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:5p=
t"><span style=3D"color:rgb(0,0,0);background-color:transparent;font-varian=
t-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;whi=
te-space:pre-wrap"><font face=3D"arial, sans-serif"><br></font></span></p><=
p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:5pt"><=
span style=3D"color:rgb(0,0,0);background-color:transparent;font-variant-nu=
meric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-s=
pace:pre-wrap"><font face=3D"arial, sans-serif">4.1.=C2=A0 Preferred Serial=
ization</font></span></p><ul style=3D"margin-top:0px;margin-bottom:0px"><li=
 dir=3D"ltr" style=3D"list-style-type:disc;color:rgb(0,0,0);background-colo=
r:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;ve=
rtical-align:baseline;white-space:pre"><p dir=3D"ltr" style=3D"line-height:=
1.38;margin-top:0pt;margin-bottom:5pt"><span style=3D"background-color:tran=
sparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical=
-align:baseline;white-space:pre-wrap"><font face=3D"arial, sans-serif">&quo=
t;1_000_000_000&quot; has enough digits that maybe we should use 10**9 (or =
10&lt;sup&gt;9&lt;/sup&gt; in v3) instead.</font></span></p></li></ul><p di=
r=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:5pt"><span=
 style=3D"color:rgb(0,0,0);background-color:transparent;font-variant-numeri=
c:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space=
:pre-wrap"><font face=3D"arial, sans-serif"><br></font></span></p><p dir=3D=
"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:5pt"><span sty=
le=3D"font-family:arial,sans-serif;background-color:transparent;color:rgb(0=
,0,0);white-space:pre-wrap">4.2.=C2=A0 Deterministically Encoded CBOR</span=
><br></p><ul style=3D"margin-top:0px;margin-bottom:0px"><li dir=3D"ltr" sty=
le=3D"list-style-type:disc;color:rgb(0,0,0);background-color:transparent;fo=
nt-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:bas=
eline;white-space:pre"><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:=
0pt;margin-bottom:5pt"><span style=3D"background-color:transparent;font-var=
iant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;=
white-space:pre-wrap"><font face=3D"arial, sans-serif">&quot;Some protocols=
 may want&quot; has a lowercase &quot;may&quot;. Consider &quot;might&quot;=
.</font></span></p></li></ul><p dir=3D"ltr" style=3D"line-height:1.38;margi=
n-top:0pt;margin-bottom:5pt"><span style=3D"color:rgb(0,0,0);background-col=
or:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;v=
ertical-align:baseline;white-space:pre-wrap"><font face=3D"arial, sans-seri=
f"><br></font></span></p><p dir=3D"ltr" style=3D"line-height:1.38;margin-to=
p:0pt;margin-bottom:5pt"><span style=3D"color:rgb(0,0,0);background-color:t=
ransparent;font-variant-numeric:normal;font-variant-east-asian:normal;verti=
cal-align:baseline;white-space:pre-wrap"><font face=3D"arial, sans-serif">4=
.2.1.=C2=A0 Core Deterministic Encoding Requirements</font></span></p><ul s=
tyle=3D"margin-top:0px;margin-bottom:0px"><li dir=3D"ltr" style=3D"list-sty=
le-type:disc;color:rgb(0,0,0);background-color:transparent;font-variant-num=
eric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-sp=
ace:pre"><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bot=
tom:5pt"><span style=3D"background-color:transparent;font-variant-numeric:n=
ormal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pr=
e-wrap"><font face=3D"arial, sans-serif">This section says &quot;Floating p=
oint values also MUST use the shortest form that preserves the value, e.g. =
1.5 is encoded as 0xf93e00 and 1000000.5 as 0xfa49742408.&quot;, but 4.2.2 =
says &quot;If a protocol allows for IEEE floats, then additional determinis=
tic encoding rules might need to be added.&quot; We should only put the flo=
at rule in one of these sections.</font></span></p></li></ul><p dir=3D"ltr"=
 style=3D"line-height:1.38;margin-top:0pt;margin-bottom:5pt"><span style=3D=
"color:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;=
font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap=
"><font face=3D"arial, sans-serif"><br></font></span></p><p dir=3D"ltr" sty=
le=3D"line-height:1.38;margin-top:0pt;margin-bottom:5pt"><span style=3D"col=
or:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;font=
-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><f=
ont face=3D"arial, sans-serif">4.2.2.=C2=A0 Additional Deterministic Encodi=
ng Considerations</font></span></p><ul style=3D"margin-top:0px;margin-botto=
m:0px"><li dir=3D"ltr" style=3D"list-style-type:disc;color:rgb(0,0,0);backg=
round-color:transparent;font-variant-numeric:normal;font-variant-east-asian=
:normal;vertical-align:baseline;white-space:pre"><p dir=3D"ltr" style=3D"li=
ne-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"background-=
color:transparent;font-variant-numeric:normal;font-variant-east-asian:norma=
l;vertical-align:baseline;white-space:pre-wrap"><font face=3D"arial, sans-s=
erif">&quot;the deterministic format would not allow them&quot; isn&#39;t c=
lear what &quot;them&quot; is. Do we mean &quot;would not allow the data to=
 be tagged&quot;? Or should we just say that the deterministic format for t=
he protocol needs to specify whether the tag is or is not present?</font></=
span></p></li><li dir=3D"ltr" style=3D"list-style-type:disc;color:rgb(0,0,0=
);background-color:transparent;font-variant-numeric:normal;font-variant-eas=
t-asian:normal;vertical-align:baseline;white-space:pre"><p dir=3D"ltr" styl=
e=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"back=
ground-color:transparent;font-variant-numeric:normal;font-variant-east-asia=
n:normal;vertical-align:baseline;white-space:pre-wrap"><font face=3D"arial,=
 sans-serif">The &quot;If a protocol includes a field that can express floa=
ting-point values&quot; paragraph also assumes &quot;=E2=80=A6 and the prot=
ocol&#39;s specific data model declares integers and floating point values =
to be interchangeable&quot;.</font></span></p></li><li dir=3D"ltr" style=3D=
"list-style-type:disc;color:rgb(0,0,0);background-color:transparent;font-va=
riant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline=
;white-space:pre"><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;m=
argin-bottom:0pt"><span style=3D"background-color:transparent;font-variant-=
numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white=
-space:pre-wrap"><font face=3D"arial, sans-serif">The &quot;A protocol migh=
t give encoders the choice of representing a URL ...&quot; item feels like =
it&#39;s repeating the &quot;CBOR tags present =E2=80=A6&quot; paragraph. M=
aybe we should move it to an example in that paragraph?</font></span></p></=
li><li dir=3D"ltr" style=3D"list-style-type:disc;color:rgb(0,0,0);backgroun=
d-color:transparent;font-variant-numeric:normal;font-variant-east-asian:nor=
mal;vertical-align:baseline;white-space:pre"><p dir=3D"ltr" style=3D"line-h=
eight:1.38;margin-top:0pt;margin-bottom:5pt"><span style=3D"background-colo=
r:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;ve=
rtical-align:baseline;white-space:pre-wrap"><font face=3D"arial, sans-serif=
">Maybe the &quot;&quot;Protocols that include floating, big integer, or ot=
her complex values need to define extra requirements on their deterministic=
 encodings. For example:&quot; introductory sentence belongs at the top of =
the whole section.</font></span></p></li></ul><p dir=3D"ltr" style=3D"line-=
height:1.38;margin-top:0pt;margin-bottom:5pt"><span style=3D"color:rgb(0,0,=
0);background-color:transparent;font-variant-numeric:normal;font-variant-ea=
st-asian:normal;vertical-align:baseline;white-space:pre-wrap"><font face=3D=
"arial, sans-serif"><br></font></span></p><p dir=3D"ltr" style=3D"line-heig=
ht:1.38;margin-top:0pt;margin-bottom:5pt"><span style=3D"color:rgb(0,0,0);b=
ackground-color:transparent;font-variant-numeric:normal;font-variant-east-a=
sian:normal;vertical-align:baseline;white-space:pre-wrap"><font face=3D"ari=
al, sans-serif">5.=C2=A0 Creating CBOR-Based Protocols</font></span></p><ul=
 style=3D"margin-top:0px;margin-bottom:0px"><li dir=3D"ltr" style=3D"list-s=
tyle-type:disc;color:rgb(0,0,0);background-color:transparent;font-variant-n=
umeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-=
space:pre"><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-b=
ottom:5pt"><span style=3D"background-color:transparent;font-variant-numeric=
:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:=
pre-wrap"><font face=3D"arial, sans-serif">&quot;This section discusses&quo=
t; might read better as &quot;The rest of this section&quot; since it&#39;s=
 after a bit of the section.</font></span></p></li></ul><p dir=3D"ltr" styl=
e=3D"line-height:1.38;margin-top:0pt;margin-bottom:5pt"><span style=3D"colo=
r:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;font-=
variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><fo=
nt face=3D"arial, sans-serif"><br></font></span></p><p dir=3D"ltr" style=3D=
"line-height:1.38;margin-top:0pt;margin-bottom:5pt"><span style=3D"color:rg=
b(0,0,0);background-color:transparent;font-variant-numeric:normal;font-vari=
ant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><font f=
ace=3D"arial, sans-serif">5.2.=C2=A0 Generic Encoders and Decoders</font></=
span></p><ul style=3D"margin-top:0px;margin-bottom:0px"><li dir=3D"ltr" sty=
le=3D"list-style-type:disc;color:rgb(0,0,0);background-color:transparent;fo=
nt-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:bas=
eline;white-space:pre"><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:=
0pt;margin-bottom:0pt"><span style=3D"background-color:transparent;font-var=
iant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;=
white-space:pre-wrap"><font face=3D"arial, sans-serif">&quot;Even though CB=
OR attempts to minimize these cases, not all well-formed CBOR data is valid=
&quot; is redundant with a lot of text from earlier in the document.</font>=
</span></p></li><li dir=3D"ltr" style=3D"list-style-type:disc;color:rgb(0,0=
,0);background-color:transparent;font-variant-numeric:normal;font-variant-e=
ast-asian:normal;vertical-align:baseline;white-space:pre"><p dir=3D"ltr" st=
yle=3D"line-height:1.38;margin-top:0pt;margin-bottom:5pt"><span style=3D"ba=
ckground-color:transparent;font-variant-numeric:normal;font-variant-east-as=
ian:normal;vertical-align:baseline;white-space:pre-wrap"><font face=3D"aria=
l, sans-serif">I wonder if this whole subsection is out of place. It reads =
like a definition of generic en/decoders rather than a consideration for de=
signing protocols. Maybe it should be a subsection of &quot;Terminology&quo=
t;?</font></span></p></li></ul><p dir=3D"ltr" style=3D"line-height:1.38;mar=
gin-top:0pt;margin-bottom:5pt"><span style=3D"color:rgb(0,0,0);background-c=
olor:transparent;font-variant-numeric:normal;font-variant-east-asian:normal=
;vertical-align:baseline;white-space:pre-wrap"><font face=3D"arial, sans-se=
rif"><br></font></span></p><p dir=3D"ltr" style=3D"line-height:1.38;margin-=
top:0pt;margin-bottom:5pt"><span style=3D"color:rgb(0,0,0);background-color=
:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;ver=
tical-align:baseline;white-space:pre-wrap"><font face=3D"arial, sans-serif"=
>5.3.=C2=A0 Validity of Items</font></span></p><ul style=3D"margin-top:0px;=
margin-bottom:0px"><li dir=3D"ltr" style=3D"list-style-type:disc;color:rgb(=
0,0,0);background-color:transparent;font-variant-numeric:normal;font-varian=
t-east-asian:normal;vertical-align:baseline;white-space:pre"><p dir=3D"ltr"=
 style=3D"line-height:1.38;margin-top:0pt;margin-bottom:5pt"><span style=3D=
"background-color:transparent;font-variant-numeric:normal;font-variant-east=
-asian:normal;vertical-align:baseline;white-space:pre-wrap"><font face=3D"a=
rial, sans-serif">&quot;The first layer that does process the semantics of =
an invalid CBOR item MUST take one of two choices:&quot; covers our discuss=
ion of duplicate map keys. Right now, our requirements aren&#39;t consisten=
t with the requirements in this section, so we should make sure to incorpor=
ate this section when we resolve those.</font></span></p></li></ul><p dir=
=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:5pt"><span =
style=3D"color:rgb(0,0,0);background-color:transparent;font-variant-numeric=
:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:=
pre-wrap"><font face=3D"arial, sans-serif"><br></font></span></p><p dir=3D"=
ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:5pt"><span styl=
e=3D"color:rgb(0,0,0);background-color:transparent;font-variant-numeric:nor=
mal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-=
wrap"><font face=3D"arial, sans-serif">5.3.2.=C2=A0 Tag validity</font></sp=
an></p><ul style=3D"margin-top:0px;margin-bottom:0px"><li dir=3D"ltr" style=
=3D"list-style-type:disc;color:rgb(0,0,0);background-color:transparent;font=
-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:basel=
ine;white-space:pre"><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0p=
t;margin-bottom:5pt"><span style=3D"background-color:transparent;font-varia=
nt-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;wh=
ite-space:pre-wrap"><font face=3D"arial, sans-serif">&quot;might present th=
is tag to the application in a similar way to how it would present a tag wi=
th an unknown tag number&quot; seems to suggest that it&#39;s wrong to repl=
ace the invalid tag with an error marker or to stop processing entirely, ev=
en though that&#39;s what 5.3 suggests.</font></span></p></li></ul><p dir=
=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:5pt"><span =
style=3D"color:rgb(0,0,0);background-color:transparent;font-variant-numeric=
:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:=
pre-wrap"><font face=3D"arial, sans-serif"><br></font></span></p><p dir=3D"=
ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:5pt"><span styl=
e=3D"color:rgb(0,0,0);background-color:transparent;font-variant-numeric:nor=
mal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-=
wrap"><font face=3D"arial, sans-serif">5.5.=C2=A0 Numbers</font></span></p>=
<ul style=3D"margin-top:0px;margin-bottom:0px"><li dir=3D"ltr" style=3D"lis=
t-style-type:disc;color:rgb(0,0,0);background-color:transparent;font-varian=
t-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;whi=
te-space:pre"><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margi=
n-bottom:0pt"><font face=3D"arial, sans-serif"><span style=3D"background-co=
lor:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;=
vertical-align:baseline;white-space:pre-wrap">&quot;the JavaScript number s=
ystem treats all numbers as floating point&quot; is no longer true: </span>=
<a href=3D"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Referenc=
e/Global_Objects/BigInt" style=3D"text-decoration-line:none"><span style=3D=
"background-color:transparent;font-variant-numeric:normal;font-variant-east=
-asian:normal;text-decoration-line:underline;vertical-align:baseline;white-=
space:pre-wrap">https://developer.mozilla.org/en-US/docs/Web/JavaScript/Ref=
erence/Global_Objects/BigInt</span></a></font></p></li><li dir=3D"ltr" styl=
e=3D"list-style-type:disc;color:rgb(0,0,0);background-color:transparent;fon=
t-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:base=
line;white-space:pre"><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0=
pt;margin-bottom:0pt"><span style=3D"background-color:transparent;font-vari=
ant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;w=
hite-space:pre-wrap"><font face=3D"arial, sans-serif">&quot;a compact appli=
cation should accept&quot; uses a lowercase &quot;should&quot; and would se=
em to discourage compact applications that check for a deterministic decodi=
ng. Do we mean that accepting wider encodings is likely to make the applica=
tion more compact?</font></span></p></li><li dir=3D"ltr" style=3D"list-styl=
e-type:disc;color:rgb(0,0,0);background-color:transparent;font-variant-nume=
ric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-spa=
ce:pre"><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bott=
om:5pt"><span style=3D"background-color:transparent;font-variant-numeric:no=
rmal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre=
-wrap"><font face=3D"arial, sans-serif">&quot;The preferred encoding for a =
floating-point value is the shortest floating-point encoding&quot; is redun=
dant with section 4.1, although it does include more detail. I *think* I&#3=
9;d rather put the whole definition of the preferred encoding in 4.1 instea=
d of having some of it in protocol considerations.</font></span></p></li></=
ul><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:5p=
t"><span style=3D"color:rgb(0,0,0);background-color:transparent;font-varian=
t-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;whi=
te-space:pre-wrap"><font face=3D"arial, sans-serif"><br></font></span></p><=
p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:5pt"><=
span style=3D"color:rgb(0,0,0);background-color:transparent;font-variant-nu=
meric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-s=
pace:pre-wrap"><font face=3D"arial, sans-serif">5.6.=C2=A0 Specifying Keys =
for Maps</font></span></p><ul style=3D"margin-top:0px;margin-bottom:0px"><l=
i dir=3D"ltr" style=3D"list-style-type:disc;color:rgb(0,0,0);background-col=
or:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;v=
ertical-align:baseline;white-space:pre"><p dir=3D"ltr" style=3D"line-height=
:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"background-color:tra=
nsparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertica=
l-align:baseline;white-space:pre-wrap"><font face=3D"arial, sans-serif">&qu=
ot;probably should be limited&quot; -&gt; &quot;may need to be limited&quot=
; or &quot;the specification is probably simpler if&quot;? To avoid BCP 14 =
terms.=C2=A0</font></span></p></li><li dir=3D"ltr" style=3D"list-style-type=
:disc;color:rgb(0,0,0);background-color:transparent;font-variant-numeric:no=
rmal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre=
"><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt=
"><span style=3D"background-color:transparent;font-variant-numeric:normal;f=
ont-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"=
><font face=3D"arial, sans-serif">We&#39;re already discussing the question=
 of duplicate keys in another thread.</font></span></p></li><li dir=3D"ltr"=
 style=3D"list-style-type:disc;color:rgb(0,0,0);background-color:transparen=
t;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align=
:baseline;white-space:pre"><p dir=3D"ltr" style=3D"line-height:1.38;margin-=
top:0pt;margin-bottom:0pt"><span style=3D"background-color:transparent;font=
-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:basel=
ine;white-space:pre-wrap"><font face=3D"arial, sans-serif">&quot;except to =
specify that some, orders&quot; has an extra comma.</font></span></p></li><=
li dir=3D"ltr" style=3D"list-style-type:disc;color:rgb(0,0,0);background-co=
lor:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;=
vertical-align:baseline;white-space:pre"><p dir=3D"ltr" style=3D"line-heigh=
t:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"background-color:tr=
ansparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertic=
al-align:baseline;white-space:pre-wrap"><font face=3D"arial, sans-serif">&q=
uot;be enough reason on its own&quot; -&gt; &quot;on their own&quot;</font>=
</span></p></li><li dir=3D"ltr" style=3D"list-style-type:disc;color:rgb(0,0=
,0);background-color:transparent;font-variant-numeric:normal;font-variant-e=
ast-asian:normal;vertical-align:baseline;white-space:pre"><p dir=3D"ltr" st=
yle=3D"line-height:1.38;margin-top:0pt;margin-bottom:5pt"><span style=3D"ba=
ckground-color:transparent;font-variant-numeric:normal;font-variant-east-as=
ian:normal;vertical-align:baseline;white-space:pre-wrap"><font face=3D"aria=
l, sans-serif">The &quot;should consider using small integers as keys&quot;=
 has the downside that it makes it harder for humans to understand the mean=
ing of the data without the schema. &quot;for constrained devices&quot; mig=
ht protect the rest of us from that downside, but would it make sense to sa=
y it explicitly?</font></span></p></li></ul><p dir=3D"ltr" style=3D"line-he=
ight:1.38;margin-top:0pt;margin-bottom:5pt"><span style=3D"color:rgb(0,0,0)=
;background-color:transparent;font-variant-numeric:normal;font-variant-east=
-asian:normal;vertical-align:baseline;white-space:pre-wrap"><font face=3D"a=
rial, sans-serif"><br></font></span></p><p dir=3D"ltr" style=3D"line-height=
:1.38;margin-top:0pt;margin-bottom:5pt"><span style=3D"color:rgb(0,0,0);bac=
kground-color:transparent;font-variant-numeric:normal;font-variant-east-asi=
an:normal;vertical-align:baseline;white-space:pre-wrap"><font face=3D"arial=
, sans-serif">5.6.1.=C2=A0 Equivalence of Keys</font></span></p><ul style=
=3D"margin-top:0px;margin-bottom:0px"><li dir=3D"ltr" style=3D"list-style-t=
ype:disc;color:rgb(0,0,0);background-color:transparent;font-variant-numeric=
:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:=
pre"><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:=
5pt"><span style=3D"background-color:transparent;font-variant-numeric:norma=
l;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wr=
ap"><font face=3D"arial, sans-serif">This section might be shorter if it ju=
st says that map keys are duplicates if they have the same value in the gen=
eric data model or if the specific data model for the protocol (Section 2.2=
) says they&#39;re equivalent. The rest of the section just duplicates info=
rmation that&#39;s already in Section 2. The note in the last paragraph doe=
s still seem useful.</font></span></p></li></ul><p dir=3D"ltr" style=3D"lin=
e-height:1.38;margin-top:0pt;margin-bottom:5pt"><span style=3D"color:rgb(0,=
0,0);background-color:transparent;font-variant-numeric:normal;font-variant-=
east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><font face=
=3D"arial, sans-serif"><br></font></span></p><p dir=3D"ltr" style=3D"line-h=
eight:1.38;margin-top:0pt;margin-bottom:5pt"><span style=3D"color:rgb(0,0,0=
);background-color:transparent;font-variant-numeric:normal;font-variant-eas=
t-asian:normal;vertical-align:baseline;white-space:pre-wrap"><font face=3D"=
arial, sans-serif">8.1.=C2=A0 Encoding Indicators</font></span></p><ul styl=
e=3D"margin-top:0px;margin-bottom:0px"><li dir=3D"ltr" style=3D"list-style-=
type:disc;color:rgb(0,0,0);background-color:transparent;font-variant-numeri=
c:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space=
:pre"><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom=
:0pt"><span style=3D"background-color:transparent;font-variant-numeric:norm=
al;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-w=
rap"><font face=3D"arial, sans-serif">&quot;Note that the encoding indicato=
r &quot;_&quot; is thus an abbreviation of the full form &quot;_7&quot;, wh=
ich is not used.&quot; is confusing where it is. It might make more sense i=
f we swap its paragraph with the previous one and move it to after the defi=
nition of &quot;[_ 1, 2]&quot;.</font></span></p></li><li dir=3D"ltr" style=
=3D"list-style-type:disc;color:rgb(0,0,0);background-color:transparent;font=
-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:basel=
ine;white-space:pre"><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0p=
t;margin-bottom:5pt"><span style=3D"background-color:transparent;font-varia=
nt-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;wh=
ite-space:pre-wrap"><font face=3D"arial, sans-serif">&quot;As a special cas=
e, byte and text strings of indefinite length&quot; doesn&#39;t seem like a=
 special case to me. It&#39;s just the way you represent the encoding of an=
 indefinite-length byte or text string.</font></span></p></li></ul><p dir=
=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:5pt"><span =
style=3D"color:rgb(0,0,0);background-color:transparent;font-variant-numeric=
:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:=
pre-wrap"><font face=3D"arial, sans-serif"><br></font></span></p><p dir=3D"=
ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:5pt"><span styl=
e=3D"color:rgb(0,0,0);background-color:transparent;font-variant-numeric:nor=
mal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-=
wrap"><font face=3D"arial, sans-serif">9.2.=C2=A0 Tags Registry</font></spa=
n></p><ul style=3D"margin-top:0px;margin-bottom:0px"><li dir=3D"ltr" style=
=3D"list-style-type:disc;color:rgb(0,0,0);background-color:transparent;font=
-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:basel=
ine;white-space:pre"><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0p=
t;margin-bottom:5pt"><span style=3D"background-color:transparent;font-varia=
nt-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;wh=
ite-space:pre-wrap"><font face=3D"arial, sans-serif">Did we decide not to t=
ighten registration for the 256=E2=80=9365535 space?</font></span></p></li>=
</ul><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:=
5pt"><span style=3D"color:rgb(0,0,0);background-color:transparent;font-vari=
ant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;w=
hite-space:pre-wrap"><font face=3D"arial, sans-serif"><br></font></span></p=
><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:5pt"=
><span style=3D"color:rgb(0,0,0);background-color:transparent;font-variant-=
numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white=
-space:pre-wrap"><font face=3D"arial, sans-serif">9.3.=C2=A0 Media Type (&q=
uot;MIME Type&quot;)</font></span></p><ul style=3D"margin-top:0px;margin-bo=
ttom:0px"><li dir=3D"ltr" style=3D"list-style-type:disc;color:rgb(0,0,0);ba=
ckground-color:transparent;font-variant-numeric:normal;font-variant-east-as=
ian:normal;vertical-align:baseline;white-space:pre"><p dir=3D"ltr" style=3D=
"line-height:1.38;margin-top:0pt;margin-bottom:5pt"><span style=3D"backgrou=
nd-color:transparent;font-variant-numeric:normal;font-variant-east-asian:no=
rmal;vertical-align:baseline;white-space:pre-wrap"><font face=3D"arial, san=
s-serif">Is there a reason this section switches to artwork in the middle?<=
/font></span></p></li></ul><p dir=3D"ltr" style=3D"line-height:1.38;margin-=
top:0pt;margin-bottom:5pt"><span style=3D"color:rgb(0,0,0);background-color=
:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;ver=
tical-align:baseline;white-space:pre-wrap"><font face=3D"arial, sans-serif"=
><br></font></span></p><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:=
0pt;margin-bottom:5pt"><span style=3D"color:rgb(0,0,0);background-color:tra=
nsparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertica=
l-align:baseline;white-space:pre-wrap"><font face=3D"arial, sans-serif">9.4=
.=C2=A0 CoAP Content-Format</font></span></p><ul style=3D"margin-top:0px;ma=
rgin-bottom:0px"><li dir=3D"ltr" style=3D"list-style-type:disc;color:rgb(0,=
0,0);background-color:transparent;font-variant-numeric:normal;font-variant-=
east-asian:normal;vertical-align:baseline;white-space:pre"><p dir=3D"ltr" s=
tyle=3D"line-height:1.38;margin-top:0pt;margin-bottom:5pt"><font face=3D"ar=
ial, sans-serif"><span style=3D"background-color:transparent;font-variant-n=
umeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-=
space:pre-wrap">Could this section link to </span><a href=3D"https://www.ia=
na.org/assignments/core-parameters/core-parameters.xhtml#content-formats" s=
tyle=3D"text-decoration-line:none"><span style=3D"background-color:transpar=
ent;font-variant-numeric:normal;font-variant-east-asian:normal;text-decorat=
ion-line:underline;vertical-align:baseline;white-space:pre-wrap">https://ww=
w.iana.org/assignments/core-parameters/core-parameters.xhtml#content-format=
s</span></a><span style=3D"background-color:transparent;font-variant-numeri=
c:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space=
:pre-wrap">?</span></font></p></li></ul><p dir=3D"ltr" style=3D"line-height=
:1.38;margin-top:0pt;margin-bottom:5pt"><span style=3D"color:rgb(0,0,0);bac=
kground-color:transparent;font-variant-numeric:normal;font-variant-east-asi=
an:normal;vertical-align:baseline;white-space:pre-wrap"><font face=3D"arial=
, sans-serif"><br></font></span></p><p dir=3D"ltr" style=3D"line-height:1.3=
8;margin-top:0pt;margin-bottom:5pt"><span style=3D"color:rgb(0,0,0);backgro=
und-color:transparent;font-variant-numeric:normal;font-variant-east-asian:n=
ormal;vertical-align:baseline;white-space:pre-wrap"><font face=3D"arial, sa=
ns-serif">Appendix A.=C2=A0 Examples</font></span></p><ul style=3D"margin-t=
op:0px;margin-bottom:0px"><li dir=3D"ltr" style=3D"list-style-type:disc;col=
or:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;font=
-variant-east-asian:normal;vertical-align:baseline;white-space:pre"><p dir=
=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:5pt"><span =
style=3D"background-color:transparent;font-variant-numeric:normal;font-vari=
ant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><font f=
ace=3D"arial, sans-serif">This starts with some references to Unicode code =
points, which could use the new &lt;u&gt; tag.</font></span></p></li></ul><=
p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:5pt"><=
span style=3D"color:rgb(0,0,0);background-color:transparent;font-variant-nu=
meric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-s=
pace:pre-wrap"><font face=3D"arial, sans-serif"><br></font></span></p><p di=
r=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:5pt"><span=
 style=3D"color:rgb(0,0,0);background-color:transparent;font-variant-numeri=
c:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space=
:pre-wrap"><font face=3D"arial, sans-serif">Appendix F.=C2=A0 Changes from =
RFC 7049</font></span></p><ul style=3D"margin-top:0px;margin-bottom:0px"><l=
i dir=3D"ltr" style=3D"list-style-type:disc;color:rgb(0,0,0);background-col=
or:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;v=
ertical-align:baseline;white-space:pre"><p dir=3D"ltr" style=3D"line-height=
:1.38;margin-top:0pt;margin-bottom:5pt"><span style=3D"background-color:tra=
nsparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertica=
l-align:baseline;white-space:pre-wrap"><font face=3D"arial, sans-serif">Thi=
s looks quite incomplete.</font></span></p></li></ul><font face=3D"arial, s=
ans-serif"><br></font><br>Jeffrey</span></div><br><div class=3D"gmail_quote=
"><div dir=3D"ltr" class=3D"gmail_attr">On Thu, Nov 14, 2019 at 6:41 PM Fra=
ncesca Palombini &lt;francesca.palombini=3D<a href=3D"mailto:40ericsson.com=
@dmarc.ietf.org" target=3D"_blank">40ericsson.com@dmarc.ietf.org</a>&gt; wr=
ote:<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px=
 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">





<div lang=3D"EN-GB">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt">CBOR wg,<u></u><u></u=
></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt"><u></u>=C2=A0<u></u><=
/span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt">This starts a four we=
eks WG last call on
<a href=3D"https://tools.ietf.org/html/draft-ietf-cbor-7049bis-09" target=
=3D"_blank">https://tools.ietf.org/html/draft-ietf-cbor-7049bis-09</a> , en=
ding on *<b>Thursday, 12 December</b>*.
<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt">Please send inputs to=
 the mailing list that you have read the document and do or do not feel it =
is ready to progress, along with any issues that you believe need to be dea=
lt with.<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt"><u></u>=C2=A0<u></u><=
/span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt">We will discuss any o=
pen issues we=E2=80=99ve gotten at the f2f, Thursday, 21 November.<u></u><u=
></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt"><u></u>=C2=A0<u></u><=
/span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt">CBOR Chairs<u></u><u>=
</u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt">Jim &amp; Francesca<u=
></u><u></u></span></p>
</div>
</div>

_______________________________________________<br>
CBOR mailing list<br>
<a href=3D"mailto:CBOR@ietf.org" target=3D"_blank">CBOR@ietf.org</a><br>
<a href=3D"https://www.ietf.org/mailman/listinfo/cbor" rel=3D"noreferrer" t=
arget=3D"_blank">https://www.ietf.org/mailman/listinfo/cbor</a><br>
</blockquote></div></div>

--0000000000002584e4059815e2d6--


From nobody Sun Nov 24 10:21:48 2019
Return-Path: <lgl@island-resort.com>
X-Original-To: cbor@ietfa.amsl.com
Delivered-To: cbor@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id DE07A120041 for <cbor@ietfa.amsl.com>; Sun, 24 Nov 2019 10:21:47 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.896
X-Spam-Level: 
X-Spam-Status: No, score=-1.896 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id WuXIQtwiCYEB for <cbor@ietfa.amsl.com>; Sun, 24 Nov 2019 10:21:46 -0800 (PST)
Received: from p3plsmtpa12-05.prod.phx3.secureserver.net (p3plsmtpa12-05.prod.phx3.secureserver.net [68.178.252.234]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 56C2912001E for <cbor@ietf.org>; Sun, 24 Nov 2019 10:21:46 -0800 (PST)
Received: from [10.86.0.10] ([45.56.150.43]) by :SMTPAUTH: with ESMTPA id YwW0ip5gmABThYwW1iWPkT; Sun, 24 Nov 2019 11:21:45 -0700
From: Laurence Lundblade <lgl@island-resort.com>
Message-Id: <B3C04481-1414-4F90-8C99-62AD7E1819DD@island-resort.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_6BF7025F-D4BF-44DE-8BC8-110F861176B0"
Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.11\))
Date: Sun, 24 Nov 2019 10:21:44 -0800
In-Reply-To: <CANh-dXmxzoEjb-yhL-R1p-xvBF8kZwOpzoS_fziPfuxFhbykhA@mail.gmail.com>
Cc: Jeffrey Yasskin <jyasskin=40google.com@dmarc.ietf.org>, cbor@ietf.org
To: Jeffrey Yasskin <jyasskin@chromium.org>
References: <CANh-dX=EVDa4EwrgWKof4kCD3nkfV3BvH0Cg5ZKOivmXJ_Dm8g@mail.gmail.com> <E5C74E1F-A5F4-4AB8-9787-3999C4697C3B@island-resort.com> <CANh-dX=1gkAtfSG-yzCsVAkk=oLM-=dN_JLCr1kQK3d6Jb0fSw@mail.gmail.com> <F81E1A57-6072-44FA-A148-8F3ED7520791@island-resort.com> <CANh-dXmxzoEjb-yhL-R1p-xvBF8kZwOpzoS_fziPfuxFhbykhA@mail.gmail.com>
X-Mailer: Apple Mail (2.3445.104.11)
X-CMAE-Envelope: MS4wfDK7nkFfGkVLlDySW6bP1tGG17TCYagFVzJbDMjPNcOoMV0RnXxDOCu2jgpIurBzgWxcDiAqrpeCfJNm3dnBYsSww9VPpFFsTHH0g4mzvoTmLvEEJAyE dqyfjL08sVJAoi4zwYR5waFZSeS6mjbzMKhzfvsO/IwkyJogOwFon7+nEkRVU2Ppz1jtDBMf9P2nfqR7fKxQvSzODhj1z5ZwtvtnMB8Bz6jW4IOTvxklRlu/ q0uFlUKcuJo7EcbiTKVyZw==
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/TEmUgfKPXAD2sTdm49TFvsB2opg>
Subject: Re: [Cbor] Handling duplicate map keys
X-BeenThere: cbor@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Concise Binary Object Representation \(CBOR\)" <cbor.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cbor>, <mailto:cbor-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cbor/>
List-Post: <mailto:cbor@ietf.org>
List-Help: <mailto:cbor-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cbor>, <mailto:cbor-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 24 Nov 2019 18:21:48 -0000

--Apple-Mail=_6BF7025F-D4BF-44DE-8BC8-110F861176B0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8



> On Nov 24, 2019, at 2:48 AM, Jeffrey Yasskin <jyasskin@chromium.org> =
wrote:
>=20
>> I think you make a good point that if a protocol is going to specify =
"take first", it can probably specify "error on duplicate key" for the =
same cost. That might imply some much simpler text:
>>=20
>> "Protocols based on CBOR SHOULD fail with an error if a map contains =
a duplicate key, except that if the key isn't used at all, they MAY =
ignore it instead. Protocols that do not reject duplicate keys MUST (?) =
document why the cost of rejecting duplicates is too high and why =
accepting them will not lead to security vulnerabilities. An array might =
be a better choice for such protocols.=E2=80=9D
>=20
> I think I=E2=80=99d invert it and say that protocols that require =
duplicate detection for security reasons should describe that =
requirement in security considerations so the implementor gets a good =
solid hint that they need to worry about it.
>=20
> There's an interesting difference of approach here. It's plausible to =
say that protocol designers should pick the secure design only when they =
realize their design has security implications, but I prefer to say that =
they should pick the secure design unless they think about it and =
realize the design doesn't have security implications. I think the =
second will get us noticeably more security in a world where designers =
don't have time to think about every aspect of every piece of their =
design.

I don=E2=80=99t know how many generic decoders exist that really can=E2=80=
=99t do or support duplicate detection. I also don=E2=80=99t know how =
many use cases there are that can=E2=80=99t afford duplicate detection. =
If there are few of both, then making no duplicate detection the =
exception that needs to be called out seems right.

I have been thinking about CWT and EAT as examples. Maybe EAT should say =
that duplicate detection should be required unless a profile of EAT says =
it is not, the secure choice. For the most part EAT will be processed on =
servers where there is clearly no resource issue. The only issue would =
be the implementation  environment (Java, PHP, Python=E2=80=A6).

EATs might be decoded on constrained devices sometimes, but that is =
rare. In that case a profile can relax the requirement.

EATs are always signed so duplicates would only come from bad =
implementations. There are plenty of ways that am implementation can go =
wrong other than duplicating keys that are completely undetectable.

>=20
> There is lot of text implying that duplicates are bad, but I think it =
would be worth being explicit.
>=20
> You are an idiot if you design a protocol that considers duplicate =
input valid or necessary. Duplicate map keys are always an error in CBOR =
and will not work with many generic decoders.
> =20
> I wouldn't say "idiot", just "wrong". The spec already says you "MUST =
NOT" do this, but I'm not opposed to making that statement more direct.

Pardon my wording. Certainly, I do not want that as normative text.

>=20
> Thanks,
> Jeffrey


--Apple-Mail=_6BF7025F-D4BF-44DE-8BC8-110F861176B0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=utf-8

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html; =
charset=3Dutf-8"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; line-break: after-white-space;" class=3D""><br =
class=3D""><div><br class=3D""><blockquote type=3D"cite" class=3D""><div =
class=3D"">On Nov 24, 2019, at 2:48 AM, Jeffrey Yasskin &lt;<a =
href=3D"mailto:jyasskin@chromium.org" =
class=3D"">jyasskin@chromium.org</a>&gt; wrote:</div><div class=3D""><div =
dir=3D"ltr" class=3D""><div class=3D""><br =
class=3D""></div></div></div></blockquote><blockquote type=3D"cite" =
class=3D""><div class=3D""><div dir=3D"ltr" class=3D""><div =
class=3D"gmail_quote"><blockquote class=3D"gmail_quote" =
style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid =
rgb(204,204,204);padding-left:1ex"><div style=3D"overflow-wrap: =
break-word;" class=3D""><blockquote type=3D"cite" class=3D""><div =
dir=3D"ltr" class=3D""><div class=3D"gmail_quote"><div class=3D"">I =
think you make a good point that if a protocol is going to specify "take =
first", it can probably specify "error on duplicate key" for the same =
cost. That might imply some much simpler text:</div><div class=3D""><br =
class=3D""></div></div><blockquote style=3D"margin:0px 0px 0px =
40px;border:none;padding:0px" class=3D""><div =
class=3D"gmail_quote"><blockquote class=3D"gmail_quote" =
style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid =
rgb(204,204,204);padding-left:1ex">"Protocols based on CBOR SHOULD fail =
with an error if a map contains a duplicate key, except that if the key =
isn't used at all, they MAY ignore it instead. Protocols that do not =
reject duplicate keys MUST (?) document why the cost of rejecting =
duplicates is too high and why accepting them will not lead to security =
vulnerabilities. An array might be a better choice for such =
protocols.=E2=80=9D</blockquote></div></blockquote></div></blockquote><div=
 class=3D""><br class=3D""></div><div class=3D"">I think I=E2=80=99d =
invert it and say that protocols that require duplicate detection for =
security reasons should describe that requirement in security =
considerations so the implementor gets a good solid hint that they need =
to worry about it.</div></div></blockquote><div class=3D""><br =
class=3D""></div><div class=3D"">There's an interesting difference of =
approach here. It's plausible to say that protocol designers should pick =
the secure design only when they realize their design has security =
implications, but I prefer to say that they should pick the secure =
design unless they think about it and realize the design doesn't have =
security implications. I think the second will get us noticeably more =
security in a world where designers don't have time to think about every =
aspect of every piece of their =
design.</div></div></div></div></blockquote><div><br =
class=3D""></div><div>I don=E2=80=99t know how many generic decoders =
exist that really can=E2=80=99t do or support duplicate detection. I =
also don=E2=80=99t know how many use cases there are that can=E2=80=99t =
afford duplicate detection. If there are few of both, then making no =
duplicate detection the exception that needs to be called out seems =
right.</div><div><br class=3D""></div><div>I have been thinking about =
CWT and EAT as examples. Maybe EAT should say that duplicate detection =
should be required unless a profile of EAT says it is not, the secure =
choice. For the most part EAT will be processed on servers where there =
is clearly no resource issue. The only issue would be the implementation =
&nbsp;environment (Java, PHP, Python=E2=80=A6).</div><div><br =
class=3D""></div><div>EATs might be decoded on constrained devices =
sometimes, but that is rare. In that case a profile can relax the =
requirement.</div><div><br class=3D""></div><div>EATs are always signed =
so duplicates would only come from bad implementations. There are plenty =
of ways that am implementation can go wrong other than duplicating keys =
that are completely undetectable.</div><br class=3D""><blockquote =
type=3D"cite" class=3D""><div class=3D""><div dir=3D"ltr" class=3D""><div =
class=3D"gmail_quote"><div class=3D""><br class=3D""></div><blockquote =
class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px =
solid rgb(204,204,204);padding-left:1ex"><div style=3D"overflow-wrap: =
break-word;" class=3D""><div class=3D""><div class=3D""></div><div =
class=3D"">There is lot of text implying that duplicates are bad, but I =
think it would be worth being explicit.</div><div class=3D""><br =
class=3D""></div></div><blockquote style=3D"margin:0px 0px 0px =
40px;border:none;padding:0px" class=3D""><div class=3D""><div =
class=3D"">You are an idiot if you design a protocol that considers =
duplicate input valid or necessary. Duplicate map keys are always an =
error in CBOR and will not work with many generic =
decoders.</div></div></blockquote></div></blockquote><div =
class=3D"">&nbsp;</div><div class=3D"">I wouldn't say "idiot", just =
"wrong". The spec already says you "MUST NOT" do this, but I'm not =
opposed to making that statement more direct.<br =
class=3D""></div></div></div></div></blockquote><div><br =
class=3D""></div><div>Pardon my wording. Certainly, I do not want that =
as normative text.</div><br class=3D""><blockquote type=3D"cite" =
class=3D""><div class=3D""><div dir=3D"ltr" class=3D""><div =
class=3D"gmail_quote"><div class=3D""><br class=3D""></div><div =
class=3D"">Thanks,<br class=3D"">Jeffrey</div></div></div>
</div></blockquote></div><br class=3D""></body></html>=

--Apple-Mail=_6BF7025F-D4BF-44DE-8BC8-110F861176B0--


From nobody Sun Nov 24 14:11:05 2019
Return-Path: <Michael.Jones@microsoft.com>
X-Original-To: cbor@ietfa.amsl.com
Delivered-To: cbor@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E77D11200C4 for <cbor@ietfa.amsl.com>; Sun, 24 Nov 2019 14:11:02 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level: 
X-Spam-Status: No, score=-2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9,  DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=microsoft.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id c-sXLnlLRvs5 for <cbor@ietfa.amsl.com>; Sun, 24 Nov 2019 14:10:59 -0800 (PST)
Received: from NAM06-BL2-obe.outbound.protection.outlook.com (mail-eopbgr650117.outbound.protection.outlook.com [40.107.65.117]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 9F80712003E for <cbor@ietf.org>; Sun, 24 Nov 2019 14:10:59 -0800 (PST)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kDnYUhZP70Wbg+mlaYyOc3zDqjoNTffiqBkL6bHRCvzbIxEodeL8T24cwQUR2ALbjWrHhRvqDVW1UNtPUyJFX9Yv/xCSk0/Jm2O6WkYeXzPr37NuivmdXCk/J0OQ6irejNM+GtdwSRJiXfi0/sPPyZVkClmcl5EATLMkQuNIO7Z4cUXiP7pWWMwPtST9MrEoM3ds61hMezPsV0XXZvYE4fDj9GT423ZHIha611JWar8TvZQJuysd7UibjUEYwmT9Px7I4Ab/Ah3ij2lj9BmQyC8DpNQhHC2e3UaGqt3J1meOjuUdwT+XmUCa6NZuOoY9IjXaToFBlaMq3NBaowipUw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;  s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ha9IWPuJjFb4TxLJNUW3Mf4Rakx/WLgdJ5NMc+UKl4Q=; b=SKx4aO+tkfB/eAiIzWoUN6y1DQ4boTKfBsDaFoD30Eu2IsHe6xa62Jd+y/l/uMN9/ojCnXvf/8/2+RWTW3mujnGUVlJkqqQgWclTPiXf7EMdqnZrGEN1T0bWMwoyB9Oazv/TusXSzH7hNwfuLASTM9H32cCa4tGmzm2JWRbCbSRYkAXHijj+GzfIuR0ytfbwDNjdQorchdB0UvatKGXLKxGeuh5jC35UTAJl43o30fMnYUpQpunvRO5bjbYAkR5hBYpdDsTLdTjD6Q1qzOZLdyJsXtH/VYMeEyDje4X5oSy35uB4KIBCdrx+j7K+EDDwRBKiCdr/16qh3BzlsU1XlA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=microsoft.com; dmarc=pass action=none header.from=microsoft.com; dkim=pass header.d=microsoft.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ha9IWPuJjFb4TxLJNUW3Mf4Rakx/WLgdJ5NMc+UKl4Q=; b=Uvxl5FnEdJrfyOFPZq1WdFUae+akzLFov4LsRK9xtNdVsFh+EW9VkDIAbThv3GRTiICeA36hJ/q4vz9hTNztvWVrlJeStpueUYt8VUZ4pmDv6IOAu0Qp1PZwSqBCbt9n3YjcjSAp7ecTbhtd4kxO6J1Ngm7g7PkOnIVAUXAWqwA=
Received: from DM6PR00MB0569.namprd00.prod.outlook.com (20.179.51.12) by DM6PR00MB0845.namprd00.prod.outlook.com (20.179.167.151) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2525.0; Sun, 24 Nov 2019 22:10:57 +0000
Received: from DM6PR00MB0569.namprd00.prod.outlook.com ([fe80::2cfe:cf2c:2101:86be]) by DM6PR00MB0569.namprd00.prod.outlook.com ([fe80::2cfe:cf2c:2101:86be%9]) with mapi id 15.20.2526.000; Sun, 24 Nov 2019 22:10:57 +0000
From: Mike Jones <Michael.Jones@microsoft.com>
To: Laurence Lundblade <lgl@island-resort.com>, Jeffrey Yasskin <jyasskin@chromium.org>
CC: Jeffrey Yasskin <jyasskin=40google.com@dmarc.ietf.org>, "cbor@ietf.org" <cbor@ietf.org>
Thread-Topic: [EXTERNAL] Re: [Cbor] Handling duplicate map keys
Thread-Index: AQHVoGqK3tfbfd3j3UaGZbBcN3tqC6eYAo4AgAB4jwCAAGeBgIABRhYAgAB+gwCAAD+nYA==
Date: Sun, 24 Nov 2019 22:10:57 +0000
Message-ID: <DM6PR00MB0569D44CC35DD2AFEA56C621F54B0@DM6PR00MB0569.namprd00.prod.outlook.com>
References: <CANh-dX=EVDa4EwrgWKof4kCD3nkfV3BvH0Cg5ZKOivmXJ_Dm8g@mail.gmail.com> <E5C74E1F-A5F4-4AB8-9787-3999C4697C3B@island-resort.com> <CANh-dX=1gkAtfSG-yzCsVAkk=oLM-=dN_JLCr1kQK3d6Jb0fSw@mail.gmail.com> <F81E1A57-6072-44FA-A148-8F3ED7520791@island-resort.com> <CANh-dXmxzoEjb-yhL-R1p-xvBF8kZwOpzoS_fziPfuxFhbykhA@mail.gmail.com> <B3C04481-1414-4F90-8C99-62AD7E1819DD@island-resort.com>
In-Reply-To: <B3C04481-1414-4F90-8C99-62AD7E1819DD@island-resort.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
msip_labels: MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_ActionId=dabd4818-01b3-4b86-86ca-000086860efd; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_ContentBits=0; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Enabled=true; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Method=Standard; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Name=Internal; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SetDate=2019-11-24T22:09:33Z;  MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SiteId=72f988bf-86f1-41af-91ab-2d7cd011db47;
authentication-results: spf=none (sender IP is ) smtp.mailfrom=Michael.Jones@microsoft.com; 
x-originating-ip: [50.47.93.218]
x-ms-publictraffictype: Email
x-ms-office365-filtering-ht: Tenant
x-ms-office365-filtering-correlation-id: 4d39a00f-8ea1-4a35-64cb-08d7712b2ea1
x-ms-traffictypediagnostic: DM6PR00MB0845:
x-microsoft-antispam-prvs: <DM6PR00MB0845F65E1B1E80DD98033FEBF54B0@DM6PR00MB0845.namprd00.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:626;
x-forefront-prvs: 02318D10FB
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(366004)(396003)(346002)(376002)(39860400002)(136003)(199004)(189003)(54906003)(25786009)(110136005)(71200400001)(71190400001)(53546011)(6506007)(7696005)(76176011)(186003)(55016002)(6306002)(54896002)(102836004)(236005)(26005)(316002)(6436002)(3846002)(66066001)(229853002)(9686003)(66446008)(33656002)(14454004)(8936002)(66946007)(478600001)(10290500003)(6116002)(790700001)(22452003)(5660300002)(256004)(7736002)(4326008)(2906002)(8676002)(52536014)(66476007)(99286004)(66556008)(81166006)(81156014)(64756008)(74316002)(10090500001)(446003)(6246003)(8990500004)(86362001)(76116006)(14444005)(11346002); DIR:OUT; SFP:1102; SCL:1; SRVR:DM6PR00MB0845; H:DM6PR00MB0569.namprd00.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; 
received-spf: None (protection.outlook.com: microsoft.com does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: yIUxBJss6rTyjLjAxAtKCkxHIU8mBDxKdoGy7qaHwwW+pmgNrVnmnmSIFQAI6NVmeiaFW2QzpMU2uNPg+n587vqKnqXdqYJzf1zDbJ4AV/+nOV0lLaiaFD1mZpLgVAG8ejASEjV8T2XUTCgLTXb+oENvnrAfwYPdv2gYY5HWdeBpzvbCqLSkKT60ScmUv/RKKHoCtKAgsrU2f3miaRiSZuv4OEI2shSp3h9kcxOoqQlFF+xbUNiwQrhOpfUUZKWpwE6fzGHcEf5UhywJpV5wOyEGpU9x/bU1Iuu54yiWMmQhkNpzXZehabVGgIyhJC8vFenO4nAjHZds2CZqRmRDyaDP5GJEhLLpHoT5tKNxSDWxz1CgizphXomJUx5SsUZE7IsmGz/uTanObcB4EfwbC54a7qt/9pW8KjFd7cHx35aXyvAjFb9hjNvcNtTirL/b
x-ms-exchange-transport-forked: True
Content-Type: multipart/alternative; boundary="_000_DM6PR00MB0569D44CC35DD2AFEA56C621F54B0DM6PR00MB0569namp_"
MIME-Version: 1.0
X-OriginatorOrg: microsoft.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 4d39a00f-8ea1-4a35-64cb-08d7712b2ea1
X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Nov 2019 22:10:57.5396 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 6sQF0xxmwxQlfMVedreHWoIIcPeNBqNxt7ahnjRCvOjcsXtuLVlnExgMs5iLgclYIqmsThH7wmfkiVR0j6akaw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR00MB0845
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/VoNbYwxnQEO6k_buRTOE-euDOPo>
Subject: Re: [Cbor] [EXTERNAL] Re:  Handling duplicate map keys
X-BeenThere: cbor@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Concise Binary Object Representation \(CBOR\)" <cbor.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cbor>, <mailto:cbor-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cbor/>
List-Post: <mailto:cbor@ietf.org>
List-Help: <mailto:cbor-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cbor>, <mailto:cbor-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 24 Nov 2019 22:11:03 -0000

--_000_DM6PR00MB0569D44CC35DD2AFEA56C621F54B0DM6PR00MB0569namp_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

SSBhZHZvY2F0ZSB3b3JkaW5nIHRoYXQgc2F5cyB5b3UgTVVTVCBOT1QgY3JlYXRlIHByb3RvY29s
cyBvciBzcGVjaWZpY2F0aW9ucyB0aGF0IGNvdW50IG9uIGFueSBiZWhhdmlvciBmb3IgZHVwbGlj
YXRlIG1hcCBrZXlzIG90aGVyIHRoYW4gcmVqZWN0aW5nIHRoZSBpbnB1dC4gIEFueXRoaW5nIGVs
c2Ugb3BlbnMgdXAgYSBQYW5kb3Jh4oCZcyBCb3ggb2Ygbm9uLWludGVyb3BlcmFiaWxpdHkuDQoN
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAt
LSBNaWtlDQoNCkZyb206IENCT1IgPGNib3ItYm91bmNlc0BpZXRmLm9yZz4gT24gQmVoYWxmIE9m
IExhdXJlbmNlIEx1bmRibGFkZQ0KU2VudDogU3VuZGF5LCBOb3ZlbWJlciAyNCwgMjAxOSAxMDoy
MiBBTQ0KVG86IEplZmZyZXkgWWFzc2tpbiA8anlhc3NraW5AY2hyb21pdW0ub3JnPg0KQ2M6IEpl
ZmZyZXkgWWFzc2tpbiA8anlhc3NraW49NDBnb29nbGUuY29tQGRtYXJjLmlldGYub3JnPjsgY2Jv
ckBpZXRmLm9yZw0KU3ViamVjdDogW0VYVEVSTkFMXSBSZTogW0Nib3JdIEhhbmRsaW5nIGR1cGxp
Y2F0ZSBtYXAga2V5cw0KDQoNCg0KDQpPbiBOb3YgMjQsIDIwMTksIGF0IDI6NDggQU0sIEplZmZy
ZXkgWWFzc2tpbiA8anlhc3NraW5AY2hyb21pdW0ub3JnPG1haWx0bzpqeWFzc2tpbkBjaHJvbWl1
bS5vcmc+PiB3cm90ZToNCg0KSSB0aGluayB5b3UgbWFrZSBhIGdvb2QgcG9pbnQgdGhhdCBpZiBh
IHByb3RvY29sIGlzIGdvaW5nIHRvIHNwZWNpZnkgInRha2UgZmlyc3QiLCBpdCBjYW4gcHJvYmFi
bHkgc3BlY2lmeSAiZXJyb3Igb24gZHVwbGljYXRlIGtleSIgZm9yIHRoZSBzYW1lIGNvc3QuIFRo
YXQgbWlnaHQgaW1wbHkgc29tZSBtdWNoIHNpbXBsZXIgdGV4dDoNCg0KIlByb3RvY29scyBiYXNl
ZCBvbiBDQk9SIFNIT1VMRCBmYWlsIHdpdGggYW4gZXJyb3IgaWYgYSBtYXAgY29udGFpbnMgYSBk
dXBsaWNhdGUga2V5LCBleGNlcHQgdGhhdCBpZiB0aGUga2V5IGlzbid0IHVzZWQgYXQgYWxsLCB0
aGV5IE1BWSBpZ25vcmUgaXQgaW5zdGVhZC4gUHJvdG9jb2xzIHRoYXQgZG8gbm90IHJlamVjdCBk
dXBsaWNhdGUga2V5cyBNVVNUICg/KSBkb2N1bWVudCB3aHkgdGhlIGNvc3Qgb2YgcmVqZWN0aW5n
IGR1cGxpY2F0ZXMgaXMgdG9vIGhpZ2ggYW5kIHdoeSBhY2NlcHRpbmcgdGhlbSB3aWxsIG5vdCBs
ZWFkIHRvIHNlY3VyaXR5IHZ1bG5lcmFiaWxpdGllcy4gQW4gYXJyYXkgbWlnaHQgYmUgYSBiZXR0
ZXIgY2hvaWNlIGZvciBzdWNoIHByb3RvY29scy7igJ0NCg0KSSB0aGluayBJ4oCZZCBpbnZlcnQg
aXQgYW5kIHNheSB0aGF0IHByb3RvY29scyB0aGF0IHJlcXVpcmUgZHVwbGljYXRlIGRldGVjdGlv
biBmb3Igc2VjdXJpdHkgcmVhc29ucyBzaG91bGQgZGVzY3JpYmUgdGhhdCByZXF1aXJlbWVudCBp
biBzZWN1cml0eSBjb25zaWRlcmF0aW9ucyBzbyB0aGUgaW1wbGVtZW50b3IgZ2V0cyBhIGdvb2Qg
c29saWQgaGludCB0aGF0IHRoZXkgbmVlZCB0byB3b3JyeSBhYm91dCBpdC4NCg0KVGhlcmUncyBh
biBpbnRlcmVzdGluZyBkaWZmZXJlbmNlIG9mIGFwcHJvYWNoIGhlcmUuIEl0J3MgcGxhdXNpYmxl
IHRvIHNheSB0aGF0IHByb3RvY29sIGRlc2lnbmVycyBzaG91bGQgcGljayB0aGUgc2VjdXJlIGRl
c2lnbiBvbmx5IHdoZW4gdGhleSByZWFsaXplIHRoZWlyIGRlc2lnbiBoYXMgc2VjdXJpdHkgaW1w
bGljYXRpb25zLCBidXQgSSBwcmVmZXIgdG8gc2F5IHRoYXQgdGhleSBzaG91bGQgcGljayB0aGUg
c2VjdXJlIGRlc2lnbiB1bmxlc3MgdGhleSB0aGluayBhYm91dCBpdCBhbmQgcmVhbGl6ZSB0aGUg
ZGVzaWduIGRvZXNuJ3QgaGF2ZSBzZWN1cml0eSBpbXBsaWNhdGlvbnMuIEkgdGhpbmsgdGhlIHNl
Y29uZCB3aWxsIGdldCB1cyBub3RpY2VhYmx5IG1vcmUgc2VjdXJpdHkgaW4gYSB3b3JsZCB3aGVy
ZSBkZXNpZ25lcnMgZG9uJ3QgaGF2ZSB0aW1lIHRvIHRoaW5rIGFib3V0IGV2ZXJ5IGFzcGVjdCBv
ZiBldmVyeSBwaWVjZSBvZiB0aGVpciBkZXNpZ24uDQoNCkkgZG9u4oCZdCBrbm93IGhvdyBtYW55
IGdlbmVyaWMgZGVjb2RlcnMgZXhpc3QgdGhhdCByZWFsbHkgY2Fu4oCZdCBkbyBvciBzdXBwb3J0
IGR1cGxpY2F0ZSBkZXRlY3Rpb24uIEkgYWxzbyBkb27igJl0IGtub3cgaG93IG1hbnkgdXNlIGNh
c2VzIHRoZXJlIGFyZSB0aGF0IGNhbuKAmXQgYWZmb3JkIGR1cGxpY2F0ZSBkZXRlY3Rpb24uIElm
IHRoZXJlIGFyZSBmZXcgb2YgYm90aCwgdGhlbiBtYWtpbmcgbm8gZHVwbGljYXRlIGRldGVjdGlv
biB0aGUgZXhjZXB0aW9uIHRoYXQgbmVlZHMgdG8gYmUgY2FsbGVkIG91dCBzZWVtcyByaWdodC4N
Cg0KSSBoYXZlIGJlZW4gdGhpbmtpbmcgYWJvdXQgQ1dUIGFuZCBFQVQgYXMgZXhhbXBsZXMuIE1h
eWJlIEVBVCBzaG91bGQgc2F5IHRoYXQgZHVwbGljYXRlIGRldGVjdGlvbiBzaG91bGQgYmUgcmVx
dWlyZWQgdW5sZXNzIGEgcHJvZmlsZSBvZiBFQVQgc2F5cyBpdCBpcyBub3QsIHRoZSBzZWN1cmUg
Y2hvaWNlLiBGb3IgdGhlIG1vc3QgcGFydCBFQVQgd2lsbCBiZSBwcm9jZXNzZWQgb24gc2VydmVy
cyB3aGVyZSB0aGVyZSBpcyBjbGVhcmx5IG5vIHJlc291cmNlIGlzc3VlLiBUaGUgb25seSBpc3N1
ZSB3b3VsZCBiZSB0aGUgaW1wbGVtZW50YXRpb24gIGVudmlyb25tZW50IChKYXZhLCBQSFAsIFB5
dGhvbuKApikuDQoNCkVBVHMgbWlnaHQgYmUgZGVjb2RlZCBvbiBjb25zdHJhaW5lZCBkZXZpY2Vz
IHNvbWV0aW1lcywgYnV0IHRoYXQgaXMgcmFyZS4gSW4gdGhhdCBjYXNlIGEgcHJvZmlsZSBjYW4g
cmVsYXggdGhlIHJlcXVpcmVtZW50Lg0KDQpFQVRzIGFyZSBhbHdheXMgc2lnbmVkIHNvIGR1cGxp
Y2F0ZXMgd291bGQgb25seSBjb21lIGZyb20gYmFkIGltcGxlbWVudGF0aW9ucy4gVGhlcmUgYXJl
IHBsZW50eSBvZiB3YXlzIHRoYXQgYW0gaW1wbGVtZW50YXRpb24gY2FuIGdvIHdyb25nIG90aGVy
IHRoYW4gZHVwbGljYXRpbmcga2V5cyB0aGF0IGFyZSBjb21wbGV0ZWx5IHVuZGV0ZWN0YWJsZS4N
Cg0KDQoNClRoZXJlIGlzIGxvdCBvZiB0ZXh0IGltcGx5aW5nIHRoYXQgZHVwbGljYXRlcyBhcmUg
YmFkLCBidXQgSSB0aGluayBpdCB3b3VsZCBiZSB3b3J0aCBiZWluZyBleHBsaWNpdC4NCg0KWW91
IGFyZSBhbiBpZGlvdCBpZiB5b3UgZGVzaWduIGEgcHJvdG9jb2wgdGhhdCBjb25zaWRlcnMgZHVw
bGljYXRlIGlucHV0IHZhbGlkIG9yIG5lY2Vzc2FyeS4gRHVwbGljYXRlIG1hcCBrZXlzIGFyZSBh
bHdheXMgYW4gZXJyb3IgaW4gQ0JPUiBhbmQgd2lsbCBub3Qgd29yayB3aXRoIG1hbnkgZ2VuZXJp
YyBkZWNvZGVycy4NCg0KSSB3b3VsZG4ndCBzYXkgImlkaW90IiwganVzdCAid3JvbmciLiBUaGUg
c3BlYyBhbHJlYWR5IHNheXMgeW91ICJNVVNUIE5PVCIgZG8gdGhpcywgYnV0IEknbSBub3Qgb3Bw
b3NlZCB0byBtYWtpbmcgdGhhdCBzdGF0ZW1lbnQgbW9yZSBkaXJlY3QuDQoNClBhcmRvbiBteSB3
b3JkaW5nLiBDZXJ0YWlubHksIEkgZG8gbm90IHdhbnQgdGhhdCBhcyBub3JtYXRpdmUgdGV4dC4N
Cg0KDQoNClRoYW5rcywNCkplZmZyZXkNCg0K

--_000_DM6PR00MB0569D44CC35DD2AFEA56C621F54B0DM6PR00MB0569namp_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRv
ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTUgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPHN0eWxl
PjwhLS0NCi8qIEZvbnQgRGVmaW5pdGlvbnMgKi8NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6
IkNhbWJyaWEgTWF0aCI7DQoJcGFub3NlLTE6MiA0IDUgMyA1IDQgNiAzIDIgNDt9DQpAZm9udC1m
YWNlDQoJe2ZvbnQtZmFtaWx5OkNhbGlicmk7DQoJcGFub3NlLTE6MiAxNSA1IDIgMiAyIDQgMyAy
IDQ7fQ0KLyogU3R5bGUgRGVmaW5pdGlvbnMgKi8NCnAuTXNvTm9ybWFsLCBsaS5Nc29Ob3JtYWws
IGRpdi5Nc29Ob3JtYWwNCgl7bWFyZ2luOjBpbjsNCgltYXJnaW4tYm90dG9tOi4wMDAxcHQ7DQoJ
Zm9udC1zaXplOjExLjBwdDsNCglmb250LWZhbWlseToiQ2FsaWJyaSIsc2Fucy1zZXJpZjt9DQph
OmxpbmssIHNwYW4uTXNvSHlwZXJsaW5rDQoJe21zby1zdHlsZS1wcmlvcml0eTo5OTsNCgljb2xv
cjpibHVlOw0KCXRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fQ0Kc3Bhbi5FbWFpbFN0eWxlMTgN
Cgl7bXNvLXN0eWxlLXR5cGU6cGVyc29uYWwtcmVwbHk7DQoJZm9udC1mYW1pbHk6IkNhbGlicmki
LHNhbnMtc2VyaWY7DQoJY29sb3I6IzAwMjA2MDt9DQouTXNvQ2hwRGVmYXVsdA0KCXttc28tc3R5
bGUtdHlwZTpleHBvcnQtb25seTsNCglmb250LXNpemU6MTAuMHB0O30NCkBwYWdlIFdvcmRTZWN0
aW9uMQ0KCXtzaXplOjguNWluIDExLjBpbjsNCgltYXJnaW46MS4waW4gMS4waW4gMS4waW4gMS4w
aW47fQ0KZGl2LldvcmRTZWN0aW9uMQ0KCXtwYWdlOldvcmRTZWN0aW9uMTt9DQotLT48L3N0eWxl
PjwhLS1baWYgZ3RlIG1zbyA5XT48eG1sPg0KPG86c2hhcGVkZWZhdWx0cyB2OmV4dD0iZWRpdCIg
c3BpZG1heD0iMTAyNiIgLz4NCjwveG1sPjwhW2VuZGlmXS0tPjwhLS1baWYgZ3RlIG1zbyA5XT48
eG1sPg0KPG86c2hhcGVsYXlvdXQgdjpleHQ9ImVkaXQiPg0KPG86aWRtYXAgdjpleHQ9ImVkaXQi
IGRhdGE9IjEiIC8+DQo8L286c2hhcGVsYXlvdXQ+PC94bWw+PCFbZW5kaWZdLS0+DQo8L2hlYWQ+
DQo8Ym9keSBsYW5nPSJFTi1VUyIgbGluaz0iYmx1ZSIgdmxpbms9InB1cnBsZSI+DQo8ZGl2IGNs
YXNzPSJXb3JkU2VjdGlvbjEiPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImNv
bG9yOiMwMDIwNjAiPkkgYWR2b2NhdGUgd29yZGluZyB0aGF0IHNheXMgeW91IE1VU1QgTk9UIGNy
ZWF0ZSBwcm90b2NvbHMgb3Igc3BlY2lmaWNhdGlvbnMgdGhhdCBjb3VudCBvbiBhbnkgYmVoYXZp
b3IgZm9yIGR1cGxpY2F0ZSBtYXAga2V5cyBvdGhlciB0aGFuIHJlamVjdGluZyB0aGUgaW5wdXQu
Jm5ic3A7IEFueXRoaW5nIGVsc2Ugb3BlbnMgdXAgYSBQYW5kb3Jh4oCZcyBCb3ggb2Ygbm9uLWlu
dGVyb3BlcmFiaWxpdHkuPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+PHNwYW4gc3R5bGU9ImNvbG9yOiMwMDIwNjAiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwv
cD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJjb2xvcjojMDAyMDYwIj4mbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgLS0gTWlrZTxvOnA+PC9vOnA+PC9z
cGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJjb2xvcjojMDAyMDYw
Ij48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8ZGl2Pg0KPGRpdiBzdHlsZT0iYm9yZGVy
Om5vbmU7Ym9yZGVyLXRvcDpzb2xpZCAjRTFFMUUxIDEuMHB0O3BhZGRpbmc6My4wcHQgMGluIDBp
biAwaW4iPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGI+RnJvbTo8L2I+IENCT1IgJmx0O2Nib3It
Ym91bmNlc0BpZXRmLm9yZyZndDsgPGI+T24gQmVoYWxmIE9mIDwvYj4NCkxhdXJlbmNlIEx1bmRi
bGFkZTxicj4NCjxiPlNlbnQ6PC9iPiBTdW5kYXksIE5vdmVtYmVyIDI0LCAyMDE5IDEwOjIyIEFN
PGJyPg0KPGI+VG86PC9iPiBKZWZmcmV5IFlhc3NraW4gJmx0O2p5YXNza2luQGNocm9taXVtLm9y
ZyZndDs8YnI+DQo8Yj5DYzo8L2I+IEplZmZyZXkgWWFzc2tpbiAmbHQ7anlhc3NraW49NDBnb29n
bGUuY29tQGRtYXJjLmlldGYub3JnJmd0OzsgY2JvckBpZXRmLm9yZzxicj4NCjxiPlN1YmplY3Q6
PC9iPiBbRVhURVJOQUxdIFJlOiBbQ2Jvcl0gSGFuZGxpbmcgZHVwbGljYXRlIG1hcCBrZXlzPG86
cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4m
bmJzcDs8L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwv
cD4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48YnI+DQo8YnI+DQo8bzpwPjwvbzpwPjwv
cD4NCjxibG9ja3F1b3RlIHN0eWxlPSJtYXJnaW4tdG9wOjUuMHB0O21hcmdpbi1ib3R0b206NS4w
cHQiPg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPk9uIE5vdiAyNCwgMjAxOSwgYXQgMjo0
OCBBTSwgSmVmZnJleSBZYXNza2luICZsdDs8YSBocmVmPSJtYWlsdG86anlhc3NraW5AY2hyb21p
dW0ub3JnIj5qeWFzc2tpbkBjaHJvbWl1bS5vcmc8L2E+Jmd0OyB3cm90ZTo8bzpwPjwvbzpwPjwv
cD4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86
cD4mbmJzcDs8L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Jsb2NrcXVvdGU+
DQo8YmxvY2txdW90ZSBzdHlsZT0ibWFyZ2luLXRvcDo1LjBwdDttYXJnaW4tYm90dG9tOjUuMHB0
Ij4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxibG9ja3F1b3RlIHN0eWxlPSJib3JkZXI6bm9uZTti
b3JkZXItbGVmdDpzb2xpZCAjQ0NDQ0NDIDEuMHB0O3BhZGRpbmc6MGluIDBpbiAwaW4gNi4wcHQ7
bWFyZ2luLWxlZnQ6NC44cHQ7bWFyZ2luLXJpZ2h0OjBpbiI+DQo8ZGl2Pg0KPGJsb2NrcXVvdGUg
c3R5bGU9Im1hcmdpbi10b3A6NS4wcHQ7bWFyZ2luLWJvdHRvbTo1LjBwdCI+DQo8ZGl2Pg0KPGRp
dj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5JIHRoaW5rIHlvdSBtYWtlIGEgZ29vZCBw
b2ludCB0aGF0IGlmIGEgcHJvdG9jb2wgaXMgZ29pbmcgdG8gc3BlY2lmeSAmcXVvdDt0YWtlIGZp
cnN0JnF1b3Q7LCBpdCBjYW4gcHJvYmFibHkgc3BlY2lmeSAmcXVvdDtlcnJvciBvbiBkdXBsaWNh
dGUga2V5JnF1b3Q7IGZvciB0aGUgc2FtZSBjb3N0LiBUaGF0IG1pZ2h0IGltcGx5IHNvbWUgbXVj
aCBzaW1wbGVyIHRleHQ6PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8YmxvY2tx
dW90ZSBzdHlsZT0ibWFyZ2luLWxlZnQ6MzAuMHB0O21hcmdpbi1yaWdodDowaW4iPg0KPGRpdj4N
CjxibG9ja3F1b3RlIHN0eWxlPSJib3JkZXI6bm9uZTtib3JkZXItbGVmdDpzb2xpZCAjQ0NDQ0ND
IDEuMHB0O3BhZGRpbmc6MGluIDBpbiAwaW4gNi4wcHQ7bWFyZ2luLWxlZnQ6NC44cHQ7bWFyZ2lu
LXJpZ2h0OjBpbiI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mcXVvdDtQcm90b2NvbHMgYmFzZWQg
b24gQ0JPUiBTSE9VTEQgZmFpbCB3aXRoIGFuIGVycm9yIGlmIGEgbWFwIGNvbnRhaW5zIGEgZHVw
bGljYXRlIGtleSwgZXhjZXB0IHRoYXQgaWYgdGhlIGtleSBpc24ndCB1c2VkIGF0IGFsbCwgdGhl
eSBNQVkgaWdub3JlIGl0IGluc3RlYWQuIFByb3RvY29scyB0aGF0IGRvIG5vdCByZWplY3QgZHVw
bGljYXRlIGtleXMgTVVTVCAoPykgZG9jdW1lbnQgd2h5IHRoZSBjb3N0IG9mIHJlamVjdGluZw0K
IGR1cGxpY2F0ZXMgaXMgdG9vIGhpZ2ggYW5kIHdoeSBhY2NlcHRpbmcgdGhlbSB3aWxsIG5vdCBs
ZWFkIHRvIHNlY3VyaXR5IHZ1bG5lcmFiaWxpdGllcy4gQW4gYXJyYXkgbWlnaHQgYmUgYSBiZXR0
ZXIgY2hvaWNlIGZvciBzdWNoIHByb3RvY29scy7igJ08bzpwPjwvbzpwPjwvcD4NCjwvYmxvY2tx
dW90ZT4NCjwvZGl2Pg0KPC9ibG9ja3F1b3RlPg0KPC9kaXY+DQo8L2Jsb2NrcXVvdGU+DQo8ZGl2
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8L2Rpdj4NCjxk
aXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5JIHRoaW5rIEnigJlkIGludmVydCBpdCBhbmQgc2F5
IHRoYXQgcHJvdG9jb2xzIHRoYXQgcmVxdWlyZSBkdXBsaWNhdGUgZGV0ZWN0aW9uIGZvciBzZWN1
cml0eSByZWFzb25zIHNob3VsZCBkZXNjcmliZSB0aGF0IHJlcXVpcmVtZW50IGluIHNlY3VyaXR5
IGNvbnNpZGVyYXRpb25zIHNvIHRoZSBpbXBsZW1lbnRvciBnZXRzIGEgZ29vZCBzb2xpZCBoaW50
IHRoYXQgdGhleSBuZWVkIHRvIHdvcnJ5IGFib3V0IGl0LjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+
DQo8L2Rpdj4NCjwvYmxvY2txdW90ZT4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpw
PiZuYnNwOzwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPlRo
ZXJlJ3MgYW4gaW50ZXJlc3RpbmcgZGlmZmVyZW5jZSBvZiBhcHByb2FjaCBoZXJlLiBJdCdzIHBs
YXVzaWJsZSB0byBzYXkgdGhhdCBwcm90b2NvbCBkZXNpZ25lcnMgc2hvdWxkIHBpY2sgdGhlIHNl
Y3VyZSBkZXNpZ24gb25seSB3aGVuIHRoZXkgcmVhbGl6ZSB0aGVpciBkZXNpZ24gaGFzIHNlY3Vy
aXR5IGltcGxpY2F0aW9ucywgYnV0IEkgcHJlZmVyIHRvIHNheSB0aGF0IHRoZXkgc2hvdWxkIHBp
Y2sgdGhlDQogc2VjdXJlIGRlc2lnbiB1bmxlc3MgdGhleSB0aGluayBhYm91dCBpdCBhbmQgcmVh
bGl6ZSB0aGUgZGVzaWduIGRvZXNuJ3QgaGF2ZSBzZWN1cml0eSBpbXBsaWNhdGlvbnMuIEkgdGhp
bmsgdGhlIHNlY29uZCB3aWxsIGdldCB1cyBub3RpY2VhYmx5IG1vcmUgc2VjdXJpdHkgaW4gYSB3
b3JsZCB3aGVyZSBkZXNpZ25lcnMgZG9uJ3QgaGF2ZSB0aW1lIHRvIHRoaW5rIGFib3V0IGV2ZXJ5
IGFzcGVjdCBvZiBldmVyeSBwaWVjZSBvZiB0aGVpciBkZXNpZ24uPG86cD48L286cD48L3A+DQo8
L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvYmxvY2txdW90ZT4NCjxkaXY+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPkkgZG9u4oCZdCBrbm93IGhvdyBtYW55IGdlbmVyaWMgZGVjb2Rl
cnMgZXhpc3QgdGhhdCByZWFsbHkgY2Fu4oCZdCBkbyBvciBzdXBwb3J0IGR1cGxpY2F0ZSBkZXRl
Y3Rpb24uIEkgYWxzbyBkb27igJl0IGtub3cgaG93IG1hbnkgdXNlIGNhc2VzIHRoZXJlIGFyZSB0
aGF0IGNhbuKAmXQgYWZmb3JkIGR1cGxpY2F0ZSBkZXRlY3Rpb24uIElmIHRoZXJlIGFyZSBmZXcg
b2YgYm90aCwgdGhlbiBtYWtpbmcgbm8gZHVwbGljYXRlIGRldGVjdGlvbg0KIHRoZSBleGNlcHRp
b24gdGhhdCBuZWVkcyB0byBiZSBjYWxsZWQgb3V0IHNlZW1zIHJpZ2h0LjxvOnA+PC9vOnA+PC9w
Pg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48
L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5JIGhhdmUgYmVlbiB0aGlu
a2luZyBhYm91dCBDV1QgYW5kIEVBVCBhcyBleGFtcGxlcy4gTWF5YmUgRUFUIHNob3VsZCBzYXkg
dGhhdCBkdXBsaWNhdGUgZGV0ZWN0aW9uIHNob3VsZCBiZSByZXF1aXJlZCB1bmxlc3MgYSBwcm9m
aWxlIG9mIEVBVCBzYXlzIGl0IGlzIG5vdCwgdGhlIHNlY3VyZSBjaG9pY2UuIEZvciB0aGUgbW9z
dCBwYXJ0IEVBVCB3aWxsIGJlIHByb2Nlc3NlZCBvbiBzZXJ2ZXJzIHdoZXJlIHRoZXJlDQogaXMg
Y2xlYXJseSBubyByZXNvdXJjZSBpc3N1ZS4gVGhlIG9ubHkgaXNzdWUgd291bGQgYmUgdGhlIGlt
cGxlbWVudGF0aW9uICZuYnNwO2Vudmlyb25tZW50IChKYXZhLCBQSFAsIFB5dGhvbuKApikuPG86
cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZu
YnNwOzwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPkVBVHMg
bWlnaHQgYmUgZGVjb2RlZCBvbiBjb25zdHJhaW5lZCBkZXZpY2VzIHNvbWV0aW1lcywgYnV0IHRo
YXQgaXMgcmFyZS4gSW4gdGhhdCBjYXNlIGEgcHJvZmlsZSBjYW4gcmVsYXggdGhlIHJlcXVpcmVt
ZW50LjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
PG86cD4mbmJzcDs8L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
Ij5FQVRzIGFyZSBhbHdheXMgc2lnbmVkIHNvIGR1cGxpY2F0ZXMgd291bGQgb25seSBjb21lIGZy
b20gYmFkIGltcGxlbWVudGF0aW9ucy4gVGhlcmUgYXJlIHBsZW50eSBvZiB3YXlzIHRoYXQgYW0g
aW1wbGVtZW50YXRpb24gY2FuIGdvIHdyb25nIG90aGVyIHRoYW4gZHVwbGljYXRpbmcga2V5cyB0
aGF0IGFyZSBjb21wbGV0ZWx5IHVuZGV0ZWN0YWJsZS48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+PGJyPg0KPGJyPg0KPG86cD48L286cD48L3A+DQo8YmxvY2tx
dW90ZSBzdHlsZT0ibWFyZ2luLXRvcDo1LjBwdDttYXJnaW4tYm90dG9tOjUuMHB0Ij4NCjxkaXY+
DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwv
bzpwPjwvcD4NCjwvZGl2Pg0KPGJsb2NrcXVvdGUgc3R5bGU9ImJvcmRlcjpub25lO2JvcmRlci1s
ZWZ0OnNvbGlkICNDQ0NDQ0MgMS4wcHQ7cGFkZGluZzowaW4gMGluIDBpbiA2LjBwdDttYXJnaW4t
bGVmdDo0LjhwdDttYXJnaW4tcmlnaHQ6MGluIj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPlRoZXJlIGlzIGxvdCBvZiB0ZXh0IGltcGx5aW5nIHRoYXQgZHVwbGlj
YXRlcyBhcmUgYmFkLCBidXQgSSB0aGluayBpdCB3b3VsZCBiZSB3b3J0aCBiZWluZyBleHBsaWNp
dC48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxv
OnA+Jm5ic3A7PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxibG9ja3F1b3RlIHN0eWxlPSJt
YXJnaW4tbGVmdDozMC4wcHQ7bWFyZ2luLXJpZ2h0OjBpbiI+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPllvdSBhcmUgYW4gaWRpb3QgaWYgeW91IGRlc2lnbiBhIHByb3RvY29s
IHRoYXQgY29uc2lkZXJzIGR1cGxpY2F0ZSBpbnB1dCB2YWxpZCBvciBuZWNlc3NhcnkuIER1cGxp
Y2F0ZSBtYXAga2V5cyBhcmUgYWx3YXlzIGFuIGVycm9yIGluIENCT1IgYW5kIHdpbGwgbm90IHdv
cmsgd2l0aCBtYW55IGdlbmVyaWMgZGVjb2RlcnMuPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwv
ZGl2Pg0KPC9ibG9ja3F1b3RlPg0KPC9kaXY+DQo8L2Jsb2NrcXVvdGU+DQo8ZGl2Pg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIj5JIHdvdWxkbid0IHNheSAmcXVvdDtpZGlvdCZxdW90OywganVzdCAm
cXVvdDt3cm9uZyZxdW90Oy4gVGhlIHNwZWMgYWxyZWFkeSBzYXlzIHlvdSAmcXVvdDtNVVNUIE5P
VCZxdW90OyBkbyB0aGlzLCBidXQgSSdtIG5vdCBvcHBvc2VkIHRvIG1ha2luZyB0aGF0IHN0YXRl
bWVudCBtb3JlIGRpcmVjdC48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4N
CjwvZGl2Pg0KPC9ibG9ja3F1b3RlPg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+
Jm5ic3A7PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+UGFy
ZG9uIG15IHdvcmRpbmcuIENlcnRhaW5seSwgSSBkbyBub3Qgd2FudCB0aGF0IGFzIG5vcm1hdGl2
ZSB0ZXh0LjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48YnI+
DQo8YnI+DQo8bzpwPjwvbzpwPjwvcD4NCjxibG9ja3F1b3RlIHN0eWxlPSJtYXJnaW4tdG9wOjUu
MHB0O21hcmdpbi1ib3R0b206NS4wcHQiPg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+VGhhbmtzLDxicj4NCkplZmZyZXk8bzpwPjwvbzpwPjwvcD4N
CjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9ibG9ja3F1b3RlPg0KPC9kaXY+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9ib2R5
Pg0KPC9odG1sPg0K

--_000_DM6PR00MB0569D44CC35DD2AFEA56C621F54B0DM6PR00MB0569namp_--


From nobody Sun Nov 24 20:35:56 2019
Return-Path: <ietf@augustcellars.com>
X-Original-To: cbor@ietfa.amsl.com
Delivered-To: cbor@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 7DAD9120236 for <cbor@ietfa.amsl.com>; Sun, 24 Nov 2019 20:35:55 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.899
X-Spam-Level: 
X-Spam-Status: No, score=-1.899 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id x2dYrX7fyuEB for <cbor@ietfa.amsl.com>; Sun, 24 Nov 2019 20:35:53 -0800 (PST)
Received: from mail2.augustcellars.com (augustcellars.com [50.45.239.150]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 7BBE9120233 for <cbor@ietf.org>; Sun, 24 Nov 2019 20:35:52 -0800 (PST)
Received: from Jude (50.76.105.153) by mail2.augustcellars.com (192.168.0.56) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Sun, 24 Nov 2019 20:35:47 -0800
From: Jim Schaad <ietf@augustcellars.com>
To: 'Jeffrey Yasskin' <jyasskin@chromium.org>, 'Laurence Lundblade' <lgl@island-resort.com>
CC: 'Jeffrey Yasskin' <jyasskin=40google.com@dmarc.ietf.org>, <cbor@ietf.org>
References: <CANh-dX=EVDa4EwrgWKof4kCD3nkfV3BvH0Cg5ZKOivmXJ_Dm8g@mail.gmail.com> <E5C74E1F-A5F4-4AB8-9787-3999C4697C3B@island-resort.com> <CANh-dX=1gkAtfSG-yzCsVAkk=oLM-=dN_JLCr1kQK3d6Jb0fSw@mail.gmail.com> <F81E1A57-6072-44FA-A148-8F3ED7520791@island-resort.com> <CANh-dXmxzoEjb-yhL-R1p-xvBF8kZwOpzoS_fziPfuxFhbykhA@mail.gmail.com>
In-Reply-To: <CANh-dXmxzoEjb-yhL-R1p-xvBF8kZwOpzoS_fziPfuxFhbykhA@mail.gmail.com>
Date: Sun, 24 Nov 2019 20:35:44 -0800
Message-ID: <052d01d5a349$ceaecd00$6c0c6700$@augustcellars.com>
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="----=_NextPart_000_052E_01D5A306.C08FABB0"
X-Mailer: Microsoft Outlook 16.0
Thread-Index: AQGmCDypdlfUUa/DzG+fZ+sR9lBVUQLz1JhnAeN/E+4ChiYl2gHbbvNUp7C7SIA=
Content-Language: en-us
X-Originating-IP: [50.76.105.153]
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/NGfhDTeNrZsCeD7KYpzdwA9xvGg>
Subject: Re: [Cbor] Handling duplicate map keys
X-BeenThere: cbor@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Concise Binary Object Representation \(CBOR\)" <cbor.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cbor>, <mailto:cbor-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cbor/>
List-Post: <mailto:cbor@ietf.org>
List-Help: <mailto:cbor-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cbor>, <mailto:cbor-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 25 Nov 2019 04:35:55 -0000

------=_NextPart_000_052E_01D5A306.C08FABB0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable

=20

=20

From: CBOR <cbor-bounces@ietf.org> On Behalf Of Jeffrey Yasskin
Sent: Sunday, November 24, 2019 2:49 AM
To: Laurence Lundblade <lgl@island-resort.com>
Cc: Jeffrey Yasskin <jyasskin=3D40google.com@dmarc.ietf.org>; Jeffrey =
Yasskin <jyasskin@chromium.org>; cbor@ietf.org
Subject: Re: [Cbor] Handling duplicate map keys

=20

Comments inline:

=20

On Sat, Nov 23, 2019 at 7:21 AM Laurence Lundblade =
<lgl@island-resort.com <mailto:lgl@island-resort.com> > wrote:

On Nov 23, 2019, at 1:11 AM, Jeffrey Yasskin <jyasskin@chromium.org =
<mailto:jyasskin@chromium.org> > wrote:

=20

On Sat, Nov 23, 2019 at 10:00 AM Laurence Lundblade =
<lgl@island-resort.com <mailto:lgl@island-resort.com> > wrote:

Here=E2=80=99s a rough proposed text:

=20

The protocol designer should make a choice for maps as to whether =
duplicates are allowed or not, particularly as to whether duplicates =
would cause security or functionality problems.

=20

The protocol designer should only require duplicate detection when =
necessary as it can have the following implications:

*	Some generic decoders do not support duplicate detection because the =
underlying facilities in their programming environment to represent maps =
can=E2=80=99t detect duplicates
*	Some generic decoders do not support duplicate detection because it =
requires more code and is not required

*	It requires more resources to implement: 1) memory to store all the =
keys in the map, 2) more code, 3) more CPU time, as much as O(n^2).. =
This is particularly an issue with big maps in constrained environments.

It is suggested that protocol designers require duplicate detection only =
no the particular maps for which there is an issue.

=20

Decoders will typically fall into one of these categories:

*	Full duplicate detection
*	Pass all items up to caller, allowing the caller to implement =
duplicate detection or not
*	No duplicate detection

A generic decoder should identify which it is. Some may support more =
than one, selectable by configuration.

=20

I don't think generic decoders are relevant here. Protocol =
implementations often accumulate their input into a data structure even =
if they use a streaming decoder to read the input. Any such protocol can =
detect duplicates (of the keys it uses at all) for at most the cost of =
an extra bit per field.

=20

My intention was that =E2=80=9Cpass all items up=E2=80=9D covers your =
case.=20

=20

My QCBOR + t_cose implementations work exactly as you describe to =
implement dup detection in COSE header parameters. It=E2=80=99s the data =
structures that hold the COSE header params that are used to detect the =
duplicates, not the generic decoder (QCBOR).  This seems like a good way =
to handle this problem for lots of use cases.=20

=20

Yep, that's the model I'm thinking of. I'm clearly struggling to put it =
into understandable spec language.=20

I think you make a good point that if a protocol is going to specify =
"take first", it can probably specify "error on duplicate key" for the =
same cost. That might imply some much simpler text:

=20

"Protocols based on CBOR SHOULD fail with an error if a map contains a =
duplicate key, except that if the key isn't used at all, they MAY ignore =
it instead. Protocols that do not reject duplicate keys MUST (?) =
document why the cost of rejecting duplicates is too high and why =
accepting them will not lead to security vulnerabilities. An array might =
be a better choice for such protocols.=E2=80=9D

=20

I think I=E2=80=99d invert it and say that protocols that require =
duplicate detection for security reasons should describe that =
requirement in security considerations so the implementor gets a good =
solid hint that they need to worry about it.

=20

There's an interesting difference of approach here. It's plausible to =
say that protocol designers should pick the secure design only when they =
realize their design has security implications, but I prefer to say that =
they should pick the secure design unless they think about it and =
realize the design doesn't have security implications. I think the =
second will get us noticeably more security in a world where designers =
don't have time to think about every aspect of every piece of their =
design.

=20

[JLS]  It also gets fun in some other ways.  It might not matter for the =
protocol I am designing, because I always reflect back the input that I =
use to the client application.  That means it does not matter what the =
duplicate behavior is right up to the point in time where I decide that =
I am going to apply COSE to it.  I now have multiple potential behaviors =
that are required for the application

=20

Jim

=20

=20

There is lot of text implying that duplicates are bad, but I think it =
would be worth being explicit.

=20

You are an idiot if you design a protocol that considers duplicate input =
valid or necessary. Duplicate map keys are always an error in CBOR and =
will not work with many generic decoders.

=20

I wouldn't say "idiot", just "wrong". The spec already says you "MUST =
NOT" do this, but I'm not opposed to making that statement more direct.

=20

Thanks,
Jeffrey


------=_NextPart_000_052E_01D5A306.C08FABB0
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" =
xmlns:o=3D"urn:schemas-microsoft-com:office:office" =
xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" =
xmlns=3D"http://www.w3.org/TR/REC-html40"><head><meta =
http-equiv=3DContent-Type content=3D"text/html; charset=3Dutf-8"><meta =
name=3DGenerator content=3D"Microsoft Word 15 (filtered =
medium)"><style><!--
/* Font Definitions */
@font-face
	{font-family:Wingdings;
	panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:purple;
	text-decoration:underline;}
p.msonormal0, li.msonormal0, div.msonormal0
	{mso-style-name:msonormal;
	mso-margin-top-alt:auto;
	margin-right:0in;
	mso-margin-bottom-alt:auto;
	margin-left:0in;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;}
span.EmailStyle18
	{mso-style-type:personal-reply;
	font-family:"Calibri",sans-serif;
	color:windowtext;}
.MsoChpDefault
	{mso-style-type:export-only;
	font-family:"Calibri",sans-serif;}
@page WordSection1
	{size:8.5in 11.0in;
	margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
	{page:WordSection1;}
/* List Definitions */
@list l0
	{mso-list-id:147208499;
	mso-list-template-ids:636624424;}
@list l0:level1
	{mso-level-number-format:bullet;
	mso-level-text:=EF=82=B7;
	mso-level-tab-stop:.5in;
	mso-level-number-position:left;
	text-indent:-.25in;
	mso-ansi-font-size:10.0pt;
	font-family:Symbol;}
@list l0:level2
	{mso-level-number-format:bullet;
	mso-level-text:o;
	mso-level-tab-stop:1.0in;
	mso-level-number-position:left;
	text-indent:-.25in;
	mso-ansi-font-size:10.0pt;
	font-family:"Courier New";
	mso-bidi-font-family:"Times New Roman";}
@list l0:level3
	{mso-level-number-format:bullet;
	mso-level-text:=EF=82=A7;
	mso-level-tab-stop:1.5in;
	mso-level-number-position:left;
	text-indent:-.25in;
	mso-ansi-font-size:10.0pt;
	font-family:Wingdings;}
@list l0:level4
	{mso-level-number-format:bullet;
	mso-level-text:=EF=82=A7;
	mso-level-tab-stop:2.0in;
	mso-level-number-position:left;
	text-indent:-.25in;
	mso-ansi-font-size:10.0pt;
	font-family:Wingdings;}
@list l0:level5
	{mso-level-number-format:bullet;
	mso-level-text:=EF=82=A7;
	mso-level-tab-stop:2.5in;
	mso-level-number-position:left;
	text-indent:-.25in;
	mso-ansi-font-size:10.0pt;
	font-family:Wingdings;}
@list l0:level6
	{mso-level-number-format:bullet;
	mso-level-text:=EF=82=A7;
	mso-level-tab-stop:3.0in;
	mso-level-number-position:left;
	text-indent:-.25in;
	mso-ansi-font-size:10.0pt;
	font-family:Wingdings;}
@list l0:level7
	{mso-level-number-format:bullet;
	mso-level-text:=EF=82=A7;
	mso-level-tab-stop:3.5in;
	mso-level-number-position:left;
	text-indent:-.25in;
	mso-ansi-font-size:10.0pt;
	font-family:Wingdings;}
@list l0:level8
	{mso-level-number-format:bullet;
	mso-level-text:=EF=82=A7;
	mso-level-tab-stop:4.0in;
	mso-level-number-position:left;
	text-indent:-.25in;
	mso-ansi-font-size:10.0pt;
	font-family:Wingdings;}
@list l0:level9
	{mso-level-number-format:bullet;
	mso-level-text:=EF=82=A7;
	mso-level-tab-stop:4.5in;
	mso-level-number-position:left;
	text-indent:-.25in;
	mso-ansi-font-size:10.0pt;
	font-family:Wingdings;}
@list l1
	{mso-list-id:517042790;
	mso-list-template-ids:605329408;}
@list l1:level1
	{mso-level-number-format:bullet;
	mso-level-text:=EF=82=B7;
	mso-level-tab-stop:.5in;
	mso-level-number-position:left;
	text-indent:-.25in;
	mso-ansi-font-size:10.0pt;
	font-family:Symbol;}
@list l1:level2
	{mso-level-number-format:bullet;
	mso-level-text:o;
	mso-level-tab-stop:1.0in;
	mso-level-number-position:left;
	text-indent:-.25in;
	mso-ansi-font-size:10.0pt;
	font-family:"Courier New";
	mso-bidi-font-family:"Times New Roman";}
@list l1:level3
	{mso-level-number-format:bullet;
	mso-level-text:=EF=82=A7;
	mso-level-tab-stop:1.5in;
	mso-level-number-position:left;
	text-indent:-.25in;
	mso-ansi-font-size:10.0pt;
	font-family:Wingdings;}
@list l1:level4
	{mso-level-number-format:bullet;
	mso-level-text:=EF=82=A7;
	mso-level-tab-stop:2.0in;
	mso-level-number-position:left;
	text-indent:-.25in;
	mso-ansi-font-size:10.0pt;
	font-family:Wingdings;}
@list l1:level5
	{mso-level-number-format:bullet;
	mso-level-text:=EF=82=A7;
	mso-level-tab-stop:2.5in;
	mso-level-number-position:left;
	text-indent:-.25in;
	mso-ansi-font-size:10.0pt;
	font-family:Wingdings;}
@list l1:level6
	{mso-level-number-format:bullet;
	mso-level-text:=EF=82=A7;
	mso-level-tab-stop:3.0in;
	mso-level-number-position:left;
	text-indent:-.25in;
	mso-ansi-font-size:10.0pt;
	font-family:Wingdings;}
@list l1:level7
	{mso-level-number-format:bullet;
	mso-level-text:=EF=82=A7;
	mso-level-tab-stop:3.5in;
	mso-level-number-position:left;
	text-indent:-.25in;
	mso-ansi-font-size:10.0pt;
	font-family:Wingdings;}
@list l1:level8
	{mso-level-number-format:bullet;
	mso-level-text:=EF=82=A7;
	mso-level-tab-stop:4.0in;
	mso-level-number-position:left;
	text-indent:-.25in;
	mso-ansi-font-size:10.0pt;
	font-family:Wingdings;}
@list l1:level9
	{mso-level-number-format:bullet;
	mso-level-text:=EF=82=A7;
	mso-level-tab-stop:4.5in;
	mso-level-number-position:left;
	text-indent:-.25in;
	mso-ansi-font-size:10.0pt;
	font-family:Wingdings;}
@list l2
	{mso-list-id:986592735;
	mso-list-template-ids:-895956692;}
@list l2:level1
	{mso-level-number-format:bullet;
	mso-level-text:=EF=82=B7;
	mso-level-tab-stop:.5in;
	mso-level-number-position:left;
	text-indent:-.25in;
	mso-ansi-font-size:10.0pt;
	font-family:Symbol;}
@list l2:level2
	{mso-level-number-format:bullet;
	mso-level-text:o;
	mso-level-tab-stop:1.0in;
	mso-level-number-position:left;
	text-indent:-.25in;
	mso-ansi-font-size:10.0pt;
	font-family:"Courier New";
	mso-bidi-font-family:"Times New Roman";}
@list l2:level3
	{mso-level-number-format:bullet;
	mso-level-text:=EF=82=A7;
	mso-level-tab-stop:1.5in;
	mso-level-number-position:left;
	text-indent:-.25in;
	mso-ansi-font-size:10.0pt;
	font-family:Wingdings;}
@list l2:level4
	{mso-level-number-format:bullet;
	mso-level-text:=EF=82=A7;
	mso-level-tab-stop:2.0in;
	mso-level-number-position:left;
	text-indent:-.25in;
	mso-ansi-font-size:10.0pt;
	font-family:Wingdings;}
@list l2:level5
	{mso-level-number-format:bullet;
	mso-level-text:=EF=82=A7;
	mso-level-tab-stop:2.5in;
	mso-level-number-position:left;
	text-indent:-.25in;
	mso-ansi-font-size:10.0pt;
	font-family:Wingdings;}
@list l2:level6
	{mso-level-number-format:bullet;
	mso-level-text:=EF=82=A7;
	mso-level-tab-stop:3.0in;
	mso-level-number-position:left;
	text-indent:-.25in;
	mso-ansi-font-size:10.0pt;
	font-family:Wingdings;}
@list l2:level7
	{mso-level-number-format:bullet;
	mso-level-text:=EF=82=A7;
	mso-level-tab-stop:3.5in;
	mso-level-number-position:left;
	text-indent:-.25in;
	mso-ansi-font-size:10.0pt;
	font-family:Wingdings;}
@list l2:level8
	{mso-level-number-format:bullet;
	mso-level-text:=EF=82=A7;
	mso-level-tab-stop:4.0in;
	mso-level-number-position:left;
	text-indent:-.25in;
	mso-ansi-font-size:10.0pt;
	font-family:Wingdings;}
@list l2:level9
	{mso-level-number-format:bullet;
	mso-level-text:=EF=82=A7;
	mso-level-tab-stop:4.5in;
	mso-level-number-position:left;
	text-indent:-.25in;
	mso-ansi-font-size:10.0pt;
	font-family:Wingdings;}
ol
	{margin-bottom:0in;}
ul
	{margin-bottom:0in;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]--></head><body lang=3DEN-US link=3Dblue =
vlink=3Dpurple><div class=3DWordSection1><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p><p class=3DMsoNormal><b>From:</b> =
CBOR &lt;cbor-bounces@ietf.org&gt; <b>On Behalf Of </b>Jeffrey =
Yasskin<br><b>Sent:</b> Sunday, November 24, 2019 2:49 AM<br><b>To:</b> =
Laurence Lundblade &lt;lgl@island-resort.com&gt;<br><b>Cc:</b> Jeffrey =
Yasskin &lt;jyasskin=3D40google.com@dmarc.ietf.org&gt;; Jeffrey Yasskin =
&lt;jyasskin@chromium.org&gt;; cbor@ietf.org<br><b>Subject:</b> Re: =
[Cbor] Handling duplicate map keys<o:p></o:p></p><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p><div><div><p =
class=3DMsoNormal>Comments inline:<o:p></o:p></p></div><div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p></div><div><p =
class=3DMsoNormal>On Sat, Nov 23, 2019 at 7:21 AM Laurence Lundblade =
&lt;<a =
href=3D"mailto:lgl@island-resort.com">lgl@island-resort.com</a>&gt; =
wrote:<o:p></o:p></p></div><div><blockquote =
style=3D'border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in =
6.0pt;margin-left:4.8pt;margin-right:0in'><div><div><blockquote =
style=3D'margin-top:5.0pt;margin-bottom:5.0pt'><div><p =
class=3DMsoNormal>On Nov 23, 2019, at 1:11 AM, Jeffrey Yasskin &lt;<a =
href=3D"mailto:jyasskin@chromium.org" =
target=3D"_blank">jyasskin@chromium.org</a>&gt; =
wrote:<o:p></o:p></p></div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p><div><div><div><p =
class=3DMsoNormal>On Sat, Nov 23, 2019 at 10:00 AM Laurence Lundblade =
&lt;<a href=3D"mailto:lgl@island-resort.com" =
target=3D"_blank">lgl@island-resort.com</a>&gt; =
wrote:<o:p></o:p></p></div><div><blockquote =
style=3D'border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in =
6.0pt;margin-top:5.0pt;margin-bottom:5.0pt;margin:0..8ex'><div><div><p =
class=3DMsoNormal>Here=E2=80=99s a rough proposed =
text:<o:p></o:p></p></div><div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p></div><blockquote =
style=3D'margin-left:30.0pt;margin-right:0in'><div><p =
class=3DMsoNormal>The protocol designer should make a choice for maps as =
to whether duplicates are allowed or not, particularly as to whether =
duplicates would cause security or functionality =
problems.<o:p></o:p></p></div><div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p></div><div><p =
class=3DMsoNormal>The protocol designer should only require duplicate =
detection when necessary as it can have the following =
implications:<o:p></o:p></p></div><div><ul type=3Ddisc><li =
class=3DMsoNormal =
style=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l1 =
level1 lfo1'>Some generic decoders do not support duplicate detection =
because the underlying facilities in their programming environment to =
represent maps can=E2=80=99t detect duplicates<o:p></o:p></li><li =
class=3DMsoNormal =
style=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l1 =
level1 lfo1'>Some generic decoders do not support duplicate detection =
because it requires more code and is not =
required<o:p></o:p></li></ul></div></blockquote></div></blockquote><block=
quote style=3D'border:none;border-left:solid #CCCCCC 1.0pt;padding:0in =
0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in'><div><blockquote =
style=3D'margin-left:30.0pt;margin-right:0in'><div><ul type=3Ddisc><li =
class=3DMsoNormal =
style=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l2 =
level1 lfo2'>It requires more resources to implement: 1) memory to store =
all the keys in the map, 2) more code, 3) more CPU time, as much as =
O(n^2).. This is particularly an issue with big maps in constrained =
environments.<o:p></o:p></li></ul></div><div><p class=3DMsoNormal>It is =
suggested that protocol designers require duplicate detection only no =
the particular maps for which there is an =
issue.<o:p></o:p></p></div><div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p></div><div><p =
class=3DMsoNormal>Decoders will typically fall into one of these =
categories:<o:p></o:p></p></div><div><ul type=3Ddisc><li =
class=3DMsoNormal =
style=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 =
level1 lfo3'>Full duplicate detection<o:p></o:p></li><li =
class=3DMsoNormal =
style=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 =
level1 lfo3'>Pass all items up to caller, allowing the caller to =
implement duplicate detection or not<o:p></o:p></li><li =
class=3DMsoNormal =
style=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 =
level1 lfo3'>No duplicate detection<o:p></o:p></li></ul></div><div><p =
class=3DMsoNormal>A generic decoder should identify which it is. Some =
may support more than one, selectable by =
configuration.<o:p></o:p></p></div></blockquote></div></blockquote><div><=
p class=3DMsoNormal><o:p>&nbsp;</o:p></p></div><div><p =
class=3DMsoNormal>I don't think generic decoders are relevant here. =
Protocol implementations often accumulate their input into a data =
structure even if they use a streaming decoder to read the input. Any =
such protocol can detect duplicates (of the keys it uses at all) for at =
most the cost of an extra bit per =
field.<o:p></o:p></p></div></div></div></div></blockquote><div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p></div><div><p =
class=3DMsoNormal>My intention was that =E2=80=9Cpass all items =
up=E2=80=9D covers your case.&nbsp;<o:p></o:p></p></div><div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p></div><div><p =
class=3DMsoNormal>My QCBOR + t_cose implementations work exactly as you =
describe to implement dup detection in COSE header parameters. =
It=E2=80=99s the data structures that hold the COSE header params that =
are used to detect the duplicates, not the generic decoder =
(QCBOR).&nbsp; This seems like a good way to handle this problem for =
lots of use =
cases.&nbsp;<o:p></o:p></p></div></div></div></blockquote><div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p></div><div><p =
class=3DMsoNormal>Yep, that's the model I'm thinking of. I'm clearly =
struggling to put it into understandable spec =
language.&nbsp;<o:p></o:p></p></div><blockquote =
style=3D'border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in =
6.0pt;margin-left:4.8pt;margin-right:0in'><div><blockquote =
style=3D'margin-top:5.0pt;margin-bottom:5.0pt'><div><div><div><p =
class=3DMsoNormal>I think you make a good point that if a protocol is =
going to specify &quot;take first&quot;, it can probably specify =
&quot;error on duplicate key&quot; for the same cost. That might imply =
some much simpler text:<o:p></o:p></p></div><div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p></div></div><blockquote =
style=3D'margin-left:30.0pt;margin-right:0in'><div><blockquote =
style=3D'border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in =
6.0pt;margin-left:4.8pt;margin-right:0in'><p =
class=3DMsoNormal>&quot;Protocols based on CBOR SHOULD fail with an =
error if a map contains a duplicate key, except that if the key isn't =
used at all, they MAY ignore it instead. Protocols that do not reject =
duplicate keys MUST (?) document why the cost of rejecting duplicates is =
too high and why accepting them will not lead to security =
vulnerabilities. An array might be a better choice for such =
protocols.=E2=80=9D<o:p></o:p></p></blockquote></div></blockquote></div><=
/blockquote><div><p class=3DMsoNormal><o:p>&nbsp;</o:p></p></div><div><p =
class=3DMsoNormal>I think I=E2=80=99d invert it and say that protocols =
that require duplicate detection for security reasons should describe =
that requirement in security considerations so the implementor gets a =
good solid hint that they need to worry about =
it.<o:p></o:p></p></div></div></blockquote><div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p></div><div><p =
class=3DMsoNormal>There's an interesting difference of approach here. =
It's plausible to say that protocol designers should pick the secure =
design only when they realize their design has security implications, =
but I prefer to say that they should pick the secure design unless they =
think about it and realize the design doesn't have security =
implications. I think the second will get us noticeably more security in =
a world where designers don't have time to think about every aspect of =
every piece of their design.<o:p></o:p></p><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p><p class=3DMsoNormal>[JLS]=C2=A0 =
It also gets fun in some other ways.=C2=A0 It might not matter for the =
protocol I am designing, because I always reflect back the input that I =
use to the client application.=C2=A0 That means it does not matter what =
the duplicate behavior is right up to the point in time where I decide =
that I am going to apply COSE to it.=C2=A0 I now have multiple potential =
behaviors that are required for the application<o:p></o:p></p><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p><p =
class=3DMsoNormal>Jim<o:p></o:p></p><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p></div><div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p></div><blockquote =
style=3D'border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in =
6.0pt;margin-left:4.8pt;margin-right:0in'><div><div><div><p =
class=3DMsoNormal>There is lot of text implying that duplicates are bad, =
but I think it would be worth being =
explicit.<o:p></o:p></p></div><div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p></div></div><blockquote =
style=3D'margin-left:30.0pt;margin-right:0in'><div><div><p =
class=3DMsoNormal>You are an idiot if you design a protocol that =
considers duplicate input valid or necessary. Duplicate map keys are =
always an error in CBOR and will not work with many generic =
decoders.<o:p></o:p></p></div></div></blockquote></div></blockquote><div>=
<p class=3DMsoNormal>&nbsp;<o:p></o:p></p></div><div><p =
class=3DMsoNormal>I wouldn't say &quot;idiot&quot;, just =
&quot;wrong&quot;. The spec already says you &quot;MUST NOT&quot; do =
this, but I'm not opposed to making that statement more =
direct.<o:p></o:p></p></div><div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p></div><div><p =
class=3DMsoNormal>Thanks,<br>Jeffrey<o:p></o:p></p></div></div></div></di=
v></body></html>
------=_NextPart_000_052E_01D5A306.C08FABB0--


From nobody Mon Nov 25 15:57:27 2019
Return-Path: <mcr@sandelman.ca>
X-Original-To: cbor@ietfa.amsl.com
Delivered-To: cbor@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 74E2B120CDB for <cbor@ietfa.amsl.com>; Mon, 25 Nov 2019 15:57:25 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 2.484
X-Spam-Level: **
X-Spam-Status: No, score=2.484 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DATE_IN_PAST_12_24=1.049, RCVD_IN_SBL_CSS=3.335, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=no autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id tNKl2NbT3ZAa for <cbor@ietfa.amsl.com>; Mon, 25 Nov 2019 15:57:24 -0800 (PST)
Received: from relay.sandelman.ca (relay.cooperix.net [IPv6:2a01:7e00::f03c:91ff:feae:de77]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 602C6120FC8 for <cbor@ietf.org>; Mon, 25 Nov 2019 15:57:24 -0800 (PST)
Received: from dooku.sandelman.ca (unknown [194.42.227.53]) by relay.sandelman.ca (Postfix) with ESMTPS id CB60B1F480 for <cbor@ietf.org>; Mon, 25 Nov 2019 23:57:21 +0000 (UTC)
Received: by dooku.sandelman.ca (Postfix, from userid 179) id 055311376; Mon, 25 Nov 2019 16:02:30 +0800 (+08)
From: Michael Richardson <mcr+ietf@sandelman.ca>
To: cbor@ietf.org
In-reply-to: <F81E1A57-6072-44FA-A148-8F3ED7520791@island-resort.com>
References: <CANh-dX=EVDa4EwrgWKof4kCD3nkfV3BvH0Cg5ZKOivmXJ_Dm8g@mail.gmail.com> <E5C74E1F-A5F4-4AB8-9787-3999C4697C3B@island-resort.com> <CANh-dX=1gkAtfSG-yzCsVAkk=oLM-=dN_JLCr1kQK3d6Jb0fSw@mail.gmail.com> <F81E1A57-6072-44FA-A148-8F3ED7520791@island-resort.com>
Comments: In-reply-to Laurence Lundblade <lgl@island-resort.com> message dated "Sat, 23 Nov 2019 07:21:49 -0800."
X-Mailer: MH-E 8.6; nmh 1.6; GNU Emacs 24.5.1
MIME-Version: 1.0
Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature"
Date: Mon, 25 Nov 2019 09:02:30 +0100
Message-ID: <32467.1574668950@dooku.sandelman.ca>
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/WJODOQCTEjixqcX7RbBIROt6Hng>
Subject: Re: [Cbor] Handling duplicate map keys
X-BeenThere: cbor@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Concise Binary Object Representation \(CBOR\)" <cbor.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cbor>, <mailto:cbor-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cbor/>
List-Post: <mailto:cbor@ietf.org>
List-Help: <mailto:cbor-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cbor>, <mailto:cbor-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 25 Nov 2019 23:57:25 -0000

--=-=-=
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable


Laurence Lundblade <lgl@island-resort.com> wrote:
    > My intention was that =E2=80=9Cpass all items up=E2=80=9D covers your=
 case.

python, ruby, lua, java, etc. dictionaries can not "pass all items up"
The reason why JSON is so successful is because it maps into native
dictionaries (maps) trivially.

In order to pass things up, a different structure will be necessary,
at which point many developers and protocol designers will see no value in
CBOR over a bespoke binary encoding.

It is this refusal to define a specific algorithm for dealing with duplicat=
es
that is leading to security issues.  It's not the duplicates themselves that
is the problem, it is the ambiguity.

I am less afraid to declare an answer and make some decoders non-compliant.
I think that they will get fixed.

=2D-
Michael Richardson <mcr+IETF@sandelman.ca>, Sandelman Software Works
 -=3D IPv6 IoT consulting =3D-




--=-=-=
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEERK+9HEcJHTJ9UqTMlUzhVv38QpAFAl3bipUACgkQlUzhVv38
QpB/rAf/aC0rpBLoFcf35HFj5LfCgb+LPyTSToQr462pMN1jOh0mwzda6r5CLUed
P0UdaP6h8YoCx1lpjFBGaGKfnV0QmQMhqY6nSrfAjPIsPFvmrIP2ZxPCKS1SfWbH
xvol72oMKqHjfaGcLPDb/L1izulVtuI0kJZGItm5A3+r57SgvT57zv14IuG3eaJl
5TNcT+gc0n6DrbvMVVbtvpyeP7gXV+QPndeaxMRrIZFnbXpT3uJoLgLmYfvfxCVu
NiPVBHXzmgc/Y8JhgU4nCuP3MJy5YEbWamWQ6qZyWaUePDy724MhWDO6ru7h8L6a
fc4NZ3Ow1TMB+8MIoy/9Ar6TgjR4Wg==
=z6T0
-----END PGP SIGNATURE-----
--=-=-=--


From nobody Mon Nov 25 17:36:33 2019
Return-Path: <lgl@island-resort.com>
X-Original-To: cbor@ietfa.amsl.com
Delivered-To: cbor@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C594C120F9C for <cbor@ietfa.amsl.com>; Mon, 25 Nov 2019 17:36:31 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.897
X-Spam-Level: 
X-Spam-Status: No, score=-1.897 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Hnj9oh2ljafY for <cbor@ietfa.amsl.com>; Mon, 25 Nov 2019 17:36:30 -0800 (PST)
Received: from p3plsmtpa06-03.prod.phx3.secureserver.net (p3plsmtpa06-03.prod.phx3.secureserver.net [173.201.192.104]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 5FE7B12006F for <cbor@ietf.org>; Mon, 25 Nov 2019 17:36:30 -0800 (PST)
Received: from [192.168.1.80] ([76.167.193.86]) by :SMTPAUTH: with ESMTPA id ZPmHi6i921oMRZPmHiPTdT; Mon, 25 Nov 2019 18:36:29 -0700
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 11.5 \(3445.9.1\))
From: Laurence Lundblade <lgl@island-resort.com>
In-Reply-To: <32467.1574668950@dooku.sandelman.ca>
Date: Mon, 25 Nov 2019 17:36:28 -0800
Cc: cbor@ietf.org
Content-Transfer-Encoding: quoted-printable
Message-Id: <0A1548F5-98A0-46AB-8CDA-991F83AB2DD8@island-resort.com>
References: <CANh-dX=EVDa4EwrgWKof4kCD3nkfV3BvH0Cg5ZKOivmXJ_Dm8g@mail.gmail.com> <E5C74E1F-A5F4-4AB8-9787-3999C4697C3B@island-resort.com> <CANh-dX=1gkAtfSG-yzCsVAkk=oLM-=dN_JLCr1kQK3d6Jb0fSw@mail.gmail.com> <F81E1A57-6072-44FA-A148-8F3ED7520791@island-resort.com> <32467.1574668950@dooku.sandelman.ca>
To: Michael Richardson <mcr+ietf@sandelman.ca>
X-Mailer: Apple Mail (2.3445.9.1)
X-CMAE-Envelope: MS4wfBmJVtEnv7IenvwWO/1TwHE4cjZj1St0uZ1K9eyyZCkvJQJoU/vSiGgC9wTenlubyEY2djayg4rqqUQwcd6HODWhyNw6wEnYePmzygLxK23CqeqdZqhv lfFIjTg5TkYULjG9IimQ6RS9w443+i7LirB93CNDh8zOT58BTE0UGtVWOMG4uUQSfvmurRj9IQdh0DWUoN1ghQYZUMpwUcVcVfM=
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/p-XXOUrf1biflqQJY6_N9Ub9mEM>
Subject: Re: [Cbor] Handling duplicate map keys
X-BeenThere: cbor@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Concise Binary Object Representation \(CBOR\)" <cbor.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cbor>, <mailto:cbor-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cbor/>
List-Post: <mailto:cbor@ietf.org>
List-Help: <mailto:cbor-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cbor>, <mailto:cbor-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 26 Nov 2019 01:36:32 -0000

Hi Michael

> On Nov 25, 2019, at 12:02 AM, Michael Richardson =
<mcr+ietf@sandelman.ca> wrote:
>=20
>=20
> Laurence Lundblade <lgl@island-resort.com> wrote:
>> My intention was that =E2=80=9Cpass all items up=E2=80=9D covers your =
case.
>=20
> python, ruby, lua, java, etc. dictionaries can not "pass all items up"
> The reason why JSON is so successful is because it maps into native
> dictionaries (maps) trivially.

Yes, they fall into one of the other two categories:
- They do duplicate checking and return an error
- They return no error and are either take first, take last or take =
random

>=20
> In order to pass things up, a different structure will be necessary,
> at which point many developers and protocol designers will see no =
value in
> CBOR over a bespoke binary encoding.
>=20
> It is this refusal to define a specific algorithm for dealing with =
duplicates
> that is leading to security issues.  It's not the duplicates =
themselves that
> is the problem, it is the ambiguity.
>=20
> I am less afraid to declare an answer and make some decoders =
non-compliant.
> I think that they will get fixed.

I would hope fix them means that they will error out when a duplicate is =
detected.

It probably doesn=E2=80=99t cost any more than take first and is the =
more clear, clean and secure thing to do IMO.

Seems like it will be easier to get agreement on that behavior than take =
first. Also, there will always be some implementations that error out. =
We can=E2=80=99t get them all to do take first.

LL


From nobody Tue Nov 26 06:37:24 2019
Return-Path: <francesca.palombini@ericsson.com>
X-Original-To: cbor@ietfa.amsl.com
Delivered-To: cbor@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 20763120882; Tue, 26 Nov 2019 06:37:22 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level: 
X-Spam-Status: No, score=-2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9,  DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=ericsson.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id AAWZJcx7sRjL; Tue, 26 Nov 2019 06:37:20 -0800 (PST)
Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-eopbgr70041.outbound.protection.outlook.com [40.107.7.41]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D1D6C12081E; Tue, 26 Nov 2019 06:37:19 -0800 (PST)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VLIKxHVAneEDZU6Z//+tcWUb0tMTsphIlrOwr1dcdLwhwGrmpIxfQZlDrfBJyn9hDVnBGkvY421tqITcxhlcUgJqy/qCoucHuu6NtGaJevfjO3tgHGpRocf9wEtJZYlWodQMXR4Pq/tzEFFZDbkUibaYv69/1p4NLwLgM7GPdmmVTLCBKjv02LCm1FBAqJzNetE7DprHOT1NzRZEygUADKYSWnZVehce42ajXYQpAXDbt+zEA3h7ObbgOxFNPWVVtIpJypKk7E88jnJsGMakquCIA+rJjD7Mroz5tVj1txWoEKHOX46N2qKsDbTp8bL/Bwgiwl4gvGiLAkejIuWQOA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;  s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=/hNs47hiYpc5TMRJ1fjfOWoA/zM7s2oinAUA04rDuwo=; b=NoT200+RXmSp78nv8zNMOvTiY+Z6+rKDCu9Y304lCo2gumFudgyOZ0WjwGmbA2xqm3uuetc5/wKMugpeTbKeRnZNDE+CFnsSH3MhbvbMLzTTeviwweUKzb99/Ew1w1S9HqHfr0nYpfIlF46GuG2b/BYFb0JuJMRB6vkrM7e6WvI8k1nDytyYup905YQHOuvumgG+StlLl/whfQDxMDLkg+W4an+x1XHLi8X5N/i4meh53Zp/fFvNl2SPQHoCxFabqC/aHkqvBYsIc/pfvefbDovYRWzyj4GxRJ2jqtPzR2XcI2KXWuGjdhndtZoaCwfV4YoZC2tOc7VAIY5AaAlF5Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=ericsson.com; dmarc=pass action=none header.from=ericsson.com; dkim=pass header.d=ericsson.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ericsson.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=/hNs47hiYpc5TMRJ1fjfOWoA/zM7s2oinAUA04rDuwo=; b=UuhLUz1Zbwwqmby4AJ69LWvGq1ZLtsIQ5qv4GNt152Z/zgC5UHczUY2qGIUols2D/TjpuDEDPUxQKtAcKQWdD+PmR94zU2auIhTQrZuubhTTozOJURTds3uDI0GDtEC8FpJ2rW06q1pehV2fx6gQ0ZVjdP7oKTeNadA2QL7lic8=
Received: from AM0PR07MB5460.eurprd07.prod.outlook.com (20.178.22.87) by AM0PR07MB5828.eurprd07.prod.outlook.com (20.178.114.87) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2495.10; Tue, 26 Nov 2019 14:37:17 +0000
Received: from AM0PR07MB5460.eurprd07.prod.outlook.com ([fe80::95b8:d2ab:36fc:a1cc]) by AM0PR07MB5460.eurprd07.prod.outlook.com ([fe80::95b8:d2ab:36fc:a1cc%6]) with mapi id 15.20.2495.014; Tue, 26 Nov 2019 14:37:17 +0000
From: Francesca Palombini <francesca.palombini@ericsson.com>
To: "cbor@ietf.org" <cbor@ietf.org>
CC: "cbor-chairs@ietf.org" <cbor-chairs@ietf.org>
Thread-Topic: IETF 106 minutes
Thread-Index: AQHVpGcAEtuJJ7VknEGtSjlKtfoGdQ==
Date: Tue, 26 Nov 2019 14:37:17 +0000
Message-ID: <C3908D18-9BBE-4E2A-A578-A9678FE4B372@ericsson.com>
Accept-Language: en-GB, en-US
Content-Language: en-GB
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: spf=none (sender IP is ) smtp.mailfrom=francesca.palombini@ericsson.com; 
x-originating-ip: [192.176.1.84]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 5d83b79f-47a4-4fcd-e001-08d7727e2306
x-ms-traffictypediagnostic: AM0PR07MB5828:
x-microsoft-antispam-prvs: <AM0PR07MB58289E17886BA459774169B698450@AM0PR07MB5828.eurprd07.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-forefront-prvs: 0233768B38
x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(376002)(346002)(39860400002)(366004)(136003)(396003)(199004)(189003)(186003)(26005)(9326002)(2616005)(44832011)(8936002)(2906002)(7736002)(6506007)(102836004)(6436002)(6486002)(4326008)(5640700003)(6306002)(54896002)(6512007)(86362001)(450100002)(236005)(25786009)(71200400001)(1730700003)(2351001)(66476007)(5660300002)(4744005)(2501003)(66946007)(66446008)(478600001)(966005)(76116006)(91956017)(7116003)(14454004)(66556008)(64756008)(33656002)(3846002)(99286004)(6116002)(8676002)(81166006)(81156014)(316002)(66066001)(36756003)(606006)(71190400001)(256004)(6916009); DIR:OUT; SFP:1101; SCL:1; SRVR:AM0PR07MB5828; H:AM0PR07MB5460.eurprd07.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; 
received-spf: None (protection.outlook.com: ericsson.com does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: H4UEVw6/CP1tDpXbbu2InNR96n2RbarwEHe6k/Jv9zKjRaIyMQJIZvMBzSHKKkxtn1bF5nRNv8+5jZq4Fy4xMyeIF6Pk/iMhmx9sevfJASRqAFhUUzp2tVruqMAO95W96Xv0t9rSiWtyI+DRkyzBfdTOklSTM1pOZd10Pbp6ExQXADmj6CeGAaIbrE4LE+Gkp3QR/GkYpjYw140s7TX0rwztCTzYqA2YcLoAEQ2u6wmjZFL7Y9iTlPvJEpZNzDChJG7OYKqHLODouulhZRqqh6NovOz4pHlSL0ukj++WSvvShbRpp2RCi26a3KXzrm4PY3esr4NwtQe+fPAjlJl2fctf82aK8qUc0CPUm0ru4J0biuRQdlCLQ2DB6RtmhHrpOlgX49onGpd5BckT1foD7McZRsWSEmBNjjazN+FFnk7zJpiqr2YuRi10diSnbHq82TEOQoG0C1HGsrfg5K2aimvw8sBFebTqAv/mgSpSPQE=
x-ms-exchange-transport-forked: True
Content-Type: multipart/alternative; boundary="_000_C3908D189BBE4E2AA578A9678FE4B372ericssoncom_"
MIME-Version: 1.0
X-OriginatorOrg: ericsson.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5d83b79f-47a4-4fcd-e001-08d7727e2306
X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Nov 2019 14:37:17.4823 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 92e84ceb-fbfd-47ab-be52-080c6b87953f
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: gzxEUKvigXbyEGCtJvtxAPArgN877cKZaTTu6gDPWdz2bmeDTRee56PjdXX60kugEuBY9YPT8rjFEWks+UAZVNUfPFYFoVOBzfGM4JAfirhsm8XnY6luG7MqY2+kAZVr
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR07MB5828
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/_scDA8FMKa7QABymXb1JF9UZ6XI>
Subject: [Cbor] IETF 106 minutes
X-BeenThere: cbor@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Concise Binary Object Representation \(CBOR\)" <cbor.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cbor>, <mailto:cbor-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cbor/>
List-Post: <mailto:cbor@ietf.org>
List-Help: <mailto:cbor-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cbor>, <mailto:cbor-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 26 Nov 2019 14:37:22 -0000

--_000_C3908D189BBE4E2AA578A9678FE4B372ericssoncom_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

SGksDQoNCkhlcmUgYXJlIHRoZSBtaW51dGVzIGZyb20gSUVURiAxMDYuIFRoYW5rIHlvdSBNaWNo
YWVsIGZvciBjYXB0dXJpbmcgdGhlIGRpc2N1c3Npb24hDQoNCmh0dHBzOi8vZGF0YXRyYWNrZXIu
aWV0Zi5vcmcvbWVldGluZy8xMDYvbWF0ZXJpYWxzL21pbnV0ZXMtMTA2LWNib3ItMDANCg0KVGhl
IG1pbnV0ZXMgY29udGFpbiBhIGxpbmsgdG8gdGhlIHlvdXR1YmUgcmVjb3JkaW5nOg0KDQpodHRw
czovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PTNsSlo0ZFp1YVBBDQoNClBsZWFzZSBsZXQgdGhl
IGNoYWlycyBrbm93IGlmIHlvdXIgY29tbWVudCB3YXMgbm90IGNhcHR1cmVkIGNvcnJlY3RseSBh
bmQgbmVlZHMgdG8gYmUgYW1lbmRlZC4NCg0KVGhhbmtzLA0KRnJhbmNlc2NhDQo=

--_000_C3908D189BBE4E2AA578A9678FE4B372ericssoncom_
Content-Type: text/html; charset="utf-8"
Content-ID: <9153DB4144A36643B34F1D62B28F5466@eurprd07.prod.outlook.com>
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6bz0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6b2ZmaWNlIiB4
bWxuczp3PSJ1cm46c2NoZW1hcy1taWNyb3NvZnQtY29tOm9mZmljZTp3b3JkIiB4bWxuczptPSJo
dHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS8yMDA0LzEyL29tbWwiIHhtbG5zPSJo
dHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwIj4NCjxoZWFkPg0KPG1ldGEgaHR0cC1lcXVp
dj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPg0KPG1l
dGEgbmFtZT0iR2VuZXJhdG9yIiBjb250ZW50PSJNaWNyb3NvZnQgV29yZCAxNSAoZmlsdGVyZWQg
bWVkaXVtKSI+DQo8c3R5bGU+PCEtLQ0KLyogRm9udCBEZWZpbml0aW9ucyAqLw0KQGZvbnQtZmFj
ZQ0KCXtmb250LWZhbWlseToiQ2FtYnJpYSBNYXRoIjsNCglwYW5vc2UtMToyIDQgNSAzIDUgNCA2
IDMgMiA0O30NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6Q2FsaWJyaTsNCglwYW5vc2UtMToy
IDE1IDUgMiAyIDIgNCAzIDIgNDt9DQovKiBTdHlsZSBEZWZpbml0aW9ucyAqLw0KcC5Nc29Ob3Jt
YWwsIGxpLk1zb05vcm1hbCwgZGl2Lk1zb05vcm1hbA0KCXttYXJnaW46MGNtOw0KCW1hcmdpbi1i
b3R0b206LjAwMDFwdDsNCglmb250LXNpemU6MTIuMHB0Ow0KCWZvbnQtZmFtaWx5OiJDYWxpYnJp
IixzYW5zLXNlcmlmOw0KCW1zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTO30NCmE6bGluaywgc3Bh
bi5Nc29IeXBlcmxpbmsNCgl7bXNvLXN0eWxlLXByaW9yaXR5Ojk5Ow0KCWNvbG9yOiMwNTYzQzE7
DQoJdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9DQphOnZpc2l0ZWQsIHNwYW4uTXNvSHlwZXJs
aW5rRm9sbG93ZWQNCgl7bXNvLXN0eWxlLXByaW9yaXR5Ojk5Ow0KCWNvbG9yOiM5NTRGNzI7DQoJ
dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9DQpzcGFuLkVtYWlsU3R5bGUxNw0KCXttc28tc3R5
bGUtdHlwZTpwZXJzb25hbC1jb21wb3NlOw0KCWZvbnQtZmFtaWx5OiJDYWxpYnJpIixzYW5zLXNl
cmlmOw0KCWNvbG9yOndpbmRvd3RleHQ7fQ0KLk1zb0NocERlZmF1bHQNCgl7bXNvLXN0eWxlLXR5
cGU6ZXhwb3J0LW9ubHk7DQoJZm9udC1mYW1pbHk6IkNhbGlicmkiLHNhbnMtc2VyaWY7DQoJbXNv
LWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVM7fQ0KQHBhZ2UgV29yZFNlY3Rpb24xDQoJe3NpemU6NjEy
LjBwdCA3OTIuMHB0Ow0KCW1hcmdpbjo3Mi4wcHQgNzIuMHB0IDcyLjBwdCA3Mi4wcHQ7fQ0KZGl2
LldvcmRTZWN0aW9uMQ0KCXtwYWdlOldvcmRTZWN0aW9uMTt9DQotLT48L3N0eWxlPg0KPC9oZWFk
Pg0KPGJvZHkgbGFuZz0iRU4tR0IiIGxpbms9IiMwNTYzQzEiIHZsaW5rPSIjOTU0RjcyIj4NCjxk
aXYgY2xhc3M9IldvcmRTZWN0aW9uMSI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5n
PSJTViIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQiPkhpLDxvOnA+PC9vOnA+PC9zcGFuPjwvcD4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IlNWIiBzdHlsZT0iZm9udC1zaXplOjEx
LjBwdCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQiPkhlcmUgYXJlIHRoZSBtaW51dGVzIGZyb20g
SUVURiAxMDYuIFRoYW5rIHlvdSBNaWNoYWVsIGZvciBjYXB0dXJpbmcgdGhlIGRpc2N1c3Npb24h
PGJyPg0KPGJyPg0KPC9zcGFuPjxhIGhyZWY9Imh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcv
bWVldGluZy8xMDYvbWF0ZXJpYWxzL21pbnV0ZXMtMTA2LWNib3ItMDAiPmh0dHBzOi8vZGF0YXRy
YWNrZXIuaWV0Zi5vcmcvbWVldGluZy8xMDYvbWF0ZXJpYWxzL21pbnV0ZXMtMTA2LWNib3ItMDA8
L2E+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9u
dC1zaXplOjExLjBwdCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQiPlRoZSBtaW51dGVzIGNvbnRh
aW4gYSBsaW5rIHRvIHRoZSB5b3V0dWJlIHJlY29yZGluZzoNCjxvOnA+PC9vOnA+PC9zcGFuPjwv
cD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0Ij48
bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48YSBocmVm
PSJodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PTNsSlo0ZFp1YVBBIj5odHRwczovL3d3
dy55b3V0dWJlLmNvbS93YXRjaD92PTNsSlo0ZFp1YVBBPC9hPjxvOnA+PC9vOnA+PC9wPg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQiPjxvOnA+Jm5i
c3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJm
b250LXNpemU6MTEuMHB0Ij5QbGVhc2UgbGV0IHRoZSBjaGFpcnMga25vdyBpZiB5b3VyIGNvbW1l
bnQgd2FzIG5vdCBjYXB0dXJlZCBjb3JyZWN0bHkgYW5kIG5lZWRzIHRvIGJlIGFtZW5kZWQuPGJy
Pg0KPGJyPg0KVGhhbmtzLDxicj4NCkZyYW5jZXNjYTxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwv
ZGl2Pg0KPC9ib2R5Pg0KPC9odG1sPg0K

--_000_C3908D189BBE4E2AA578A9678FE4B372ericssoncom_--


From nobody Thu Nov 28 08:36:08 2019
Return-Path: <worley@alum.mit.edu>
X-Original-To: cbor@ietfa.amsl.com
Delivered-To: cbor@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id B3261120859 for <cbor@ietfa.amsl.com>; Thu, 28 Nov 2019 08:36:06 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.284
X-Spam-Level: 
X-Spam-Status: No, score=-0.284 tagged_above=-999 required=5 tests=[BAYES_05=-0.5, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.25, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_SOFTFAIL=0.665] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=comcastmailservice.net
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id XmmpRzRtvXPR for <cbor@ietfa.amsl.com>; Thu, 28 Nov 2019 08:36:05 -0800 (PST)
Received: from resqmta-ch2-08v.sys.comcast.net (resqmta-ch2-08v.sys.comcast.net [IPv6:2001:558:fe21:29:69:252:207:40]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 2E4A412089E for <cbor@ietf.org>; Thu, 28 Nov 2019 08:36:04 -0800 (PST)
Received: from resomta-ch2-05v.sys.comcast.net ([69.252.207.101]) by resqmta-ch2-08v.sys.comcast.net with ESMTP id aMk5iVgOJ7jwaaMlwiNCfV; Thu, 28 Nov 2019 16:36:04 +0000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=comcastmailservice.net; s=20180828_2048; t=1574958964; bh=5yYQK9QG/WonaU/1HjtB1FQ0hsj5fKcVQfQntRFOY5M=; h=Received:Received:Received:Received:From:To:Subject:Date: Message-ID; b=HxzBJesavJZoXjLv+aPMz2afUt8hO6wf+TpfKJbI4/0M3oogLMKpc0kxzkC6GYDDx kDsJK+f7nVrYnvdYKhmBUQTrP8zIxoZ4AayqfZ3QvCBEhFg06qg7KNM37DskmLpKvU U+M3ct0Qj6F3KKuqzQBwsDV9N8y+2UDiNnxj9fOEXqSj0yQoCl3A94tR4VSmRMaUFZ 8Tfi351Poura58LfUFVmr7RZHjkRj8twN8EmgRN2s7ksS+GTCIzP3BTiyWq3RR7jdi fFH+PT2QrpvpB219H7lQENQNQz9HQz0nXgr8MYDJ27Ip+1rGP5sDlmoKKWXfr9YukR Tj6d+HP/vA1BA==
Received: from hobgoblin.ariadne.com ([173.23.6.42]) by resomta-ch2-05v.sys.comcast.net with ESMTPA id aMloiulinkg1MaMlpi7GIE; Thu, 28 Nov 2019 16:36:02 +0000
X-Xfinity-VAAS: gggruggvucftvghtrhhoucdtuddrgedufedrudeijedgkeekucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuvehomhgtrghsthdqtfgvshhipdfqfgfvpdfpqffurfetoffkrfenuceurghilhhouhhtmecufedttdenucenucfjughrpefhvffushestddttddttddttdenucfhrhhomhepfihorhhlvgihsegrrhhirggunhgvrdgtohhmucdlffgrlhgvucftrdcuhghorhhlvgihmdenucfkphepudejfedrvdefrdeirdegvdenucfrrghrrghmpehhvghlohephhhosghgohgslhhinhdrrghrihgrughnvgdrtghomhdpihhnvghtpedujeefrddvfedriedrgedvpdhmrghilhhfrhhomhepfihorhhlvgihsegrlhhumhdrmhhithdrvgguuhdprhgtphhtthhopegtsghorhesihgvthhfrdhorhhgnecuvehluhhsthgvrhfuihiivgeptd
X-Xfinity-VMeta: sc=0.00;st=legit
Received: from hobgoblin.ariadne.com (hobgoblin.ariadne.com [127.0.0.1]) by hobgoblin.ariadne.com (8.14.7/8.14.7) with ESMTP id xASGZubp027384 for <cbor@ietf.org>; Thu, 28 Nov 2019 11:35:56 -0500
Received: (from worley@localhost) by hobgoblin.ariadne.com (8.14.7/8.14.7/Submit) id xASGZuIh027381; Thu, 28 Nov 2019 11:35:56 -0500
X-Authentication-Warning: hobgoblin.ariadne.com: worley set sender to worley@alum.mit.edu using -f
From: worley@ariadne.com (Dale R. Worley)
To: cbor@ietf.org
Sender: worley@ariadne.com (Dale R. Worley)
Date: Thu, 28 Nov 2019 11:35:55 -0500
Message-ID: <87k17k3qms.fsf@hobgoblin.ariadne.com>
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/w0Wpydtl_TqDefQqzlab2B0EMKQ>
Subject: [Cbor] Magic number
X-BeenThere: cbor@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Concise Binary Object Representation \(CBOR\)" <cbor.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cbor>, <mailto:cbor-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cbor/>
List-Post: <mailto:cbor@ietf.org>
List-Help: <mailto:cbor-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cbor>, <mailto:cbor-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 28 Nov 2019 16:36:07 -0000

This is a small thing, and perhaps its been settled, but I couldn't find
anything in the archives about it:  The media type registration for
application/cbor in RFC 7049 says that there's no magic number for CBOR.
But section 2.4.5 defines a CBOR tag that whose purpose is to implement
a magic number, 0xd9_d9_f7.  And this is carried forward into
7049bis-09.  It seems to me that the registration should be corrected.

Dale


From nobody Thu Nov 28 08:56:42 2019
Return-Path: <cabo@tzi.org>
X-Original-To: cbor@ietfa.amsl.com
Delivered-To: cbor@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D96DE120885 for <cbor@ietfa.amsl.com>; Thu, 28 Nov 2019 08:56:40 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.199
X-Spam-Level: 
X-Spam-Status: No, score=-4.199 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id rUu6LLSE1KFH for <cbor@ietfa.amsl.com>; Thu, 28 Nov 2019 08:56:39 -0800 (PST)
Received: from gabriel-vm-2.zfn.uni-bremen.de (gabriel-vm-2.zfn.uni-bremen.de [134.102.50.17]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C8B3412085C for <cbor@ietf.org>; Thu, 28 Nov 2019 08:56:38 -0800 (PST)
Received: from client-0012.vpn.uni-bremen.de (client-0012.vpn.uni-bremen.de [134.102.107.12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by gabriel-vm-2.zfn.uni-bremen.de (Postfix) with ESMTPSA id 47P3h50B2Fzym8; Thu, 28 Nov 2019 17:56:36 +0100 (CET)
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 11.5 \(3445.9.1\))
From: Carsten Bormann <cabo@tzi.org>
In-Reply-To: <87k17k3qms.fsf@hobgoblin.ariadne.com>
Date: Thu, 28 Nov 2019 17:56:37 +0100
Cc: cbor@ietf.org
X-Mao-Original-Outgoing-Id: 596652932.0968421-6d1d80a021a6473b90c9ad17cdb41263
Content-Transfer-Encoding: quoted-printable
Message-Id: <953945BD-E435-4DDA-BC0A-EE7A8C4C36C6@tzi.org>
References: <87k17k3qms.fsf@hobgoblin.ariadne.com>
To: "Dale R. Worley" <worley@ariadne.com>
X-Mailer: Apple Mail (2.3445.9.1)
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/R4RzZanzEDOH4_nwVy4WD5jZT-0>
Subject: Re: [Cbor] Magic number
X-BeenThere: cbor@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Concise Binary Object Representation \(CBOR\)" <cbor.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cbor>, <mailto:cbor-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cbor/>
List-Post: <mailto:cbor@ietf.org>
List-Help: <mailto:cbor-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cbor>, <mailto:cbor-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 28 Nov 2019 16:56:41 -0000

Hi Dale,

On Nov 28, 2019, at 17:35, Dale R. Worley <worley@ariadne.com> wrote:
>=20
> This is a small thing, and perhaps its been settled, but I couldn't =
find
> anything in the archives about it:  The media type registration for
> application/cbor in RFC 7049 says that there's no magic number for =
CBOR.
> But section 2.4.5 defines a CBOR tag that whose purpose is to =
implement
> a magic number, 0xd9_d9_f7.  And this is carried forward into
> 7049bis-09.  It seems to me that the registration should be corrected.

Good point.
However, not all CBOR carries this magic number.
With the tag, you can have that magic number if you like.
(Actually, you can register your own tag to have your own magic number, =
too; see for example the =E2=80=9CRAINS=E2=80=9D tag 15309736 which =
happens to pop up a =E9=9B=A8 [rain] character at the start of the data =
item.)

I don=E2=80=99t know if there is a way to say that =E2=80=9Cthere is an =
optional magic number defined that can be used by applications that want =
to use it=E2=80=9D in a media type registration.

So far, not a lot of applications have picked up using the 55799 magic =
number.

Gr=C3=BC=C3=9Fe, Carsten

