
From nobody Fri May  1 03:43:36 2015
Return-Path: <barryleiba.mailing.lists@gmail.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 8AAE91AD0A7 for <core@ietfa.amsl.com>; Fri,  1 May 2015 03:43:34 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.278
X-Spam-Level: 
X-Spam-Status: No, score=-1.278 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622, FREEMAIL_FROM=0.001, SPF_PASS=-0.001] autolearn=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 VBj9ZVucN2rc for <core@ietfa.amsl.com>; Fri,  1 May 2015 03:43:33 -0700 (PDT)
Received: from mail-ie0-x233.google.com (mail-ie0-x233.google.com [IPv6:2607:f8b0:4001:c03::233]) (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 8A2F71AC3D7 for <core@ietf.org>; Fri,  1 May 2015 03:43:33 -0700 (PDT)
Received: by iecrt8 with SMTP id rt8so86580264iec.0 for <core@ietf.org>; Fri, 01 May 2015 03:43:33 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;  h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc:content-type; bh=qY5zylzQajtHnZPRRy/K6r0ZbJFhd4IjgDQ3wPclRpw=; b=G2nVwPan4SX0voFr4EwII+I3l4Onki62ht1koUVlkzAl3gSBIpIeNvjwIq4QZRhD3S qmUcS2ptO2v4ngglPs0hugD8HDt0kR4oCTrkSkj3SxKvvVtqZuRB+VAro5DXGqkrp8Sn E08IqNVbmckR02E/Fc4w4k+yGZ59WuFso5riV31qQ/fWAOV+cOTkXszopFBcjre+gHr4 PpEHhaqagRZLLBCtP16r+eoh3FT1OAefZDZwMGRDLodlyuvKh5pm0ywL0rUrOlyF1IqM bdzLZcrlNLh6UW1VnxZ249O5xq6xTkKEXQOo28MM70ylKdFGUkC5LOmuYh7CABsFNL4D 0H6A==
MIME-Version: 1.0
X-Received: by 10.43.66.131 with SMTP id xq3mr14547672icb.9.1430477012975; Fri, 01 May 2015 03:43:32 -0700 (PDT)
Sender: barryleiba.mailing.lists@gmail.com
Received: by 10.107.156.1 with HTTP; Fri, 1 May 2015 03:43:32 -0700 (PDT)
In-Reply-To: <5530A958.9080702@tzi.org>
References: <CAC4RtVA5eC4xuyGn-MVvE__+ztqB3btUvMcWTu3a3qrSA+hzCA@mail.gmail.com> <CAAzbHvYVVZDMS=_nnGmRkxKHa49UGdGtVEjy_UNmNL6PvagGbQ@mail.gmail.com> <CAC4RtVDMUWo00jyng6YGwj-dUKoztZAr_2uQ_64vg_EUureFUA@mail.gmail.com> <CAC4RtVC224_99ORJKu3tpFtYRSvNn7Xje8Km7kUMFZ3=9nBt_Q@mail.gmail.com> <CAC4RtVDzXP=wvGN=bdMVqhjNa+7kB=P3Rgz2vgBGcw7wXRv=4w@mail.gmail.com> <54D4E1DD.4050406@tzi.org> <CAC4RtVCvdyZ76UUUxPa7oKfZA19LZGu9zCHJE1YhQStTKxR3cg@mail.gmail.com> <5530A958.9080702@tzi.org>
Date: Fri, 1 May 2015 11:43:32 +0100
X-Google-Sender-Auth: WU0kvT0zqk6d9cd_jaNg9hE1pHk
Message-ID: <CAC4RtVCcRb2+rrm3uAeZDUmj9YrZ6dzYLpJp4R5PRmCAS=08Ng@mail.gmail.com>
From: Barry Leiba <barryleiba@computer.org>
To: Carsten Bormann <cabo@tzi.org>
Content-Type: text/plain; charset=UTF-8
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/pz5t_2nJ01lSPW29AhRZz7pq53M>
Cc: Klaus Hartke <hartke@tzi.org>, "core@ietf.org WG" <core@ietf.org>
Subject: Re: [core] What's the status of the "observe" doc after IESG Evaluation?
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 01 May 2015 10:43:34 -0000

On Fri, Apr 17, 2015 at 7:34 AM, Carsten Bormann <cabo@tzi.org> wrote:
> This WG chair will beat up the shepherd to finish this this weekend.
> Just need to find a mirror to talk to myself.

One more prod...

Barry


From nobody Fri May  1 10:36:27 2015
Return-Path: <carlesgo@entel.upc.edu>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D79461B2B24 for <core@ietfa.amsl.com>; Fri,  1 May 2015 10:36:18 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.701
X-Spam-Level: 
X-Spam-Status: No, score=-0.701 tagged_above=-999 required=5 tests=[BAYES_20=-0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham
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 GMMQETYMWlto for <core@ietfa.amsl.com>; Fri,  1 May 2015 10:36:13 -0700 (PDT)
Received: from violet.upc.es (violet.upc.es [147.83.2.51]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id EFF481A3BA5 for <core@ietf.org>; Fri,  1 May 2015 10:36:12 -0700 (PDT)
Received: from entelserver.upc.edu (entelserver.upc.es [147.83.39.4]) by violet.upc.es (8.14.1/8.13.1) with ESMTP id t41Ha6iQ005612; Fri, 1 May 2015 19:36:07 +0200
Received: from webmail.entel.upc.edu (webmail.entel.upc.edu [147.83.39.6]) by entelserver.upc.edu (Postfix) with ESMTP id 2BE7F1D53C1; Fri,  1 May 2015 19:36:06 +0200 (CEST)
Received: from 88.8.94.78 by webmail.entel.upc.edu with HTTP; Fri, 1 May 2015 19:36:29 +0200
Message-ID: <0b239bcfe1cda5039242644590db5373.squirrel@webmail.entel.upc.edu>
In-Reply-To: <5525C411.8010706@gmx.net>
References: <5525C411.8010706@gmx.net>
Date: Fri, 1 May 2015 19:36:29 +0200
From: "Carles Gomez Montenegro" <carlesgo@entel.upc.edu>
To: "Hannes Tschofenig" <hannes.tschofenig@gmx.net>
User-Agent: SquirrelMail/1.4.21-1.fc14
MIME-Version: 1.0
Content-Type: text/plain;charset=iso-8859-1
Content-Transfer-Encoding: 8bit
X-Priority: 3 (Normal)
Importance: Normal
X-Mail-Scanned: Criba 2.0 + Clamd
X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-4.4.3 (violet.upc.es [147.83.2.51]); Fri, 01 May 2015 19:36:07 +0200 (CEST)
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/ufzyrxeFDXsYh75QL8OaFbTVInM>
Cc: Ilker Demirkol <ilker.demirkol@entel.upc.edu>, August Betzler <august.betzler@googlemail.com>, "core@ietf.org WG" <core@ietf.org>
Subject: [core] Congestion control (was Re: draft-tschofenig-core-coap-tcp-tls-03)
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 01 May 2015 17:36:19 -0000

Hi Hannes,

I have a comment and a question on draft-tschofenig-core-coap-tcp-tls-03,
related with congestion control.

Comment
*******

I am particularly concerned with the following paragraph:

   As an additional usage scenario, some environments benefit from the
   more advanced congestion control and flow control capabilities
   provided by TCP.  While there is ongoing work to add more
   sophisticated congestion control to CoAP, see
   [I-D.bormann-core-cocoa], it is still far less efficient than
   functionality provided by TCP.        ^^^^^^^^^^^^^^^^^^

In its current form, the last sentence states in absolute terms that CoCoA
is "far less efficient" than TCP congestion control, whereas the
performance results we (the CoCoA authors) obtained in experiments
(presented e.g. in the CoRE WG meeting in Honolulu and in the ICCRG
meeting in Dallas) indicate just the opposite, at least in the scenarios
we considered.

TCP congestion control is of course great for many environments, and it
may indeed be a better choice for back-end communications in a cloud
infrastructure. However, in constrained node networks (CNNs), CoCoA seems
to work better than TCP RTO algorithms (e.g. Linux or Peak-Hopper), which
is reasonable since it has been specifically designed and tuned
considering CNN characteristics. In fact, Linux and Peak-Hopper
underperform even default CoAP in some scenarios.

(Note: in our work we have just considered NSTART = 1, since the CoRE WG
feedback has so far been that there have not been use cases for NSTART >
1.)

So I think the aforementioned paragraph should be modified accordingly.


Question
********

Is CoAP over TCP expected to run in constrained devices (e.g. due to the
NAT traversal issue described in your draft) ?

If the answer is yes, which RFC 7228 class(es) of devices are expected to 
run CoAP over TCP ?

I think it would be good to clarify these aspects in the draft.

Thanks!

Carles Gomez




> Hi all,
>
> I have just submitted -03 of the CoAP TCP document:
> http://tools.ietf.org/html/draft-tschofenig-core-coap-tcp-tls-03
>
> I updated the introduction to include the additional use cases discussed
> at the CORE WG session at IETF#92. Version -02 already contained some
> text about the requested use cases but I extended the text and shorted
> the introduction.
>
> I believe that this document is ready for a call for adoption by the WG
> chairs.
>
> Ciao
> Hannes
>
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core
>



From nobody Mon May  4 23:57:40 2015
Return-Path: <weigengyu@bupt.edu.cn>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 168461B2EA8 for <core@ietfa.amsl.com>; Mon,  4 May 2015 23:57:32 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.228
X-Spam-Level: *
X-Spam-Status: No, score=1.228 tagged_above=-999 required=5 tests=[BAYES_50=0.8, SPF_PASS=-0.001, STOX_REPLY_TYPE=0.439, T_RP_MATCHES_RCVD=-0.01] autolearn=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 D_ouYLLsUukl for <core@ietfa.amsl.com>; Mon,  4 May 2015 23:57:29 -0700 (PDT)
Received: from mx1.bupt.edu.cn (mx1.bupt.edu.cn [211.68.68.2]) by ietfa.amsl.com (Postfix) with ESMTP id BC11A1B2EA5 for <core@ietf.org>; Mon,  4 May 2015 23:57:24 -0700 (PDT)
Received: from mx1.bupt.edu.cn (unknown [127.0.0.1]) by mx1.bupt.edu.cn (AnyMacro(G7)) with SMTP id 78B2A19F3A1 for <core@ietf.org>; Tue,  5 May 2015 14:57:23 +0800 (HKT)
Received: from WeiGengyuPC (unknown [10.103.240.2]) by mx1.bupt.edu.cn (AnyMacro(G7)) with ESMTPA id 4752119F374; Tue,  5 May 2015 14:57:23 +0800 (HKT)
Message-ID: <0795D8F7EE1349E3B76B141A8D41040A@WeiGengyuPC>
From: "weigengyu" <weigengyu@bupt.edu.cn>
To: "Carles Gomez Montenegro" <carlesgo@entel.upc.edu>, "Hannes Tschofenig" <hannes.tschofenig@gmx.net>
References: <5525C411.8010706@gmx.net> <0b239bcfe1cda5039242644590db5373.squirrel@webmail.entel.upc.edu>
In-Reply-To: <0b239bcfe1cda5039242644590db5373.squirrel@webmail.entel.upc.edu>
Date: Tue, 5 May 2015 14:57:23 +0800
Organization: BUPT
MIME-Version: 1.0
Content-Type: text/plain; format=flowed; charset="utf-8"; reply-type=original
Content-Transfer-Encoding: 8bit
X-Priority: 3
X-MSMail-Priority: Normal
Importance: Normal
X-Mailer: Microsoft Windows Live Mail 16.4.3528.331
X-MimeOLE: Produced By Microsoft MimeOLE V16.4.3528.331
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/FhBhVDpxTBqriWvRYPyANE0l8rE>
Cc: core@ietf.org
Subject: Re: [core] Congestion control (was Re: draft-tschofenig-core-coap-tcp-tls-03)
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 05 May 2015 06:57:32 -0000

Carles Gomez wrote:
> Is CoAP over TCP expected to run in constrained devices (e.g. due to the
> NAT traversal issue described in your draft) ?

> If the answer is yes, which RFC 7228 class(es) of devices are expected to 
> run CoAP over TCP ?
> I think it would be good to clarify these aspects in the draft.

It is required to be clarified.
I think that CoAP over TCP may be used in the following scenarios:

1 in traditional Internet;
2 in less constrained networks, as smart phones in mobile communication 
networks, in LTE or LTE-A;
   or mobile termianls with WiFi;
   The class is C2. The power is Ps and E1.
   Mostly the termianl's resources are better.
3 in some specific constrained networks.  One example I see is a kind of 
in-house devices of Wi-SUNJ for smart grid.
   Its devices are supplied by Mains-power; probably battery with backup 
Mains-power.
   The class is  C2. The power is Et and E9.


Regards,

Gengyu WEI
Network Technology Center
School of Computer
Beijing University of Posts and Telecommunications
-----原始邮件----- 
From: Carles Gomez Montenegro
Sent: Saturday, May 02, 2015 1:36 AM
To: Hannes Tschofenig
Cc: Ilker Demirkol ; August Betzler ; core@ietf.org WG
Subject: [core] Congestion control (was Re: 
draft-tschofenig-core-coap-tcp-tls-03)

Hi Hannes,

I have a comment and a question on draft-tschofenig-core-coap-tcp-tls-03,
related with congestion control.

Comment
*******

I am particularly concerned with the following paragraph:

   As an additional usage scenario, some environments benefit from the
   more advanced congestion control and flow control capabilities
   provided by TCP.  While there is ongoing work to add more
   sophisticated congestion control to CoAP, see
   [I-D.bormann-core-cocoa], it is still far less efficient than
   functionality provided by TCP.        ^^^^^^^^^^^^^^^^^^

In its current form, the last sentence states in absolute terms that CoCoA
is "far less efficient" than TCP congestion control, whereas the
performance results we (the CoCoA authors) obtained in experiments
(presented e.g. in the CoRE WG meeting in Honolulu and in the ICCRG
meeting in Dallas) indicate just the opposite, at least in the scenarios
we considered.

TCP congestion control is of course great for many environments, and it
may indeed be a better choice for back-end communications in a cloud
infrastructure. However, in constrained node networks (CNNs), CoCoA seems
to work better than TCP RTO algorithms (e.g. Linux or Peak-Hopper), which
is reasonable since it has been specifically designed and tuned
considering CNN characteristics. In fact, Linux and Peak-Hopper
underperform even default CoAP in some scenarios.

(Note: in our work we have just considered NSTART = 1, since the CoRE WG
feedback has so far been that there have not been use cases for NSTART >
1.)

So I think the aforementioned paragraph should be modified accordingly.


Question
********

Is CoAP over TCP expected to run in constrained devices (e.g. due to the
NAT traversal issue described in your draft) ?

If the answer is yes, which RFC 7228 class(es) of devices are expected to
run CoAP over TCP ?

I think it would be good to clarify these aspects in the draft.

Thanks!

Carles Gomez




> Hi all,
>
> I have just submitted -03 of the CoAP TCP document:
> http://tools.ietf.org/html/draft-tschofenig-core-coap-tcp-tls-03
>
> I updated the introduction to include the additional use cases discussed
> at the CORE WG session at IETF#92. Version -02 already contained some
> text about the requested use cases but I extended the text and shorted
> the introduction.
>
> I believe that this document is ready for a call for adoption by the WG
> chairs.
>
> Ciao
> Hannes
>
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core
>


_______________________________________________
core mailing list
core@ietf.org
https://www.ietf.org/mailman/listinfo/core



From nobody Thu May  7 02:03:32 2015
Return-Path: <barryleiba.mailing.lists@gmail.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 726D11A0025 for <core@ietfa.amsl.com>; Thu,  7 May 2015 02:03:26 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.278
X-Spam-Level: 
X-Spam-Status: No, score=-1.278 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622, FREEMAIL_FROM=0.001, SPF_PASS=-0.001] autolearn=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 yv-gCtbGvSeB for <core@ietfa.amsl.com>; Thu,  7 May 2015 02:03:21 -0700 (PDT)
Received: from mail-ie0-x229.google.com (mail-ie0-x229.google.com [IPv6:2607:f8b0:4001:c03::229]) (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 D8F8B1A0029 for <core@ietf.org>; Thu,  7 May 2015 02:03:20 -0700 (PDT)
Received: by iecnq11 with SMTP id nq11so34322407iec.3 for <core@ietf.org>; Thu, 07 May 2015 02:03:20 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;  h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc:content-type; bh=+UmFNQz2Vf6Me2jHEJ9PPe3gRJCN9YtqxRegi2ag0dw=; b=C6dsICUyQufAJYVfr5/TqNvIpLlrQrxU0cE1ketERcyELSPiiJx0fjUbHYnZ2Bl7I8 qFjQEEHg7iHFKEQ1bSM1LYT69O9zNPtvJoK2/LOIcnbUYlryh3WMuRb3+aLjITpIrkDo UA+VS1xvtk8lujeBVpW7vKIO5Ifqjb2R6pZEpQGgV02V11dmSg1Gny6wlGQF7ldAhYdo 8PjttDEsC1Nwo6OFGAYQr+kYxjy7DMz+Smm9eOKwo3/xatsaMw3k6evVZlto9iA1tx1Y I0Cbu7lE8vJM7mKtDNvm0VC6Q46YkNynLXiAfWGcIIho9nyf35j0OZKAT6k14fq2Puxn A/xA==
MIME-Version: 1.0
X-Received: by 10.107.138.130 with SMTP id c2mr3427511ioj.74.1430989400304; Thu, 07 May 2015 02:03:20 -0700 (PDT)
Sender: barryleiba.mailing.lists@gmail.com
Received: by 10.107.156.1 with HTTP; Thu, 7 May 2015 02:03:20 -0700 (PDT)
In-Reply-To: <CAC4RtVCcRb2+rrm3uAeZDUmj9YrZ6dzYLpJp4R5PRmCAS=08Ng@mail.gmail.com>
References: <CAC4RtVA5eC4xuyGn-MVvE__+ztqB3btUvMcWTu3a3qrSA+hzCA@mail.gmail.com> <CAAzbHvYVVZDMS=_nnGmRkxKHa49UGdGtVEjy_UNmNL6PvagGbQ@mail.gmail.com> <CAC4RtVDMUWo00jyng6YGwj-dUKoztZAr_2uQ_64vg_EUureFUA@mail.gmail.com> <CAC4RtVC224_99ORJKu3tpFtYRSvNn7Xje8Km7kUMFZ3=9nBt_Q@mail.gmail.com> <CAC4RtVDzXP=wvGN=bdMVqhjNa+7kB=P3Rgz2vgBGcw7wXRv=4w@mail.gmail.com> <54D4E1DD.4050406@tzi.org> <CAC4RtVCvdyZ76UUUxPa7oKfZA19LZGu9zCHJE1YhQStTKxR3cg@mail.gmail.com> <5530A958.9080702@tzi.org> <CAC4RtVCcRb2+rrm3uAeZDUmj9YrZ6dzYLpJp4R5PRmCAS=08Ng@mail.gmail.com>
Date: Thu, 7 May 2015 10:03:20 +0100
X-Google-Sender-Auth: I2FW9_dpxJI66zfrRilz6cT0aVo
Message-ID: <CAC4RtVD3CK5R3zMKp7wZ870M61N9vEVK_RsYttTJ+-nN3uGJrA@mail.gmail.com>
From: Barry Leiba <barryleiba@computer.org>
To: Carsten Bormann <cabo@tzi.org>
Content-Type: text/plain; charset=UTF-8
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/yeWlsm-rqlsCbUt0orxhUZkuRq8>
Cc: Klaus Hartke <hartke@tzi.org>, "core@ietf.org WG" <core@ietf.org>
Subject: Re: [core] What's the status of the "observe" doc after IESG Evaluation?
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 07 May 2015 09:03:26 -0000

>> This WG chair will beat up the shepherd to finish this this weekend.
>> Just need to find a mirror to talk to myself.
>
> One more prod...

And another.

Barry


From nobody Tue May 19 00:23:20 2015
Return-Path: <stokcons@xs4all.nl>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 5E4831AC436; Tue, 19 May 2015 00:23:18 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.15
X-Spam-Level: *
X-Spam-Status: No, score=1.15 tagged_above=-999 required=5 tests=[BAYES_50=0.8, HELO_EQ_FR=0.35, RCVD_IN_DNSWL_NONE=-0.0001] autolearn=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 Hk7Vq8dhRAa4; Tue, 19 May 2015 00:23:16 -0700 (PDT)
Received: from lb3-smtp-cloud3.xs4all.net (lb3-smtp-cloud3.xs4all.net [194.109.24.30]) (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 7D25F1ACD9A; Tue, 19 May 2015 00:23:15 -0700 (PDT)
Received: from roundcube.xs4all.nl ([194.109.20.208]) by smtp-cloud3.xs4all.net with ESMTP id VjPA1q0014VN29601jPAZ6; Tue, 19 May 2015 09:23:13 +0200
Received: from AMontpellier-654-1-255-78.w92-133.abo.wanadoo.fr ([92.133.146.78]) by roundcube.xs4all.nl with HTTP (HTTP/1.1 POST); Tue, 19 May 2015 09:23:09 +0200
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=_f0e06374b752266de28a3ccf3e3ea6ba"
Date: Tue, 19 May 2015 09:23:09 +0200
From: peter van der Stok <stokcons@xs4all.nl>
To: Michel Veillette <Michel.Veillette@trilliantinc.com>
Organization: vanderstok consultancy
Mail-Reply-To: consultancy@vanderstok.org
Message-ID: <dabfda5a16901a917873bbc96d5561fe@xs4all.nl>
X-Sender: stokcons@xs4all.nl (Y9TLGsMiH7LvasG4bPZtjXdUgBoIXg10)
User-Agent: XS4ALL Webmail
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/LYNAK1bUb-Wd5eh3pEZl7x0LuUM>
Cc: 6tisch@ietf.org, Core <core@ietf.org>
Subject: [core] CoMI rehashing
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: consultancy@vanderstok.org
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 19 May 2015 07:23:18 -0000

--=_f0e06374b752266de28a3ccf3e3ea6ba
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset=US-ASCII;
 format=flowed

Hi Michel,

Apologies for reacting so late, but we had many discussions which slowly 
converged to the solution described in the attachment.

WE aim at rehashing when a clash occurs.
The client only needs minimal storage space: table with the names of the 
modules.
Per rehash collision, the client only stores old hash, new hash, and 
module identifier

We think that a global module numbering of all relevant modules, 
administrated by IANA, is a large undertaking.
Given the struggle we see elsewhere to save bytes, we think also that we 
should minimize the payload.

Greetings,

Peter

-- 
Peter van der Stok
vanderstok consultancy
mailto: consultancy@vanderstok.org
www: www.vanderstok.org
tel NL: +31(0)492474673     F: +33(0)966015248
--=_f0e06374b752266de28a3ccf3e3ea6ba
Content-Transfer-Encoding: base64
Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document;
 name="Proposal to handle hash clashes in CoMI.docx"
Content-Disposition: attachment;
 filename="Proposal to handle hash clashes in CoMI.docx";
 size=22327

UEsDBBQABgAIAAAAIQB6ITA6gQEAAC0HAAATAAgCW0NvbnRlbnRfVHlwZXNdLnhtbCCiBAIooAAC
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC0
lctuwjAQRfeV+g+Rt1Vi6KKqKgKLPpYtUukHmHgCVv2SPbz+vhMCUVUBQYVsIjkz997jsWQPRmuj
kyWEqJzNWT/rsQRs4aSys5x9Td7SR5ZEFFYK7SzkbAORjYa3N4PJxkNMSG1jzuaI/onzWMzBiJg5
D5YqpQtGIC3DjHtRfIsZ8Pte74EXziJYTLHyYMPBC5RioTF5XdPvmiSAjix5rhurrJwJ77UqBFKd
L638k5LuEjJSbnviXPl4Rw2MH0yoKscDdroPGk1QEpKxCPguDHXxlQuSS1csDCmz0zYHOF1ZqgIa
feXmgysgRpq50VlTMULZPf9RDrswUwikvD5IY90KEXGjIV6foPZtjwdEEnQBsHNuRVjB9LMzil/m
rSClc2gddnEajXUrBFjZEcPe+aw5QOh3MwUIZ+RTnphq6IJgZ90KgXQdQ/29fBJbm1OR1DkOzke6
3sM/tr2/vyt1Shv2EFCdPukmkawv3h9UT4MEeSCbbx+74Q8AAAD//wMAUEsDBBQABgAIAAAAIQAe
kRq37wAAAE4CAAALAAgCX3JlbHMvLnJlbHMgogQCKKAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArJLBasMwDEDvg/2D0b1R2sEYo04vY9Db
GNkHCFtJTBPb2GrX/v082NgCXelhR8vS05PQenOcRnXglF3wGpZVDYq9Cdb5XsNb+7x4AJWFvKUx
eNZw4gyb5vZm/cojSSnKg4tZFYrPGgaR+IiYzcAT5SpE9uWnC2kiKc/UYySzo55xVdf3mH4zoJkx
1dZqSFt7B6o9Rb6GHbrOGX4KZj+xlzMtkI/C3rJdxFTqk7gyjWop9SwabDAvJZyRYqwKGvC80ep6
o7+nxYmFLAmhCYkv+3xmXBJa/ueK5hk/Nu8hWbRf4W8bnF1B8wEAAP//AwBQSwMEFAAGAAgAAAAh
AOUch7YpAQAAPgUAABwACAF3b3JkL19yZWxzL2RvY3VtZW50LnhtbC5yZWxzIKIEASigAAEAAAAA
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
cVeasYzHDvOubG2Zwy7uytGWIezhrsxsGcIO7srHluFRJJPztvVRz346ru8vBYSucLQIJ25CV1hC
X1XpGAqjr9PchL7ecxP6utFNQPnTicE71o1Ce9iN8nM1lBnW1f5CdROwroYEL1cDjL+rIcrb1RDl
52qYGLGuhgSsq/2Ts5vg5WqA8Xc1RHm7GqL8XA2HMqyrIQHrakjAunrggOzE+LsaorxdDVF+roaT
O6yrIQHrakjAuhoSvFwNMP6uhihvV0OUn6tBlYx2NSRgXQ0JWFdDgperAcbf1RDl7WqI6nK1OovS
cDXKw5Y5bhJmGeIGZMsQl5wtQ49qybL2rJYsgme1BH1V+RxXLdlOcxP6es9N6OtGNwHlTycG71g3
Cu1hN8rP1bhqqc3V/kJ1E7CuxlVLTlfjqqVOV+OqpU5X46olt6tx1VKbq3HVUpur/ZOzm+Dlaly1
1OlqXLXU6WpcteR2Na5aanM1rlpqczWuWmpz9cAB2YnxdzWuWup0Na5acrsaVy21uRpXLbW5Glct
tbkaVy05XY2rljpdjauWOl2Nq5bcrsZVS22uxlVLba7GVUttrsZVS05X46qlTlfjqqVOVzuqpb3n
xgeYJFt9kExsXL6sqHwHt/XATKLfQWouAqoNPyb1h5KksdyTyHySyixWO2wuGOoWleGOpmq4uVqp
v9Nk4zefV1ItzEhBk8+yN0DjmXw1X8ty+Qq7annVzMWC5HrtprOqbUw4bI7l+TQvRIVqVu/vT06O
zicXeivz+awnSlefRPtqmfxxwzJaqF+bL2vN5FutRA9MDtXTP+ZDWyZsuH5t0M33tG7IeM400fmV
MvJHx1fK5MpLs0yub3yorGG5+VCZXDytP1QWyzCr9mtyeXI4VTlFbaxC8GxEVACqiFGL5V0RAjS9
0oTNp84OWj51ppdZXyxzxE4s3EZi8+YtR5iaN+jWj4Cp9+duR5XjNbuOiDCxt7mMrrdrXDLvjPlS
yrVjn5WcO/WlFe8MWROzu/ZQ7M8s1XEk/vmYyaB+Nh8703ua/CAaJdZf0DS9JXprvnJvmtK5FJ5Y
O95XL1zYWj/T7w502udqkHEC9po7o392x4n+moC5+8GZzmQmbeludSvO0J7uEQtN78uTYGBndJpX
q9qynx02jv2tHnRvZrDLg8Orw2kjg4EPANqf/9MJy/35v2ZcTXme0FyNMjpuVKvyRdvmwP8Ug676
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
--=_f0e06374b752266de28a3ccf3e3ea6ba--


From nobody Tue May 19 08:24:27 2015
Return-Path: <Michel.Veillette@trilliantinc.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 34D6F1A8BC0; Tue, 19 May 2015 08:24:24 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.003
X-Spam-Level: 
X-Spam-Status: No, score=-0.003 tagged_above=-999 required=5 tests=[BAYES_40=-0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham
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 Y3tlpKf9vQrE; Tue, 19 May 2015 08:24:20 -0700 (PDT)
Received: from na01-by2-obe.outbound.protection.outlook.com (mail-by2on0111.outbound.protection.outlook.com [207.46.100.111]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 172B61B3082; Tue, 19 May 2015 08:23:41 -0700 (PDT)
Received: from CO2PR0601MB792.namprd06.prod.outlook.com (10.141.247.144) by CO2PR0601MB0951.namprd06.prod.outlook.com (25.160.10.23) with Microsoft SMTP Server (TLS) id 15.1.154.19; Tue, 19 May 2015 15:23:41 +0000
Received: from CO2PR0601MB792.namprd06.prod.outlook.com (10.141.247.144) by CO2PR0601MB792.namprd06.prod.outlook.com (10.141.247.144) with Microsoft SMTP Server (TLS) id 15.1.160.19; Tue, 19 May 2015 15:23:39 +0000
Received: from CO2PR0601MB792.namprd06.prod.outlook.com ([10.141.247.144]) by CO2PR0601MB792.namprd06.prod.outlook.com ([10.141.247.144]) with mapi id 15.01.0160.009; Tue, 19 May 2015 15:23:38 +0000
From: Michel Veillette <Michel.Veillette@trilliantinc.com>
To: "consultancy@vanderstok.org" <consultancy@vanderstok.org>
Thread-Topic: CoMI rehashing
Thread-Index: AQHQkgSuXE++bCKK7kqMBAf0Z8FiQJ2DWAig
Date: Tue, 19 May 2015 15:23:37 +0000
Message-ID: <CO2PR0601MB7922F6E45BACC3350488B3CFEC30@CO2PR0601MB792.namprd06.prod.outlook.com>
References: <dabfda5a16901a917873bbc96d5561fe@xs4all.nl>
In-Reply-To: <dabfda5a16901a917873bbc96d5561fe@xs4all.nl>
Accept-Language: fr-CA, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: spf=none (sender IP is ) smtp.mailfrom=Michel.Veillette@trilliantinc.com; 
x-originating-ip: [207.96.192.122]
x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:; SRVR:CO2PR0601MB792; UriScan:; BCL:0; PCL:0; RULEID:; SRVR:CO2PR0601MB0951; 
x-microsoft-antispam-prvs: <CO2PR0601MB7927413F9B9965DBCCE6CF8FEC30@CO2PR0601MB792.namprd06.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:;
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(601004)(5005006)(3002001); SRVR:CO2PR0601MB792; BCL:0; PCL:0; RULEID:;  SRVR:CO2PR0601MB792; 
x-forefront-prvs: 0581B5AB35
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(6009001)(199003)(189002)(38414003)(13464003)(66066001)(2656002)(87936001)(15974865002)(97736004)(68736005)(4001540100001)(74316001)(101416001)(64706001)(221733001)(86362001)(105586002)(99286002)(5890100001)(77096005)(77156002)(81156007)(2501003)(92566002)(46102003)(76176999)(62966003)(122556002)(102836002)(2900100001)(2950100001)(106116001)(106356001)(33656002)(110136002)(5001960100002)(189998001)(5001830100001)(5001860100001)(2351001)(76576001)(50986999)(54356999)(40100003)(19580395003)(19580405001); DIR:OUT; SFP:1102; SCL:1; SRVR:CO2PR0601MB792; H:CO2PR0601MB792.namprd06.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords;  A:1; MX:1; LANG:en; 
received-spf: None (protection.outlook.com: trilliantinc.com does not designate permitted sender hosts)
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-originalarrivaltime: 19 May 2015 15:23:38.1268 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 4f6fbd13-0dfb-4150-85c3-d43260c04309
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO2PR0601MB792
X-OriginatorOrg: trilliantinc.com
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/QaP6IDPcpbPfc9t-dsCv2G2ag7s>
Cc: "6tisch@ietf.org" <6tisch@ietf.org>, Core <core@ietf.org>
Subject: Re: [core] CoMI rehashing
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 19 May 2015 15:24:24 -0000

Hi Peter

Your propose solution doesn't seem to address YANG hash clashes happening w=
ithin a YANG module.

Multiple times in your document, you assume that clashes can't happen withi=
n a YANG module.
Page 1,  "It is assumed that no clashes occur within one module, and by pre=
fixing a module identifier to the hash, clashing hashes can be distinguishe=
d"
Page 3,  "A data node is completely identified by the module identifier and=
 the hash value."

We can probaly make this assumption for YANG modules specifically design fo=
r CoMI but this is not true for existing YANG modules and future modules no=
t designed with CoMI in mind.

=3D=3D=3D=3D=3D=3D=3D

About "the client creates a "server_table" with entries: <server id, old ha=
sh, M_id, new hash> "

Let say we have the following two data nodes:
   /sys:system-state/sys:clock/sys:current-datetime, 355927048
   /sys:system-state/sys:clock/sys:boot-datetime, 355927048

Having the following table within the client is not sufficient to distingua=
te between the "current-datetime" and the "boot-datetime".
   fe80::200:f8ff:fe21:67cf, 355927048, ietf-system, 783481403
   fe80::200:f8ff:fe21:67cf, 355927048, ietf-system, 530731873

=3D=3D=3D=3D=3D=3D=3D=3D

Introducing the concept of "hash clash" error help to avoid the need to ret=
reive the "clash_file" when no clashes exist.
However, if we agree that clashes may exist within a YANG module, we are ba=
ck to square one with the original rehashing mechanism.

Michel Veillette
System Architecture Director
Trilliant Inc.
Tel: 450-375-0556 ext. 237
michel.veillette@trilliantinc.com
www.trilliantinc.com =A0=20

-----Original Message-----
From: peter van der Stok [mailto:stokcons@xs4all.nl]=20
Sent: 19 mai 2015 03:23
To: Michel Veillette
Cc: Core; 6tisch@ietf.org
Subject: CoMI rehashing

Hi Michel,

Apologies for reacting so late, but we had many discussions which slowly co=
nverged to the solution described in the attachment.

WE aim at rehashing when a clash occurs.
The client only needs minimal storage space: table with the names of the mo=
dules.
Per rehash collision, the client only stores old hash, new hash, and module=
 identifier

We think that a global module numbering of all relevant modules, administra=
ted by IANA, is a large undertaking.
Given the struggle we see elsewhere to save bytes, we think also that we sh=
ould minimize the payload.

Greetings,

Peter

--
Peter van der Stok
vanderstok consultancy
mailto: consultancy@vanderstok.org
www: www.vanderstok.org
tel NL: +31(0)492474673     F: +33(0)966015248


From nobody Tue May 19 08:35:29 2015
Return-Path: <andy@yumaworks.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D62131A8A7B for <core@ietfa.amsl.com>; Tue, 19 May 2015 08:35:25 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.979
X-Spam-Level: 
X-Spam-Status: No, score=-1.979 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FM_FORGED_GMAIL=0.622, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=unavailable
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 kLDRtwfjXp5F for <core@ietfa.amsl.com>; Tue, 19 May 2015 08:35:22 -0700 (PDT)
Received: from mail-la0-f42.google.com (mail-la0-f42.google.com [209.85.215.42]) (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 B51201A900B for <core@ietf.org>; Tue, 19 May 2015 08:35:18 -0700 (PDT)
Received: by lagr1 with SMTP id r1so30072062lag.0 for <core@ietf.org>; Tue, 19 May 2015 08:35:17 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=wj0ulj5MJYGKVz1atjtL8gVim8le6hncUwtqxFBGaD8=; b=il7qiXABZMHlFt5U0YuuyoaCigrb0abATHjPEOIX38mqiPA4wNszvE6ahUGJnRKF3/ K8ilsH/tewmAuwcE048dMNTn0Lzkg3CU6Q1TXJJHctgDroJTQGmLhwYUG8ncoa2hi451 plf1eGX6/qwhyNIS3honObrxpkPKP0WgWAU+6nMUSfGACsPnqQGjs9l62KPV4hiVQpHo MezPGiEM8JRw6rwSQdYhDWMZTpjHCoq6de3sOaeRn7iV0n34oE8X3mTn7UFIfeMEuwWa F7kETAx90aasNbQUohfamS/BexAfXV1yiVcAS4EMGoKyjCYMoLVJQUoRoPo6h8eq2hOg Z8dA==
X-Gm-Message-State: ALoCoQkX0U+hsz9t3T5DWouxIuB4vookU49V3nJeDYoDM3xnTlDhzlT8XVCSs534puMQ4ME94O4H
MIME-Version: 1.0
X-Received: by 10.152.116.49 with SMTP id jt17mr12696337lab.82.1432049716973;  Tue, 19 May 2015 08:35:16 -0700 (PDT)
Received: by 10.112.200.102 with HTTP; Tue, 19 May 2015 08:35:16 -0700 (PDT)
In-Reply-To: <CO2PR0601MB7922F6E45BACC3350488B3CFEC30@CO2PR0601MB792.namprd06.prod.outlook.com>
References: <dabfda5a16901a917873bbc96d5561fe@xs4all.nl> <CO2PR0601MB7922F6E45BACC3350488B3CFEC30@CO2PR0601MB792.namprd06.prod.outlook.com>
Date: Tue, 19 May 2015 08:35:16 -0700
Message-ID: <CABCOCHQqdnXaZUaTKtUB3D2g0bWTK87v8-R9E72dYFXXJgoN_Q@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: Michel Veillette <Michel.Veillette@trilliantinc.com>
Content-Type: text/plain; charset=UTF-8
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/-iyKnPSDr17E0xJzm-5-HB3G3rQ>
Cc: "6tisch@ietf.org" <6tisch@ietf.org>, Core <core@ietf.org>
Subject: Re: [core] CoMI rehashing
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 19 May 2015 15:35:26 -0000

On Tue, May 19, 2015 at 8:23 AM, Michel Veillette
<Michel.Veillette@trilliantinc.com> wrote:
> Hi Peter
>
> Your propose solution doesn't seem to address YANG hash clashes happening within a YANG module.
>
> Multiple times in your document, you assume that clashes can't happen within a YANG module.
> Page 1,  "It is assumed that no clashes occur within one module, and by prefixing a module identifier to the hash, clashing hashes can be distinguished"
> Page 3,  "A data node is completely identified by the module identifier and the hash value."
>
> We can probaly make this assumption for YANG modules specifically design for CoMI but this is not true for existing YANG modules and future modules not designed with CoMI in mind.
>


Dos this mean you have identified existing YANG modules
that would have multiple nodes with the same hash value?
I have not found any so far.

IMO it is much more reasonable to make sure that a YANG module
intended for use in CoMI does not have any clashes.


> =======
>
> About "the client creates a "server_table" with entries: <server id, old hash, M_id, new hash> "
>
> Let say we have the following two data nodes:
>    /sys:system-state/sys:clock/sys:current-datetime, 355927048
>    /sys:system-state/sys:clock/sys:boot-datetime, 355927048
>

But these are the wrong hash values.

> Having the following table within the client is not sufficient to distinguate between the "current-datetime" and the "boot-datetime".
>    fe80::200:f8ff:fe21:67cf, 355927048, ietf-system, 783481403
>    fe80::200:f8ff:fe21:67cf, 355927048, ietf-system, 530731873
>

The assumption is that modules for CoMI will be checked for hash collisions,
and the module will be altered to remove any collisions.  Since a module
has about 100 nodes in it and it takes about 70,000 nodes for a 50%
chance at a collision, it will be quite easy to prevent clashes in a
single module.



Andy

> ========
>
> Introducing the concept of "hash clash" error help to avoid the need to retreive the "clash_file" when no clashes exist.
> However, if we agree that clashes may exist within a YANG module, we are back to square one with the original rehashing mechanism.
>
> Michel Veillette
> System Architecture Director
> Trilliant Inc.
> Tel: 450-375-0556 ext. 237
> michel.veillette@trilliantinc.com
> www.trilliantinc.com
>
> -----Original Message-----
> From: peter van der Stok [mailto:stokcons@xs4all.nl]
> Sent: 19 mai 2015 03:23
> To: Michel Veillette
> Cc: Core; 6tisch@ietf.org
> Subject: CoMI rehashing
>
> Hi Michel,
>
> Apologies for reacting so late, but we had many discussions which slowly converged to the solution described in the attachment.
>
> WE aim at rehashing when a clash occurs.
> The client only needs minimal storage space: table with the names of the modules.
> Per rehash collision, the client only stores old hash, new hash, and module identifier
>
> We think that a global module numbering of all relevant modules, administrated by IANA, is a large undertaking.
> Given the struggle we see elsewhere to save bytes, we think also that we should minimize the payload.
>
> Greetings,
>
> Peter
>
> --
> Peter van der Stok
> vanderstok consultancy
> mailto: consultancy@vanderstok.org
> www: www.vanderstok.org
> tel NL: +31(0)492474673     F: +33(0)966015248
>
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core


From nobody Tue May 19 08:47:51 2015
Return-Path: <Michel.Veillette@trilliantinc.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id ECC601A9114; Tue, 19 May 2015 08:47:49 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.902
X-Spam-Level: 
X-Spam-Status: No, score=-1.902 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham
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 9VevKG7OFbLE; Tue, 19 May 2015 08:47:47 -0700 (PDT)
Received: from na01-bl2-obe.outbound.protection.outlook.com (mail-bl2on0114.outbound.protection.outlook.com [65.55.169.114]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 195521A90F9; Tue, 19 May 2015 08:47:46 -0700 (PDT)
Received: from CO2PR0601MB792.namprd06.prod.outlook.com (10.141.247.144) by CO2PR0601MB789.namprd06.prod.outlook.com (10.141.247.141) with Microsoft SMTP Server (TLS) id 15.1.166.22; Tue, 19 May 2015 15:47:40 +0000
Received: from CO2PR0601MB792.namprd06.prod.outlook.com ([10.141.247.144]) by CO2PR0601MB792.namprd06.prod.outlook.com ([10.141.247.144]) with mapi id 15.01.0160.009; Tue, 19 May 2015 15:47:40 +0000
From: Michel Veillette <Michel.Veillette@trilliantinc.com>
To: Andy Bierman <andy@yumaworks.com>
Thread-Topic: [core] CoMI rehashing
Thread-Index: AQHQkgSuXE++bCKK7kqMBAf0Z8FiQJ2DWAiggAAWvQCAAAGJwA==
Date: Tue, 19 May 2015 15:47:39 +0000
Message-ID: <CO2PR0601MB792DBA60BA66C32E8853841FEC30@CO2PR0601MB792.namprd06.prod.outlook.com>
References: <dabfda5a16901a917873bbc96d5561fe@xs4all.nl> <CO2PR0601MB7922F6E45BACC3350488B3CFEC30@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHQqdnXaZUaTKtUB3D2g0bWTK87v8-R9E72dYFXXJgoN_Q@mail.gmail.com>
In-Reply-To: <CABCOCHQqdnXaZUaTKtUB3D2g0bWTK87v8-R9E72dYFXXJgoN_Q@mail.gmail.com>
Accept-Language: fr-CA, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: spf=none (sender IP is ) smtp.mailfrom=Michel.Veillette@trilliantinc.com; 
x-originating-ip: [207.96.192.122]
x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CO2PR0601MB789;
x-microsoft-antispam-prvs: <CO2PR0601MB7892671543183F33876DFE1FEC30@CO2PR0601MB789.namprd06.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:;
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(601004)(5005006)(3002001); SRVR:CO2PR0601MB789; BCL:0; PCL:0; RULEID:;  SRVR:CO2PR0601MB789; 
x-forefront-prvs: 0581B5AB35
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(6009001)(38414003)(377454003)(13464003)(24454002)(189002)(51704005)(199003)(101416001)(33656002)(105586002)(19580405001)(19580395003)(106356001)(106116001)(99286002)(50986999)(76176999)(46102003)(76576001)(189998001)(74316001)(110136002)(5001960100002)(77156002)(62966003)(2656002)(15974865002)(68736005)(86362001)(77096005)(102836002)(15975445007)(87936001)(5001920100001)(5001830100001)(5001860100001)(5890100001)(64706001)(2950100001)(54356999)(4001540100001)(2900100001)(97736004)(81156007)(92566002)(66066001)(40100003)(122556002); DIR:OUT; SFP:1102; SCL:1; SRVR:CO2PR0601MB789; H:CO2PR0601MB792.namprd06.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords;  MX:1; A:1; LANG:en; 
received-spf: None (protection.outlook.com: trilliantinc.com does not designate permitted sender hosts)
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: trilliantinc.com
X-MS-Exchange-CrossTenant-originalarrivaltime: 19 May 2015 15:47:39.7978 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 4f6fbd13-0dfb-4150-85c3-d43260c04309
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO2PR0601MB789
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/1qoY4VikSbSdzlL0EXfQzBPmX6E>
Cc: "6tisch@ietf.org" <6tisch@ietf.org>, Core <core@ietf.org>
Subject: Re: [core] CoMI rehashing
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 19 May 2015 15:47:50 -0000

SGkgQW5keQ0KDQpObywgSSBkaWRu4oCZdCB0cnkgdG8gaW52ZXN0aWdhdGUgaWYgWUFORyBoYXNo
IGNsYXNoZXMgd2l0aGluIGV4aXN0aW5nIG1vZHVsZXMgZXhpc3QuDQpNdWx0aXBsZSBvZiB0aGVt
IG9mIHByb3ByaWV0YXJ5IGFuZCBkb2luZyBhbiBleHRlbnNpdmUgc2VhcmNoIGlzIG5vdCBwcmFj
dGljYWwuDQoNClRoZSBwb2ludCBpcyBub3QgdG8gZGV0ZXJtaW5lIGlmIHN1Y2ggY2xhc2hlcyBl
eGlzdCBidXQgaG93IHRoZSBwcm90b2NvbCB3aWxsIGhhbmRsZSB0aGVtIGlmIHRoZXkgZG8gZXhp
c3QuDQpUaGUgY3VycmVudCBhbnN3ZXIgc2VlbSB0byBiZSBiYWQgbHVjaywgdHJ5IGFnYWluLCB5
b3VyIG1vZHVsZSBjYW4ndCBiZSBpbXBsZW1lbnRlZCB1c2luZyBDb01JLiANCg0KTWljaGVsIFZl
aWxsZXR0ZQ0KU3lzdGVtIEFyY2hpdGVjdHVyZSBEaXJlY3Rvcg0KVHJpbGxpYW50IEluYy4NClRl
bDogNDUwLTM3NS0wNTU2IGV4dC4gMjM3DQptaWNoZWwudmVpbGxldHRlQHRyaWxsaWFudGluYy5j
b20NCnd3dy50cmlsbGlhbnRpbmMuY29tIMKgIA0KDQoNCi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0t
LS0tDQpGcm9tOiBBbmR5IEJpZXJtYW4gW21haWx0bzphbmR5QHl1bWF3b3Jrcy5jb21dIA0KU2Vu
dDogMTkgbWFpIDIwMTUgMTE6MzUNClRvOiBNaWNoZWwgVmVpbGxldHRlDQpDYzogY29uc3VsdGFu
Y3lAdmFuZGVyc3Rvay5vcmc7IDZ0aXNjaEBpZXRmLm9yZzsgQ29yZQ0KU3ViamVjdDogUmU6IFtj
b3JlXSBDb01JIHJlaGFzaGluZw0KDQpPbiBUdWUsIE1heSAxOSwgMjAxNSBhdCA4OjIzIEFNLCBN
aWNoZWwgVmVpbGxldHRlIDxNaWNoZWwuVmVpbGxldHRlQHRyaWxsaWFudGluYy5jb20+IHdyb3Rl
Og0KPiBIaSBQZXRlcg0KPg0KPiBZb3VyIHByb3Bvc2Ugc29sdXRpb24gZG9lc24ndCBzZWVtIHRv
IGFkZHJlc3MgWUFORyBoYXNoIGNsYXNoZXMgaGFwcGVuaW5nIHdpdGhpbiBhIFlBTkcgbW9kdWxl
Lg0KPg0KPiBNdWx0aXBsZSB0aW1lcyBpbiB5b3VyIGRvY3VtZW50LCB5b3UgYXNzdW1lIHRoYXQg
Y2xhc2hlcyBjYW4ndCBoYXBwZW4gd2l0aGluIGEgWUFORyBtb2R1bGUuDQo+IFBhZ2UgMSwgICJJ
dCBpcyBhc3N1bWVkIHRoYXQgbm8gY2xhc2hlcyBvY2N1ciB3aXRoaW4gb25lIG1vZHVsZSwgYW5k
IGJ5IHByZWZpeGluZyBhIG1vZHVsZSBpZGVudGlmaWVyIHRvIHRoZSBoYXNoLCBjbGFzaGluZyBo
YXNoZXMgY2FuIGJlIGRpc3Rpbmd1aXNoZWQiDQo+IFBhZ2UgMywgICJBIGRhdGEgbm9kZSBpcyBj
b21wbGV0ZWx5IGlkZW50aWZpZWQgYnkgdGhlIG1vZHVsZSBpZGVudGlmaWVyIGFuZCB0aGUgaGFz
aCB2YWx1ZS4iDQo+DQo+IFdlIGNhbiBwcm9iYWx5IG1ha2UgdGhpcyBhc3N1bXB0aW9uIGZvciBZ
QU5HIG1vZHVsZXMgc3BlY2lmaWNhbGx5IGRlc2lnbiBmb3IgQ29NSSBidXQgdGhpcyBpcyBub3Qg
dHJ1ZSBmb3IgZXhpc3RpbmcgWUFORyBtb2R1bGVzIGFuZCBmdXR1cmUgbW9kdWxlcyBub3QgZGVz
aWduZWQgd2l0aCBDb01JIGluIG1pbmQuDQo+DQoNCg0KRG9zIHRoaXMgbWVhbiB5b3UgaGF2ZSBp
ZGVudGlmaWVkIGV4aXN0aW5nIFlBTkcgbW9kdWxlcyB0aGF0IHdvdWxkIGhhdmUgbXVsdGlwbGUg
bm9kZXMgd2l0aCB0aGUgc2FtZSBoYXNoIHZhbHVlPw0KSSBoYXZlIG5vdCBmb3VuZCBhbnkgc28g
ZmFyLg0KDQpJTU8gaXQgaXMgbXVjaCBtb3JlIHJlYXNvbmFibGUgdG8gbWFrZSBzdXJlIHRoYXQg
YSBZQU5HIG1vZHVsZSBpbnRlbmRlZCBmb3IgdXNlIGluIENvTUkgZG9lcyBub3QgaGF2ZSBhbnkg
Y2xhc2hlcy4NCg0KDQo+ID09PT09PT0NCj4NCj4gQWJvdXQgInRoZSBjbGllbnQgY3JlYXRlcyBh
ICJzZXJ2ZXJfdGFibGUiIHdpdGggZW50cmllczogPHNlcnZlciBpZCwgb2xkIGhhc2gsIE1faWQs
IG5ldyBoYXNoPiAiDQo+DQo+IExldCBzYXkgd2UgaGF2ZSB0aGUgZm9sbG93aW5nIHR3byBkYXRh
IG5vZGVzOg0KPiAgICAvc3lzOnN5c3RlbS1zdGF0ZS9zeXM6Y2xvY2svc3lzOmN1cnJlbnQtZGF0
ZXRpbWUsIDM1NTkyNzA0OA0KPiAgICAvc3lzOnN5c3RlbS1zdGF0ZS9zeXM6Y2xvY2svc3lzOmJv
b3QtZGF0ZXRpbWUsIDM1NTkyNzA0OA0KPg0KDQpCdXQgdGhlc2UgYXJlIHRoZSB3cm9uZyBoYXNo
IHZhbHVlcy4NCg0KPiBIYXZpbmcgdGhlIGZvbGxvd2luZyB0YWJsZSB3aXRoaW4gdGhlIGNsaWVu
dCBpcyBub3Qgc3VmZmljaWVudCB0byBkaXN0aW5ndWF0ZSBiZXR3ZWVuIHRoZSAiY3VycmVudC1k
YXRldGltZSIgYW5kIHRoZSAiYm9vdC1kYXRldGltZSIuDQo+ICAgIGZlODA6OjIwMDpmOGZmOmZl
MjE6NjdjZiwgMzU1OTI3MDQ4LCBpZXRmLXN5c3RlbSwgNzgzNDgxNDAzDQo+ICAgIGZlODA6OjIw
MDpmOGZmOmZlMjE6NjdjZiwgMzU1OTI3MDQ4LCBpZXRmLXN5c3RlbSwgNTMwNzMxODczDQo+DQoN
ClRoZSBhc3N1bXB0aW9uIGlzIHRoYXQgbW9kdWxlcyBmb3IgQ29NSSB3aWxsIGJlIGNoZWNrZWQg
Zm9yIGhhc2ggY29sbGlzaW9ucywgYW5kIHRoZSBtb2R1bGUgd2lsbCBiZSBhbHRlcmVkIHRvIHJl
bW92ZSBhbnkgY29sbGlzaW9ucy4gIFNpbmNlIGEgbW9kdWxlIGhhcyBhYm91dCAxMDAgbm9kZXMg
aW4gaXQgYW5kIGl0IHRha2VzIGFib3V0IDcwLDAwMCBub2RlcyBmb3IgYSA1MCUgY2hhbmNlIGF0
IGEgY29sbGlzaW9uLCBpdCB3aWxsIGJlIHF1aXRlIGVhc3kgdG8gcHJldmVudCBjbGFzaGVzIGlu
IGEgc2luZ2xlIG1vZHVsZS4NCg0KDQoNCkFuZHkNCg0KPiA9PT09PT09PQ0KPg0KPiBJbnRyb2R1
Y2luZyB0aGUgY29uY2VwdCBvZiAiaGFzaCBjbGFzaCIgZXJyb3IgaGVscCB0byBhdm9pZCB0aGUg
bmVlZCB0byByZXRyZWl2ZSB0aGUgImNsYXNoX2ZpbGUiIHdoZW4gbm8gY2xhc2hlcyBleGlzdC4N
Cj4gSG93ZXZlciwgaWYgd2UgYWdyZWUgdGhhdCBjbGFzaGVzIG1heSBleGlzdCB3aXRoaW4gYSBZ
QU5HIG1vZHVsZSwgd2UgYXJlIGJhY2sgdG8gc3F1YXJlIG9uZSB3aXRoIHRoZSBvcmlnaW5hbCBy
ZWhhc2hpbmcgbWVjaGFuaXNtLg0KPg0KPiBNaWNoZWwgVmVpbGxldHRlDQo+IFN5c3RlbSBBcmNo
aXRlY3R1cmUgRGlyZWN0b3INCj4gVHJpbGxpYW50IEluYy4NCj4gVGVsOiA0NTAtMzc1LTA1NTYg
ZXh0LiAyMzcNCj4gbWljaGVsLnZlaWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tDQo+IHd3dy50cmls
bGlhbnRpbmMuY29tDQo+DQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IHBl
dGVyIHZhbiBkZXIgU3RvayBbbWFpbHRvOnN0b2tjb25zQHhzNGFsbC5ubF0NCj4gU2VudDogMTkg
bWFpIDIwMTUgMDM6MjMNCj4gVG86IE1pY2hlbCBWZWlsbGV0dGUNCj4gQ2M6IENvcmU7IDZ0aXNj
aEBpZXRmLm9yZw0KPiBTdWJqZWN0OiBDb01JIHJlaGFzaGluZw0KPg0KPiBIaSBNaWNoZWwsDQo+
DQo+IEFwb2xvZ2llcyBmb3IgcmVhY3Rpbmcgc28gbGF0ZSwgYnV0IHdlIGhhZCBtYW55IGRpc2N1
c3Npb25zIHdoaWNoIHNsb3dseSBjb252ZXJnZWQgdG8gdGhlIHNvbHV0aW9uIGRlc2NyaWJlZCBp
biB0aGUgYXR0YWNobWVudC4NCj4NCj4gV0UgYWltIGF0IHJlaGFzaGluZyB3aGVuIGEgY2xhc2gg
b2NjdXJzLg0KPiBUaGUgY2xpZW50IG9ubHkgbmVlZHMgbWluaW1hbCBzdG9yYWdlIHNwYWNlOiB0
YWJsZSB3aXRoIHRoZSBuYW1lcyBvZiB0aGUgbW9kdWxlcy4NCj4gUGVyIHJlaGFzaCBjb2xsaXNp
b24sIHRoZSBjbGllbnQgb25seSBzdG9yZXMgb2xkIGhhc2gsIG5ldyBoYXNoLCBhbmQgDQo+IG1v
ZHVsZSBpZGVudGlmaWVyDQo+DQo+IFdlIHRoaW5rIHRoYXQgYSBnbG9iYWwgbW9kdWxlIG51bWJl
cmluZyBvZiBhbGwgcmVsZXZhbnQgbW9kdWxlcywgYWRtaW5pc3RyYXRlZCBieSBJQU5BLCBpcyBh
IGxhcmdlIHVuZGVydGFraW5nLg0KPiBHaXZlbiB0aGUgc3RydWdnbGUgd2Ugc2VlIGVsc2V3aGVy
ZSB0byBzYXZlIGJ5dGVzLCB3ZSB0aGluayBhbHNvIHRoYXQgd2Ugc2hvdWxkIG1pbmltaXplIHRo
ZSBwYXlsb2FkLg0KPg0KPiBHcmVldGluZ3MsDQo+DQo+IFBldGVyDQo+DQo+IC0tDQo+IFBldGVy
IHZhbiBkZXIgU3Rvaw0KPiB2YW5kZXJzdG9rIGNvbnN1bHRhbmN5DQo+IG1haWx0bzogY29uc3Vs
dGFuY3lAdmFuZGVyc3Rvay5vcmcNCj4gd3d3OiB3d3cudmFuZGVyc3Rvay5vcmcNCj4gdGVsIE5M
OiArMzEoMCk0OTI0NzQ2NzMgICAgIEY6ICszMygwKTk2NjAxNTI0OA0KPg0KPiBfX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPiBjb3JlIG1haWxpbmcgbGlz
dA0KPiBjb3JlQGlldGYub3JnDQo+IGh0dHBzOi8vd3d3LmlldGYub3JnL21haWxtYW4vbGlzdGlu
Zm8vY29yZQ0K


From nobody Tue May 19 11:34:21 2015
Return-Path: <andy@yumaworks.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id F40081A92F1 for <core@ietfa.amsl.com>; Tue, 19 May 2015 11:34:18 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.979
X-Spam-Level: 
X-Spam-Status: No, score=-1.979 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FM_FORGED_GMAIL=0.622, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=unavailable
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 hsm_sBf13KRG for <core@ietfa.amsl.com>; Tue, 19 May 2015 11:34:16 -0700 (PDT)
Received: from mail-la0-f52.google.com (mail-la0-f52.google.com [209.85.215.52]) (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 20A721A92B2 for <core@ietf.org>; Tue, 19 May 2015 11:34:11 -0700 (PDT)
Received: by labbd9 with SMTP id bd9so38661477lab.2 for <core@ietf.org>; Tue, 19 May 2015 11:34:09 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=oYORDQKdk2gsmFqXXzyhj6N9IhUZh+kTGKBDwIliRWE=; b=jYcEqpR7EnMdWrlNoYQ9eaUN1DMqUw2zMzNQqbS/L93Sl8gxRMghGelmiDWVmBMNL8 tp59OPPMWjwHrjTJtZO0t93mgkGjSM1XKZMlrWI+6U47EtJ6Uair9UDTOhTQmSuAJJi8 z4WJWvqhMCNiPm9ZHEeQH9PlIqHIFLEnXIAYh1ix2JjZfQwArdDWX9smsdOvwwYPpDzI GP0TdSkJGrbeKdNGqpV8frJM36C1sSUi30oezFCDaIB9+4yJszMIfOk1ktrZf4iKL6DS kfrCS1+635Um84lt57IhR36PkxKWlCmBd3XSab5/GWrfSASKSF+qsQtZ+rOGwvPrFhlh ZnOw==
X-Gm-Message-State: ALoCoQlvPIuzhYjXwoTHMGn7DhCOijCgj7CPoMNMdn1ay4i3oYrDVB+zKI0lbUzflaFV47pSxAiA
MIME-Version: 1.0
X-Received: by 10.152.87.164 with SMTP id az4mr23073543lab.123.1432060449291;  Tue, 19 May 2015 11:34:09 -0700 (PDT)
Received: by 10.112.200.102 with HTTP; Tue, 19 May 2015 11:34:09 -0700 (PDT)
In-Reply-To: <CO2PR0601MB792DBA60BA66C32E8853841FEC30@CO2PR0601MB792.namprd06.prod.outlook.com>
References: <dabfda5a16901a917873bbc96d5561fe@xs4all.nl> <CO2PR0601MB7922F6E45BACC3350488B3CFEC30@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHQqdnXaZUaTKtUB3D2g0bWTK87v8-R9E72dYFXXJgoN_Q@mail.gmail.com> <CO2PR0601MB792DBA60BA66C32E8853841FEC30@CO2PR0601MB792.namprd06.prod.outlook.com>
Date: Tue, 19 May 2015 11:34:09 -0700
Message-ID: <CABCOCHSyPDyBDPVdtJ8Md9PLS_WOV29LCETEu2cxpeZ2qf0oag@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: Michel Veillette <Michel.Veillette@trilliantinc.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/RKzY38oalOIdVdKDGSJfsJ0SenE>
Cc: "6tisch@ietf.org" <6tisch@ietf.org>, Core <core@ietf.org>
Subject: Re: [core] CoMI rehashing
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 19 May 2015 18:34:19 -0000

On Tue, May 19, 2015 at 8:47 AM, Michel Veillette
<Michel.Veillette@trilliantinc.com> wrote:
> Hi Andy
>
> No, I didn=E2=80=99t try to investigate if YANG hash clashes within exist=
ing modules exist.
> Multiple of them of proprietary and doing an extensive search is not prac=
tical.
>
> The point is not to determine if such clashes exist but how the protocol =
will handle them if they do exist.
> The current answer seem to be bad luck, try again, your module can't be i=
mplemented using CoMI.
>

It is difficult to believe that a 6TISCH CoMI device is too small to
store 16K of strings, but it will be powerful enough to run YANG
modules intended for NETCONF devices such as routers.

There is a very small chance that a module in progress has
hash collisions in it, and the name of a node has to be changed
to fix it (before the module is published).
IMO this is the least painful solution.

> Michel Veillette


Andy


> System Architecture Director
> Trilliant Inc.
> Tel: 450-375-0556 ext. 237
> michel.veillette@trilliantinc.com
> www.trilliantinc.com
>
>
> -----Original Message-----
> From: Andy Bierman [mailto:andy@yumaworks.com]
> Sent: 19 mai 2015 11:35
> To: Michel Veillette
> Cc: consultancy@vanderstok.org; 6tisch@ietf.org; Core
> Subject: Re: [core] CoMI rehashing
>
> On Tue, May 19, 2015 at 8:23 AM, Michel Veillette <Michel.Veillette@trill=
iantinc.com> wrote:
>> Hi Peter
>>
>> Your propose solution doesn't seem to address YANG hash clashes happenin=
g within a YANG module.
>>
>> Multiple times in your document, you assume that clashes can't happen wi=
thin a YANG module.
>> Page 1,  "It is assumed that no clashes occur within one module, and by =
prefixing a module identifier to the hash, clashing hashes can be distingui=
shed"
>> Page 3,  "A data node is completely identified by the module identifier =
and the hash value."
>>
>> We can probaly make this assumption for YANG modules specifically design=
 for CoMI but this is not true for existing YANG modules and future modules=
 not designed with CoMI in mind.
>>
>
>
> Dos this mean you have identified existing YANG modules that would have m=
ultiple nodes with the same hash value?
> I have not found any so far.
>
> IMO it is much more reasonable to make sure that a YANG module intended f=
or use in CoMI does not have any clashes.
>
>
>> =3D=3D=3D=3D=3D=3D=3D
>>
>> About "the client creates a "server_table" with entries: <server id, old=
 hash, M_id, new hash> "
>>
>> Let say we have the following two data nodes:
>>    /sys:system-state/sys:clock/sys:current-datetime, 355927048
>>    /sys:system-state/sys:clock/sys:boot-datetime, 355927048
>>
>
> But these are the wrong hash values.
>
>> Having the following table within the client is not sufficient to distin=
guate between the "current-datetime" and the "boot-datetime".
>>    fe80::200:f8ff:fe21:67cf, 355927048, ietf-system, 783481403
>>    fe80::200:f8ff:fe21:67cf, 355927048, ietf-system, 530731873
>>
>
> The assumption is that modules for CoMI will be checked for hash collisio=
ns, and the module will be altered to remove any collisions.  Since a modul=
e has about 100 nodes in it and it takes about 70,000 nodes for a 50% chanc=
e at a collision, it will be quite easy to prevent clashes in a single modu=
le.
>
>
>
> Andy
>
>> =3D=3D=3D=3D=3D=3D=3D=3D
>>
>> Introducing the concept of "hash clash" error help to avoid the need to =
retreive the "clash_file" when no clashes exist.
>> However, if we agree that clashes may exist within a YANG module, we are=
 back to square one with the original rehashing mechanism.
>>
>> Michel Veillette
>> System Architecture Director
>> Trilliant Inc.
>> Tel: 450-375-0556 ext. 237
>> michel.veillette@trilliantinc.com
>> www.trilliantinc.com
>>
>> -----Original Message-----
>> From: peter van der Stok [mailto:stokcons@xs4all.nl]
>> Sent: 19 mai 2015 03:23
>> To: Michel Veillette
>> Cc: Core; 6tisch@ietf.org
>> Subject: CoMI rehashing
>>
>> Hi Michel,
>>
>> Apologies for reacting so late, but we had many discussions which slowly=
 converged to the solution described in the attachment.
>>
>> WE aim at rehashing when a clash occurs.
>> The client only needs minimal storage space: table with the names of the=
 modules.
>> Per rehash collision, the client only stores old hash, new hash, and
>> module identifier
>>
>> We think that a global module numbering of all relevant modules, adminis=
trated by IANA, is a large undertaking.
>> Given the struggle we see elsewhere to save bytes, we think also that we=
 should minimize the payload.
>>
>> Greetings,
>>
>> Peter
>>
>> --
>> Peter van der Stok
>> vanderstok consultancy
>> mailto: consultancy@vanderstok.org
>> www: www.vanderstok.org
>> tel NL: +31(0)492474673     F: +33(0)966015248
>>
>> _______________________________________________
>> core mailing list
>> core@ietf.org
>> https://www.ietf.org/mailman/listinfo/core


From nobody Tue May 19 12:49:38 2015
Return-Path: <Michel.Veillette@trilliantinc.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 3FA141B2A46; Tue, 19 May 2015 12:49:36 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.852
X-Spam-Level: 
X-Spam-Status: No, score=0.852 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FRT_BELOW2=2.154, J_CHICKENPOX_55=0.6, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=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 QMwxr9ybbPHt; Tue, 19 May 2015 12:49:34 -0700 (PDT)
Received: from na01-by2-obe.outbound.protection.outlook.com (mail-by2on0102.outbound.protection.outlook.com [207.46.100.102]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 393561B2A5B; Tue, 19 May 2015 12:49:23 -0700 (PDT)
Received: from CO2PR0601MB792.namprd06.prod.outlook.com (10.141.247.144) by CO2PR0601MB0918.namprd06.prod.outlook.com (10.141.248.26) with Microsoft SMTP Server (TLS) id 15.1.166.22; Tue, 19 May 2015 19:49:20 +0000
Received: from CO2PR0601MB792.namprd06.prod.outlook.com (10.141.247.144) by CO2PR0601MB792.namprd06.prod.outlook.com (10.141.247.144) with Microsoft SMTP Server (TLS) id 15.1.160.19; Tue, 19 May 2015 19:49:17 +0000
Received: from CO2PR0601MB792.namprd06.prod.outlook.com ([10.141.247.144]) by CO2PR0601MB792.namprd06.prod.outlook.com ([10.141.247.144]) with mapi id 15.01.0160.009; Tue, 19 May 2015 19:49:17 +0000
From: Michel Veillette <Michel.Veillette@trilliantinc.com>
To: Andy Bierman <andy@yumaworks.com>, "consultancy@vanderstok.org" <consultancy@vanderstok.org>
Thread-Topic: [core] CoMI rehashing
Thread-Index: AQHQkgSuXE++bCKK7kqMBAf0Z8FiQJ2DWAiggAAWvQCAAAGJwIAAMHKAgAAAVRA=
Date: Tue, 19 May 2015 19:49:16 +0000
Message-ID: <CO2PR0601MB792CE9F7AA5CFE11F3556ACFEC30@CO2PR0601MB792.namprd06.prod.outlook.com>
References: <dabfda5a16901a917873bbc96d5561fe@xs4all.nl> <CO2PR0601MB7922F6E45BACC3350488B3CFEC30@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHQqdnXaZUaTKtUB3D2g0bWTK87v8-R9E72dYFXXJgoN_Q@mail.gmail.com> <CO2PR0601MB792DBA60BA66C32E8853841FEC30@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHSyPDyBDPVdtJ8Md9PLS_WOV29LCETEu2cxpeZ2qf0oag@mail.gmail.com>
In-Reply-To: <CABCOCHSyPDyBDPVdtJ8Md9PLS_WOV29LCETEu2cxpeZ2qf0oag@mail.gmail.com>
Accept-Language: fr-CA, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: spf=none (sender IP is ) smtp.mailfrom=Michel.Veillette@trilliantinc.com; 
x-originating-ip: [207.96.192.122]
x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:; SRVR:CO2PR0601MB792; UriScan:; BCL:0; PCL:0; RULEID:; SRVR:CO2PR0601MB0918; 
x-microsoft-antispam-prvs: <CO2PR0601MB7921961B355A667AC76084CFEC30@CO2PR0601MB792.namprd06.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:;
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(601004)(5005006)(3002001); SRVR:CO2PR0601MB792; BCL:0; PCL:0; RULEID:;  SRVR:CO2PR0601MB792; 
x-forefront-prvs: 0581B5AB35
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(6009001)(377454003)(13464003)(38414003)(189002)(199003)(51704005)(24454002)(189998001)(5001830100001)(5001960100002)(5001770100001)(5001860100001)(76576001)(106116001)(33656002)(106356001)(2900100001)(2950100001)(19580405001)(19580395003)(54356999)(50986999)(40100003)(15975445007)(101416001)(64706001)(86362001)(2656002)(87936001)(15974865002)(66066001)(74316001)(4001540100001)(97736004)(68736005)(2501003)(77156002)(77096005)(81156007)(92566002)(102836002)(76176999)(122556002)(62966003)(46102003)(105586002)(93886004)(99286002)(5890100001); DIR:OUT; SFP:1102; SCL:1; SRVR:CO2PR0601MB792; H:CO2PR0601MB792.namprd06.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords;  MX:1; A:1; LANG:en; 
received-spf: None (protection.outlook.com: trilliantinc.com does not designate permitted sender hosts)
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-originalarrivaltime: 19 May 2015 19:49:16.9174 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 4f6fbd13-0dfb-4150-85c3-d43260c04309
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO2PR0601MB792
X-OriginatorOrg: trilliantinc.com
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/6EQd-UDEwmyAkLgPQWIzNQCUSjM>
Cc: "6tisch@ietf.org" <6tisch@ietf.org>, Core <core@ietf.org>
Subject: Re: [core] CoMI rehashing
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 19 May 2015 19:49:36 -0000

SGkgQW5keSwgSGkgUGV0ZXINCg0KQSBzb2x1dGlvbiBiYXNlZCBvbiB0aGUgdXNlIG9mICJtb2R1
bGUgSUQsIFlBTkcgaGFzaCIgYXMgdW5pcXVlIGlkZW50aWZpZXIgc2VlbSB0byBiZSBwcm9taXNp
bmcuDQpJZiB3ZSBjYW4gc3VjY2Vzc2Z1bGx5IGFkZHJlc3MgdGhlIGl0ZW1zIGJlbGxvdyAoMSB0
byAzKSwgSSBiZWxpZXZlIHdlIGNhbiBhZGRyZXNzIHRoZSBkaWZmZXJlbnQgaXNzdWVzIGlkZW50
aWZpZWQgd2l0aG91dCBpbnRyb2R1Y2luZyBhIG1vZHVsZSBJRCByZWdpc3RyeS4NClNvbWV0aGlu
ZyBJIGFncmVlIGl0IHdpbGwgYmUgbmljZSB0byBhdm9pZC4NCg0KSXNzdWVzOg0KLSAiY2xhc2hf
ZmlsZSIgb24gdGhlIHNlcnZlciBzaWRlDQotIHRyYWZmaWMgb3ZlcmhlYWQgKGhhbmRzaGFrZSB0
byByZXRyaWV2ZSB0aGUgImNsYXNoX2ZpbGUiKQ0KLSBwZXItc2VydmVyIHJlaGFzaCB0YWJsZSBv
dmVyaGVhZCBvbiB0aGUgY2xpZW50IHNpZGUNCi0gc3RyaW5nIHRhYmxlIG92ZXJoZWFkIG9uIHRo
ZSBjbGllbnQgc2lkZSB0byBpbmRleCB0aGUgImNsYXNoX2ZpbGUiDQoNCklURU0gMSkgSGFzaCBj
bGFzaGVzIHdpdGhpbiBhIFlBTkcgbW9kdWxlDQoNCldlIG5lZWQgdG8gZGVzY3JpYmUgb25lIG9y
IG11bHRpcGxlIGFwcHJvYWNoZXMgdG8gcmVzb2x2ZSBZQU5HIGhhc2ggY2xhc2hlcyB3aXRoaW4g
YSBtb2R1bGUgaWYgdGhpcyBldmVyIGhhcHBlbi4NCi0gV2UgY2FuIHN1Z2dlc3QgdG8gcmVuYW1l
IGFueSBjb25mbGljdGluZyBkYXRhIG5vZGUgaWRlbnRpZmllcihzKSBwcmlvciBwdWJsaXNoaW5n
DQotIFdlIGNhbiBpbnRyb2R1Y2UgYSBuZXcgWUFORyBzdGF0ZW1lbnQgdG8gYXNzaWduIGFuIGFs
dGVybmF0ZSBoYXNoIHZhbHVlIHRvIGFuIGFscmVhZHkgcHVibGlzaGVkIFlBTkcgbW9kdWxlDQot
IFdlIGNhbiBhbHNvIHNldHVwIGEgcmVnaXN0cnkgdG8gcHVibGlzaCBhbHRlcm5hdGUgaGFzaCB2
YWx1ZXMgdG8gYW4gYWxyZWFkeSBwdWJsaXNoZWQgWUFORyBtb2R1bGUNCg0KSVRFTSAyKSAgVHJh
ZmZpYyBvdmVyaGVhZA0KDQpUaGUgcHJvcG9zZSBoYXNoIGNsYXNoIGVycm9yIGlzIGEgc3RlcCBp
biB0aGUgcmlnaHQgZGlyZWN0aW9uIHRvIGF2b2lkIHRoZSB1cGZyb250IHJldHJpZXZhbCBvZiB0
aGUgImNsYXNoX2ZpbGUiLiBUbyBjb21wbGV0ZWx5IGVsaW1pbmF0ZSB0aGUgbmVlZCB0byByZXRy
aWV2ZSB0aGUgImNsYXNoX2ZpbGUiICwgSSBwcm9wb3NlIHRvIHN1cHBvcnQgdGhlICJtb2R1bGUg
bmFtZSIgYXMgYW4gb3B0aW9uYWwgcXVlcnkgcGFyYW1ldGVyLiBUaGlzIG9wdGlvbiBjYW4gYmUg
dXNlZCB0byBhY2Nlc3MgdGhlIHRhcmdldGVkIGRhdGEgbm9kZSBhZnRlciByZWNlaXZpbmcgYSBo
YXNoIGNsYXNoZXMgZXJyb3Igb3IgdG8gYXZvaWQgaGFzaCBjbGFzaGVzIGVycm9ycy4NCg0KRm9y
IGV4YW1wbGU6DQogICBUbyByZXRyaWV2ZSBkYXRhIG5vZGVzICJjdXJyZW50LWRhdGV0aW1lIiBh
bmQgICJib290LWRhdGV0aW1lIg0KDQogICBPcHRpb24gIzEgDQogICAgICBSRVE6IEdFVCBleGFt
cGxlLmNvbS9tZz9zZWxlY3Q9IFZOd1FJLGZvbE5oDQogICAgICAoVGhpcyByZXF1ZXN0IG1heSBy
ZXR1cm4gYSBoYXNoIGNsYXNoIGVycm9yKQ0KDQogICBPcHRpb24gIzINCiAgICAgIFJFUTogR0VU
IGV4YW1wbGUuY29tL21nP3NlbGVjdD1pZXRmLXN5c3RlbShWTndRSSxmb2xOaCkNCiAgICAgIChU
aGlzIHJlcXVlc3QgbmV2ZXIgcmV0dXJuIGEgaGFzaCBjbGFzaCBlcnJvcikNCg0KSVRFTSAzKSBE
YXRhc3RvcmUgYWNjZXNzDQoNCkFjY2VzcyAoR0VUIGFuZCBQVVQpIG9mICB0aGUgZW50aXJlIGRh
dGFzdG9yZSBpcyBhbiBpbXBvcnRhbnQgZmVhdHVyZSB0byBhbGxvd3MgYmFja3VwIGFuZCByZXN0
b3JhdGlvbiBvZiBhIGRldmljZSBjb25maWd1cmF0aW9uLiBUbyByZXNvbHZlIGhhc2ggY2xhc2hl
cyBiZXR3ZWVuIG1vZHVsZXMsIEkgcHJvcG9zZSB0byBzdXBwb3J0IHRoZSBjb25jZXB0IG9mIG1v
ZHVsZSBjb250ZXh0IGFzIGRlc2NyaWJlIGluIG15IGRvY3VtZW50IChkcmFmdC12YW5kZXJzdG9r
LWNvcmUtY29taS0wNiAtIE1WLmRvY3gpLg0KDQpGb3IgZXhhbXBsZToNCg0KICAgUkVROiBHRVQg
ZXhhbXBsZS5jb20vbWcNCg0KICAgUkVTOiAyLjA1IENvbnRlbnQgKENvbnRlbnQtRm9ybWF0OiBh
cHBsaWNhdGlvbi9jYm9yKQ0KICAgew0KICAgICAgIm1vZHVsZSBhIiA6IHsNCiAgICAgICAgIDM2
NTI1NzIzNSA6IHZhbHVlDQogICAgICAgICA3MDIxNDk2MjYgOiB7DQogICAgICAgICAgICAyMTU5
OTMzMjkgOiB2YWx1ZSAgICAgICAgICAgIDwtLS0gaGFzaCBjbGFzaGVzDQogICAgICAgICAgICA5
NjIxOTE2ODIgOiB2YWx1ZQ0KICAgICAgICAgfSwNCiAgICAgICAgIDgyOTIyMjk4MyA6IHZhbHVl
DQogICAgICB9LA0KICAgICAgIm1vZHVsZSBiIiA6IHsNCiAgICAgICAgIDIxNTk5MzMyOSA6IHZh
bHVlICAgICAgICAgICAgICAgPC0tLSBoYXNoIGNsYXNoZXMNCiAgICAgIH0sDQogICAgICAibW9k
dWxlIGMiIDogew0KICAgICAgICAgOTkzNTMzNTI3IDogdmFsdWUNCiAgICAgIH0NCiAgIH0NCg0K
SSBob3BlIHRoaXMgYXBwcm9hY2ggcmVwcmVzZW50cyBhIHdpbi93aW4gc29sdXRpb24gd2hpY2gg
YXZvaWQgdGhlIHR3byBjb250ZW50aW91cyBpdGVtczoNCi0gSUFOQSBtb2R1bGUgSUQgcmVnaXN0
cmF0aW9uDQotIHJlaGFzaCBhbmQgImNsYXNoX2ZpbGUiDQoNCkluIHN1bW1hcnk6DQpJbiB0aGlz
IHNvbHV0aW9uIHRoZXJlIGlzIG5vIG1vcmUgcmVoYXNoIHZhbHVlLCBubyAiY2xhc2hfZmlsZSIu
DQpXZSBqdXN0IHVzZSB0aGUgIm1vZHVsZSBJRCwgWUFORyBoYXNoIiBhcyB1bmlxdWUgaWRlbnRp
Zmllci4NCk1lc3NhZ2Ugc2l6ZSBvdmVyaGVhZCBpcyBrZWVwIHRvIGEgbWluaW11bSBhbmQgdGhp
cyBvdmVyaGVhZCBpcyBvcHRpb25hbCAoYXQgdGhlIGV4Y2VwdGlvbiBvZiB0aGUgZGF0YXN0b3Jl
IGFjY2VzcykuDQoNCk1pY2hlbCBWZWlsbGV0dGUNClN5c3RlbSBBcmNoaXRlY3R1cmUgRGlyZWN0
b3INClRyaWxsaWFudCBJbmMuDQpUZWw6IDQ1MC0zNzUtMDU1NiBleHQuIDIzNw0KbWljaGVsLnZl
aWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tDQp3d3cudHJpbGxpYW50aW5jLmNvbSDCoCANCg0KDQot
LS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KRnJvbTogQW5keSBCaWVybWFuIFttYWlsdG86YW5k
eUB5dW1hd29ya3MuY29tXSANClNlbnQ6IDE5IG1haSAyMDE1IDE0OjM0DQpUbzogTWljaGVsIFZl
aWxsZXR0ZQ0KQ2M6IGNvbnN1bHRhbmN5QHZhbmRlcnN0b2sub3JnOyA2dGlzY2hAaWV0Zi5vcmc7
IENvcmUNClN1YmplY3Q6IFJlOiBbY29yZV0gQ29NSSByZWhhc2hpbmcNCg0KT24gVHVlLCBNYXkg
MTksIDIwMTUgYXQgODo0NyBBTSwgTWljaGVsIFZlaWxsZXR0ZSA8TWljaGVsLlZlaWxsZXR0ZUB0
cmlsbGlhbnRpbmMuY29tPiB3cm90ZToNCj4gSGkgQW5keQ0KPg0KPiBObywgSSBkaWRu4oCZdCB0
cnkgdG8gaW52ZXN0aWdhdGUgaWYgWUFORyBoYXNoIGNsYXNoZXMgd2l0aGluIGV4aXN0aW5nIG1v
ZHVsZXMgZXhpc3QuDQo+IE11bHRpcGxlIG9mIHRoZW0gb2YgcHJvcHJpZXRhcnkgYW5kIGRvaW5n
IGFuIGV4dGVuc2l2ZSBzZWFyY2ggaXMgbm90IHByYWN0aWNhbC4NCj4NCj4gVGhlIHBvaW50IGlz
IG5vdCB0byBkZXRlcm1pbmUgaWYgc3VjaCBjbGFzaGVzIGV4aXN0IGJ1dCBob3cgdGhlIHByb3Rv
Y29sIHdpbGwgaGFuZGxlIHRoZW0gaWYgdGhleSBkbyBleGlzdC4NCj4gVGhlIGN1cnJlbnQgYW5z
d2VyIHNlZW0gdG8gYmUgYmFkIGx1Y2ssIHRyeSBhZ2FpbiwgeW91ciBtb2R1bGUgY2FuJ3QgYmUg
aW1wbGVtZW50ZWQgdXNpbmcgQ29NSS4NCj4NCg0KSXQgaXMgZGlmZmljdWx0IHRvIGJlbGlldmUg
dGhhdCBhIDZUSVNDSCBDb01JIGRldmljZSBpcyB0b28gc21hbGwgdG8gc3RvcmUgMTZLIG9mIHN0
cmluZ3MsIGJ1dCBpdCB3aWxsIGJlIHBvd2VyZnVsIGVub3VnaCB0byBydW4gWUFORyBtb2R1bGVz
IGludGVuZGVkIGZvciBORVRDT05GIGRldmljZXMgc3VjaCBhcyByb3V0ZXJzLg0KDQpUaGVyZSBp
cyBhIHZlcnkgc21hbGwgY2hhbmNlIHRoYXQgYSBtb2R1bGUgaW4gcHJvZ3Jlc3MgaGFzIGhhc2gg
Y29sbGlzaW9ucyBpbiBpdCwgYW5kIHRoZSBuYW1lIG9mIGEgbm9kZSBoYXMgdG8gYmUgY2hhbmdl
ZCB0byBmaXggaXQgKGJlZm9yZSB0aGUgbW9kdWxlIGlzIHB1Ymxpc2hlZCkuDQpJTU8gdGhpcyBp
cyB0aGUgbGVhc3QgcGFpbmZ1bCBzb2x1dGlvbi4NCg0KPiBNaWNoZWwgVmVpbGxldHRlDQoNCg0K
QW5keQ0KDQoNCj4gU3lzdGVtIEFyY2hpdGVjdHVyZSBEaXJlY3Rvcg0KPiBUcmlsbGlhbnQgSW5j
Lg0KPiBUZWw6IDQ1MC0zNzUtMDU1NiBleHQuIDIzNw0KPiBtaWNoZWwudmVpbGxldHRlQHRyaWxs
aWFudGluYy5jb20NCj4gd3d3LnRyaWxsaWFudGluYy5jb20NCj4NCj4NCj4gLS0tLS1PcmlnaW5h
bCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogQW5keSBCaWVybWFuIFttYWlsdG86YW5keUB5dW1hd29y
a3MuY29tXQ0KPiBTZW50OiAxOSBtYWkgMjAxNSAxMTozNQ0KPiBUbzogTWljaGVsIFZlaWxsZXR0
ZQ0KPiBDYzogY29uc3VsdGFuY3lAdmFuZGVyc3Rvay5vcmc7IDZ0aXNjaEBpZXRmLm9yZzsgQ29y
ZQ0KPiBTdWJqZWN0OiBSZTogW2NvcmVdIENvTUkgcmVoYXNoaW5nDQo+DQo+IE9uIFR1ZSwgTWF5
IDE5LCAyMDE1IGF0IDg6MjMgQU0sIE1pY2hlbCBWZWlsbGV0dGUgPE1pY2hlbC5WZWlsbGV0dGVA
dHJpbGxpYW50aW5jLmNvbT4gd3JvdGU6DQo+PiBIaSBQZXRlcg0KPj4NCj4+IFlvdXIgcHJvcG9z
ZSBzb2x1dGlvbiBkb2Vzbid0IHNlZW0gdG8gYWRkcmVzcyBZQU5HIGhhc2ggY2xhc2hlcyBoYXBw
ZW5pbmcgd2l0aGluIGEgWUFORyBtb2R1bGUuDQo+Pg0KPj4gTXVsdGlwbGUgdGltZXMgaW4geW91
ciBkb2N1bWVudCwgeW91IGFzc3VtZSB0aGF0IGNsYXNoZXMgY2FuJ3QgaGFwcGVuIHdpdGhpbiBh
IFlBTkcgbW9kdWxlLg0KPj4gUGFnZSAxLCAgIkl0IGlzIGFzc3VtZWQgdGhhdCBubyBjbGFzaGVz
IG9jY3VyIHdpdGhpbiBvbmUgbW9kdWxlLCBhbmQgYnkgcHJlZml4aW5nIGEgbW9kdWxlIGlkZW50
aWZpZXIgdG8gdGhlIGhhc2gsIGNsYXNoaW5nIGhhc2hlcyBjYW4gYmUgZGlzdGluZ3Vpc2hlZCIN
Cj4+IFBhZ2UgMywgICJBIGRhdGEgbm9kZSBpcyBjb21wbGV0ZWx5IGlkZW50aWZpZWQgYnkgdGhl
IG1vZHVsZSBpZGVudGlmaWVyIGFuZCB0aGUgaGFzaCB2YWx1ZS4iDQo+Pg0KPj4gV2UgY2FuIHBy
b2JhbHkgbWFrZSB0aGlzIGFzc3VtcHRpb24gZm9yIFlBTkcgbW9kdWxlcyBzcGVjaWZpY2FsbHkg
ZGVzaWduIGZvciBDb01JIGJ1dCB0aGlzIGlzIG5vdCB0cnVlIGZvciBleGlzdGluZyBZQU5HIG1v
ZHVsZXMgYW5kIGZ1dHVyZSBtb2R1bGVzIG5vdCBkZXNpZ25lZCB3aXRoIENvTUkgaW4gbWluZC4N
Cj4+DQo+DQo+DQo+IERvcyB0aGlzIG1lYW4geW91IGhhdmUgaWRlbnRpZmllZCBleGlzdGluZyBZ
QU5HIG1vZHVsZXMgdGhhdCB3b3VsZCBoYXZlIG11bHRpcGxlIG5vZGVzIHdpdGggdGhlIHNhbWUg
aGFzaCB2YWx1ZT8NCj4gSSBoYXZlIG5vdCBmb3VuZCBhbnkgc28gZmFyLg0KPg0KPiBJTU8gaXQg
aXMgbXVjaCBtb3JlIHJlYXNvbmFibGUgdG8gbWFrZSBzdXJlIHRoYXQgYSBZQU5HIG1vZHVsZSBp
bnRlbmRlZCBmb3IgdXNlIGluIENvTUkgZG9lcyBub3QgaGF2ZSBhbnkgY2xhc2hlcy4NCj4NCj4N
Cj4+ID09PT09PT0NCj4+DQo+PiBBYm91dCAidGhlIGNsaWVudCBjcmVhdGVzIGEgInNlcnZlcl90
YWJsZSIgd2l0aCBlbnRyaWVzOiA8c2VydmVyIGlkLCBvbGQgaGFzaCwgTV9pZCwgbmV3IGhhc2g+
ICINCj4+DQo+PiBMZXQgc2F5IHdlIGhhdmUgdGhlIGZvbGxvd2luZyB0d28gZGF0YSBub2RlczoN
Cj4+ICAgIC9zeXM6c3lzdGVtLXN0YXRlL3N5czpjbG9jay9zeXM6Y3VycmVudC1kYXRldGltZSwg
MzU1OTI3MDQ4DQo+PiAgICAvc3lzOnN5c3RlbS1zdGF0ZS9zeXM6Y2xvY2svc3lzOmJvb3QtZGF0
ZXRpbWUsIDM1NTkyNzA0OA0KPj4NCj4NCj4gQnV0IHRoZXNlIGFyZSB0aGUgd3JvbmcgaGFzaCB2
YWx1ZXMuDQo+DQo+PiBIYXZpbmcgdGhlIGZvbGxvd2luZyB0YWJsZSB3aXRoaW4gdGhlIGNsaWVu
dCBpcyBub3Qgc3VmZmljaWVudCB0byBkaXN0aW5ndWF0ZSBiZXR3ZWVuIHRoZSAiY3VycmVudC1k
YXRldGltZSIgYW5kIHRoZSAiYm9vdC1kYXRldGltZSIuDQo+PiAgICBmZTgwOjoyMDA6ZjhmZjpm
ZTIxOjY3Y2YsIDM1NTkyNzA0OCwgaWV0Zi1zeXN0ZW0sIDc4MzQ4MTQwMw0KPj4gICAgZmU4MDo6
MjAwOmY4ZmY6ZmUyMTo2N2NmLCAzNTU5MjcwNDgsIGlldGYtc3lzdGVtLCA1MzA3MzE4NzMNCj4+
DQo+DQo+IFRoZSBhc3N1bXB0aW9uIGlzIHRoYXQgbW9kdWxlcyBmb3IgQ29NSSB3aWxsIGJlIGNo
ZWNrZWQgZm9yIGhhc2ggY29sbGlzaW9ucywgYW5kIHRoZSBtb2R1bGUgd2lsbCBiZSBhbHRlcmVk
IHRvIHJlbW92ZSBhbnkgY29sbGlzaW9ucy4gIFNpbmNlIGEgbW9kdWxlIGhhcyBhYm91dCAxMDAg
bm9kZXMgaW4gaXQgYW5kIGl0IHRha2VzIGFib3V0IDcwLDAwMCBub2RlcyBmb3IgYSA1MCUgY2hh
bmNlIGF0IGEgY29sbGlzaW9uLCBpdCB3aWxsIGJlIHF1aXRlIGVhc3kgdG8gcHJldmVudCBjbGFz
aGVzIGluIGEgc2luZ2xlIG1vZHVsZS4NCj4NCj4NCj4NCj4gQW5keQ0KPg0KPj4gPT09PT09PT0N
Cj4+DQo+PiBJbnRyb2R1Y2luZyB0aGUgY29uY2VwdCBvZiAiaGFzaCBjbGFzaCIgZXJyb3IgaGVs
cCB0byBhdm9pZCB0aGUgbmVlZCB0byByZXRyZWl2ZSB0aGUgImNsYXNoX2ZpbGUiIHdoZW4gbm8g
Y2xhc2hlcyBleGlzdC4NCj4+IEhvd2V2ZXIsIGlmIHdlIGFncmVlIHRoYXQgY2xhc2hlcyBtYXkg
ZXhpc3Qgd2l0aGluIGEgWUFORyBtb2R1bGUsIHdlIGFyZSBiYWNrIHRvIHNxdWFyZSBvbmUgd2l0
aCB0aGUgb3JpZ2luYWwgcmVoYXNoaW5nIG1lY2hhbmlzbS4NCj4+DQo+PiBNaWNoZWwgVmVpbGxl
dHRlDQo+PiBTeXN0ZW0gQXJjaGl0ZWN0dXJlIERpcmVjdG9yDQo+PiBUcmlsbGlhbnQgSW5jLg0K
Pj4gVGVsOiA0NTAtMzc1LTA1NTYgZXh0LiAyMzcNCj4+IG1pY2hlbC52ZWlsbGV0dGVAdHJpbGxp
YW50aW5jLmNvbQ0KPj4gd3d3LnRyaWxsaWFudGluYy5jb20NCj4+DQo+PiAtLS0tLU9yaWdpbmFs
IE1lc3NhZ2UtLS0tLQ0KPj4gRnJvbTogcGV0ZXIgdmFuIGRlciBTdG9rIFttYWlsdG86c3Rva2Nv
bnNAeHM0YWxsLm5sXQ0KPj4gU2VudDogMTkgbWFpIDIwMTUgMDM6MjMNCj4+IFRvOiBNaWNoZWwg
VmVpbGxldHRlDQo+PiBDYzogQ29yZTsgNnRpc2NoQGlldGYub3JnDQo+PiBTdWJqZWN0OiBDb01J
IHJlaGFzaGluZw0KPj4NCj4+IEhpIE1pY2hlbCwNCj4+DQo+PiBBcG9sb2dpZXMgZm9yIHJlYWN0
aW5nIHNvIGxhdGUsIGJ1dCB3ZSBoYWQgbWFueSBkaXNjdXNzaW9ucyB3aGljaCBzbG93bHkgY29u
dmVyZ2VkIHRvIHRoZSBzb2x1dGlvbiBkZXNjcmliZWQgaW4gdGhlIGF0dGFjaG1lbnQuDQo+Pg0K
Pj4gV0UgYWltIGF0IHJlaGFzaGluZyB3aGVuIGEgY2xhc2ggb2NjdXJzLg0KPj4gVGhlIGNsaWVu
dCBvbmx5IG5lZWRzIG1pbmltYWwgc3RvcmFnZSBzcGFjZTogdGFibGUgd2l0aCB0aGUgbmFtZXMg
b2YgdGhlIG1vZHVsZXMuDQo+PiBQZXIgcmVoYXNoIGNvbGxpc2lvbiwgdGhlIGNsaWVudCBvbmx5
IHN0b3JlcyBvbGQgaGFzaCwgbmV3IGhhc2gsIGFuZCANCj4+IG1vZHVsZSBpZGVudGlmaWVyDQo+
Pg0KPj4gV2UgdGhpbmsgdGhhdCBhIGdsb2JhbCBtb2R1bGUgbnVtYmVyaW5nIG9mIGFsbCByZWxl
dmFudCBtb2R1bGVzLCBhZG1pbmlzdHJhdGVkIGJ5IElBTkEsIGlzIGEgbGFyZ2UgdW5kZXJ0YWtp
bmcuDQo+PiBHaXZlbiB0aGUgc3RydWdnbGUgd2Ugc2VlIGVsc2V3aGVyZSB0byBzYXZlIGJ5dGVz
LCB3ZSB0aGluayBhbHNvIHRoYXQgd2Ugc2hvdWxkIG1pbmltaXplIHRoZSBwYXlsb2FkLg0KPj4N
Cj4+IEdyZWV0aW5ncywNCj4+DQo+PiBQZXRlcg0KPj4NCj4+IC0tDQo+PiBQZXRlciB2YW4gZGVy
IFN0b2sNCj4+IHZhbmRlcnN0b2sgY29uc3VsdGFuY3kNCj4+IG1haWx0bzogY29uc3VsdGFuY3lA
dmFuZGVyc3Rvay5vcmcNCj4+IHd3dzogd3d3LnZhbmRlcnN0b2sub3JnDQo+PiB0ZWwgTkw6ICsz
MSgwKTQ5MjQ3NDY3MyAgICAgRjogKzMzKDApOTY2MDE1MjQ4DQo+Pg0KPj4gX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCj4+IGNvcmUgbWFpbGluZyBsaXN0
DQo+PiBjb3JlQGlldGYub3JnDQo+PiBodHRwczovL3d3dy5pZXRmLm9yZy9tYWlsbWFuL2xpc3Rp
bmZvL2NvcmUNCg==


From nobody Tue May 19 23:54:16 2015
Return-Path: <stokcons@xs4all.nl>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id AAF771A8AC6; Tue, 19 May 2015 23:54:14 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.55
X-Spam-Level: 
X-Spam-Status: No, score=-1.55 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_FR=0.35, RCVD_IN_DNSWL_NONE=-0.0001] autolearn=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 y4dSO98AoFO8; Tue, 19 May 2015 23:54:13 -0700 (PDT)
Received: from lb1-smtp-cloud6.xs4all.net (lb1-smtp-cloud6.xs4all.net [194.109.24.24]) (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 821CB1A6F27; Tue, 19 May 2015 23:54:12 -0700 (PDT)
Received: from roundcube.xs4all.nl ([194.109.20.208]) by smtp-cloud6.xs4all.net with ESMTP id W6u91q0024VN296016u95L; Wed, 20 May 2015 08:54:09 +0200
Received: from AMontpellier-654-1-255-78.w92-133.abo.wanadoo.fr ([92.133.146.78]) by roundcube.xs4all.nl with HTTP (HTTP/1.1 POST); Wed, 20 May 2015 08:54:09 +0200
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Date: Wed, 20 May 2015 08:54:09 +0200
From: peter van der Stok <stokcons@xs4all.nl>
To: Michel Veillette <Michel.Veillette@trilliantinc.com>
Organization: vanderstok consultancy
Mail-Reply-To: consultancy@vanderstok.org
In-Reply-To: <CO2PR0601MB7922F6E45BACC3350488B3CFEC30@CO2PR0601MB792.namprd06.prod.outlook.com>
References: <dabfda5a16901a917873bbc96d5561fe@xs4all.nl> <CO2PR0601MB7922F6E45BACC3350488B3CFEC30@CO2PR0601MB792.namprd06.prod.outlook.com>
Message-ID: <1faa6f7eda6967cca6c6f96aa1a45054@xs4all.nl>
X-Sender: stokcons@xs4all.nl (2wnz22epMUmtZztFZTfLY42qEdldHNQG)
User-Agent: XS4ALL Webmail
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/R7qvYz2aAX-F1cI6if7XOeJZ7hA>
Cc: 6tisch@ietf.org, Core <core@ietf.org>
Subject: Re: [core] CoMI rehashing
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: consultancy@vanderstok.org
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 20 May 2015 06:54:14 -0000

Hi Michel,

When clashes can exist within a module, indeed the intended data node 
cannot be determined from the hash value and the module name.
We all agree about that.
If a clash happens within a module, the original data node names need to 
be stored in the client.
The new hash value can be found by inspecting the clash-file.

In conclusion:
(1) when no clashes occur within a module it is sufficient to store the 
module name and information per clash per server in the client.
(2) When clashes occur in a module, also the names of the clashing data 
nodes need to be stored in the client.
(3) When no clashes at all occur, no storage space is needed in the 
client.
Condition (1) produces acceptable overhead IMO.
condition (2) should be avoided but can be handled by the protocol
condition (3) may well be the norm in most cases.

Peter


Michel Veillette schreef op 2015-05-19 17:23:
> Hi Peter
> 
> Your propose solution doesn't seem to address YANG hash clashes
> happening within a YANG module.
> 
> Multiple times in your document, you assume that clashes can't happen
> within a YANG module.
> Page 1,  "It is assumed that no clashes occur within one module, and
> by prefixing a module identifier to the hash, clashing hashes can be
> distinguished"
> Page 3,  "A data node is completely identified by the module
> identifier and the hash value."
> 
> We can probaly make this assumption for YANG modules specifically
> design for CoMI but this is not true for existing YANG modules and
> future modules not designed with CoMI in mind.
> 
> =======
> 
> About "the client creates a "server_table" with entries: <server id,
> old hash, M_id, new hash> "
> 
> Let say we have the following two data nodes:
>    /sys:system-state/sys:clock/sys:current-datetime, 355927048
>    /sys:system-state/sys:clock/sys:boot-datetime, 355927048
> 
> Having the following table within the client is not sufficient to
> distinguate between the "current-datetime" and the "boot-datetime".
>    fe80::200:f8ff:fe21:67cf, 355927048, ietf-system, 783481403
>    fe80::200:f8ff:fe21:67cf, 355927048, ietf-system, 530731873
> 
> ========
> 
> Introducing the concept of "hash clash" error help to avoid the need
> to retreive the "clash_file" when no clashes exist.
> However, if we agree that clashes may exist within a YANG module, we
> are back to square one with the original rehashing mechanism.
> 
> Michel Veillette
> System Architecture Director
> Trilliant Inc.
> Tel: 450-375-0556 ext. 237
> michel.veillette@trilliantinc.com
> www.trilliantinc.com  
> 
> -----Original Message-----
> From: peter van der Stok [mailto:stokcons@xs4all.nl]
> Sent: 19 mai 2015 03:23
> To: Michel Veillette
> Cc: Core; 6tisch@ietf.org
> Subject: CoMI rehashing
> 
> Hi Michel,
> 
> Apologies for reacting so late, but we had many discussions which
> slowly converged to the solution described in the attachment.
> 
> WE aim at rehashing when a clash occurs.
> The client only needs minimal storage space: table with the names of
> the modules.
> Per rehash collision, the client only stores old hash, new hash, and
> module identifier
> 
> We think that a global module numbering of all relevant modules,
> administrated by IANA, is a large undertaking.
> Given the struggle we see elsewhere to save bytes, we think also that
> we should minimize the payload.
> 
> Greetings,
> 
> Peter
> 
> --
> Peter van der Stok
> vanderstok consultancy
> mailto: consultancy@vanderstok.org
> www: www.vanderstok.org
> tel NL: +31(0)492474673     F: +33(0)966015248


From nobody Wed May 20 03:15:13 2015
Return-Path: <stokcons@xs4all.nl>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 742621B35C2; Wed, 20 May 2015 03:15:10 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 3.904
X-Spam-Level: ***
X-Spam-Status: No, score=3.904 tagged_above=-999 required=5 tests=[BAYES_50=0.8, FRT_BELOW2=2.154, HELO_EQ_FR=0.35, J_CHICKENPOX_55=0.6, RCVD_IN_DNSWL_NONE=-0.0001] autolearn=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 YBgCk5lOjJoM; Wed, 20 May 2015 03:15:08 -0700 (PDT)
Received: from lb2-smtp-cloud6.xs4all.net (lb2-smtp-cloud6.xs4all.net [194.109.24.28]) (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D78B61B35D2; Wed, 20 May 2015 03:15:07 -0700 (PDT)
Received: from roundcube.xs4all.nl ([194.109.20.208]) by smtp-cloud6.xs4all.net with ESMTP id WAF51q00h4VN29601AF5ez; Wed, 20 May 2015 12:15:06 +0200
Received: from AMontpellier-654-1-255-78.w92-133.abo.wanadoo.fr ([92.133.146.78]) by roundcube.xs4all.nl with HTTP (HTTP/1.1 POST); Wed, 20 May 2015 12:15:05 +0200
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Date: Wed, 20 May 2015 12:15:05 +0200
From: peter van der Stok <stokcons@xs4all.nl>
To: Michel Veillette <Michel.Veillette@trilliantinc.com>
Organization: vanderstok consultancy
Mail-Reply-To: consultancy@vanderstok.org
In-Reply-To: <CO2PR0601MB792CE9F7AA5CFE11F3556ACFEC30@CO2PR0601MB792.namprd06.prod.outlook.com>
References: <dabfda5a16901a917873bbc96d5561fe@xs4all.nl> <CO2PR0601MB7922F6E45BACC3350488B3CFEC30@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHQqdnXaZUaTKtUB3D2g0bWTK87v8-R9E72dYFXXJgoN_Q@mail.gmail.com> <CO2PR0601MB792DBA60BA66C32E8853841FEC30@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHSyPDyBDPVdtJ8Md9PLS_WOV29LCETEu2cxpeZ2qf0oag@mail.gmail.com> <CO2PR0601MB792CE9F7AA5CFE11F3556ACFEC30@CO2PR0601MB792.namprd06.prod.outlook.com>
Message-ID: <318c674236a3cac594eb372e9c2466f0@xs4all.nl>
X-Sender: stokcons@xs4all.nl (X+6cqUjuxHsF37BrXLynAbDB/TuS5mcp)
User-Agent: XS4ALL Webmail
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/A5UZ4QPa7ZCgq4zNhsSnZQ5hMIQ>
Cc: 6tisch@ietf.org, Core <core@ietf.org>
Subject: Re: [core] CoMI rehashing
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: consultancy@vanderstok.org
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 20 May 2015 10:15:10 -0000

Hi Michel,

see below, some preliminary comments.

Peter

Michel Veillette schreef op 2015-05-19 21:49:
> Hi Andy, Hi Peter
> 
> A solution based on the use of "module ID, YANG hash" as unique
> identifier seem to be promising.
> If we can successfully address the items bellow (1 to 3), I believe we
> can address the different issues identified without introducing a
> module ID registry.
> Something I agree it will be nice to avoid.
<pvds>
Nice to know that we are on the same track
</pvds>
> 
> Issues:
> - "clash_file" on the server side
> - traffic overhead (handshake to retrieve the "clash_file")
> - per-server rehash table overhead on the client side
> - string table overhead on the client side to index the "clash_file"
> 
> ITEM 1) Hash clashes within a YANG module
> 
> We need to describe one or multiple approaches to resolve YANG hash
> clashes within a module if this ever happen.
> - We can suggest to rename any conflicting data node identifier(s)
> prior publishing
> - We can introduce a new YANG statement to assign an alternate hash
> value to an already published YANG module
> - We can also setup a registry to publish alternate hash values to an
> already published YANG module

<pvds>
Is this a subject for CoMI draft?
May be address this in another draft?
</pvds>

> 
> ITEM 2)  Traffic overhead
> 
> The propose hash clash error is a step in the right direction to avoid
> the upfront retrieval of the "clash_file".
<pvds>
The reason is different; I was worried about upgrades of servers, the 
specification left open that the old hash value of a data_node was 
rehashed,
and a new data-node with the original hash was added.
Clients could then access another data node with the old hash value.
</pvds>
> To completely eliminate the
> need to retrieve the "clash_file" , I propose to support the "module
> name" as an optional query parameter. This option can be used to
> access the targeted data node after receiving a hash clashes error or
> to avoid hash clashes errors.
> 
> For example:
>    To retrieve data nodes "current-datetime" and  "boot-datetime"
> 
>    Option #1
>       REQ: GET example.com/mg?select= VNwQI,folNh
>       (This request may return a hash clash error)
> 
>    Option #2
>       REQ: GET example.com/mg?select=ietf-system(VNwQI,folNh)
>       (This request never return a hash clash error)
> 
<pvds>

Your proposal increases data traffic permanently when a clash has 
occurred,
and needs the storage of module names in server as well.

With rehashing, the "clash_file" overhead happens only once after the 
reload of the server.

BTW the /mg string in URI is removed when possible.
</pvds>
> ITEM 3) Datastore access
> 
> Access (GET and PUT) of  the entire datastore is an important feature
> to allows backup and restoration of a device configuration.
<pvds>
You mean server or client, or both?
and what is device configuration? the set of data nodes that are 
accessible, or the values of all accessible data-nodes?
</pvds>
> To resolve
> hash clashes between modules, I propose to support the concept of
> module context as describe in my document
> (draft-vanderstok-core-comi-06 - MV.docx).
> 
> For example:
> 
>    REQ: GET example.com/mg
> 
>    RES: 2.05 Content (Content-Format: application/cbor)
>    {
>       "module a" : {
>          365257235 : value
>          702149626 : {
>             215993329 : value            <--- hash clashes
>             962191682 : value
>          },
>          829222983 : value
>       },
>       "module b" : {
>          215993329 : value               <--- hash clashes
>       },
>       "module c" : {
>          993533527 : value
>       }
>    }
> 
<pvds>
Do you want a dump of all values of all accessible data nodes?
The proposed syntax does not logically follow from ITEM 2), because 
rehashing is compulsory, and you will have two hashes pointing to the 
same value belonging to the same data node.
When using rehashing, a (smaller) flat table with "hash value : data 
node value" is returned.
Alternatively, I can see a request that returns for all clashed hashes 
the information: old hash, module name, new hash; but that means storing 
module names in server as well.
</pvds>

> I hope this approach represents a win/win solution which avoid the two
> contentious items:
> - IANA module ID registration
> - rehash and "clash_file"
<pvds>
The "clash-file" is only accessed by a client when a reload of the 
server (how often does that happen?) leads to hash clash (probability < 
10^-4)
</pvds>
> 
> In summary:
> In this solution there is no more rehash value, no "clash_file".
> We just use the "module name, YANG hash" as unique identifier.
<pvds>
This is then optional next to the compulsory rehashing?
</pvds>
> Message size overhead is keep to a minimum and this overhead is
> optional (at the exception of the datastore access).
> 
> Michel Veillette
> System Architecture Director
> Trilliant Inc.
> Tel: 450-375-0556 ext. 237
> michel.veillette@trilliantinc.com
> www.trilliantinc.com  
> 


From nobody Wed May 20 08:47:28 2015
Return-Path: <Michel.Veillette@trilliantinc.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id B747A1A88EB; Wed, 20 May 2015 08:47:26 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.852
X-Spam-Level: 
X-Spam-Status: No, score=0.852 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FRT_BELOW2=2.154, J_CHICKENPOX_55=0.6, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=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 3OaXzgPWOuy8; Wed, 20 May 2015 08:47:24 -0700 (PDT)
Received: from na01-bn1-obe.outbound.protection.outlook.com (mail-bn1on0764.outbound.protection.outlook.com [IPv6:2a01:111:f400:fc10::764]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 390D11A88AE; Wed, 20 May 2015 08:47:21 -0700 (PDT)
Received: from CO2PR0601MB792.namprd06.prod.outlook.com (10.141.247.144) by CO2PR0601MB789.namprd06.prod.outlook.com (10.141.247.141) with Microsoft SMTP Server (TLS) id 15.1.166.22; Wed, 20 May 2015 15:46:58 +0000
Received: from CO2PR0601MB792.namprd06.prod.outlook.com ([10.141.247.144]) by CO2PR0601MB792.namprd06.prod.outlook.com ([10.141.247.144]) with mapi id 15.01.0160.009; Wed, 20 May 2015 15:46:58 +0000
From: Michel Veillette <Michel.Veillette@trilliantinc.com>
To: "consultancy@vanderstok.org" <consultancy@vanderstok.org>
Thread-Topic: [core] CoMI rehashing
Thread-Index: AQHQkgSuXE++bCKK7kqMBAf0Z8FiQJ2DWAiggAAWvQCAAAGJwIAAMHKAgAAAVRCAAQaQgIAAWMnw
Date: Wed, 20 May 2015 15:46:57 +0000
Message-ID: <CO2PR0601MB7928EE0D09E272EC28D5DD6FEC20@CO2PR0601MB792.namprd06.prod.outlook.com>
References: <dabfda5a16901a917873bbc96d5561fe@xs4all.nl> <CO2PR0601MB7922F6E45BACC3350488B3CFEC30@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHQqdnXaZUaTKtUB3D2g0bWTK87v8-R9E72dYFXXJgoN_Q@mail.gmail.com> <CO2PR0601MB792DBA60BA66C32E8853841FEC30@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHSyPDyBDPVdtJ8Md9PLS_WOV29LCETEu2cxpeZ2qf0oag@mail.gmail.com> <CO2PR0601MB792CE9F7AA5CFE11F3556ACFEC30@CO2PR0601MB792.namprd06.prod.outlook.com> <318c674236a3cac594eb372e9c2466f0@xs4all.nl>
In-Reply-To: <318c674236a3cac594eb372e9c2466f0@xs4all.nl>
Accept-Language: fr-CA, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: spf=none (sender IP is ) smtp.mailfrom=Michel.Veillette@trilliantinc.com; 
x-originating-ip: [207.96.192.122]
x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CO2PR0601MB789;
x-microsoft-antispam-prvs: <CO2PR0601MB789F34EAF02FAD7BC6FFAC7FEC20@CO2PR0601MB789.namprd06.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:;
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(601004)(5005006)(3002001); SRVR:CO2PR0601MB789; BCL:0; PCL:0; RULEID:;  SRVR:CO2PR0601MB789; 
x-forefront-prvs: 0582641F53
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(6009001)(51704005)(199003)(189002)(13464003)(377424004)(38414003)(46102003)(76576001)(101416001)(50986999)(86362001)(74316001)(122556002)(5001960100002)(110136002)(77156002)(5001860100001)(62966003)(93886004)(87936001)(2656002)(5001830100001)(40100003)(54356999)(76176999)(189998001)(92566002)(15974865002)(64706001)(81156007)(4001540100001)(2501003)(97736004)(561944003)(68736005)(102836002)(106116001)(77096005)(19580405001)(19580395003)(2351001)(66066001)(105586002)(106356001)(2900100001)(33656002)(99286002)(2950100001)(18886075002); DIR:OUT; SFP:1102; SCL:1; SRVR:CO2PR0601MB789; H:CO2PR0601MB792.namprd06.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords;  A:1; MX:1; LANG:en; 
received-spf: None (protection.outlook.com: trilliantinc.com does not designate permitted sender hosts)
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: trilliantinc.com
X-MS-Exchange-CrossTenant-originalarrivaltime: 20 May 2015 15:46:57.4957 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 4f6fbd13-0dfb-4150-85c3-d43260c04309
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO2PR0601MB789
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/QcbLidah13mz8onVAucJLhZeq38>
Cc: "6tisch@ietf.org" <6tisch@ietf.org>, Core <core@ietf.org>
Subject: Re: [core] CoMI rehashing
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 20 May 2015 15:47:26 -0000

W01WXSBJbmxpbmUNCg0KTWljaGVsIFZlaWxsZXR0ZQ0KU3lzdGVtIEFyY2hpdGVjdHVyZSBEaXJl
Y3Rvcg0KVHJpbGxpYW50IEluYy4NClRlbDogNDUwLTM3NS0wNTU2IGV4dC4gMjM3DQptaWNoZWwu
dmVpbGxldHRlQHRyaWxsaWFudGluYy5jb20NCnd3dy50cmlsbGlhbnRpbmMuY29tIMKgIA0KDQoN
Ci0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpGcm9tOiBwZXRlciB2YW4gZGVyIFN0b2sgW21h
aWx0bzpzdG9rY29uc0B4czRhbGwubmxdIA0KU2VudDogMjAgbWFpIDIwMTUgMDY6MTUNClRvOiBN
aWNoZWwgVmVpbGxldHRlDQpDYzogQW5keSBCaWVybWFuOyBjb25zdWx0YW5jeUB2YW5kZXJzdG9r
Lm9yZzsgNnRpc2NoQGlldGYub3JnOyBDb3JlDQpTdWJqZWN0OiBSRTogW2NvcmVdIENvTUkgcmVo
YXNoaW5nDQoNCkhpIE1pY2hlbCwNCg0Kc2VlIGJlbG93LCBzb21lIHByZWxpbWluYXJ5IGNvbW1l
bnRzLg0KDQpQZXRlcg0KDQpNaWNoZWwgVmVpbGxldHRlIHNjaHJlZWYgb3AgMjAxNS0wNS0xOSAy
MTo0OToNCj4gSGkgQW5keSwgSGkgUGV0ZXINCj4gDQo+IEEgc29sdXRpb24gYmFzZWQgb24gdGhl
IHVzZSBvZiAibW9kdWxlIElELCBZQU5HIGhhc2giIGFzIHVuaXF1ZSANCj4gaWRlbnRpZmllciBz
ZWVtIHRvIGJlIHByb21pc2luZy4NCj4gSWYgd2UgY2FuIHN1Y2Nlc3NmdWxseSBhZGRyZXNzIHRo
ZSBpdGVtcyBiZWxsb3cgKDEgdG8gMyksIEkgYmVsaWV2ZSB3ZSANCj4gY2FuIGFkZHJlc3MgdGhl
IGRpZmZlcmVudCBpc3N1ZXMgaWRlbnRpZmllZCB3aXRob3V0IGludHJvZHVjaW5nIGEgDQo+IG1v
ZHVsZSBJRCByZWdpc3RyeS4NCj4gU29tZXRoaW5nIEkgYWdyZWUgaXQgd2lsbCBiZSBuaWNlIHRv
IGF2b2lkLg0KDQo8cHZkcz4NCk5pY2UgdG8ga25vdyB0aGF0IHdlIGFyZSBvbiB0aGUgc2FtZSB0
cmFjayA8L3B2ZHM+DQoNCj4gDQo+IElzc3VlczoNCj4gLSAiY2xhc2hfZmlsZSIgb24gdGhlIHNl
cnZlciBzaWRlDQo+IC0gdHJhZmZpYyBvdmVyaGVhZCAoaGFuZHNoYWtlIHRvIHJldHJpZXZlIHRo
ZSAiY2xhc2hfZmlsZSIpDQo+IC0gcGVyLXNlcnZlciByZWhhc2ggdGFibGUgb3ZlcmhlYWQgb24g
dGhlIGNsaWVudCBzaWRlDQo+IC0gc3RyaW5nIHRhYmxlIG92ZXJoZWFkIG9uIHRoZSBjbGllbnQg
c2lkZSB0byBpbmRleCB0aGUgImNsYXNoX2ZpbGUiDQo+IA0KPiBJVEVNIDEpIEhhc2ggY2xhc2hl
cyB3aXRoaW4gYSBZQU5HIG1vZHVsZQ0KPiANCj4gV2UgbmVlZCB0byBkZXNjcmliZSBvbmUgb3Ig
bXVsdGlwbGUgYXBwcm9hY2hlcyB0byByZXNvbHZlIFlBTkcgaGFzaCANCj4gY2xhc2hlcyB3aXRo
aW4gYSBtb2R1bGUgaWYgdGhpcyBldmVyIGhhcHBlbi4NCj4gLSBXZSBjYW4gc3VnZ2VzdCB0byBy
ZW5hbWUgYW55IGNvbmZsaWN0aW5nIGRhdGEgbm9kZSBpZGVudGlmaWVyKHMpIA0KPiBwcmlvciBw
dWJsaXNoaW5nDQo+IC0gV2UgY2FuIGludHJvZHVjZSBhIG5ldyBZQU5HIHN0YXRlbWVudCB0byBh
c3NpZ24gYW4gYWx0ZXJuYXRlIGhhc2ggDQo+IHZhbHVlIHRvIGFuIGFscmVhZHkgcHVibGlzaGVk
IFlBTkcgbW9kdWxlDQo+IC0gV2UgY2FuIGFsc28gc2V0dXAgYSByZWdpc3RyeSB0byBwdWJsaXNo
IGFsdGVybmF0ZSBoYXNoIHZhbHVlcyB0byBhbiANCj4gYWxyZWFkeSBwdWJsaXNoZWQgWUFORyBt
b2R1bGUNCg0KPHB2ZHM+DQpJcyB0aGlzIGEgc3ViamVjdCBmb3IgQ29NSSBkcmFmdD8NCk1heSBi
ZSBhZGRyZXNzIHRoaXMgaW4gYW5vdGhlciBkcmFmdD8NCjwvcHZkcz4NCg0KW01WXSBNaW5pbWFs
bHksIHRoZSBzdHJhdGVneSB1c2VkIHRvIGFkZHJlc3MgaW50ZXJuYWwgbW9kdWxlIGNsYXNoZXMg
c2hvdWxkIGJlIGRlc2NyaWJlZCBjbGVhcmx5IGluIHRoZSBDb01JIHNwZWMuDQoNCj4gDQo+IElU
RU0gMikgIFRyYWZmaWMgb3ZlcmhlYWQNCj4gDQo+IFRoZSBwcm9wb3NlIGhhc2ggY2xhc2ggZXJy
b3IgaXMgYSBzdGVwIGluIHRoZSByaWdodCBkaXJlY3Rpb24gdG8gYXZvaWQgDQo+IHRoZSB1cGZy
b250IHJldHJpZXZhbCBvZiB0aGUgImNsYXNoX2ZpbGUiLg0KDQo8cHZkcz4NClRoZSByZWFzb24g
aXMgZGlmZmVyZW50OyBJIHdhcyB3b3JyaWVkIGFib3V0IHVwZ3JhZGVzIG9mIHNlcnZlcnMsIHRo
ZSBzcGVjaWZpY2F0aW9uIGxlZnQgb3BlbiB0aGF0IHRoZSBvbGQgaGFzaCB2YWx1ZSBvZiBhIGRh
dGFfbm9kZSB3YXMgcmVoYXNoZWQsIGFuZCBhIG5ldyBkYXRhLW5vZGUgd2l0aCB0aGUgb3JpZ2lu
YWwgaGFzaCB3YXMgYWRkZWQuDQpDbGllbnRzIGNvdWxkIHRoZW4gYWNjZXNzIGFub3RoZXIgZGF0
YSBub2RlIHdpdGggdGhlIG9sZCBoYXNoIHZhbHVlLg0KPC9wdmRzPg0KDQpbTVZdIFRoZSBzaWRl
IGVmZmVjdCBvZiBub3QgcmVxdWlyaW5nIHVwZnJvbnQgbG9hZGluZyBvZiB0aGUgInJlaGFzaCIg
bGlzdCBpcyBuaWNlIGZlYXR1cmUuDQoNCj4gVG8gY29tcGxldGVseSBlbGltaW5hdGUgdGhlDQo+
IG5lZWQgdG8gcmV0cmlldmUgdGhlICJjbGFzaF9maWxlIiAsIEkgcHJvcG9zZSB0byBzdXBwb3J0
IHRoZSAibW9kdWxlIA0KPiBuYW1lIiBhcyBhbiBvcHRpb25hbCBxdWVyeSBwYXJhbWV0ZXIuIFRo
aXMgb3B0aW9uIGNhbiBiZSB1c2VkIHRvIA0KPiBhY2Nlc3MgdGhlIHRhcmdldGVkIGRhdGEgbm9k
ZSBhZnRlciByZWNlaXZpbmcgYSBoYXNoIGNsYXNoZXMgZXJyb3Igb3IgDQo+IHRvIGF2b2lkIGhh
c2ggY2xhc2hlcyBlcnJvcnMuDQo+IA0KPiBGb3IgZXhhbXBsZToNCj4gICAgVG8gcmV0cmlldmUg
ZGF0YSBub2RlcyAiY3VycmVudC1kYXRldGltZSIgYW5kICAiYm9vdC1kYXRldGltZSINCj4gDQo+
ICAgIE9wdGlvbiAjMQ0KPiAgICAgICBSRVE6IEdFVCBleGFtcGxlLmNvbS9tZz9zZWxlY3Q9IFZO
d1FJLGZvbE5oDQo+ICAgICAgIChUaGlzIHJlcXVlc3QgbWF5IHJldHVybiBhIGhhc2ggY2xhc2gg
ZXJyb3IpDQo+IA0KPiAgICBPcHRpb24gIzINCj4gICAgICAgUkVROiBHRVQgZXhhbXBsZS5jb20v
bWc/c2VsZWN0PWlldGYtc3lzdGVtKFZOd1FJLGZvbE5oKQ0KPiAgICAgICAoVGhpcyByZXF1ZXN0
IG5ldmVyIHJldHVybiBhIGhhc2ggY2xhc2ggZXJyb3IpDQo+IA0KDQo8cHZkcz4NCg0KWW91ciBw
cm9wb3NhbCBpbmNyZWFzZXMgZGF0YSB0cmFmZmljIHBlcm1hbmVudGx5IHdoZW4gYSBjbGFzaCBo
YXMgb2NjdXJyZWQsIGFuZCBuZWVkcyB0aGUgc3RvcmFnZSBvZiBtb2R1bGUgbmFtZXMgaW4gc2Vy
dmVyIGFzIHdlbGwuDQoNCldpdGggcmVoYXNoaW5nLCB0aGUgImNsYXNoX2ZpbGUiIG92ZXJoZWFk
IGhhcHBlbnMgb25seSBvbmNlIGFmdGVyIHRoZSByZWxvYWQgb2YgdGhlIHNlcnZlci4NCg0KQlRX
IHRoZSAvbWcgc3RyaW5nIGluIFVSSSBpcyByZW1vdmVkIHdoZW4gcG9zc2libGUuDQo8L3B2ZHM+
DQoNCltNVl0gVGhpcyBvdmVyaGVhZCBpcyBub3QgbmVjZXNzYXJ5IHBlcm1hbmVudC4NCltNVl0g
VGhlIENvTUkgc2VydmVyIG1heSByZXR1cm4gYSByZWhhc2ggdmFsdWUgaW4gdGhlIHBheWxvYWQg
d2hpY2ggY2FuIGJlIHVzZWQgZm9yIHN1YnNlcXVlbnQgYWNjZXNzZXMuDQpbTVZdIFRoaXMgd2F5
LCB3ZSBjdXQgdGhlIGV4dHJhIGV4Y2hhbmdlIGFuZCB0aGUgc3RhdGUgbWFjaGluZSBhc3NvY2lh
dGVkIHdpdGggaXQuDQoNCj4gSVRFTSAzKSBEYXRhc3RvcmUgYWNjZXNzDQo+IA0KPiBBY2Nlc3Mg
KEdFVCBhbmQgUFVUKSBvZiAgdGhlIGVudGlyZSBkYXRhc3RvcmUgaXMgYW4gaW1wb3J0YW50IGZl
YXR1cmUgDQo+IHRvIGFsbG93cyBiYWNrdXAgYW5kIHJlc3RvcmF0aW9uIG9mIGEgZGV2aWNlIGNv
bmZpZ3VyYXRpb24uDQo8cHZkcz4NCllvdSBtZWFuIHNlcnZlciBvciBjbGllbnQsIG9yIGJvdGg/
DQphbmQgd2hhdCBpcyBkZXZpY2UgY29uZmlndXJhdGlvbj8gdGhlIHNldCBvZiBkYXRhIG5vZGVz
IHRoYXQgYXJlIGFjY2Vzc2libGUsIG9yIHRoZSB2YWx1ZXMgb2YgYWxsIGFjY2Vzc2libGUgZGF0
YS1ub2Rlcz8NCjwvcHZkcz4NCj4gVG8gcmVzb2x2ZQ0KPiBoYXNoIGNsYXNoZXMgYmV0d2VlbiBt
b2R1bGVzLCBJIHByb3Bvc2UgdG8gc3VwcG9ydCB0aGUgY29uY2VwdCBvZiANCj4gbW9kdWxlIGNv
bnRleHQgYXMgZGVzY3JpYmUgaW4gbXkgZG9jdW1lbnQNCj4gKGRyYWZ0LXZhbmRlcnN0b2stY29y
ZS1jb21pLTA2IC0gTVYuZG9jeCkuDQo+IA0KPiBGb3IgZXhhbXBsZToNCj4gDQo+ICAgIFJFUTog
R0VUIGV4YW1wbGUuY29tL21nDQo+IA0KPiAgICBSRVM6IDIuMDUgQ29udGVudCAoQ29udGVudC1G
b3JtYXQ6IGFwcGxpY2F0aW9uL2Nib3IpDQo+ICAgIHsNCj4gICAgICAgIm1vZHVsZSBhIiA6IHsN
Cj4gICAgICAgICAgMzY1MjU3MjM1IDogdmFsdWUNCj4gICAgICAgICAgNzAyMTQ5NjI2IDogew0K
PiAgICAgICAgICAgICAyMTU5OTMzMjkgOiB2YWx1ZSAgICAgICAgICAgIDwtLS0gaGFzaCBjbGFz
aGVzDQo+ICAgICAgICAgICAgIDk2MjE5MTY4MiA6IHZhbHVlDQo+ICAgICAgICAgIH0sDQo+ICAg
ICAgICAgIDgyOTIyMjk4MyA6IHZhbHVlDQo+ICAgICAgIH0sDQo+ICAgICAgICJtb2R1bGUgYiIg
OiB7DQo+ICAgICAgICAgIDIxNTk5MzMyOSA6IHZhbHVlICAgICAgICAgICAgICAgPC0tLSBoYXNo
IGNsYXNoZXMNCj4gICAgICAgfSwNCj4gICAgICAgIm1vZHVsZSBjIiA6IHsNCj4gICAgICAgICAg
OTkzNTMzNTI3IDogdmFsdWUNCj4gICAgICAgfQ0KPiAgICB9DQo+IA0KDQo8cHZkcz4NCkRvIHlv
dSB3YW50IGEgZHVtcCBvZiBhbGwgdmFsdWVzIG9mIGFsbCBhY2Nlc3NpYmxlIGRhdGEgbm9kZXM/
DQoNCltNVl0gWWVzLCBiYWNrdXAgYW5kIHJlY292ZXJ5IHRoaXMgaXMgYSBjb3JlIGZlYXR1cmUg
b2YgTkVUQ09ORiBhbmQgc2hvdWxkIGJlIHN1cHBvcnRlZCBhdCBsb3dlciBzY2FsZSB1c2luZyBD
b01JDQoNClRoZSBwcm9wb3NlZCBzeW50YXggZG9lcyBub3QgbG9naWNhbGx5IGZvbGxvdyBmcm9t
IElURU0gMiksIGJlY2F1c2UgcmVoYXNoaW5nIGlzIGNvbXB1bHNvcnksIGFuZCB5b3Ugd2lsbCBo
YXZlIHR3byBoYXNoZXMgcG9pbnRpbmcgdG8gdGhlIHNhbWUgdmFsdWUgYmVsb25naW5nIHRvIHRo
ZSBzYW1lIGRhdGEgbm9kZS4NCg0KW01WXSBJIHRoZSBtb2RlbCBJJ20gcHJvcG9zaW5nLCBlYWNo
IG1vZHVsZSBoYXZlIGl0cyBvd24gaGFzaCB0YWJsZSwgYm90aCB0aGUgIm1vZHVsZSBuYW1lIiAr
ICJoYXNoIHZhbHVlIiBpcyB1c2VkIHRvIGlkZW50aWZ5IGEgZGF0YSBub2RlLg0KDQpXaGVuIHVz
aW5nIHJlaGFzaGluZywgYSAoc21hbGxlcikgZmxhdCB0YWJsZSB3aXRoICJoYXNoIHZhbHVlIDog
ZGF0YSBub2RlIHZhbHVlIiBpcyByZXR1cm5lZC4NCkFsdGVybmF0aXZlbHksIEkgY2FuIHNlZSBh
IHJlcXVlc3QgdGhhdCByZXR1cm5zIGZvciBhbGwgY2xhc2hlZCBoYXNoZXMgdGhlIGluZm9ybWF0
aW9uOiBvbGQgaGFzaCwgbW9kdWxlIG5hbWUsIG5ldyBoYXNoOyBidXQgdGhhdCBtZWFucyBzdG9y
aW5nIG1vZHVsZSBuYW1lcyBpbiBzZXJ2ZXIgYXMgd2VsbC4NCjwvcHZkcz4NCg0KPiBJIGhvcGUg
dGhpcyBhcHByb2FjaCByZXByZXNlbnRzIGEgd2luL3dpbiBzb2x1dGlvbiB3aGljaCBhdm9pZCB0
aGUgdHdvIA0KPiBjb250ZW50aW91cyBpdGVtczoNCj4gLSBJQU5BIG1vZHVsZSBJRCByZWdpc3Ry
YXRpb24NCj4gLSByZWhhc2ggYW5kICJjbGFzaF9maWxlIg0KDQo8cHZkcz4NClRoZSAiY2xhc2gt
ZmlsZSIgaXMgb25seSBhY2Nlc3NlZCBieSBhIGNsaWVudCB3aGVuIGEgcmVsb2FkIG9mIHRoZSBz
ZXJ2ZXIgKGhvdyBvZnRlbiBkb2VzIHRoYXQgaGFwcGVuPykgbGVhZHMgdG8gaGFzaCBjbGFzaCAo
cHJvYmFiaWxpdHkgPA0KMTBeLTQpDQo8L3B2ZHM+DQoNCj4gDQo+IEluIHN1bW1hcnk6DQo+IElu
IHRoaXMgc29sdXRpb24gdGhlcmUgaXMgbm8gbW9yZSByZWhhc2ggdmFsdWUsIG5vICJjbGFzaF9m
aWxlIi4NCj4gV2UganVzdCB1c2UgdGhlICJtb2R1bGUgbmFtZSwgWUFORyBoYXNoIiBhcyB1bmlx
dWUgaWRlbnRpZmllci4NCg0KPHB2ZHM+DQpUaGlzIGlzIHRoZW4gb3B0aW9uYWwgbmV4dCB0byB0
aGUgY29tcHVsc29yeSByZWhhc2hpbmc/DQo8L3B2ZHM+DQoNCj4gTWVzc2FnZSBzaXplIG92ZXJo
ZWFkIGlzIGtlZXAgdG8gYSBtaW5pbXVtIGFuZCB0aGlzIG92ZXJoZWFkIGlzIA0KPiBvcHRpb25h
bCAoYXQgdGhlIGV4Y2VwdGlvbiBvZiB0aGUgZGF0YXN0b3JlIGFjY2VzcykuDQo+IA0KPiBNaWNo
ZWwgVmVpbGxldHRlDQo+IFN5c3RlbSBBcmNoaXRlY3R1cmUgRGlyZWN0b3INCj4gVHJpbGxpYW50
IEluYy4NCj4gVGVsOiA0NTAtMzc1LTA1NTYgZXh0LiAyMzcNCj4gbWljaGVsLnZlaWxsZXR0ZUB0
cmlsbGlhbnRpbmMuY29tDQo+IHd3dy50cmlsbGlhbnRpbmMuY29tDQoNCg0K


From nobody Thu May 21 01:14:46 2015
Return-Path: <jsaldana@unizar.es>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 520ED1A702C for <core@ietfa.amsl.com>; Thu, 21 May 2015 01:14:45 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.509
X-Spam-Level: 
X-Spam-Status: No, score=-1.509 tagged_above=-999 required=5 tests=[BAYES_50=0.8, FSL_MY_NAME_IS=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] autolearn=ham
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 a9cmmRQ-raXS for <core@ietfa.amsl.com>; Thu, 21 May 2015 01:14:42 -0700 (PDT)
Received: from ortiz.unizar.es (ortiz.unizar.es [155.210.1.52]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 933A11A86E8 for <core@ietf.org>; Thu, 21 May 2015 01:14:39 -0700 (PDT)
Received: from usuarioPC (gtc1pc12.cps.unizar.es [155.210.158.17]) (authenticated bits=0) by ortiz.unizar.es (8.13.8/8.13.8/Debian-3) with ESMTP id t4L8EZib029872 for <core@ietf.org>; Thu, 21 May 2015 10:14:35 +0200
From: "Jose Saldana" <jsaldana@unizar.es>
To: <core@ietf.org>
Date: Thu, 21 May 2015 10:14:41 +0200
Message-ID: <00de01d0939e$3026cf30$90746d90$@unizar.es>
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="----=_NextPart_000_00DF_01D093AE.F3B125D0"
X-Mailer: Microsoft Outlook 15.0
Thread-Index: AdCTm+rLxQCFaCMCTH6n8XCIjWBfLw==
Content-Language: es
X-Mail-Scanned: Criba 2.0 + Clamd & Bogofilter
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/wuLEujhvNU4OYyPNEjft6O6RPeo>
Subject: [core] A protocol which may me of interest for core
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 21 May 2015 08:14:45 -0000

This is a multipart message in MIME format.

------=_NextPart_000_00DF_01D093AE.F3B125D0
Content-Type: text/plain;
	charset="us-ascii"
Content-Transfer-Encoding: 7bit

Hi all,
 
My name is Jose Saldana. I am new in this list.
 
I have been working on a traffic optimization proposal (called Simplemux,
http://datatracker.ietf.org/doc/draft-saldana-tsvwg-simplemux/), which has
been submitted to TSVWG.
 
The idea is to multiplex a number of packets together. If a "delay budget"
is available, some packets can be stopped for a while, and then sent
together into a single one.
 
Currently, if you want to do this, you have to use PPPMux [RFC3153], which
means using L2TP in addition. TMux [RFC1692] is another option, but it only
multiplexes multiplexes a number of segments between the same pair of
machines.
 
If Simplemux is combined with header compression (e.g. ROHC), bandwidth
savings can be achieved at the same time:
http://datatracker.ietf.org/doc/draft-saldana-tsvwg-tcmtf/
 
Do you think multiplexing a number of packets can be useful in constrained
networks? It may reduce energy consumption, since the number of
transmissions could be reduced. The computational cost is not high: we have
implemented it in 2500 lines of code (https://github.com/TCM-TF/simplemux).
You can also see this README file:
https://github.com/TCM-TF/simplemux/blob/master/simplemux_readme_v1.6.18.pdf
 
 
Best regards,
 
Jose Saldana, Ph.D.
University of Zaragoza
 

------=_NextPart_000_00DF_01D093AE.F3B125D0
Content-Type: text/html;
	charset="us-ascii"
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=3D"Content-Type" CONTENT=3D"text/html; =
charset=3Dus-ascii"><meta name=3DProgId content=3DWord.Document><meta =
name=3DGenerator content=3D"Microsoft Word 15"><meta name=3DOriginator =
content=3D"Microsoft Word 15"><link rel=3DFile-List =
href=3D"cid:filelist.xml@01D093AE.F378D7C0"><!--[if gte mso 9]><xml>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
</o:OfficeDocumentSettings>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:SpellingState>Clean</w:SpellingState>
<w:GrammarState>Clean</w:GrammarState>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:HyphenationZone>21</w:HyphenationZone>
<w:EnvelopeVis/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>ES</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val=3D"Cambria Math"/>
<m:brkBin m:val=3D"before"/>
<m:brkBinSub m:val=3D"&#45;-"/>
<m:smallFrac m:val=3D"off"/>
<m:dispDef/>
<m:lMargin m:val=3D"0"/>
<m:rMargin m:val=3D"0"/>
<m:defJc m:val=3D"centerGroup"/>
<m:wrapIndent m:val=3D"1440"/>
<m:intLim m:val=3D"subSup"/>
<m:naryLim m:val=3D"undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState=3D"false" DefUnhideWhenUsed=3D"false" =
DefSemiHidden=3D"false" DefQFormat=3D"false" DefPriority=3D"99" =
LatentStyleCount=3D"371">
<w:LsdException Locked=3D"false" Priority=3D"0" QFormat=3D"true" =
Name=3D"Normal"/>
<w:LsdException Locked=3D"false" Priority=3D"9" QFormat=3D"true" =
Name=3D"heading 1"/>
<w:LsdException Locked=3D"false" Priority=3D"9" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" QFormat=3D"true" Name=3D"heading 2"/>
<w:LsdException Locked=3D"false" Priority=3D"9" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" QFormat=3D"true" Name=3D"heading 3"/>
<w:LsdException Locked=3D"false" Priority=3D"9" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" QFormat=3D"true" Name=3D"heading 4"/>
<w:LsdException Locked=3D"false" Priority=3D"9" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" QFormat=3D"true" Name=3D"heading 5"/>
<w:LsdException Locked=3D"false" Priority=3D"9" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" QFormat=3D"true" Name=3D"heading 6"/>
<w:LsdException Locked=3D"false" Priority=3D"9" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" QFormat=3D"true" Name=3D"heading 7"/>
<w:LsdException Locked=3D"false" Priority=3D"9" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" QFormat=3D"true" Name=3D"heading 8"/>
<w:LsdException Locked=3D"false" Priority=3D"9" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" QFormat=3D"true" Name=3D"heading 9"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"index 1"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"index 2"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"index 3"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"index 4"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"index 5"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"index 6"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"index 7"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"index 8"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"index 9"/>
<w:LsdException Locked=3D"false" Priority=3D"39" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"toc 1"/>
<w:LsdException Locked=3D"false" Priority=3D"39" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"toc 2"/>
<w:LsdException Locked=3D"false" Priority=3D"39" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"toc 3"/>
<w:LsdException Locked=3D"false" Priority=3D"39" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"toc 4"/>
<w:LsdException Locked=3D"false" Priority=3D"39" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"toc 5"/>
<w:LsdException Locked=3D"false" Priority=3D"39" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"toc 6"/>
<w:LsdException Locked=3D"false" Priority=3D"39" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"toc 7"/>
<w:LsdException Locked=3D"false" Priority=3D"39" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"toc 8"/>
<w:LsdException Locked=3D"false" Priority=3D"39" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"toc 9"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Normal Indent"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"footnote text"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"annotation text"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"header"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"footer"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"index heading"/>
<w:LsdException Locked=3D"false" Priority=3D"35" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" QFormat=3D"true" Name=3D"caption"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"table of figures"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"envelope address"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"envelope return"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"footnote reference"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"annotation reference"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"line number"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"page number"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"endnote reference"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"endnote text"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"table of authorities"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"macro"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"toa heading"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"List"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"List Bullet"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"List Number"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"List 2"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"List 3"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"List 4"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"List 5"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"List Bullet 2"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"List Bullet 3"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"List Bullet 4"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"List Bullet 5"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"List Number 2"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"List Number 3"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"List Number 4"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"List Number 5"/>
<w:LsdException Locked=3D"false" Priority=3D"10" QFormat=3D"true" =
Name=3D"Title"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Closing"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Signature"/>
<w:LsdException Locked=3D"false" Priority=3D"1" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Default Paragraph Font"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Body Text"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Body Text Indent"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"List Continue"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"List Continue 2"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"List Continue 3"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"List Continue 4"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"List Continue 5"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Message Header"/>
<w:LsdException Locked=3D"false" Priority=3D"11" QFormat=3D"true" =
Name=3D"Subtitle"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Salutation"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Date"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Body Text First Indent"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Body Text First Indent 2"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Note Heading"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Body Text 2"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Body Text 3"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Body Text Indent 2"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Body Text Indent 3"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Block Text"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Hyperlink"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"FollowedHyperlink"/>
<w:LsdException Locked=3D"false" Priority=3D"22" QFormat=3D"true" =
Name=3D"Strong"/>
<w:LsdException Locked=3D"false" Priority=3D"20" QFormat=3D"true" =
Name=3D"Emphasis"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Document Map"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Plain Text"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"E-mail Signature"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"HTML Top of Form"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"HTML Bottom of Form"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Normal (Web)"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"HTML Acronym"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"HTML Address"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"HTML Cite"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"HTML Code"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"HTML Definition"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"HTML Keyboard"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"HTML Preformatted"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"HTML Sample"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"HTML Typewriter"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"HTML Variable"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Normal Table"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"annotation subject"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"No List"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Outline List 1"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Outline List 2"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Outline List 3"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table Simple 1"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table Simple 2"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table Simple 3"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table Classic 1"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table Classic 2"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table Classic 3"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table Classic 4"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table Colorful 1"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table Colorful 2"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table Colorful 3"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table Columns 1"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table Columns 2"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table Columns 3"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table Columns 4"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table Columns 5"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table Grid 1"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table Grid 2"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table Grid 3"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table Grid 4"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table Grid 5"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table Grid 6"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table Grid 7"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table Grid 8"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table List 1"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table List 2"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table List 3"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table List 4"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table List 5"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table List 6"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table List 7"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table List 8"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table 3D effects 1"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table 3D effects 2"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table 3D effects 3"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table Contemporary"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table Elegant"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table Professional"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table Subtle 1"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table Subtle 2"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table Web 1"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table Web 2"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table Web 3"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Balloon Text"/>
<w:LsdException Locked=3D"false" Priority=3D"39" Name=3D"Table Grid"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table Theme"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" Name=3D"Placeholder =
Text"/>
<w:LsdException Locked=3D"false" Priority=3D"1" QFormat=3D"true" =
Name=3D"No Spacing"/>
<w:LsdException Locked=3D"false" Priority=3D"60" Name=3D"Light =
Shading"/>
<w:LsdException Locked=3D"false" Priority=3D"61" Name=3D"Light List"/>
<w:LsdException Locked=3D"false" Priority=3D"62" Name=3D"Light Grid"/>
<w:LsdException Locked=3D"false" Priority=3D"63" Name=3D"Medium Shading =
1"/>
<w:LsdException Locked=3D"false" Priority=3D"64" Name=3D"Medium Shading =
2"/>
<w:LsdException Locked=3D"false" Priority=3D"65" Name=3D"Medium List =
1"/>
<w:LsdException Locked=3D"false" Priority=3D"66" Name=3D"Medium List =
2"/>
<w:LsdException Locked=3D"false" Priority=3D"67" Name=3D"Medium Grid =
1"/>
<w:LsdException Locked=3D"false" Priority=3D"68" Name=3D"Medium Grid =
2"/>
<w:LsdException Locked=3D"false" Priority=3D"69" Name=3D"Medium Grid =
3"/>
<w:LsdException Locked=3D"false" Priority=3D"70" Name=3D"Dark List"/>
<w:LsdException Locked=3D"false" Priority=3D"71" Name=3D"Colorful =
Shading"/>
<w:LsdException Locked=3D"false" Priority=3D"72" Name=3D"Colorful =
List"/>
<w:LsdException Locked=3D"false" Priority=3D"73" Name=3D"Colorful =
Grid"/>
<w:LsdException Locked=3D"false" Priority=3D"60" Name=3D"Light Shading =
Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"61" Name=3D"Light List =
Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"62" Name=3D"Light Grid =
Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"63" Name=3D"Medium Shading =
1 Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"64" Name=3D"Medium Shading =
2 Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"65" Name=3D"Medium List 1 =
Accent 1"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" Name=3D"Revision"/>
<w:LsdException Locked=3D"false" Priority=3D"34" QFormat=3D"true" =
Name=3D"List Paragraph"/>
<w:LsdException Locked=3D"false" Priority=3D"29" QFormat=3D"true" =
Name=3D"Quote"/>
<w:LsdException Locked=3D"false" Priority=3D"30" QFormat=3D"true" =
Name=3D"Intense Quote"/>
<w:LsdException Locked=3D"false" Priority=3D"66" Name=3D"Medium List 2 =
Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"67" Name=3D"Medium Grid 1 =
Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"68" Name=3D"Medium Grid 2 =
Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"69" Name=3D"Medium Grid 3 =
Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"70" Name=3D"Dark List =
Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"71" Name=3D"Colorful =
Shading Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"72" Name=3D"Colorful List =
Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"73" Name=3D"Colorful Grid =
Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"60" Name=3D"Light Shading =
Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"61" Name=3D"Light List =
Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"62" Name=3D"Light Grid =
Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"63" Name=3D"Medium Shading =
1 Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"64" Name=3D"Medium Shading =
2 Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"65" Name=3D"Medium List 1 =
Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"66" Name=3D"Medium List 2 =
Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"67" Name=3D"Medium Grid 1 =
Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"68" Name=3D"Medium Grid 2 =
Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"69" Name=3D"Medium Grid 3 =
Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"70" Name=3D"Dark List =
Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"71" Name=3D"Colorful =
Shading Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"72" Name=3D"Colorful List =
Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"73" Name=3D"Colorful Grid =
Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"60" Name=3D"Light Shading =
Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"61" Name=3D"Light List =
Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"62" Name=3D"Light Grid =
Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"63" Name=3D"Medium Shading =
1 Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"64" Name=3D"Medium Shading =
2 Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"65" Name=3D"Medium List 1 =
Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"66" Name=3D"Medium List 2 =
Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"67" Name=3D"Medium Grid 1 =
Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"68" Name=3D"Medium Grid 2 =
Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"69" Name=3D"Medium Grid 3 =
Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"70" Name=3D"Dark List =
Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"71" Name=3D"Colorful =
Shading Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"72" Name=3D"Colorful List =
Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"73" Name=3D"Colorful Grid =
Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"60" Name=3D"Light Shading =
Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"61" Name=3D"Light List =
Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"62" Name=3D"Light Grid =
Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"63" Name=3D"Medium Shading =
1 Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"64" Name=3D"Medium Shading =
2 Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"65" Name=3D"Medium List 1 =
Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"66" Name=3D"Medium List 2 =
Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"67" Name=3D"Medium Grid 1 =
Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"68" Name=3D"Medium Grid 2 =
Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"69" Name=3D"Medium Grid 3 =
Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"70" Name=3D"Dark List =
Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"71" Name=3D"Colorful =
Shading Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"72" Name=3D"Colorful List =
Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"73" Name=3D"Colorful Grid =
Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"60" Name=3D"Light Shading =
Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"61" Name=3D"Light List =
Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"62" Name=3D"Light Grid =
Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"63" Name=3D"Medium Shading =
1 Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"64" Name=3D"Medium Shading =
2 Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"65" Name=3D"Medium List 1 =
Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"66" Name=3D"Medium List 2 =
Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"67" Name=3D"Medium Grid 1 =
Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"68" Name=3D"Medium Grid 2 =
Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"69" Name=3D"Medium Grid 3 =
Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"70" Name=3D"Dark List =
Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"71" Name=3D"Colorful =
Shading Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"72" Name=3D"Colorful List =
Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"73" Name=3D"Colorful Grid =
Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"60" Name=3D"Light Shading =
Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"61" Name=3D"Light List =
Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"62" Name=3D"Light Grid =
Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"63" Name=3D"Medium Shading =
1 Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"64" Name=3D"Medium Shading =
2 Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"65" Name=3D"Medium List 1 =
Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"66" Name=3D"Medium List 2 =
Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"67" Name=3D"Medium Grid 1 =
Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"68" Name=3D"Medium Grid 2 =
Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"69" Name=3D"Medium Grid 3 =
Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"70" Name=3D"Dark List =
Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"71" Name=3D"Colorful =
Shading Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"72" Name=3D"Colorful List =
Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"73" Name=3D"Colorful Grid =
Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"19" QFormat=3D"true" =
Name=3D"Subtle Emphasis"/>
<w:LsdException Locked=3D"false" Priority=3D"21" QFormat=3D"true" =
Name=3D"Intense Emphasis"/>
<w:LsdException Locked=3D"false" Priority=3D"31" QFormat=3D"true" =
Name=3D"Subtle Reference"/>
<w:LsdException Locked=3D"false" Priority=3D"32" QFormat=3D"true" =
Name=3D"Intense Reference"/>
<w:LsdException Locked=3D"false" Priority=3D"33" QFormat=3D"true" =
Name=3D"Book Title"/>
<w:LsdException Locked=3D"false" Priority=3D"37" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Bibliography"/>
<w:LsdException Locked=3D"false" Priority=3D"39" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" QFormat=3D"true" Name=3D"TOC Heading"/>
<w:LsdException Locked=3D"false" Priority=3D"41" Name=3D"Plain Table =
1"/>
<w:LsdException Locked=3D"false" Priority=3D"42" Name=3D"Plain Table =
2"/>
<w:LsdException Locked=3D"false" Priority=3D"43" Name=3D"Plain Table =
3"/>
<w:LsdException Locked=3D"false" Priority=3D"44" Name=3D"Plain Table =
4"/>
<w:LsdException Locked=3D"false" Priority=3D"45" Name=3D"Plain Table =
5"/>
<w:LsdException Locked=3D"false" Priority=3D"40" Name=3D"Grid Table =
Light"/>
<w:LsdException Locked=3D"false" Priority=3D"46" Name=3D"Grid Table 1 =
Light"/>
<w:LsdException Locked=3D"false" Priority=3D"47" Name=3D"Grid Table 2"/>
<w:LsdException Locked=3D"false" Priority=3D"48" Name=3D"Grid Table 3"/>
<w:LsdException Locked=3D"false" Priority=3D"49" Name=3D"Grid Table 4"/>
<w:LsdException Locked=3D"false" Priority=3D"50" Name=3D"Grid Table 5 =
Dark"/>
<w:LsdException Locked=3D"false" Priority=3D"51" Name=3D"Grid Table 6 =
Colorful"/>
<w:LsdException Locked=3D"false" Priority=3D"52" Name=3D"Grid Table 7 =
Colorful"/>
<w:LsdException Locked=3D"false" Priority=3D"46" Name=3D"Grid Table 1 =
Light Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"47" Name=3D"Grid Table 2 =
Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"48" Name=3D"Grid Table 3 =
Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"49" Name=3D"Grid Table 4 =
Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"50" Name=3D"Grid Table 5 =
Dark Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"51" Name=3D"Grid Table 6 =
Colorful Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"52" Name=3D"Grid Table 7 =
Colorful Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"46" Name=3D"Grid Table 1 =
Light Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"47" Name=3D"Grid Table 2 =
Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"48" Name=3D"Grid Table 3 =
Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"49" Name=3D"Grid Table 4 =
Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"50" Name=3D"Grid Table 5 =
Dark Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"51" Name=3D"Grid Table 6 =
Colorful Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"52" Name=3D"Grid Table 7 =
Colorful Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"46" Name=3D"Grid Table 1 =
Light Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"47" Name=3D"Grid Table 2 =
Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"48" Name=3D"Grid Table 3 =
Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"49" Name=3D"Grid Table 4 =
Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"50" Name=3D"Grid Table 5 =
Dark Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"51" Name=3D"Grid Table 6 =
Colorful Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"52" Name=3D"Grid Table 7 =
Colorful Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"46" Name=3D"Grid Table 1 =
Light Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"47" Name=3D"Grid Table 2 =
Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"48" Name=3D"Grid Table 3 =
Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"49" Name=3D"Grid Table 4 =
Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"50" Name=3D"Grid Table 5 =
Dark Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"51" Name=3D"Grid Table 6 =
Colorful Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"52" Name=3D"Grid Table 7 =
Colorful Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"46" Name=3D"Grid Table 1 =
Light Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"47" Name=3D"Grid Table 2 =
Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"48" Name=3D"Grid Table 3 =
Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"49" Name=3D"Grid Table 4 =
Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"50" Name=3D"Grid Table 5 =
Dark Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"51" Name=3D"Grid Table 6 =
Colorful Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"52" Name=3D"Grid Table 7 =
Colorful Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"46" Name=3D"Grid Table 1 =
Light Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"47" Name=3D"Grid Table 2 =
Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"48" Name=3D"Grid Table 3 =
Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"49" Name=3D"Grid Table 4 =
Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"50" Name=3D"Grid Table 5 =
Dark Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"51" Name=3D"Grid Table 6 =
Colorful Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"52" Name=3D"Grid Table 7 =
Colorful Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"46" Name=3D"List Table 1 =
Light"/>
<w:LsdException Locked=3D"false" Priority=3D"47" Name=3D"List Table 2"/>
<w:LsdException Locked=3D"false" Priority=3D"48" Name=3D"List Table 3"/>
<w:LsdException Locked=3D"false" Priority=3D"49" Name=3D"List Table 4"/>
<w:LsdException Locked=3D"false" Priority=3D"50" Name=3D"List Table 5 =
Dark"/>
<w:LsdException Locked=3D"false" Priority=3D"51" Name=3D"List Table 6 =
Colorful"/>
<w:LsdException Locked=3D"false" Priority=3D"52" Name=3D"List Table 7 =
Colorful"/>
<w:LsdException Locked=3D"false" Priority=3D"46" Name=3D"List Table 1 =
Light Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"47" Name=3D"List Table 2 =
Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"48" Name=3D"List Table 3 =
Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"49" Name=3D"List Table 4 =
Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"50" Name=3D"List Table 5 =
Dark Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"51" Name=3D"List Table 6 =
Colorful Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"52" Name=3D"List Table 7 =
Colorful Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"46" Name=3D"List Table 1 =
Light Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"47" Name=3D"List Table 2 =
Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"48" Name=3D"List Table 3 =
Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"49" Name=3D"List Table 4 =
Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"50" Name=3D"List Table 5 =
Dark Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"51" Name=3D"List Table 6 =
Colorful Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"52" Name=3D"List Table 7 =
Colorful Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"46" Name=3D"List Table 1 =
Light Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"47" Name=3D"List Table 2 =
Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"48" Name=3D"List Table 3 =
Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"49" Name=3D"List Table 4 =
Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"50" Name=3D"List Table 5 =
Dark Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"51" Name=3D"List Table 6 =
Colorful Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"52" Name=3D"List Table 7 =
Colorful Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"46" Name=3D"List Table 1 =
Light Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"47" Name=3D"List Table 2 =
Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"48" Name=3D"List Table 3 =
Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"49" Name=3D"List Table 4 =
Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"50" Name=3D"List Table 5 =
Dark Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"51" Name=3D"List Table 6 =
Colorful Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"52" Name=3D"List Table 7 =
Colorful Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"46" Name=3D"List Table 1 =
Light Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"47" Name=3D"List Table 2 =
Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"48" Name=3D"List Table 3 =
Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"49" Name=3D"List Table 4 =
Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"50" Name=3D"List Table 5 =
Dark Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"51" Name=3D"List Table 6 =
Colorful Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"52" Name=3D"List Table 7 =
Colorful Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"46" Name=3D"List Table 1 =
Light Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"47" Name=3D"List Table 2 =
Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"48" Name=3D"List Table 3 =
Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"49" Name=3D"List Table 4 =
Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"50" Name=3D"List Table 5 =
Dark Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"51" Name=3D"List Table 6 =
Colorful Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"52" Name=3D"List Table 7 =
Colorful Accent 6"/>
</w:LatentStyles>
</xml><![endif]--><style><!--
/* Font Definitions */
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;
	mso-font-charset:1;
	mso-generic-font-family:roman;
	mso-font-format:other;
	mso-font-pitch:variable;
	mso-font-signature:0 0 0 0 0 0;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;
	mso-font-charset:0;
	mso-generic-font-family:swiss;
	mso-font-pitch:variable;
	mso-font-signature:-536870145 1073786111 1 0 415 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{mso-style-unhide:no;
	mso-style-qformat:yes;
	mso-style-parent:"";
	margin:0cm;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;
	mso-ascii-font-family:Calibri;
	mso-fareast-font-family:Calibri;
	mso-hansi-font-family:Calibri;
	mso-bidi-font-family:"Times New Roman";
	mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:#0563C1;
	text-decoration:underline;
	text-underline:single;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-noshow:yes;
	mso-style-priority:99;
	color:#954F72;
	text-decoration:underline;
	text-underline:single;}
span.EstiloCorreo17
	{mso-style-type:personal-compose;
	mso-style-noshow:yes;
	mso-style-unhide:no;
	mso-ansi-font-size:11.0pt;
	mso-bidi-font-size:11.0pt;
	font-family:"Arial",sans-serif;
	mso-ascii-font-family:Arial;
	mso-hansi-font-family:Arial;
	mso-bidi-font-family:Arial;
	color:#44546A;
	font-weight:normal;
	font-style:normal;
	text-decoration:none;
	text-underline:none;
	text-decoration:none;
	text-line-through:none;}
span.SpellE
	{mso-style-name:"";
	mso-spl-e:yes;}
span.GramE
	{mso-style-name:"";
	mso-gram-e:yes;}
.MsoChpDefault
	{mso-style-type:export-only;
	mso-default-props:yes;
	mso-ascii-font-family:Calibri;
	mso-fareast-font-family:Calibri;
	mso-hansi-font-family:Calibri;
	mso-bidi-font-family:"Times New Roman";
	mso-fareast-language:EN-US;}
@page WordSection1
	{size:612.0pt 792.0pt;
	margin:70.85pt 3.0cm 70.85pt 3.0cm;
	mso-header-margin:36.0pt;
	mso-footer-margin:36.0pt;
	mso-paper-source:0;}
div.WordSection1
	{page:WordSection1;}
--></style><!--[if gte mso 10]><style>/* Style Definitions */
table.MsoNormalTable
	{mso-style-name:"Tabla normal";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-priority:99;
	mso-style-parent:"";
	mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
	mso-para-margin:0cm;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;
	mso-ascii-font-family:Calibri;
	mso-hansi-font-family:Calibri;
	mso-fareast-language:EN-US;}
</style><![endif]--><!--[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=3DES =
link=3D"#0563C1" vlink=3D"#954F72" style=3D'tab-interval:35.4pt'><div =
class=3DWordSection1><p class=3DMsoNormal><span =
style=3D'font-family:"Arial",sans-serif;color:#44546A'>Hi <span =
class=3DSpellE>all</span>,<o:p></o:p></span></p><p =
class=3DMsoNormal><span =
style=3D'font-family:"Arial",sans-serif;color:#44546A'><o:p>&nbsp;</o:p><=
/span></p><p class=3DMsoNormal><span lang=3DEN-US =
style=3D'font-family:"Arial",sans-serif;color:#44546A;mso-ansi-language:E=
N-US'>My name is Jose Saldana. I am new in this =
list.<o:p></o:p></span></p><p class=3DMsoNormal><span lang=3DEN-US =
style=3D'font-family:"Arial",sans-serif;color:#44546A;mso-ansi-language:E=
N-US'><o:p>&nbsp;</o:p></span></p><p class=3DMsoNormal><span =
lang=3DEN-US =
style=3D'font-family:"Arial",sans-serif;color:#44546A;mso-ansi-language:E=
N-US'>I have been working on a traffic optimization proposal (called =
<span class=3DSpellE>Simplemux</span>, <a =
href=3D"http://datatracker.ietf.org/doc/draft-saldana-tsvwg-simplemux/">h=
ttp://datatracker.ietf.org/doc/draft-saldana-tsvwg-simplemux/</a>), =
which has been submitted to TSVWG.<o:p></o:p></span></p><p =
class=3DMsoNormal><span lang=3DEN-US =
style=3D'font-family:"Arial",sans-serif;color:#44546A;mso-ansi-language:E=
N-US'><o:p>&nbsp;</o:p></span></p><p class=3DMsoNormal><span =
lang=3DEN-US =
style=3D'font-family:"Arial",sans-serif;color:#44546A;mso-ansi-language:E=
N-US'>The idea is to multiplex a number of packets together. If a =
&#8220;delay budget&#8221; is available, some packets can be stopped for =
a while, and then sent together into a single =
one.<o:p></o:p></span></p><p class=3DMsoNormal><span lang=3DEN-US =
style=3D'font-family:"Arial",sans-serif;color:#44546A;mso-ansi-language:E=
N-US'><o:p>&nbsp;</o:p></span></p><p class=3DMsoNormal><span =
lang=3DEN-US =
style=3D'font-family:"Arial",sans-serif;color:#44546A;mso-ansi-language:E=
N-US'>Currently, if you want to do this, you have to use PPPMux =
[RFC3153], which means using L2TP in addition. <span =
class=3DSpellE>TMux</span> [RFC1692] is another option, but it only =
multiplexes <span class=3DSpellE>multiplexes</span> a number of segments =
between the same pair of machines.<o:p></o:p></span></p><p =
class=3DMsoNormal><span lang=3DEN-US =
style=3D'font-family:"Arial",sans-serif;color:#44546A;mso-ansi-language:E=
N-US'><o:p>&nbsp;</o:p></span></p><p class=3DMsoNormal><span =
lang=3DEN-US =
style=3D'font-family:"Arial",sans-serif;color:#44546A;mso-ansi-language:E=
N-US'>If <span class=3DSpellE>Simplemux</span> is combined with header =
compression (e.g. ROHC), bandwidth savings can be achieved at the same =
time: <a =
href=3D"http://datatracker.ietf.org/doc/draft-saldana-tsvwg-tcmtf/">http:=
//datatracker.ietf.org/doc/draft-saldana-tsvwg-tcmtf/</a><o:p></o:p></spa=
n></p><p class=3DMsoNormal><span lang=3DEN-US =
style=3D'font-family:"Arial",sans-serif;color:#44546A;mso-ansi-language:E=
N-US'><o:p>&nbsp;</o:p></span></p><p class=3DMsoNormal><span =
lang=3DEN-US =
style=3D'font-family:"Arial",sans-serif;color:#44546A;mso-ansi-language:E=
N-US'>Do you think multiplexing a number of packets can be useful in =
constrained networks? It may reduce energy consumption, since the number =
of transmissions could be reduced. The computational cost is not high: =
we have implemented it in 2500 lines of code (<a =
href=3D"https://github.com/TCM-TF/simplemux">https://github.com/TCM-TF/si=
mplemux</a>). You can also see this README file: <a =
href=3D"https://github.com/TCM-TF/simplemux/blob/master/simplemux_readme_=
v1.6.18.pdf">https://github.com/TCM-TF/simplemux/blob/master/simplemux_re=
adme_v1.6.18.pdf</a><o:p></o:p></span></p><p class=3DMsoNormal><span =
lang=3DEN-US =
style=3D'font-family:"Arial",sans-serif;color:#44546A;mso-ansi-language:E=
N-US'><o:p>&nbsp;</o:p></span></p><p class=3DMsoNormal><span =
lang=3DEN-US =
style=3D'font-family:"Arial",sans-serif;color:#44546A;mso-ansi-language:E=
N-US'><o:p>&nbsp;</o:p></span></p><p class=3DMsoNormal><span =
lang=3DEN-US =
style=3D'font-family:"Arial",sans-serif;color:#44546A;mso-ansi-language:E=
N-US'>Best regards,<o:p></o:p></span></p><p class=3DMsoNormal><span =
lang=3DEN-US =
style=3D'font-family:"Arial",sans-serif;color:#44546A;mso-ansi-language:E=
N-US'><o:p>&nbsp;</o:p></span></p><p class=3DMsoNormal><span =
lang=3DEN-US =
style=3D'font-family:"Arial",sans-serif;color:#44546A;mso-ansi-language:E=
N-US'>Jose Saldana, Ph.D.<o:p></o:p></span></p><p =
class=3DMsoNormal><span lang=3DEN-US =
style=3D'font-family:"Arial",sans-serif;color:#44546A;mso-ansi-language:E=
N-US'>University of Zaragoza<o:p></o:p></span></p><p =
class=3DMsoNormal><span lang=3DEN-US =
style=3D'mso-ansi-language:EN-US'><o:p>&nbsp;</o:p></span></p></div></bod=
y></html>
------=_NextPart_000_00DF_01D093AE.F3B125D0--



From nobody Thu May 21 02:27:23 2015
Return-Path: <stokcons@xs4all.nl>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 9C0971A902D; Thu, 21 May 2015 02:27:20 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.204
X-Spam-Level: *
X-Spam-Status: No, score=1.204 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FRT_BELOW2=2.154, HELO_EQ_FR=0.35, J_CHICKENPOX_55=0.6, RCVD_IN_DNSWL_NONE=-0.0001] autolearn=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 rQaqdivo6feR; Thu, 21 May 2015 02:27:18 -0700 (PDT)
Received: from lb1-smtp-cloud6.xs4all.net (lb1-smtp-cloud6.xs4all.net [194.109.24.24]) (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D171C1A9022; Thu, 21 May 2015 02:27:16 -0700 (PDT)
Received: from roundcube.xs4all.nl ([194.109.20.200]) by smtp-cloud6.xs4all.net with ESMTP id WZTE1q00M4K0fSy01ZTEd1; Thu, 21 May 2015 11:27:15 +0200
Received: from AMontpellier-654-1-255-78.w92-133.abo.wanadoo.fr ([92.133.146.78]) by roundcube.xs4all.nl with HTTP (HTTP/1.1 POST); Thu, 21 May 2015 11:27:14 +0200
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII; format=flowed
Content-Transfer-Encoding: 7bit
Date: Thu, 21 May 2015 11:27:14 +0200
From: peter van der Stok <stokcons@xs4all.nl>
To: Michel Veillette <Michel.Veillette@trilliantinc.com>
Organization: vanderstok consultancy
Mail-Reply-To: consultancy@vanderstok.org
In-Reply-To: <CO2PR0601MB7928EE0D09E272EC28D5DD6FEC20@CO2PR0601MB792.namprd06.prod.outlook.com>
References: <dabfda5a16901a917873bbc96d5561fe@xs4all.nl> <CO2PR0601MB7922F6E45BACC3350488B3CFEC30@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHQqdnXaZUaTKtUB3D2g0bWTK87v8-R9E72dYFXXJgoN_Q@mail.gmail.com> <CO2PR0601MB792DBA60BA66C32E8853841FEC30@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHSyPDyBDPVdtJ8Md9PLS_WOV29LCETEu2cxpeZ2qf0oag@mail.gmail.com> <CO2PR0601MB792CE9F7AA5CFE11F3556ACFEC30@CO2PR0601MB792.namprd06.prod.outlook.com> <318c674236a3cac594eb372e9c2466f0@xs4all.nl> <CO2PR0601MB7928EE0D09E272EC28D5DD6FEC20@CO2PR0601MB792.namprd06.prod.outlook.com>
Message-ID: <6f60125e7074d01a9f6332bb62b09911@xs4all.nl>
X-Sender: stokcons@xs4all.nl (Pg99RB7Hl2cbPMeLjgH5ynwEj3BLLZjD)
User-Agent: XS4ALL Webmail
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/ix-qYhH0R9icQrFib3WWK2qFdoE>
Cc: 6tisch@ietf.org, Core <core@ietf.org>
Subject: Re: [core] CoMI rehashing
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: consultancy@vanderstok.org
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 21 May 2015 09:27:20 -0000

Hi Michel,

We are not far apart, it seems to me.
There is one thing left in my view:
- Server returns new hash value to client, or
- Client reads new hash value from a supporting file (called 
"clash-file")

The supporting file is introduced to remove storage requirements from 
server, such as: data node name, name extension, module name, hashes.
And it makes rehash handling for large clients (storing the data node 
names) and for small clients (storing module names only) similar.
The "clash-file" is still needed when the server returns the new hash 
value to store data node name and name extension.
By returning the new hash value the server is burdened with the module 
name storage.

few comments below in
<pvds2> comment </pvds2>

Peter

Michel Veillette schreef op 2015-05-20 17:46:
> [MV] Inline
> 
> see below, some preliminary comments.
> 
> Peter
> 
> Michel Veillette schreef op 2015-05-19 21:49:
>> Hi Andy, Hi Peter
>> 
>> A solution based on the use of "module ID, YANG hash" as unique
>> identifier seem to be promising.
>> If we can successfully address the items bellow (1 to 3), I believe we
>> can address the different issues identified without introducing a
>> module ID registry.
>> Something I agree it will be nice to avoid.
> 
> <pvds>
> Nice to know that we are on the same track </pvds>
> 
>> 
>> Issues:
>> - "clash_file" on the server side
>> - traffic overhead (handshake to retrieve the "clash_file")
>> - per-server rehash table overhead on the client side
>> - string table overhead on the client side to index the "clash_file"
>> 
>> ITEM 1) Hash clashes within a YANG module
>> 
>> We need to describe one or multiple approaches to resolve YANG hash
>> clashes within a module if this ever happen.
>> - We can suggest to rename any conflicting data node identifier(s)
>> prior publishing
>> - We can introduce a new YANG statement to assign an alternate hash
>> value to an already published YANG module
>> - We can also setup a registry to publish alternate hash values to an
>> already published YANG module
> 
> <pvds>
> Is this a subject for CoMI draft?
> May be address this in another draft?
> </pvds>
> 
> [MV] Minimally, the strategy used to address internal module clashes
> should be described clearly in the CoMI spec.
> 
>> 
>> ITEM 2)  Traffic overhead
>> 
>> The propose hash clash error is a step in the right direction to avoid
>> the upfront retrieval of the "clash_file".
> 
> <pvds>
> The reason is different; I was worried about upgrades of servers, the
> specification left open that the old hash value of a data_node was
> rehashed, and a new data-node with the original hash was added.
> Clients could then access another data node with the old hash value.
> </pvds>
> 
> [MV] The side effect of not requiring upfront loading of the "rehash"
> list is nice feature.
<pvds2>
Some text in the draft is needed anyway to motivate the CoMI re-hash 
specification
</pvds2>
> 
>> To completely eliminate the
>> need to retrieve the "clash_file" , I propose to support the "module
>> name" as an optional query parameter. This option can be used to
>> access the targeted data node after receiving a hash clashes error or
>> to avoid hash clashes errors.
>> 
>> For example:
>>    To retrieve data nodes "current-datetime" and  "boot-datetime"
>> 
>>    Option #1
>>       REQ: GET example.com/mg?select= VNwQI,folNh
>>       (This request may return a hash clash error)
>> 
>>    Option #2
>>       REQ: GET example.com/mg?select=ietf-system(VNwQI,folNh)
>>       (This request never return a hash clash error)
>> 
> 
> <pvds>
> 
> Your proposal increases data traffic permanently when a clash has
> occurred, and needs the storage of module names in server as well.
> 
> With rehashing, the "clash_file" overhead happens only once after the
> reload of the server.
> 
> BTW the /mg string in URI is removed when possible.
> </pvds>
> 
> [MV] This overhead is not necessary permanent.
> [MV] The CoMI server may return a rehash value in the payload which
> can be used for subsequent accesses.
> [MV] This way, we cut the extra exchange and the state machine
> associated with it.
<pvds2>
Interesting.
But somewhere the rehash needs to be done
Not clear what this means in message exchanges
</pvds2>
> 
>> ITEM 3) Datastore access
>> 
>> Access (GET and PUT) of  the entire datastore is an important feature
>> to allows backup and restoration of a device configuration.
> <pvds>
> You mean server or client, or both?
> and what is device configuration? the set of data nodes that are
> accessible, or the values of all accessible data-nodes?
> </pvds>
>> To resolve
>> hash clashes between modules, I propose to support the concept of
>> module context as describe in my document
>> (draft-vanderstok-core-comi-06 - MV.docx).
>> 
>> For example:
>> 
>>    REQ: GET example.com/mg
>> 
>>    RES: 2.05 Content (Content-Format: application/cbor)
>>    {
>>       "module a" : {
>>          365257235 : value
>>          702149626 : {
>>             215993329 : value            <--- hash clashes
>>             962191682 : value
>>          },
>>          829222983 : value
>>       },
>>       "module b" : {
>>          215993329 : value               <--- hash clashes
>>       },
>>       "module c" : {
>>          993533527 : value
>>       }
>>    }
>> 
> 
> <pvds>
> Do you want a dump of all values of all accessible data nodes?
> 
> [MV] Yes, backup and recovery this is a core feature of NETCONF and
> should be supported at lower scale using CoMI
> 
> The proposed syntax does not logically follow from ITEM 2), because
> rehashing is compulsory, and you will have two hashes pointing to the
> same value belonging to the same data node.
> 
> [MV] I the model I'm proposing, each module have its own hash table,
> both the "module name" + "hash value" is used to identify a data node.
<pvds2>
OK, but the message overhead argument remains. The CoMI design criterion 
is to produce small message sizes and small servers.
You rightly also introduced the concern for storage space in clients.
Actually our table examples are there to show feasibility and explore 
table info needs.
A server or client is free to structure tables as it wishes.
</pvds2>
> 
> When using rehashing, a (smaller) flat table with "hash value : data
> node value" is returned.
> Alternatively, I can see a request that returns for all clashed hashes
> the information: old hash, module name, new hash; but that means
> storing module names in server as well.
> </pvds>
> 
>> I hope this approach represents a win/win solution which avoid the two
>> contentious items:
>> - IANA module ID registration
>> - rehash and "clash_file"
> 
> <pvds>
> The "clash-file" is only accessed by a client when a reload of the
> server (how often does that happen?) leads to hash clash (probability
> <
> 10^-4)
> </pvds>
> 
>> 
>> In summary:
>> In this solution there is no more rehash value, no "clash_file".
>> We just use the "module name, YANG hash" as unique identifier.
> 
> <pvds>
> This is then optional next to the compulsory rehashing?
> </pvds>
> 
>> Message size overhead is keep to a minimum and this overhead is
>> optional (at the exception of the datastore access).
>> 
>> Michel Veillette
>> System Architecture Director
>> Trilliant Inc.
>> Tel: 450-375-0556 ext. 237
>> michel.veillette@trilliantinc.com
>> www.trilliantinc.com


From nobody Thu May 21 09:32:16 2015
Return-Path: <Michel.Veillette@trilliantinc.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 25AE31B2A79; Thu, 21 May 2015 09:32:15 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Level: 
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham
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 lffkNZQvSmWg; Thu, 21 May 2015 09:32:11 -0700 (PDT)
Received: from na01-by2-obe.outbound.protection.outlook.com (mail-by2on0116.outbound.protection.outlook.com [207.46.100.116]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 3DEB11A8920; Thu, 21 May 2015 09:32:11 -0700 (PDT)
Received: from CO2PR0601MB791.namprd06.prod.outlook.com (10.141.247.143) by CO2PR0601MB743.namprd06.prod.outlook.com (10.141.245.142) with Microsoft SMTP Server (TLS) id 15.1.166.22; Thu, 21 May 2015 16:32:09 +0000
Received: from CO2PR0601MB792.namprd06.prod.outlook.com (10.141.247.144) by CO2PR0601MB791.namprd06.prod.outlook.com (10.141.247.143) with Microsoft SMTP Server (TLS) id 15.1.166.22; Thu, 21 May 2015 16:32:05 +0000
Received: from CO2PR0601MB792.namprd06.prod.outlook.com ([10.141.247.144]) by CO2PR0601MB792.namprd06.prod.outlook.com ([10.141.247.144]) with mapi id 15.01.0172.012; Thu, 21 May 2015 16:32:05 +0000
From: Michel Veillette <Michel.Veillette@trilliantinc.com>
To: "consultancy@vanderstok.org" <consultancy@vanderstok.org>
Thread-Topic: [core] CoMI rehashing
Thread-Index: AQHQkgSuXE++bCKK7kqMBAf0Z8FiQJ2DWAiggAAWvQCAAAGJwIAAMHKAgAAAVRCAAQaQgIAAWMnwgAEsLQCAAGOykA==
Date: Thu, 21 May 2015 16:32:04 +0000
Message-ID: <CO2PR0601MB7923936551179F17B3C5875FEC10@CO2PR0601MB792.namprd06.prod.outlook.com>
References: <dabfda5a16901a917873bbc96d5561fe@xs4all.nl> <CO2PR0601MB7922F6E45BACC3350488B3CFEC30@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHQqdnXaZUaTKtUB3D2g0bWTK87v8-R9E72dYFXXJgoN_Q@mail.gmail.com> <CO2PR0601MB792DBA60BA66C32E8853841FEC30@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHSyPDyBDPVdtJ8Md9PLS_WOV29LCETEu2cxpeZ2qf0oag@mail.gmail.com> <CO2PR0601MB792CE9F7AA5CFE11F3556ACFEC30@CO2PR0601MB792.namprd06.prod.outlook.com> <318c674236a3cac594eb372e9c2466f0@xs4all.nl> <CO2PR0601MB7928EE0D09E272EC28D5DD6FEC20@CO2PR0601MB792.namprd06.prod.outlook.com> <6f60125e7074d01a9f6332bb62b09911@xs4all.nl>
In-Reply-To: <6f60125e7074d01a9f6332bb62b09911@xs4all.nl>
Accept-Language: fr-CA, en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
authentication-results: spf=none (sender IP is ) smtp.mailfrom=Michel.Veillette@trilliantinc.com; 
x-originating-ip: [207.96.192.122]
x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:; SRVR:CO2PR0601MB791; UriScan:; BCL:0; PCL:0; RULEID:; SRVR:CO2PR0601MB743; 
x-microsoft-antispam-prvs: <CO2PR0601MB79192C938708E4C606FB960FEC10@CO2PR0601MB791.namprd06.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:;
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(601004)(5005006)(3002001); SRVR:CO2PR0601MB791; BCL:0; PCL:0; RULEID:;  SRVR:CO2PR0601MB791; 
x-forefront-prvs: 0583A86C08
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(6009001)(189002)(13464003)(38414003)(199003)(2656002)(87936001)(93886004)(105586002)(189998001)(5001960100002)(97736004)(4001540100001)(77156002)(99286002)(110136002)(62966003)(81156007)(46102003)(40100003)(18206015028)(122556002)(5001830100001)(5001860100001)(2950100001)(2900100001)(92566002)(15975445007)(102836002)(77096005)(68736005)(2501003)(33656002)(19580395003)(19580405001)(86362001)(19625215002)(17760045003)(16236675004)(99936001)(76176999)(66066001)(2351001)(19627595001)(64706001)(54356999)(50986999)(106356001)(76576001)(19300405004)(101416001)(106116001)(74316001); DIR:OUT; SFP:1102; SCL:1; SRVR:CO2PR0601MB791; H:CO2PR0601MB792.namprd06.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords;  MX:1; A:1; LANG:; 
received-spf: None (protection.outlook.com: trilliantinc.com does not designate permitted sender hosts)
Content-Type: multipart/related; boundary="_008_CO2PR0601MB7923936551179F17B3C5875FEC10CO2PR0601MB792na_"; type="multipart/alternative"
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-originalarrivaltime: 21 May 2015 16:32:04.3031 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 4f6fbd13-0dfb-4150-85c3-d43260c04309
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO2PR0601MB791
X-OriginatorOrg: trilliantinc.com
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/rRIjieGKrmmD68F9D3wveHQ3Z8g>
Cc: "6tisch@ietf.org" <6tisch@ietf.org>, Core <core@ietf.org>
Subject: Re: [core] CoMI rehashing
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 21 May 2015 16:32:15 -0000

--_008_CO2PR0601MB7923936551179F17B3C5875FEC10CO2PR0601MB792na_
Content-Type: multipart/alternative;
	boundary="_000_CO2PR0601MB7923936551179F17B3C5875FEC10CO2PR0601MB792na_"

--_000_CO2PR0601MB7923936551179F17B3C5875FEC10CO2PR0601MB792na_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Hi Peter



We seem effectively to be on the same intersection (YANG, CBOR, YANG hash) =
 but still on the opposite side of the street.

The core difference seem to be the expected data struture implemented by th=
e CoMI server.

All your solutions all based on flat hash table represented below.



[cid:image002.png@01D093BA.ECF2CE40]



All my solutions are all based on a hash table per module context represent=
ed below.



[cid:image004.png@01D093BA.ECF2CE40]



This alternate data structure enable a different set of solutions such as:



*         Access using either the "Data Node ID" alone (if unique) or "Modu=
le ID" + "Data Node ID"
NOTE: When a clash exist, an alternate "Data Node ID" can be returned by th=
e CoMI server for subsequent requests using the "Data Node ID" alone.



*         Access to all data nodes of a module
NOTE: The CoMI server know which data nodes are part of which module and ca=
n return those if a query parameter (select) ask to do so.



*         Ability to support a mix managed/unmanaged model where some modul=
es may use manage Data Node IDs and others may use YANG hashes
NOTE: If we also want to support managed and unmanaged "Module ID", we can =
use a special character like # to differentiate between them.
Module ID prefixed by # can be unmanaged module name, Module ID not prefixe=
d by # can be IANA registered module ID.
The advantage will be to minimize the overhead associated to some popular m=
odules.
Within a module, all data nodes need to be either manage or unmanaged



*         Most importantly, this data structure enable different methods wh=
ich avoid the need to implement a rehash list, its retrieval and storage



I'm open to compromise on multiple aspects of the solutions (support of not=
 of managed Module ID, managed Data node ID, specific message format and qu=
ery parameters).

However, I will have hard time to compromise on this fundamental difference=
.



About "OK, but the message overhead argument remains."



*         On the CoMI server side, I don't consider that adding a dozen of =
"Module ID" and splitting the hash table in pieces represent an unacceptabl=
e overhead, especially if we remove the rehash list.

*         On the protocol side, if we allow access using the "Data Node ID"=
 alone and if we return an alternate "Data Node ID" in case of a clash for =
subsequent requests seem to me more efficient than retrieving a rehash list=
.



Michel Veillette

System Architecture Director

Trilliant Inc.

Tel: 450-375-0556 ext. 237

michel.veillette@trilliantinc.com

www.trilliantinc.com



-----Original Message-----
From: peter van der Stok [mailto:stokcons@xs4all.nl]
Sent: 21 mai 2015 05:27
To: Michel Veillette
Cc: consultancy@vanderstok.org; Andy Bierman; 6tisch@ietf.org; Core
Subject: RE: [core] CoMI rehashing



Hi Michel,



We are not far apart, it seems to me.

There is one thing left in my view:

- Server returns new hash value to client, or

- Client reads new hash value from a supporting file (called

"clash-file")



The supporting file is introduced to remove storage requirements from serve=
r, such as: data node name, name extension, module name, hashes.

And it makes rehash handling for large clients (storing the data node

names) and for small clients (storing module names only) similar.

The "clash-file" is still needed when the server returns the new hash value=
 to store data node name and name extension.

By returning the new hash value the server is burdened with the module name=
 storage.



few comments below in

<pvds2> comment </pvds2>



Peter





--_000_CO2PR0601MB7923936551179F17B3C5875FEC10CO2PR0601MB792na_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-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=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
<meta name=3D"Generator" content=3D"Microsoft Word 15 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><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;
	mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:#0563C1;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:#954F72;
	text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
	{mso-style-priority:99;
	mso-style-link:"Plain Text Char";
	margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;
	mso-fareast-language:EN-US;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
	{mso-style-priority:34;
	margin-top:0in;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:.5in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;
	mso-fareast-language:EN-US;}
span.PlainTextChar
	{mso-style-name:"Plain Text Char";
	mso-style-priority:99;
	mso-style-link:"Plain Text";
	font-family:"Calibri",sans-serif;}
.MsoChpDefault
	{mso-style-type:export-only;
	font-family:"Calibri",sans-serif;
	mso-fareast-language:EN-US;}
@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:1152984006;
	mso-list-type:hybrid;
	mso-list-template-ids:892926766 269025281 269025283 269025285 269025281 26=
9025283 269025285 269025281 269025283 269025285;}
@list l0:level1
	{mso-level-number-format:bullet;
	mso-level-text:\F0B7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:Symbol;}
@list l0:level2
	{mso-level-number-format:bullet;
	mso-level-text:o;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:"Courier New";}
@list l0:level3
	{mso-level-number-format:bullet;
	mso-level-text:\F0A7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:Wingdings;}
@list l0:level4
	{mso-level-number-format:bullet;
	mso-level-text:\F0B7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:Symbol;}
@list l0:level5
	{mso-level-number-format:bullet;
	mso-level-text:o;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:"Courier New";}
@list l0:level6
	{mso-level-number-format:bullet;
	mso-level-text:\F0A7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:Wingdings;}
@list l0:level7
	{mso-level-number-format:bullet;
	mso-level-text:\F0B7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:Symbol;}
@list l0:level8
	{mso-level-number-format:bullet;
	mso-level-text:o;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:"Courier New";}
@list l0:level9
	{mso-level-number-format:bullet;
	mso-level-text:\F0A7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:Wingdings;}
@list l1
	{mso-list-id:1265575371;
	mso-list-type:hybrid;
	mso-list-template-ids:1363712094 269025281 269025283 269025285 269025281 2=
69025283 269025285 269025281 269025283 269025285;}
@list l1:level1
	{mso-level-number-format:bullet;
	mso-level-text:\F0B7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:Symbol;}
@list l1:level2
	{mso-level-number-format:bullet;
	mso-level-text:o;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:"Courier New";}
@list l1:level3
	{mso-level-number-format:bullet;
	mso-level-text:\F0A7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:Wingdings;}
@list l1:level4
	{mso-level-number-format:bullet;
	mso-level-text:\F0B7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:Symbol;}
@list l1:level5
	{mso-level-number-format:bullet;
	mso-level-text:o;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:"Courier New";}
@list l1:level6
	{mso-level-number-format:bullet;
	mso-level-text:\F0A7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:Wingdings;}
@list l1:level7
	{mso-level-number-format:bullet;
	mso-level-text:\F0B7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:Symbol;}
@list l1:level8
	{mso-level-number-format:bullet;
	mso-level-text:o;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:"Courier New";}
@list l1:level9
	{mso-level-number-format:bullet;
	mso-level-text:\F0A7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	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=3D"EN-CA" link=3D"#0563C1" vlink=3D"#954F72">
<div class=3D"WordSection1">
<p class=3D"MsoPlainText">Hi Peter<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">We seem effectively to be on the same intersectio=
n (YANG, CBOR, YANG hash) &nbsp;but still on the opposite side of the stree=
t.<o:p></o:p></p>
<p class=3D"MsoPlainText"><span style=3D"mso-fareast-language:EN-CA">The co=
re difference seem to be the expected data struture implemented by the CoMI=
 server.<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span style=3D"mso-fareast-language:EN-CA">All yo=
ur solutions all based on flat hash table represented below.<o:p></o:p></sp=
an></p>
<p class=3D"MsoPlainText"><span style=3D"mso-fareast-language:EN-CA"><o:p>&=
nbsp;</o:p></span></p>
<p class=3D"MsoPlainText" style=3D"margin-left:.5in"><span style=3D"mso-far=
east-language:EN-CA"><!--[if gte vml 1]><v:shapetype id=3D"_x0000_t75" coor=
dsize=3D"21600,21600" o:spt=3D"75" o:preferrelative=3D"t" path=3D"m@4@5l@4@=
11@9@11@9@5xe" filled=3D"f" stroked=3D"f">
<v:stroke joinstyle=3D"miter" />
<v:formulas>
<v:f eqn=3D"if lineDrawn pixelLineWidth 0" />
<v:f eqn=3D"sum @0 1 0" />
<v:f eqn=3D"sum 0 0 @1" />
<v:f eqn=3D"prod @2 1 2" />
<v:f eqn=3D"prod @3 21600 pixelWidth" />
<v:f eqn=3D"prod @3 21600 pixelHeight" />
<v:f eqn=3D"sum @0 0 1" />
<v:f eqn=3D"prod @6 1 2" />
<v:f eqn=3D"prod @7 21600 pixelWidth" />
<v:f eqn=3D"sum @8 21600 0" />
<v:f eqn=3D"prod @7 21600 pixelHeight" />
<v:f eqn=3D"sum @10 21600 0" />
</v:formulas>
<v:path o:extrusionok=3D"f" gradientshapeok=3D"t" o:connecttype=3D"rect" />
<o:lock v:ext=3D"edit" aspectratio=3D"t" />
</v:shapetype><v:shape id=3D"_x0000_i1027" type=3D"#_x0000_t75" style=3D'wi=
dth:190.5pt;height:145.5pt' o:ole=3D"">
<v:imagedata src=3D"cid:image001.emz@01D093BA.ECF2CE40" o:title=3D"" />
</v:shape><![endif]--><![if !vml]><img width=3D"254" height=3D"194" src=3D"=
cid:image002.png@01D093BA.ECF2CE40" v:shapes=3D"_x0000_i1027"><![endif]><!-=
-[if gte mso 9]><xml>
<o:OLEObject Type=3D"Embed" ProgID=3D"Visio.Drawing.15" ShapeID=3D"_x0000_i=
1027" DrawAspect=3D"Content" ObjectID=3D"_1493716708">
</o:OLEObject>
</xml><![endif]--><o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span style=3D"mso-fareast-language:EN-CA"><o:p>&=
nbsp;</o:p></span></p>
<p class=3D"MsoPlainText">All my solutions are all based on a hash table pe=
r module context
<span style=3D"mso-fareast-language:EN-CA">represented below.</span><o:p></=
o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText" style=3D"margin-left:.5in"><!--[if gte vml 1]><v:=
shape id=3D"_x0000_i1028" type=3D"#_x0000_t75" style=3D'width:289.5pt;heigh=
t:154.5pt' o:ole=3D"">
<v:imagedata src=3D"cid:image003.emz@01D093BA.ECF2CE40" o:title=3D"" />
</v:shape><![endif]--><![if !vml]><img width=3D"386" height=3D"206" src=3D"=
cid:image004.png@01D093BA.ECF2CE40" v:shapes=3D"_x0000_i1028"><![endif]><!-=
-[if gte mso 9]><xml>
<o:OLEObject Type=3D"Embed" ProgID=3D"Visio.Drawing.15" ShapeID=3D"_x0000_i=
1028" DrawAspect=3D"Content" ObjectID=3D"_1493716709">
</o:OLEObject>
</xml><![endif]--><o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">This alternate data structure enable a different =
set of solutions such as:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText" style=3D"margin-left:.5in;text-indent:-.25in;mso-=
list:l1 level1 lfo1">
<![if !supportLists]><span style=3D"font-family:Symbol"><span style=3D"mso-=
list:Ignore">&middot;<span style=3D"font:7.0pt &quot;Times New Roman&quot;"=
>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]>Access using either the &#8220;Data Node ID&=
#8221; alone (if unique) or &#8220;Module ID&#8221; &#43; &#8220;Data Node =
ID&#8221;<br>
NOTE: When a clash exist, an alternate &#8220;Data Node ID&#8221; can be re=
turned by the CoMI server for subsequent requests using the &#8220;Data Nod=
e ID&#8221; alone.<o:p></o:p></p>
<p class=3D"MsoPlainText" style=3D"margin-left:.5in"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText" style=3D"margin-left:.5in;text-indent:-.25in;mso-=
list:l1 level1 lfo1">
<![if !supportLists]><span style=3D"font-family:Symbol"><span style=3D"mso-=
list:Ignore">&middot;<span style=3D"font:7.0pt &quot;Times New Roman&quot;"=
>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]>Access to all data nodes of a module<br>
NOTE: The CoMI server know which data nodes are part of which module and ca=
n return those if a query parameter (select) ask to do so.<o:p></o:p></p>
<p class=3D"MsoListParagraph"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText" style=3D"margin-left:.5in;text-indent:-.25in;mso-=
list:l1 level1 lfo1">
<![if !supportLists]><span style=3D"font-family:Symbol"><span style=3D"mso-=
list:Ignore">&middot;<span style=3D"font:7.0pt &quot;Times New Roman&quot;"=
>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]>Ability to support a mix managed/unmanaged m=
odel where some modules may use manage Data Node IDs and others may use YAN=
G hashes<br>
NOTE: If we also want to support managed and unmanaged &#8220;Module ID&#82=
21;, we can use a special character like # to differentiate between them.<b=
r>
Module ID prefixed by # can be unmanaged module name, Module ID not prefixe=
d by # can be IANA registered module ID.<br>
The advantage will be to minimize the overhead associated to some popular m=
odules.<br>
Within a module, all data nodes need to be either manage or unmanaged<o:p><=
/o:p></p>
<p class=3D"MsoListParagraph"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText" style=3D"margin-left:.5in;text-indent:-.25in;mso-=
list:l1 level1 lfo1">
<![if !supportLists]><span style=3D"font-family:Symbol"><span style=3D"mso-=
list:Ignore">&middot;<span style=3D"font:7.0pt &quot;Times New Roman&quot;"=
>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]>Most importantly, this data structure enable=
 different methods which avoid the need to implement a rehash list, its ret=
rieval and storage<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">I&#8217;m open to compromise on multiple aspects =
of the solutions (support of not of managed Module ID, managed Data node ID=
, specific message format and query parameters).<o:p></o:p></p>
<p class=3D"MsoPlainText">However, I will have hard time to compromise on t=
his fundamental difference.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">About &#8220;OK, but the message overhead argumen=
t remains.&#8221;<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText" style=3D"margin-left:.5in;text-indent:-.25in;mso-=
list:l0 level1 lfo2">
<![if !supportLists]><span style=3D"font-family:Symbol"><span style=3D"mso-=
list:Ignore">&middot;<span style=3D"font:7.0pt &quot;Times New Roman&quot;"=
>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]>On the CoMI server side, I don&#8217;t consi=
der that adding a dozen of &#8220;Module ID&#8221; and splitting the hash t=
able in pieces represent an unacceptable overhead, especially if we remove =
the rehash list.<o:p></o:p></p>
<p class=3D"MsoPlainText" style=3D"margin-left:.5in;text-indent:-.25in;mso-=
list:l0 level1 lfo2">
<![if !supportLists]><span style=3D"font-family:Symbol"><span style=3D"mso-=
list:Ignore">&middot;<span style=3D"font:7.0pt &quot;Times New Roman&quot;"=
>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]>On the protocol side, if we allow access usi=
ng the &#8220;Data Node ID&#8221; alone and if we return an alternate &#822=
0;Data Node ID&#8221; in case of a clash for subsequent requests seem to me=
 more efficient than retrieving a rehash list.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Michel Veillette<o:p></o:p></p>
<p class=3D"MsoPlainText">System Architecture Director<o:p></o:p></p>
<p class=3D"MsoPlainText">Trilliant Inc.<o:p></o:p></p>
<p class=3D"MsoPlainText">Tel: 450-375-0556 ext. 237<o:p></o:p></p>
<p class=3D"MsoPlainText">michel.veillette@trilliantinc.com<o:p></o:p></p>
<p class=3D"MsoPlainText">www.trilliantinc.com &nbsp; <o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US" style=3D"mso-fareast-languag=
e:EN-CA">-----Original Message-----<br>
From: peter van der Stok [mailto:stokcons@xs4all.nl] <br>
Sent: 21 mai 2015 05:27<br>
To: Michel Veillette<br>
Cc: consultancy@vanderstok.org; Andy Bierman; 6tisch@ietf.org; Core<br>
Subject: RE: [core] CoMI rehashing</span></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Hi Michel,<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">We are not far apart, it seems to me.<o:p></o:p><=
/p>
<p class=3D"MsoPlainText">There is one thing left in my view:<o:p></o:p></p=
>
<p class=3D"MsoPlainText">- Server returns new hash value to client, or<o:p=
></o:p></p>
<p class=3D"MsoPlainText">- Client reads new hash value from a supporting f=
ile (called<o:p></o:p></p>
<p class=3D"MsoPlainText">&quot;clash-file&quot;)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">The supporting file is introduced to remove stora=
ge requirements from server, such as: data node name, name extension, modul=
e name, hashes.<o:p></o:p></p>
<p class=3D"MsoPlainText">And it makes rehash handling for large clients (s=
toring the data node<o:p></o:p></p>
<p class=3D"MsoPlainText">names) and for small clients (storing module name=
s only) similar.<o:p></o:p></p>
<p class=3D"MsoPlainText">The &quot;clash-file&quot; is still needed when t=
he server returns the new hash value to store data node name and name exten=
sion.<o:p></o:p></p>
<p class=3D"MsoPlainText">By returning the new hash value the server is bur=
dened with the module name storage.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">few comments below in<o:p></o:p></p>
<p class=3D"MsoPlainText">&lt;pvds2&gt; comment &lt;/pvds2&gt;<o:p></o:p></=
p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Peter<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
</div>
</body>
</html>

--_000_CO2PR0601MB7923936551179F17B3C5875FEC10CO2PR0601MB792na_--

--_008_CO2PR0601MB7923936551179F17B3C5875FEC10CO2PR0601MB792na_
Content-Type: application/octet-stream; name="image001.emz"
Content-Description: image001.emz
Content-Disposition: inline; filename="image001.emz"; size=3119;
	creation-date="Thu, 21 May 2015 16:32:02 GMT";
	modification-date="Thu, 21 May 2015 16:32:02 GMT"
Content-ID: <image001.emz@01D093BA.ECF2CE40>
Content-Transfer-Encoding: base64

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

--_008_CO2PR0601MB7923936551179F17B3C5875FEC10CO2PR0601MB792na_
Content-Type: image/png; name="image002.png"
Content-Description: image002.png
Content-Disposition: inline; filename="image002.png"; size=2563;
	creation-date="Thu, 21 May 2015 16:32:03 GMT";
	modification-date="Thu, 21 May 2015 16:32:03 GMT"
Content-ID: <image002.png@01D093BA.ECF2CE40>
Content-Transfer-Encoding: base64

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

--_008_CO2PR0601MB7923936551179F17B3C5875FEC10CO2PR0601MB792na_
Content-Type: application/octet-stream; name="image003.emz"
Content-Description: image003.emz
Content-Disposition: inline; filename="image003.emz"; size=3411;
	creation-date="Thu, 21 May 2015 16:32:03 GMT";
	modification-date="Thu, 21 May 2015 16:32:03 GMT"
Content-ID: <image003.emz@01D093BA.ECF2CE40>
Content-Transfer-Encoding: base64

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

--_008_CO2PR0601MB7923936551179F17B3C5875FEC10CO2PR0601MB792na_
Content-Type: image/png; name="image004.png"
Content-Description: image004.png
Content-Disposition: inline; filename="image004.png"; size=6943;
	creation-date="Thu, 21 May 2015 16:32:03 GMT";
	modification-date="Thu, 21 May 2015 16:32:03 GMT"
Content-ID: <image004.png@01D093BA.ECF2CE40>
Content-Transfer-Encoding: base64

iVBORw0KGgoAAAANSUhEUgAAAYIAAADOCAYAAAAzFwUqAAAAAXNSR0ICQMB9xQAAAAlwSFlzAAAO
xAAADsQBlSsOGwAAABl0RVh0U29mdHdhcmUATWljcm9zb2Z0IE9mZmljZX/tNXEAABqfSURBVHja
7Z2/j9xGlsdJwA5ka2wo0g8D9gkKRjMjGJJhSGN2oDHuIluBIinUQAI40QECHIzuAEPrv2D6PxAc
aYGNp5MNZi9wusImF/QEBu6CCxwsbgUDewu5eV0kq1lVLJJFDqfZTX4e8LXV3eyuqaqu96l6jzPP
++GHH7wwDHf39/f3EHry5Mm/MA6djv8/Mw5I6vDw8Irw0eetGAIXL178+7179/6K0KVLl95duXLl
/xiLbjRfi7Pbt2//jbFA29vbb3d2dn7yPM8/dxAI6ohGIwyb26NHj949e/aMgejIPvroo9nPP//M
QGDRyclJtLW19QYQYEs3QNCtAQJMGiDAOjNA0K0BAkwaIMA6M0DQrQECTBogwDozQNCtAQJMGiDA
OjNA0K0BAkwaIMA6M0DQrQECTBogOG87HUdBMI5OKy+cRKEXzv87HBskCJy/D+dvgCBbewf+fO3N
ZoMdAUCQrdBoHHiR5wXR+DT/RQk98VoDR32uIBA/s/rzyj6oWl24NAPB2fo4CW3z69Ke3sYk9KKw
ycA2AoE6z+3Ncd9AMDnwo2A8jWbGeI8qnTwgAATGYgvnjiIwPcUkjLwwbLZjXzoIdEd3Og4ib0V2
oKY1B0HTPiZOtJ4DT9oL5u9TvxfdgqCdOe7diWByEPnzcZjO1LEZRf58osp9PCAABOZim8wXquaQ
5cLTHXW8+JRdmekkFq/FTkQuUsPZa04hDwK9DdtOthoE8jQTruCxoC0Q6H2Upzc5/nJ8zZ20GOui
a4u+F1m7JgiafR9c5rgaBE3nuH+hofnYjEbReEEC8difj8ssPSUIh+9r851cqoLAgII4UYwyuMRg
8bP5Opr2Ax6AwLLYtEW+cNaKoz41YKE+Nl7Td2s1QGC2EZ9KJg1AcIbd69qAoKiP9tCZfSzsn6s+
H89l+ubcd6TJ98Fpjl1A0GyO+5gj0E4ApWEhFRqOIDA/T5xAKk8bgGBtQRAvyHSxZgtMcdS5Bas4
GPO1Kmdf9Jr4HM+IBed2rC4gaBIOWTcQ5Puo7sKz5+1jYb/W1p6YI8tmoen3wWmOXUDQbI57mSxW
nLWAwsjMGURJLsGX830sTguOIBCO3zfn6yjqw6EAEJQueNU5V4FAgUhbIKhc2a6hoboJ0nUDgdLH
eJctnaLpII3Hpdfa25M7+nElCBy+D05z7AKCZnPcz7uGZDhoOh8nNUwkISGdvxo2qgGCnpwAAIGj
g1nEbrPV3lJoKO9UnEJDDUEQ73ZX8TjQIgjUPqrhmyoQlF9bNsbG6aGt0FBDEDSd477ePhqHh9Jc
THHiuAwEwQIgyWcVhIYAQf9BkCxSdcGVJ4uLwhLBeByFBcnBIAxrJIs9xxyBV/GePoCgrI9qAji5
28ee1DWTxflr7WMcLUI6ZcniJt+H4vmquH204Rz39vcI0p1/7lZSLVks59sEgZ4QlmvUniwWY39M
joBfKMPOYvxmcbfGL5Rh0gAB1pkBgm4NEGDSAAHWmQGCbg0QYNIAAdaZAYJuDRBg0gAB1pkBgm4N
EGDSAAHWmQGCbg0QYNKWDoLt7e23olGE9vb23u3u7kZHR0eoA124cCH6/vvvGYsC/fjjj4NZi6K/
SwPB4eHhlZ2dnZ82NzffIHTlypW3n3zyyeyLL754h5avOQhmt27d+o2xyEuMy8WLF/8xpPX4zTff
/PtSQHDeDaD10t27d//w6tUrzuWEhlbOxLhcvnz5l2U4xqGJQUCAABAAAkDAICBAAAgAASBACBAA
AkAACBACBIAAEAAChAABIAAEgAABggGCoFHx+qGAYBKF8Z+DBgSAAAGCck+a/3v8TsVdUlcT1q3k
JdvT22hcB7oRCCrqEdTo/zJAMAn9uBZArt+VTh4QAAIECGo7ReljgoJav3anXs+BJ+2JIiaB0mi3
IGja/+WAQBTuiat6RfrPGFcHiwABIGAQ0DmAQFYlSxyzWnVMLQZv7qTNCmUVheMnesU6EwRmpTET
GlkbgQYC/X1FpxWXmsWrVLzeVjkvKQuZOXx93JMKYCoIDCiIqmNi3NRKYeq4tVxBHhAAArR2ICja
odtLedodpv1z1efVGsdae23VLC4sZl8FgmYnlPPMEWgngNKwkKgdLPozcwfBonaw7Hz7ReUBASBA
aweCvINXd+FFxevLr7W1J3beyb81x5tz4Eo75mtqaCitfey5nkpO3fvfNQhU5y+gEFiOOiKXIHf1
4XENEIjQk58ftykgAARo6KGh9Ll4ly2doukgjcel19rbkzv6cSUI0vdUgcDJe7uEhuomwc/7riEZ
Dprmf94YEl4aKhInAhk2qgGCynwDIAAEaFAgiHf0qUNVwzdVICi/tqi9LNfQemioIQjU/q8OCNLw
kJETWTy/cORlIMhi/3FOQO76zdAQIAAEaIggMMICmhNUE8DJ3T72pK6ZLM5fW3gCSUM6ZcniojBV
MB5HYWGy2HPMEXgO7+keBHLnn7uVVEsWy3Gf5U4BakI4CMMEKNZksRiDY3IEgAANBwRYW8ZvFgMC
QIAAASAABIAAECBAAAgAASAABAgQAAIMEAACBAgAAQYIAAECBIAAAwSAAAECQIABAkCAlqxbt279
8ebNm9H9+/dRB3r//fej3d1dxsIiMS4ffvjhr3t7e79D7ejp06d3AAHKaWdn508PHz6MXr58iTrQ
xsZG9Pz5c8YCnbv29/ejzc3NN+KEhfNDhIYIDWEDtJOTk2hrawsQIEAACDBAAAgQIAAEGCDA+SFA
AAgwQIAQIAAEGCBACBAAAgwQIDRUEKgVygDBmtokOojrJswYCkCAugGBpTCLU5WvdAmHdUs6yvb0
NpoUi28OgorCNDX6DwiUOTzw46I5M2N+RpVOHhAAArQCINCduVb+0cGp13PgSXuiipZagL1bEDTt
PyAwSJCVv1yM5Sgpo1nq4wEBIEArBwJZnjJxzGr5SU9xkOZO2ixV6RU407S9iagvnLVrgsAsOWlC
I2tDr+Grv6/otOJSvL4+mAgNiXrJo0VdZLV+8mzh8H1l7o5SaKggMKAgThSjDC4xWJSynEfTYcID
EKAlgKBoh24vPG93mPbPVZ9Xi91r7bVVvF7UQnaqWezaf0BQ+W1STwClYSEVGo4gSD/vWL4mTiCV
pw1AgABBQxDkHby6C8+et4PAfq2tPbHzTv6tOd6cA1faMV9TQ0PiNc+I95edSk7d+w8InEmwcP4C
CiMzZxAluQRffj+OxWnBEQTC8fvm/B5FQzwUAAK0pNBQ+ly8y5ZO0XSQxuPSa+3tyR39uBIE6Xuq
QODkvV1CQ3WT4IBgMbZxOGg6H1c1TCQh4afOXw0b1QDBQE8AgAAtHQTxjj51qGr4pgoE5dcWtZfl
GloPDTUEgdp/QNAABSI8lOZuihPHZSDIAJJ8VkFoCBAAAnSOt49qTlBNACd3+9iTumayOH9tEXhk
SKcsWVwUpgrG4ygsTBZ7jjkCz+E9gKAGCeKdf3BkhoXUZLH8fpgg0BPCQRhqQNGTxWKujskR4PzQ
2UGAtWWAAAMECBAAAkCAAQIECAABIMAAAQIEgADDAAECBIAAwwABAgSAAMMAAQIEgADDAAFasm7e
vPmnuaL79++jDvTee+9Fu7u7jEVHevz4cfTy5ctBaH9/P9rc3AQEKK/PP//8jw8fPhzMYlg1bWxs
RM+fP2csOpAY90uXLv06B8IPe3t7vxuCnj59ekese5wfIjREaAibmxj3y5cv/yJ2yENb9zg/BAgA
AQYIcH4IEAACDBAgBAgAASAABAgBAkAACAABQoAAEAACQIAAwQBBoFYoAwRnNKM6GCAABGgoILAU
ZnGq8pW6jrBuSUfZnt5Gk2LxzUFQUZimRv9XEQST0I8Cs1bwopYwIAAECBCUOkXpM4KCou92p17P
gSftiepUgdJotyBo2v/VBIGo+OYXlYmMAAEgQIDAAQSyPGXimNXyk57iIM2dtFmq0itwpml7E1Ff
OGvXBIFZctKERtZGoIFAf1/RacWleH19MK1OaEjUAxZ9mimPk/rAi/4tSkYm85RAw7GIvASLOs7T
buEBCBBqHQRFO3R74Xm7w7R/rvq8Wuxea6+t4vWiFrJTzWLX/q8LCIwTQGlYSIWGIwgWn5e+NjlQ
itIDAkCAegKCvINXd+HZ83YQ2K+1tSd23sm/Ncebc+BKO+ZramhIvOYZ8f6yU8mpe//XDQSq8xdQ
ECcq00+LXILc1YfHNUAgHL+fH+cpIAAEqG+hofS5eJctnaLpII3Hpdfa25M7+nElCNL3VIHAyXu7
hIbqJsFX7a4hGQ6apv2bGZCQzl8NG9UAQccnAEAACNA5gyDe0acOVQ3fVIGg/Nqi9rJcQ+uhoYYg
UPu/viBIw0Myh1KYOC4DQRb7Tz6rIDQECAAB6gMIjGO+5gTVBHByt489qWsmi/PXFp5A0pBOWbK4
KEwVjMdRWJgs9hxzBJ7De9YPBHLnn7uVVEsWy3nKnwLUhHAQhjFQ7MliMWbH5AgAAVpfEGBtGb9Z
DAgAAQIEgAAQAAJAgAABIAAEgAAQIEAACDBAAAgQIAAEGCAABAgQAAIMEAACBAgAAQYIAAFasr78
8svf37hx49d79+79FS1fFy5cmN2+fftvjMXydefOnf+9evXqfwECNHgdHh5e2d/f30Pd6PHjxw8Z
h+703Xff/dMQ1z3ODyGEBi4GASGEAAGDgBBCgAAhhBAgQAghBAgQQggBAoQQQoAAIYQQIEAIIQQI
EEIIDQUE4k8K7Ozs/LS5ufkGoc8+++zn69ev/ydj0dn4//f8/39hLPqpBw8e/Nsq/i0jT/x9je3t
7bcnJycRQl9//fVv3377LWPRkTY2NmavX79mLHqoo6OjaGtr683KgkD85T3+CC0m7NGjR++ePXvG
QHRk/Bnq/pqAASDA1sIAQbcGCPprgABbGwME3Rog6K8BAmxtDBB0a4CgvwYIsLUxQNCtAYL+GiDA
1sYAQbcGCPprgGDV7HQcBcE4Oq28cBKFXjj/73BskCBw/j6cvw0PBJPowJ+vsdms9z0FBM1XaDQO
vMjzgmh8mv8ChZ54rYGjPlcQiJ9Z/XllH1StLlyageBsfZyEtvl1aU9vYxJ6UdhkYBuBQJ3n9uZ4
XUEwCf0oGE+jmTGuo0onDwgAgeNiC+eOIjA9xSSMvDBstmNfOgh0R3c6DiJvRXagpjUHQdM+Jk60
ngNP2gvm71O/F92CoJ05XtsTwXw9+vP+TmfqGIwifz4h5T4eEAAC18U2mS9UzSHLhac76njxKbsy
00ksXoudiFykhrPXnEIeBHobtp1sNQjkaSZcwWNBWyDQ+yhPb3L85fiaO2kx1kXXFn0vsnZNEDT7
PrjMcTUIms7x+oaG5mMwEmMwUx778/7P0lOCcPi+Nq8JNFQQGFAQJ4pRBpcYLH42L0fT9YIHIDgr
CE6NRb5w1oqjPjVgoT42XtN3azVAYLYRn0omDUBwht3r2oCgqI/20Jl9LOyfqz4fz2X65tx3pMn3
wWmOXUDQbI7XOUegnQBKw0ICEqNoPJ25g8D8vMmBw2kDEPQOBPGCTBdrtsAUR51bsIqDMV+rcvZF
r4nP8YxYcG7H6gKCJuGQdQNBvo/qLjx73j4W9mtt7Yk5smwWmn4fnObYBQTN5nitk8WKsxZQGJk5
g9h/+5Ev5/VYnBYcQSAcv2/Oy1G0TocCQNAGCBYLXnXOVSBQINIWCCpXtmtoqG6CdN1AoPQx3mVL
p2g6SONx6bX29uSOflwJAofvg9Mcu4Cg2Ryv911DMhw0nY+H3PGrkJDOXw0b1QDBmp0AAMG5gECJ
3WarvaXQUN6pOIWGGoIg3u2u4nGgRRCofVTDN1UgKL+2bIyN00NboaGGIGg6x+t++2gcHkpzLsWJ
4zIQBAuAJJ9VEBoCBMMFQbJI1QVXniwuCksE43EUFiQHgzCskSz2HHMEXsV7+gCCsj6qCeDkbh97
UtdMFuevLQKPDOmUJYubfB+K56vi9tGGc7z2v0eQ7vxzt5JqyWI5ryYI9ISwXIv2ZLEY42NyBPxC
GXYexm8Wd2v8ZnF/DRBga2OAoFsDBP01QICtjQGCbg0Q9NcAAbY2Bgi6NUDQXwME2NoYIOjWAEF/
DRBga2OAoFsDBP01QICtjQGCbg0Q9NdWGgRhGO5evHjx7wIGCF26dOm3jz/+eHbt2rV3aPmaj310
9erV34bS308//fQfQ1lb29vbb3d2dn5aSRCI/wgYiJMBQjdv3vyPFy9exLsXtHxtbGzMXr9+PZj+
+r4fPXny5OuhrK/Dw8MrqwaBBQgQkrp79+4fXr16xTme0NBSzE9+23jldshDE4OAAAEgAASAgEFA
gAAQAAJAgBAgAASAABAgBAgAASAABAgBAkAACAABAgQDBIFWlW6oIJhEYVwXABAAAgQIGoHAUpjF
qcpX6oLCuiUdZXt6G02KxTcHQUVhmhr9bxMEk9CPi8Lk+lfp5AEBIEDozCDQnble8rPaqddz4El7
ospVoDTaLQia9r/lE8EkTMo7RvrPEpeJ5ESAAAFaJghkecrEMavlJz3FQZo7abNUpVfgTNP2Jnrp
UhMEZslJExpZG4EGAv19RacVl+L19cF09tCQrVRqUh84c/j6+E5zIDCgIMpPivFRS0aq4zNtTg9A
AAhQr0FQtEO313S2O0z756rPq8XutfbaKl4vaiE71Sx27f95g8A4AZSGhdSf2xEEiyLyygmk8rQB
CAABGigI8g5e3YVnz9tBYL+2wIGlu3bN8eYcuNKO+ZoaGhKveUa8v+xUcure/2WBQHX+AgqB5Ugj
cgnZ+M7cQSAcv58fn6aHAkAACFDvQ0Ppc/EuWzpF00Eaj0uvtbcnd/TjShCk76kCgZP3dgkN1U2C
t3XXkAwHTfM/VwwJ6fzVsFENEJzhBAAIAAEaEAjiHX3qUNXwTRUIyq8tai/LNbQeGmoIArX/ywdB
Gh4ych+L5xeOvAwEWew/zgnIXb8ZGgIEgAABAtMRL6Q5QTUBnNztY0/qmsni/LWFJ5A0pFOWLC4K
UwXjcRQWJos9xxyB5/Ce5YFA7vxzt5JqyWI5vrPcKUBNCAdhmADFmiwWfT0mRwAIECDA2jJ+sxgB
AgQIAAEgQIAAAQJAAAgQIECAABAAAgQIECAABIAAAQIECAABIECAAAECQAAIECBAS9aNGzf+nPsT
C2hpmoOAcUALiY3ZMkCJ80OcCDgRYCtoJycn0dbW1htAgAABIMAAASBAgAAQYIAAECBAAAgwQAAI
ECAABBggAAQIEAACDBAAAgQIAAEGCAABAgTtm1qhDBCsiE2ig7g+wmywIwAI0JqBwFKYxanKV7rk
w7olHWV7ehtNisU3B0FFYZoa/e8zCCYHflwcZ2aM96jSyQMCQIDWEAS6M9fKPzo49XoOPGlPVNdS
C7N3C4Km/e83COYkyMpcLsZmlJTLLPXxgAAQoLUHgSxPmThmtfykpzhIcydtlqr0Cpxp2t5E1BfO
2jVBYJacNKGRtaHX9tXfV3RacSleXx9M/QsNzcdmNFrUP04eJ3WSZwuH72vzPZ2ZIDCgIE4Uowwu
MViU8ptH037AAxCgHoCgaIduLzxvd5j2z1WfV4vda+21Vbxe1EJ2qlns2v+hgcA4AZSGhVRoOILA
/DxxAqk8bQACQICWBIK8g1d34dnzdhDYr7W1J3beyb81x5tz4Eo75mtqaEi8Zv7xr7JTyal7/4cK
AtVZCyiMzJxBlOQSfDnfx+K04AgC4fh9c76Ooj4cCgAB6kloKH0u3mVLp2g6SONx6bX29uSOflwJ
gvQ9VSBw8t4uoaG6SfC+3jUkw0HT+TipYSIJCen81bBRDRD05AQACFDvQBDv6FOHqoZvqkBQfm1R
e1muofXQUEMQqP0HBGl4KM3FFCeOy0AQLACSfFZBaAgQAALUJQiM47nmBNUEcHK3jz2payaL89cW
gUeGdMqSxUVhqmA8jsLCZLHnmCPwHN4zXBDInX/uVlItWSzn2wSBnhAOwlADip4sFmN/TI4AEKDl
gwBry/iFMgwQIEAACAABBggQIAAEgAADBAgQAAIMEAACBAgAAQYIAAECBIAAAwSAAAECQIABAkCA
lqzr16//OfcnFtDS9MEHHzAOJbpw4cKg+is2ZoAAcSLgRIClJsbl8uXLvyzDMQ5NDAICBIAAEAAC
BgEBAkAACAABQoAAEAACQIAQIAAEgAAQIAQIAAEgAAQIEAACQAAIAAECBEMDgVqhDBAYNonCuC4A
IAAECBCUe9J8YRanKl+pqwnrlnSU7eltNCkW3xwEFYVpavR/GSCYhH5cFCbX70onDwgAAQIEtZ2i
9DFBQdF3u1Ov58CT9kQ1q0BptFsQNO3/ckAgKrjF5R0j/WeMy0RGgAAQMAjoHEAgy1MmjlktP+kp
DtLcSZulKr0CZ5q2NxH1hbN2TRCYJSdNaGRtBBoI9PcVnVZcitfXB9P5hYZsdZ6T+sCZw9fHPSkF
qYLAgIIoPynGTS0ZqY7btF16AAJAgNYOBEU7dHvhebvDtH+u+rxa7F5rr63i9aIWslPNYtf+dwUC
4wRQGhYSReRFf2buIFgUkZedP1CK0gMCQIAGCoK8g1d34dnzdhDYr7W1J3beyb81x5tz4Eo75mtq
aEi8Zv7xr7JTyal7/7sGger8BRQCy1FH5BLkrj48rgECEXry8+M2BQSAAA09NJQ+F++ypVM0HaTx
uPRae3tyRz+uBEH6nioQOHlvl9BQ3ST4ed81JMNB0/zPG0PCS0NF4kQgw0Y1QFCZbwAEgAANCgTx
jj51qGr4pgoE5dcWtZflGloPDTUEgdr/1QFBGh4yciKL5xeOvAwEWew/zgnIXb8ZGgIEgAANEQRG
WEBzgmoCOLnbx57UNZPF+WsLTyBpSKcsWVwUpgrG4ygsTBZ7jjkCz+E93YNA7vxzt5JqyWI57rPc
KUBNCAdhmADFmiwWY3BMjgAQoOGAAGvL+M1iQAAIECAABIAAEAACBAgAASAABIAAAQJAgAECQIAA
ASDAAAEgQIAAEGCAABCgbkDw4sWL6OTkBHWgjY2N2evXrxkLi8S4AAJAgJagBw8e/Ovm5uYb1I2u
Xbv2P/P//4WxsOurr776ERAAAoQQQi3r/wGZp3Ge/FxTpwAAAABJRU5ErkJggg==

--_008_CO2PR0601MB7923936551179F17B3C5875FEC10CO2PR0601MB792na_
Content-Type: application/octet-stream; name="oledata.mso"
Content-Description: oledata.mso
Content-Disposition: inline; filename="oledata.mso"; size=25679;
	creation-date="Thu, 21 May 2015 16:32:03 GMT";
	modification-date="Thu, 21 May 2015 16:32:03 GMT"
Content-ID: <oledata.mso>
Content-Transfer-Encoding: base64

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
zMz/ev/u/vu//GP9zv/1DJ2rjk4YyO0fAO+c0rk=

--_008_CO2PR0601MB7923936551179F17B3C5875FEC10CO2PR0601MB792na_--


From nobody Thu May 21 17:03:07 2015
Return-Path: <andy@yumaworks.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 24DFF1A9111 for <core@ietfa.amsl.com>; Thu, 21 May 2015 17:03:06 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.978
X-Spam-Level: 
X-Spam-Status: No, score=-1.978 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=unavailable
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 7VPb3iIJvZFr for <core@ietfa.amsl.com>; Thu, 21 May 2015 17:03:03 -0700 (PDT)
Received: from mail-lb0-f175.google.com (mail-lb0-f175.google.com [209.85.217.175]) (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 E7CFD1A90F3 for <core@ietf.org>; Thu, 21 May 2015 17:03:02 -0700 (PDT)
Received: by lbbqq2 with SMTP id qq2so1786696lbb.3 for <core@ietf.org>; Thu, 21 May 2015 17:03:01 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=70oQH1vCvYq3auWljnzBOjnQ2bSSxSiKf2ubXe+CLjQ=; b=MOfNGNZ1+LCRLXG1yWQJMzPiJ0s3/iRIfkenR7f+XDTxtsRHDfKFwtQHDzN8OZbHWz fmjgOtkN9VEZIAyJiSHmFO06JYhevYACshMTNuvfruhcDLHNHWL5npU2JgDwYigwS0VS ULAN0mHKxP4XogU9gEbno3n3u0JBPGV4JYD5ZpOKngkbSc+69bVGPooQvZUvk3tWYUOt zYrDb1I/O7fbcf1R96ftU2jk90ngmcC53p3GyU59BzwOjzQrANbJBAN20Lq7hZ2hxCSP eV7KMWGpXAaGB+ADqDHFI3kOH7vIxQ3PaduAE3d7liaRRkNan6uUYddOOMClMXXIUeuB nQ0w==
X-Gm-Message-State: ALoCoQkvN4hqdbMtgL7efUtEiBfAOOH1soZ0SnBQMS2GeQHSM6LEmMofW1vjbjHani/Es6z8aYRH
MIME-Version: 1.0
X-Received: by 10.152.115.173 with SMTP id jp13mr4106672lab.119.1432252981325;  Thu, 21 May 2015 17:03:01 -0700 (PDT)
Received: by 10.112.200.102 with HTTP; Thu, 21 May 2015 17:03:01 -0700 (PDT)
In-Reply-To: <CO2PR0601MB7923936551179F17B3C5875FEC10@CO2PR0601MB792.namprd06.prod.outlook.com>
References: <dabfda5a16901a917873bbc96d5561fe@xs4all.nl> <CO2PR0601MB7922F6E45BACC3350488B3CFEC30@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHQqdnXaZUaTKtUB3D2g0bWTK87v8-R9E72dYFXXJgoN_Q@mail.gmail.com> <CO2PR0601MB792DBA60BA66C32E8853841FEC30@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHSyPDyBDPVdtJ8Md9PLS_WOV29LCETEu2cxpeZ2qf0oag@mail.gmail.com> <CO2PR0601MB792CE9F7AA5CFE11F3556ACFEC30@CO2PR0601MB792.namprd06.prod.outlook.com> <318c674236a3cac594eb372e9c2466f0@xs4all.nl> <CO2PR0601MB7928EE0D09E272EC28D5DD6FEC20@CO2PR0601MB792.namprd06.prod.outlook.com> <6f60125e7074d01a9f6332bb62b09911@xs4all.nl> <CO2PR0601MB7923936551179F17B3C5875FEC10@CO2PR0601MB792.namprd06.prod.outlook.com>
Date: Thu, 21 May 2015 17:03:01 -0700
Message-ID: <CABCOCHSLL+GHKvMdy4MCU+tYqLZYv7Gce-PfbfzrbibLDoK6pA@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: Michel Veillette <Michel.Veillette@trilliantinc.com>
Content-Type: multipart/related; boundary=001a11c235dc2ec03e0516a062a6
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/fZEiTB3zHWVp8OOCznKThJgrg-k>
Cc: "6tisch@ietf.org" <6tisch@ietf.org>, Core <core@ietf.org>
Subject: Re: [core] CoMI rehashing
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 22 May 2015 00:03:06 -0000

--001a11c235dc2ec03e0516a062a6
Content-Type: multipart/alternative; boundary=001a11c235dc2ec0390516a062a5

--001a11c235dc2ec0390516a062a5
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

On Thu, May 21, 2015 at 9:32 AM, Michel Veillette <
Michel.Veillette@trilliantinc.com> wrote:

>  Hi Peter
>
>
>
> We seem effectively to be on the same intersection (YANG, CBOR, YANG hash=
)
>  but still on the opposite side of the street.
>
> The core difference seem to be the expected data struture implemented by
> the CoMI server.
>
> All your solutions all based on flat hash table represented below.
>
>
>
>
>
> All my solutions are all based on a hash table per module context represe=
nted
> below.
>
>
>
>

Both solutions rely equally on the YANG module writer to solve any hash
clashes
within 1 module.  The advantage of a module-id is that if this is done, no
re-hash
is needed at all. How is a Data Node ID encoded? Not sure how that works.

The cost of the module-id is really in the message encoding.

What if the protocol allowed the client to discover a set of module-name
to local-module-number mappings that can be used as the module-id
in messages?

The client has to store the module name anyway (that is 'Module ID'
since modules are not assigned numbers).  The extra storage
is 1 number (16 bits?) per module, per server. Maybe 32 bytes per server.
Would that be too much?

I would like the module-id approach if the encoding was a number instead
of a string.


Andy



>
> This alternate data structure enable a different set of solutions such as=
:
>
>
>
> =C2=B7         Access using either the =E2=80=9CData Node ID=E2=80=9D alo=
ne (if unique) or
> =E2=80=9CModule ID=E2=80=9D + =E2=80=9CData Node ID=E2=80=9D
> NOTE: When a clash exist, an alternate =E2=80=9CData Node ID=E2=80=9D can=
 be returned by
> the CoMI server for subsequent requests using the =E2=80=9CData Node ID=
=E2=80=9D alone.
>
>
>
> =C2=B7         Access to all data nodes of a module
> NOTE: The CoMI server know which data nodes are part of which module and
> can return those if a query parameter (select) ask to do so.
>
>
>
> =C2=B7         Ability to support a mix managed/unmanaged model where som=
e
> modules may use manage Data Node IDs and others may use YANG hashes
> NOTE: If we also want to support managed and unmanaged =E2=80=9CModule ID=
=E2=80=9D, we can
> use a special character like # to differentiate between them.
> Module ID prefixed by # can be unmanaged module name, Module ID not
> prefixed by # can be IANA registered module ID.
> The advantage will be to minimize the overhead associated to some popular
> modules.
> Within a module, all data nodes need to be either manage or unmanaged
>
>
>
> =C2=B7         Most importantly, this data structure enable different met=
hods
> which avoid the need to implement a rehash list, its retrieval and storag=
e
>
>
>
> I=E2=80=99m open to compromise on multiple aspects of the solutions (supp=
ort of
> not of managed Module ID, managed Data node ID, specific message format a=
nd
> query parameters).
>
> However, I will have hard time to compromise on this fundamental
> difference.
>
>
>
> About =E2=80=9COK, but the message overhead argument remains.=E2=80=9D
>
>
>
> =C2=B7         On the CoMI server side, I don=E2=80=99t consider that add=
ing a dozen
> of =E2=80=9CModule ID=E2=80=9D and splitting the hash table in pieces rep=
resent an
> unacceptable overhead, especially if we remove the rehash list.
>
> =C2=B7         On the protocol side, if we allow access using the =E2=80=
=9CData Node
> ID=E2=80=9D alone and if we return an alternate =E2=80=9CData Node ID=E2=
=80=9D in case of a clash
> for subsequent requests seem to me more efficient than retrieving a rehas=
h
> list.
>
>
>
> Michel Veillette
>
> System Architecture Director
>
> Trilliant Inc.
>
> Tel: 450-375-0556 ext. 237
>
> michel.veillette@trilliantinc.com
>
> www.trilliantinc.com
>
>
>
> -----Original Message-----
> From: peter van der Stok [mailto:stokcons@xs4all.nl]
> Sent: 21 mai 2015 05:27
> To: Michel Veillette
> Cc: consultancy@vanderstok.org; Andy Bierman; 6tisch@ietf.org; Core
> Subject: RE: [core] CoMI rehashing
>
>
>
> Hi Michel,
>
>
>
> We are not far apart, it seems to me.
>
> There is one thing left in my view:
>
> - Server returns new hash value to client, or
>
> - Client reads new hash value from a supporting file (called
>
> "clash-file")
>
>
>
> The supporting file is introduced to remove storage requirements from
> server, such as: data node name, name extension, module name, hashes.
>
> And it makes rehash handling for large clients (storing the data node
>
> names) and for small clients (storing module names only) similar.
>
> The "clash-file" is still needed when the server returns the new hash
> value to store data node name and name extension.
>
> By returning the new hash value the server is burdened with the module
> name storage.
>
>
>
> few comments below in
>
> <pvds2> comment </pvds2>
>
>
>
> Peter
>
>
>
>
>

--001a11c235dc2ec0390516a062a5
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te">On Thu, May 21, 2015 at 9:32 AM, Michel Veillette <span dir=3D"ltr">&lt=
;<a href=3D"mailto:Michel.Veillette@trilliantinc.com" target=3D"_blank">Mic=
hel.Veillette@trilliantinc.com</a>&gt;</span> wrote:<br><blockquote class=
=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padd=
ing-left:1ex">





<div lang=3D"EN-CA" link=3D"#0563C1" vlink=3D"#954F72">
<div>
<p>Hi Peter<u></u><u></u></p>
<p><u></u>=C2=A0<u></u></p>
<p>We seem effectively to be on the same intersection (YANG, CBOR, YANG has=
h) =C2=A0but still on the opposite side of the street.<u></u><u></u></p>
<p><span>The core difference seem to be the expected data struture implemen=
ted by the CoMI server.<u></u><u></u></span></p>
<p><span>All your solutions all based on flat hash table represented below.=
<u></u><u></u></span></p>
<p><span><u></u>=C2=A0<u></u></span></p>
<p style=3D"margin-left:.5in"><span><u></u><img width=3D"254" height=3D"194=
" src=3D"cid:image002.png@01D093BA.ECF2CE40"><u></u><u></u><u></u></span></=
p>
<p><span><u></u>=C2=A0<u></u></span></p>
<p>All my solutions are all based on a hash table per module context
<span>represented below.</span><u></u><u></u></p>
<p><u></u>=C2=A0<u></u></p>
<p style=3D"margin-left:.5in"><u></u><img width=3D"386" height=3D"206" src=
=3D"cid:image004.png@01D093BA.ECF2CE40"><u></u><u></u><u></u></p>
<p><u></u></p></div></div></blockquote><div><br></div><div><br></div><div>B=
oth solutions rely equally on the YANG module writer to solve any hash clas=
hes</div><div>within 1 module.=C2=A0 The advantage of a module-id is that i=
f this is done, no re-hash</div><div>is needed at all. How is a Data Node I=
D encoded? Not sure how that works.</div><div><br></div><div>The cost of th=
e module-id is really in the message encoding.<br></div><div><br></div><div=
>What if the protocol allowed the client to discover a set of module-name</=
div><div>to local-module-number mappings that can be used as the module-id<=
/div><div>in messages?</div><div><br></div><div>The client has to store the=
 module name anyway (that is &#39;Module ID&#39;</div><div>since modules ar=
e not assigned numbers).=C2=A0 The extra storage</div><div>is 1 number (16 =
bits?) per module, per server. Maybe 32 bytes per server.</div><div>Would t=
hat be too much?</div><div><br></div><div>I would like the module-id approa=
ch if the encoding was a number instead</div><div>of a string.</div><div><b=
r></div><div><br></div><div>Andy</div><div><br></div><div><br></div><blockq=
uote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc =
solid;padding-left:1ex"><div lang=3D"EN-CA" link=3D"#0563C1" vlink=3D"#954F=
72"><div><p>=C2=A0<u></u></p>
<p>This alternate data structure enable a different set of solutions such a=
s:<u></u><u></u></p>
<p><u></u>=C2=A0<u></u></p>
<p style=3D"margin-left:.5in">
<u></u><span style=3D"font-family:Symbol"><span>=C2=B7<span style=3D"font:7=
.0pt &quot;Times New Roman&quot;">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0
</span></span></span><u></u>Access using either the =E2=80=9CData Node ID=
=E2=80=9D alone (if unique) or =E2=80=9CModule ID=E2=80=9D + =E2=80=9CData =
Node ID=E2=80=9D<br>
NOTE: When a clash exist, an alternate =E2=80=9CData Node ID=E2=80=9D can b=
e returned by the CoMI server for subsequent requests using the =E2=80=9CDa=
ta Node ID=E2=80=9D alone.<u></u><u></u></p>
<p style=3D"margin-left:.5in"><u></u>=C2=A0<u></u></p>
<p style=3D"margin-left:.5in">
<u></u><span style=3D"font-family:Symbol"><span>=C2=B7<span style=3D"font:7=
.0pt &quot;Times New Roman&quot;">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0
</span></span></span><u></u>Access to all data nodes of a module<br>
NOTE: The CoMI server know which data nodes are part of which module and ca=
n return those if a query parameter (select) ask to do so.<u></u><u></u></p=
>
<p><u></u>=C2=A0<u></u></p>
<p style=3D"margin-left:.5in">
<u></u><span style=3D"font-family:Symbol"><span>=C2=B7<span style=3D"font:7=
.0pt &quot;Times New Roman&quot;">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0
</span></span></span><u></u>Ability to support a mix managed/unmanaged mode=
l where some modules may use manage Data Node IDs and others may use YANG h=
ashes<br>
NOTE: If we also want to support managed and unmanaged =E2=80=9CModule ID=
=E2=80=9D, we can use a special character like # to differentiate between t=
hem.<br>
Module ID prefixed by # can be unmanaged module name, Module ID not prefixe=
d by # can be IANA registered module ID.<br>
The advantage will be to minimize the overhead associated to some popular m=
odules.<br>
Within a module, all data nodes need to be either manage or unmanaged<u></u=
><u></u></p>
<p><u></u>=C2=A0<u></u></p>
<p style=3D"margin-left:.5in">
<u></u><span style=3D"font-family:Symbol"><span>=C2=B7<span style=3D"font:7=
.0pt &quot;Times New Roman&quot;">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0
</span></span></span><u></u>Most importantly, this data structure enable di=
fferent methods which avoid the need to implement a rehash list, its retrie=
val and storage<u></u><u></u></p>
<p><u></u>=C2=A0<u></u></p>
<p>I=E2=80=99m open to compromise on multiple aspects of the solutions (sup=
port of not of managed Module ID, managed Data node ID, specific message fo=
rmat and query parameters).<u></u><u></u></p>
<p>However, I will have hard time to compromise on this fundamental differe=
nce.<u></u><u></u></p>
<p><u></u>=C2=A0<u></u></p>
<p>About =E2=80=9COK, but the message overhead argument remains.=E2=80=9D<u=
></u><u></u></p>
<p><u></u>=C2=A0<u></u></p>
<p style=3D"margin-left:.5in">
<u></u><span style=3D"font-family:Symbol"><span>=C2=B7<span style=3D"font:7=
.0pt &quot;Times New Roman&quot;">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0
</span></span></span><u></u>On the CoMI server side, I don=E2=80=99t consid=
er that adding a dozen of =E2=80=9CModule ID=E2=80=9D and splitting the has=
h table in pieces represent an unacceptable overhead, especially if we remo=
ve the rehash list.<u></u><u></u></p>
<p style=3D"margin-left:.5in">
<u></u><span style=3D"font-family:Symbol"><span>=C2=B7<span style=3D"font:7=
.0pt &quot;Times New Roman&quot;">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0
</span></span></span><u></u>On the protocol side, if we allow access using =
the =E2=80=9CData Node ID=E2=80=9D alone and if we return an alternate =E2=
=80=9CData Node ID=E2=80=9D in case of a clash for subsequent requests seem=
 to me more efficient than retrieving a rehash list.<u></u><u></u></p>
<p><u></u>=C2=A0<u></u></p>
<p>Michel Veillette<u></u><u></u></p>
<p>System Architecture Director<u></u><u></u></p>
<p>Trilliant Inc.<u></u><u></u></p>
<p>Tel: 450-375-0556 ext. 237<u></u><u></u></p>
<p><a href=3D"mailto:michel.veillette@trilliantinc.com" target=3D"_blank">m=
ichel.veillette@trilliantinc.com</a><u></u><u></u></p>
<p><a href=3D"http://www.trilliantinc.com" target=3D"_blank">www.trillianti=
nc.com</a> =C2=A0 <u></u><u></u></p>
<p><u></u><u></u></p>
<p><u></u>=C2=A0<u></u></p>
<p><span lang=3D"EN-US">-----Original Message-----<br>
From: peter van der Stok [mailto:<a href=3D"mailto:stokcons@xs4all.nl" targ=
et=3D"_blank">stokcons@xs4all.nl</a>] <br>
Sent: 21 mai 2015 05:27<br>
To: Michel Veillette<br>
Cc: <a href=3D"mailto:consultancy@vanderstok.org" target=3D"_blank">consult=
ancy@vanderstok.org</a>; Andy Bierman; <a href=3D"mailto:6tisch@ietf.org" t=
arget=3D"_blank">6tisch@ietf.org</a>; Core<br>
Subject: RE: [core] CoMI rehashing</span></p>
<p><u></u>=C2=A0<u></u></p>
<p>Hi Michel,<u></u><u></u></p>
<p><u></u>=C2=A0<u></u></p>
<p>We are not far apart, it seems to me.<u></u><u></u></p>
<p>There is one thing left in my view:<u></u><u></u></p>
<p>- Server returns new hash value to client, or<u></u><u></u></p>
<p>- Client reads new hash value from a supporting file (called<u></u><u></=
u></p>
<p>&quot;clash-file&quot;)<u></u><u></u></p>
<p><u></u>=C2=A0<u></u></p>
<p>The supporting file is introduced to remove storage requirements from se=
rver, such as: data node name, name extension, module name, hashes.<u></u><=
u></u></p>
<p>And it makes rehash handling for large clients (storing the data node<u>=
</u><u></u></p>
<p>names) and for small clients (storing module names only) similar.<u></u>=
<u></u></p>
<p>The &quot;clash-file&quot; is still needed when the server returns the n=
ew hash value to store data node name and name extension.<u></u><u></u></p>
<p>By returning the new hash value the server is burdened with the module n=
ame storage.<u></u><u></u></p>
<p><u></u>=C2=A0<u></u></p>
<p>few comments below in<u></u><u></u></p>
<p>&lt;pvds2&gt; comment &lt;/pvds2&gt;<u></u><u></u></p>
<p><u></u>=C2=A0<u></u></p>
<p>Peter<u></u><u></u></p>
<p><u></u>=C2=A0<u></u></p>
<p><u></u>=C2=A0<u></u></p>
</div>
</div>

</blockquote></div><br></div></div>

--001a11c235dc2ec0390516a062a5--
--001a11c235dc2ec03e0516a062a6
Content-Type: image/png; name="image004.png"
Content-Disposition: inline; filename="image004.png"
Content-Transfer-Encoding: base64
Content-ID: <image004.png@01D093BA.ECF2CE40>
X-Attachment-Id: e51fb5cd2642d600_0.4

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
--001a11c235dc2ec03e0516a062a6
Content-Type: image/png; name="image002.png"
Content-Disposition: inline; filename="image002.png"
Content-Transfer-Encoding: base64
Content-ID: <image002.png@01D093BA.ECF2CE40>
X-Attachment-Id: e51fb5cd2642d600_0.2

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
--001a11c235dc2ec03e0516a062a6--


From nobody Fri May 22 06:40:20 2015
Return-Path: <Michel.Veillette@trilliantinc.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id CCF2B1A002A; Fri, 22 May 2015 06:40:16 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.301
X-Spam-Level: 
X-Spam-Status: No, score=-1.301 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, J_CHICKENPOX_65=0.6, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=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 d9clxh9m6fjY; Fri, 22 May 2015 06:40:14 -0700 (PDT)
Received: from na01-bl2-obe.outbound.protection.outlook.com (mail-bl2on0101.outbound.protection.outlook.com [65.55.169.101]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 58D361A004B; Fri, 22 May 2015 06:40:13 -0700 (PDT)
Received: from CO2PR0601MB792.namprd06.prod.outlook.com (10.141.247.144) by CO2PR0601MB790.namprd06.prod.outlook.com (10.141.247.142) with Microsoft SMTP Server (TLS) id 15.1.166.22; Fri, 22 May 2015 13:40:08 +0000
Received: from CO2PR0601MB792.namprd06.prod.outlook.com ([10.141.247.144]) by CO2PR0601MB792.namprd06.prod.outlook.com ([10.141.247.144]) with mapi id 15.01.0172.012; Fri, 22 May 2015 13:40:08 +0000
From: Michel Veillette <Michel.Veillette@trilliantinc.com>
To: Andy Bierman <andy@yumaworks.com>
Thread-Topic: [core] CoMI rehashing
Thread-Index: AQHQkgSuXE++bCKK7kqMBAf0Z8FiQJ2DWAiggAAWvQCAAAGJwIAAMHKAgAAAVRCAAQaQgIAAWMnwgAEsLQCAAGOykIAAkP+AgADcFRA=
Date: Fri, 22 May 2015 13:40:07 +0000
Message-ID: <CO2PR0601MB792A74AADE572DA5E24F9ACFEC00@CO2PR0601MB792.namprd06.prod.outlook.com>
References: <dabfda5a16901a917873bbc96d5561fe@xs4all.nl> <CO2PR0601MB7922F6E45BACC3350488B3CFEC30@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHQqdnXaZUaTKtUB3D2g0bWTK87v8-R9E72dYFXXJgoN_Q@mail.gmail.com> <CO2PR0601MB792DBA60BA66C32E8853841FEC30@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHSyPDyBDPVdtJ8Md9PLS_WOV29LCETEu2cxpeZ2qf0oag@mail.gmail.com> <CO2PR0601MB792CE9F7AA5CFE11F3556ACFEC30@CO2PR0601MB792.namprd06.prod.outlook.com> <318c674236a3cac594eb372e9c2466f0@xs4all.nl> <CO2PR0601MB7928EE0D09E272EC28D5DD6FEC20@CO2PR0601MB792.namprd06.prod.outlook.com> <6f60125e7074d01a9f6332bb62b09911@xs4all.nl> <CO2PR0601MB7923936551179F17B3C5875FEC10@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHSLL+GHKvMdy4MCU+tYqLZYv7Gce-PfbfzrbibLDoK6pA@mail.gmail.com>
In-Reply-To: <CABCOCHSLL+GHKvMdy4MCU+tYqLZYv7Gce-PfbfzrbibLDoK6pA@mail.gmail.com>
Accept-Language: fr-CA, en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
authentication-results: spf=none (sender IP is ) smtp.mailfrom=Michel.Veillette@trilliantinc.com; 
x-originating-ip: [24.225.215.88]
x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CO2PR0601MB790;
x-microsoft-antispam-prvs: <CO2PR0601MB790E858D67BA62220421F61FEC00@CO2PR0601MB790.namprd06.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:;
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(601004)(520002)(5005006)(3002001); SRVR:CO2PR0601MB790; BCL:0; PCL:0;  RULEID:; SRVR:CO2PR0601MB790; 
x-forefront-prvs: 058441C12A
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(38414003)(377454003)(13464003)(24454002)(189002)(51444003)(199003)(2900100001)(16236675004)(17760045003)(19625215002)(19300405004)(122556002)(46102003)(76576001)(2656002)(77156002)(92566002)(101416001)(15975445007)(2950100001)(33656002)(86362001)(102836002)(68736005)(110136002)(62966003)(40100003)(77096005)(97736004)(18206015028)(50986999)(64706001)(81156007)(4001540100001)(66066001)(76176999)(5001920100001)(99286002)(19580395003)(5001860100001)(54356999)(19580405001)(5001960100002)(106116001)(87936001)(189998001)(99936001)(19617315012)(16601075003)(105586002)(93886004)(19627595001)(74316001)(5001830100001)(106356001)(7099028); DIR:OUT; SFP:1102; SCL:1; SRVR:CO2PR0601MB790; H:CO2PR0601MB792.namprd06.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords;  MX:1; A:1; LANG:en; 
received-spf: None (protection.outlook.com: trilliantinc.com does not designate permitted sender hosts)
Content-Type: multipart/related; boundary="_006_CO2PR0601MB792A74AADE572DA5E24F9ACFEC00CO2PR0601MB792na_"; type="multipart/alternative"
MIME-Version: 1.0
X-OriginatorOrg: trilliantinc.com
X-MS-Exchange-CrossTenant-originalarrivaltime: 22 May 2015 13:40:07.9609 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 4f6fbd13-0dfb-4150-85c3-d43260c04309
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO2PR0601MB790
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/IqjvZi5FuXPRt8A9Yqb11-SQMk4>
Cc: "6tisch@ietf.org" <6tisch@ietf.org>, Core <core@ietf.org>
Subject: Re: [core] CoMI rehashing
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 22 May 2015 13:40:17 -0000

--_006_CO2PR0601MB792A74AADE572DA5E24F9ACFEC00CO2PR0601MB792na_
Content-Type: multipart/alternative;
	boundary="_000_CO2PR0601MB792A74AADE572DA5E24F9ACFEC00CO2PR0601MB792na_"

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

SGkgQW5keQ0KDQpTZWUgW01WXSBJbmxpbmUNCg0KQm90aCBzb2x1dGlvbnMgcmVseSBlcXVhbGx5
IG9uIHRoZSBZQU5HIG1vZHVsZSB3cml0ZXIgdG8gc29sdmUgYW55IGhhc2ggY2xhc2hlcw0Kd2l0
aGluIDEgbW9kdWxlLiAgVGhlIGFkdmFudGFnZSBvZiBhIG1vZHVsZS1pZCBpcyB0aGF0IGlmIHRo
aXMgaXMgZG9uZSwgbm8gcmUtaGFzaA0KaXMgbmVlZGVkIGF0IGFsbC4gSG93IGlzIGEgRGF0YSBO
b2RlIElEIGVuY29kZWQ/IE5vdCBzdXJlIGhvdyB0aGF0IHdvcmtzLg0KDQpbTVZdDQpUaGUgRGF0
YSBOb2RlIElEIGlzIGEgaW50ZWdlciwgSSBjaGFuZ2VkIHRoZSBuYW1lIHRvIG9wZW4gdGhlIGRv
b3IgdG8gdGhlIHN1cHBvcnQgb2YgYm90aCBtYW5hZ2VkIGFuZCB1bm1hbmFnZWQgSUQuDQpGb3Ig
bW9kdWxlIGltcGxlbWVudGluZyB1bm1hbmFnZWQgSURzLCB0aGlzIGludGVnZXIgY29udGFpbnMg
dGhlIGN1cnJlbnQgMzAgYml0cyBtbTMgaGFzaC4NCkZvciBtb2R1bGUgaW1wbGVtZW50aW5nIG1h
bmFnZWQgSURzLCB0aGlzIGludGVnZXIgY29udGFpbnMgYW4gYXNzaWduZWQgSUQuDQpUaGlzIGZl
YXR1cmUgY2FuIGJlIHVzZWQgdG8gcmVkdWNlIHNpZ25pZmljYW50bHkgdGhlIHBheWxvYWQgc2l6
ZSAofjUwJSkNCkFub3RoZXIgcG9zc2libGUgYXBwbGljYXRpb24gaXMgdGhlIG1hcHBpbmcgb2Yg
WmlnYmVlIFpDTCBjbHVzdGVycyB0byBDb01JIG1vZHVsZXMgd2hpbGUga2VlcGluZyB0aGUgc2Ft
ZSBhdHRyaWJ1dGUgKERhdGEgTm9kZSkgSUQuDQpUaGlzIGlzIG5vdCBhIG1hbmRhdG9yeSBmZWF0
dXJlIGJ1dCB0aGVyZSBpcyBub3QgbXVjaCBlZmZvcnRzIHJlcXVpcmVkIHRvIHN1cHBvcnQgdGhp
cyBzaW5jZSBib3RoIGFwcHJvYWNoZXMgdXNlIGludGVnZXJzLCB3ZSBqdXN0IG5lZWQgdG8gYWRk
IHNvbWUgZGVzY3JpcHRpb24gdGV4dHMuDQoNClRoZSBjb3N0IG9mIHRoZSBtb2R1bGUtaWQgaXMg
cmVhbGx5IGluIHRoZSBtZXNzYWdlIGVuY29kaW5nLg0KDQpbTVZdIElmIHdlIHN0aWxsIHN1cHBv
cnQgYWNjZXNzIHdpdGggdGhlIERhdGEgTm9kZSBJRCBvbmx5IHdpdGggdGhlIHBvc3NpYmlsaXR5
IHRvIHJlY2VpdmUgYSBjbGFzaCBlcnJvciwgdGhpcyBvdmVyaGVhZCBpcyBvcHRpb25hbC4NCg0K
Rm9yIGV4YW1wbGU6DQpSRVE6IEdFVCBleGFtcGxlLmNvbS9tZy9WTndRSSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIC8vIE1heSByZXR1cm4gYSBjbGFzaCBlcnJvcg0KUkVROiBHRVQgZXhh
bXBsZS5jb20vbWcvP3NlbGVjdD1pZXRmLXN5c3RlbSAgICAvLyBOZXZlciByZXR1cm4gYSBjbGFz
aCBlcnJvcg0KDQpPciB0aGlzIGFsdGVybmF0ZSBhcHByb2FjaCBpZiB3ZSB3YW50IHRvIHN1cHBv
cnQgdGhlIHJldHJpZXZhbCBvZiBtdWx0aXBsZSBkYXRhIG5vZGVzOg0KUkVROiBHRVQgZXhhbXBs
ZS5jb20vbWc/IHNlbGVjdD1WTndRSSxmb2xOaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ly8gTWF5IHJldHVybiBhIGNsYXNoIGVycm9yDQpSRVE6IEdFVCBleGFtcGxlLmNvbS9tZy8/c2Vs
ZWN0PWlldGYtc3lzdGVtKFZOd1FJLGZvbE5oKSAgLy8gTmV2ZXIgcmV0dXJuIGEgY2xhc2ggZXJy
b3INCg0KV2hhdCBpZiB0aGUgcHJvdG9jb2wgYWxsb3dlZCB0aGUgY2xpZW50IHRvIGRpc2NvdmVy
IGEgc2V0IG9mIG1vZHVsZS1uYW1lDQp0byBsb2NhbC1tb2R1bGUtbnVtYmVyIG1hcHBpbmdzIHRo
YXQgY2FuIGJlIHVzZWQgYXMgdGhlIG1vZHVsZS1pZA0KaW4gbWVzc2FnZXM/DQoNCltNVl0gQ29v
bCBpZGVhLCB0aGlzIGlzIGEgbmljZSBhbHRlcm5hdGl2ZSB0byBhIHJlZ2lzdHJ5Lg0KQ2FuIHdl
IHVzZSAvLndlbGwta25vd24vY29yZSB0byBpbXBsZW1lbnQgdGhpcyBmZWF0dXJlPw0KDQpJZiB3
ZSBkbyBzbywgSSB0aGluayB0aGF0IGJvdGggdGhlIG1vZHVsZSBuYW1lIGFuZCBhIG1vZHVsZSBJ
RCBzaG91bGQgYmUgc3VwcG9ydGVkLg0KVGhpcyB3YXksIHRoaXMgZXh0cmEgaGFuZHNoYWtlIHVz
ZSB0byByZXRyaWV2ZSB0aGVzZSBtb2R1bGUgSURzIGNhbiBiZSBza2lwcGVkIHdoZW4gdGhpcyBv
cHRpbWl6YXRpb24gaXMgbm90IHJlcXVpcmVkIGJ5IHRoZSBjbGllbnQgKFNob3J0IGludGVyYWN0
aW9ucyBvciBsYXJnZXIgZnJhbWUgc3VwcG9ydGVkKQ0KDQpUaGUgY2xpZW50IGhhcyB0byBzdG9y
ZSB0aGUgbW9kdWxlIG5hbWUgYW55d2F5ICh0aGF0IGlzICdNb2R1bGUgSUQnDQpzaW5jZSBtb2R1
bGVzIGFyZSBub3QgYXNzaWduZWQgbnVtYmVycykuICBUaGUgZXh0cmEgc3RvcmFnZQ0KaXMgMSBu
dW1iZXIgKDE2IGJpdHM/KSBwZXIgbW9kdWxlLCBwZXIgc2VydmVyLiBNYXliZSAzMiBieXRlcyBw
ZXIgc2VydmVyLg0KV291bGQgdGhhdCBiZSB0b28gbXVjaD8NCg0KW01WXSBTZWVtIHJlYXNvbmFi
bGUNCg0KSSB3b3VsZCBsaWtlIHRoZSBtb2R1bGUtaWQgYXBwcm9hY2ggaWYgdGhlIGVuY29kaW5n
IHdhcyBhIG51bWJlciBpbnN0ZWFkDQpvZiBhIHN0cmluZy4NCg0KW01WXSBBcyBtZW50aW9uZWQg
YWJvdmUsIEkgdGhpbmcgd2Ugc2hvdWxkIHN1cHBvcnQgYm90aC4NCg0KQW5keQ0KDQoNCltjaWQ6
aW1hZ2UwMDEuanBnQDAxQzg2OEQ4LkJGMEJCN0UwXQ0KDQpNaWNoZWwgVmVpbGxldHRlDQpTeXN0
ZW0gQXJjaGl0ZWN0dXJlIERpcmVjdG9yDQpUcmlsbGlhbnQgSW5jLg0KVGVsOiA0NTAtMzc1LTA1
NTYgZXh0LiAyMzcNCm1pY2hlbC52ZWlsbGV0dGVAdHJpbGxpYW50aW5jLmNvbTxtYWlsdG86bWlj
aGVsLnZlaWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tPg0Kd3d3LnRyaWxsaWFudGluYy5jb208aHR0
cDovL3d3dy50cmlsbGlhbnRpbmMuY29tLz4NCg0KDQoNCkZyb206IEFuZHkgQmllcm1hbiBbbWFp
bHRvOmFuZHlAeXVtYXdvcmtzLmNvbV0NClNlbnQ6IDIxIG1haSAyMDE1IDIwOjAzDQpUbzogTWlj
aGVsIFZlaWxsZXR0ZQ0KQ2M6IGNvbnN1bHRhbmN5QHZhbmRlcnN0b2sub3JnOyA2dGlzY2hAaWV0
Zi5vcmc7IENvcmUNClN1YmplY3Q6IFJlOiBbY29yZV0gQ29NSSByZWhhc2hpbmcNCg0KDQoNCk9u
IFRodSwgTWF5IDIxLCAyMDE1IGF0IDk6MzIgQU0sIE1pY2hlbCBWZWlsbGV0dGUgPE1pY2hlbC5W
ZWlsbGV0dGVAdHJpbGxpYW50aW5jLmNvbTxtYWlsdG86TWljaGVsLlZlaWxsZXR0ZUB0cmlsbGlh
bnRpbmMuY29tPj4gd3JvdGU6DQoNCkhpIFBldGVyDQoNCg0KDQpXZSBzZWVtIGVmZmVjdGl2ZWx5
IHRvIGJlIG9uIHRoZSBzYW1lIGludGVyc2VjdGlvbiAoWUFORywgQ0JPUiwgWUFORyBoYXNoKSAg
YnV0IHN0aWxsIG9uIHRoZSBvcHBvc2l0ZSBzaWRlIG9mIHRoZSBzdHJlZXQuDQoNClRoZSBjb3Jl
IGRpZmZlcmVuY2Ugc2VlbSB0byBiZSB0aGUgZXhwZWN0ZWQgZGF0YSBzdHJ1dHVyZSBpbXBsZW1l
bnRlZCBieSB0aGUgQ29NSSBzZXJ2ZXIuDQoNCkFsbCB5b3VyIHNvbHV0aW9ucyBhbGwgYmFzZWQg
b24gZmxhdCBoYXNoIHRhYmxlIHJlcHJlc2VudGVkIGJlbG93Lg0KDQoNCg0KW2NpZDppbWFnZTAw
Mi5wbmdAMDFEMDk0NzAuQ0VDNkFGQzBdDQoNCg0KDQpBbGwgbXkgc29sdXRpb25zIGFyZSBhbGwg
YmFzZWQgb24gYSBoYXNoIHRhYmxlIHBlciBtb2R1bGUgY29udGV4dCByZXByZXNlbnRlZCBiZWxv
dy4NCg0KDQoNCltjaWQ6aW1hZ2UwMDMucG5nQDAxRDA5NDcwLkNFQzZBRkMwXQ0KDQoNCg0KVGhp
cyBhbHRlcm5hdGUgZGF0YSBzdHJ1Y3R1cmUgZW5hYmxlIGEgZGlmZmVyZW50IHNldCBvZiBzb2x1
dGlvbnMgc3VjaCBhczoNCg0KDQoNCuKAoiAgICAgICAgIEFjY2VzcyB1c2luZyBlaXRoZXIgdGhl
IOKAnERhdGEgTm9kZSBJROKAnSBhbG9uZSAoaWYgdW5pcXVlKSBvciDigJxNb2R1bGUgSUTigJ0g
KyDigJxEYXRhIE5vZGUgSUTigJ0NCk5PVEU6IFdoZW4gYSBjbGFzaCBleGlzdCwgYW4gYWx0ZXJu
YXRlIOKAnERhdGEgTm9kZSBJROKAnSBjYW4gYmUgcmV0dXJuZWQgYnkgdGhlIENvTUkgc2VydmVy
IGZvciBzdWJzZXF1ZW50IHJlcXVlc3RzIHVzaW5nIHRoZSDigJxEYXRhIE5vZGUgSUTigJ0gYWxv
bmUuDQoNCg0KDQrigKIgICAgICAgICBBY2Nlc3MgdG8gYWxsIGRhdGEgbm9kZXMgb2YgYSBtb2R1
bGUNCk5PVEU6IFRoZSBDb01JIHNlcnZlciBrbm93IHdoaWNoIGRhdGEgbm9kZXMgYXJlIHBhcnQg
b2Ygd2hpY2ggbW9kdWxlIGFuZCBjYW4gcmV0dXJuIHRob3NlIGlmIGEgcXVlcnkgcGFyYW1ldGVy
IChzZWxlY3QpIGFzayB0byBkbyBzby4NCg0KDQoNCuKAoiAgICAgICAgIEFiaWxpdHkgdG8gc3Vw
cG9ydCBhIG1peCBtYW5hZ2VkL3VubWFuYWdlZCBtb2RlbCB3aGVyZSBzb21lIG1vZHVsZXMgbWF5
IHVzZSBtYW5hZ2UgRGF0YSBOb2RlIElEcyBhbmQgb3RoZXJzIG1heSB1c2UgWUFORyBoYXNoZXMN
Ck5PVEU6IElmIHdlIGFsc28gd2FudCB0byBzdXBwb3J0IG1hbmFnZWQgYW5kIHVubWFuYWdlZCDi
gJxNb2R1bGUgSUTigJ0sIHdlIGNhbiB1c2UgYSBzcGVjaWFsIGNoYXJhY3RlciBsaWtlICMgdG8g
ZGlmZmVyZW50aWF0ZSBiZXR3ZWVuIHRoZW0uDQpNb2R1bGUgSUQgcHJlZml4ZWQgYnkgIyBjYW4g
YmUgdW5tYW5hZ2VkIG1vZHVsZSBuYW1lLCBNb2R1bGUgSUQgbm90IHByZWZpeGVkIGJ5ICMgY2Fu
IGJlIElBTkEgcmVnaXN0ZXJlZCBtb2R1bGUgSUQuDQpUaGUgYWR2YW50YWdlIHdpbGwgYmUgdG8g
bWluaW1pemUgdGhlIG92ZXJoZWFkIGFzc29jaWF0ZWQgdG8gc29tZSBwb3B1bGFyIG1vZHVsZXMu
DQpXaXRoaW4gYSBtb2R1bGUsIGFsbCBkYXRhIG5vZGVzIG5lZWQgdG8gYmUgZWl0aGVyIG1hbmFn
ZSBvciB1bm1hbmFnZWQNCg0KDQoNCuKAoiAgICAgICAgIE1vc3QgaW1wb3J0YW50bHksIHRoaXMg
ZGF0YSBzdHJ1Y3R1cmUgZW5hYmxlIGRpZmZlcmVudCBtZXRob2RzIHdoaWNoIGF2b2lkIHRoZSBu
ZWVkIHRvIGltcGxlbWVudCBhIHJlaGFzaCBsaXN0LCBpdHMgcmV0cmlldmFsIGFuZCBzdG9yYWdl
DQoNCg0KDQpJ4oCZbSBvcGVuIHRvIGNvbXByb21pc2Ugb24gbXVsdGlwbGUgYXNwZWN0cyBvZiB0
aGUgc29sdXRpb25zIChzdXBwb3J0IG9mIG5vdCBvZiBtYW5hZ2VkIE1vZHVsZSBJRCwgbWFuYWdl
ZCBEYXRhIG5vZGUgSUQsIHNwZWNpZmljIG1lc3NhZ2UgZm9ybWF0IGFuZCBxdWVyeSBwYXJhbWV0
ZXJzKS4NCg0KSG93ZXZlciwgSSB3aWxsIGhhdmUgaGFyZCB0aW1lIHRvIGNvbXByb21pc2Ugb24g
dGhpcyBmdW5kYW1lbnRhbCBkaWZmZXJlbmNlLg0KDQoNCg0KQWJvdXQg4oCcT0ssIGJ1dCB0aGUg
bWVzc2FnZSBvdmVyaGVhZCBhcmd1bWVudCByZW1haW5zLuKAnQ0KDQoNCg0K4oCiICAgICAgICAg
T24gdGhlIENvTUkgc2VydmVyIHNpZGUsIEkgZG9u4oCZdCBjb25zaWRlciB0aGF0IGFkZGluZyBh
IGRvemVuIG9mIOKAnE1vZHVsZSBJROKAnSBhbmQgc3BsaXR0aW5nIHRoZSBoYXNoIHRhYmxlIGlu
IHBpZWNlcyByZXByZXNlbnQgYW4gdW5hY2NlcHRhYmxlIG92ZXJoZWFkLCBlc3BlY2lhbGx5IGlm
IHdlIHJlbW92ZSB0aGUgcmVoYXNoIGxpc3QuDQoNCuKAoiAgICAgICAgIE9uIHRoZSBwcm90b2Nv
bCBzaWRlLCBpZiB3ZSBhbGxvdyBhY2Nlc3MgdXNpbmcgdGhlIOKAnERhdGEgTm9kZSBJROKAnSBh
bG9uZSBhbmQgaWYgd2UgcmV0dXJuIGFuIGFsdGVybmF0ZSDigJxEYXRhIE5vZGUgSUTigJ0gaW4g
Y2FzZSBvZiBhIGNsYXNoIGZvciBzdWJzZXF1ZW50IHJlcXVlc3RzIHNlZW0gdG8gbWUgbW9yZSBl
ZmZpY2llbnQgdGhhbiByZXRyaWV2aW5nIGEgcmVoYXNoIGxpc3QuDQoNCg0KDQpNaWNoZWwgVmVp
bGxldHRlDQoNClN5c3RlbSBBcmNoaXRlY3R1cmUgRGlyZWN0b3INCg0KVHJpbGxpYW50IEluYy4N
Cg0KVGVsOiA0NTAtMzc1LTA1NTYgZXh0LiAyMzcNCg0KbWljaGVsLnZlaWxsZXR0ZUB0cmlsbGlh
bnRpbmMuY29tPG1haWx0bzptaWNoZWwudmVpbGxldHRlQHRyaWxsaWFudGluYy5jb20+DQoNCnd3
dy50cmlsbGlhbnRpbmMuY29tPGh0dHA6Ly93d3cudHJpbGxpYW50aW5jLmNvbT4NCg0KDQoNCi0t
LS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpGcm9tOiBwZXRlciB2YW4gZGVyIFN0b2sgW21haWx0
bzpzdG9rY29uc0B4czRhbGwubmw8bWFpbHRvOnN0b2tjb25zQHhzNGFsbC5ubD5dDQpTZW50OiAy
MSBtYWkgMjAxNSAwNToyNw0KVG86IE1pY2hlbCBWZWlsbGV0dGUNCkNjOiBjb25zdWx0YW5jeUB2
YW5kZXJzdG9rLm9yZzxtYWlsdG86Y29uc3VsdGFuY3lAdmFuZGVyc3Rvay5vcmc+OyBBbmR5IEJp
ZXJtYW47IDZ0aXNjaEBpZXRmLm9yZzxtYWlsdG86NnRpc2NoQGlldGYub3JnPjsgQ29yZQ0KU3Vi
amVjdDogUkU6IFtjb3JlXSBDb01JIHJlaGFzaGluZw0KDQoNCg0KSGkgTWljaGVsLA0KDQoNCg0K
V2UgYXJlIG5vdCBmYXIgYXBhcnQsIGl0IHNlZW1zIHRvIG1lLg0KDQpUaGVyZSBpcyBvbmUgdGhp
bmcgbGVmdCBpbiBteSB2aWV3Og0KDQotIFNlcnZlciByZXR1cm5zIG5ldyBoYXNoIHZhbHVlIHRv
IGNsaWVudCwgb3INCg0KLSBDbGllbnQgcmVhZHMgbmV3IGhhc2ggdmFsdWUgZnJvbSBhIHN1cHBv
cnRpbmcgZmlsZSAoY2FsbGVkDQoNCiJjbGFzaC1maWxlIikNCg0KDQoNClRoZSBzdXBwb3J0aW5n
IGZpbGUgaXMgaW50cm9kdWNlZCB0byByZW1vdmUgc3RvcmFnZSByZXF1aXJlbWVudHMgZnJvbSBz
ZXJ2ZXIsIHN1Y2ggYXM6IGRhdGEgbm9kZSBuYW1lLCBuYW1lIGV4dGVuc2lvbiwgbW9kdWxlIG5h
bWUsIGhhc2hlcy4NCg0KQW5kIGl0IG1ha2VzIHJlaGFzaCBoYW5kbGluZyBmb3IgbGFyZ2UgY2xp
ZW50cyAoc3RvcmluZyB0aGUgZGF0YSBub2RlDQoNCm5hbWVzKSBhbmQgZm9yIHNtYWxsIGNsaWVu
dHMgKHN0b3JpbmcgbW9kdWxlIG5hbWVzIG9ubHkpIHNpbWlsYXIuDQoNClRoZSAiY2xhc2gtZmls
ZSIgaXMgc3RpbGwgbmVlZGVkIHdoZW4gdGhlIHNlcnZlciByZXR1cm5zIHRoZSBuZXcgaGFzaCB2
YWx1ZSB0byBzdG9yZSBkYXRhIG5vZGUgbmFtZSBhbmQgbmFtZSBleHRlbnNpb24uDQoNCkJ5IHJl
dHVybmluZyB0aGUgbmV3IGhhc2ggdmFsdWUgdGhlIHNlcnZlciBpcyBidXJkZW5lZCB3aXRoIHRo
ZSBtb2R1bGUgbmFtZSBzdG9yYWdlLg0KDQoNCg0KZmV3IGNvbW1lbnRzIGJlbG93IGluDQoNCjxw
dmRzMj4gY29tbWVudCA8L3B2ZHMyPg0KDQoNCg0KUGV0ZXINCg0KDQoNCg0KDQo=

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

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRv
ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTUgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPCEtLVtp
ZiAhbXNvXT48c3R5bGU+dlw6KiB7YmVoYXZpb3I6dXJsKCNkZWZhdWx0I1ZNTCk7fQ0Kb1w6KiB7
YmVoYXZpb3I6dXJsKCNkZWZhdWx0I1ZNTCk7fQ0Kd1w6KiB7YmVoYXZpb3I6dXJsKCNkZWZhdWx0
I1ZNTCk7fQ0KLnNoYXBlIHtiZWhhdmlvcjp1cmwoI2RlZmF1bHQjVk1MKTt9DQo8L3N0eWxlPjwh
W2VuZGlmXS0tPjxzdHlsZT48IS0tDQovKiBGb250IERlZmluaXRpb25zICovDQpAZm9udC1mYWNl
DQoJe2ZvbnQtZmFtaWx5OiJDYW1icmlhIE1hdGgiOw0KCXBhbm9zZS0xOjIgNCA1IDMgNSA0IDYg
MyAyIDQ7fQ0KQGZvbnQtZmFjZQ0KCXtmb250LWZhbWlseTpDYWxpYnJpOw0KCXBhbm9zZS0xOjIg
MTUgNSAyIDIgMiA0IDMgMiA0O30NCi8qIFN0eWxlIERlZmluaXRpb25zICovDQpwLk1zb05vcm1h
bCwgbGkuTXNvTm9ybWFsLCBkaXYuTXNvTm9ybWFsDQoJe21hcmdpbjowaW47DQoJbWFyZ2luLWJv
dHRvbTouMDAwMXB0Ow0KCWZvbnQtc2l6ZToxMi4wcHQ7DQoJZm9udC1mYW1pbHk6IlRpbWVzIE5l
dyBSb21hbiIsc2VyaWY7fQ0KYTpsaW5rLCBzcGFuLk1zb0h5cGVybGluaw0KCXttc28tc3R5bGUt
cHJpb3JpdHk6OTk7DQoJY29sb3I6Ymx1ZTsNCgl0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO30N
CmE6dmlzaXRlZCwgc3Bhbi5Nc29IeXBlcmxpbmtGb2xsb3dlZA0KCXttc28tc3R5bGUtcHJpb3Jp
dHk6OTk7DQoJY29sb3I6cHVycGxlOw0KCXRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fQ0KcA0K
CXttc28tc3R5bGUtcHJpb3JpdHk6OTk7DQoJbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87DQoJbWFy
Z2luLXJpZ2h0OjBpbjsNCgltc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzsNCgltYXJnaW4tbGVm
dDowaW47DQoJZm9udC1zaXplOjEyLjBwdDsNCglmb250LWZhbWlseToiVGltZXMgTmV3IFJvbWFu
IixzZXJpZjt9DQpzcGFuLkVtYWlsU3R5bGUxOA0KCXttc28tc3R5bGUtdHlwZTpwZXJzb25hbDsN
Cglmb250LWZhbWlseToiQ2FsaWJyaSIsc2Fucy1zZXJpZjsNCgljb2xvcjojMUY0OTdEO30NCnNw
YW4uRW1haWxTdHlsZTE5DQoJe21zby1zdHlsZS10eXBlOnBlcnNvbmFsLWNvbXBvc2U7DQoJZm9u
dC1mYW1pbHk6IkNhbGlicmkiLHNhbnMtc2VyaWY7DQoJY29sb3I6d2luZG93dGV4dDt9DQouTXNv
Q2hwRGVmYXVsdA0KCXttc28tc3R5bGUtdHlwZTpleHBvcnQtb25seTsNCgltc28tZmFyZWFzdC1s
YW5ndWFnZTpFTi1VUzt9DQpAcGFnZSBXb3JkU2VjdGlvbjENCgl7c2l6ZTo4LjVpbiAxMS4waW47
DQoJbWFyZ2luOjEuMGluIDEuMGluIDEuMGluIDEuMGluO30NCmRpdi5Xb3JkU2VjdGlvbjENCgl7
cGFnZTpXb3JkU2VjdGlvbjE7fQ0KLS0+PC9zdHlsZT48IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD4N
CjxvOnNoYXBlZGVmYXVsdHMgdjpleHQ9ImVkaXQiIHNwaWRtYXg9IjEwMjYiIC8+DQo8L3htbD48
IVtlbmRpZl0tLT48IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD4NCjxvOnNoYXBlbGF5b3V0IHY6ZXh0
PSJlZGl0Ij4NCjxvOmlkbWFwIHY6ZXh0PSJlZGl0IiBkYXRhPSIxIiAvPg0KPC9vOnNoYXBlbGF5
b3V0PjwveG1sPjwhW2VuZGlmXS0tPg0KPC9oZWFkPg0KPGJvZHkgbGFuZz0iRU4tQ0EiIGxpbms9
ImJsdWUiIHZsaW5rPSJwdXJwbGUiPg0KPGRpdiBjbGFzcz0iV29yZFNlY3Rpb24xIj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5
OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0
LWxhbmd1YWdlOkVOLVVTIj5IaSBBbmR5PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1
b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFu
Z3VhZ2U6RU4tVVMiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0Nh
bGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdl
OkVOLVVTIj5TZWUgW01WXSBJbmxpbmU8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVv
dDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RDttc28tZmFyZWFzdC1sYW5n
dWFnZTpFTi1VUyI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCI+Qm90aCBzb2x1dGlvbnMgcmVseSBlcXVhbGx5IG9uIHRoZSBZQU5HIG1vZHVsZSB3cml0
ZXIgdG8gc29sdmUgYW55IGhhc2ggY2xhc2hlczxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCI+d2l0aGluIDEgbW9kdWxlLiZuYnNwOyBUaGUgYWR2YW50YWdlIG9mIGEgbW9kdWxl
LWlkIGlzIHRoYXQgaWYgdGhpcyBpcyBkb25lLCBubyByZS1oYXNoPG86cD48L286cD48L3A+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIj5pcyBuZWVkZWQgYXQgYWxsLiBIb3cgaXMgYSBEYXRhIE5vZGUg
SUQgZW5jb2RlZD8gTm90IHN1cmUgaG93IHRoYXQgd29ya3MuPG86cD48L286cD48L3A+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGli
cmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdlOkVO
LVVTIj5bTVZdPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNw
YW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90
OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPlRo
ZSBEYXRhIE5vZGUgSUQgaXMgYSBpbnRlZ2VyLCBJIGNoYW5nZWQgdGhlIG5hbWUgdG8gb3BlbiB0
aGUgZG9vciB0byB0aGUgc3VwcG9ydCBvZiBib3RoIG1hbmFnZWQgYW5kIHVubWFuYWdlZCBJRC48
bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0i
Zm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2Vy
aWY7Y29sb3I6IzFGNDk3RDttc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+Rm9yIG1vZHVsZSBp
bXBsZW1lbnRpbmcgdW5tYW5hZ2VkIElEcywgdGhpcyBpbnRlZ2VyIGNvbnRhaW5zIHRoZSBjdXJy
ZW50IDMwIGJpdHMgbW0zIGhhc2guPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7
Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3Vh
Z2U6RU4tVVMiPkZvciBtb2R1bGUgaW1wbGVtZW50aW5nIG1hbmFnZWQgSURzLCB0aGlzIGludGVn
ZXIgY29udGFpbnMgYW4gYXNzaWduZWQgSUQuPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6
JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3Qt
bGFuZ3VhZ2U6RU4tVVMiPlRoaXMgZmVhdHVyZSBjYW4gYmUgdXNlZCB0byByZWR1Y2Ugc2lnbmlm
aWNhbnRseSB0aGUgcGF5bG9hZCBzaXplICh+NTAlKQ0KPG86cD48L286cD48L3NwYW4+PC9wPg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1m
YW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZh
cmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPkFub3RoZXIgcG9zc2libGUgYXBwbGljYXRpb24gaXMgdGhl
IG1hcHBpbmcgb2YgWmlnYmVlIFpDTCBjbHVzdGVycyB0byBDb01JIG1vZHVsZXMgd2hpbGUga2Vl
cGluZyB0aGUgc2FtZSBhdHRyaWJ1dGUgKERhdGEgTm9kZSkgSUQuPG86cD48L286cD48L3NwYW4+
PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7
Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7
bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPlRoaXMgaXMgbm90IGEgbWFuZGF0b3J5IGZlYXR1
cmUgYnV0IHRoZXJlIGlzIG5vdCBtdWNoIGVmZm9ydHMgcmVxdWlyZWQgdG8gc3VwcG9ydCB0aGlz
IHNpbmNlIGJvdGggYXBwcm9hY2hlcyB1c2UgaW50ZWdlcnMsIHdlIGp1c3QNCiBuZWVkIHRvIGFk
ZCBzb21lIGRlc2NyaXB0aW9uIHRleHRzLjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyA8bzpwPjwvbzpwPjwvcD4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPlRoZSBjb3N0IG9mIHRoZSBtb2R1bGUtaWQgaXMgcmVhbGx5IGluIHRo
ZSBtZXNzYWdlIGVuY29kaW5nLjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
PG86cD4mbmJzcDs8L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0i
Zm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2Vy
aWY7Y29sb3I6IzFGNDk3RDttc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+W01WXSBJZiB3ZSBz
dGlsbCBzdXBwb3J0IGFjY2VzcyB3aXRoIHRoZSBEYXRhIE5vZGUgSUQgb25seSB3aXRoIHRoZSBw
b3NzaWJpbGl0eSB0byByZWNlaXZlIGEgY2xhc2ggZXJyb3IsIHRoaXMgb3ZlcmhlYWQgaXMgb3B0
aW9uYWwuPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4g
c3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90Oyxz
YW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPjxvOnA+
Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxl
PSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1z
ZXJpZjtjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj5Gb3IgZXhhbXBs
ZTo8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHls
ZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMt
c2VyaWY7Y29sb3I6IzFGNDk3RDttc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+UkVROiBHRVQg
ZXhhbXBsZS5jb20vbWcvVk53UUkmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgLy8gTWF5IHJldHVybiBhIGNsYXNoIGVycm9yPG86cD48
L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQt
c2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2Nv
bG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPlJFUTogR0VUIGV4YW1wbGUu
Y29tL21nLz9zZWxlY3Q9aWV0Zi1zeXN0ZW0gJm5ic3A7Jm5ic3A7Jm5ic3A7Ly8gTmV2ZXIgcmV0
dXJuIGEgY2xhc2ggZXJyb3I8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxp
YnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RDttc28tZmFyZWFzdC1sYW5ndWFnZTpF
Ti1VUyI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZx
dW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMi
Pk9yIHRoaXMgYWx0ZXJuYXRlIGFwcHJvYWNoIGlmIHdlIHdhbnQgdG8gc3VwcG9ydCB0aGUgcmV0
cmlldmFsIG9mIG11bHRpcGxlIGRhdGEgbm9kZXM6PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1p
bHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVh
c3QtbGFuZ3VhZ2U6RU4tVVMiPlJFUTogR0VUIGV4YW1wbGUuY29tL21nPyBzZWxlY3Q9Vk53UUks
Zm9sTmgmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Ly8gTWF5IHJldHVybiBhIGNsYXNoIGVycm9yPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1p
bHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVh
c3QtbGFuZ3VhZ2U6RU4tVVMiPlJFUTogR0VUIGV4YW1wbGUuY29tL21nLz9zZWxlY3Q9aWV0Zi1z
eXN0ZW0oVk53UUksZm9sTmgpICZuYnNwOy8vIE5ldmVyIHJldHVybiBhIGNsYXNoIGVycm9yPG86
cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286
cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5XaGF0IGlmIHRoZSBwcm90b2NvbCBhbGxvd2Vk
IHRoZSBjbGllbnQgdG8gZGlzY292ZXIgYSBzZXQgb2YgbW9kdWxlLW5hbWU8bzpwPjwvbzpwPjwv
cD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPnRvIGxvY2FsLW1vZHVsZS1udW1iZXIgbWFwcGluZ3Mg
dGhhdCBjYW4gYmUgdXNlZCBhcyB0aGUgbW9kdWxlLWlkPG86cD48L286cD48L3A+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIj5pbiBtZXNzYWdlcz88bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4g
c3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90Oyxz
YW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPltNVl0g
Q29vbCBpZGVhLCB0aGlzIGlzIGEgbmljZSBhbHRlcm5hdGl2ZSB0byBhIHJlZ2lzdHJ5LjxvOnA+
PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250
LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtj
b2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj5DYW4gd2UgdXNlIC8ud2Vs
bC1rbm93bi9jb3JlIHRvIGltcGxlbWVudCB0aGlzIGZlYXR1cmU/PG86cD48L286cD48L3NwYW4+
PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7
Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7
bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQt
ZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEO21zby1m
YXJlYXN0LWxhbmd1YWdlOkVOLVVTIj5JZiB3ZSBkbyBzbywgSSB0aGluayB0aGF0IGJvdGggdGhl
IG1vZHVsZSBuYW1lIGFuZCBhIG1vZHVsZSBJRCBzaG91bGQgYmUgc3VwcG9ydGVkLjxvOnA+PC9v
OnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNp
emU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xv
cjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj5UaGlzIHdheSwgdGhpcyBleHRy
YSBoYW5kc2hha2UgdXNlIHRvIHJldHJpZXZlIHRoZXNlIG1vZHVsZSBJRHMgY2FuIGJlIHNraXBw
ZWQgd2hlbiB0aGlzIG9wdGltaXphdGlvbiBpcyBub3QgcmVxdWlyZWQgYnkgdGhlIGNsaWVudA0K
IChTaG9ydCBpbnRlcmFjdGlvbnMgb3IgbGFyZ2VyIGZyYW1lIHN1cHBvcnRlZCk8bzpwPjwvbzpw
Pjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPlRoZSBjbGllbnQgaGFzIHRvIHN0b3JlIHRoZSBtb2R1bGUg
bmFtZSBhbnl3YXkgKHRoYXQgaXMgJ01vZHVsZSBJRCc8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiPnNpbmNlIG1vZHVsZXMgYXJlIG5vdCBhc3NpZ25lZCBudW1iZXJzKS4mbmJz
cDsgVGhlIGV4dHJhIHN0b3JhZ2U8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
PmlzIDEgbnVtYmVyICgxNiBiaXRzPykgcGVyIG1vZHVsZSwgcGVyIHNlcnZlci4gTWF5YmUgMzIg
Ynl0ZXMgcGVyIHNlcnZlci48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPldv
dWxkIHRoYXQgYmUgdG9vIG11Y2g/PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
Ij48YnI+DQo8c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtD
YWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RDttc28tZmFyZWFzdC1sYW5ndWFn
ZTpFTi1VUyI+W01WXSBTZWVtIHJlYXNvbmFibGU8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPkkgd291bGQgbGlrZSB0aGUgbW9kdWxlLWlkIGFwcHJvYWNoIGlmIHRoZSBlbmNvZGluZyB3
YXMgYSBudW1iZXIgaW5zdGVhZDxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
b2YgYSBzdHJpbmcuPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZu
YnNwOzwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNp
emU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xv
cjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj5bTVZdIEFzIG1lbnRpb25lZCBh
Ym92ZSwgSSB0aGluZyB3ZSBzaG91bGQgc3VwcG9ydCBib3RoLjxvOnA+PC9vOnA+PC9zcGFuPjwv
cD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+QW5keTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNw
YW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90
OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPjxv
OnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0
eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fu
cy1zZXJpZjtjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj48bzpwPiZu
YnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8dGFibGUgY2xhc3M9Ik1zb05vcm1hbFRhYmxlIiBib3Jk
ZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCIgd2lkdGg9IjcxNyIgc3R5bGU9
IndpZHRoOjUzNy43NXB0O2JvcmRlci1jb2xsYXBzZTpjb2xsYXBzZSI+DQo8dGJvZHk+DQo8dHIg
c3R5bGU9ImhlaWdodDo0OS4wNXB0Ij4NCjx0ZCB3aWR0aD0iMTM3IiBzdHlsZT0id2lkdGg6MTAz
LjFwdDtib3JkZXI6bm9uZTtib3JkZXItcmlnaHQ6c29saWQgd2luZG93dGV4dCAxLjBwdDtwYWRk
aW5nOjBpbiA1LjRwdCAwaW4gNS40cHQ7aGVpZ2h0OjQ5LjA1cHQiPg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2Fs
aWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPjxpbWcgd2lkdGg9IjEyMCIgaGVp
Z2h0PSIyMiIgaWQ9IlBpY3R1cmVfeDAwMjBfMiIgc3JjPSJjaWQ6aW1hZ2UwMDEuanBnQDAxRDA5
NDcwLkNFQzZBRkMwIiBhbHQ9ImNpZDppbWFnZTAwMS5qcGdAMDFDODY4RDguQkYwQkI3RTAiPjxv
OnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvdGQ+DQo8dGQgd2lkdGg9IjU4MCIgdmFsaWduPSJ0b3Ai
IHN0eWxlPSJ3aWR0aDo0MzQuNjVwdDtwYWRkaW5nOjBpbiA1LjRwdCAwaW4gNS40cHQ7aGVpZ2h0
OjQ5LjA1cHQiPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbi1sZWZ0OjguMXB0
Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOjkuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1
b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+TWljaGVsIFZlaWxsZXR0ZTxicj4NClN5c3Rl
bSBBcmNoaXRlY3R1cmUgRGlyZWN0b3I8L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4w
cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5
N0QiPjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJt
YXJnaW4tbGVmdDo4LjFwdCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo5LjBwdDtmb250LWZhbWls
eTomcXVvdDtBcmlhbCZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPlRyaWxsaWFudCBJ
bmMuPGJyPg0KVGVsOiA0NTAtMzc1LTA1NTYgZXh0LiAyMzc8YnI+DQo8YSBocmVmPSJtYWlsdG86
bWljaGVsLnZlaWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tIj48c3BhbiBzdHlsZT0iY29sb3I6IzA1
NjNDMSI+bWljaGVsLnZlaWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tPC9zcGFuPjwvYT48bzpwPjwv
bzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWxlZnQ6
OC4xcHQiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0Nh
bGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj48YSBocmVmPSJodHRwOi8vd3d3
LnRyaWxsaWFudGluYy5jb20vIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjkuMHB0O2ZvbnQtZmFt
aWx5OiZxdW90O0FyaWFsJnF1b3Q7LHNhbnMtc2VyaWYiPnd3dy50cmlsbGlhbnRpbmMuY29tPC9z
cGFuPjwvYT48L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo5LjBwdDtmb250LWZhbWlseTom
cXVvdDtBcmlhbCZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPg0KICZuYnNwOyA8L3Nw
YW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJy
aSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4N
CjwvdGQ+DQo8L3RyPg0KPC90Ym9keT4NCjwvdGFibGU+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48
c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1
b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9w
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9u
dC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNv
LWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPjxiPjxzcGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0iZm9udC1zaXpl
OjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYiPkZyb206
PC9zcGFuPjwvYj48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9u
dC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj4gQW5keSBCaWVybWFuIFtt
YWlsdG86YW5keUB5dW1hd29ya3MuY29tXQ0KPGJyPg0KPGI+U2VudDo8L2I+IDIxIG1haSAyMDE1
IDIwOjAzPGJyPg0KPGI+VG86PC9iPiBNaWNoZWwgVmVpbGxldHRlPGJyPg0KPGI+Q2M6PC9iPiBj
b25zdWx0YW5jeUB2YW5kZXJzdG9rLm9yZzsgNnRpc2NoQGlldGYub3JnOyBDb3JlPGJyPg0KPGI+
U3ViamVjdDo8L2I+IFJlOiBbY29yZV0gQ29NSSByZWhhc2hpbmc8bzpwPjwvbzpwPjwvc3Bhbj48
L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjxkaXY+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjxkaXY+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjxkaXY+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj5PbiBUaHUsIE1heSAyMSwgMjAxNSBhdCA5OjMyIEFNLCBNaWNoZWwgVmVpbGxldHRl
ICZsdDs8YSBocmVmPSJtYWlsdG86TWljaGVsLlZlaWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tIiB0
YXJnZXQ9Il9ibGFuayI+TWljaGVsLlZlaWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tPC9hPiZndDsg
d3JvdGU6PG86cD48L286cD48L3A+DQo8YmxvY2txdW90ZSBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9y
ZGVyLWxlZnQ6c29saWQgI0NDQ0NDQyAxLjBwdDtwYWRkaW5nOjBpbiAwaW4gMGluIDYuMHB0O21h
cmdpbi1sZWZ0OjQuOHB0O21hcmdpbi1yaWdodDowaW4iPg0KPGRpdj4NCjxkaXY+DQo8cD5IaSBQ
ZXRlcjxvOnA+PC9vOnA+PC9wPg0KPHA+Jm5ic3A7PG86cD48L286cD48L3A+DQo8cD5XZSBzZWVt
IGVmZmVjdGl2ZWx5IHRvIGJlIG9uIHRoZSBzYW1lIGludGVyc2VjdGlvbiAoWUFORywgQ0JPUiwg
WUFORyBoYXNoKSAmbmJzcDtidXQgc3RpbGwgb24gdGhlIG9wcG9zaXRlIHNpZGUgb2YgdGhlIHN0
cmVldC48bzpwPjwvbzpwPjwvcD4NCjxwPlRoZSBjb3JlIGRpZmZlcmVuY2Ugc2VlbSB0byBiZSB0
aGUgZXhwZWN0ZWQgZGF0YSBzdHJ1dHVyZSBpbXBsZW1lbnRlZCBieSB0aGUgQ29NSSBzZXJ2ZXIu
PG86cD48L286cD48L3A+DQo8cD5BbGwgeW91ciBzb2x1dGlvbnMgYWxsIGJhc2VkIG9uIGZsYXQg
aGFzaCB0YWJsZSByZXByZXNlbnRlZCBiZWxvdy48bzpwPjwvbzpwPjwvcD4NCjxwPiZuYnNwOzxv
OnA+PC9vOnA+PC9wPg0KPHAgc3R5bGU9Im1hcmdpbi1sZWZ0Oi41aW4iPjxpbWcgYm9yZGVyPSIw
IiB3aWR0aD0iMjU0IiBoZWlnaHQ9IjE5NCIgaWQ9Il94MDAwMF9pMTAyNSIgc3JjPSJjaWQ6aW1h
Z2UwMDIucG5nQDAxRDA5NDcwLkNFQzZBRkMwIj48bzpwPjwvbzpwPjwvcD4NCjxwPiZuYnNwOzxv
OnA+PC9vOnA+PC9wPg0KPHA+QWxsIG15IHNvbHV0aW9ucyBhcmUgYWxsIGJhc2VkIG9uIGEgaGFz
aCB0YWJsZSBwZXIgbW9kdWxlIGNvbnRleHQgcmVwcmVzZW50ZWQgYmVsb3cuPG86cD48L286cD48
L3A+DQo8cD4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Jsb2NrcXVv
dGU+DQo8ZGl2Pg0KPHAgc3R5bGU9Im1hcmdpbi1sZWZ0OjQ3LjU1cHQiPjxpbWcgYm9yZGVyPSIw
IiB3aWR0aD0iMzg2IiBoZWlnaHQ9IjIwNiIgaWQ9Il94MDAwMF9pMTAyNiIgc3JjPSJjaWQ6aW1h
Z2UwMDMucG5nQDAxRDA5NDcwLkNFQzZBRkMwIj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGJs
b2NrcXVvdGUgc3R5bGU9ImJvcmRlcjpub25lO2JvcmRlci1sZWZ0OnNvbGlkICNDQ0NDQ0MgMS4w
cHQ7cGFkZGluZzowaW4gMGluIDBpbiA2LjBwdDttYXJnaW4tbGVmdDo0LjhwdDttYXJnaW4tcmln
aHQ6MGluIj4NCjxkaXY+DQo8ZGl2Pg0KPHA+Jm5ic3A7PG86cD48L286cD48L3A+DQo8cD5UaGlz
IGFsdGVybmF0ZSBkYXRhIHN0cnVjdHVyZSBlbmFibGUgYSBkaWZmZXJlbnQgc2V0IG9mIHNvbHV0
aW9ucyBzdWNoIGFzOjxvOnA+PC9vOnA+PC9wPg0KPHA+Jm5ic3A7PG86cD48L286cD48L3A+DQo8
cCBzdHlsZT0ibWFyZ2luLWxlZnQ6LjVpbiI+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OlN5bWJv
bCI+wrc8L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo3LjBwdCI+Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7DQo8L3NwYW4+QWNjZXNzIHVzaW5nIGVp
dGhlciB0aGUg4oCcRGF0YSBOb2RlIElE4oCdIGFsb25lIChpZiB1bmlxdWUpIG9yIOKAnE1vZHVs
ZSBJROKAnSAmIzQzOyDigJxEYXRhIE5vZGUgSUTigJ08YnI+DQpOT1RFOiBXaGVuIGEgY2xhc2gg
ZXhpc3QsIGFuIGFsdGVybmF0ZSDigJxEYXRhIE5vZGUgSUTigJ0gY2FuIGJlIHJldHVybmVkIGJ5
IHRoZSBDb01JIHNlcnZlciBmb3Igc3Vic2VxdWVudCByZXF1ZXN0cyB1c2luZyB0aGUg4oCcRGF0
YSBOb2RlIElE4oCdIGFsb25lLjxvOnA+PC9vOnA+PC9wPg0KPHAgc3R5bGU9Im1hcmdpbi1sZWZ0
Oi41aW4iPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPHAgc3R5bGU9Im1hcmdpbi1sZWZ0Oi41aW4i
PjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTpTeW1ib2wiPsK3PC9zcGFuPjxzcGFuIHN0eWxlPSJm
b250LXNpemU6Ny4wcHQiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOw0KPC9zcGFuPkFjY2VzcyB0byBhbGwgZGF0YSBub2RlcyBvZiBhIG1vZHVsZTxicj4N
Ck5PVEU6IFRoZSBDb01JIHNlcnZlciBrbm93IHdoaWNoIGRhdGEgbm9kZXMgYXJlIHBhcnQgb2Yg
d2hpY2ggbW9kdWxlIGFuZCBjYW4gcmV0dXJuIHRob3NlIGlmIGEgcXVlcnkgcGFyYW1ldGVyIChz
ZWxlY3QpIGFzayB0byBkbyBzby48bzpwPjwvbzpwPjwvcD4NCjxwPiZuYnNwOzxvOnA+PC9vOnA+
PC9wPg0KPHAgc3R5bGU9Im1hcmdpbi1sZWZ0Oi41aW4iPjxzcGFuIHN0eWxlPSJmb250LWZhbWls
eTpTeW1ib2wiPsK3PC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6Ny4wcHQiPiZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOw0KPC9zcGFuPkFiaWxpdHkg
dG8gc3VwcG9ydCBhIG1peCBtYW5hZ2VkL3VubWFuYWdlZCBtb2RlbCB3aGVyZSBzb21lIG1vZHVs
ZXMgbWF5IHVzZSBtYW5hZ2UgRGF0YSBOb2RlIElEcyBhbmQgb3RoZXJzIG1heSB1c2UgWUFORyBo
YXNoZXM8YnI+DQpOT1RFOiBJZiB3ZSBhbHNvIHdhbnQgdG8gc3VwcG9ydCBtYW5hZ2VkIGFuZCB1
bm1hbmFnZWQg4oCcTW9kdWxlIElE4oCdLCB3ZSBjYW4gdXNlIGEgc3BlY2lhbCBjaGFyYWN0ZXIg
bGlrZSAjIHRvIGRpZmZlcmVudGlhdGUgYmV0d2VlbiB0aGVtLjxicj4NCk1vZHVsZSBJRCBwcmVm
aXhlZCBieSAjIGNhbiBiZSB1bm1hbmFnZWQgbW9kdWxlIG5hbWUsIE1vZHVsZSBJRCBub3QgcHJl
Zml4ZWQgYnkgIyBjYW4gYmUgSUFOQSByZWdpc3RlcmVkIG1vZHVsZSBJRC48YnI+DQpUaGUgYWR2
YW50YWdlIHdpbGwgYmUgdG8gbWluaW1pemUgdGhlIG92ZXJoZWFkIGFzc29jaWF0ZWQgdG8gc29t
ZSBwb3B1bGFyIG1vZHVsZXMuPGJyPg0KV2l0aGluIGEgbW9kdWxlLCBhbGwgZGF0YSBub2RlcyBu
ZWVkIHRvIGJlIGVpdGhlciBtYW5hZ2Ugb3IgdW5tYW5hZ2VkPG86cD48L286cD48L3A+DQo8cD4m
bmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxwIHN0eWxlPSJtYXJnaW4tbGVmdDouNWluIj48c3BhbiBz
dHlsZT0iZm9udC1mYW1pbHk6U3ltYm9sIj7Ctzwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXpl
OjcuMHB0Ij4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsN
Cjwvc3Bhbj5Nb3N0IGltcG9ydGFudGx5LCB0aGlzIGRhdGEgc3RydWN0dXJlIGVuYWJsZSBkaWZm
ZXJlbnQgbWV0aG9kcyB3aGljaCBhdm9pZCB0aGUgbmVlZCB0byBpbXBsZW1lbnQgYSByZWhhc2gg
bGlzdCwgaXRzIHJldHJpZXZhbCBhbmQgc3RvcmFnZTxvOnA+PC9vOnA+PC9wPg0KPHA+Jm5ic3A7
PG86cD48L286cD48L3A+DQo8cD5J4oCZbSBvcGVuIHRvIGNvbXByb21pc2Ugb24gbXVsdGlwbGUg
YXNwZWN0cyBvZiB0aGUgc29sdXRpb25zIChzdXBwb3J0IG9mIG5vdCBvZiBtYW5hZ2VkIE1vZHVs
ZSBJRCwgbWFuYWdlZCBEYXRhIG5vZGUgSUQsIHNwZWNpZmljIG1lc3NhZ2UgZm9ybWF0IGFuZCBx
dWVyeSBwYXJhbWV0ZXJzKS48bzpwPjwvbzpwPjwvcD4NCjxwPkhvd2V2ZXIsIEkgd2lsbCBoYXZl
IGhhcmQgdGltZSB0byBjb21wcm9taXNlIG9uIHRoaXMgZnVuZGFtZW50YWwgZGlmZmVyZW5jZS48
bzpwPjwvbzpwPjwvcD4NCjxwPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPHA+QWJvdXQg4oCcT0ss
IGJ1dCB0aGUgbWVzc2FnZSBvdmVyaGVhZCBhcmd1bWVudCByZW1haW5zLuKAnTxvOnA+PC9vOnA+
PC9wPg0KPHA+Jm5ic3A7PG86cD48L286cD48L3A+DQo8cCBzdHlsZT0ibWFyZ2luLWxlZnQ6LjVp
biI+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OlN5bWJvbCI+wrc8L3NwYW4+PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZTo3LjBwdCI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7DQo8L3NwYW4+T24gdGhlIENvTUkgc2VydmVyIHNpZGUsIEkgZG9u4oCZdCBjb25z
aWRlciB0aGF0IGFkZGluZyBhIGRvemVuIG9mIOKAnE1vZHVsZSBJROKAnSBhbmQgc3BsaXR0aW5n
IHRoZSBoYXNoIHRhYmxlIGluIHBpZWNlcyByZXByZXNlbnQgYW4gdW5hY2NlcHRhYmxlIG92ZXJo
ZWFkLCBlc3BlY2lhbGx5IGlmIHdlIHJlbW92ZSB0aGUgcmVoYXNoIGxpc3QuPG86cD48L286cD48
L3A+DQo8cCBzdHlsZT0ibWFyZ2luLWxlZnQ6LjVpbiI+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5
OlN5bWJvbCI+wrc8L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo3LjBwdCI+Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7DQo8L3NwYW4+T24gdGhlIHBy
b3RvY29sIHNpZGUsIGlmIHdlIGFsbG93IGFjY2VzcyB1c2luZyB0aGUg4oCcRGF0YSBOb2RlIElE
4oCdIGFsb25lIGFuZCBpZiB3ZSByZXR1cm4gYW4gYWx0ZXJuYXRlIOKAnERhdGEgTm9kZSBJROKA
nSBpbiBjYXNlIG9mIGEgY2xhc2ggZm9yIHN1YnNlcXVlbnQgcmVxdWVzdHMgc2VlbSB0byBtZSBt
b3JlIGVmZmljaWVudCB0aGFuIHJldHJpZXZpbmcgYSByZWhhc2ggbGlzdC48bzpwPjwvbzpwPjwv
cD4NCjxwPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPHA+TWljaGVsIFZlaWxsZXR0ZTxvOnA+PC9v
OnA+PC9wPg0KPHA+U3lzdGVtIEFyY2hpdGVjdHVyZSBEaXJlY3RvcjxvOnA+PC9vOnA+PC9wPg0K
PHA+VHJpbGxpYW50IEluYy48bzpwPjwvbzpwPjwvcD4NCjxwPlRlbDogNDUwLTM3NS0wNTU2IGV4
dC4gMjM3PG86cD48L286cD48L3A+DQo8cD48YSBocmVmPSJtYWlsdG86bWljaGVsLnZlaWxsZXR0
ZUB0cmlsbGlhbnRpbmMuY29tIiB0YXJnZXQ9Il9ibGFuayI+bWljaGVsLnZlaWxsZXR0ZUB0cmls
bGlhbnRpbmMuY29tPC9hPjxvOnA+PC9vOnA+PC9wPg0KPHA+PGEgaHJlZj0iaHR0cDovL3d3dy50
cmlsbGlhbnRpbmMuY29tIiB0YXJnZXQ9Il9ibGFuayI+d3d3LnRyaWxsaWFudGluYy5jb208L2E+
ICZuYnNwOw0KPG86cD48L286cD48L3A+DQo8cD4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxwPjxz
cGFuIGxhbmc9IkVOLVVTIj4tLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLTxicj4NCkZyb206IHBl
dGVyIHZhbiBkZXIgU3RvayBbbWFpbHRvOjxhIGhyZWY9Im1haWx0bzpzdG9rY29uc0B4czRhbGwu
bmwiIHRhcmdldD0iX2JsYW5rIj5zdG9rY29uc0B4czRhbGwubmw8L2E+XQ0KPGJyPg0KU2VudDog
MjEgbWFpIDIwMTUgMDU6Mjc8YnI+DQpUbzogTWljaGVsIFZlaWxsZXR0ZTxicj4NCkNjOiA8YSBo
cmVmPSJtYWlsdG86Y29uc3VsdGFuY3lAdmFuZGVyc3Rvay5vcmciIHRhcmdldD0iX2JsYW5rIj5j
b25zdWx0YW5jeUB2YW5kZXJzdG9rLm9yZzwvYT47IEFuZHkgQmllcm1hbjsNCjxhIGhyZWY9Im1h
aWx0bzo2dGlzY2hAaWV0Zi5vcmciIHRhcmdldD0iX2JsYW5rIj42dGlzY2hAaWV0Zi5vcmc8L2E+
OyBDb3JlPGJyPg0KU3ViamVjdDogUkU6IFtjb3JlXSBDb01JIHJlaGFzaGluZzwvc3Bhbj48bzpw
PjwvbzpwPjwvcD4NCjxwPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPHA+SGkgTWljaGVsLDxvOnA+
PC9vOnA+PC9wPg0KPHA+Jm5ic3A7PG86cD48L286cD48L3A+DQo8cD5XZSBhcmUgbm90IGZhciBh
cGFydCwgaXQgc2VlbXMgdG8gbWUuPG86cD48L286cD48L3A+DQo8cD5UaGVyZSBpcyBvbmUgdGhp
bmcgbGVmdCBpbiBteSB2aWV3OjxvOnA+PC9vOnA+PC9wPg0KPHA+LSBTZXJ2ZXIgcmV0dXJucyBu
ZXcgaGFzaCB2YWx1ZSB0byBjbGllbnQsIG9yPG86cD48L286cD48L3A+DQo8cD4tIENsaWVudCBy
ZWFkcyBuZXcgaGFzaCB2YWx1ZSBmcm9tIGEgc3VwcG9ydGluZyBmaWxlIChjYWxsZWQ8bzpwPjwv
bzpwPjwvcD4NCjxwPiZxdW90O2NsYXNoLWZpbGUmcXVvdDspPG86cD48L286cD48L3A+DQo8cD4m
bmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxwPlRoZSBzdXBwb3J0aW5nIGZpbGUgaXMgaW50cm9kdWNl
ZCB0byByZW1vdmUgc3RvcmFnZSByZXF1aXJlbWVudHMgZnJvbSBzZXJ2ZXIsIHN1Y2ggYXM6IGRh
dGEgbm9kZSBuYW1lLCBuYW1lIGV4dGVuc2lvbiwgbW9kdWxlIG5hbWUsIGhhc2hlcy48bzpwPjwv
bzpwPjwvcD4NCjxwPkFuZCBpdCBtYWtlcyByZWhhc2ggaGFuZGxpbmcgZm9yIGxhcmdlIGNsaWVu
dHMgKHN0b3JpbmcgdGhlIGRhdGEgbm9kZTxvOnA+PC9vOnA+PC9wPg0KPHA+bmFtZXMpIGFuZCBm
b3Igc21hbGwgY2xpZW50cyAoc3RvcmluZyBtb2R1bGUgbmFtZXMgb25seSkgc2ltaWxhci48bzpw
PjwvbzpwPjwvcD4NCjxwPlRoZSAmcXVvdDtjbGFzaC1maWxlJnF1b3Q7IGlzIHN0aWxsIG5lZWRl
ZCB3aGVuIHRoZSBzZXJ2ZXIgcmV0dXJucyB0aGUgbmV3IGhhc2ggdmFsdWUgdG8gc3RvcmUgZGF0
YSBub2RlIG5hbWUgYW5kIG5hbWUgZXh0ZW5zaW9uLjxvOnA+PC9vOnA+PC9wPg0KPHA+QnkgcmV0
dXJuaW5nIHRoZSBuZXcgaGFzaCB2YWx1ZSB0aGUgc2VydmVyIGlzIGJ1cmRlbmVkIHdpdGggdGhl
IG1vZHVsZSBuYW1lIHN0b3JhZ2UuPG86cD48L286cD48L3A+DQo8cD4mbmJzcDs8bzpwPjwvbzpw
PjwvcD4NCjxwPmZldyBjb21tZW50cyBiZWxvdyBpbjxvOnA+PC9vOnA+PC9wPg0KPHA+Jmx0O3B2
ZHMyJmd0OyBjb21tZW50ICZsdDsvcHZkczImZ3Q7PG86cD48L286cD48L3A+DQo8cD4mbmJzcDs8
bzpwPjwvbzpwPjwvcD4NCjxwPlBldGVyPG86cD48L286cD48L3A+DQo8cD4mbmJzcDs8bzpwPjwv
bzpwPjwvcD4NCjxwPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvYmxv
Y2txdW90ZT4NCjwvZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48
L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2JvZHk+DQo8L2h0bWw+DQo=

--_000_CO2PR0601MB792A74AADE572DA5E24F9ACFEC00CO2PR0601MB792na_--

--_006_CO2PR0601MB792A74AADE572DA5E24F9ACFEC00CO2PR0601MB792na_
Content-Type: image/jpeg; name="image001.jpg"
Content-Description: image001.jpg
Content-Disposition: inline; filename="image001.jpg"; size=2532;
	creation-date="Fri, 22 May 2015 13:40:05 GMT";
	modification-date="Fri, 22 May 2015 13:40:05 GMT"
Content-ID: <image001.jpg@01D09470.CEC6AFC0>
Content-Transfer-Encoding: base64

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
mutdiv0i88rVfrpe4PyYhak5RbkrOP/Z

--_006_CO2PR0601MB792A74AADE572DA5E24F9ACFEC00CO2PR0601MB792na_
Content-Type: image/png; name="image002.png"
Content-Description: image002.png
Content-Disposition: inline; filename="image002.png"; size=2563;
	creation-date="Fri, 22 May 2015 13:40:06 GMT";
	modification-date="Fri, 22 May 2015 13:40:06 GMT"
Content-ID: <image002.png@01D09470.CEC6AFC0>
Content-Transfer-Encoding: base64

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

--_006_CO2PR0601MB792A74AADE572DA5E24F9ACFEC00CO2PR0601MB792na_
Content-Type: image/png; name="image003.png"
Content-Description: image003.png
Content-Disposition: inline; filename="image003.png"; size=6943;
	creation-date="Fri, 22 May 2015 13:40:07 GMT";
	modification-date="Fri, 22 May 2015 13:40:07 GMT"
Content-ID: <image003.png@01D09470.CEC6AFC0>
Content-Transfer-Encoding: base64

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

--_006_CO2PR0601MB792A74AADE572DA5E24F9ACFEC00CO2PR0601MB792na_--


From nobody Mon May 25 13:43:58 2015
Return-Path: <Michel.Veillette@trilliantinc.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 3957E1A8841; Mon, 25 May 2015 13:43:55 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.002
X-Spam-Level: 
X-Spam-Status: No, score=-0.002 tagged_above=-999 required=5 tests=[BAYES_40=-0.001, HTML_MESSAGE=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham
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 gZiveb8t-y9a; Mon, 25 May 2015 13:43:50 -0700 (PDT)
Received: from na01-bn1-obe.outbound.protection.outlook.com (mail-bn1bon0766.outbound.protection.outlook.com [IPv6:2a01:111:f400:fc10::1:766]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 261441A8A85; Mon, 25 May 2015 13:41:39 -0700 (PDT)
Received: from CO2PR0601MB792.namprd06.prod.outlook.com (10.141.247.144) by CO2PR0601MB0935.namprd06.prod.outlook.com (25.160.10.149) with Microsoft SMTP Server (TLS) id 15.1.172.22; Mon, 25 May 2015 20:41:22 +0000
Received: from CO2PR0601MB792.namprd06.prod.outlook.com (10.141.247.144) by CO2PR0601MB792.namprd06.prod.outlook.com (10.141.247.144) with Microsoft SMTP Server (TLS) id 15.1.172.22; Mon, 25 May 2015 20:41:18 +0000
Received: from CO2PR0601MB792.namprd06.prod.outlook.com ([10.141.247.144]) by CO2PR0601MB792.namprd06.prod.outlook.com ([10.141.247.144]) with mapi id 15.01.0172.012; Mon, 25 May 2015 20:41:18 +0000
From: Michel Veillette <Michel.Veillette@trilliantinc.com>
To: peter van der Stok <stokcons@xs4all.nl>, Andy Bierman <andy@yumaworks.com>
Thread-Topic: YANG hash clashes & full extended name
Thread-Index: AdCXKvKuHC1A2mUpQGetyyM3gkHNTg==
Date: Mon, 25 May 2015 20:41:17 +0000
Message-ID: <CO2PR0601MB7928943DF4EEF9BECAC5CACFECD0@CO2PR0601MB792.namprd06.prod.outlook.com>
Accept-Language: fr-CA, en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
authentication-results: spf=none (sender IP is ) smtp.mailfrom=Michel.Veillette@trilliantinc.com; 
x-originating-ip: [207.96.192.122]
x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:; SRVR:CO2PR0601MB792; UriScan:; BCL:0; PCL:0; RULEID:; SRVR:CO2PR0601MB0935; 
x-microsoft-antispam-prvs: <CO2PR0601MB792D1B5A9ACCD5233D713C0FECD0@CO2PR0601MB792.namprd06.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:;
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(601004)(5005006)(520002)(3002001); SRVR:CO2PR0601MB792; BCL:0; PCL:0;  RULEID:; SRVR:CO2PR0601MB792; 
x-forefront-prvs: 058707456E
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(199003)(38414003)(189002)(122556002)(40100003)(19625215002)(33656002)(92566002)(19300405004)(19617315012)(97736004)(105586002)(99936001)(66066001)(5001770100001)(5001830100001)(87936001)(99286002)(50986999)(62966003)(5001860100001)(77156002)(81156007)(74316001)(101416001)(64706001)(86362001)(19580405001)(575784001)(2656002)(106356001)(19627595001)(4001540100001)(19580395003)(18206015028)(2900100001)(5001920100001)(54356999)(46102003)(102836002)(16236675004)(76576001)(77096005)(229853001)(17760045003)(15975445007)(189998001)(5001960100002)(68736005)(7099028); DIR:OUT; SFP:1102; SCL:1; SRVR:CO2PR0601MB792; H:CO2PR0601MB792.namprd06.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords;  A:1; MX:1; LANG:en; 
received-spf: None (protection.outlook.com: trilliantinc.com does not designate permitted sender hosts)
Content-Type: multipart/related; boundary="_004_CO2PR0601MB7928943DF4EEF9BECAC5CACFECD0CO2PR0601MB792na_"; type="multipart/alternative"
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-originalarrivaltime: 25 May 2015 20:41:17.0496 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 4f6fbd13-0dfb-4150-85c3-d43260c04309
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO2PR0601MB792
X-OriginatorOrg: trilliantinc.com
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/rnlhm8vu9FaMELiWVRGAUSiFqsk>
Cc: "6tisch@ietf.org" <6tisch@ietf.org>, Core <core@ietf.org>
Subject: [core] YANG hash clashes & full extended name
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 25 May 2015 20:43:55 -0000

--_004_CO2PR0601MB7928943DF4EEF9BECAC5CACFECD0CO2PR0601MB792na_
Content-Type: multipart/alternative;
	boundary="_000_CO2PR0601MB7928943DF4EEF9BECAC5CACFECD0CO2PR0601MB792na_"

--_000_CO2PR0601MB7928943DF4EEF9BECAC5CACFECD0CO2PR0601MB792na_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

I'll like to restart the discussion about YANG hash clashes based on the fo=
llowing comment made by Andy during the 6TiSH call.

Extract from 6TiSCH minute "Andy: in RestCONF, if there are siblings in the=
 tree with the same local name, the server needs to qualify which module is=
 each query coming from. If there is a collision you need the full extended=
 name instead of the local name."

If we take the following YANG modules as  examples, can we use one of the p=
ropose options as the basic for a consensus?

"ModuleA"
  +- "DataNodeA" (hash =3D 228432313 or "NnZm5")
    |
    +- "DataNodeB" (hash =3D 382808449 or "W0TGB", Clash with "DataNodeN")
    |
    +- "DataNodeC" (hash =3D 122044769 or "HRkFh")
    |
    +- "DataNodeD" (hash =3D 844610356 or "yV7s0")
      |
      +- "DataNodeE" (hash =3D 268840462 or "QBi4O", Clash with "DataNodeY"=
)

"ModuleB"
  +- "DataNodeM" (hash =3D 161068239 or "JmbTP")
    |
    +- "DataNodeN" (hash =3D 382808449 or "W0TGB", Clash with "DataNodeB")
    |
    +- "DataNodeO" (hash =3D 583043744 or "iwIqg")
    |
    +- "DataNodeP" (hash =3D 476166369 or "cYbjh")

"ModuleC"
  +- "DataNodeX" (hash =3D 938674383 or "38wjP")
  |
  +- "DataNodeY" (hash =3D 268840462 or "QBi4O", Clash with "DataNodeD")
    |
    +- "DataNodeZ" (hash =3D 727582530 or "rXgdC")

To access data node(s) without clashes (e.g. "DataNodeA"), the exchange may=
 look as follow:

REQ: GET /mg?select("NnZm5")





OPTION #1, fully extended data node(s) returned only for root data nodes wi=
th clashes

Option #2, fully extended data node(s) returned for all root data nodes

Option #3, fully extended data node(s) returned for all data nodes with cla=
shes


RES: 2.05 Content (Content-Format: application/cbor)
{
  228432313 : {
    382808449 : "B",
    122044769 : "C",
    844610356 : {
      268840462 : "E"
   }
  }
}


RES: 2.05 Content (Content-Format: application/cbor)
{
  "ModuleA.NnZm5" : {
    382808449 : "B",
    122044769 : "C",
    844610356 : {
      268840462 : 789
   }
  }
}


RES: 2.05 Content (Content-Format: application/cbor)
{
  228432313 : {
    "ModuleA.W0TGB" : "B",
    122044769 : "C",
    844610356 : {
      "ModuleA.QBi4O" : "E"
   }
  }
}



To access data node(s) with clashes (e.g. "DataNodeB", "DataNodeD", "DataNo=
deN", "DataNodeY"), the exchange may look as follow:

REQ: GET /mg?select("W0TGB,yV7s0,W0TGB,QBi4O")

RES: 4.1x ClashError (Content-Format: application/cbor)
["W0TGB", "QBi4O"]

REQ: GET /mg?select("ModuleA.W0TGB,yV7s0,ModuleB.W0TGB,ModuleC.QBi4O")





OPTION #1, fully extended data node(s) returned only for root data nodes wi=
th clashes

Option #2, fully extended data node(s) returned for all root data nodes

Option #3, fully extended data node(s) returned for all data nodes with cla=
shes


RES: 2.05 Content (Content-Format: application/cbor)
{
  "ModuleA.W0TGB": 123,
  844610356 : {
    844610356 : 789
  },
  "ModuleB.W0TGB" : "abc",
  "ModuleC.QBi4O" : {
    727582530 : "ABC"
  }
}


RES: 2.05 Content (Content-Format: application/cbor)
{
  "ModuleA.W0TGB" : 123,
  "ModuleA.yV7s0" : {
    844610356 : 789
  },
  "ModuleB.W0TGB" : "abc",
  "ModuleC.QBi4O" : {
    727582530 : "ABC"
  }
}


RES: 2.05 Content (Content-Format: application/cbor)
{
  "ModuleA.W0TGB" : 123,
  844610356 : {
    "ModuleA.QBi4O" : 789
  },
  "ModuleB.W0TGB" : "abc",
  "ModuleC.QBi4O" : "def"
}




To access the entire datastore, the exchange may look as follow:

REQ: GET /mg

OPTION #1, fully extended data node(s) returned only for root data nodes wi=
th clashes

Option #2, fully extended data node(s) returned for all root data nodes

Option #3, fully extended data node(s) returned for all data nodes with cla=
shes.
Note: All  root data nodes must be fully extended so CoMI clients can unamb=
iguously identify the returned data.


Don't seem to be practical, the CoMI client won't be able to identify unamb=
iguously the returned data nodes


RES: 2.05 Content (Content-Format: application/cbor)
{
  "ModuleA.NnZm5" : {
    382808449 : "B",
    122044769 : "C",
    844610356 : {
      268840462 : "E"
    }
  },
  "ModuleB.JmbTP" : {
    382808449 : "N",
    583043744 : "O",
    583043744 : "P"
  },
  "ModuleC.38wjP" : {
    268840462: {
      727582530 : "Z"
    }
  }
}


RES: 2.05 Content (Content-Format: application/cbor)
{
  "ModuleA.NnZm5" : {
    382808449 : "B",
    122044769 : "C",
    844610356 : {
      268840462 : "E"
    }
  },
  "ModuleB.JmbTP" : {
    "ModuleB.W0TGB" : "N",
    583043744 : "O",
    583043744 : "P"
  },
  "ModuleC.38wjP" : {
    "ModuleC.QBi4O": {
      727582530 : "Z"
    }
  }
}





[cid:image001.jpg@01C868D8.BF0BB7E0]

Michel Veillette
System Architecture Director
Trilliant Inc.
Tel: 450-375-0556 ext. 237
michel.veillette@trilliantinc.com<mailto:michel.veillette@trilliantinc.com>
www.trilliantinc.com<http://www.trilliantinc.com/>




--_000_CO2PR0601MB7928943DF4EEF9BECAC5CACFECD0CO2PR0601MB792na_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-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=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
<meta name=3D"Generator" content=3D"Microsoft Word 15 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><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;
	mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:#0563C1;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:#954F72;
	text-decoration:underline;}
span.EmailStyle17
	{mso-style-type:personal-compose;
	font-family:"Calibri",sans-serif;
	color:windowtext;}
.MsoChpDefault
	{mso-style-type:export-only;
	font-family:"Calibri",sans-serif;
	mso-fareast-language:EN-US;}
@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=3D"EN-CA" link=3D"#0563C1" vlink=3D"#954F72">
<div class=3D"WordSection1">
<p class=3D"MsoNormal">I&#8217;ll like to restart the discussion about YANG=
 hash clashes based on the following comment made by Andy during the 6TiSH =
call.<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in">Extract from 6TiSCH minut=
e &#8220;Andy: in RestCONF, if there are siblings in the tree with the same=
 local name, the server needs to qualify which module is each query coming =
from. If there is a collision you need the
 full extended name instead of the local name.&#8221;<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">If we take the following YANG modules as &nbsp;examp=
les, can we use one of the propose options as the basic for a consensus?<o:=
p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><span style=3D"font-size:=
9.0pt;font-family:&quot;Courier New&quot;">&quot;ModuleA&quot;<o:p></o:p></=
span></p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><span style=3D"font-size:=
9.0pt;font-family:&quot;Courier New&quot;">&nbsp; &#43;- &quot;DataNodeA&qu=
ot; (hash =3D 228432313 or &quot;NnZm5&quot;)<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><span style=3D"font-size:=
9.0pt;font-family:&quot;Courier New&quot;">&nbsp;&nbsp;&nbsp; |<o:p></o:p><=
/span></p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><span style=3D"font-size:=
9.0pt;font-family:&quot;Courier New&quot;">&nbsp;&nbsp;&nbsp; &#43;- &quot;=
DataNodeB&quot; (hash =3D 382808449 or &quot;W0TGB&quot;, Clash with &quot;=
DataNodeN&quot;)<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><span style=3D"font-size:=
9.0pt;font-family:&quot;Courier New&quot;">&nbsp;&nbsp;&nbsp; |<o:p></o:p><=
/span></p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><span style=3D"font-size:=
9.0pt;font-family:&quot;Courier New&quot;">&nbsp;&nbsp;&nbsp; &#43;- &quot;=
DataNodeC&quot; (hash =3D 122044769 or &quot;HRkFh&quot;)<o:p></o:p></span>=
</p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><span style=3D"font-size:=
9.0pt;font-family:&quot;Courier New&quot;">&nbsp;&nbsp;&nbsp; |<o:p></o:p><=
/span></p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><span style=3D"font-size:=
9.0pt;font-family:&quot;Courier New&quot;">&nbsp;&nbsp;&nbsp; &#43;- &quot;=
DataNodeD&quot; (hash =3D 844610356 or &quot;yV7s0&quot;)<o:p></o:p></span>=
</p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><span style=3D"font-size:=
9.0pt;font-family:&quot;Courier New&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |=
<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><span style=3D"font-size:=
9.0pt;font-family:&quot;Courier New&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &=
#43;- &quot;DataNodeE&quot; (hash =3D 268840462 or &quot;QBi4O&quot;, Clash=
 with &quot;DataNodeY&quot;)<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><span style=3D"font-size:=
9.0pt;font-family:&quot;Courier New&quot;"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><span style=3D"font-size:=
9.0pt;font-family:&quot;Courier New&quot;">&quot;ModuleB&quot;<o:p></o:p></=
span></p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><span style=3D"font-size:=
9.0pt;font-family:&quot;Courier New&quot;">&nbsp; &#43;- &quot;DataNodeM&qu=
ot; (hash =3D 161068239 or &quot;JmbTP&quot;)<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><span style=3D"font-size:=
9.0pt;font-family:&quot;Courier New&quot;">&nbsp;&nbsp;&nbsp; |<o:p></o:p><=
/span></p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><span style=3D"font-size:=
9.0pt;font-family:&quot;Courier New&quot;">&nbsp;&nbsp;&nbsp; &#43;- &quot;=
DataNodeN&quot; (hash =3D 382808449 or &quot;W0TGB&quot;, Clash with &quot;=
DataNodeB&quot;)<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><span style=3D"font-size:=
9.0pt;font-family:&quot;Courier New&quot;">&nbsp;&nbsp;&nbsp; |<o:p></o:p><=
/span></p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><span style=3D"font-size:=
9.0pt;font-family:&quot;Courier New&quot;">&nbsp;&nbsp;&nbsp; &#43;- &quot;=
DataNodeO&quot; (hash =3D 583043744 or &quot;iwIqg&quot;)<o:p></o:p></span>=
</p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><span style=3D"font-size:=
9.0pt;font-family:&quot;Courier New&quot;">&nbsp;&nbsp;&nbsp; |<o:p></o:p><=
/span></p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><span style=3D"font-size:=
9.0pt;font-family:&quot;Courier New&quot;">&nbsp;&nbsp;&nbsp; &#43;- &quot;=
DataNodeP&quot; (hash =3D 476166369 or &quot;cYbjh&quot;)<o:p></o:p></span>=
</p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><span style=3D"font-size:=
9.0pt;font-family:&quot;Courier New&quot;"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><span style=3D"font-size:=
9.0pt;font-family:&quot;Courier New&quot;">&quot;ModuleC&quot;<o:p></o:p></=
span></p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><span style=3D"font-size:=
9.0pt;font-family:&quot;Courier New&quot;">&nbsp; &#43;- &quot;DataNodeX&qu=
ot; (hash =3D 938674383 or &quot;38wjP&quot;)<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><span style=3D"font-size:=
9.0pt;font-family:&quot;Courier New&quot;">&nbsp; |<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><span style=3D"font-size:=
9.0pt;font-family:&quot;Courier New&quot;">&nbsp; &#43;- &quot;DataNodeY&qu=
ot; (hash =3D 268840462 or &quot;QBi4O&quot;, Clash with &quot;DataNodeD&qu=
ot;)<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><span style=3D"font-size:=
9.0pt;font-family:&quot;Courier New&quot;">&nbsp;&nbsp;&nbsp; |<o:p></o:p><=
/span></p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><span style=3D"font-size:=
9.0pt;font-family:&quot;Courier New&quot;">&nbsp;&nbsp;&nbsp; &#43;- &quot;=
DataNodeZ&quot; (hash =3D 727582530 or &quot;rXgdC&quot;)<o:p></o:p></span>=
</p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">To access data node(s) without clashes (e.g. &quot;D=
ataNodeA&quot;), the exchange may look as follow:<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<table class=3D"MsoTableGrid" border=3D"0" cellspacing=3D"0" cellpadding=3D=
"0" style=3D"border-collapse:collapse;border:none">
<tbody>
<tr>
<td width=3D"948" colspan=3D"4" valign=3D"top" style=3D"width:711.0pt;paddi=
ng:0in 5.4pt 0in 5.4pt">
<p class=3D"MsoNormal"><span style=3D"font-size:9.0pt;font-family:&quot;Cou=
rier New&quot;">REQ: GET /mg?select(&quot;NnZm5&quot;)<o:p></o:p></span></p=
>
</td>
</tr>
<tr>
<td width=3D"474" colspan=3D"2" valign=3D"top" style=3D"width:355.5pt;paddi=
ng:0in 5.4pt 0in 5.4pt">
<p class=3D"MsoNormal"><span style=3D"font-size:9.0pt;font-family:&quot;Cou=
rier New&quot;"><o:p>&nbsp;</o:p></span></p>
</td>
<td width=3D"474" colspan=3D"2" valign=3D"top" style=3D"width:355.5pt;paddi=
ng:0in 5.4pt 0in 5.4pt">
<p class=3D"MsoNormal"><span style=3D"font-size:9.0pt;font-family:&quot;Cou=
rier New&quot;"><o:p>&nbsp;</o:p></span></p>
</td>
</tr>
<tr>
<td width=3D"316" valign=3D"top" style=3D"width:237.0pt;border:none;border-=
right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt">
<p class=3D"MsoNormal">OPTION #1, fully extended data node(s) returned only=
 for root data nodes with clashes<o:p></o:p></p>
</td>
<td width=3D"316" colspan=3D"2" valign=3D"top" style=3D"width:237.0pt;borde=
r:none;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt">
<p class=3D"MsoNormal">Option #2, fully extended data node(s) returned for =
all root data nodes
<o:p></o:p></p>
</td>
<td width=3D"316" valign=3D"top" style=3D"width:237.0pt;border:none;padding=
:0in 5.4pt 0in 5.4pt">
<p class=3D"MsoNormal">Option #3, fully extended data node(s) returned for =
all data nodes with clashes<o:p></o:p></p>
</td>
</tr>
<tr>
<td width=3D"316" valign=3D"top" style=3D"width:237.0pt;border:none;border-=
right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt">
<p class=3D"MsoNormal"><span style=3D"font-size:9.0pt;font-family:&quot;Cou=
rier New&quot;"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">RES: 2.05 Content (Content-Format: applicati=
on/cbor)<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:9.0pt;font-family:&quot;Cou=
rier New&quot;">{<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:9.0pt;font-family:&quot;Cou=
rier New&quot;">&nbsp; 228432313 : {<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:9.0pt;font-family:&quot;Cou=
rier New&quot;">&nbsp;&nbsp;&nbsp; 382808449 :
</span><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-family:&quot;Cour=
ier New&quot;">&quot;</span><span style=3D"font-size:9.0pt;font-family:&quo=
t;Courier New&quot;">B</span><span lang=3D"FR-CA" style=3D"font-size:9.0pt;=
font-family:&quot;Courier New&quot;">&quot;</span><span style=3D"font-size:=
9.0pt;font-family:&quot;Courier New&quot;">,<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:9.0pt;font-family:&quot;Cou=
rier New&quot;">&nbsp; &nbsp;&nbsp;122044769 :
</span><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-family:&quot;Cour=
ier New&quot;">&quot;</span><span style=3D"font-size:9.0pt;font-family:&quo=
t;Courier New&quot;">C</span><span lang=3D"FR-CA" style=3D"font-size:9.0pt;=
font-family:&quot;Courier New&quot;">&quot;</span><span style=3D"font-size:=
9.0pt;font-family:&quot;Courier New&quot;">,<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:9.0pt;font-family:&quot;Cou=
rier New&quot;">&nbsp; &nbsp;&nbsp;844610356 : {<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:9.0pt;font-family:&quot;Cou=
rier New&quot;">&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;268840462 :
</span><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-family:&quot;Cour=
ier New&quot;">&quot;</span><span style=3D"font-size:9.0pt;font-family:&quo=
t;Courier New&quot;">E</span><span lang=3D"FR-CA" style=3D"font-size:9.0pt;=
font-family:&quot;Courier New&quot;">&quot;</span><span style=3D"font-size:=
9.0pt;font-family:&quot;Courier New&quot;"><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:9.0pt;font-family:&quot;Cou=
rier New&quot;">&nbsp;&nbsp;&nbsp;}
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:9.0pt;font-family:&quot;Cou=
rier New&quot;">&nbsp;&nbsp;}<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:9.0pt;font-family:&quot;Cou=
rier New&quot;">}<o:p></o:p></span></p>
</td>
<td width=3D"316" colspan=3D"2" valign=3D"top" style=3D"width:237.0pt;borde=
r:none;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt">
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">RES: 2.05 Content (Content-Format: applicati=
on/cbor)<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">{<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">&nbsp; &quot;ModuleA.</span><span style=3D"f=
ont-size:9.0pt;font-family:&quot;Courier New&quot;">NnZm5</span><span lang=
=3D"FR-CA" style=3D"font-size:9.0pt;font-family:&quot;Courier New&quot;">&q=
uot; : {<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">&nbsp;&nbsp;&nbsp; 382808449 : &quot;</span>=
<span style=3D"font-size:9.0pt;font-family:&quot;Courier New&quot;">B</span=
><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-family:&quot;Courier Ne=
w&quot;">&quot;</span><span style=3D"font-size:9.0pt;font-family:&quot;Cour=
ier New&quot;">,</span><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;"><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">&nbsp; &nbsp;&nbsp;122044769 : &quot;</span>=
<span style=3D"font-size:9.0pt;font-family:&quot;Courier New&quot;">C</span=
><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-family:&quot;Courier Ne=
w&quot;">&quot;</span><span style=3D"font-size:9.0pt;font-family:&quot;Cour=
ier New&quot;">,</span><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;"><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">&nbsp; &nbsp;&nbsp;844610356 : {<o:p></o:p><=
/span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;268840462 : 7=
89<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">&nbsp;&nbsp;&nbsp;}
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">&nbsp;&nbsp;}<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">}</span><span lang=3D"FR-CA"><o:p></o:p></sp=
an></p>
</td>
<td width=3D"316" valign=3D"top" style=3D"width:237.0pt;border:none;padding=
:0in 5.4pt 0in 5.4pt">
<p class=3D"MsoNormal"><span lang=3D"FR-CA"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">RES: 2.05 Content (Content-Format: applicati=
on/cbor)<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:9.0pt;font-family:&quot;Cou=
rier New&quot;">{<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:9.0pt;font-family:&quot;Cou=
rier New&quot;">&nbsp; 228432313 : {<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:9.0pt;font-family:&quot;Cou=
rier New&quot;">&nbsp;&nbsp;&nbsp; &quot;ModuleA.W0TGB&quot; : &quot;B&quot=
;,<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:9.0pt;font-family:&quot;Cou=
rier New&quot;">&nbsp; &nbsp;&nbsp;122044769 : &quot;C&quot;,<o:p></o:p></s=
pan></p>
<p class=3D"MsoNormal"><span style=3D"font-size:9.0pt;font-family:&quot;Cou=
rier New&quot;">&nbsp; &nbsp;&nbsp;844610356 : {<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:9.0pt;font-family:&quot;Cou=
rier New&quot;">&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&quot;ModuleA.QBi4O&quot; : =
&quot;E&quot;<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:9.0pt;font-family:&quot;Cou=
rier New&quot;">&nbsp;&nbsp;&nbsp;}<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:9.0pt;font-family:&quot;Cou=
rier New&quot;">&nbsp; }<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:9.0pt;font-family:&quot;Cou=
rier New&quot;">}</span><o:p></o:p></p>
</td>
</tr>
<tr height=3D"0">
<td width=3D"236" style=3D"border:none"></td>
<td width=3D"126" style=3D"border:none"></td>
<td width=3D"110" style=3D"border:none"></td>
<td width=3D"236" style=3D"border:none"></td>
</tr>
</tbody>
</table>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">To access data node(s) with clashes (e.g. &quot;Data=
NodeB&quot;, &quot;DataNodeD&quot;, &quot;DataNodeN&quot;, &quot;DataNodeY&=
quot;), the exchange may look as follow:<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<table class=3D"MsoTableGrid" border=3D"0" cellspacing=3D"0" cellpadding=3D=
"0" style=3D"border-collapse:collapse;border:none">
<tbody>
<tr>
<td width=3D"948" colspan=3D"4" valign=3D"top" style=3D"width:711.0pt;paddi=
ng:0in 5.4pt 0in 5.4pt">
<p class=3D"MsoNormal"><span style=3D"font-size:9.0pt;font-family:&quot;Cou=
rier New&quot;">REQ: GET /mg?select(&quot;W0TGB,yV7s0,W0TGB,QBi4O&quot;)<o:=
p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:9.0pt;font-family:&quot;Cou=
rier New&quot;"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:9.0pt;font-family:&quot;Cou=
rier New&quot;">RES: 4.1x ClashError (Content-Format: application/cbor)<o:p=
></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:9.0pt;font-family:&quot;Cou=
rier New&quot;">[&quot;W0TGB&quot;, &quot;QBi4O&quot;]&nbsp;&nbsp;&nbsp;
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:9.0pt;font-family:&quot;Cou=
rier New&quot;"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:9.0pt;font-family:&quot;Cou=
rier New&quot;">REQ: GET /mg?select(&quot;ModuleA.W0TGB,yV7s0,ModuleB.W0TGB=
,ModuleC.QBi4O&quot;)<o:p></o:p></span></p>
</td>
</tr>
<tr>
<td width=3D"474" colspan=3D"2" valign=3D"top" style=3D"width:355.5pt;paddi=
ng:0in 5.4pt 0in 5.4pt">
<p class=3D"MsoNormal"><span style=3D"font-size:9.0pt;font-family:&quot;Cou=
rier New&quot;"><o:p>&nbsp;</o:p></span></p>
</td>
<td width=3D"474" colspan=3D"2" valign=3D"top" style=3D"width:355.5pt;paddi=
ng:0in 5.4pt 0in 5.4pt">
<p class=3D"MsoNormal"><span style=3D"font-size:9.0pt;font-family:&quot;Cou=
rier New&quot;"><o:p>&nbsp;</o:p></span></p>
</td>
</tr>
<tr>
<td width=3D"316" valign=3D"top" style=3D"width:237.0pt;border:none;border-=
right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt">
<p class=3D"MsoNormal">OPTION #1, fully extended data node(s) returned only=
 for root data nodes with clashes<o:p></o:p></p>
</td>
<td width=3D"316" colspan=3D"2" valign=3D"top" style=3D"width:237.0pt;borde=
r:none;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt">
<p class=3D"MsoNormal">Option #2, fully extended data node(s) returned for =
all root data nodes
<o:p></o:p></p>
</td>
<td width=3D"316" valign=3D"top" style=3D"width:237.0pt;border:none;padding=
:0in 5.4pt 0in 5.4pt">
<p class=3D"MsoNormal">Option #3, fully extended data node(s) returned for =
all data nodes with clashes<o:p></o:p></p>
</td>
</tr>
<tr>
<td width=3D"316" valign=3D"top" style=3D"width:237.0pt;border:none;border-=
right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt">
<p class=3D"MsoNormal"><span style=3D"font-size:9.0pt;font-family:&quot;Cou=
rier New&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">RES: 2.05 Content (Content-Format: applicati=
on/cbor)<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">&nbsp; &quot;ModuleA.W0TGB&quot;: 123,<o:p><=
/o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">&nbsp; 844610356 : {<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">&nbsp;&nbsp;&nbsp; 844610356 : 789<o:p></o:p=
></span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">&nbsp; },<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">&nbsp; &quot;ModuleB.W0TGB&quot; : &quot;abc=
&quot;,<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">&nbsp; &quot;ModuleC.QBi4O&quot; : {<o:p></o=
:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">&nbsp;&nbsp;&nbsp; 727582530&nbsp;: &quot;AB=
C&quot;<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">&nbsp; }<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">}<o:p></o:p></span></p>
</td>
<td width=3D"316" colspan=3D"2" valign=3D"top" style=3D"width:237.0pt;borde=
r:none;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt">
<p class=3D"MsoNormal"><span lang=3D"FR-CA"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">RES: 2.05 Content (Content-Format: applicati=
on/cbor)<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">&nbsp; &quot;ModuleA.W0TGB&quot; : 123,<o:p>=
</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">&nbsp; &quot;ModuleA.yV7s0&quot; : {<o:p></o=
:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">&nbsp;&nbsp;&nbsp; 844610356 : 789<o:p></o:p=
></span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">&nbsp; },<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">&nbsp; &quot;ModuleB.W0TGB&quot; : &quot;abc=
&quot;,<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">&nbsp; &quot;ModuleC.QBi4O&quot; : {<o:p></o=
:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">&nbsp;&nbsp;&nbsp; 727582530&nbsp;: &quot;AB=
C&quot;<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">&nbsp; }<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">}</span><span lang=3D"FR-CA"><o:p></o:p></sp=
an></p>
</td>
<td width=3D"316" valign=3D"top" style=3D"width:237.0pt;border:none;padding=
:0in 5.4pt 0in 5.4pt">
<p class=3D"MsoNormal"><span lang=3D"FR-CA"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">RES: 2.05 Content (Content-Format: applicati=
on/cbor)<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">&nbsp; &quot;ModuleA.W0TGB&quot; : 123,<o:p>=
</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">&nbsp; 844610356 : {<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">&nbsp;&nbsp;&nbsp; &quot;ModuleA.QBi4O&quot;=
 : 789<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">&nbsp; },<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">&nbsp; &quot;ModuleB.W0TGB&quot; : &quot;abc=
&quot;,<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">&nbsp;
</span><span style=3D"font-size:9.0pt;font-family:&quot;Courier New&quot;">=
&quot;ModuleC.QBi4O&quot; : &quot;def&quot;<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:9.0pt;font-family:&quot;Cou=
rier New&quot;">}</span><o:p></o:p></p>
</td>
</tr>
<tr height=3D"0">
<td width=3D"282" style=3D"border:none"></td>
<td width=3D"115" style=3D"border:none"></td>
<td width=3D"96" style=3D"border:none"></td>
<td width=3D"216" style=3D"border:none"></td>
</tr>
</tbody>
</table>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">To access the entire datastore, the exchange may loo=
k as follow:<o:p></o:p></p>
<p class=3D"MsoNormal"><span style=3D"font-size:9.0pt;font-family:&quot;Cou=
rier New&quot;"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:9.0pt;font-family:&quot;Cou=
rier New&quot;">REQ: GET /mg<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:9.0pt;font-family:&quot;Cou=
rier New&quot;"><o:p>&nbsp;</o:p></span></p>
<table class=3D"MsoTableGrid" border=3D"0" cellspacing=3D"0" cellpadding=3D=
"0" style=3D"border-collapse:collapse;border:none">
<tbody>
<tr>
<td width=3D"316" valign=3D"top" style=3D"width:237.0pt;border:none;border-=
right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt">
<p class=3D"MsoNormal">OPTION #1, fully extended data node(s) returned only=
 for root data nodes with clashes<o:p></o:p></p>
</td>
<td width=3D"316" valign=3D"top" style=3D"width:237.0pt;border:none;border-=
right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt">
<p class=3D"MsoNormal">Option #2, fully extended data node(s) returned for =
all root data nodes
<o:p></o:p></p>
</td>
<td width=3D"316" valign=3D"top" style=3D"width:237.0pt;border:none;padding=
:0in 5.4pt 0in 5.4pt">
<p class=3D"MsoNormal">Option #3, fully extended data node(s) returned for =
all data nodes with clashes.<o:p></o:p></p>
<p class=3D"MsoNormal">Note: All &nbsp;root data nodes must be fully extend=
ed so CoMI clients can unambiguously identify the returned data.<o:p></o:p>=
</p>
</td>
</tr>
<tr>
<td width=3D"316" valign=3D"top" style=3D"width:237.0pt;border:none;border-=
right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt">
<p class=3D"MsoNormal"><span style=3D"font-size:9.0pt;font-family:&quot;Cou=
rier New&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:9.0pt;font-family:&quot;Cou=
rier New&quot;">Don&#8217;t seem to be practical, the CoMI client won&#8217=
;t be able to identify unambiguously the returned data nodes<o:p></o:p></sp=
an></p>
</td>
<td width=3D"316" valign=3D"top" style=3D"width:237.0pt;border:none;border-=
right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt">
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">RES: 2.05 Content (Content-Format: applicati=
on/cbor)<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">{<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">&nbsp; &quot;ModuleA.NnZm5&quot; : {<o:p></o=
:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">&nbsp;&nbsp;&nbsp; 382808449 : &quot;</span>=
<span style=3D"font-size:9.0pt;font-family:&quot;Courier New&quot;">B</span=
><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-family:&quot;Courier Ne=
w&quot;">&quot;</span><span style=3D"font-size:9.0pt;font-family:&quot;Cour=
ier New&quot;">,</span><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;"><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">&nbsp;&nbsp;&nbsp; 122044769 : &quot;</span>=
<span style=3D"font-size:9.0pt;font-family:&quot;Courier New&quot;">C</span=
><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-family:&quot;Courier Ne=
w&quot;">&quot;</span><span style=3D"font-size:9.0pt;font-family:&quot;Cour=
ier New&quot;">,</span><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;"><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">&nbsp;&nbsp;&nbsp; 844610356 : {<o:p></o:p><=
/span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 268840462 : &=
quot;</span><span style=3D"font-size:9.0pt;font-family:&quot;Courier New&qu=
ot;">E</span><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-family:&quo=
t;Courier New&quot;">&quot;<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">&nbsp; },<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">&nbsp; &quot;ModuleB.JmbTP&quot; : {<o:p></o=
:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">&nbsp;&nbsp;&nbsp; 382808449 : &quot;</span>=
<span style=3D"font-size:9.0pt;font-family:&quot;Courier New&quot;">N</span=
><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-family:&quot;Courier Ne=
w&quot;">&quot;</span><span style=3D"font-size:9.0pt;font-family:&quot;Cour=
ier New&quot;">,</span><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;"><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">&nbsp;&nbsp;&nbsp; 583043744 : &quot;</span>=
<span style=3D"font-size:9.0pt;font-family:&quot;Courier New&quot;">O</span=
><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-family:&quot;Courier Ne=
w&quot;">&quot;</span><span style=3D"font-size:9.0pt;font-family:&quot;Cour=
ier New&quot;">,</span><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;"><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">&nbsp;&nbsp;&nbsp; 583043744 : &quot;</span>=
<span style=3D"font-size:9.0pt;font-family:&quot;Courier New&quot;">P</span=
><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-family:&quot;Courier Ne=
w&quot;">&quot;<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">&nbsp; },<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">&nbsp; &quot;ModuleC.38wjP&quot; : {<o:p></o=
:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">&nbsp;&nbsp;&nbsp; 268840462: {<o:p></o:p></=
span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 727582530 : &=
quot;</span><span style=3D"font-size:9.0pt;font-family:&quot;Courier New&qu=
ot;">Z</span><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-family:&quo=
t;Courier New&quot;">&quot;<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">&nbsp; }<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">}</span><span lang=3D"FR-CA"><o:p></o:p></sp=
an></p>
</td>
<td width=3D"316" valign=3D"top" style=3D"width:237.0pt;border:none;padding=
:0in 5.4pt 0in 5.4pt">
<p class=3D"MsoNormal"><span style=3D"font-size:9.0pt;font-family:&quot;Cou=
rier New&quot;"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">RES: 2.05 Content (Content-Format: applicati=
on/cbor)<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">{<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">&nbsp; &quot;ModuleA.NnZm5&quot; : {<o:p></o=
:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">&nbsp;&nbsp;&nbsp; 382808449 : &quot;</span>=
<span style=3D"font-size:9.0pt;font-family:&quot;Courier New&quot;">B</span=
><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-family:&quot;Courier Ne=
w&quot;">&quot;</span><span style=3D"font-size:9.0pt;font-family:&quot;Cour=
ier New&quot;">,</span><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;"><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">&nbsp;&nbsp;&nbsp; 122044769 : &quot;</span>=
<span style=3D"font-size:9.0pt;font-family:&quot;Courier New&quot;">C</span=
><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-family:&quot;Courier Ne=
w&quot;">&quot;</span><span style=3D"font-size:9.0pt;font-family:&quot;Cour=
ier New&quot;">,</span><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;"><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">&nbsp;&nbsp;&nbsp; 844610356 : {<o:p></o:p><=
/span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 268840462 : &=
quot;</span><span style=3D"font-size:9.0pt;font-family:&quot;Courier New&qu=
ot;">E</span><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-family:&quo=
t;Courier New&quot;">&quot;<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">&nbsp; },<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">&nbsp; &quot;ModuleB.JmbTP&quot; : {<o:p></o=
:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:9.0pt;font-family:&quot;Cou=
rier New&quot;">&nbsp;&nbsp;&nbsp; &quot;ModuleB.W0TGB&quot; : &quot;N&quot=
;,<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:9.0pt;font-family:&quot;Cou=
rier New&quot;">&nbsp;&nbsp;&nbsp; 583043744 : &quot;O&quot;,<o:p></o:p></s=
pan></p>
<p class=3D"MsoNormal"><span style=3D"font-size:9.0pt;font-family:&quot;Cou=
rier New&quot;">&nbsp;&nbsp;&nbsp; 583043744 : &quot;P&quot;<o:p></o:p></sp=
an></p>
<p class=3D"MsoNormal"><span style=3D"font-size:9.0pt;font-family:&quot;Cou=
rier New&quot;">&nbsp; </span>
<span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-family:&quot;Courier New=
&quot;">},<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">&nbsp; &quot;ModuleC.38wjP&quot; : {<o:p></o=
:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">&nbsp;&nbsp;&nbsp; &quot;ModuleC.QBi4O&quot;=
: {<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 727582530 : &=
quot;Z&quot;<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">&nbsp; }<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"FR-CA" style=3D"font-size:9.0pt;font-f=
amily:&quot;Courier New&quot;">}</span><o:p></o:p></p>
</td>
</tr>
</tbody>
</table>
<p class=3D"MsoNormal"><span style=3D"font-size:9.0pt;font-family:&quot;Cou=
rier New&quot;"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<table class=3D"MsoNormalTable" border=3D"0" cellspacing=3D"0" cellpadding=
=3D"0" width=3D"717" style=3D"width:537.75pt;border-collapse:collapse">
<tbody>
<tr style=3D"height:49.05pt">
<td width=3D"137" style=3D"width:103.1pt;border:none;border-right:solid win=
dowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt;height:49.05pt">
<p class=3D"MsoNormal"><span style=3D"mso-fareast-language:EN-CA"><img widt=
h=3D"120" height=3D"22" id=3D"Picture_x0020_2" src=3D"cid:image001.jpg@01D0=
96F6.D3DCF9A0" alt=3D"cid:image001.jpg@01C868D8.BF0BB7E0"><o:p></o:p></span=
></p>
</td>
<td width=3D"580" valign=3D"top" style=3D"width:434.65pt;padding:0in 5.4pt =
0in 5.4pt;height:49.05pt">
<p class=3D"MsoNormal" style=3D"margin-left:8.1pt"><span style=3D"font-size=
:9.0pt;font-family:&quot;Arial&quot;,sans-serif;mso-fareast-language:EN-CA"=
>Michel Veillette<br>
System Architecture Director</span><span style=3D"mso-fareast-language:EN-C=
A"><o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:8.1pt"><span style=3D"font-size=
:9.0pt;font-family:&quot;Arial&quot;,sans-serif;mso-fareast-language:EN-CA"=
>Trilliant Inc.<br>
Tel: 450-375-0556 ext. 237<br>
<a href=3D"mailto:michel.veillette@trilliantinc.com"><span style=3D"color:#=
0563C1">michel.veillette@trilliantinc.com</span></a><o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:8.1pt"><span style=3D"mso-farea=
st-language:EN-CA"><a href=3D"http://www.trilliantinc.com/"><span style=3D"=
font-size:9.0pt;font-family:&quot;Arial&quot;,sans-serif;color:blue">www.tr=
illiantinc.com</span></a></span><span style=3D"font-size:9.0pt;font-family:=
&quot;Arial&quot;,sans-serif;mso-fareast-language:EN-CA">
 &nbsp; </span><span style=3D"mso-fareast-language:EN-CA"><o:p></o:p></span=
></p>
</td>
</tr>
</tbody>
</table>
<p class=3D"MsoNormal"><span style=3D"mso-fareast-language:EN-CA"><o:p>&nbs=
p;</o:p></span></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
</body>
</html>

--_000_CO2PR0601MB7928943DF4EEF9BECAC5CACFECD0CO2PR0601MB792na_--

--_004_CO2PR0601MB7928943DF4EEF9BECAC5CACFECD0CO2PR0601MB792na_
Content-Type: image/jpeg; name="image001.jpg"
Content-Description: image001.jpg
Content-Disposition: inline; filename="image001.jpg"; size=2532;
	creation-date="Mon, 25 May 2015 20:41:16 GMT";
	modification-date="Mon, 25 May 2015 20:41:16 GMT"
Content-ID: <image001.jpg@01D096F6.D3DCF9A0>
Content-Transfer-Encoding: base64

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
mutdiv0i88rVfrpe4PyYhak5RbkrOP/Z

--_004_CO2PR0601MB7928943DF4EEF9BECAC5CACFECD0CO2PR0601MB792na_--


From nobody Tue May 26 07:50:36 2015
Return-Path: <trac+core@trac.tools.ietf.org>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id A9A051B2F54 for <core@ietfa.amsl.com>; Tue, 26 May 2015 07:50:33 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.91
X-Spam-Level: 
X-Spam-Status: No, score=-1.91 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, T_RP_MATCHES_RCVD=-0.01] autolearn=unavailable
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 hpMzeVVadQUI for <core@ietfa.amsl.com>; Tue, 26 May 2015 07:50:32 -0700 (PDT)
Received: from zinfandel.tools.ietf.org (zinfandel.tools.ietf.org [IPv6:2001:1890:123a::1:2a]) (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 A15251B2F60 for <core@ietf.org>; Tue, 26 May 2015 07:50:31 -0700 (PDT)
Received: from localhost ([::1]:43408 helo=zinfandel.tools.ietf.org) by zinfandel.tools.ietf.org with esmtp (Exim 4.82_1-5b7a7c0-XX) (envelope-from <trac+core@trac.tools.ietf.org>) id 1YxGBX-0001aS-GR; Tue, 26 May 2015 07:50:27 -0700
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
From: "core issue tracker" <trac+core@zinfandel.tools.ietf.org>
X-Trac-Version: 0.12.3
Precedence: bulk
Auto-Submitted: auto-generated
X-Mailer: Trac 0.12.3, by Edgewall Software
To: draft-ietf-core-http-mapping@tools.ietf.org, esko.dijk@philips.com
X-Trac-Project: core
Date: Tue, 26 May 2015 14:50:27 -0000
X-URL: http://tools.ietf.org/core/
X-Trac-Ticket-URL: http://trac.tools.ietf.org/wg/core/trac/ticket/378#comment:1
Message-ID: <075.7fa20a29873f001aada502cc78b4a5b5@trac.tools.ietf.org>
References: <060.8dbee8da557bd66776e1a11a4082e087@trac.tools.ietf.org>
X-Trac-Ticket-ID: 378
In-Reply-To: <060.8dbee8da557bd66776e1a11a4082e087@trac.tools.ietf.org>
X-SA-Exim-Connect-IP: ::1
X-SA-Exim-Rcpt-To: draft-ietf-core-http-mapping@tools.ietf.org, esko.dijk@philips.com, core@ietf.org
X-SA-Exim-Mail-From: trac+core@trac.tools.ietf.org
X-SA-Exim-Scanned: No (on zinfandel.tools.ietf.org); SAEximRunCond expanded to false
Resent-To: draft-ietf-core-http-mapping@ietf.org
Resent-Message-Id: <20150526145031.A15251B2F60@ietfa.amsl.com>
Resent-Date: Tue, 26 May 2015 07:50:31 -0700 (PDT)
Resent-From: trac+core@trac.tools.ietf.org
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/wYF6e9nf8gdUmijYNU5nzEcEhZs>
Cc: core@ietf.org
Subject: Re: [core] #378 (http-mapping): Include ref to automatic media type mapping update mechanism
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Reply-To: trac+core@zinfandel.tools.ietf.org
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 26 May 2015 14:50:33 -0000

#378: Include ref to automatic media type mapping update mechanism


Comment (by esko.dijk@philips.com):

 Reference text will be inserted but not with a link to a new I-D. (There
 is none yet.)

 Proposed text:
  Finally, in the future, it would be useful to have an automatic
  method to auto-assign CoAP content format numbers to any new HTTP
  media type registry (and vice-versa).  Then, for example, if an HC
  proxy encounters a (new) unknown HTTP content format, it could simply
  query via a web API to find the matching CoAP content format.  No
  such mechanism exists today but it would be a worthwhile topic to
  investigate in the future.

-- 
-------------------------+-------------------------------------------------
 Reporter:               |       Owner:  draft-ietf-core-http-
  esko.dijk@philips.com  |  mapping@tools.ietf.org
     Type:  protocol     |      Status:  new
  enhancement            |   Milestone:
 Priority:  minor        |     Version:
Component:  http-        |  Resolution:
  mapping                |
 Severity:  -            |
 Keywords:               |
-------------------------+-------------------------------------------------

Ticket URL: <http://trac.tools.ietf.org/wg/core/trac/ticket/378#comment:1>
core <http://tools.ietf.org/core/>


From nobody Wed May 27 06:53:06 2015
Return-Path: <hannes.tschofenig@gmx.net>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E9C6D1ACF59 for <core@ietfa.amsl.com>; Wed, 27 May 2015 06:53:04 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.011
X-Spam-Level: 
X-Spam-Status: No, score=-0.011 tagged_above=-999 required=5 tests=[BAYES_20=-0.001, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] autolearn=ham
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 oqig_y75RIRP for <core@ietfa.amsl.com>; Wed, 27 May 2015 06:53:03 -0700 (PDT)
Received: from mout.gmx.net (mout.gmx.net [212.227.15.18]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A8F5A1AD366 for <core@ietf.org>; Wed, 27 May 2015 06:53:02 -0700 (PDT)
Received: from [192.168.131.131] ([80.92.115.230]) by mail.gmx.com (mrgmx002) with ESMTPSA (Nemesis) id 0MBFgr-1YnSsT0m5l-00ADTC; Wed, 27 May 2015 15:53:00 +0200
Message-ID: <5565CC3A.3010706@gmx.net>
Date: Wed, 27 May 2015 15:52:58 +0200
From: Hannes Tschofenig <hannes.tschofenig@gmx.net>
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0
MIME-Version: 1.0
To: Carles Gomez Montenegro <carlesgo@entel.upc.edu>,  "core@ietf.org WG" <core@ietf.org>
References: <519d673dc27a80d3cf2a7c2f19cd5bbc.squirrel@webmail.entel.upc.edu>
In-Reply-To: <519d673dc27a80d3cf2a7c2f19cd5bbc.squirrel@webmail.entel.upc.edu>
OpenPGP: id=4D776BC9
Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="IKTQdgnOEghLAr31IrA4a84QUwP5T2m7M"
X-Provags-ID: V03:K0:xnTFRw+DsOzf1FRPb6dFjKJ/YrqgLjDbqUudGbUopJRCYX7o2Bb s0VCihzEkTEULVnyVM79coTNMZCfKFIoN2VfuPUp/iKOZOFJOvq7iwaq8R0detFw546BRC4 mlphVz0u+TXfW2pvZPY+x7xyCmHn4Nsh9g/MJMvng/HzdzVpPiV47RCjuWf13nmY+X9/+Ol wE3sIXqqjbcEMICXsGC/g==
X-UI-Out-Filterresults: notjunk:1;
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/6LGbnqDViqibwndA0XxFDNFX30s>
Subject: Re: [core] [Fwd: Congestion control (was Re: draft-tschofenig-core-coap-tcp-tls-03)]
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 27 May 2015 13:53:05 -0000

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--IKTQdgnOEghLAr31IrA4a84QUwP5T2m7M
Content-Type: text/plain; charset=windows-1252
Content-Transfer-Encoding: quoted-printable

Hi Carles,

thanks for taking a look at the document.

I changed the text in the introduction that talks about congestion
control to

"
   As an additional usage scenario, some environments benefit from the
   congestion control capabilities provided by TCP.  Note that there is
   ongoing work to add more sophisticated congestion control to CoAP as
   well, see [I-D.bormann-core-cocoa].
"

I hope that works for you.

Answers to your questions are below:


On 05/05/2015 06:29 PM, Carles Gomez Montenegro wrote:
> Hi Hannes,
>=20
> I am resending since you probably did not receive this e-mail (which wa=
s
> also sent to the CoRE WG list). I got a "mail delivery error" message
> indicating that your mailbox storage had been exceeded.
>=20
> Best regards,
>=20
> Carles
>=20
>=20
> ---------------------------- Original Message -------------------------=
---
> Subject: [core] Congestion control (was Re:
> draft-tschofenig-core-coap-tcp-tls-03)
> From:    "Carles Gomez Montenegro" <carlesgo@entel.upc.edu>
> Date:    Fri, May 1, 2015 7:36 pm
> To:      "Hannes Tschofenig" <hannes.tschofenig@gmx.net>
> Cc:      "Ilker Demirkol" <ilker.demirkol@entel.upc.edu>
>          "August Betzler" <august.betzler@googlemail.com>
>          "core@ietf.org WG" <core@ietf.org>
> -----------------------------------------------------------------------=
---
>=20
> Hi Hannes,
>=20
> I have a comment and a question on draft-tschofenig-core-coap-tcp-tls-0=
3,
> related with congestion control.
>=20
> Comment
> *******
>=20
> I am particularly concerned with the following paragraph:
>=20
>    As an additional usage scenario, some environments benefit from the
>    more advanced congestion control and flow control capabilities
>    provided by TCP.  While there is ongoing work to add more
>    sophisticated congestion control to CoAP, see
>    [I-D.bormann-core-cocoa], it is still far less efficient than
>    functionality provided by TCP.        ^^^^^^^^^^^^^^^^^^
>=20
> In its current form, the last sentence states in absolute terms that Co=
CoA
> is "far less efficient" than TCP congestion control, whereas the
> performance results we (the CoCoA authors) obtained in experiments
> (presented e.g. in the CoRE WG meeting in Honolulu and in the ICCRG
> meeting in Dallas) indicate just the opposite, at least in the scenario=
s
> we considered.
>=20
> TCP congestion control is of course great for many environments, and it=

> may indeed be a better choice for back-end communications in a cloud
> infrastructure. However, in constrained node networks (CNNs), CoCoA see=
ms
> to work better than TCP RTO algorithms (e.g. Linux or Peak-Hopper), whi=
ch
> is reasonable since it has been specifically designed and tuned
> considering CNN characteristics. In fact, Linux and Peak-Hopper
> underperform even default CoAP in some scenarios.
>=20
> (Note: in our work we have just considered NSTART =3D 1, since the CoRE=
 WG
> feedback has so far been that there have not been use cases for NSTART =
>
> 1.)
>=20
> So I think the aforementioned paragraph should be modified accordingly.=

>=20
>=20
> Question
> ********
>=20
> Is CoAP over TCP expected to run in constrained devices (e.g. due to th=
e
> NAT traversal issue described in your draft) ?

Yes.

>=20
> If the answer is yes, which RFC 7228 class(es) of devices are expected =
to
> run CoAP over TCP ?

That's difficult to say since it largely depends on what "stuff" you put
on an IoT device overall.

>=20
> I think it would be good to clarify these aspects in the draft.
>=20

Ciao
Hannes

> Thanks!
>=20
> Carles Gomez
>=20
>=20
>=20
>=20
>> Hi all,
>>
>> I have just submitted -03 of the CoAP TCP document:
>> http://tools.ietf.org/html/draft-tschofenig-core-coap-tcp-tls-03
>>
>> I updated the introduction to include the additional use cases discuss=
ed
>> at the CORE WG session at IETF#92. Version -02 already contained some
>> text about the requested use cases but I extended the text and shorted=

>> the introduction.
>>
>> I believe that this document is ready for a call for adoption by the W=
G
>> chairs.
>>
>> Ciao
>> Hannes
>>
>> _______________________________________________
>> core mailing list
>> core@ietf.org
>> https://www.ietf.org/mailman/listinfo/core
>>
>=20
>=20
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core
>=20
>=20


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

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
Comment: GPGTools - http://gpgtools.org

iQEcBAEBCgAGBQJVZcw6AAoJEGhJURNOOiAtbo0H/25dzQ/HoaS/sb+RWXjPxvHo
AaBsFWlqlQW+zx4ZPk0hy0OryYyL0X03b0FBOnxIHpKTrv+3ZAx9Yt1oTSSuKM9G
k6c4N8xbiFjH3s5yh//iJ16lWfA+c7zvliXLYTe+gSf8EhjnbzuiTtPkxLFLKKzr
sGPcbxg9DC0ughX7hOhb4c4fQ08+NrQSN8L978vM1G4VJDOHOsV8X2G/H+1n/i2q
k3aF5WAem2cjS8smBarXQi9cSPffLpqRxr3otcikzRtRIWxZeaqBL7ArOmnSPM3e
1i3Kp2zRPgj2V8B211W14ETSxjCEe9SAuFaJ0xTD+yqs6B4j+XbkiAUdWRk3iAk=
=T/89
-----END PGP SIGNATURE-----

--IKTQdgnOEghLAr31IrA4a84QUwP5T2m7M--


From nobody Thu May 28 12:34:51 2015
Return-Path: <wojkord@tzi.de>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 7F0A61A8797 for <core@ietfa.amsl.com>; Thu, 28 May 2015 12:34:50 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.35
X-Spam-Level: 
X-Spam-Status: No, score=0.35 tagged_above=-999 required=5 tests=[BAYES_40=-0.001, HELO_EQ_DE=0.35, HTML_MESSAGE=0.001] autolearn=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 vmFe-d710Ta6 for <core@ietfa.amsl.com>; Thu, 28 May 2015 12:34:48 -0700 (PDT)
Received: from mailhost.informatik.uni-bremen.de (mailhost.informatik.uni-bremen.de [IPv6:2001:638:708:30c9::12]) (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 6F1B51A70FE for <core@ietf.org>; Thu, 28 May 2015 12:34:48 -0700 (PDT)
X-Virus-Scanned: amavisd-new at informatik.uni-bremen.de
Received: from submithost.informatik.uni-bremen.de (submithost.informatik.uni-bremen.de [IPv6:2001:638:708:30c9::b]) by mailhost.informatik.uni-bremen.de (8.14.5/8.14.5) with ESMTP id t4SJYjA2002658 for <core@ietf.org>; Thu, 28 May 2015 21:34:45 +0200 (CEST)
Received: from wojteks-mbp.fritz.box (p5DCCC6E5.dip0.t-ipconnect.de [93.204.198.229]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by submithost.informatik.uni-bremen.de (Postfix) with ESMTPSA id 3lyK3n37SFz8xy5 for <core@ietf.org>; Thu, 28 May 2015 21:34:45 +0200 (CEST)
From: Wojtek Kordylewski <wojkord@tzi.de>
Content-Type: multipart/alternative; boundary="Apple-Mail=_07427B4C-2F30-44D4-A061-AFFA90D5C5B8"
Message-Id: <73A12A86-27E4-4956-9389-19036F906C05@tzi.de>
Date: Thu, 28 May 2015 21:34:44 +0200
To: core@ietf.org
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2098\))
X-Mailer: Apple Mail (2.2098)
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/WavK9yhulT3BeYkJ1QZ3655-HR4>
Subject: [core] Swift CoAP implementation
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 28 May 2015 19:34:50 -0000

--Apple-Mail=_07427B4C-2F30-44D4-A061-AFFA90D5C5B8
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8

Dear CoRE-mail-list subscribers,

two years ago I published a CoAP implementation for Clients in =
Objective-C (iCoAP) which was part of my bachelor thesis I wrote at the =
university of Bremen under supervision of Carsten Bormann. As some of =
you might remember, I already introduced it in this mailing-list.

This time I want to call your attention to another CoAP implementation =
which is now =E2=80=94 among other things =E2=80=94 a part of my master =
thesis, again, under supervision of Carsten Bormann.=20
Its name is SwiftCoAP and, as the name might tell, it is an =
implementation in Apples new programming language Swift. It implements a =
CoAP-Client, which already excels the iCoAP library in terms of =
functionality. A server implementation will follow soon.

You can find it on github: https://github.com/stuffrabbit/SwiftCoAP=20

The library is still in development and therefore feedback is highly =
appreciated.

Thanks in advance!

Kind regards

Wojtek Kordylewski=

--Apple-Mail=_07427B4C-2F30-44D4-A061-AFFA90D5C5B8
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; -webkit-line-break: after-white-space;" =
class=3D"">Dear CoRE-mail-list subscribers,<div class=3D""><br =
class=3D""></div><div class=3D"">two years ago I published a CoAP =
implementation for Clients in Objective-C (iCoAP) which was part of my =
bachelor thesis I wrote at the university of Bremen under supervision of =
Carsten Bormann. As some of you might remember, I already introduced it =
in this mailing-list.</div><div class=3D""><br class=3D""></div><div =
class=3D"">This time I want to call your attention to another CoAP =
implementation which is now =E2=80=94 among other things =E2=80=94 a =
part of my master thesis, again, under supervision of Carsten =
Bormann.&nbsp;</div><div class=3D"">Its name is <b =
class=3D"">SwiftCoAP</b>&nbsp;and, as the name might tell, it is an =
implementation in Apples new programming language Swift. It implements a =
CoAP-Client, which already excels the iCoAP library in terms of =
functionality. A server implementation will follow soon.</div><div =
class=3D""><br class=3D""></div><div class=3D"">You can find it on =
github: <a href=3D"https://github.com/stuffrabbit/SwiftCoAP" =
class=3D"">https://github.com/stuffrabbit/SwiftCoAP</a>&nbsp;</div><div =
class=3D""><br class=3D""></div><div class=3D"">The library is still in =
development and therefore feedback is highly appreciated.</div><div =
class=3D""><br class=3D""></div><div class=3D"">Thanks in =
advance!</div><div class=3D""><br class=3D""></div><div class=3D"">Kind =
regards</div><div class=3D""><br class=3D""></div><div class=3D"">Wojtek =
Kordylewski</div></body></html>=

--Apple-Mail=_07427B4C-2F30-44D4-A061-AFFA90D5C5B8--

