From owner-pim@catarina.usc.edu Fri Jun 1 09:51:22 2001 Received: from catarina.usc.edu ([128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id JAA08344 for ; Fri, 1 Jun 2001 09:51:20 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id GAA37790 for pim-list; Fri, 1 Jun 2001 06:32:32 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136]) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id GAA37785 for ; Fri, 1 Jun 2001 06:32:30 -0700 (PDT) Received: from WS0005.indiatimes.com ([203.199.93.15]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id GAA02616 for ; Fri, 1 Jun 2001 06:32:29 -0700 (PDT) Received: from 192.168.57.15 (a3 [192.168.57.23]) by WS0005.indiatimes.com (8.9.3/8.9.3) with SMTP id SAA16043 for ; Fri, 1 Jun 2001 18:40:45 +0530 From: "mistkhan" Message-Id: <200106011310.SAA16043@WS0005.indiatimes.com> To: Reply-To: "mistkhan" Subject: PIM-SM gated implementation Date: Fri, 01 Jun 2001 18:33:17 +0530 X-URL: http://indiatimes.com Content-Type: multipart/alternative; boundary="=_MAILER_ATTACH_BOUNDARY1_200161518331727553146" MIME-Version: 1.0 Sender: owner-pim@catarina.usc.edu Precedence: bulk --=_MAILER_ATTACH_BOUNDARY1_200161518331727553146 Content-Type: text/plain; charset=us-ascii Hi I am learner in PIM. I am going through gated implementation of PIM-SM ver 1.52. I am not able to get the implementation details.Does anyone has the implementation information. Can anyone help me in this regard. regards Aman Get Your Private, Free E-mail from Indiatimes at http://email.indiatimes.com --=_MAILER_ATTACH_BOUNDARY1_200161518331727553146 Content-Type: text/html; charset=us-ascii

Hi

I am learner in PIM. I am going through gated implementation of PIM-SM ver 1.52. I am not able to get the implementation details.Does anyone has the implementation information. Can anyone help me in this regard.

 

regards

Aman


Get Your Private, Free E-mail from Indiatimes at http://email.indiatimes.com --=_MAILER_ATTACH_BOUNDARY1_200161518331727553146-- From owner-pim@catarina.usc.edu Fri Jun 1 21:35:35 2001 Received: from catarina.usc.edu ([128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id VAA22037 for ; Fri, 1 Jun 2001 21:35:34 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id SAA40564 for pim-list; Fri, 1 Jun 2001 18:14:37 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136] (may be forged)) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id SAA40559 for ; Fri, 1 Jun 2001 18:14:35 -0700 (PDT) From: m_satya123@123india.com Received: from c009.snv.cp.net (c009-h005.c009.snv.cp.net [209.228.34.118]) by usc.edu (8.9.3.1/8.9.3/usc) with SMTP id SAA00788 for ; Fri, 1 Jun 2001 18:14:35 -0700 (PDT) Received: (cpmta 29581 invoked from network); 1 Jun 2001 18:12:03 -0700 Date: 1 Jun 2001 18:12:03 -0700 Message-ID: <20010602011203.29580.cpmta@c009.snv.cp.net> X-Sent: 2 Jun 2001 01:12:03 GMT Received: from [129.192.64.166] by mail.123india.com with HTTP; 01 Jun 2001 18:12:03 PDT Content-Type: text/plain Content-Disposition: inline Mime-Version: 1.0 To: pim@catarina.usc.edu X-Mailer: Web Mail 3.9.2.3 X-Sent-From: m_satya123@123india.com Subject: RPF calculation Sender: owner-pim@catarina.usc.edu Precedence: bulk Hi, I have a basic question regarding RPF calculation in PIM-SM. I have only Unicast Routing Table to calculate RPF as we don't support any multicast protocols. PIM-SM is enabled on few interfaces. If the interface used by the unicast routing table to forward unicast packets to the RP/Source is a non PIM enabled interface; should I send the join/prune message on the lower cost interface among the PIM enabled interfaces to the RP/Source. Please, someone give advice even if this is not bound to Protocol Specification. Thanks satya ______________________________________________________ 123India.com - India's Premier Portal Get your Free Email Account at http://www.123india.com From owner-pim@catarina.usc.edu Fri Jun 1 21:52:51 2001 Received: from catarina.usc.edu ([128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id VAA22213 for ; Fri, 1 Jun 2001 21:52:50 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id SAA40719 for pim-list; Fri, 1 Jun 2001 18:41:26 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136] (may be forged)) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id SAA40714 for ; Fri, 1 Jun 2001 18:41:24 -0700 (PDT) Received: from hotmail.com (law2-oe23.hotmail.com [216.32.180.16]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id SAA00414 for ; Fri, 1 Jun 2001 18:41:09 -0700 (PDT) Received: from mail pickup service by hotmail.com with Microsoft SMTPSVC; Fri, 1 Jun 2001 18:39:52 -0700 X-Originating-IP: [47.81.113.146] From: "Nadeem Lughmani" To: Subject: Unicast Src address in Assert message. Date: Fri, 1 Jun 2001 18:43:25 -0700 MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_0051_01C0EACA.BDA5D8B0" X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 5.00.2314.1300 X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2314.1300 Message-ID: X-OriginalArrivalTime: 02 Jun 2001 01:39:52.0280 (UTC) FILETIME=[EB151D80:01C0EB04] Sender: owner-pim@catarina.usc.edu Precedence: bulk This is a multi-part message in MIME format. ------=_NextPart_000_0051_01C0EACA.BDA5D8B0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Hi All, Does any one know what should we put in the Unicast Source Address in = PIM Assert packet when R bit is 1.[ (*,G) Assert] 1) Should we put the unicast source address which caused the Assert to = happen.? 2) Should we put the rp address.? 3)Should we put the 0.0.0.0 to represent * Help is greatly appreciated. -Nadeem ------=_NextPart_000_0051_01C0EACA.BDA5D8B0 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable
Hi All,
Does any one know what should we put in = the Unicast=20 Source Address in PIM Assert packet when R bit is 1.[ (*,G) = Assert]
1) Should we put the unicast source = address which=20 caused the Assert to happen.?
2) Should we put the rp = address.?
3)Should we put the 0.0.0.0 to = represent=20 *
 
Help is greatly = appreciated.
 
-Nadeem
------=_NextPart_000_0051_01C0EACA.BDA5D8B0-- From owner-pim@catarina.usc.edu Fri Jun 1 22:24:33 2001 Received: from catarina.usc.edu ([128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id WAA22770 for ; Fri, 1 Jun 2001 22:24:32 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id TAA40959 for pim-list; Fri, 1 Jun 2001 19:05:21 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136] (may be forged)) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id TAA40954 for ; Fri, 1 Jun 2001 19:05:20 -0700 (PDT) Received: from zrc2s03g.nortelnetworks.com ([47.103.122.66]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id TAA14662 for ; Fri, 1 Jun 2001 19:05:21 -0700 (PDT) Received: from smtprch1.nortel.com (erchg0j.us.nortel.com [47.113.64.103]) by zrc2s03g.nortelnetworks.com (8.9.3+Sun/8.9.1) with ESMTP id VAA08343 for ; Fri, 1 Jun 2001 21:02:06 -0500 (CDT) Received: from zsc4c000.us.nortel.com by smtprch1.nortel.com; Fri, 1 Jun 2001 21:01:29 -0500 Received: by zsc4c000.us.nortel.com with Internet Mail Service (5.5.2653.19) id ; Fri, 1 Jun 2001 19:00:48 -0700 Message-ID: <5D630265EF50D311ABB60008C7917DB604594049@zsc4c004.us.nortel.com> From: "Sundeep Singatwaria" To: "'Nadeem Lughmani'" , pim Subject: RE: Unicast Src address in Assert message. Date: Fri, 1 Jun 2001 19:00:47 -0700 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2653.19) Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C0EB07.D74CFFE0" Sender: owner-pim@catarina.usc.edu Precedence: bulk This message is in MIME format. Since your mail reader does not understand this format, some or all of this message may not be legible. ------_=_NextPart_001_01C0EB07.D74CFFE0 Content-Type: text/plain; charset="ISO-8859-1" I don't think it matters as long as the RP bit is set. sundeep -----Original Message----- From: Nadeem Lughmani [mailto:nlughmani@hotmail.com] Sent: Friday, June 01, 2001 6:43 PM To: pim Subject: Unicast Src address in Assert message. Hi All, Does any one know what should we put in the Unicast Source Address in PIM Assert packet when R bit is 1.[ (*,G) Assert] 1) Should we put the unicast source address which caused the Assert to happen.? 2) Should we put the rp address.? 3)Should we put the 0.0.0.0 to represent * Help is greatly appreciated. -Nadeem ------_=_NextPart_001_01C0EB07.D74CFFE0 Content-Type: text/html; charset="ISO-8859-1"
I don't think it matters as long as the RP bit is set.
 
sundeep
-----Original Message-----
From: Nadeem Lughmani [mailto:nlughmani@hotmail.com]
Sent: Friday, June 01, 2001 6:43 PM
To: pim
Subject: Unicast Src address in Assert message.

Hi All,
Does any one know what should we put in the Unicast Source Address in PIM Assert packet when R bit is 1.[ (*,G) Assert]
1) Should we put the unicast source address which caused the Assert to happen.?
2) Should we put the rp address.?
3)Should we put the 0.0.0.0 to represent *
 
Help is greatly appreciated.
 
-Nadeem
------_=_NextPart_001_01C0EB07.D74CFFE0-- From owner-pim@catarina.usc.edu Fri Jun 1 23:28:37 2001 Received: from catarina.usc.edu ([128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id XAA23994 for ; Fri, 1 Jun 2001 23:28:35 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id UAA41549 for pim-list; Fri, 1 Jun 2001 20:11:51 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136] (may be forged)) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id UAA41544 for ; Fri, 1 Jun 2001 20:11:50 -0700 (PDT) Received: from web14408.mail.yahoo.com (web14408.mail.yahoo.com [216.136.174.78]) by usc.edu (8.9.3.1/8.9.3/usc) with SMTP id UAA06856 for ; Fri, 1 Jun 2001 20:11:51 -0700 (PDT) Message-ID: <20010602031114.53535.qmail@web14408.mail.yahoo.com> Received: from [129.192.64.166] by web14408.mail.yahoo.com; Fri, 01 Jun 2001 20:11:14 PDT Date: Fri, 1 Jun 2001 20:11:14 -0700 (PDT) From: krishna bellamkonda Subject: Re: RPF calculation To: m_satya123@123india.com, pim@catarina.usc.edu, fenner@research.att.com, mjh@aciri.org, holbrook@cisco.com, kouvelas@cisco.com Cc: hsandick@nortelnetworks.com In-Reply-To: <20010602011203.29580.cpmta@c009.snv.cp.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Sender: owner-pim@catarina.usc.edu Precedence: bulk Hi, I think we should skip the Join message at this instance and you should not send Join on other interface. I could able to locate this in the RFC 2362 section 3.2.1 "Join/Prune messages are only sent if the RPF neighbor is a PIM neighbor". This means you should calculate the RPF neighbor and then check for a PIM nehbor on that interface and we should not do in the reverse order. But, i haven't found this in the new PIM-SM draft and i am not sure whether any new changes made in the new draft regarding this. Krishna. --- m_satya123@123india.com wrote: > Hi, > I have a basic question regarding RPF calculation > in PIM-SM. > I have only Unicast Routing Table to calculate RPF > as we don't support any multicast protocols. PIM-SM > is enabled on few interfaces. > If the interface used by the unicast routing table > to forward unicast packets to the RP/Source is a non > PIM enabled interface; should I send the join/prune > message on the lower cost interface among the PIM > enabled interfaces to the RP/Source. Please, > someone give advice even if this is not bound to > Protocol Specification. > > Thanks > satya > > > ______________________________________________________ > 123India.com - India's Premier Portal > Get your Free Email Account at > http://www.123india.com > > __________________________________________________ Do You Yahoo!? Get personalized email addresses from Yahoo! Mail - only $35 a year! http://personal.mail.yahoo.com/ From owner-pim@catarina.usc.edu Sat Jun 2 01:46:15 2001 Received: from catarina.usc.edu ([128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id BAA27228 for ; Sat, 2 Jun 2001 01:46:14 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id WAA42141 for pim-list; Fri, 1 Jun 2001 22:16:36 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136]) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id WAA42136 for ; Fri, 1 Jun 2001 22:16:35 -0700 (PDT) Received: from hazard.aciri.org (adsl-63-196-11-252.dsl.snfc21.pacbell.net [63.196.11.252]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id WAA07844 for ; Fri, 1 Jun 2001 22:16:36 -0700 (PDT) Received: from hazard.aciri.org (localhost [127.0.0.1]) by hazard.aciri.org (8.11.3/8.11.1) with ESMTP id f525FVo58663; Fri, 1 Jun 2001 22:15:31 -0700 (PDT) (envelope-from mjh@hazard.aciri.org) From: Mark Handley X-Organisation: ACIRI To: m_satya123@123india.com cc: pim@catarina.usc.edu Subject: Re: RPF calculation In-reply-to: Your message of "01 Jun 2001 18:12:03 PDT." <20010602011203.29580.cpmta@c009.snv.cp.net> Date: Fri, 01 Jun 2001 22:15:30 -0700 Message-ID: <58661.991458930@hazard.aciri.org> Sender: owner-pim@catarina.usc.edu Precedence: bulk > I have a basic question regarding RPF calculation in PIM-SM. >I have only Unicast Routing Table to calculate RPF as we don't support any mu >lticast protocols. PIM-SM is enabled on few interfaces. >If the interface used by the unicast routing table to forward unicast packets > to the RP/Source is a non PIM enabled interface; should I send the join/prune > message on the lower cost interface among the PIM enabled interfaces to the R >P/Source. Please, someone give advice even if this is not bound to Protocol >Specification. I think that would be considered a misconfiguration - a PIM domain must be convex with respect to the underlying routing protocol in order to work, and the situation you describe is not convex as far as PIM enabled paths are concerned. There are a number of problems with the solution you describe: - the unicast routing table usually will only have one route to the RP or source, so to get an alternate route you'd need to change your unicast routing implementation. - in some circumstances the only PIM-enabled interface may be the one the packet arrived on. - in general, you rely on unicast routing to avoid join-loops. If some routers use the unicast routes and some use different routes, you risk creating a loop. So I think the correct situation is to not send the join upstream, and to report this as a configuration error. Cheers, Mark From owner-pim@catarina.usc.edu Sat Jun 2 02:45:53 2001 Received: from catarina.usc.edu ([128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id CAA08266 for ; Sat, 2 Jun 2001 02:45:53 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id WAA42141 for pim-list; Fri, 1 Jun 2001 22:16:36 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136]) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id WAA42136 for ; Fri, 1 Jun 2001 22:16:35 -0700 (PDT) Received: from hazard.aciri.org (adsl-63-196-11-252.dsl.snfc21.pacbell.net [63.196.11.252]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id WAA07844 for ; Fri, 1 Jun 2001 22:16:36 -0700 (PDT) Received: from hazard.aciri.org (localhost [127.0.0.1]) by hazard.aciri.org (8.11.3/8.11.1) with ESMTP id f525FVo58663; Fri, 1 Jun 2001 22:15:31 -0700 (PDT) (envelope-from mjh@hazard.aciri.org) From: Mark Handley X-Organisation: ACIRI To: m_satya123@123india.com cc: pim@catarina.usc.edu Subject: Re: RPF calculation In-reply-to: Your message of "01 Jun 2001 18:12:03 PDT." <20010602011203.29580.cpmta@c009.snv.cp.net> Date: Fri, 01 Jun 2001 22:15:30 -0700 Message-ID: <58661.991458930@hazard.aciri.org> Sender: owner-pim@catarina.usc.edu Precedence: bulk > I have a basic question regarding RPF calculation in PIM-SM. >I have only Unicast Routing Table to calculate RPF as we don't support any mu >lticast protocols. PIM-SM is enabled on few interfaces. >If the interface used by the unicast routing table to forward unicast packets > to the RP/Source is a non PIM enabled interface; should I send the join/prune > message on the lower cost interface among the PIM enabled interfaces to the R >P/Source. Please, someone give advice even if this is not bound to Protocol >Specification. I think that would be considered a misconfiguration - a PIM domain must be convex with respect to the underlying routing protocol in order to work, and the situation you describe is not convex as far as PIM enabled paths are concerned. There are a number of problems with the solution you describe: - the unicast routing table usually will only have one route to the RP or source, so to get an alternate route you'd need to change your unicast routing implementation. - in some circumstances the only PIM-enabled interface may be the one the packet arrived on. - in general, you rely on unicast routing to avoid join-loops. If some routers use the unicast routes and some use different routes, you risk creating a loop. So I think the correct situation is to not send the join upstream, and to report this as a configuration error. Cheers, Mark From owner-pim@catarina.usc.edu Mon Jun 4 00:46:00 2001 Received: from catarina.usc.edu ([128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id AAA15972 for ; Mon, 4 Jun 2001 00:45:59 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id VAA51652 for pim-list; Sun, 3 Jun 2001 21:28:12 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136] (may be forged)) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id VAA51647 for ; Sun, 3 Jun 2001 21:28:09 -0700 (PDT) Received: from wiprom2mx1.wipro.com (wiprom2mx1.wipro.com [203.197.164.41]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id VAA04722 for ; Sun, 3 Jun 2001 21:28:08 -0700 (PDT) Received: from m2vwall2.wipro.com (m2vwall2.wipro.com [164.164.27.52]) by wiprom2mx1.wipro.com (8.11.3/8.11.3) with SMTP id f54A2PZ29565 for ; Mon, 4 Jun 2001 10:02:26 GMT Received: from wipro.com ([192.168.91.138]) by helium.mail.wipro.com (Netscape Messaging Server 4.15) with ESMTP id GEE1EV00.TAH; Mon, 4 Jun 2001 09:50:55 +0530 Message-ID: <3B1B0E83.68B28756@wipro.com> Date: Mon, 04 Jun 2001 09:58:52 +0530 From: "Radhakrishna Singuru" Organization: Wipro, Global R&D X-Mailer: Mozilla 4.7 [en] (Win98; I) X-Accept-Language: en MIME-Version: 1.0 To: mistkhan CC: pim@catarina.usc.edu Subject: Re: PIM-SM gated implementation References: <200106011310.SAA16043@WS0005.indiatimes.com> Content-Type: multipart/mixed; boundary="------------InterScan_NT_MIME_Boundary" Sender: owner-pim@catarina.usc.edu Precedence: bulk --------------InterScan_NT_MIME_Boundary Content-Type: multipart/alternative; boundary="------------49D2ACBE9E7859AC6E7E76AF" --------------49D2ACBE9E7859AC6E7E76AF Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Check for "draft-helmy-pim-sm-implem-00.ps" on the net. thanks radha mistkhan wrote: > Hi > > I am learner in PIM. I am going through gated implementation of PIM-SM > ver 1.52. I am not able to get the implementation details.Does anyone > has the implementation information. Can anyone help me in this regard. > > > > > regards > > Aman > ----------------------------------------------------------------------- > Get Your Private, Free E-mail from Indiatimes at > http://email.indiatimes.com --------------49D2ACBE9E7859AC6E7E76AF Content-Type: text/html; charset=us-ascii Content-Transfer-Encoding: 7bit Check for "draft-helmy-pim-sm-implem-00.ps" on the net.
thanks
radha

mistkhan wrote:

Hi

I am learner in PIM. I am going through gated implementation of PIM-SM ver 1.52. I am not able to get the implementation details.Does anyone has the implementation information. Can anyone help me in this regard.
 
 

regards

Aman


Get Your Private, Free E-mail from Indiatimes at http://email.indiatimes.com

  --------------49D2ACBE9E7859AC6E7E76AF-- --------------InterScan_NT_MIME_Boundary-- From owner-pim@catarina.usc.edu Mon Jun 4 02:28:11 2001 Received: from catarina.usc.edu ([128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id CAA28052 for ; Mon, 4 Jun 2001 02:28:10 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id XAA52076 for pim-list; Sun, 3 Jun 2001 23:08:05 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136] (may be forged)) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id XAA52071 for ; Sun, 3 Jun 2001 23:08:04 -0700 (PDT) Received: from raksha.wipro.com ([203.197.141.34]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id XAA09634 for ; Sun, 3 Jun 2001 23:08:02 -0700 (PDT) Received: from cdc2vwall (cdc2vwall.wipro.com [10.145.0.23]) by raksha.wipro.com (8.9.3/8.9.3) with SMTP id LAA05825 for ; Mon, 4 Jun 2001 11:34:45 +0530 (IST) Received: from manib ([10.145.2.200]) by arabhi.mail.wipro.com (Netscape Messaging Server 4.15) with SMTP id GEE67S00.JRG; Mon, 4 Jun 2001 11:34:40 +0530 Message-ID: <002e01c0ecbc$244ff300$c802910a@wipro.com> From: "Mani Manoharan Balaraman" To: "Radhakrishna Singuru" , "mistkhan" Cc: References: <200106011310.SAA16043@WS0005.indiatimes.com> <3B1B0E83.68B28756@wipro.com> Subject: Re: PIM-SM gated implementation Date: Mon, 4 Jun 2001 11:33:56 +0530 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------InterScan_NT_MIME_Boundary" X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 5.00.2615.200 X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2615.200 Sender: owner-pim@catarina.usc.edu Precedence: bulk This is a multi-part message in MIME format. --------------InterScan_NT_MIME_Boundary Content-Type: multipart/alternative; boundary="----=_NextPart_000_002B_01C0ECEA.3DD5D460" ------=_NextPart_000_002B_01C0ECEA.3DD5D460 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable It's in the http://catarina.usc.edu/pim/~ahelmy i suppose reg mani ----- Original Message -----=20 From: Radhakrishna Singuru=20 To: mistkhan=20 Cc: pim@catarina.usc.edu=20 Sent: Monday, June 04, 2001 9:58 AM Subject: Re: PIM-SM gated implementation Check for "draft-helmy-pim-sm-implem-00.ps" on the net.=20 thanks=20 radha=20 mistkhan wrote:=20 Hi=20 I am learner in PIM. I am going through gated implementation of = PIM-SM ver 1.52. I am not able to get the implementation details.Does = anyone has the implementation information. Can anyone help me in this = regard.=20 =20 =20 regards=20 Aman=20 -------------------------------------------------------------------------= --- Get Your Private, Free E-mail from Indiatimes at = http://email.indiatimes.com =20 ------=_NextPart_000_002B_01C0ECEA.3DD5D460 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable
It's in the
http://catarina.usc.edu/pim/= ~ahelmy=20 i suppose
reg
mani
----- Original Message -----
From:=20 Radhakrishna Singuru
To: mistkhan
Sent: Monday, June 04, 2001 = 9:58 AM
Subject: Re: PIM-SM gated=20 implementation

Check for "draft-helmy-pim-sm-implem-00.ps" on the net. =
thanks
radha=20

mistkhan wrote:=20

Hi=20

I am learner in PIM. I am going through gated implementation of = PIM-SM=20 ver 1.52. I am not able to get the implementation details.Does = anyone has=20 the implementation information. Can anyone help me in this regard.=20
 
 =20

regards=20

Aman


Get Your Private, Free E-mail = from=20 Indiatimes at http://email.indiatimes.com

 =20 ------=_NextPart_000_002B_01C0ECEA.3DD5D460-- --------------InterScan_NT_MIME_Boundary-- From owner-pim@catarina.usc.edu Mon Jun 4 02:51:28 2001 Received: from catarina.usc.edu ([128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id CAA29613 for ; Mon, 4 Jun 2001 02:51:27 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id XAA52210 for pim-list; Sun, 3 Jun 2001 23:36:30 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136]) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id XAA52205 for ; Sun, 3 Jun 2001 23:36:29 -0700 (PDT) Received: from wiprom2mx1.wipro.com (wiprom2mx1.wipro.com [203.197.164.41]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id XAA21526 for ; Sun, 3 Jun 2001 23:36:26 -0700 (PDT) Received: from m2vwall2.wipro.com (m2vwall2.wipro.com [164.164.27.52]) by wiprom2mx1.wipro.com (8.11.3/8.11.3) with SMTP id f54C9IZ07391 for ; Mon, 4 Jun 2001 12:09:18 GMT Received: from wipro.com ([127.0.0.1]) by sarovar.mail.wipro.com (Netscape Messaging Server 4.15) with ESMTP id GEE7P300.ESY for ; Mon, 4 Jun 2001 12:06:39 +0530 From: "Jyotheeswara Rao Kurma" To: pim@catarina.usc.edu Message-ID: <601bb5ebf1.5ebf1601bb@wipro.com> Date: Mon, 04 Jun 2001 11:36:38 +0500 X-Mailer: Netscape Webmail MIME-Version: 1.0 Content-Language: en Subject: R bit in Assert message X-Accept-Language: en Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: 7bit Sender: owner-pim@catarina.usc.edu Precedence: bulk Content-Transfer-Encoding: 7bit Hi All : How is an Assert message classified as being (*,G ) or (S,G ) assert , is it based on the combination of group address, and source address fields or based on R bit. If it is based on group address and source address fileds , how exacltly is this done ? In any case how exactly this is done. Thanks for any info, Jyotheesh -------------------------------------------------------------------- Every moment is a golden one for him who has the vision to recognize it as such. -- Henry Miller From owner-pim@catarina.usc.edu Mon Jun 4 06:26:22 2001 Received: from catarina.usc.edu ([128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id GAA02504 for ; Mon, 4 Jun 2001 06:26:21 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id CAA53594 for pim-list; Mon, 4 Jun 2001 02:59:42 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136]) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id CAA53589 for ; Mon, 4 Jun 2001 02:59:41 -0700 (PDT) Received: from wiprom2mx1.wipro.com (wiprom2mx1.wipro.com [203.197.164.41]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id CAA17143 for ; Mon, 4 Jun 2001 02:59:39 -0700 (PDT) Received: from m2vwall2.wipro.com (m2vwall2.wipro.com [164.164.27.52]) by wiprom2mx1.wipro.com (8.11.3/8.11.3) with SMTP id f54FXFZ21359 for ; Mon, 4 Jun 2001 15:33:15 GMT Received: from ram ([192.168.91.135]) by helium.mail.wipro.com (Netscape Messaging Server 4.15) with SMTP id GEEGKL00.VC9; Mon, 4 Jun 2001 15:18:21 +0530 From: "K.P.Ramamurthy" To: Cc: Subject: How to disable DR election on an interface ? Date: Mon, 4 Jun 2001 15:17:04 +0530 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook IMO, Build 9.0.2416 (9.0.2911.0) Importance: Normal X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2919.6700 Sender: owner-pim@catarina.usc.edu Precedence: bulk Content-Transfer-Encoding: 7bit Hi, Every PIM router is potentially capable of becoming a DR on any of the multicast capable interfaces present in the router, since the router participates in the DR election implicitly on all interfaces. Is it mandatory that a PIM router MUST be *capable* of becoming the DR on any given interface if its priority/address permits? is it possible to disable DR capabilities on any interface ?? can this be achieved by NOT sending PIM-HELLO packets on the interface that does not desire DR capabilities ??. best regards and thanks Ramamurthy.K.P From owner-pim@catarina.usc.edu Mon Jun 4 06:29:00 2001 Received: from catarina.usc.edu ([128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id GAA02528 for ; Mon, 4 Jun 2001 06:28:54 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id DAA53685 for pim-list; Mon, 4 Jun 2001 03:13:48 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136]) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id DAA53680 for ; Mon, 4 Jun 2001 03:13:47 -0700 (PDT) Received: from wiprom2mx1.wipro.com (wiprom2mx1.wipro.com [203.197.164.41]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id DAA19609 for ; Mon, 4 Jun 2001 03:13:45 -0700 (PDT) Received: from m2vwall2.wipro.com (m2vwall2.wipro.com [164.164.27.52]) by wiprom2mx1.wipro.com (8.11.3/8.11.3) with SMTP id f54FkjZ23606 for ; Mon, 4 Jun 2001 15:46:45 GMT Received: from ram ([192.168.91.135]) by helium.mail.wipro.com (Netscape Messaging Server 4.15) with SMTP id GEEH4F00.PBD for ; Mon, 4 Jun 2001 15:30:15 +0530 From: "K.P.Ramamurthy" To: Subject: Graceful shutdown of BSR / C-RP ? Date: Mon, 4 Jun 2001 15:28:54 +0530 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook IMO, Build 9.0.2416 (9.0.2911.0) Importance: Normal X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2919.6700 Sender: owner-pim@catarina.usc.edu Precedence: bulk Content-Transfer-Encoding: 7bit Hi , when an interface goes down or changes IP address, a hello message with a *ZERO* HOLDTIME is sent immediately, thus enabling the PIM neighbors on that interface to remove this neighbor immediately, > is such a thing possible when a Candidate-RP is being shutdown, i.e. can the candidate-RP send a C-RP-ADV message with *ZERO* hold time to indicate its going down immediately to the BSR of the domain. > on similar lines how can a Elected BSR which is being shutdown indicate proactively before BS_TIMEOUT to the other candidate BSRs of the domain. Sending a BSM with very low priority will not achieve the desired result, any other means available ? best regards and thanks K.P.Ramamurthy From owner-pim@catarina.usc.edu Mon Jun 4 11:45:14 2001 Received: from catarina.usc.edu ([128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id LAA10644 for ; Mon, 4 Jun 2001 11:45:14 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id IAA54954 for pim-list; Mon, 4 Jun 2001 08:30:48 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136] (may be forged)) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id IAA54949 for ; Mon, 4 Jun 2001 08:30:47 -0700 (PDT) Received: from hazard.aciri.org (adsl-63-196-11-252.dsl.snfc21.pacbell.net [63.196.11.252]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id IAA17175 for ; Mon, 4 Jun 2001 08:30:46 -0700 (PDT) Received: from hazard.aciri.org (localhost [127.0.0.1]) by hazard.aciri.org (8.11.3/8.11.1) with ESMTP id f54FUHo80590; Mon, 4 Jun 2001 08:30:17 -0700 (PDT) (envelope-from mjh@hazard.aciri.org) From: Mark Handley X-Organisation: ACIRI To: "K.P.Ramamurthy" cc: pim@catarina.usc.edu Subject: Re: How to disable DR election on an interface ? In-reply-to: Your message of "Mon, 04 Jun 2001 15:17:04 +0530." Date: Mon, 04 Jun 2001 08:30:17 -0700 Message-ID: <80588.991668617@hazard.aciri.org> Sender: owner-pim@catarina.usc.edu Precedence: bulk > Every PIM router is potentially capable of becoming a DR on any of the >multicast capable interfaces present in the router, since the router >participates >in the DR election implicitly on all interfaces. Is it mandatory that a PIM >router >MUST be *capable* of becoming the DR on any given interface if its >priority/address permits? is it possible to disable DR capabilities on any >interface ?? I think that would most likely result in traffic being blackholed in such a wide range of cases that I'd strongly advise against such a configuration option. - Mark From owner-pim@catarina.usc.edu Mon Jun 4 11:55:10 2001 Received: from catarina.usc.edu ([128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id LAA10939 for ; Mon, 4 Jun 2001 11:55:09 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id IAA54964 for pim-list; Mon, 4 Jun 2001 08:32:31 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136]) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id IAA54959 for ; Mon, 4 Jun 2001 08:32:30 -0700 (PDT) Received: from hazard.aciri.org (adsl-63-196-11-252.dsl.snfc21.pacbell.net [63.196.11.252]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id IAA18022 for ; Mon, 4 Jun 2001 08:32:29 -0700 (PDT) Received: from hazard.aciri.org (localhost [127.0.0.1]) by hazard.aciri.org (8.11.3/8.11.1) with ESMTP id f54FVho80601; Mon, 4 Jun 2001 08:31:43 -0700 (PDT) (envelope-from mjh@hazard.aciri.org) From: Mark Handley X-Organisation: ACIRI To: "K.P.Ramamurthy" cc: pim@catarina.usc.edu Subject: Re: Graceful shutdown of BSR / C-RP ? In-reply-to: Your message of "Mon, 04 Jun 2001 15:28:54 +0530." Date: Mon, 04 Jun 2001 08:31:43 -0700 Message-ID: <80599.991668703@hazard.aciri.org> Sender: owner-pim@catarina.usc.edu Precedence: bulk > when an interface goes down or changes IP address, a hello message with a >*ZERO* HOLDTIME is sent immediately, thus enabling the PIM neighbors on that >interface to remove this neighbor immediately, > > > is such a thing possible when a Candidate-RP is being >shutdown, i.e. can the candidate-RP send a C-RP-ADV message with *ZERO* hold >time >to indicate its going down immediately to the BSR of the domain. > > > on similar lines how can a Elected BSR which is being >shutdown indicate proactively before BS_TIMEOUT to the other candidate BSRs >of the >domain. Sending a BSM with very low priority will not achieve the desired >result, >any other means available ? I think this is in the new version of the BSR spec (not yet released). It may even have been in the last version - we discussed it in the meeting at the last IETF. - Mark From owner-pim@catarina.usc.edu Mon Jun 4 12:16:14 2001 Received: from catarina.usc.edu ([128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id MAA11594 for ; Mon, 4 Jun 2001 12:16:14 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id JAA55221 for pim-list; Mon, 4 Jun 2001 09:01:41 -0700 (PDT) Received: from usc.edu (root@usc.edu [128.125.253.136]) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id JAA55216 for ; Mon, 4 Jun 2001 09:01:40 -0700 (PDT) Received: from sj-msg-core-2.cisco.com (sj-msg-core-2.cisco.com [171.69.24.11]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id JAA05523 for ; Mon, 4 Jun 2001 09:01:39 -0700 (PDT) Received: from kouvelas-u10.cisco.com (kouvelas-u10.cisco.com [171.71.228.114]) by sj-msg-core-2.cisco.com (8.11.3/8.9.1) with ESMTP id f54FvBU07591; Mon, 4 Jun 2001 08:57:12 -0700 (PDT) Received: from localhost (kouvelas@localhost) by kouvelas-u10.cisco.com (8.8.8-Cisco List Logging/CISCO.WS.1.2) with ESMTP id IAA27058; Mon, 4 Jun 2001 08:57:07 -0700 (PDT) Message-Id: <200106041557.IAA27058@kouvelas-u10.cisco.com> X-Authentication-Warning: kouvelas-u10.cisco.com: kouvelas owned process doing -bs To: "Jyotheeswara Rao Kurma" cc: pim@catarina.usc.edu Subject: Re: R bit in Assert message In-reply-to: Your message of "Mon, 04 Jun 2001 11:36:38 +0500." <601bb5ebf1.5ebf1601bb@wipro.com> Date: Mon, 04 Jun 2001 08:57:07 -0700 From: Isidor Kouvelas Sender: owner-pim@catarina.usc.edu Precedence: bulk "Jyotheeswara Rao Kurma" writes: >Hi All : > > How is an Assert message classified as being (*,G ) or (S,G ) >assert , is it based on the combination of group address, and source >address fields or based on R bit. If it is based on group address and >source address fileds , how exacltly is this done ? It is based on the R bit setting. The R bit is set for (*,G) asserts. We are in the process of adding a description to the packet format section. thanks I From owner-pim@catarina.usc.edu Mon Jun 4 12:18:39 2001 Received: from catarina.usc.edu ([128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id MAA11699 for ; Mon, 4 Jun 2001 12:18:38 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id IAA55130 for pim-list; Mon, 4 Jun 2001 08:57:04 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136]) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id IAA55125 for ; Mon, 4 Jun 2001 08:57:03 -0700 (PDT) Received: from wiprom2mx1.wipro.com (wiprom2mx1.wipro.com [203.197.164.41]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id IAA02197 for ; Mon, 4 Jun 2001 08:57:01 -0700 (PDT) Received: from m2vwall2.wipro.com (m2vwall2.wipro.com [164.164.27.52]) by wiprom2mx1.wipro.com (8.11.3/8.11.3) with SMTP id f54LV1Z19706 for ; Mon, 4 Jun 2001 21:31:01 GMT Received: from ram ([192.168.91.135]) by helium.mail.wipro.com (Netscape Messaging Server 4.15) with SMTP id GEEQNT00.QE4 for ; Mon, 4 Jun 2001 18:56:17 +0530 From: "K.P.Ramamurthy" To: Subject: displaced fragments of BSM ? Date: Mon, 4 Jun 2001 18:55:00 +0530 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook IMO, Build 9.0.2416 (9.0.2911.0) Importance: Normal X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2919.6700 Sender: owner-pim@catarina.usc.edu Precedence: bulk Content-Transfer-Encoding: 7bit Hi, How is the router expected to process displaced BSM fragments that arrive out of sequence, and interleaved BSM fragments . best regards and thanks Ram From owner-pim@catarina.usc.edu Mon Jun 4 14:46:30 2001 Received: from catarina.usc.edu ([128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id OAA15588 for ; Mon, 4 Jun 2001 14:46:30 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id LAA56567 for pim-list; Mon, 4 Jun 2001 11:32:40 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136]) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id LAA56562 for ; Mon, 4 Jun 2001 11:32:39 -0700 (PDT) Received: from WS0005.indiatimes.com ([203.199.93.15]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id LAA03742 for ; Mon, 4 Jun 2001 11:32:35 -0700 (PDT) Received: from 192.168.57.15 (a3 [192.168.57.23]) by WS0005.indiatimes.com (8.9.3/8.9.3) with SMTP id XAA19533 for ; Mon, 4 Jun 2001 23:40:48 +0530 From: "mistkhan" Message-Id: <200106041810.XAA19533@WS0005.indiatimes.com> To: Reply-To: "mistkhan" Subject: Gated Implementation Date: Mon, 04 Jun 2001 23:33:18 +0530 X-URL: http://indiatimes.com Content-Type: multipart/alternative; boundary="=_MAILER_ATTACH_BOUNDARY1_20016412333181773963288" MIME-Version: 1.0 Sender: owner-pim@catarina.usc.edu Precedence: bulk --=_MAILER_ATTACH_BOUNDARY1_20016412333181773963288 Content-Type: text/plain; charset=us-ascii Hi Anyone have Eddy's Gated 3.5 implementation documentation. Can anyone tell me some information about GateD implementation. Thanking in advance Regards Aman Get Your Private, Free E-mail from Indiatimes at http://email.indiatimes.com --=_MAILER_ATTACH_BOUNDARY1_20016412333181773963288 Content-Type: text/html; charset=us-ascii

Hi

Anyone have Eddy's Gated 3.5 implementation documentation. Can anyone tell me some information about GateD implementation.

Thanking in advance

Regards

Aman

 

 


Get Your Private, Free E-mail from Indiatimes at http://email.indiatimes.com --=_MAILER_ATTACH_BOUNDARY1_20016412333181773963288-- From owner-pim@catarina.usc.edu Mon Jun 4 15:32:24 2001 Received: from catarina.usc.edu ([128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id PAA16246 for ; Mon, 4 Jun 2001 15:32:24 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id MAA56844 for pim-list; Mon, 4 Jun 2001 12:17:08 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136] (may be forged)) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id MAA56839 for ; Mon, 4 Jun 2001 12:17:07 -0700 (PDT) Received: from mail-green.research.att.com (H-135-207-30-103.research.att.com [135.207.30.103]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id MAA09553 for ; Mon, 4 Jun 2001 12:17:01 -0700 (PDT) Received: from alliance.research.att.com (alliance.research.att.com [135.207.26.26]) by mail-green.research.att.com (Postfix) with ESMTP id 60DF91E439; Mon, 4 Jun 2001 15:14:30 -0400 (EDT) Received: from windsor.research.att.com (windsor.research.att.com [135.207.26.46]) by alliance.research.att.com (8.8.7/8.8.7) with ESMTP id PAA20821; Mon, 4 Jun 2001 15:14:29 -0400 (EDT) From: Bill Fenner Received: (from fenner@localhost) by windsor.research.att.com (8.8.8+Sun/8.8.5) id MAA04247; Mon, 4 Jun 2001 12:14:29 -0700 (PDT) Message-Id: <200106041914.MAA04247@windsor.research.att.com> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII To: ramamurthy.pani@wipro.com Subject: Re: How to disable DR election on an interface ? Cc: pim@catarina.usc.edu Date: Mon, 4 Jun 2001 12:14:28 -0700 Versions: dmail (solaris) 2.2g/makemail 2.9a Sender: owner-pim@catarina.usc.edu Precedence: bulk If you don't send HELLO messages, then your upstream neighbor will discard Join/Prune messages from you. I guess this isn't in the spec, but it should be. (General rule: don't send messages to and don't accept messages from people that you don't have a HELLO relationship with). If all routers on the link support DR priority, then advertising a DR priority of zero will cause you to only become the DR if all routers on the link are advertising a DR priority of zero. However, if not all routers support DR priority then the only way you can affect the DR election is by configuring the system with a low IP address. Bill From owner-pim@catarina.usc.edu Mon Jun 4 16:58:03 2001 Received: from catarina.usc.edu ([128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id QAA19234 for ; Mon, 4 Jun 2001 16:58:02 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id NAA57458 for pim-list; Mon, 4 Jun 2001 13:33:07 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136] (may be forged)) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id NAA57453 for ; Mon, 4 Jun 2001 13:33:06 -0700 (PDT) From: rueddy@cisco.com Received: from cisco.com (sj-natpool-220.cisco.com [128.107.248.220]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id NAA06038 for ; Mon, 4 Jun 2001 13:33:03 -0700 (PDT) Received: (from rueddy@localhost) by cisco.com (8.10.1/8.10.1) id f54JgfD01019; Mon, 4 Jun 2001 12:42:41 -0700 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <15131.58545.330805.16444@rueddy-dsl3.cisco.com> Date: Mon, 4 Jun 2001 12:42:41 -0700 (PDT) To: "mistkhan" Cc: Subject: Re: Gated Implementation In-Reply-To: <200106041810.XAA19533@WS0005.indiatimes.com> References: <200106041810.XAA19533@WS0005.indiatimes.com> X-Mailer: VM 6.72 under 21.1 (patch 9) "Canyonlands" XEmacs Lucid Sender: owner-pim@catarina.usc.edu Precedence: bulk Content-Transfer-Encoding: 7bit Yes, i can. The implementation was written to a version of gated (5.0?), that has licencing issues. Some form of it is now being sold/licenced by NextHop, i think. the usc implementation of pim is available, however, it'd have to be ported to some available routing suite. The code is quite old based on rfc2362, more or less. - rusty previously from mistkhan: > Hi > > > Anyone have Eddy's Gated 3.5 implementation documentation. Can anyone tell me some information about GateD implementation. > > > Thanking in advance > > > Regards > > > Aman > From owner-pim@catarina.usc.edu Mon Jun 4 17:05:16 2001 Received: from catarina.usc.edu ([128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id RAA19330 for ; Mon, 4 Jun 2001 17:05:15 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id NAA57614 for pim-list; Mon, 4 Jun 2001 13:52:23 -0700 (PDT) Received: from usc.edu (root@usc.edu [128.125.253.136] (may be forged)) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id NAA57609 for ; Mon, 4 Jun 2001 13:52:22 -0700 (PDT) Received: from dino-pc.procket.com (flowpoint.procket.com [209.140.237.1]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id NAA22224 for ; Mon, 4 Jun 2001 13:52:18 -0700 (PDT) Received: (from dino@localhost) by dino-pc.procket.com (8.9.3/8.9.3) id NAA23675; Mon, 4 Jun 2001 13:50:46 -0700 Date: Mon, 4 Jun 2001 13:50:46 -0700 Message-Id: <200106042050.NAA23675@dino-pc.procket.com> X-Authentication-Warning: dino-pc.procket.com: dino set sender to dino@dino-pc.procket.com using -f From: Dino Farinacci To: fenner@research.att.com CC: ramamurthy.pani@wipro.com, pim@catarina.usc.edu In-reply-to: <200106041914.MAA04247@windsor.research.att.com> (message from Bill Fenner on Mon, 4 Jun 2001 12:14:28 -0700) Subject: Re: How to disable DR election on an interface ? References: <200106041914.MAA04247@windsor.research.att.com> Sender: owner-pim@catarina.usc.edu Precedence: bulk >> If you don't send HELLO messages, then your upstream neighbor will >> discard Join/Prune messages from you. I guess this isn't in the spec, >> but it should be. (General rule: don't send messages to and don't >> accept messages from people that you don't have a HELLO relationship >> with). I can understand not sending Join/Prune mesasges to a router which you haven't received Hello messages from because they may not be a PIM router (unicast/multicast topology incongruence). But why not accept Join/Prune messages from a router that hasn't sent a Hello. Seems overly restrictive. Dino From owner-pim@catarina.usc.edu Mon Jun 4 18:01:32 2001 Received: from catarina.usc.edu ([128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id SAA20135 for ; Mon, 4 Jun 2001 18:01:31 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id OAA58183 for pim-list; Mon, 4 Jun 2001 14:48:27 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136]) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id OAA58178 for ; Mon, 4 Jun 2001 14:48:26 -0700 (PDT) Received: from mail-green.research.att.com (H-135-207-30-103.research.att.com [135.207.30.103]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id OAA09392 for ; Mon, 4 Jun 2001 14:48:23 -0700 (PDT) Received: from alliance.research.att.com (alliance.research.att.com [135.207.26.26]) by mail-green.research.att.com (Postfix) with ESMTP id 84BCF1EB72; Mon, 4 Jun 2001 17:45:51 -0400 (EDT) Received: from windsor.research.att.com (windsor.research.att.com [135.207.26.46]) by alliance.research.att.com (8.8.7/8.8.7) with ESMTP id RAA24453; Mon, 4 Jun 2001 17:45:50 -0400 (EDT) From: Bill Fenner Received: (from fenner@localhost) by windsor.research.att.com (8.8.8+Sun/8.8.5) id OAA06550; Mon, 4 Jun 2001 14:45:50 -0700 (PDT) Message-Id: <200106042145.OAA06550@windsor.research.att.com> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII To: dino@procket.com Subject: Re: How to disable DR election on an interface ? Cc: pim@catarina.usc.edu References: <200106041914.MAA04247@windsor.research.att.com> <200106042050.NAA23675@dino-pc.procket.com> Date: Mon, 4 Jun 2001 14:45:50 -0700 Versions: dmail (solaris) 2.2g/makemail 2.9a Sender: owner-pim@catarina.usc.edu Precedence: bulk > why not > accept Join/Prune messages from a router that hasn't sent a Hello. Because there may be options in the Hello message that need to be consistent (e.g. join/prune override time). e.g. if you're the DR and you hear a Join/Prune from a router with a higher IP address, do you decide that he's the DR? Why or why not? What I'd really like is for the Hello messages to have neighbor lists and ignore a neighbor until you get a Hello message with you in his neighbor list, but that got shot down a long time ago. It's much nicer for debugging purposes for the peering to go down on both ends than to have a mysteriously one-way peering. Bill From owner-pim@catarina.usc.edu Mon Jun 4 18:19:34 2001 Received: from catarina.usc.edu ([128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id SAA20462 for ; Mon, 4 Jun 2001 18:19:33 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id OAA58285 for pim-list; Mon, 4 Jun 2001 14:56:45 -0700 (PDT) Received: from usc.edu (root@usc.edu [128.125.253.136] (may be forged)) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id OAA58280 for ; Mon, 4 Jun 2001 14:56:44 -0700 (PDT) Received: from dino-pc.procket.com (flowpoint.procket.com [209.140.237.1]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id OAA15210 for ; Mon, 4 Jun 2001 14:56:41 -0700 (PDT) Received: (from dino@localhost) by dino-pc.procket.com (8.9.3/8.9.3) id OAA26788; Mon, 4 Jun 2001 14:55:11 -0700 Date: Mon, 4 Jun 2001 14:55:11 -0700 Message-Id: <200106042155.OAA26788@dino-pc.procket.com> X-Authentication-Warning: dino-pc.procket.com: dino set sender to dino@dino-pc.procket.com using -f From: Dino Farinacci To: fenner@research.att.com CC: pim@catarina.usc.edu In-reply-to: <200106042145.OAA06550@windsor.research.att.com> (message from Bill Fenner on Mon, 4 Jun 2001 14:45:50 -0700) Subject: Re: How to disable DR election on an interface ? References: <200106041914.MAA04247@windsor.research.att.com> <200106042050.NAA23675@dino-pc.procket.com> <200106042145.OAA06550@windsor.research.att.com> Sender: owner-pim@catarina.usc.edu Precedence: bulk >> Because there may be options in the Hello message that need to be >> consistent (e.g. join/prune override time). e.g. if you're the DR and >> you hear a Join/Prune from a router with a higher IP address, do you >> decide that he's the DR? Why or why not? According to the current specs, you are DR because you haven't heard a Hello from the joiner. So you should decide nothing. Since there are implementations now that don't require this "Hello-before -accept" behavior, why make it required when there is currently no such consistency option. Dino From owner-pim@catarina.usc.edu Mon Jun 4 18:24:32 2001 Received: from catarina.usc.edu ([128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id SAA20536 for ; Mon, 4 Jun 2001 18:24:31 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id PAA58393 for pim-list; Mon, 4 Jun 2001 15:05:15 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136] (may be forged)) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id PAA58388 for ; Mon, 4 Jun 2001 15:05:14 -0700 (PDT) Received: from mail-green.research.att.com (H-135-207-30-103.research.att.com [135.207.30.103]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id PAA21388 for ; Mon, 4 Jun 2001 15:05:12 -0700 (PDT) Received: from alliance.research.att.com (alliance.research.att.com [135.207.26.26]) by mail-green.research.att.com (Postfix) with ESMTP id ED9451E48C; Mon, 4 Jun 2001 18:02:41 -0400 (EDT) Received: from windsor.research.att.com (windsor.research.att.com [135.207.26.46]) by alliance.research.att.com (8.8.7/8.8.7) with ESMTP id SAA24910; Mon, 4 Jun 2001 18:02:41 -0400 (EDT) From: Bill Fenner Received: (from fenner@localhost) by windsor.research.att.com (8.8.8+Sun/8.8.5) id PAA06824; Mon, 4 Jun 2001 15:02:41 -0700 (PDT) Message-Id: <200106042202.PAA06824@windsor.research.att.com> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII To: dino@procket.com Subject: Re: How to disable DR election on an interface ? Cc: pim@catarina.usc.edu References: <200106041914.MAA04247@windsor.research.att.com> <200106042050.NAA23675@dino-pc.procket.com> <200106042145.OAA06550@windsor.research.att.com> <200106042155.OAA26788@dino-pc.procket.com> Date: Mon, 4 Jun 2001 15:02:40 -0700 Versions: dmail (solaris) 2.2g/makemail 2.9a Sender: owner-pim@catarina.usc.edu Precedence: bulk > Since there are implementations now that don't require this "Hello-before > -accept" behavior, why make it required when there is currently no such > consistency option. Because it's backwards compatible (older implementations are required to send Hellos) and improves consistency. However, it does increase convergence time in the restart case, so it's not a completely obvious tradeoff; it's something we need to think about more. Bill From owner-pim@catarina.usc.edu Mon Jun 4 20:08:20 2001 Received: from catarina.usc.edu ([128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id UAA21824 for ; Mon, 4 Jun 2001 20:08:20 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id QAA59583 for pim-list; Mon, 4 Jun 2001 16:55:51 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136]) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id QAA59578 for ; Mon, 4 Jun 2001 16:55:50 -0700 (PDT) Received: from mail.routerware.com (ppp-64-161-186-197.routerware.com [64.161.186.197]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id QAA22508 for ; Mon, 4 Jun 2001 16:55:46 -0700 (PDT) Received: by NEWMAN with Internet Mail Service (5.5.2650.21) id ; Mon, 4 Jun 2001 17:00:48 -0700 Message-ID: <4F48C7B31A8BD311B1D20090279C34B25BB196@clavin> From: Chris Hall To: "'Bill Fenner'" , dino@procket.com Cc: pim@catarina.usc.edu Subject: RE: How to disable DR election on an interface ? Date: Mon, 4 Jun 2001 16:56:37 -0700 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2650.21) Content-Type: text/plain Sender: owner-pim@catarina.usc.edu Precedence: bulk Which implementations actually reject joinprune messages from neighbors that don't have hello status? thanks Chris -----Original Message----- From: Bill Fenner [mailto:fenner@research.att.com] Sent: Monday, June 04, 2001 2:46 PM To: dino@procket.com Cc: pim@catarina.usc.edu Subject: Re: How to disable DR election on an interface ? > why not > accept Join/Prune messages from a router that hasn't sent a Hello. Because there may be options in the Hello message that need to be consistent (e.g. join/prune override time). e.g. if you're the DR and you hear a Join/Prune from a router with a higher IP address, do you decide that he's the DR? Why or why not? What I'd really like is for the Hello messages to have neighbor lists and ignore a neighbor until you get a Hello message with you in his neighbor list, but that got shot down a long time ago. It's much nicer for debugging purposes for the peering to go down on both ends than to have a mysteriously one-way peering. Bill From owner-pim@catarina.usc.edu Mon Jun 4 22:38:33 2001 Received: from catarina.usc.edu ([128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id WAA25316 for ; Mon, 4 Jun 2001 22:38:32 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id TAA60214 for pim-list; Mon, 4 Jun 2001 19:27:33 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136] (may be forged)) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id TAA60209 for ; Mon, 4 Jun 2001 19:27:32 -0700 (PDT) Received: from red.juniper.net (red.juniper.net [207.17.136.137]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id TAA25616 for ; Mon, 4 Jun 2001 19:27:30 -0700 (PDT) Received: from juniper.net (garnet.juniper.net [172.17.28.17]) by red.juniper.net (8.9.3/8.9.3) with ESMTP id TAA17544; Mon, 4 Jun 2001 19:25:36 -0700 (PDT) Message-Id: <200106050225.TAA17544@red.juniper.net> To: Chris Hall cc: "'Bill Fenner'" , dino@procket.com, pim@catarina.usc.edu, pusateri@juniper.net Subject: Re: How to disable DR election on an interface ? In-Reply-To: Message from Chris Hall of "Mon, 04 Jun 2001 16:56:37 PDT." <4F48C7B31A8BD311B1D20090279C34B25BB196@clavin> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-ID: <33345.991707936.1@juniper.net> Date: Mon, 04 Jun 2001 19:25:36 -0700 From: Tom Pusateri Sender: owner-pim@catarina.usc.edu Precedence: bulk Currently, Juniper ignores joins, prunes, grafts, graft acks, bootstrap messages and asserts from neighbors it hasn't seen a hello from. Tom In message <4F48C7B31A8BD311B1D20090279C34B25BB196@clavin> you write: >Which implementations actually reject joinprune messages from neighbors that >don't have hello status? > >thanks > >Chris > > >-----Original Message----- >From: Bill Fenner [mailto:fenner@research.att.com] >Sent: Monday, June 04, 2001 2:46 PM >To: dino@procket.com >Cc: pim@catarina.usc.edu >Subject: Re: How to disable DR election on an interface ? > > > >> why not >> accept Join/Prune messages from a router that hasn't sent a Hello. > >Because there may be options in the Hello message that need to be >consistent (e.g. join/prune override time). e.g. if you're the DR and >you hear a Join/Prune from a router with a higher IP address, do you >decide that he's the DR? Why or why not? > >What I'd really like is for the Hello messages to have neighbor lists >and ignore a neighbor until you get a Hello message with you in his >neighbor list, but that got shot down a long time ago. It's much nicer >for debugging purposes for the peering to go down on both ends than to >have a mysteriously one-way peering. > > Bill From owner-pim@catarina.usc.edu Tue Jun 5 01:00:48 2001 Received: from catarina.usc.edu ([128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id BAA26981 for ; Tue, 5 Jun 2001 01:00:47 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id VAA60808 for pim-list; Mon, 4 Jun 2001 21:38:07 -0700 (PDT) Received: from usc.edu (root@usc.edu [128.125.253.136] (may be forged)) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id VAA60803 for ; Mon, 4 Jun 2001 21:38:05 -0700 (PDT) Received: from mailhost.iprg.nokia.com (mailhost.iprg.nokia.com [205.226.5.12]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id VAA00767 for ; Mon, 4 Jun 2001 21:38:02 -0700 (PDT) Received: from darkstar.iprg.nokia.com (darkstar.iprg.nokia.com [205.226.5.69]) by mailhost.iprg.nokia.com (8.9.3/8.9.3-GLGS) with ESMTP id VAA05260; Mon, 4 Jun 2001 21:35:40 -0700 (PDT) Received: (from root@localhost) by darkstar.iprg.nokia.com (8.11.0/8.11.0-DARKSTAR) id f554Zef20044; Mon, 4 Jun 2001 21:35:40 -0700 X-mProtect: Mon, 4 Jun 2001 21:35:40 -0700 Nokia Silicon Valley Messaging Protection Received: from bahadur.iprg.nokia.com (205.226.11.43) by darkstar.iprg.nokia.com(P1.5 smtpdyqU965; Mon, 04 Jun 2001 21:35:37 PDT Received: from localhost (bahadur@localhost) by bahadur.iprg.nokia.com (8.8.8/8.6.12) with SMTP id VAA27390; Mon, 4 Jun 2001 21:35:37 -0700 (PDT) X-Authentication-Warning: bahadur.iprg.nokia.com: bahadur owned process doing -bs Date: Mon, 4 Jun 2001 21:35:37 -0700 (PDT) From: Rahul Bahadur To: Chris Hall cc: "'Bill Fenner'" , dino@procket.com, pim@catarina.usc.edu Subject: RE: How to disable DR election on an interface ? In-Reply-To: <4F48C7B31A8BD311B1D20090279C34B25BB196@clavin> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-pim@catarina.usc.edu Precedence: bulk Nokia ignores joinprune messages from neighbors with no hello status. Rahul On Mon, 4 Jun 2001, Chris Hall wrote: > Which implementations actually reject joinprune messages from neighbors that > don't have hello status? > > thanks > > Chris > > > -----Original Message----- > From: Bill Fenner [mailto:fenner@research.att.com] > Sent: Monday, June 04, 2001 2:46 PM > To: dino@procket.com > Cc: pim@catarina.usc.edu > Subject: Re: How to disable DR election on an interface ? > > > > > why not > > accept Join/Prune messages from a router that hasn't sent a Hello. > > Because there may be options in the Hello message that need to be > consistent (e.g. join/prune override time). e.g. if you're the DR and > you hear a Join/Prune from a router with a higher IP address, do you > decide that he's the DR? Why or why not? > > What I'd really like is for the Hello messages to have neighbor lists > and ignore a neighbor until you get a Hello message with you in his > neighbor list, but that got shot down a long time ago. It's much nicer > for debugging purposes for the peering to go down on both ends than to > have a mysteriously one-way peering. > > Bill > From owner-pim@catarina.usc.edu Tue Jun 5 08:11:52 2001 Received: from catarina.usc.edu ([128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id IAA16778 for ; Tue, 5 Jun 2001 08:11:51 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id EAA62641 for pim-list; Tue, 5 Jun 2001 04:48:13 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136] (may be forged)) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id EAA62636 for ; Tue, 5 Jun 2001 04:48:11 -0700 (PDT) Received: from presque.djinesys.com (presque.djinesys.com [198.108.88.2]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id EAA15725 for ; Tue, 5 Jun 2001 04:48:11 -0700 (PDT) Received: from nexthop.com ([141.211.130.157]) by presque.djinesys.com (8.11.1/8.11.1) with ESMTP id f55BjQH49344; Tue, 5 Jun 2001 07:45:27 -0400 (EDT) (envelope-from ala@nexthop.com) Message-ID: <3B1CC5D7.86F174DE@nexthop.com> Date: Tue, 05 Jun 2001 07:43:19 -0400 From: Andrew Adams X-Mailer: Mozilla 4.73 [en]C-{C-UDP; EBM-SONY1} (Win95; U) X-Accept-Language: en MIME-Version: 1.0 To: Chris Hall CC: "'Bill Fenner'" , dino@procket.com, pim@catarina.usc.edu Subject: Re: How to disable DR election on an interface ? References: <4F48C7B31A8BD311B1D20090279C34B25BB196@clavin> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sender: owner-pim@catarina.usc.edu Precedence: bulk Content-Transfer-Encoding: 7bit Gated _accepts_ joinprune messages from neighbors that don't have hello status. -Andy Chris Hall wrote: > > Which implementations actually reject joinprune messages from neighbors that > don't have hello status? > > thanks > > Chris > > -----Original Message----- > From: Bill Fenner [mailto:fenner@research.att.com] > Sent: Monday, June 04, 2001 2:46 PM > To: dino@procket.com > Cc: pim@catarina.usc.edu > Subject: Re: How to disable DR election on an interface ? > > > why not > > accept Join/Prune messages from a router that hasn't sent a Hello. > > Because there may be options in the Hello message that need to be > consistent (e.g. join/prune override time). e.g. if you're the DR and > you hear a Join/Prune from a router with a higher IP address, do you > decide that he's the DR? Why or why not? > > What I'd really like is for the Hello messages to have neighbor lists > and ignore a neighbor until you get a Hello message with you in his > neighbor list, but that got shot down a long time ago. It's much nicer > for debugging purposes for the peering to go down on both ends than to > have a mysteriously one-way peering. > > Bill From owner-pim@catarina.usc.edu Tue Jun 5 09:24:19 2001 Received: from catarina.usc.edu ([128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id JAA19722 for ; Tue, 5 Jun 2001 09:24:18 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id GAA63056 for pim-list; Tue, 5 Jun 2001 06:07:31 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136]) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id GAA63051 for ; Tue, 5 Jun 2001 06:07:30 -0700 (PDT) Received: from wiprom2mx1.wipro.com (wiprom2mx1.wipro.com [203.197.164.41]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id GAA08183 for ; Tue, 5 Jun 2001 06:07:28 -0700 (PDT) Received: from m2vwall2.wipro.com (m2vwall2.wipro.com [164.164.27.52]) by wiprom2mx1.wipro.com (8.11.3/8.11.3) with SMTP id f55IfbZ11947 for ; Tue, 5 Jun 2001 18:41:37 GMT Received: from ram ([192.168.91.135]) by helium.mail.wipro.com (Netscape Messaging Server 4.15) with SMTP id GEGGBI00.DHW; Tue, 5 Jun 2001 17:08:06 +0530 From: "K.P.Ramamurthy" To: Cc: Subject: BSM fragmentation ? Date: Tue, 5 Jun 2001 17:06:55 +0530 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook IMO, Build 9.0.2416 (9.0.2911.0) Importance: Normal X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2919.6700 Sender: owner-pim@catarina.usc.edu Precedence: bulk Content-Transfer-Encoding: 7bit Hi, Bootstrap message fragments can potentially arrive out of sequence or interleaved with other BS messages, how to handle this ? regards and thanks Ram From owner-pim@catarina.usc.edu Tue Jun 5 14:38:36 2001 Received: from catarina.usc.edu (catarina.usc.edu [128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id OAA27957 for ; Tue, 5 Jun 2001 14:38:33 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id LAA64605 for pim-list; Tue, 5 Jun 2001 11:18:12 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136]) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id LAA64600 for ; Tue, 5 Jun 2001 11:18:11 -0700 (PDT) Received: from motgate2.mot.com (motgate2.mot.com [136.182.1.10]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id LAA17265 for ; Tue, 5 Jun 2001 11:18:10 -0700 (PDT) Received: [from pobox2.mot.com (pobox2.mot.com [136.182.15.8]) by motgate2.mot.com (motgate2 2.1) with ESMTP id LAA02211 for ; Tue, 5 Jun 2001 11:15:58 -0700 (MST)] Received: [from il06exi01.CORP.MOT.COM (il06exi01.corp.mot.com [199.5.78.78]) by pobox2.mot.com (MOT-pobox2 2.0) with ESMTP id LAA20772 for ; Tue, 5 Jun 2001 11:15:58 -0700 (MST)] Received: by il06exi01.corp.mot.com with Internet Mail Service (5.5.2653.19) id ; Tue, 5 Jun 2001 13:15:57 -0500 Message-ID: <1B1F9F30D74AD51188C8009027E33B3F0B07AC@il06exm03.corp.mot.com> From: Mathur Sonum-CSM109 To: pim@catarina.usc.edu Subject: RE: How to disable DR election on an interface ? Date: Tue, 5 Jun 2001 13:15:57 -0500 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2653.19) Content-Type: text/plain Sender: owner-pim@catarina.usc.edu Precedence: bulk Motorola accepts Join/Prune messages from neighbors that are not present in the PIM neighbor list. -- Sonum -----Original Message----- From: Andrew Adams [mailto:ala@nexthop.com] Sent: Tuesday, June 05, 2001 4:43 AM To: Chris Hall Cc: 'Bill Fenner'; dino@procket.com; pim@catarina.usc.edu Subject: Re: How to disable DR election on an interface ? Gated _accepts_ joinprune messages from neighbors that don't have hello status. -Andy Chris Hall wrote: > > Which implementations actually reject joinprune messages from neighbors that > don't have hello status? > > thanks > > Chris > > -----Original Message----- > From: Bill Fenner [mailto:fenner@research.att.com] > Sent: Monday, June 04, 2001 2:46 PM > To: dino@procket.com > Cc: pim@catarina.usc.edu > Subject: Re: How to disable DR election on an interface ? > > > why not > > accept Join/Prune messages from a router that hasn't sent a Hello. > > Because there may be options in the Hello message that need to be > consistent (e.g. join/prune override time). e.g. if you're the DR and > you hear a Join/Prune from a router with a higher IP address, do you > decide that he's the DR? Why or why not? > > What I'd really like is for the Hello messages to have neighbor lists > and ignore a neighbor until you get a Hello message with you in his > neighbor list, but that got shot down a long time ago. It's much nicer > for debugging purposes for the peering to go down on both ends than to > have a mysteriously one-way peering. > > Bill From owner-pim@catarina.usc.edu Tue Jun 5 16:45:00 2001 Received: from catarina.usc.edu (catarina.usc.edu [128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id QAA29764 for ; Tue, 5 Jun 2001 16:44:59 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id NAA65221 for pim-list; Tue, 5 Jun 2001 13:23:31 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136]) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id NAA65216 for ; Tue, 5 Jun 2001 13:23:30 -0700 (PDT) Received: from WS0005.indiatimes.com ([203.199.93.15]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id NAA25770 for ; Tue, 5 Jun 2001 13:23:29 -0700 (PDT) Received: from 192.168.57.15 (a1 [192.168.57.21]) by WS0005.indiatimes.com (8.9.3/8.9.3) with SMTP id BAA04654 for ; Wed, 6 Jun 2001 01:30:32 +0530 From: "mistkhan" Message-Id: <200106052000.BAA04654@WS0005.indiatimes.com> To: Reply-To: "mistkhan" Subject: PIM-SM code Date: Wed, 06 Jun 2001 01:37:33 +0530 X-URL: http://indiatimes.com Content-Type: multipart/alternative; boundary="=_MAILER_ATTACH_BOUNDARY1_200166313733363304213" MIME-Version: 1.0 Sender: owner-pim@catarina.usc.edu Precedence: bulk --=_MAILER_ATTACH_BOUNDARY1_200166313733363304213 Content-Type: text/plain; charset=us-ascii HI, Is PIM implemented for Free BSD. If so where it is available. Thanking you in advance Regards Aman Get Your Private, Free E-mail from Indiatimes at http://email.indiatimes.com --=_MAILER_ATTACH_BOUNDARY1_200166313733363304213 Content-Type: text/html; charset=us-ascii

HI,

Is PIM implemented for Free BSD. If so where it is available.

Thanking you in advance

Regards

Aman


Get Your Private, Free E-mail from Indiatimes at http://email.indiatimes.com --=_MAILER_ATTACH_BOUNDARY1_200166313733363304213-- From owner-pim@catarina.usc.edu Tue Jun 5 18:58:20 2001 Received: from catarina.usc.edu (catarina.usc.edu [128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id SAA01083 for ; Tue, 5 Jun 2001 18:58:18 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id PAA66043 for pim-list; Tue, 5 Jun 2001 15:39:19 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136] (may be forged)) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id PAA66038 for ; Tue, 5 Jun 2001 15:39:19 -0700 (PDT) Received: from mail.routerware.com (ppp-64-161-186-193.routerware.com [64.161.186.193]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id PAA12609 for ; Tue, 5 Jun 2001 15:39:17 -0700 (PDT) Received: by NEWMAN with Internet Mail Service (5.5.2650.21) id ; Tue, 5 Jun 2001 15:44:30 -0700 Message-ID: <4F48C7B31A8BD311B1D20090279C34B25BB1B0@clavin> From: Chris Hall To: "'Mathur Sonum-CSM109'" , pim@catarina.usc.edu Subject: RE: How to disable DR election on an interface ? Date: Tue, 5 Jun 2001 15:40:11 -0700 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2650.21) Content-Type: text/plain Sender: owner-pim@catarina.usc.edu Precedence: bulk oops... So does Wind River. Chris -----Original Message----- From: Mathur Sonum-CSM109 [mailto:sonum@motorola.com] Sent: Tuesday, June 05, 2001 11:16 AM To: pim@catarina.usc.edu Subject: RE: How to disable DR election on an interface ? Motorola accepts Join/Prune messages from neighbors that are not present in the PIM neighbor list. -- Sonum -----Original Message----- From: Andrew Adams [mailto:ala@nexthop.com] Sent: Tuesday, June 05, 2001 4:43 AM To: Chris Hall Cc: 'Bill Fenner'; dino@procket.com; pim@catarina.usc.edu Subject: Re: How to disable DR election on an interface ? Gated _accepts_ joinprune messages from neighbors that don't have hello status. -Andy Chris Hall wrote: > > Which implementations actually reject joinprune messages from neighbors that > don't have hello status? > > thanks > > Chris > > -----Original Message----- > From: Bill Fenner [mailto:fenner@research.att.com] > Sent: Monday, June 04, 2001 2:46 PM > To: dino@procket.com > Cc: pim@catarina.usc.edu > Subject: Re: How to disable DR election on an interface ? > > > why not > > accept Join/Prune messages from a router that hasn't sent a Hello. > > Because there may be options in the Hello message that need to be > consistent (e.g. join/prune override time). e.g. if you're the DR and > you hear a Join/Prune from a router with a higher IP address, do you > decide that he's the DR? Why or why not? > > What I'd really like is for the Hello messages to have neighbor lists > and ignore a neighbor until you get a Hello message with you in his > neighbor list, but that got shot down a long time ago. It's much nicer > for debugging purposes for the peering to go down on both ends than to > have a mysteriously one-way peering. > > Bill From owner-pim@catarina.usc.edu Wed Jun 6 00:44:24 2001 Received: from catarina.usc.edu (catarina.usc.edu [128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id AAA07330 for ; Wed, 6 Jun 2001 00:44:23 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id VAA67406 for pim-list; Tue, 5 Jun 2001 21:15:30 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136] (may be forged)) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id VAA67401 for ; Tue, 5 Jun 2001 21:15:28 -0700 (PDT) Received: from zrc2s03g.nortelnetworks.com ([47.103.122.66]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id VAA02853 for ; Tue, 5 Jun 2001 21:15:27 -0700 (PDT) Received: from smtprch1.nortel.com (erchg0j.us.nortel.com [47.113.64.103]) by zrc2s03g.nortelnetworks.com (8.9.3+Sun/8.9.1) with ESMTP id XAA13853 for ; Tue, 5 Jun 2001 23:11:11 -0500 (CDT) Received: from zsc4c000.us.nortel.com by smtprch1.nortel.com; Tue, 5 Jun 2001 23:10:17 -0500 Received: by zsc4c000.us.nortel.com with Internet Mail Service (5.5.2653.19) id ; Tue, 5 Jun 2001 21:09:39 -0700 Message-ID: <5D630265EF50D311ABB60008C7917DB604594051@zsc4c004.us.nortel.com> From: "Sundeep Singatwaria" To: "'Tom Pusateri'" , Chris Hall Cc: "'Bill Fenner'" , dino@procket.com, pim@catarina.usc.edu Subject: RE: How to disable DR election on an interface ? Date: Tue, 5 Jun 2001 21:09:38 -0700 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2653.19) Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C0EE3E.80E77790" Sender: owner-pim@catarina.usc.edu Precedence: bulk This message is in MIME format. Since your mail reader does not understand this format, some or all of this message may not be legible. ------_=_NextPart_001_01C0EE3E.80E77790 Content-Type: text/plain; charset="ISO-8859-1" ditto at nortel. Sundeep -----Original Message----- From: Tom Pusateri [mailto:pusateri@juniper.net] Sent: Monday, June 04, 2001 7:26 PM To: Chris Hall Cc: 'Bill Fenner'; dino@procket.com; pim@catarina.usc.edu; pusateri@juniper.net Subject: Re: How to disable DR election on an interface ? Currently, Juniper ignores joins, prunes, grafts, graft acks, bootstrap messages and asserts from neighbors it hasn't seen a hello from. Tom In message <4F48C7B31A8BD311B1D20090279C34B25BB196@clavin> you write: >Which implementations actually reject joinprune messages from neighbors that >don't have hello status? > >thanks > >Chris > > >-----Original Message----- >From: Bill Fenner [mailto:fenner@research.att.com] >Sent: Monday, June 04, 2001 2:46 PM >To: dino@procket.com >Cc: pim@catarina.usc.edu >Subject: Re: How to disable DR election on an interface ? > > > >> why not >> accept Join/Prune messages from a router that hasn't sent a Hello. > >Because there may be options in the Hello message that need to be >consistent (e.g. join/prune override time). e.g. if you're the DR and >you hear a Join/Prune from a router with a higher IP address, do you >decide that he's the DR? Why or why not? > >What I'd really like is for the Hello messages to have neighbor lists >and ignore a neighbor until you get a Hello message with you in his >neighbor list, but that got shot down a long time ago. It's much nicer >for debugging purposes for the peering to go down on both ends than to >have a mysteriously one-way peering. > > Bill ------_=_NextPart_001_01C0EE3E.80E77790 Content-Type: text/html; charset="ISO-8859-1" RE: How to disable DR election on an interface ?

ditto at nortel.

Sundeep

-----Original Message-----
From: Tom Pusateri [mailto:pusateri@juniper.net]
Sent: Monday, June 04, 2001 7:26 PM
To: Chris Hall
Cc: 'Bill Fenner'; dino@procket.com; pim@catarina.usc.edu;
pusateri@juniper.net
Subject: Re: How to disable DR election on an interface ?


Currently, Juniper ignores joins, prunes, grafts, graft acks,
bootstrap messages and asserts from neighbors it hasn't seen a hello from.

Tom

In message <4F48C7B31A8BD311B1D20090279C34B25BB196@clavin> you write:
>Which implementations actually reject joinprune messages from neighbors that
>don't have hello status?
>
>thanks
>
>Chris
>
>
>-----Original Message-----
>From: Bill Fenner [mailto:fenner@research.att.com]
>Sent: Monday, June 04, 2001 2:46 PM
>To: dino@procket.com
>Cc: pim@catarina.usc.edu
>Subject: Re: How to disable DR election on an interface ?
>
>
>
>>    why not
>>    accept Join/Prune messages from a router that hasn't sent a Hello.
>
>Because there may be options in the Hello message that need to be
>consistent (e.g. join/prune override time).  e.g. if you're the DR and
>you hear a Join/Prune from a router with a higher IP address, do you
>decide that he's the DR?  Why or why not?
>
>What I'd really like is for the Hello messages to have neighbor lists
>and ignore a neighbor until you get a Hello message with you in his
>neighbor list, but that got shot down a long time ago.  It's much nicer
>for debugging purposes for the peering to go down on both ends than to
>have a mysteriously one-way peering.
>
>  Bill

------_=_NextPart_001_01C0EE3E.80E77790-- From owner-pim@catarina.usc.edu Wed Jun 6 01:50:27 2001 Received: from catarina.usc.edu (catarina.usc.edu [128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id BAA10216 for ; Wed, 6 Jun 2001 01:50:26 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id WAA67733 for pim-list; Tue, 5 Jun 2001 22:37:46 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136]) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id WAA67728 for ; Tue, 5 Jun 2001 22:37:45 -0700 (PDT) Received: from WS0005.indiatimes.com ([203.199.93.15]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id WAA10730 for ; Tue, 5 Jun 2001 22:37:44 -0700 (PDT) Received: from 192.168.57.15 (a3 [192.168.57.23]) by WS0005.indiatimes.com (8.9.3/8.9.3) with SMTP id KAA15093 for ; Wed, 6 Jun 2001 10:45:43 +0530 From: "mistkhan" Message-Id: <200106060515.KAA15093@WS0005.indiatimes.com> To: Reply-To: "mistkhan" Subject: FreeBSD code Date: Wed, 06 Jun 2001 10:38:11 +0530 X-URL: http://indiatimes.com Content-Type: multipart/alternative; boundary="=_MAILER_ATTACH_BOUNDARY1_200166310381134829832" MIME-Version: 1.0 Sender: owner-pim@catarina.usc.edu Precedence: bulk --=_MAILER_ATTACH_BOUNDARY1_200166310381134829832 Content-Type: text/plain; charset=us-ascii Hi Is PIM-SM has been implemented in FreeBSD. If so where can I get the code. Regards Aman Get Your Private, Free E-mail from Indiatimes at http://email.indiatimes.com --=_MAILER_ATTACH_BOUNDARY1_200166310381134829832 Content-Type: text/html; charset=us-ascii

Hi

Is PIM-SM has been implemented in FreeBSD. If so where can I get the code.

Regards

Aman

 


Get Your Private, Free E-mail from Indiatimes at http://email.indiatimes.com --=_MAILER_ATTACH_BOUNDARY1_200166310381134829832-- From owner-pim@catarina.usc.edu Wed Jun 6 08:44:33 2001 Received: from catarina.usc.edu (catarina.usc.edu [128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id IAA28438 for ; Wed, 6 Jun 2001 08:44:32 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id FAA69494 for pim-list; Wed, 6 Jun 2001 05:22:49 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136] (may be forged)) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id FAA69489 for ; Wed, 6 Jun 2001 05:22:45 -0700 (PDT) Received: from wiprom2mx1.wipro.com (wiprom2mx1.wipro.com [203.197.164.41]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id FAA23333 for ; Wed, 6 Jun 2001 05:22:42 -0700 (PDT) Received: from m2vwall2.wipro.com (m2vwall2.wipro.com [164.164.27.52]) by wiprom2mx1.wipro.com (8.11.3/8.11.3) with SMTP id f56HsSZ24815 for ; Wed, 6 Jun 2001 17:54:28 GMT Received: from wipro.com ([127.0.0.1]) by sarovar.mail.wipro.com (Netscape Messaging Server 4.15) with ESMTP id GEID0900.CX4 for ; Wed, 6 Jun 2001 17:51:45 +0530 From: "Jyotheeswara Rao Kurma" To: pim@catarina.usc.edu Message-ID: <76a4e75d05.75d0576a4e@wipro.com> Date: Wed, 06 Jun 2001 17:21:45 +0500 X-Mailer: Netscape Webmail MIME-Version: 1.0 Content-Language: en Subject: SPT switch over due to data threshold X-Accept-Language: en Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: 7bit Sender: owner-pim@catarina.usc.edu Precedence: bulk Content-Transfer-Encoding: 7bit Hi All : Is the Spt switch over process due to data/packet threshold exceeding , i.e upon seeing a good flow of data from a specific source, is discussed somewhere in the new draft draft-ietf-pim-sm-v2-new-02 ? I guess, pim-sm has this advantage of switching over , but I couldn't find it in the draft ? Is it internally implied ? or missing ? Thanks for any info. Jyotheesh -------------------------------------------------------------------- Every moment is a golden one for him who has the vision to recognize it as such. -- Henry Miller From owner-pim@catarina.usc.edu Wed Jun 6 11:18:40 2001 Received: from catarina.usc.edu (catarina.usc.edu [128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id LAA02831 for ; Wed, 6 Jun 2001 11:18:39 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id HAA70194 for pim-list; Wed, 6 Jun 2001 07:45:34 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136]) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id HAA70189 for ; Wed, 6 Jun 2001 07:45:33 -0700 (PDT) Received: from wiprom2mx1.wipro.com (wiprom2mx1.wipro.com [203.197.164.41]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id HAA14916 for ; Wed, 6 Jun 2001 07:45:25 -0700 (PDT) Received: from m2vwall2.wipro.com (m2vwall2.wipro.com [164.164.27.52]) by wiprom2mx1.wipro.com (8.11.3/8.11.3) with SMTP id f56KJhZ02365 for ; Wed, 6 Jun 2001 20:19:43 GMT Received: from test2.wipro.com ([192.168.91.130]) by helium.mail.wipro.com (Netscape Messaging Server 4.15) with SMTP id GEI2VY00.2MP; Wed, 6 Jun 2001 14:13:10 +0530 From: "brahmeswara reddy kauluru" To: "mistkhan" , Subject: RE: FreeBSD code Date: Wed, 6 Jun 2001 14:20:38 +0530 Message-ID: <000401c0ee65$c286dde0$825ba8c0@wipro.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------InterScan_NT_MIME_Boundary" X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook 8.5, Build 4.71.2173.0 X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2014.211 Importance: Normal In-Reply-To: <200106060515.KAA15093@WS0005.indiatimes.com> Sender: owner-pim@catarina.usc.edu Precedence: bulk This is a multi-part message in MIME format. --------------InterScan_NT_MIME_Boundary Content-Type: multipart/alternative; boundary="----=_NextPart_000_0005_01C0EE93.DC3F19E0" ------=_NextPart_000_0005_01C0EE93.DC3F19E0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Hi, The code is available here: ftp://catarina.usc.edu/pub/pim/pimd/ Rgds Reddy -----Original Message----- From: owner-pim-implementors@catarina.usc.edu [mailto:owner-pim-implementors@catarina.usc.edu]On Behalf Of mistkhan Sent: Wednesday, June 06, 2001 10:38 AM To: pim@catarina.usc.edu Subject: FreeBSD code Hi Is PIM-SM has been implemented in FreeBSD. If so where can I get the code. Regards Aman ---------------------------------------------------------------------------- ---- Get Your Private, Free E-mail from Indiatimes at http://email.indiatimes.com ------=_NextPart_000_0005_01C0EE93.DC3F19E0 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable
Hi,
    The code is available=20 here:
ftp://catarina.usc.edu/pub/= pim/pimd/
 
 
Rgds
Reddy
 
-----Original Message-----
From:=20 owner-pim-implementors@catarina.usc.edu=20 [mailto:owner-pim-implementors@catarina.usc.edu]On Behalf Of=20 mistkhan
Sent: Wednesday, June 06, 2001 10:38 AM
To: = pim@catarina.usc.edu
Subject: FreeBSD = code

Hi

Is PIM-SM has been implemented in FreeBSD. If so where can I get the=20 code.

Regards

Aman

 


Get Your Private, Free E-mail from = Indiatimes at=20 http://email.indiatimes.com ------=_NextPart_000_0005_01C0EE93.DC3F19E0-- --------------InterScan_NT_MIME_Boundary-- From owner-pim@catarina.usc.edu Wed Jun 6 14:01:16 2001 Received: from catarina.usc.edu (catarina.usc.edu [128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id OAA07080 for ; Wed, 6 Jun 2001 14:01:15 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id KAA71108 for pim-list; Wed, 6 Jun 2001 10:27:57 -0700 (PDT) Received: from usc.edu (root@usc.edu [128.125.253.136] (may be forged)) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id KAA71103 for ; Wed, 6 Jun 2001 10:27:56 -0700 (PDT) Received: from sj-msg-core-1.cisco.com (sj-msg-core-1.cisco.com [171.71.163.11]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id KAA11208 for ; Wed, 6 Jun 2001 10:27:54 -0700 (PDT) Received: from kouvelas-u10.cisco.com (kouvelas-u10.cisco.com [171.71.228.114]) by sj-msg-core-1.cisco.com (8.11.3/8.9.1) with ESMTP id f56HNj910000; Wed, 6 Jun 2001 10:23:45 -0700 (PDT) Received: from localhost (kouvelas@localhost) by kouvelas-u10.cisco.com (8.8.8-Cisco List Logging/CISCO.WS.1.2) with ESMTP id KAA29359; Wed, 6 Jun 2001 10:23:41 -0700 (PDT) Message-Id: <200106061723.KAA29359@kouvelas-u10.cisco.com> X-Authentication-Warning: kouvelas-u10.cisco.com: kouvelas owned process doing -bs To: "Jyotheeswara Rao Kurma" cc: pim@catarina.usc.edu Subject: Re: SPT switch over due to data threshold Date: Wed, 06 Jun 2001 10:23:41 -0700 From: Isidor Kouvelas Sender: owner-pim@catarina.usc.edu Precedence: bulk We are in the process of adding the description to the spec. Will be in the next version. thanks I "Jyotheeswara Rao Kurma" writes: >Hi All : > > Is the Spt switch over process due to data/packet threshold >exceeding , i.e upon seeing a good flow of data from a specific source, >is discussed somewhere in the new draft > draft-ietf-pim-sm-v2-new-02 ? > >I guess, pim-sm has this advantage of switching over , but I couldn't >find it in the draft ? Is it internally implied ? or missing ? > >Thanks for any info. >Jyotheesh > >-------------------------------------------------------------------- >Every moment is a golden one for him who has the vision to recognize it >as such. >-- Henry Miller > > From owner-pim@catarina.usc.edu Thu Jun 7 07:06:53 2001 Received: from catarina.usc.edu (catarina.usc.edu [128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id HAA03272 for ; Thu, 7 Jun 2001 07:06:53 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id DAA74600 for pim-list; Thu, 7 Jun 2001 03:41:52 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136] (may be forged)) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id DAA74595 for ; Thu, 7 Jun 2001 03:41:50 -0700 (PDT) Received: from wiprom2mx1.wipro.com (wiprom2mx1.wipro.com [203.197.164.41]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id DAA29868 for ; Thu, 7 Jun 2001 03:41:48 -0700 (PDT) Received: from m2vwall2.wipro.com (m2vwall2.wipro.com [164.164.27.52]) by wiprom2mx1.wipro.com (8.11.3/8.11.3) with SMTP id f57GG9Z13259 for ; Thu, 7 Jun 2001 16:16:09 GMT Received: from wipro.com ([192.168.91.138]) by helium.mail.wipro.com (Netscape Messaging Server 4.15) with ESMTP id GEK0EW00.I0P; Thu, 7 Jun 2001 15:14:56 +0530 Message-ID: <3B1F4EFC.A3B8E7B7@wipro.com> Date: Thu, 07 Jun 2001 15:23:01 +0530 From: "Radhakrishna Singuru" Organization: Wipro, Global R&D X-Mailer: Mozilla 4.7 [en] (Win98; I) X-Accept-Language: en MIME-Version: 1.0 To: Isidor Kouvelas CC: Jyotheeswara Rao Kurma , pim@catarina.usc.edu Subject: Re: SPT switch over due to data threshold References: <200106061723.KAA29359@kouvelas-u10.cisco.com> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sender: owner-pim@catarina.usc.edu Precedence: bulk Content-Transfer-Encoding: 7bit What is the planned date for next version spec release ? thanks radha Isidor Kouvelas wrote: > We are in the process of adding the description to the spec. Will > be in the next version. > > thanks > I > > "Jyotheeswara Rao Kurma" writes: > >Hi All : > > > > Is the Spt switch over process due to data/packet threshold > >exceeding , i.e upon seeing a good flow of data from a specific source, > >is discussed somewhere in the new draft > > draft-ietf-pim-sm-v2-new-02 ? > > > >I guess, pim-sm has this advantage of switching over , but I couldn't > >find it in the draft ? Is it internally implied ? or missing ? > > > >Thanks for any info. > >Jyotheesh > > > >-------------------------------------------------------------------- > >Every moment is a golden one for him who has the vision to recognize it > >as such. > >-- Henry Miller > > > > From owner-pim@catarina.usc.edu Thu Jun 7 11:45:43 2001 Received: from catarina.usc.edu (catarina.usc.edu [128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id LAA08981 for ; Thu, 7 Jun 2001 11:45:42 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id IAA75553 for pim-list; Thu, 7 Jun 2001 08:25:27 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136]) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id IAA75548 for ; Thu, 7 Jun 2001 08:25:26 -0700 (PDT) Received: from aeon.barak.net.il ([212.150.150.30]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id IAA15977 for ; Thu, 7 Jun 2001 08:25:24 -0700 (PDT) Received: from mail.barak.net.il (mail6.barak.net.il [212.150.150.141]) by aeon.barak.net.il (8.11.1/8.11.1) with ESMTP id f57FN8d22153 for ; Thu, 7 Jun 2001 18:23:09 +0300 (IDT) Received: from messenger.radlan.co.il ([209.88.194.205]) by mail.barak.net.il (8.11.2/8.9.1) with ESMTP id f57FNqQ07870 for ; Thu, 7 Jun 2001 18:23:52 +0300 (IDT) Received: by MESSENGER with Internet Mail Service (5.5.2653.19) id ; Thu, 7 Jun 2001 18:22:33 +0200 Message-ID: <42AB6BE23C29D511831E0002B32024880EF930@MESSENGER> From: Eugene Zetserov To: "'pim@catarina.usc.edu'" Subject: Forwarding on a not PIM interface. Date: Thu, 7 Jun 2001 18:22:11 +0200 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2653.19) Content-Type: text/plain; charset="windows-1255" Sender: owner-pim@catarina.usc.edu Precedence: bulk Hi everyone, If somebody can clarify the following situation : Whether the PIM-DM (or PIM SM) router MUST forward packet which comes from RPF but NOT PIM interface (the PIM is not configured on this interface). Thanks. From owner-pim@catarina.usc.edu Thu Jun 7 12:14:43 2001 Received: from catarina.usc.edu (catarina.usc.edu [128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id MAA09575 for ; Thu, 7 Jun 2001 12:14:42 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id IAA75670 for pim-list; Thu, 7 Jun 2001 08:56:15 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136]) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id IAA75665 for ; Thu, 7 Jun 2001 08:56:14 -0700 (PDT) Received: from wiprom2mx1.wipro.com (wiprom2mx1.wipro.com [203.197.164.41]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id IAA04715 for ; Thu, 7 Jun 2001 08:56:11 -0700 (PDT) Received: from m2vwall2.wipro.com (m2vwall2.wipro.com [164.164.27.52]) by wiprom2mx1.wipro.com (8.11.3/8.11.3) with SMTP id f57LSGZ24708 for ; Thu, 7 Jun 2001 21:28:16 GMT Received: from wipro.com ([127.0.0.1]) by sarovar.mail.wipro.com (Netscape Messaging Server 4.15) with ESMTP id GEK9WA00.9DV; Thu, 7 Jun 2001 18:39:46 +0530 From: "Jyotheeswara Rao Kurma" To: pim@catarina.usc.edu, jyotheeswara.rao@wipro.com Message-ID: <7ada181b63.81b637ada1@wipro.com> Date: Thu, 07 Jun 2001 18:09:46 +0500 X-Mailer: Netscape Webmail MIME-Version: 1.0 Content-Language: en Subject: Dr and Non -DR X-Accept-Language: en Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: 7bit Sender: owner-pim@catarina.usc.edu Precedence: bulk Content-Transfer-Encoding: 7bit Hi : I need a small clarification. Consider the following scenario. | |---- DR ---------PIM-ROUTER---PIMROUTER------| Host--- | |-----RP |---- NON-DR------PIM-ROUTER------------------| | Now , DR will send initial register packets to RP, but RP will send (S,G) Joins towards NON-DR (assuming better path), and this NON-DR will start forwarding ( S(Host),G) packets from Host. When happens to DR there ? How long will it maintian (S,G) register state ? Who will take care of refreshing Rp's state by sending Null register messages ? Is it DR/NON-DR ? Thanks for any help, Jyotheesh -------------------------------------------------------------------- Every moment is a golden one for him who has the vision to recognize it as such. -- Henry Miller From owner-pim@catarina.usc.edu Thu Jun 7 12:49:22 2001 Received: from catarina.usc.edu (catarina.usc.edu [128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id MAA10314 for ; Thu, 7 Jun 2001 12:49:22 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id JAA76010 for pim-list; Thu, 7 Jun 2001 09:29:35 -0700 (PDT) Received: from usc.edu (root@usc.edu [128.125.253.136]) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id JAA76005 for ; Thu, 7 Jun 2001 09:29:34 -0700 (PDT) Received: from sj-msg-core-2.cisco.com (sj-msg-core-2.cisco.com [171.69.24.11]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id JAA29829 for ; Thu, 7 Jun 2001 09:29:31 -0700 (PDT) Received: from kouvelas-u10.cisco.com (kouvelas-u10.cisco.com [171.71.228.114]) by sj-msg-core-2.cisco.com (8.11.3/8.9.1) with ESMTP id f57GPKU06303; Thu, 7 Jun 2001 09:25:20 -0700 (PDT) Received: from localhost (kouvelas@localhost) by kouvelas-u10.cisco.com (8.8.8-Cisco List Logging/CISCO.WS.1.2) with ESMTP id JAA00267; Thu, 7 Jun 2001 09:25:16 -0700 (PDT) Message-Id: <200106071625.JAA00267@kouvelas-u10.cisco.com> X-Authentication-Warning: kouvelas-u10.cisco.com: kouvelas owned process doing -bs To: "Radhakrishna Singuru" cc: Isidor Kouvelas , Jyotheeswara Rao Kurma , pim@catarina.usc.edu Subject: Re: SPT switch over due to data threshold Date: Thu, 07 Jun 2001 09:25:15 -0700 From: Isidor Kouvelas Sender: owner-pim@catarina.usc.edu Precedence: bulk Before the London IETF... I "Radhakrishna Singuru" writes: >What is the planned date for next version spec release ? >thanks >radha > >Isidor Kouvelas wrote: > >> We are in the process of adding the description to the spec. Will >> be in the next version. >> >> thanks >> I >> >> "Jyotheeswara Rao Kurma" writes: >> >Hi All : >> > >> > Is the Spt switch over process due to data/packet threshold >> >exceeding , i.e upon seeing a good flow of data from a specific source, >> >is discussed somewhere in the new draft >> > draft-ietf-pim-sm-v2-new-02 ? >> > >> >I guess, pim-sm has this advantage of switching over , but I couldn't >> >find it in the draft ? Is it internally implied ? or missing ? >> > >> >Thanks for any info. >> >Jyotheesh >> > >> >-------------------------------------------------------------------- >> >Every moment is a golden one for him who has the vision to recognize it >> >as such. >> >-- Henry Miller >> > >> > > From owner-pim@catarina.usc.edu Thu Jun 7 13:12:54 2001 Received: from catarina.usc.edu (catarina.usc.edu [128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id NAA10866 for ; Thu, 7 Jun 2001 13:12:53 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id JAA76301 for pim-list; Thu, 7 Jun 2001 09:56:54 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from rumi.usc.edu (rumi.usc.edu [128.125.51.41]) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id JAA76289; Thu, 7 Jun 2001 09:56:37 -0700 (PDT) Received: from rumi (localhost [127.0.0.1]) by rumi.usc.edu (8.9.3/8.9.3) with ESMTP id JAA73004; Thu, 7 Jun 2001 09:56:36 -0700 (PDT) Message-Id: <200106071656.JAA73004@rumi.usc.edu> To: Eugene Zetserov cc: "'pim@catarina.usc.edu'" Subject: Re: Forwarding on a not PIM interface. In-reply-to: Your message of "Thu, 07 Jun 2001 18:22:11 +0200." <42AB6BE23C29D511831E0002B32024880EF930@MESSENGER> Date: Thu, 07 Jun 2001 09:56:36 -0700 From: Pavlin Ivanov Radoslavov Sender: owner-pim@catarina.usc.edu Precedence: bulk > Hi everyone, > > If somebody can clarify the following situation : > > Whether the PIM-DM (or PIM SM) router MUST forward packet which comes from RPF but NOT PIM interface (the PIM is not configured on this interface). If protocol X is not (explicitly or implicitly) configured to run on some interface I, this protocol should completely ignore that interface. Of course, this is an answer based on principality, but are there any concrete examples that can be used to prove me wrong here? Regards, Pavlin From owner-pim@catarina.usc.edu Thu Jun 7 13:56:44 2001 Received: from catarina.usc.edu (catarina.usc.edu [128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id NAA11555 for ; Thu, 7 Jun 2001 13:56:43 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id KAA76829 for pim-list; Thu, 7 Jun 2001 10:39:10 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136] (may be forged)) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id KAA76824 for ; Thu, 7 Jun 2001 10:39:07 -0700 (PDT) Received: from packetbdc.riverdelta.com (packetbdc.riverdelta.com [198.112.190.11]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id KAA28174 for ; Thu, 7 Jun 2001 10:39:06 -0700 (PDT) Received: by packetbdc.riverdelta.com with Internet Mail Service (5.5.2650.21) id ; Thu, 7 Jun 2001 13:32:59 -0400 Message-ID: <21199AAD363AD5119D8500B0D0D03C7E05FB66@thunder.riverdelta.com> From: Billy Ng To: "'Jyotheeswara Rao Kurma'" , pim@catarina.usc.edu Subject: RE: Dr and Non -DR Date: Thu, 7 Jun 2001 13:34:23 -0400 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2650.21) Content-Type: text/plain; charset="iso-8859-1" Sender: owner-pim@catarina.usc.edu Precedence: bulk Jyotheesh, when the RP received the native multicast data packet, it will send a Register-Stop to the DR. --Billy > -----Original Message----- > From: Jyotheeswara Rao Kurma [mailto:jyotheeswara.rao@wipro.com] > Sent: Thursday, June 07, 2001 8:10 AM > To: pim@catarina.usc.edu; jyotheeswara.rao@wipro.com > Subject: Dr and Non -DR > > > Hi : > > I need a small clarification. Consider the following scenario. > > > | > |---- DR ---------PIM-ROUTER---PIMROUTER------| > Host--- | |-----RP > |---- NON-DR------PIM-ROUTER------------------| > | > > Now , DR will send initial register packets to RP, but RP will send > (S,G) Joins towards NON-DR (assuming better path), and this > NON-DR will > start forwarding ( S(Host),G) packets from Host. When happens to DR > there ? How long will it maintian (S,G) register state ? > > Who will take care of refreshing Rp's state by sending Null register > messages ? Is it DR/NON-DR ? > > Thanks for any help, > Jyotheesh > > -------------------------------------------------------------------- > Every moment is a golden one for him who has the vision to > recognize it > as such. > -- Henry Miller > > From owner-pim@catarina.usc.edu Thu Jun 7 14:00:37 2001 Received: from catarina.usc.edu (catarina.usc.edu [128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id OAA11603 for ; Thu, 7 Jun 2001 14:00:35 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id KAA76950 for pim-list; Thu, 7 Jun 2001 10:49:11 -0700 (PDT) Received: from usc.edu (root@usc.edu [128.125.253.136] (may be forged)) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id KAA76945 for ; Thu, 7 Jun 2001 10:49:10 -0700 (PDT) Received: from sj-msg-core-1.cisco.com (sj-msg-core-1.cisco.com [171.71.163.11]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id KAA06456 for ; Thu, 7 Jun 2001 10:49:07 -0700 (PDT) Received: from kouvelas-u10.cisco.com (kouvelas-u10.cisco.com [171.71.228.114]) by sj-msg-core-1.cisco.com (8.11.3/8.9.1) with ESMTP id f57Hiq902557; Thu, 7 Jun 2001 10:44:52 -0700 (PDT) Received: from localhost (kouvelas@localhost) by kouvelas-u10.cisco.com (8.8.8-Cisco List Logging/CISCO.WS.1.2) with ESMTP id KAA00326; Thu, 7 Jun 2001 10:44:52 -0700 (PDT) Message-Id: <200106071744.KAA00326@kouvelas-u10.cisco.com> X-Authentication-Warning: kouvelas-u10.cisco.com: kouvelas owned process doing -bs To: "Jyotheeswara Rao Kurma" cc: pim@catarina.usc.edu Subject: Re: Dr and Non -DR In-reply-to: Your message of "Thu, 07 Jun 2001 18:09:46 +0500." <7ada181b63.81b637ada1@wipro.com> Date: Thu, 07 Jun 2001 10:44:52 -0700 From: Isidor Kouvelas Sender: owner-pim@catarina.usc.edu Precedence: bulk "Jyotheeswara Rao Kurma" writes: >Hi : > > I need a small clarification. Consider the following scenario. > > > | > |---- DR ---------PIM-ROUTER---PIMROUTER------| > Host--- | |-----RP > |---- NON-DR------PIM-ROUTER------------------| > | > >Now , DR will send initial register packets to RP, but RP will send >(S,G) Joins towards NON-DR (assuming better path), and this NON-DR will >start forwarding ( S(Host),G) packets from Host. When happens to DR >there ? How long will it maintian (S,G) register state ? When the packets arrive on the (S,G) SPT at the RP, the RP will consider the SPT for the source established and will respond to further registers with register-stop messages. The DR will stop registering after it receives the register-stop but since it still is directly connected to the source, it will maintain (S,G) state as long as the source is active. >Who will take care of refreshing Rp's state by sending Null register >messages ? Is it DR/NON-DR ? The DR will send the null-registers. thanks I From owner-pim@catarina.usc.edu Thu Jun 7 14:08:34 2001 Received: from catarina.usc.edu (catarina.usc.edu [128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id OAA11774 for ; Thu, 7 Jun 2001 14:08:33 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id KAA76960 for pim-list; Thu, 7 Jun 2001 10:50:34 -0700 (PDT) Received: from usc.edu (root@usc.edu [128.125.253.136] (may be forged)) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id KAA76955 for ; Thu, 7 Jun 2001 10:50:32 -0700 (PDT) Received: from mailhost.iprg.nokia.com (mailhost.iprg.nokia.com [205.226.5.12]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id KAA07735 for ; Thu, 7 Jun 2001 10:50:32 -0700 (PDT) Received: from darkstar.iprg.nokia.com (darkstar.iprg.nokia.com [205.226.5.69]) by mailhost.iprg.nokia.com (8.9.3/8.9.3-GLGS) with ESMTP id KAA16106; Thu, 7 Jun 2001 10:48:03 -0700 (PDT) Received: (from root@localhost) by darkstar.iprg.nokia.com (8.11.0/8.11.0-DARKSTAR) id f57Hm3p02886; Thu, 7 Jun 2001 10:48:03 -0700 X-mProtect: Thu, 7 Jun 2001 10:48:03 -0700 Nokia Silicon Valley Messaging Protection Received: from bahadur.iprg.nokia.com (205.226.11.43) by darkstar.iprg.nokia.com(P1.5 smtpd24Tolz; Thu, 07 Jun 2001 10:48:01 PDT Received: from localhost (bahadur@localhost) by bahadur.iprg.nokia.com (8.8.8/8.6.12) with SMTP id KAA02438; Thu, 7 Jun 2001 10:48:01 -0700 (PDT) X-Authentication-Warning: bahadur.iprg.nokia.com: bahadur owned process doing -bs Date: Thu, 7 Jun 2001 10:48:01 -0700 (PDT) From: Rahul Bahadur To: Jyotheeswara Rao Kurma cc: pim@catarina.usc.edu Subject: Re: Dr and Non -DR In-Reply-To: <7ada181b63.81b637ada1@wipro.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-pim@catarina.usc.edu Precedence: bulk I believe the non-DR will just propagate the joinprune message with the DR as the upstream neighbor towards the host. Rahul On Thu, 7 Jun 2001, Jyotheeswara Rao Kurma wrote: > Hi : > > I need a small clarification. Consider the following scenario. > > > | > |---- DR ---------PIM-ROUTER---PIMROUTER------| > Host--- | |-----RP > |---- NON-DR------PIM-ROUTER------------------| > | > > Now , DR will send initial register packets to RP, but RP will send > (S,G) Joins towards NON-DR (assuming better path), and this NON-DR will > start forwarding ( S(Host),G) packets from Host. When happens to DR > there ? How long will it maintian (S,G) register state ? > > Who will take care of refreshing Rp's state by sending Null register > messages ? Is it DR/NON-DR ? > > Thanks for any help, > Jyotheesh > > -------------------------------------------------------------------- > Every moment is a golden one for him who has the vision to recognize it > as such. > -- Henry Miller > > > From owner-pim@catarina.usc.edu Thu Jun 7 17:35:08 2001 Received: from catarina.usc.edu (catarina.usc.edu [128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id RAA14914 for ; Thu, 7 Jun 2001 17:35:06 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id OAA78644 for pim-list; Thu, 7 Jun 2001 14:17:05 -0700 (PDT) Received: from usc.edu (root@usc.edu [128.125.253.136]) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id OAA78639 for ; Thu, 7 Jun 2001 14:17:04 -0700 (PDT) Received: from mailhost.iprg.nokia.com (mailhost.iprg.nokia.com [205.226.5.12]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id OAA27035 for ; Thu, 7 Jun 2001 14:17:04 -0700 (PDT) Received: from darkstar.iprg.nokia.com (darkstar.iprg.nokia.com [205.226.5.69]) by mailhost.iprg.nokia.com (8.9.3/8.9.3-GLGS) with ESMTP id OAA03966; Thu, 7 Jun 2001 14:14:26 -0700 (PDT) Received: (from root@localhost) by darkstar.iprg.nokia.com (8.11.0/8.11.0-DARKSTAR) id f57LEPd07346; Thu, 7 Jun 2001 14:14:25 -0700 X-mProtect: Thu, 7 Jun 2001 14:14:25 -0700 Nokia Silicon Valley Messaging Protection Received: from bahadur.iprg.nokia.com (205.226.11.43) by darkstar.iprg.nokia.com(P1.5 smtpd2kEt6b; Thu, 07 Jun 2001 14:14:23 PDT Received: from localhost (bahadur@localhost) by bahadur.iprg.nokia.com (8.8.8/8.6.12) with SMTP id OAA02701; Thu, 7 Jun 2001 14:13:54 -0700 (PDT) X-Authentication-Warning: bahadur.iprg.nokia.com: bahadur owned process doing -bs Date: Thu, 7 Jun 2001 14:13:54 -0700 (PDT) From: Rahul Bahadur To: Jyotheeswara Rao Kurma cc: pim@catarina.usc.edu Subject: Re: Dr and Non -DR In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-pim@catarina.usc.edu Precedence: bulk oops, obviously not! Need to drink more coffee before replying to email :). Apologies for the wasted bandwidth. Rahul On Thu, 7 Jun 2001, Rahul Bahadur wrote: > > I believe the non-DR will just propagate the joinprune message with > the DR as the upstream neighbor towards the host. > > Rahul > > > On Thu, 7 Jun 2001, Jyotheeswara Rao Kurma wrote: > > > Hi : > > > > I need a small clarification. Consider the following scenario. > > > > > > | > > |---- DR ---------PIM-ROUTER---PIMROUTER------| > > Host--- | |-----RP > > |---- NON-DR------PIM-ROUTER------------------| > > | > > > > Now , DR will send initial register packets to RP, but RP will send > > (S,G) Joins towards NON-DR (assuming better path), and this NON-DR will > > start forwarding ( S(Host),G) packets from Host. When happens to DR > > there ? How long will it maintian (S,G) register state ? > > > > Who will take care of refreshing Rp's state by sending Null register > > messages ? Is it DR/NON-DR ? > > > > Thanks for any help, > > Jyotheesh > > > > -------------------------------------------------------------------- > > Every moment is a golden one for him who has the vision to recognize it > > as such. > > -- Henry Miller > > > > > > > > From owner-pim@catarina.usc.edu Fri Jun 8 00:32:44 2001 Received: from catarina.usc.edu (catarina.usc.edu [128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id AAA21269 for ; Fri, 8 Jun 2001 00:32:44 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id VAA79957 for pim-list; Thu, 7 Jun 2001 21:07:38 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136]) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id VAA79952 for ; Thu, 7 Jun 2001 21:07:36 -0700 (PDT) Received: from wiprom2mx1.wipro.com (wiprom2mx1.wipro.com [203.197.164.41]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id VAA07286 for ; Thu, 7 Jun 2001 21:07:32 -0700 (PDT) Received: from m2vwall2.wipro.com (m2vwall2.wipro.com [164.164.27.52]) by wiprom2mx1.wipro.com (8.11.3/8.11.3) with SMTP id f589eTZ06497 for ; Fri, 8 Jun 2001 09:40:29 GMT Received: from wipro.com ([127.0.0.1]) by sarovar.mail.wipro.com (Netscape Messaging Server 4.15) with ESMTP id GELF1I00.2GB; Fri, 8 Jun 2001 09:28:30 +0530 From: "Jyotheeswara Rao Kurma" To: Isidor Kouvelas Cc: pim@catarina.usc.edu Message-ID: <831f27f899.7f899831f2@wipro.com> Date: Fri, 08 Jun 2001 08:58:30 +0500 X-Mailer: Netscape Webmail MIME-Version: 1.0 Content-Language: en Subject: Re: Dr and Non -DR X-Accept-Language: en Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: 7bit Sender: owner-pim@catarina.usc.edu Precedence: bulk Content-Transfer-Encoding: 7bit > When the packets arrive on the (S,G) SPT at the RP, the RP will > consider the SPT for the source established and will respond to > further registers with register-stop messages. > The DR will stop registering after it receives the register-stop > but since it still is directly connected to the source, it will > maintain(S,G) state as long as the source is active. > > The DR will send the null-registers. Yes, I could Understand what you wrote. But What I am wondering is why is DR there interested in sending register stops, to RP, anyway for DR here (S,G) oif-list will be always non-null ( assuming no other receivers , and just considering this simple case), and NON-DR's (S,G) oif-list will contain RPF(RP) . So in any case, if at all if there is something that let's a router to refresh RP's state, i.e to know whether it has any down stream receivers for this group , it should be done by a router which is actually forwarding those (S,G) packets, here in this case it is NON-DR. Please let me know if I am misunderstanding anything ? Thanks, Jyotheesh From owner-pim@catarina.usc.edu Fri Jun 8 01:49:15 2001 Received: from catarina.usc.edu (catarina.usc.edu [128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id BAA24187 for ; Fri, 8 Jun 2001 01:49:14 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id WAA80424 for pim-list; Thu, 7 Jun 2001 22:36:36 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136]) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id WAA80419 for ; Thu, 7 Jun 2001 22:36:35 -0700 (PDT) Received: from wiprom2mx1.wipro.com (wiprom2mx1.wipro.com [203.197.164.41]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id WAA14798 for ; Thu, 7 Jun 2001 22:36:31 -0700 (PDT) Received: from m2vwall2.wipro.com (m2vwall2.wipro.com [164.164.27.52]) by wiprom2mx1.wipro.com (8.11.3/8.11.3) with SMTP id f58BApZ03738 for ; Fri, 8 Jun 2001 11:10:51 GMT Received: from wipro.com ([127.0.0.1]) by sarovar.mail.wipro.com (Netscape Messaging Server 4.15) with ESMTP id GELIJR00.0MM; Fri, 8 Jun 2001 10:44:15 +0530 From: "Jyotheeswara Rao Kurma" To: "Jyotheeswara Rao Kurma" Cc: Isidor Kouvelas , pim@catarina.usc.edu Message-ID: <7f85581fa8.81fa87f855@wipro.com> Date: Fri, 08 Jun 2001 10:14:15 +0500 X-Mailer: Netscape Webmail MIME-Version: 1.0 Content-Language: en Subject: Re: Dr and Non -DR X-Accept-Language: en Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: 7bit Sender: owner-pim@catarina.usc.edu Precedence: bulk Content-Transfer-Encoding: 7bit Sorry , for a simple mistake , DR's oif-list is NULL( written wrongly as NON-NULL) , in the above mail (case) that I quoted. Thanks, Jyotheesh -------------------------------------------------------------------- Every moment is a golden one for him who has the vision to recognize it as such. -- Henry Miller ----- Original Message ----- From: "Jyotheeswara Rao Kurma" Date: Friday, June 8, 2001 9:28 am Subject: Re: Dr and Non -DR > > When the packets arrive on the (S,G) SPT at the RP, the RP will > > consider the SPT for the source established and will respond to > > further registers with register-stop messages. > > The DR will stop registering after it receives the register-stop > > but since it still is directly connected to the source, it will > > maintain(S,G) state as long as the source is active. > > > > The DR will send the null-registers. > > Yes, I could Understand what you wrote. But What I am wondering is > why is DR there interested in sending register stops, to RP, > anyway for > DR here (S,G) oif-list will be always non-null ( assuming no other > receivers , and just considering this simple case), and NON-DR's > (S,G) oif-list will contain RPF(RP) . So in any case, if at all if > there is something that let's a router to refresh RP's state, i.e > to > know whether it has any down stream receivers for this group , it > should be done by a router which is actually forwarding those > (S,G) > packets, here in this case it is NON-DR. > > Please let me know if I am misunderstanding anything ? > > Thanks, > Jyotheesh > > > > > From owner-pim@catarina.usc.edu Fri Jun 8 03:07:23 2001 Received: from catarina.usc.edu (catarina.usc.edu [128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id DAA06524 for ; Fri, 8 Jun 2001 03:07:22 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id XAA80891 for pim-list; Thu, 7 Jun 2001 23:55:01 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136]) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id XAA80885 for ; Thu, 7 Jun 2001 23:55:00 -0700 (PDT) Received: from wiprom2mx1.wipro.com (wiprom2mx1.wipro.com [203.197.164.41]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id XAA14459 for ; Thu, 7 Jun 2001 23:54:56 -0700 (PDT) Received: from m2vwall2.wipro.com (m2vwall2.wipro.com [164.164.27.52]) by wiprom2mx1.wipro.com (8.11.3/8.11.3) with SMTP id f58CTHZ26562 for ; Fri, 8 Jun 2001 12:29:17 GMT Received: from ram ([192.168.91.135]) by helium.mail.wipro.com (Netscape Messaging Server 4.15) with SMTP id GELMVJ00.S4W for ; Fri, 8 Jun 2001 12:17:43 +0530 From: "K.P.Ramamurthy" To: Subject: graceful shutdown of BSR ? Date: Fri, 8 Jun 2001 12:16:38 +0530 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook IMO, Build 9.0.2416 (9.0.2911.0) X-MIMEOLE: Produced By Microsoft MimeOLE V5.00.2919.6700 Importance: Normal Sender: owner-pim@catarina.usc.edu Precedence: bulk Content-Transfer-Encoding: 7bit Hi, in Section 3.2. [Page 17] of "draft-ietf-pim-sm-bsr-00.txt" I have a question pertaining to the following text : " When an elected BSR is being shut down, it should immediately originate a Bootstrap message listing its current RP set, but with the BSR priority field set to the lowest priority value possible. This will cause the election of a new BSR to happen more quickly." Since the candidate BSR state machine does not process a NON-PREFERRED-BSM, the BSR election will not happen any quicker !!. So if a elected BSR sends a BSM with very low priority when it is being shutdown, it will not help in initiating immediate BSR election ( before BS-TIMEOUT ) since this event is not handled by the candidate BSRs in any state ( C-BSR / P-BSR ), it seems to me that lowering the priority of an elected BSR will not result in re-election immediately. regards and thanks K.P.R.Murthy From owner-pim@catarina.usc.edu Fri Jun 8 03:35:28 2001 Received: from catarina.usc.edu (catarina.usc.edu [128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id DAA07174 for ; Fri, 8 Jun 2001 03:35:27 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id AAA81066 for pim-list; Fri, 8 Jun 2001 00:23:07 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136]) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id AAA81061 for ; Fri, 8 Jun 2001 00:23:05 -0700 (PDT) Received: from wiprom2mx1.wipro.com (wiprom2mx1.wipro.com [203.197.164.41]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id AAA25855 for ; Fri, 8 Jun 2001 00:23:03 -0700 (PDT) Received: from m2vwall2.wipro.com (m2vwall2.wipro.com [164.164.27.52]) by wiprom2mx1.wipro.com (8.11.3/8.11.3) with SMTP id f58CvIZ02745 for ; Fri, 8 Jun 2001 12:57:18 GMT Received: from ram ([192.168.91.135]) by helium.mail.wipro.com (Netscape Messaging Server 4.15) with SMTP id GELMS600.A4W; Fri, 8 Jun 2001 12:15:42 +0530 From: "K.P.Ramamurthy" To: "Mark Handley" Cc: Subject: inconsistent RP-SETs ? Date: Fri, 8 Jun 2001 12:14:37 +0530 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook IMO, Build 9.0.2416 (9.0.2911.0) X-MIMEOLE: Produced By Microsoft MimeOLE V5.00.2919.6700 Importance: Normal Sender: owner-pim@catarina.usc.edu Precedence: bulk Content-Transfer-Encoding: 7bit Hi, when fragmented Bootstrap messages are sent by BSR, all the routers in the doamin might not get the fragments in the *correct sequence*, and so some routers will just forward the BSM (as expected by all PIM routers), but will not able to preserve the incomplete RP-SET ( if need be ), and so there is a possibility of some routers using the latest RP-SET, while there could be some other PIM routers using a obsolete RP-SET, this might result in routers hashing to different RPs for the same GROUP. The root of this problem lies in the fact that the fragments are not guaranteed to arrive in sequence. regards and thanks K.P.R.Murthy From owner-pim@catarina.usc.edu Fri Jun 8 03:36:57 2001 Received: from catarina.usc.edu (catarina.usc.edu [128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id DAA07207 for ; Fri, 8 Jun 2001 03:36:55 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id AAA81073 for pim-list; Fri, 8 Jun 2001 00:23:26 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136]) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id AAA81068 for ; Fri, 8 Jun 2001 00:23:25 -0700 (PDT) Received: from wiprom2mx1.wipro.com (wiprom2mx1.wipro.com [203.197.164.41]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id AAA26136 for ; Fri, 8 Jun 2001 00:23:23 -0700 (PDT) Received: from m2vwall2.wipro.com (m2vwall2.wipro.com [164.164.27.52]) by wiprom2mx1.wipro.com (8.11.3/8.11.3) with SMTP id f58CvSZ02772 for ; Fri, 8 Jun 2001 12:57:28 GMT Received: from wipro.com ([127.0.0.1]) by sarovar.mail.wipro.com (Netscape Messaging Server 4.15) with ESMTP id GELN7I00.ANW; Fri, 8 Jun 2001 12:24:54 +0530 From: "Jyotheeswara Rao Kurma" To: Billy Ng Cc: pim@catarina.usc.edu Message-ID: <84ac183e73.83e7384ac1@wipro.com> Date: Fri, 08 Jun 2001 11:54:54 +0500 X-Mailer: Netscape Webmail MIME-Version: 1.0 Content-Language: en Subject: Re: RE: Dr and Non -DR X-Accept-Language: en Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: 7bit Sender: owner-pim@catarina.usc.edu Precedence: bulk Content-Transfer-Encoding: 7bit No , It cann't , As per the current draft, register stop will be sent only in response to a register packet. So after the native multicast packet , next register packet can only trigger RP to send a register stop message to DR. In other case as you wrote , i.e sending register stop message in response to a native multicast data packet, RP needs to store DR's address. Update me if I am wrong, Jyotheesh -------------------------------------------------------------------- Every moment is a golden one for him who has the vision to recognize it as such. -- Henry Miller ----- Original Message ----- From: Billy Ng Date: Thursday, June 7, 2001 11:04 pm Subject: RE: Dr and Non -DR > Jyotheesh, > > when the RP received the native multicast data packet, > it will send a Register-Stop to the DR. > > --Billy > > > -----Original Message----- > > From: Jyotheeswara Rao Kurma [mailto:jyotheeswara.rao@wipro.com] > > Sent: Thursday, June 07, 2001 8:10 AM > > To: pim@catarina.usc.edu; jyotheeswara.rao@wipro.com > > Subject: Dr and Non -DR > > > > > > Hi : > > > > I need a small clarification. Consider the following scenario. > > > > > > | > > |---- DR ---------PIM-ROUTER---PIMROUTER------| > > Host--- | |-----RP > > |---- NON-DR------PIM-ROUTER------------------| > > | > > > > Now , DR will send initial register packets to RP, but RP will send > > (S,G) Joins towards NON-DR (assuming better path), and this > > NON-DR will > > start forwarding ( S(Host),G) packets from Host. When happens to DR > > there ? How long will it maintian (S,G) register state ? > > > > Who will take care of refreshing Rp's state by sending Null > register > > messages ? Is it DR/NON-DR ? > > > > Thanks for any help, > > Jyotheesh > > > > ----------------------------------------------------------------- > --- > > Every moment is a golden one for him who has the vision to > > recognize it > > as such. > > -- Henry Miller > > > > > From owner-pim@catarina.usc.edu Fri Jun 8 10:38:00 2001 Received: from catarina.usc.edu (catarina.usc.edu [128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id KAA13272 for ; Fri, 8 Jun 2001 10:37:59 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id HAA83322 for pim-list; Fri, 8 Jun 2001 07:16:53 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136]) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id HAA83317 for ; Fri, 8 Jun 2001 07:16:52 -0700 (PDT) Received: from packetbdc.riverdelta.com (packetbdc.riverdelta.com [198.112.190.11]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id HAA23913 for ; Fri, 8 Jun 2001 07:16:51 -0700 (PDT) Received: by packetbdc.riverdelta.com with Internet Mail Service (5.5.2650.21) id ; Fri, 8 Jun 2001 10:11:05 -0400 Message-ID: <21199AAD363AD5119D8500B0D0D03C7E05FB68@thunder.riverdelta.com> From: Billy Ng To: "'Jyotheeswara Rao Kurma'" , Billy Ng Cc: pim@catarina.usc.edu Subject: RE: RE: Dr and Non -DR Date: Fri, 8 Jun 2001 10:12:26 -0400 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2650.21) Content-Type: text/plain; charset="iso-8859-1" Sender: owner-pim@catarina.usc.edu Precedence: bulk Yes, you're correct. I wrote too quick :) The register stop is sent on the next register packet. --Billy > -----Original Message----- > From: Jyotheeswara Rao Kurma [mailto:jyotheeswara.rao@wipro.com] > Sent: Friday, June 08, 2001 1:55 AM > To: Billy Ng > Cc: pim@catarina.usc.edu > Subject: Re: RE: Dr and Non -DR > > > > No , It cann't , As per the current draft, register stop will be sent > only in response to a register packet. So after the native multicast > packet , next register packet can only trigger RP to send a register > stop message to DR. In other case as you wrote , i.e sending register > stop message in response to a native multicast data packet, > RP needs to > store DR's address. > > Update me if I am wrong, > Jyotheesh > -------------------------------------------------------------------- > Every moment is a golden one for him who has the vision to > recognize it > as such. > -- Henry Miller > > > ----- Original Message ----- > From: Billy Ng > Date: Thursday, June 7, 2001 11:04 pm > Subject: RE: Dr and Non -DR > > > Jyotheesh, > > > > when the RP received the native multicast data packet, > > it will send a Register-Stop to the DR. > > > > --Billy > > > > > -----Original Message----- > > > From: Jyotheeswara Rao Kurma [mailto:jyotheeswara.rao@wipro.com] > > > Sent: Thursday, June 07, 2001 8:10 AM > > > To: pim@catarina.usc.edu; jyotheeswara.rao@wipro.com > > > Subject: Dr and Non -DR > > > > > > > > > Hi : > > > > > > I need a small clarification. Consider the following scenario. > > > > > > > > > | > > > |---- DR ---------PIM-ROUTER---PIMROUTER------| > > > Host--- | |-----RP > > > |---- NON-DR------PIM-ROUTER------------------| > > > | > > > > > > Now , DR will send initial register packets to RP, but RP > will send > > > (S,G) Joins towards NON-DR (assuming better path), and this > > > NON-DR will > > > start forwarding ( S(Host),G) packets from Host. When > happens to DR > > > there ? How long will it maintian (S,G) register state ? > > > > > > Who will take care of refreshing Rp's state by sending Null > > register > > > messages ? Is it DR/NON-DR ? > > > > > > Thanks for any help, > > > Jyotheesh > > > > > > ----------------------------------------------------------------- > > --- > > > Every moment is a golden one for him who has the vision to > > > recognize it > > > as such. > > > -- Henry Miller > > > > > > > > > From owner-pim@catarina.usc.edu Sat Jun 9 13:38:03 2001 Received: from catarina.usc.edu (catarina.usc.edu [128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id NAA16270 for ; Sat, 9 Jun 2001 13:38:02 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id KAA90758 for pim-list; Sat, 9 Jun 2001 10:17:08 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136] (may be forged)) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id KAA90753 for ; Sat, 9 Jun 2001 10:17:07 -0700 (PDT) Received: from mailweb10.rediffmail.com (IDENT:qmailr@[203.199.83.22]) by usc.edu (8.9.3.1/8.9.3/usc) with SMTP id KAA21970 for ; Sat, 9 Jun 2001 10:17:03 -0700 (PDT) Received: (qmail 25610 invoked by uid 510); 9 Jun 2001 17:17:31 -0000 Date: 9 Jun 2001 17:17:31 -0000 Message-ID: <20010609171731.25609.qmail@mailweb10.rediffmail.com> Received: from unknown (164.164.94.178) by rediffmail.com via HTTP; 09 Jun 2001 17:17:31 -0000 MIME-Version: 1.0 To: "bng@riverdelta.com" , "jyotheeswara.rao@wipro.com" Subject: Re: Dr and Non -DR CC: "pim@catarina.usc.edu" From: "P N H" Content-ID: Content-type: text/plain Content-Description: Body Content-Transfer-Encoding: 7bit Sender: owner-pim@catarina.usc.edu Precedence: bulk Content-Transfer-Encoding: 7bit DR must be sending Register message "Register Probe Time" interval before "Register Suppression Timer" expires. DR can respond back with "Register-Stop" to this. DR must continue to send "Register message" at above mentioned time as long as there is a (S,G) state at the DR. Note that DR will maintain (S,G) state even though it is not doing any forwarding, as long as Keepalive Timer is alive. Pawan ------------- Original Message -------------- Billy Ng wrote: To:"'Jyotheeswara Rao Kurma'" , Billy Ng From:Billy Ng Date:Fri, 8 Jun 2001 10:12:26 -0400 CC:pim@catarina.usc.edu Subject:RE: RE: Dr and Non -DR Yes, you're correct. I wrote too quick :) The register stop is sent on the next register packet. --Billy > -----Original Message----- > From: Jyotheeswara Rao Kurma [mailto:jyotheeswara.rao@wipro.com] > Sent: Friday, June 08, 2001 1:55 AM > To: Billy Ng > Cc: pim@catarina.usc.edu > Subject: Re: RE: Dr and Non -DR > > > > No , It cann't , As per the current draft, register stop will be sent > only in response to a register packet. So after the native multicast > packet , next register packet can only trigger RP to send a register > stop message to DR. In other case as you wrote , i.e sending register > stop message in response to a native multicast data packet, > RP needs to > store DR's address. > > Update me if I am wrong, > Jyotheesh > -------------------------------------------------------------------- > Every moment is a golden one for him who has the vision to > recognize it > as such. > -- Henry Miller > > > ----- Original Message ----- > From: Billy Ng > Date: Thursday, June 7, 2001 11:04 pm > Subject: RE: Dr and Non -DR > > > Jyotheesh, > > > > when the RP received the native multicast data packet, > > it will send a Register-Stop to the DR. > > > > --Billy > > > > > -----Original Message----- > > > From: Jyotheeswara Rao Kurma [mailto:jyotheeswara.rao@wipro.com] > > > Sent: Thursday, June 07, 2001 8:10 AM > > > To: pim@catarina.usc.edu; jyotheeswara.rao@wipro.com > > > Subject: Dr and Non -DR > > > > > > > > > Hi : > > > > > > I need a small clarification. Consider the following scenario. > > > > > > > > > | > > > |---- DR ---------PIM-ROUTER---PIMROUTER------| > > > Host--- | |-----RP > > > |---- NON-DR------PIM-ROUTER------------------| > > > | > > > > > > Now , DR will send initial register packets to RP, but RP > will send > > > (S,G) Joins towards NON-DR (assuming better path), and this > > > NON-DR will > > > start forwarding ( S(Host),G) packets from Host. When > happens to DR > > > there ? How long will it maintian (S,G) register state ? > > > > > > Who will take care of refreshing Rp's state by sending Null > > register > > > messages ? Is it DR/NON-DR ? > > > > > > Thanks for any help, > > > Jyotheesh > > > > > > ----------------------------------------------------------------- > > --- > > > Every moment is a golden one for him who has the vision to > > > recognize it > > > as such. > > > -- Henry Miller > > > > > > > > > _____________________________________________________ Chat with your friends as soon as they come online. Get Rediff Bol at http://bol.rediff.com From owner-pim@catarina.usc.edu Wed Jun 13 07:52:44 2001 Received: from catarina.usc.edu (catarina.usc.edu [128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id HAA19402 for ; Wed, 13 Jun 2001 07:52:43 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id EAA08284 for pim-list; Wed, 13 Jun 2001 04:41:34 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136]) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id EAA08278; Wed, 13 Jun 2001 04:41:30 -0700 (PDT) Received: from lorraine.loria.fr (lorraine.loria.fr [152.81.1.17]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id EAA12584; Wed, 13 Jun 2001 04:41:28 -0700 (PDT) Received: from euvezin.loria.fr (euvezin.loria.fr [152.81.11.90]) by lorraine.loria.fr (8.9.3/8.9.3/8.9.3/JCG-DG) with SMTP id NAA01029; Wed, 13 Jun 2001 13:38:05 +0200 (MET DST) From: Abdelkader Lahmadi To: Pavlin Ivanov Radoslavov Subject: implementation of pim-sm Date: Wed, 13 Jun 2001 13:32:29 +0200 X-Mailer: KMail [version 1.0.28] Content-Type: text/plain Cc: "'pim@catarina.usc.edu'" MIME-Version: 1.0 Message-Id: <01061313380400.01885@euvezin.loria.fr> Content-Transfer-Encoding: 8bit Sender: owner-pim@catarina.usc.edu Precedence: bulk Content-Transfer-Encoding: 8bit hi, in the implementation of PIM-SM from catarina, if the DR is the source of multicast data, does members attached to his interfaces receive these data? regards, --------------------------------------------- Lahmadi Abdelkader LORIA - UHP NANCY I CAMPUS SCIENTIFIQUE B.P.239 54506 VANDOEUVRE-LES-NANCY CEDEX E-mail : lahmadi@loria.fr --------------------------------------------- From owner-pim@catarina.usc.edu Wed Jun 13 12:02:49 2001 Received: from catarina.usc.edu (catarina.usc.edu [128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id MAA25949 for ; Wed, 13 Jun 2001 12:02:48 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id IAA09268 for pim-list; Wed, 13 Jun 2001 08:54:24 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from rumi.usc.edu (rumi.usc.edu [128.125.51.41]) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id IAA09261; Wed, 13 Jun 2001 08:53:50 -0700 (PDT) Received: from rumi (localhost [127.0.0.1]) by rumi.usc.edu (8.9.3/8.9.3) with ESMTP id IAA90123; Wed, 13 Jun 2001 08:53:50 -0700 (PDT) Message-Id: <200106131553.IAA90123@rumi.usc.edu> To: Abdelkader Lahmadi cc: "'pim@catarina.usc.edu'" Subject: Re: implementation of pim-sm In-reply-to: Your message of "Wed, 13 Jun 2001 13:32:29 +0200." <01061313380400.01885@euvezin.loria.fr> Date: Wed, 13 Jun 2001 08:53:50 -0700 From: Pavlin Ivanov Radoslavov Sender: owner-pim@catarina.usc.edu Precedence: bulk > in the implementation of PIM-SM from catarina, if the DR is the source of > multicast data, does members attached to his interfaces receive these data? > regards, They should receive the data. If they don't then this is a bug (your test-input here is welcome :) However, some time ago I was doing some testing on OpenBSD-2.7 and I found some weird behavior (PIM-independent) when if both the sender and receiver are binded on one particular interface, then receiver doesn't get the data. If both were binded on a different interface, the receiver was getting the data. At that time I didn't debug the problem further, but it is always a good idea to start your testing with something very simple to make sure that the problem is not somewhere else. Regards, Pavlin From owner-pim@catarina.usc.edu Fri Jun 15 01:10:07 2001 Received: from catarina.usc.edu (catarina.usc.edu [128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id BAA16661 for ; Fri, 15 Jun 2001 01:10:06 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id VAA16926 for pim-list; Thu, 14 Jun 2001 21:55:30 -0700 (PDT) Received: from usc.edu (root@usc.edu [128.125.253.136]) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id VAA16921 for ; Thu, 14 Jun 2001 21:55:28 -0700 (PDT) Received: from alumnux.com (ppp79-42.pppcal.vsnl.net.in [202.54.79.42]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id VAA06607 for ; Thu, 14 Jun 2001 21:55:16 -0700 (PDT) Received: from newton.alumnus.co.in (IDENT:root@newton.alumnus.co.in [192.200.11.1]) by alumnux.com (8.9.3/8.9.3) with ESMTP id KAA01427 for ; Fri, 15 Jun 2001 10:32:19 +0530 Received: from localhost (arindamc@localhost) by newton.alumnus.co.in (8.11.0/8.11.0) with ESMTP id f5F5BSN08471 for ; Fri, 15 Jun 2001 10:41:28 +0530 X-Authentication-Warning: newton.alumnus.co.in: arindamc owned process doing -bs Date: Fri, 15 Jun 2001 10:41:28 +0530 (IST) From: arindamc X-Sender: arindamc@newton.alumnus.co.in To: pim@catarina.usc.edu Subject: IP destination address of PIM Join/Prune message Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-pim@catarina.usc.edu Precedence: bulk Hi, I am working on PIM-SMv2. The draft draft-ietf-pim-sm-v2-new-02.txt on page no.92 says that "PIM messages are either unicast (e.g. Registers and Register-Stop), or multicast with TTL 1 to the `ALL-PIM-ROUTERS' group (e.g. Join/Prune, Asserts, etc.)" But on page no 34 it says, "Receive Join(*,*,RP) A Join(*,*,RP) is received on interface I with its IP destination set to the router's address on I." How is this possible ? The IP destination field of the PIM Join/Prune message must be set to the address "224.0.0.13"(ALL-PIM-ROUTERS). plz explain me what does it want to mean by that. thanks in advance, arindam C. From owner-pim@catarina.usc.edu Fri Jun 15 02:52:09 2001 Received: from catarina.usc.edu (catarina.usc.edu [128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id CAA00252 for ; Fri, 15 Jun 2001 02:52:09 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id XAA17224 for pim-list; Thu, 14 Jun 2001 23:28:36 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136]) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id XAA17219 for ; Thu, 14 Jun 2001 23:28:35 -0700 (PDT) Received: from hazard.aciri.org (adsl-63-196-11-252.dsl.snfc21.pacbell.net [63.196.11.252]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id XAA20584 for ; Thu, 14 Jun 2001 23:28:31 -0700 (PDT) Received: from hazard.aciri.org (localhost [127.0.0.1]) by hazard.aciri.org (8.11.3/8.11.1) with ESMTP id f5F6Rv225768; Thu, 14 Jun 2001 23:27:58 -0700 (PDT) (envelope-from mjh@hazard.aciri.org) From: Mark Handley X-Organisation: ACIRI To: arindamc cc: pim@catarina.usc.edu Subject: Re: IP destination address of PIM Join/Prune message In-reply-to: Your message of "Fri, 15 Jun 2001 10:41:28 +0530." Date: Thu, 14 Jun 2001 23:27:57 -0700 Message-ID: <25766.992586477@hazard.aciri.org> Sender: owner-pim@catarina.usc.edu Precedence: bulk >Hi, > > I am working on PIM-SMv2. The draft draft-ietf-pim-sm-v2-new-02.txt > on page no.92 says that > "PIM messages are either unicast (e.g. Registers and Register-Stop), > or multicast with TTL 1 to the `ALL-PIM-ROUTERS' group (e.g. Join/Prune, > Asserts, etc.)" > > But on page no 34 it says, > "Receive Join(*,*,RP) > A Join(*,*,RP) is received on interface I with its IP > destination set to the router's address on I." > > How is this possible ? The IP destination field of the PIM Join/Prune > message must be set to the address "224.0.0.13"(ALL-PIM-ROUTERS). > plz explain me what does it want to mean by that. Thanks for pointing this out - this is an error. I believe page 34 (and many places elsewhere) should say "...is received on interface I with its Upstream Neighbor Address set to the router's address on I". This will be fixed in the next release of the spec. Cheers, Mark From owner-pim@catarina.usc.edu Fri Jun 15 03:49:12 2001 Received: from catarina.usc.edu (catarina.usc.edu [128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id DAA01627 for ; Fri, 15 Jun 2001 03:49:11 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id AAA17619 for pim-list; Fri, 15 Jun 2001 00:40:27 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136]) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id AAA17614 for ; Fri, 15 Jun 2001 00:40:26 -0700 (PDT) Received: from wiprom2mx1.wipro.com (wiprom2mx1.wipro.com [203.197.164.41]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id AAA27973 for ; Fri, 15 Jun 2001 00:40:24 -0700 (PDT) Received: from m2hub.mail.wipro.com (m2hub.wipro.com [164.164.27.50]) by wiprom2mx1.wipro.com (8.11.3/8.11.3) with ESMTP id f5FDEkZ26366 for ; Fri, 15 Jun 2001 13:14:47 GMT Received: from m2vwall2.wipro.com ([164.164.27.52]) by m2hub.mail.wipro.com (Netscape Messaging Server 4.15) with SMTP id GEYNGO00.TE0 for ; Fri, 15 Jun 2001 12:59:12 +0530 Received: from wipro.com ([127.0.0.1]) by sarovar.mail.wipro.com (Netscape Messaging Server 4.15) with ESMTP id GEYIPP00.U88; Fri, 15 Jun 2001 11:16:37 +0530 From: "Jyotheeswara Rao Kurma" To: arindamc Cc: pim@catarina.usc.edu Message-ID: <7647a6d8.a6d87647@wipro.com> Date: Fri, 15 Jun 2001 10:46:37 +0500 X-Mailer: Netscape Webmail MIME-Version: 1.0 Content-Language: en Subject: Re: IP destination address of PIM Join/Prune message X-Accept-Language: en Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: 7bit Sender: owner-pim@catarina.usc.edu Precedence: bulk Content-Transfer-Encoding: 7bit Hi : Destination address for join/prune messages will be 224.0.0.13 only. But there is a field called upstream neighbor, this is the ip address of the upstream neighbor to whom we are sending join/prunes. i.e to whom this message is addressed/intended. All pim routers(on shared media) will receive this message, but only one will process. If this field is one of my addresses , then that router will process that packet. Hope this helps, Jyotheesh -------------------------------------------------------------------- Every moment is a golden one for him who has the vision to recognize it as such. -- Henry Miller ----- Original Message ----- From: arindamc Date: Friday, June 15, 2001 10:41 am Subject: IP destination address of PIM Join/Prune message > Hi, > > I am working on PIM-SMv2. The draft draft-ietf-pim-sm-v2-new-02.txt > on page no.92 says that > "PIM messages are either unicast (e.g. Registers and Register- > Stop), or multicast with TTL 1 to the `ALL-PIM-ROUTERS' group > (e.g. Join/Prune, > Asserts, etc.)" > > But on page no 34 it says, > "Receive Join(*,*,RP) > A Join(*,*,RP) is received on interface I with its IP > destination set to the router's address on I." > > How is this possible ? The IP destination field of the PIM > Join/Prune message must be set to the address "224.0.0.13"(ALL- > PIM-ROUTERS). > plz explain me what does it want to mean by that. > > thanks in advance, > > arindam C. > > From owner-pim@catarina.usc.edu Fri Jun 15 22:31:24 2001 Received: from catarina.usc.edu (catarina.usc.edu [128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id WAA04391 for ; Fri, 15 Jun 2001 22:31:23 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id TAA21287 for pim-list; Fri, 15 Jun 2001 19:21:43 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136] (may be forged)) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id TAA21282 for ; Fri, 15 Jun 2001 19:21:42 -0700 (PDT) Received: from sj-msg-core-2.cisco.com (sj-msg-core-2.cisco.com [171.69.24.11]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id TAA10010 for ; Fri, 15 Jun 2001 19:21:41 -0700 (PDT) Received: from apoorva-u5.cisco.com (apoorva-u5.cisco.com [171.71.228.118]) by sj-msg-core-2.cisco.com (8.11.3/8.9.1) with ESMTP id f5G2HWU12631; Fri, 15 Jun 2001 19:17:32 -0700 (PDT) Received: from cisco.com (localhost [127.0.0.1]) by apoorva-u5.cisco.com (8.8.8-Cisco List Logging/CISCO.WS.1.2) with ESMTP id TAA29497; Fri, 15 Jun 2001 19:17:26 -0700 (PDT) Message-ID: <3B2AC1B6.1C0BF35F@cisco.com> Date: Fri, 15 Jun 2001 19:17:26 -0700 From: Apoorva Karan X-Mailer: Mozilla 4.51C-CISCOENG [en] (X11; U; SunOS 5.6 sun4u) X-Accept-Language: en MIME-Version: 1.0 To: Jyotheeswara Rao Kurma CC: arindamc , pim@catarina.usc.edu Subject: Re: IP destination address of PIM Join/Prune message References: <7647a6d8.a6d87647@wipro.com> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sender: owner-pim@catarina.usc.edu Precedence: bulk Content-Transfer-Encoding: 7bit Please look for ##### for inline comment. Jyotheeswara Rao Kurma wrote: > > Hi : > > Destination address for join/prune messages will be 224.0.0.13 only. > But there is a field called upstream neighbor, this is the ip address > of the upstream neighbor to whom we are sending join/prunes. i.e to > whom this message is addressed/intended. > > All pim routers(on shared media) will receive this message, but only > one will process. > > If this field is one of my addresses , then that router will process > that packet. ##### A minor correction to the statement above. The router should process the packet only if the target address in the jp message is the address of the interface on which the packet was received (and not any one of the routers addresses). Thanks, Apoorva > > Hope this helps, > Jyotheesh > > -------------------------------------------------------------------- > Every moment is a golden one for him who has the vision to recognize it > as such. > -- Henry Miller > > ----- Original Message ----- > From: arindamc > Date: Friday, June 15, 2001 10:41 am > Subject: IP destination address of PIM Join/Prune message > > > Hi, > > > > I am working on PIM-SMv2. The draft draft-ietf-pim-sm-v2-new-02.txt > > on page no.92 says that > > "PIM messages are either unicast (e.g. Registers and Register- > > Stop), or multicast with TTL 1 to the `ALL-PIM-ROUTERS' group > > (e.g. Join/Prune, > > Asserts, etc.)" > > > > But on page no 34 it says, > > "Receive Join(*,*,RP) > > A Join(*,*,RP) is received on interface I with its IP > > destination set to the router's address on I." > > > > How is this possible ? The IP destination field of the PIM > > Join/Prune message must be set to the address "224.0.0.13"(ALL- > > PIM-ROUTERS). > > plz explain me what does it want to mean by that. > > > > thanks in advance, > > > > arindam C. > > > > From owner-pim@catarina.usc.edu Wed Jun 20 19:08:51 2001 Received: from catarina.usc.edu (catarina.usc.edu [128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id TAA25834 for ; Wed, 20 Jun 2001 19:08:50 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id OAA42948 for pim-list; Wed, 20 Jun 2001 14:53:03 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from rumi.usc.edu (rumi.usc.edu [128.125.51.41]) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id OAA42941 for ; Wed, 20 Jun 2001 14:52:27 -0700 (PDT) Received: (from pavlin@localhost) by rumi.usc.edu (8.9.3/8.9.3) id OAA92568 for pim@catarina.usc.edu; Wed, 20 Jun 2001 14:52:17 -0700 (PDT) Received: from usc.edu (root@usc.edu [128.125.253.136]) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id JAA37681 for ; Tue, 19 Jun 2001 09:23:26 -0700 (PDT) Received: from nimbus.cidera.com (0@nimbus.cidera.com [207.239.230.67]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id JAA03682 for ; Tue, 19 Jun 2001 09:23:24 -0700 (PDT) Received: from ashok (172-31-25-46.nat.cidera.com [172.31.25.46]) by nimbus.cidera.com (8.11.0/8.11.0) with SMTP id f5JGLe624797; Tue, 19 Jun 2001 12:21:40 -0400 (EDT) From: "Ashok Rao" To: , , Cc: , "Bob Smith \(E-mail\)" , "Buehler@Cidera.Com \(E-mail\)" , "Mike Thompson \(E-mail\)" , "Tom Edwards \(E-mail\)" Subject: Help with multicast forwarding over dialup on an AS 5200 Date: Tue, 19 Jun 2001 12:21:41 -0400 Message-ID: <001701c0f8db$ecf3c9a0$2e191fac@cidera.com> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook CWS, Build 9.0.2416 (9.0.2910.0) X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4522.1200 Importance: Normal Sender: owner-pim@catarina.usc.edu Precedence: bulk Content-Transfer-Encoding: 7bit Any help on this issue is greatly appreciated. Our ability to debug the problem is limited due to the fact that only the customer has access to the AS5200. Any suggestions as to what further information should be elicited from the customer ? Summary: A multicast source is feeding a server (xyz.downlink.skycache.com) running mrouted. On the other interface of the server, a DVMRP tunnel has been set up to an AS 5200 (set up in PIM sparse-dense-mode). The AS 5200 has dialup connections over multiple T-1 interfaces. Despite RPF checks being OK on the AS 5200, dial-up receivers cannot receive the data. TTL is set pretty high on the source. Network Diagram: Source ---> MROUTED -----DVMRP Tunnel-- AS 5200 ---- Dial up receiver 233.40.70.2 serial/T-1 sh ip mroute, sh ip igmp, and sh run (suitably edited for anonymity) is provided below. Note that serial interfaces have no ip addresses. PIM sparse-dense is enabled on all interfaces. Note also that sh ip igmp does not show groups joined - however this output was probably not captured at the same time the multicast receiver had dialed in. >From the as5200. > sh ip mroute IP Multicast Routing Table Flags: D - Dense, S - Sparse, C - Connected, L - Local, P - Pruned R - RP-bit set, F - Register flag, T - SPT-bit set, J - Join SPT M - MSDP created entry, X - Proxy Join Timer Running A - Advertised via MSDP Outgoing interface flags: H - Hardware switched Timers: Uptime/Expires Interface state: Interface, Next-Hop or VCD, State/Mode (*, 233.28.65.255), 01:58:25/00:02:59, RP 0.0.0.0, flags: DJC Incoming interface: Null, RPF nbr 0.0.0.0 Outgoing interface list: Tunnel0, Forward/Dvmrp, 00:02:50/00:00:00 Ethernet0, Forward/Sparse-Dense, 01:58:25/00:00:00 (63.250.213.6, 233.28.65.255), 00:01:49/00:02:58, flags: CTA Incoming interface: Tunnel0, RPF nbr ###.54.169.148, Dvmrp Outgoing interface list: Ethernet0, Forward/Sparse-Dense, 00:01:49/00:00:00 (*, 233.40.70.2), 01:58:43/00:02:59, RP 0.0.0.0, flags: DJC Incoming interface: Null, RPF nbr 0.0.0.0 Outgoing interface list: Tunnel0, Forward/Dvmrp, 00:03:07/00:00:00 Ethernet0, Forward/Sparse-Dense, 01:58:43/00:00:00 (63.250.213.6, 233.40.70.2), 00:02:06/00:02:59, flags: CTA Incoming interface: Tunnel0, RPF nbr ###.54.169.148, Dvmrp Outgoing interface list: Ethernet0, Forward/Sparse-Dense, 00:02:06/00:00:00 (*, 233.28.65.45), 01:58:43/00:02:59, RP 0.0.0.0, flags: DJC Incoming interface: Null, RPF nbr 0.0.0.0 Outgoing interface list: Tunnel0, Forward/Dvmrp, 00:03:07/00:00:00 Ethernet0, Forward/Sparse-Dense, 01:58:43/00:00:00 (63.250.213.147, 233.28.65.45), 00:02:07/00:02:59, flags: CTA Incoming interface: Tunnel0, RPF nbr ###.54.169.148, Dvmrp Outgoing interface list: Ethernet0, Forward/Sparse-Dense, 00:02:07/00:00:00 (*, 224.0.1.40), 4d00h/00:00:00, RP 0.0.0.0, flags: DJCL Incoming interface: Null, RPF nbr 0.0.0.0 Outgoing interface list: Tunnel0, Forward/Dvmrp, 00:03:07/00:00:00 Ethernet0, Forward/Sparse-Dense, 4d00h/00:00:00 (*, 233.28.65.80), 01:58:43/00:02:59, RP 0.0.0.0, flags: DJC Incoming interface: Null, RPF nbr 0.0.0.0 Outgoing interface list: Tunnel0, Forward/Dvmrp, 00:03:07/00:00:00 Ethernet0, Forward/Sparse-Dense, 01:58:43/00:00:00 (63.250.213.5, 233.28.65.80), 00:02:07/00:02:59, flags: CTA Incoming interface: Tunnel0, RPF nbr ###.54.169.148, Dvmrp Outgoing interface list: Ethernet0, Forward/Sparse-Dense, 00:02:07/00:00:00 > sh ip rpf 63.250.213.6 RPF information for ? (63.250.213.6) RPF interface: Tunnel0 RPF neighbor: ###.downlink.skycache.com (###.54.169.148) RPF route/mask: 63.250.213.0/24 RPF type: dvmrp RPF recursion count: 1 Doing distance-preferred lookups across tables > sh ip igmp group IGMP Connected Group Membership Group Address Interface Uptime Expires Last Reporter 224.0.1.40 Ethernet0 4d00h never ###.###.###.### > sh run :-) Current configuration : 7151 bytes ! ! ! ! version 12.1 service nagle no service pad service timestamps debug datetime msec localtime show-timezone service timestamps log datetime msec localtime show-timezone service password-encryption service compress-config ! hostname ... ! logging buffered 16384 debugging no logging console aaa new-model [ ... some aaa lines deleted ] spe 1/0 1/7 firmware location system: ... spe 2/0 2/7 firmware location system: ... ! resource-pool disable ! ip subnet-zero no ip finger ip host ... ... ip domain-name ... ip name-server ... ip name-server ... ! no ip bootp server ip multicast-routing ip address-pool local virtual-profile virtual-template 1 virtual-profile aaa ! sgbp group .... sgbp member .... ..... sgbp member ... ... multilink virtual-template 1 async-bootp gateway ###.###.###.### async-bootp dns-server ###.###.###.### ###.###.###.### isdn switch-type primary-5ess modemcap entry mica_1:.... modemcap entry micarobust:... modemcap entry Robust:... mta receive maximum-recipients 0 ! controller T1 0 framing esf clock source line primary linecode b8zs pri-group timeslots 1-24 ! controller T1 1 framing esf clock source line secondary 1 linecode b8zs pri-group timeslots 1-24 ! controller T1 2 framing esf linecode b8zs pri-group timeslots 1-24 ! controller T1 3 framing esf linecode b8zs pri-group timeslots 1-24 ! interface Loopback0 ip address ###.###.###.### 255.255.255.255 ! interface Loopback1 ip address ###.###.###.### 255.255.255.255 ! interface Tunnel0 ip unnumbered Ethernet0 ip pim sparse-dense-mode tunnel source Ethernet0 tunnel destination xyz.downlink.skycache.com tunnel mode dvmrp ! interface Ethernet0 ip address ###.###.###.### 255.255.255.0 ip pim sparse-dense-mode ip ospf message-digest-key 1 md5 7 15131B07493824313C362731 ! interface Virtual-Template1 ip unnumbered Loopback0 no ip route-cache no logging event link-status peer default ip address pool default ppp authentication pap chap callin ppp multilink ! interface Serial0:23 no ip address ip pim sparse-dense-mode encapsulation ppp ip mroute-cache no keepalive dialer rotary-group 1 dialer-group 1 isdn switch-type primary-5ess isdn incoming-voice modem no fair-queue no cdp enable ! interface Serial1:23 no ip address ip pim sparse-dense-mode encapsulation ppp ip mroute-cache no keepalive dialer rotary-group 1 dialer-group 1 isdn switch-type primary-5ess isdn incoming-voice modem no fair-queue no cdp enable ! interface Serial2:23 no ip address ip pim sparse-dense-mode encapsulation ppp ip mroute-cache no keepalive dialer rotary-group 1 dialer-group 1 isdn switch-type primary-5ess isdn incoming-voice modem no fair-queue no cdp enable ! interface Serial3:23 no ip address ip pim sparse-dense-mode encapsulation ppp ip mroute-cache no keepalive dialer rotary-group 1 dialer-group 1 isdn switch-type primary-5ess isdn incoming-voice modem no fair-queue no cdp enable ! interface FastEthernet0 no ip address shutdown duplex auto speed auto ! interface Group-Async1 ip unnumbered Loopback0 encapsulation ppp no ip mroute-cache no logging event link-status async dynamic address async mode interactive peer default ip address pool default no fair-queue no cdp enable ppp authentication pap chap callin ppp multilink group-range 1 96 ! interface Dialer1 ip unnumbered Loopback0 encapsulation ppp no ip route-cache no ip mroute-cache no logging event link-status no keepalive dialer in-band dialer idle-timeout 1200 dialer-group 1 peer default ip address pool default no fair-queue no cdp enable ppp authentication pap chap callin ppp multilink ! router ospf 100 log-adjacency-changes area 40 authentication message-digest area 40 nssa area 40 range ###.###.###.### 255.255.255.0 redistribute connected subnets redistribute static subnets passive-interface Dialer1 network ###.###.###.0 0.0.0.255 area 40 ! ip local pool default ###.###.###.### ###.###.###.### ip default-gateway ###.###.###.1 ip classless ip route 0.0.0.0 0.0.0.0 ###.###.###.1 no ip http server ! ip radius source-interface Ethernet0 logging trap debugging logging ###.###.###.### access-list 99 permit ###.###.###.0 0.0.0.255 access-list 125 permit ip ###.###.###.0 0.0.0.255 any dialer-list 1 protocol ip permit [ ... some tacacs radius and snmp stuff deleted ... ] line con 0 exec-timeout 0 0 transport input none line 1 96 session-timeout 20 output modem Dialin modem autoconfigure type Robust autoselect during-login autoselect ppp line aux 0 line vty 0 1 access-class 125 in exec-timeout 0 0 transport preferred none From owner-pim@catarina.usc.edu Thu Jun 21 07:21:12 2001 Received: from catarina.usc.edu (catarina.usc.edu [128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id HAA23549 for ; Thu, 21 Jun 2001 07:21:09 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id EAA01596 for pim-list; Thu, 21 Jun 2001 04:03:59 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136]) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id EAA01591 for ; Thu, 21 Jun 2001 04:03:57 -0700 (PDT) Received: from ietf.org (odin.ietf.org [132.151.1.176]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id EAA13447 for ; Thu, 21 Jun 2001 04:03:53 -0700 (PDT) Received: from CNRI.Reston.VA.US (localhost [127.0.0.1]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id GAA23177; Thu, 21 Jun 2001 06:59:56 -0400 (EDT) Message-Id: <200106211059.GAA23177@ietf.org> Mime-Version: 1.0 Content-Type: Multipart/Mixed; Boundary="NextPart" To: IETF-Announce: ; Cc: pim@catarina.usc.edu From: Internet-Drafts@ietf.org Reply-to: Internet-Drafts@ietf.org Subject: I-D ACTION:draft-ietf-pim-bidir-03.txt,.ps Date: Thu, 21 Jun 2001 06:59:55 -0400 Sender: owner-pim@catarina.usc.edu Precedence: bulk --NextPart A New Internet-Draft is available from the on-line Internet-Drafts directories. This draft is a work item of the Protocol Independent Multicast Working Group of the IETF. Title : Bi-directional Protocol Independent Multicast (BIDIR-PIM) Author(s) : M. Handley, I. Kouvelas, T. Speakman, L. Vicisano Filename : draft-ietf-pim-bidir-03.txt,.ps Pages : 40 Date : 20-Jun-01 This document discusses Bi-directional PIM, a variant of PIM Sparse-Mode [9] that builds bi-directional shared trees connecting multicast sources and receivers. Bi-directional trees are built using a fail-safe Designated Forwarder (DF) election mechanism operating on each link of a multicast topology. A URL for this Internet-Draft is: http://www.ietf.org/internet-drafts/draft-ietf-pim-bidir-03.txt Internet-Drafts are also available by anonymous FTP. Login with the username "anonymous" and a password of your e-mail address. After logging in, type "cd internet-drafts" and then "get draft-ietf-pim-bidir-03.txt". A list of Internet-Drafts directories can be found in http://www.ietf.org/shadow.html or ftp://ftp.ietf.org/ietf/1shadow-sites.txt Internet-Drafts can also be obtained by e-mail. Send a message to: mailserv@ietf.org. In the body type: "FILE /internet-drafts/draft-ietf-pim-bidir-03.txt". NOTE: The mail server at ietf.org can return the document in MIME-encoded form by using the "mpack" utility. To use this feature, insert the command "ENCODING mime" before the "FILE" command. To decode the response(s), you will need "munpack" or a MIME-compliant mail reader. Different MIME-compliant mail readers exhibit different behavior, especially when dealing with "multipart" MIME messages (i.e. documents which have been split up into multiple messages), so check your local documentation on how to manipulate these messages. Below is the data which will enable a MIME compliant mail reader implementation to automatically retrieve the ASCII version of the Internet-Draft. --NextPart Content-Type: Multipart/Alternative; Boundary="OtherAccess" --OtherAccess Content-Type: Message/External-body; access-type="mail-server"; server="mailserv@ietf.org" Content-Type: text/plain Content-ID: <20010620132314.I-D@ietf.org> ENCODING mime FILE /internet-drafts/draft-ietf-pim-bidir-03.txt --OtherAccess Content-Type: Message/External-body; name="draft-ietf-pim-bidir-03.txt"; site="ftp.ietf.org"; access-type="anon-ftp"; directory="internet-drafts" Content-Type: text/plain Content-ID: <20010620132314.I-D@ietf.org> --OtherAccess-- --NextPart-- From owner-pim@catarina.usc.edu Thu Jun 21 13:17:34 2001 Received: from catarina.usc.edu (catarina.usc.edu [128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id NAA07996 for ; Thu, 21 Jun 2001 13:17:33 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id JAA02633 for pim-list; Thu, 21 Jun 2001 09:58:10 -0700 (PDT) Received: from usc.edu (root@usc.edu [128.125.253.136]) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id JAA02628 for ; Thu, 21 Jun 2001 09:58:09 -0700 (PDT) Received: from sj-msg-core-1.cisco.com (sj-msg-core-1.cisco.com [171.71.163.11]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id JAA20302 for ; Thu, 21 Jun 2001 09:58:08 -0700 (PDT) Received: from kouvelas-u10.cisco.com (kouvelas-u10.cisco.com [171.71.228.114]) by sj-msg-core-1.cisco.com (8.11.3/8.9.1) with ESMTP id f5LGreh03221 for ; Thu, 21 Jun 2001 09:53:40 -0700 (PDT) Received: from localhost (kouvelas@localhost) by kouvelas-u10.cisco.com (8.8.8-Cisco List Logging/CISCO.WS.1.2) with ESMTP id JAA08611 for ; Thu, 21 Jun 2001 09:53:39 -0700 (PDT) Message-Id: <200106211653.JAA08611@kouvelas-u10.cisco.com> X-Authentication-Warning: kouvelas-u10.cisco.com: kouvelas owned process doing -bs To: pim@catarina.usc.edu Subject: New version of bidir PIM spec Date: Thu, 21 Jun 2001 09:53:39 -0700 From: Isidor Kouvelas Sender: owner-pim@catarina.usc.edu Precedence: bulk draft-ietf-pim-bidir-03.txt,.ps is now available. Main changes since 02: - Correction of many small errors in the DF election tables and diagram. - Added explanation for DF election actions and states. - Specification of the bidir capable Hello option. thanks I ------- Forwarded Message To: IETF-Announce: ; Cc: pim@catarina.usc.edu From: Internet-Drafts@ietf.org Reply-to: Internet-Drafts@ietf.org Subject: I-D ACTION:draft-ietf-pim-bidir-03.txt,.ps Date: Thu, 21 Jun 2001 06:59:55 -0400 Sender: owner-pim@catarina.usc.edu - --NextPart A New Internet-Draft is available from the on-line Internet-Drafts directories. This draft is a work item of the Protocol Independent Multicast Working Group of the IETF. Title : Bi-directional Protocol Independent Multicast (BIDIR-PIM) Author(s) : M. Handley, I. Kouvelas, T. Speakman, L. Vicisano Filename : draft-ietf-pim-bidir-03.txt,.ps Pages : 40 Date : 20-Jun-01 This document discusses Bi-directional PIM, a variant of PIM Sparse-Mode [9] that builds bi-directional shared trees connecting multicast sources and receivers. Bi-directional trees are built using a fail-safe Designated Forwarder (DF) election mechanism operating on each link of a multicast topology. A URL for this Internet-Draft is: http://www.ietf.org/internet-drafts/draft-ietf-pim-bidir-03.txt Internet-Drafts are also available by anonymous FTP. Login with the username "anonymous" and a password of your e-mail address. After logging in, type "cd internet-drafts" and then "get draft-ietf-pim-bidir-03.txt". A list of Internet-Drafts directories can be found in http://www.ietf.org/shadow.html or ftp://ftp.ietf.org/ietf/1shadow-sites.txt Internet-Drafts can also be obtained by e-mail. Send a message to: mailserv@ietf.org. In the body type: "FILE /internet-drafts/draft-ietf-pim-bidir-03.txt". NOTE: The mail server at ietf.org can return the document in MIME-encoded form by using the "mpack" utility. To use this feature, insert the command "ENCODING mime" before the "FILE" command. To decode the response(s), you will need "munpack" or a MIME-compliant mail reader. Different MIME-compliant mail readers exhibit different behavior, especially when dealing with "multipart" MIME messages (i.e. documents which have been split up into multiple messages), so check your local documentation on how to manipulate these messages. Below is the data which will enable a MIME compliant mail reader implementation to automatically retrieve the ASCII version of the Internet-Draft. - --NextPart Content-Type: Multipart/Alternative; Boundary="OtherAccess" - --OtherAccess Content-Type: Message/External-body; access-type="mail-server"; server="mailserv@ietf.org" Content-Type: text/plain Content-ID: <20010620132314.I-D@ietf.org> ENCODING mime FILE /internet-drafts/draft-ietf-pim-bidir-03.txt - --OtherAccess Content-Type: Message/External-body; name="draft-ietf-pim-bidir-03.txt"; site="ftp.ietf.org"; access-type="anon-ftp"; directory="internet-drafts" Content-Type: text/plain Content-ID: <20010620132314.I-D@ietf.org> - --OtherAccess-- - --NextPart-- ------- End of Forwarded Message From owner-pim@catarina.usc.edu Thu Jun 21 13:38:24 2001 Received: from catarina.usc.edu (catarina.usc.edu [128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id NAA09370 for ; Thu, 21 Jun 2001 13:38:23 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id KAA02787 for pim-list; Thu, 21 Jun 2001 10:14:22 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136]) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id KAA02782 for ; Thu, 21 Jun 2001 10:14:21 -0700 (PDT) Received: from [172.16.1.15] ([12.145.55.6]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id KAA02707 for ; Thu, 21 Jun 2001 10:14:19 -0700 (PDT) Received: from WTN10179 (unverified) by (Content Technologies SMTPRS 4.2.1) with ESMTP id for ; Thu, 21 Jun 2001 13:06:04 -0400 Message-Id: <4.2.1.20010621115415.00ac5b10@mail.opnet.com> X-Sender: azalani@mail.opnet.com X-Mailer: QUALCOMM Windows Eudora Pro Version 4.2.1 Date: Thu, 21 Jun 2001 13:07:28 -0400 To: pim@catarina.usc.edu From: Ashish Zalani Subject: Question about PIM-SM Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; format=flowed Sender: owner-pim@catarina.usc.edu Precedence: bulk Hi, I am new to this mailing list. I have a question about the PIM-SM protocol. If I understand it correctly, the PIM-SM protocol (RFC 2362) specifies that for every (*,G) or (S,G) entry in the multicast routing table, the router must maintain an Incoming Interface (iif), and an Outgoing Interface List (oif-list), along with other information. My question is, why should it maintain only one incoming interface, and not a list of incoming interfaces? Potentially there could be multiple routes to the source, each on a different interface. The reason I ask this is because I am running into a situation where one router has multiple routes to the RP of a multicast group. It sets the iif as one of the interfaces that it uses to reach the RP. But any multicast packets for that group that are received on a different interface are being dropped by the router. Is this a common problem, or have I misunderstood the spec? -Ashish. Ashish Zalani Modeling Engineer OPNET Technologies, Inc. =========================================================== Come to the networking industry's premier conference, OPNETWORK 2001 August 27 - August 31 (http://www.opnet.com/opnetwork2001/home.html) and to OPNET's cutting-edge seminars (http://www.opnet.com/seminars.html) From owner-pim@catarina.usc.edu Thu Jun 21 14:35:46 2001 Received: from catarina.usc.edu (catarina.usc.edu [128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id OAA13236 for ; Thu, 21 Jun 2001 14:35:43 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id LAA03253 for pim-list; Thu, 21 Jun 2001 11:24:05 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136]) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id LAA03248 for ; Thu, 21 Jun 2001 11:24:05 -0700 (PDT) Received: from redd2202.procket.com (flowpoint.procket.com [209.140.237.1]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id LAA25677 for ; Thu, 21 Jun 2001 11:24:04 -0700 (PDT) Received: from Procket.com (IDENT:jzwiebel@localhost.localdomain [127.0.0.1]) by redd2202.procket.com (8.11.0/8.9.3) with ESMTP id f5LIMR417317; Thu, 21 Jun 2001 11:22:28 -0700 X-Confidential: Procket Confidential/Need to know Message-ID: <3B323B63.EA13E3EF@Procket.com> Date: Thu, 21 Jun 2001 11:22:27 -0700 From: John Zwiebel Organization: Procket Networks X-Mailer: Mozilla 4.76 [en] (X11; U; Linux 2.2.16-22 i686) X-Accept-Language: en MIME-Version: 1.0 To: Ashish Zalani CC: pim@catarina.usc.edu Subject: Re: Question about PIM-SM References: <4.2.1.20010621115415.00ac5b10@mail.opnet.com> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sender: owner-pim@catarina.usc.edu Precedence: bulk Content-Transfer-Encoding: 7bit Ashish Zalani wrote: > > Hi, > > I am new to this mailing list. I have a question about the PIM-SM protocol. > > If I understand it correctly, the PIM-SM protocol (RFC 2362) specifies that Although this is the current standard, if you try to implement this you'll be making a mistake. This RFC was written at time when the multicast requirements were just beginning to be understood. I strongly encourage you to look at the new PIM draft which, although difficult to read, covers the PIM protocol much more thoroughly than the RFC. > for every (*,G) or (S,G) entry in the multicast routing table, the router > must maintain an Incoming Interface (iif), and an Outgoing Interface List > (oif-list), along with other information. My question is, why should it > maintain only one incoming interface, and not a list of incoming > interfaces? Potentially there could be multiple routes to the source, each > on a different interface. Do you want to forward two (or more) copies of the packet out all the interfaces in the Olist or one? > > The reason I ask this is because I am running into a situation where one > router has multiple routes to the RP of a multicast group. It sets the iif > as one of the interfaces that it uses to reach the RP. But any multicast > packets for that group that are received on a different interface are being > dropped by the router. > This is exactly what you want it to do. > Is this a common problem, or have I misunderstood the spec? > > -Ashish. > Ashish Zalani > Modeling Engineer > OPNET Technologies, Inc. > =========================================================== > Come to the networking industry's premier conference, > OPNETWORK 2001 August 27 - August 31 > (http://www.opnet.com/opnetwork2001/home.html) > and to OPNET's cutting-edge seminars > (http://www.opnet.com/seminars.html) > > _______________________________________________ > Pim-external mailing list > Pim-external@mailist.procket.com > http://mailist.procket.com/mailman/listinfo/pim-external From owner-pim@catarina.usc.edu Thu Jun 21 15:24:44 2001 Received: from catarina.usc.edu (catarina.usc.edu [128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id PAA15166 for ; Thu, 21 Jun 2001 15:24:40 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id MAA03615 for pim-list; Thu, 21 Jun 2001 12:09:06 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136] (may be forged)) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id MAA03610 for ; Thu, 21 Jun 2001 12:09:05 -0700 (PDT) Received: from [172.16.1.15] ([12.145.55.6]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id MAA28971 for ; Thu, 21 Jun 2001 12:08:58 -0700 (PDT) Received: from WTN10179 (unverified) by (Content Technologies SMTPRS 4.2.1) with ESMTP id ; Thu, 21 Jun 2001 15:02:07 -0400 Message-Id: <4.2.1.20010621143011.00ac4100@mail.opnet.com> X-Sender: azalani@mail.opnet.com X-Mailer: QUALCOMM Windows Eudora Pro Version 4.2.1 Date: Thu, 21 Jun 2001 15:03:21 -0400 To: John Zwiebel From: Ashish Zalani Subject: Re: Question about PIM-SM Cc: pim@catarina.usc.edu In-Reply-To: <3B323B63.EA13E3EF@Procket.com> References: <4.2.1.20010621115415.00ac5b10@mail.opnet.com> Mime-Version: 1.0 Content-Type: multipart/alternative; boundary="=====================_154719665==_.ALT" Sender: owner-pim@catarina.usc.edu Precedence: bulk --=====================_154719665==_.ALT Content-Type: text/plain; charset="us-ascii"; format=flowed > > The reason I ask this is because I am running into a situation where one > > router has multiple routes to the RP of a multicast group. It sets the iif > > as one of the interfaces that it uses to reach the RP. But any multicast > > packets for that group that are received on a different interface are being > > dropped by the router. > > > >This is exactly what you want it to do. Let me state my problem a little differently. In my case, there are multiple (equal cost) paths between the RP and this router (and those multiple paths come in on different interfaces on the router). The router stores only one interface set as it's incoming interface for the RP. But due to the multiple paths the unicast routing distributes the packets along different paths and the router receives the packets on different interfaces, though each one could have been a valid incoming interface. All packets that come in on any interface other than the marked incoming interface are dropped. I think this is undesirable behavior. -Ashish. Ashish Zalani Modeling Engineer OPNET Technologies, Inc. =========================================================== Come to the networking industry's premier conference, OPNETWORK 2001 August 27 - August 31 (http://www.opnet.com/opnetwork2001/home.html) and to OPNET's cutting-edge seminars (http://www.opnet.com/seminars.html) --=====================_154719665==_.ALT Content-Type: text/html; charset="us-ascii"
> The reason I ask this is because I am running into a situation where one
> router has multiple routes to the RP of a multicast group. It sets the iif
> as one of the interfaces that it uses to reach the RP. But any multicast
> packets for that group that are received on a different interface are being
> dropped by the router.
>

This is exactly what you want it to do.

Let me state my problem a little differently. In my case, there are multiple (equal cost) paths between the RP and this router (and those multiple paths come in on different interfaces on the router). The router stores only one interface set as it's incoming interface for the RP. But due to the multiple paths the unicast routing distributes the packets along different paths and the router receives the packets on different interfaces, though each one could have been a valid incoming interface. All packets that come in on any interface other than the marked incoming interface are dropped. I think this is undesirable behavior.

-Ashish.

Ashish Zalani   
Modeling Engineer
OPNET Technologies, Inc.
===========================================================
Come to the networking industry's premier conference,
OPNETWORK 2001 August 27 - August 31
(http://www.opnet.com/opnetwork2001/home.html)
and to OPNET's cutting-edge seminars
(http://www.opnet.com/seminars.html)

--=====================_154719665==_.ALT-- From owner-pim@catarina.usc.edu Thu Jun 21 15:26:08 2001 Received: from catarina.usc.edu (catarina.usc.edu [128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id PAA15207 for ; Thu, 21 Jun 2001 15:26:04 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id MAA03685 for pim-list; Thu, 21 Jun 2001 12:17:20 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136]) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id MAA03680 for ; Thu, 21 Jun 2001 12:17:19 -0700 (PDT) Received: from hotmail.com (oe55.law3.hotmail.com [209.185.240.55]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id MAA04888 for ; Thu, 21 Jun 2001 12:17:15 -0700 (PDT) Received: from mail pickup service by hotmail.com with Microsoft SMTPSVC; Thu, 21 Jun 2001 12:15:58 -0700 X-Originating-IP: [64.221.212.130] From: "Ajay Virginkar" To: , "Ashish Zalani" References: <4.2.1.20010621115415.00ac5b10@mail.opnet.com> Subject: Re: Question about PIM-SM Date: Thu, 21 Jun 2001 12:17:52 -0700 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 5.50.4133.2400 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4133.2400 Message-ID: X-OriginalArrivalTime: 21 Jun 2001 19:15:58.0536 (UTC) FILETIME=[9A29B480:01C0FA86] Sender: owner-pim@catarina.usc.edu Precedence: bulk Content-Transfer-Encoding: 7bit A Router X receives a Join Request from a downstream router. This prompts the router to setup a (S,G) or (*,G) route with the iif pointing to the RP. Now the Router will send a Join Request for G towards the RP on the same interface it set up as the iif. So there should not be a need to setup multiple iifs for a multicast route. If this is maintained I guess in your case, the question is why does the router receive any multicast packets for G from any other interface (other than the iif) unless a (S,G) route also exists. What is the behavior if there is only a single route towards the RP? Ajay ----- Original Message ----- From: "Ashish Zalani" To: Sent: Thursday, June 21, 2001 10:07 AM Subject: Question about PIM-SM > Hi, > > I am new to this mailing list. I have a question about the PIM-SM protocol. > > If I understand it correctly, the PIM-SM protocol (RFC 2362) specifies that > for every (*,G) or (S,G) entry in the multicast routing table, the router > must maintain an Incoming Interface (iif), and an Outgoing Interface List > (oif-list), along with other information. My question is, why should it > maintain only one incoming interface, and not a list of incoming > interfaces? Potentially there could be multiple routes to the source, each > on a different interface. > > The reason I ask this is because I am running into a situation where one > router has multiple routes to the RP of a multicast group. It sets the iif > as one of the interfaces that it uses to reach the RP. But any multicast > packets for that group that are received on a different interface are being > dropped by the router. > > Is this a common problem, or have I misunderstood the spec? > > -Ashish. > Ashish Zalani > Modeling Engineer > OPNET Technologies, Inc. > =========================================================== > Come to the networking industry's premier conference, > OPNETWORK 2001 August 27 - August 31 > (http://www.opnet.com/opnetwork2001/home.html) > and to OPNET's cutting-edge seminars > (http://www.opnet.com/seminars.html) > > > From owner-pim@catarina.usc.edu Thu Jun 21 15:38:50 2001 Received: from catarina.usc.edu (catarina.usc.edu [128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id PAA15574 for ; Thu, 21 Jun 2001 15:38:49 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id MAA03770 for pim-list; Thu, 21 Jun 2001 12:29:25 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136]) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id MAA03765 for ; Thu, 21 Jun 2001 12:29:24 -0700 (PDT) Received: from sj-msg-core-1.cisco.com (sj-msg-core-1.cisco.com [171.71.163.11]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id MAA14530 for ; Thu, 21 Jun 2001 12:29:23 -0700 (PDT) Received: from apoorva-u5.cisco.com (apoorva-u5.cisco.com [171.71.228.118]) by sj-msg-core-1.cisco.com (8.11.3/8.9.1) with ESMTP id f5LJPCh06670; Thu, 21 Jun 2001 12:25:13 -0700 (PDT) Received: from cisco.com (localhost [127.0.0.1]) by apoorva-u5.cisco.com (8.8.8-Cisco List Logging/CISCO.WS.1.2) with ESMTP id MAA07018; Thu, 21 Jun 2001 12:25:08 -0700 (PDT) Message-ID: <3B324A14.7F94BDB4@cisco.com> Date: Thu, 21 Jun 2001 12:25:08 -0700 From: Apoorva Karan X-Mailer: Mozilla 4.51C-CISCOENG [en] (X11; U; SunOS 5.6 sun4u) X-Accept-Language: en MIME-Version: 1.0 To: Ashish Zalani CC: John Zwiebel , pim@catarina.usc.edu Subject: Re: Question about PIM-SM References: <4.2.1.20010621115415.00ac5b10@mail.opnet.com> <4.2.1.20010621143011.00ac4100@mail.opnet.com> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sender: owner-pim@catarina.usc.edu Precedence: bulk Content-Transfer-Encoding: 7bit Ashish Zalani wrote: > Let me state my problem a little differently. In my case, there are > multiple (equal cost) paths between the RP and this router (and those > multiple paths come in on different interfaces on the router). The > router stores only one interface set as it's incoming interface for > the RP. But due to the multiple paths the unicast routing distributes > the packets along different paths and the router receives the packets > on different interfaces, though each one could have been a valid > incoming interface. All packets that come in on any interface other > than the marked incoming interface are dropped. I think this is > undesirable behavior. Ashish, The point here is that you do not want to forward copies of the same packet more than once. Even if you do receive multiple copies on different interfaces, you forward only the one that comes on the correct interface (which is the interface through which you have the "best" path to the RP). Thanks, Apoorva From owner-pim@catarina.usc.edu Thu Jun 21 17:25:07 2001 Received: from catarina.usc.edu (catarina.usc.edu [128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id RAA18188 for ; Thu, 21 Jun 2001 17:25:05 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id OAA04787 for pim-list; Thu, 21 Jun 2001 14:15:34 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136] (may be forged)) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id OAA04782 for ; Thu, 21 Jun 2001 14:15:33 -0700 (PDT) Received: from redd2202.procket.com (flowpoint.procket.com [209.140.237.1]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id OAA01180 for ; Thu, 21 Jun 2001 14:15:31 -0700 (PDT) Received: from Procket.com (IDENT:jzwiebel@localhost.localdomain [127.0.0.1]) by redd2202.procket.com (8.11.0/8.9.3) with ESMTP id f5LLE0417536; Thu, 21 Jun 2001 14:14:00 -0700 X-Confidential: Procket Confidential/Need to know Message-ID: <3B326398.AE877D3B@Procket.com> Date: Thu, 21 Jun 2001 14:14:00 -0700 From: John Zwiebel Organization: Procket Networks X-Mailer: Mozilla 4.76 [en] (X11; U; Linux 2.2.16-22 i686) X-Accept-Language: en MIME-Version: 1.0 To: Ashish Zalani CC: pim@catarina.usc.edu Subject: Re: Question about PIM-SM References: <4.2.1.20010621115415.00ac5b10@mail.opnet.com> <4.2.1.20010621143011.00ac4100@mail.opnet.com> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sender: owner-pim@catarina.usc.edu Precedence: bulk Content-Transfer-Encoding: 7bit Ashish Zalani wrote: > > > > The reason I ask this is because I am running into a situation > > where one > > > router has multiple routes to the RP of a multicast group. It sets > > the iif > > > as one of the interfaces that it uses to reach the RP. But any > > multicast > > > packets for that group that are received on a different interface > > are being > > > dropped by the router. > > > > > > > This is exactly what you want it to do. > > Let me state my problem a little differently. In my case, there are > multiple (equal cost) paths between the RP and this router (and those > multiple paths come in on different interfaces on the router). The > router stores only one interface set as it's incoming interface for > the RP. But due to the multiple paths the unicast routing distributes > the packets along different paths and the router receives the packets > on different interfaces, though each one could have been a valid > incoming interface. All packets that come in on any interface other > than the marked incoming interface are dropped. I think this is > undesirable behavior. > > -Ashish. > At this time, there is no way to be able to do load-sharing of multicast packets between multiple paths. You can use one and only one. The router that is "distributing" the packets on different paths is doing something wrong. Why is "unicast" routing involved in the forwarding decision at all? Unicast should only be used to determine whether or not the packet came in on the correct interface and to determine the upstream router to which you want to send a PIM join. Even the old RFC's state that if there is more than one upstream equal-cost choice that the JOIN is sent to the one with the highest IP address. From owner-pim@catarina.usc.edu Thu Jun 21 17:39:40 2001 Received: from catarina.usc.edu (catarina.usc.edu [128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id RAA18479 for ; Thu, 21 Jun 2001 17:39:40 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id OAA04860 for pim-list; Thu, 21 Jun 2001 14:30:11 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136]) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id OAA04855 for ; Thu, 21 Jun 2001 14:30:10 -0700 (PDT) Received: from motgate3.mot.com (motgate3.mot.com [144.189.100.103]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id OAA12600 for ; Thu, 21 Jun 2001 14:30:08 -0700 (PDT) Received: [from pobox4.mot.com (pobox4.mot.com [10.64.251.243]) by motgate3.mot.com (motgate3 2.1) with ESMTP id OAA12982 for ; Thu, 21 Jun 2001 14:22:23 -0700 (MST)] Received: [from il06exw10.corp.mot.com (il06exw10.corp.mot.com [199.5.78.81]) by pobox4.mot.com (MOT-pobox4 2.0) with ESMTP id OAA22036 for ; Thu, 21 Jun 2001 14:29:07 -0700 (MST)] Received: by il06exw10.corp.mot.com with Internet Mail Service (5.5.2653.19) id ; Thu, 21 Jun 2001 16:29:07 -0500 Message-ID: <1B1F9F30D74AD51188C8009027E33B3F0B07F6@il06exm03.corp.mot.com> From: Mathur Sonum-CSM109 To: "'pim@catarina.usc.edu'" Subject: RP on a stick scenario Date: Thu, 21 Jun 2001 16:29:06 -0500 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2653.19) Content-Type: text/plain; charset="iso-8859-1" Sender: owner-pim@catarina.usc.edu Precedence: bulk When RP has an (S,G) entry with Null OIF and IIF is on a shared link, which has some other recievers, there is a possibility of data hole. This was one of the issues in RFC 2362 as specified in PIM-SM issue #27: Turnaround rules incompletely specified ---------------------------------LAN | | | R1 RP R2----Rcvr | R3---Sender | Rcvr R2 never sends (S,G) Join directly to source (as it never goes to shortest path tree) and RP doesn't send periodic (S,G) Join as its OIF is Null and is not forwarding. This may lead to no data on LAN. RP needs to have some state (or special flag in (S,G) entry) which indicates that it has to send periodic (S,G) Joins to source to get data on LAN. If this issue has already been resolved in the new spec, please explain how. Thanks -- Sonum From owner-pim@catarina.usc.edu Thu Jun 21 18:47:21 2001 Received: from catarina.usc.edu (catarina.usc.edu [128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id SAA19469 for ; Thu, 21 Jun 2001 18:47:19 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id PAA05351 for pim-list; Thu, 21 Jun 2001 15:28:22 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136] (may be forged)) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id PAA05346 for ; Thu, 21 Jun 2001 15:28:21 -0700 (PDT) Received: from redd2202.procket.com (flowpoint.procket.com [209.140.237.1]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id PAA10222 for ; Thu, 21 Jun 2001 15:28:20 -0700 (PDT) Received: from Procket.com (IDENT:jzwiebel@localhost.localdomain [127.0.0.1]) by redd2202.procket.com (8.11.0/8.9.3) with ESMTP id f5LMQm417656; Thu, 21 Jun 2001 15:26:48 -0700 X-Confidential: Procket Confidential/Need to know Message-ID: <3B3274A8.361252@Procket.com> Date: Thu, 21 Jun 2001 15:26:48 -0700 From: John Zwiebel Organization: Procket Networks X-Mailer: Mozilla 4.76 [en] (X11; U; Linux 2.2.16-22 i686) X-Accept-Language: en MIME-Version: 1.0 To: Mathur Sonum-CSM109 CC: "'pim@catarina.usc.edu'" Subject: Re: RP on a stick scenario References: <1B1F9F30D74AD51188C8009027E33B3F0B07F6@il06exm03.corp.mot.com> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sender: owner-pim@catarina.usc.edu Precedence: bulk Content-Transfer-Encoding: 7bit Mathur Sonum-CSM109 wrote: If R2 doesn't send (S,G) joins (which you would have had to specifically configure it to do because even though the IIF for the RPT and the SPT may be the same, that has nothing to do with which tree that router is joined to). -- then it must be sending (*,G) joins, which means that the RP should have a non-NULL olist for the (*,G). An RP that is receiving a (*,G) join without a (S,G,RP) prune (and R2 has to be sending the (*,G) join part as long as there is a member and if it "never joins the shortest-path" as you said then it doens't include the (S,G,RP-bit) prune in the message) should know that it must continue to send (S,G) joins for the group. The specifics on you you want to make this happen are up to you. [NOTE: any router that receives a JOIN/PRUNE message with only a (*,G) part and no (S,G,rp-bit)prune part has received some very important information that it should act on.] Let me say again that if you are looking at RFC2362, you're wasting your time. > > When RP has an (S,G) entry with Null OIF and IIF is on a shared link, which has some other recievers, there is a possibility of data hole. This was one of the issues in RFC 2362 as specified in PIM-SM issue #27: Turnaround rules incompletely specified > > ---------------------------------LAN > | | | > R1 RP R2----Rcvr > | > R3---Sender > | > Rcvr > > R2 never sends (S,G) Join directly to source (as it never goes to shortest path tree) and RP doesn't send periodic (S,G) Join as its OIF is Null and is not forwarding. This may lead to no data on LAN. > > RP needs to have some state (or special flag in (S,G) entry) which indicates that it has to send periodic (S,G) Joins to source to get data on LAN. If this issue has already been resolved in the new spec, please explain how. > > Thanks > -- > Sonum > _______________________________________________ > Pim-external mailing list > Pim-external@mailist.procket.com > http://mailist.procket.com/mailman/listinfo/pim-external From owner-pim@catarina.usc.edu Fri Jun 22 10:59:49 2001 Received: from catarina.usc.edu (catarina.usc.edu [128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id KAA24181 for ; Fri, 22 Jun 2001 10:59:48 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id HAA08286 for pim-list; Fri, 22 Jun 2001 07:42:34 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136] (may be forged)) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id HAA08281 for ; Fri, 22 Jun 2001 07:42:32 -0700 (PDT) Received: from zcars0m9.ca.nortel.com (h157s242a129n47.user.nortelnetworks.com [47.129.242.157]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id HAA29023 for ; Fri, 22 Jun 2001 07:42:32 -0700 (PDT) Received: from zcars04e.ca.nortel.com (zcars04e.ca.nortel.com [47.129.242.56]) by zcars0m9.ca.nortel.com (8.11.0/8.11.0) with ESMTP id f5MEcP018729 for ; Fri, 22 Jun 2001 10:38:26 -0400 (EDT) Received: from zcard00m.ca.nortel.com by zcars04e.ca.nortel.com; Fri, 22 Jun 2001 10:38:18 -0400 Received: from zbl6c008.corpeast.baynetworks.com ([132.245.205.58]) by zcard00m.ca.nortel.com with SMTP (Microsoft Exchange Internet Mail Service Version 5.5.2653.13) id NNHYTWJC; Fri, 22 Jun 2001 10:38:17 -0400 Received: from nortelnetworks.com (sandick2k.us.nortel.com [47.141.233.64]) by zbl6c008.corpeast.baynetworks.com with SMTP (Microsoft Exchange Internet Mail Service Version 5.5.2653.13) id JM918TAP; Fri, 22 Jun 2001 10:38:18 -0400 Message-ID: <3B33585B.8FC8B8DD@nortelnetworks.com> Date: Fri, 22 Jun 2001 10:38:19 -0400 X-Sybari-Trust: b9d05a36 04008c04 04012c00 From: "Hal Sandick" Organization: Nortel Networks X-Mailer: Mozilla 4.77 [en] (Windows NT 5.0; U) X-Accept-Language: en MIME-Version: 1.0 To: John Zwiebel CC: Ashish Zalani , pim@catarina.usc.edu Subject: Re: Question about PIM-SM References: <4.2.1.20010621115415.00ac5b10@mail.opnet.com> <4.2.1.20010621143011.00ac4100@mail.opnet.com> <3B326398.AE877D3B@Procket.com> Content-Type: multipart/signed; protocol="application/x-pkcs7-signature"; micalg=sha1; boundary="------------msF9FE60691E60E154F7CCDA6D" X-Orig: Sender: owner-pim@catarina.usc.edu Precedence: bulk This is a cryptographically signed message in MIME format. --------------msF9FE60691E60E154F7CCDA6D Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit I know this is the pim list but just an FYI... MOSPF had the capability of accepting packets from multiple links between the *same* two MOSPF routers. Regards, Hal John Zwiebel wrote: > Ashish Zalani wrote: > > > > > > The reason I ask this is because I am running into a situation > > > where one > > > > router has multiple routes to the RP of a multicast group. It sets > > > the iif > > > > as one of the interfaces that it uses to reach the RP. But any > > > multicast > > > > packets for that group that are received on a different interface > > > are being > > > > dropped by the router. > > > > > > > > > > This is exactly what you want it to do. > > > > Let me state my problem a little differently. In my case, there are > > multiple (equal cost) paths between the RP and this router (and those > > multiple paths come in on different interfaces on the router). The > > router stores only one interface set as it's incoming interface for > > the RP. But due to the multiple paths the unicast routing distributes > > the packets along different paths and the router receives the packets > > on different interfaces, though each one could have been a valid > > incoming interface. All packets that come in on any interface other > > than the marked incoming interface are dropped. I think this is > > undesirable behavior. > > > > -Ashish. > > > > At this time, there is no way to be able to do load-sharing of > multicast packets between multiple paths. You can use one and > only one. > > The router that is "distributing" the packets on different paths > is doing something wrong. Why is "unicast" routing involved in > the forwarding decision at all? Unicast should only be used to > determine whether or not the packet came in on the correct interface > and to determine the upstream router to which you want to send a > PIM join. Even the old RFC's state that if there is more than > one upstream equal-cost choice that the JOIN is sent to the one with the > highest IP address. --------------msF9FE60691E60E154F7CCDA6D Content-Type: application/x-pkcs7-signature; name="smime.p7s" Content-Disposition: attachment; filename="smime.p7s" Content-Description: S/MIME Cryptographic Signature Content-Transfer-Encoding: base64 MIIH7gYJKoZIhvcNAQcCoIIH3zCCB9sCAQExCzAJBgUrDgMCGgUAMAsGCSqGSIb3DQEHAaCC BcEwggKQMIIB+aADAgECAgMEdaIwDQYJKoZIhvcNAQEEBQAwgZIxCzAJBgNVBAYTAlpBMRUw EwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEPMA0GA1UEChMGVGhh d3RlMR0wGwYDVQQLExRDZXJ0aWZpY2F0ZSBTZXJ2aWNlczEoMCYGA1UEAxMfUGVyc29uYWwg RnJlZW1haWwgUlNBIDIwMDAuOC4zMDAeFw0wMTAzMjUwMDE5NDNaFw0wMjAzMjUwMDE5NDNa ME0xHzAdBgNVBAMTFlRoYXd0ZSBGcmVlbWFpbCBNZW1iZXIxKjAoBgkqhkiG9w0BCQEWG2hz YW5kaWNrQG5vcnRlbG5ldHdvcmtzLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA n//5QkPDqZ0FtVLK/p/yUmZYfJZnblpqrVA2IEpDB5p5v/huqdMl+WxL1T5VqldWwPCRWKYP qIq7GskUCRsMUf/bvA5tw1JhAD+86rZzXzwNWYdawub1U0GO0QFHBBjC3uUnwL582qsbzJVl Sub4TQfAcAuTwAZwOMnnp2F1/+ECAwEAAaM4MDYwJgYDVR0RBB8wHYEbaHNhbmRpY2tAbm9y dGVsbmV0d29ya3MuY29tMAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEEBQADgYEAa3Ms/VA8 shuzHdLHXPie85GuBWyLQuBmFkU/5tAx0yIgoZ8GHveuDVN6p5zBmQoAND4AfgpFvKDE+bxY u83DddjSRf6L3henyseRfsEgrhCYu+Gt9xlE5LrVgni0R1kc3peLpmKVBs1O2DVnxRG5wEJX fYtXBw2+XmYRLqL5/NcwggMpMIICkqADAgECAgEMMA0GCSqGSIb3DQEBBAUAMIHRMQswCQYD VQQGEwJaQTEVMBMGA1UECBMMV2VzdGVybiBDYXBlMRIwEAYDVQQHEwlDYXBlIFRvd24xGjAY BgNVBAoTEVRoYXd0ZSBDb25zdWx0aW5nMSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9uIFNlcnZp Y2VzIERpdmlzaW9uMSQwIgYDVQQDExtUaGF3dGUgUGVyc29uYWwgRnJlZW1haWwgQ0ExKzAp BgkqhkiG9w0BCQEWHHBlcnNvbmFsLWZyZWVtYWlsQHRoYXd0ZS5jb20wHhcNMDAwODMwMDAw MDAwWhcNMDIwODI5MjM1OTU5WjCBkjELMAkGA1UEBhMCWkExFTATBgNVBAgTDFdlc3Rlcm4g Q2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMQ8wDQYDVQQKEwZUaGF3dGUxHTAbBgNVBAsTFENl cnRpZmljYXRlIFNlcnZpY2VzMSgwJgYDVQQDEx9QZXJzb25hbCBGcmVlbWFpbCBSU0EgMjAw MC44LjMwMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDeMzKmY8cJJUU+0m54J2eBxdqI GYKXDuNEKYpjNSptcDz63K737nRvMLwzkH/5NHGgo22Y8cNPomXbDfpL8dbdYaX5hc1VmjUa nZJ1qCeu2HL5ugL217CR3hzpq+AYA6h8Q0JQUYeDPPA5tJtUihOH/7ObnUlmAC0JieyUa+mh aQIDAQABo04wTDApBgNVHREEIjAgpB4wHDEaMBgGA1UEAxMRUHJpdmF0ZUxhYmVsMS0yOTcw EgYDVR0TAQH/BAgwBgEB/wIBADALBgNVHQ8EBAMCAQYwDQYJKoZIhvcNAQEEBQADgYEAcxtv JmWL/xU0S1liiu1EvknH6A27j7kNaiYqYoQfuIdjdBxtt88aU5FL4c3mONntUPQ6bDSSrOaS nG7BIwHCCafvS65y3QZn9VBvLli4tgvBUFe17BzX7xe21Yibt6KIGu05Wzl9NPy2lhglTWr0 ncXDkS+plrgFPFL83eliA0gxggH1MIIB8QIBATCBmjCBkjELMAkGA1UEBhMCWkExFTATBgNV BAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMQ8wDQYDVQQKEwZUaGF3dGUx HTAbBgNVBAsTFENlcnRpZmljYXRlIFNlcnZpY2VzMSgwJgYDVQQDEx9QZXJzb25hbCBGcmVl bWFpbCBSU0EgMjAwMC44LjMwAgMEdaIwCQYFKw4DAhoFAKCBsTAYBgkqhkiG9w0BCQMxCwYJ KoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0wMTA2MjIxNDM4MTlaMCMGCSqGSIb3DQEJBDEW BBR1Ex2FTUwdpwWb4oIzGeBqhcvlrjBSBgkqhkiG9w0BCQ8xRTBDMAoGCCqGSIb3DQMHMA4G CCqGSIb3DQMCAgIAgDAHBgUrDgMCBzANBggqhkiG9w0DAgIBQDANBggqhkiG9w0DAgIBKDAN BgkqhkiG9w0BAQEFAASBgAQb0XKMJ9iSYZoBdIaY1uBpAf4C+fc7HCMTBOPQMXHABftxlSy8 pmAV6kmnYXKwuj3HusEbRnxa07RsIg4OLRfMoQvZMZHAIojTmEu0iKIGeS98Nr1A8JY68qMa V77q8aDJpUsg7hAMJu/nkKA2qVQvnmxM7TJvk4hwP0cfZKjJ --------------msF9FE60691E60E154F7CCDA6D-- From owner-pim@catarina.usc.edu Fri Jun 22 13:40:43 2001 Received: from catarina.usc.edu (catarina.usc.edu [128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id NAA01610 for ; Fri, 22 Jun 2001 13:40:41 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id KAA09025 for pim-list; Fri, 22 Jun 2001 10:21:21 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136]) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id KAA09020 for ; Fri, 22 Jun 2001 10:21:20 -0700 (PDT) Received: from redd2202.procket.com (flowpoint.procket.com [209.140.237.1]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id KAA04495 for ; Fri, 22 Jun 2001 10:21:20 -0700 (PDT) Received: from Procket.com (IDENT:jzwiebel@localhost.localdomain [127.0.0.1]) by redd2202.procket.com (8.11.0/8.9.3) with ESMTP id f5MHIG419183; Fri, 22 Jun 2001 10:18:16 -0700 X-Confidential: Procket Confidential/Need to know Message-ID: <3B337DD8.4B4BA9D5@Procket.com> Date: Fri, 22 Jun 2001 10:18:16 -0700 From: John Zwiebel Organization: Procket Networks X-Mailer: Mozilla 4.76 [en] (X11; U; Linux 2.2.16-22 i686) X-Accept-Language: en MIME-Version: 1.0 To: Hal Sandick CC: Ashish Zalani , pim@catarina.usc.edu Subject: Re: Question about PIM-SM References: <4.2.1.20010621115415.00ac5b10@mail.opnet.com> <4.2.1.20010621143011.00ac4100@mail.opnet.com> <3B326398.AE877D3B@Procket.com> <3B33585B.8FC8B8DD@nortelnetworks.com> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sender: owner-pim@catarina.usc.edu Precedence: bulk Content-Transfer-Encoding: 7bit Hal Sandick wrote: > > I know this is the pim list but just an FYI... > > MOSPF had the capability of accepting packets from multiple links between > the *same* two MOSPF routers. > There is nothing in PIM that prevents this. But the point is orthogonal to the question posed. > Regards, > > Hal > > John Zwiebel wrote: > > > Ashish Zalani wrote: > > > > > > > > The reason I ask this is because I am running into a situation > > > > where one > > > > > router has multiple routes to the RP of a multicast group. It sets > > > > the iif > > > > > as one of the interfaces that it uses to reach the RP. But any > > > > multicast > > > > > packets for that group that are received on a different interface > > > > are being > > > > > dropped by the router. > > > > > > > > > > > > > This is exactly what you want it to do. > > > > > > Let me state my problem a little differently. In my case, there are > > > multiple (equal cost) paths between the RP and this router (and those > > > multiple paths come in on different interfaces on the router). The > > > router stores only one interface set as it's incoming interface for > > > the RP. But due to the multiple paths the unicast routing distributes > > > the packets along different paths and the router receives the packets > > > on different interfaces, though each one could have been a valid > > > incoming interface. All packets that come in on any interface other > > > than the marked incoming interface are dropped. I think this is > > > undesirable behavior. > > > > > > -Ashish. > > > > > > > At this time, there is no way to be able to do load-sharing of > > multicast packets between multiple paths. You can use one and > > only one. > > > > The router that is "distributing" the packets on different paths > > is doing something wrong. Why is "unicast" routing involved in > > the forwarding decision at all? Unicast should only be used to > > determine whether or not the packet came in on the correct interface > > and to determine the upstream router to which you want to send a > > PIM join. Even the old RFC's state that if there is more than > > one upstream equal-cost choice that the JOIN is sent to the one with the > > highest IP address. From owner-pim@catarina.usc.edu Fri Jun 22 13:47:51 2001 Received: from catarina.usc.edu (catarina.usc.edu [128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id NAA01898 for ; Fri, 22 Jun 2001 13:47:50 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id KAA09092 for pim-list; Fri, 22 Jun 2001 10:33:45 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136] (may be forged)) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id KAA09087 for ; Fri, 22 Jun 2001 10:33:44 -0700 (PDT) Received: from relay1.alcatel.be (alc119.alcatel.be [195.207.101.119]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id KAA13029 for ; Fri, 22 Jun 2001 10:33:44 -0700 (PDT) Received: from btmp80.sebb.bel.alcatel.be (localhost [127.0.0.1]) by relay1.alcatel.be (8.10.1/8.10.1) with ESMTP id f5MHTWk27945 for ; Fri, 22 Jun 2001 19:29:32 +0200 (MET DST) Received: from sebb.bel.alcatel.be ([138.203.207.20]) by btmp80.sebb.bel.alcatel.be (8.8.8+Sun/8.8.8) with ESMTP id TAA10845 for ; Fri, 22 Jun 2001 19:29:31 +0200 (MET DST) Message-ID: <3B338079.8F2B3B5B@sebb.bel.alcatel.be> Date: Fri, 22 Jun 2001 19:29:29 +0200 From: Sivasubramanian Krishnan Organization: Alcatel Bel X-Mailer: Mozilla 4.72 [en] (WinNT; I) X-Accept-Language: en MIME-Version: 1.0 To: pim@catarina.usc.edu Subject: multicast forwarding over PPPoE Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sender: owner-pim@catarina.usc.edu Precedence: bulk Content-Transfer-Encoding: 7bit Hello When several PPPoE hosts listen on the same group then it is required to duplicate the multicast packets since the PPP session ID's are different. This means that the purpose of multicast is not served over PPPoE. If there is a mapping of group addresses to session-id's when the PPP session is negotiated , similar to IP multicast group address to MAC address mapping ,then we could have all the hosts having the same session ID and avoid the duplication. One possibility is during the PPPoE Discovery Stage the PADS packet from the AC takes care of this and assigns the proper session ID based on the multicast group which could be sent somehow!!! by the host in the PADR packet as TAG . Is this feasible ? Please comment. Is there any other solution to avoid duplicate multicast packets in PPPoE ? Krishnan From owner-pim@catarina.usc.edu Fri Jun 22 13:48:48 2001 Received: from catarina.usc.edu (catarina.usc.edu [128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id NAA01985 for ; Fri, 22 Jun 2001 13:48:46 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id KAA09145 for pim-list; Fri, 22 Jun 2001 10:37:57 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136]) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id KAA09140 for ; Fri, 22 Jun 2001 10:37:56 -0700 (PDT) Received: from [172.16.5.110] ([12.145.55.10]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id KAA16046 for ; Fri, 22 Jun 2001 10:37:56 -0700 (PDT) Received: from WTN10179 (unverified) by (Content Technologies SMTPRS 4.2.1) with ESMTP id ; Fri, 22 Jun 2001 13:31:37 -0400 Message-Id: <4.2.1.20010622132741.00ac7330@mail.opnet.com> X-Sender: azalani@mail.opnet.com X-Mailer: QUALCOMM Windows Eudora Pro Version 4.2.1 Date: Fri, 22 Jun 2001 13:33:06 -0400 To: John Zwiebel From: Ashish Zalani Subject: Re: Question about PIM-SM Cc: pim@catarina.usc.edu In-Reply-To: <3B326398.AE877D3B@Procket.com> References: <4.2.1.20010621115415.00ac5b10@mail.opnet.com> <4.2.1.20010621143011.00ac4100@mail.opnet.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; format=flowed Sender: owner-pim@catarina.usc.edu Precedence: bulk At 02:14 PM 6/21/01 -0700, John Zwiebel wrote: > > > > Let me state my problem a little differently. In my case, there are > > multiple (equal cost) paths between the RP and this router (and those > > multiple paths come in on different interfaces on the router). The > > router stores only one interface set as it's incoming interface for > > the RP. But due to the multiple paths the unicast routing distributes > > the packets along different paths and the router receives the packets > > on different interfaces, though each one could have been a valid > > incoming interface. All packets that come in on any interface other > > than the marked incoming interface are dropped. I think this is > > undesirable behavior. > > > > -Ashish. > > > >At this time, there is no way to be able to do load-sharing of >multicast packets between multiple paths. You can use one and >only one. > >The router that is "distributing" the packets on different paths >is doing something wrong. Why is "unicast" routing involved in >the forwarding decision at all? Unicast should only be used to >determine whether or not the packet came in on the correct interface >and to determine the upstream router to which you want to send a >PIM join. Even the old RFC's state that if there is more than >one upstream equal-cost choice that the JOIN is sent to the one with the >highest IP address. Well, thanks to everyone who responded to my query. I must clarify that the problem that I was seeing was actually due to a bug in the implementation that I had. At first I probably misunderstood how the protocol works, but on giving it more thought I realized that there was no reason why the multiple paths should have caused problems. No, my problem actually was that the router was sending the JOIN message on one interface, but was (incorrectly) setting a different interface as the incoming interface. And this problem only surfaced when the router had multiple (unicast) paths to the RP. Sorry for all the confusion. -Ashish. Ashish Zalani Modeling Engineer OPNET Technologies, Inc. =========================================================== Come to the networking industry's premier conference, OPNETWORK 2001 August 27 - August 31 (http://www.opnet.com/opnetwork2001/home.html) and to OPNET's cutting-edge seminars (http://www.opnet.com/seminars.html) From owner-pim@catarina.usc.edu Fri Jun 22 13:49:55 2001 Received: from catarina.usc.edu (catarina.usc.edu [128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id NAA02021 for ; Fri, 22 Jun 2001 13:49:54 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id KAA09152 for pim-list; Fri, 22 Jun 2001 10:38:30 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136]) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id KAA09147 for ; Fri, 22 Jun 2001 10:38:29 -0700 (PDT) Received: from zcars0m9.ca.nortel.com (h157s242a129n47.user.nortelnetworks.com [47.129.242.157]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id KAA16417 for ; Fri, 22 Jun 2001 10:38:28 -0700 (PDT) Received: from zcars04f.ca.nortel.com (zcars04f.ca.nortel.com [47.129.242.57]) by zcars0m9.ca.nortel.com (8.11.0/8.11.0) with ESMTP id f5MHYI018138 for ; Fri, 22 Jun 2001 13:34:18 -0400 (EDT) Received: from zbl6c012.corpeast.baynetworks.com by zcars04f.ca.nortel.com; Fri, 22 Jun 2001 13:33:51 -0400 Received: from zbl6c008.corpeast.baynetworks.com ([132.245.205.58]) by zbl6c012.corpeast.baynetworks.com with SMTP (Microsoft Exchange Internet Mail Service Version 5.5.2653.13) id NN9M9QBK; Fri, 22 Jun 2001 13:33:52 -0400 Received: from nortelnetworks.com (sandick2k.us.nortel.com [47.141.233.64]) by zbl6c008.corpeast.baynetworks.com with SMTP (Microsoft Exchange Internet Mail Service Version 5.5.2653.13) id JM918TFG; Fri, 22 Jun 2001 13:33:52 -0400 Message-ID: <3B338181.718CC6C7@nortelnetworks.com> Date: Fri, 22 Jun 2001 13:33:53 -0400 X-Sybari-Trust: b9d05a36 04008c04 04012c00 From: "Hal Sandick" Organization: Nortel Networks X-Mailer: Mozilla 4.77 [en] (Windows NT 5.0; U) X-Accept-Language: en MIME-Version: 1.0 To: John Zwiebel CC: Ashish Zalani , pim@catarina.usc.edu Subject: Re: Question about PIM-SM References: <4.2.1.20010621115415.00ac5b10@mail.opnet.com> <4.2.1.20010621143011.00ac4100@mail.opnet.com> <3B326398.AE877D3B@Procket.com> <3B33585B.8FC8B8DD@nortelnetworks.com> <3B337DD8.4B4BA9D5@Procket.com> Content-Type: multipart/signed; protocol="application/x-pkcs7-signature"; micalg=sha1; boundary="------------msE2BD6AF9BF90D3EA4DADF574" X-Orig: Sender: owner-pim@catarina.usc.edu Precedence: bulk This is a cryptographically signed message in MIME format. --------------msE2BD6AF9BF90D3EA4DADF574 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit John, John Zwiebel wrote: > Hal Sandick wrote: > > > > I know this is the pim list but just an FYI... > > > > MOSPF had the capability of accepting packets from multiple links between > > the *same* two MOSPF routers. > > > > There is nothing in PIM that prevents this. I don't believe this is true. in mospf you look suppose to look at the rpf to the *router id* of the upstream router. In pim you look at the iif. > But the point is > orthogonal to the question posed. sorry, I don't entirely agree -- I think it about 60 degrees. :) Seriouly, this is one way of doing load sharing over multiple links. Regards, Hal --------------msE2BD6AF9BF90D3EA4DADF574 Content-Type: application/x-pkcs7-signature; name="smime.p7s" Content-Disposition: attachment; filename="smime.p7s" Content-Description: S/MIME Cryptographic Signature Content-Transfer-Encoding: base64 MIIH7gYJKoZIhvcNAQcCoIIH3zCCB9sCAQExCzAJBgUrDgMCGgUAMAsGCSqGSIb3DQEHAaCC BcEwggKQMIIB+aADAgECAgMEdaIwDQYJKoZIhvcNAQEEBQAwgZIxCzAJBgNVBAYTAlpBMRUw EwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEPMA0GA1UEChMGVGhh d3RlMR0wGwYDVQQLExRDZXJ0aWZpY2F0ZSBTZXJ2aWNlczEoMCYGA1UEAxMfUGVyc29uYWwg RnJlZW1haWwgUlNBIDIwMDAuOC4zMDAeFw0wMTAzMjUwMDE5NDNaFw0wMjAzMjUwMDE5NDNa ME0xHzAdBgNVBAMTFlRoYXd0ZSBGcmVlbWFpbCBNZW1iZXIxKjAoBgkqhkiG9w0BCQEWG2hz YW5kaWNrQG5vcnRlbG5ldHdvcmtzLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA n//5QkPDqZ0FtVLK/p/yUmZYfJZnblpqrVA2IEpDB5p5v/huqdMl+WxL1T5VqldWwPCRWKYP qIq7GskUCRsMUf/bvA5tw1JhAD+86rZzXzwNWYdawub1U0GO0QFHBBjC3uUnwL582qsbzJVl Sub4TQfAcAuTwAZwOMnnp2F1/+ECAwEAAaM4MDYwJgYDVR0RBB8wHYEbaHNhbmRpY2tAbm9y dGVsbmV0d29ya3MuY29tMAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEEBQADgYEAa3Ms/VA8 shuzHdLHXPie85GuBWyLQuBmFkU/5tAx0yIgoZ8GHveuDVN6p5zBmQoAND4AfgpFvKDE+bxY u83DddjSRf6L3henyseRfsEgrhCYu+Gt9xlE5LrVgni0R1kc3peLpmKVBs1O2DVnxRG5wEJX fYtXBw2+XmYRLqL5/NcwggMpMIICkqADAgECAgEMMA0GCSqGSIb3DQEBBAUAMIHRMQswCQYD VQQGEwJaQTEVMBMGA1UECBMMV2VzdGVybiBDYXBlMRIwEAYDVQQHEwlDYXBlIFRvd24xGjAY BgNVBAoTEVRoYXd0ZSBDb25zdWx0aW5nMSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9uIFNlcnZp Y2VzIERpdmlzaW9uMSQwIgYDVQQDExtUaGF3dGUgUGVyc29uYWwgRnJlZW1haWwgQ0ExKzAp BgkqhkiG9w0BCQEWHHBlcnNvbmFsLWZyZWVtYWlsQHRoYXd0ZS5jb20wHhcNMDAwODMwMDAw MDAwWhcNMDIwODI5MjM1OTU5WjCBkjELMAkGA1UEBhMCWkExFTATBgNVBAgTDFdlc3Rlcm4g Q2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMQ8wDQYDVQQKEwZUaGF3dGUxHTAbBgNVBAsTFENl cnRpZmljYXRlIFNlcnZpY2VzMSgwJgYDVQQDEx9QZXJzb25hbCBGcmVlbWFpbCBSU0EgMjAw MC44LjMwMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDeMzKmY8cJJUU+0m54J2eBxdqI GYKXDuNEKYpjNSptcDz63K737nRvMLwzkH/5NHGgo22Y8cNPomXbDfpL8dbdYaX5hc1VmjUa nZJ1qCeu2HL5ugL217CR3hzpq+AYA6h8Q0JQUYeDPPA5tJtUihOH/7ObnUlmAC0JieyUa+mh aQIDAQABo04wTDApBgNVHREEIjAgpB4wHDEaMBgGA1UEAxMRUHJpdmF0ZUxhYmVsMS0yOTcw EgYDVR0TAQH/BAgwBgEB/wIBADALBgNVHQ8EBAMCAQYwDQYJKoZIhvcNAQEEBQADgYEAcxtv JmWL/xU0S1liiu1EvknH6A27j7kNaiYqYoQfuIdjdBxtt88aU5FL4c3mONntUPQ6bDSSrOaS nG7BIwHCCafvS65y3QZn9VBvLli4tgvBUFe17BzX7xe21Yibt6KIGu05Wzl9NPy2lhglTWr0 ncXDkS+plrgFPFL83eliA0gxggH1MIIB8QIBATCBmjCBkjELMAkGA1UEBhMCWkExFTATBgNV BAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMQ8wDQYDVQQKEwZUaGF3dGUx HTAbBgNVBAsTFENlcnRpZmljYXRlIFNlcnZpY2VzMSgwJgYDVQQDEx9QZXJzb25hbCBGcmVl bWFpbCBSU0EgMjAwMC44LjMwAgMEdaIwCQYFKw4DAhoFAKCBsTAYBgkqhkiG9w0BCQMxCwYJ KoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0wMTA2MjIxNzMzNTNaMCMGCSqGSIb3DQEJBDEW BBRZ8CWc0BmyufM2pfS/GR0DhZqqRTBSBgkqhkiG9w0BCQ8xRTBDMAoGCCqGSIb3DQMHMA4G CCqGSIb3DQMCAgIAgDAHBgUrDgMCBzANBggqhkiG9w0DAgIBQDANBggqhkiG9w0DAgIBKDAN BgkqhkiG9w0BAQEFAASBgETWBohXiN3nKk9VmSLYkkJ103f5VZB9uHvWP60yRa35XhSZ73gi WuH1NNtl4dnnQweqxDgll3GV67BVQit3SUYEnTU987OM8suS0kyb4jn2d6kYhV2MAe3F9dVK E1r+0eMWBd/FajI5IA7jG5Fvv89EjuEoiypQcfyLaajdPVoP --------------msE2BD6AF9BF90D3EA4DADF574-- From owner-pim@catarina.usc.edu Fri Jun 22 22:21:31 2001 Received: from catarina.usc.edu (catarina.usc.edu [128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id WAA19210 for ; Fri, 22 Jun 2001 22:21:31 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id SAA11414 for pim-list; Fri, 22 Jun 2001 18:58:20 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136] (may be forged)) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id SAA11409 for ; Fri, 22 Jun 2001 18:58:19 -0700 (PDT) Received: from motgate.mot.com (motgate.mot.com [129.188.136.100]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id SAA27190 for ; Fri, 22 Jun 2001 18:58:19 -0700 (PDT) Received: [from mothost.mot.com (mothost.mot.com [129.188.137.101]) by motgate.mot.com (motgate 2.1) with ESMTP id SAA12361 for ; Fri, 22 Jun 2001 18:57:17 -0700 (MST)] Received: [from il06exb01.corp.mot.com (il06exb01.corp.mot.com [199.5.78.83]) by mothost.mot.com (MOT-mothost 2.0) with ESMTP id SAA06200 for ; Fri, 22 Jun 2001 18:57:17 -0700 (MST)] Received: by il06exb01.corp.mot.com with Internet Mail Service (5.5.2653.19) id ; Fri, 22 Jun 2001 20:57:17 -0500 Message-ID: <1B1F9F30D74AD51188C8009027E33B3F0B0803@il06exm03.corp.mot.com> From: Mathur Sonum-CSM109 To: "'John Zwiebel'" Cc: "'pim@catarina.usc.edu'" Subject: RE: RP on a stick scenario Date: Fri, 22 Jun 2001 20:57:16 -0500 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2653.19) Content-Type: text/plain Sender: owner-pim@catarina.usc.edu Precedence: bulk So, RP should somehow mark this scenario when its (S,G) OIF is Null and it receives (*,G) on IIF without (S,G) RPT Prune. This state would tell it to send periodic (S,G) Joins towards source. One more question related to this is - in the topology mentioned below, when R1 sends (S,G) RPT Prune on LAN for the first time, how does R2 override that Prune - with (S,G) RPT Join ? If yes, will R2 keep sending (S,G) RPT Joins periodically ? -- Sonum > ---------------------------------LAN > | | | > R1 RP R2----Rcvr > | > R3---Sender > | > Rcvr -----Original Message----- From: John Zwiebel [mailto:John.Zwiebel@Procket.com] Sent: Thursday, June 21, 2001 3:27 PM To: Mathur Sonum-CSM109 Cc: 'pim@catarina.usc.edu' Subject: Re: RP on a stick scenario Mathur Sonum-CSM109 wrote: If R2 doesn't send (S,G) joins (which you would have had to specifically configure it to do because even though the IIF for the RPT and the SPT may be the same, that has nothing to do with which tree that router is joined to). -- then it must be sending (*,G) joins, which means that the RP should have a non-NULL olist for the (*,G). An RP that is receiving a (*,G) join without a (S,G,RP) prune (and R2 has to be sending the (*,G) join part as long as there is a member and if it "never joins the shortest-path" as you said then it doens't include the (S,G,RP-bit) prune in the message) should know that it must continue to send (S,G) joins for the group. The specifics on you you want to make this happen are up to you. [NOTE: any router that receives a JOIN/PRUNE message with only a (*,G) part and no (S,G,rp-bit)prune part has received some very important information that it should act on.] Let me say again that if you are looking at RFC2362, you're wasting your time. > > When RP has an (S,G) entry with Null OIF and IIF is on a shared link, which has some other recievers, there is a possibility of data hole. This was one of the issues in RFC 2362 as specified in PIM-SM issue #27: Turnaround rules incompletely specified > > ---------------------------------LAN > | | | > R1 RP R2----Rcvr > | > R3---Sender > | > Rcvr > > R2 never sends (S,G) Join directly to source (as it never goes to shortest path tree) and RP doesn't send periodic (S,G) Join as its OIF is Null and is not forwarding. This may lead to no data on LAN. > > RP needs to have some state (or special flag in (S,G) entry) which indicates that it has to send periodic (S,G) Joins to source to get data on LAN. If this issue has already been resolved in the new spec, please explain how. > > Thanks > -- > Sonum > _______________________________________________ > Pim-external mailing list > Pim-external@mailist.procket.com > http://mailist.procket.com/mailman/listinfo/pim-external From owner-pim@catarina.usc.edu Fri Jun 22 23:36:39 2001 Received: from catarina.usc.edu (catarina.usc.edu [128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id XAA21369 for ; Fri, 22 Jun 2001 23:36:38 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id UAA11756 for pim-list; Fri, 22 Jun 2001 20:14:03 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136] (may be forged)) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id UAA11751 for ; Fri, 22 Jun 2001 20:14:02 -0700 (PDT) Received: from redd2202.procket.com (flowpoint.procket.com [209.140.237.1]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id UAA19567 for ; Fri, 22 Jun 2001 20:14:03 -0700 (PDT) Received: from Procket.com (IDENT:jzwiebel@localhost.localdomain [127.0.0.1]) by redd2202.procket.com (8.11.0/8.9.3) with ESMTP id f5N3CV420251; Fri, 22 Jun 2001 20:12:31 -0700 X-Confidential: Procket Confidential/Need to know Message-ID: <3B34091F.A5456DA6@Procket.com> Date: Fri, 22 Jun 2001 20:12:31 -0700 From: John Zwiebel Organization: Procket Networks X-Mailer: Mozilla 4.76 [en] (X11; U; Linux 2.2.16-22 i686) X-Accept-Language: en MIME-Version: 1.0 To: Mathur Sonum-CSM109 CC: "'pim@catarina.usc.edu'" Subject: Re: RP on a stick scenario References: <1B1F9F30D74AD51188C8009027E33B3F0B0803@il06exm03.corp.mot.com> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sender: owner-pim@catarina.usc.edu Precedence: bulk Content-Transfer-Encoding: 7bit Mathur Sonum-CSM109 wrote: > > So, RP should somehow mark this scenario when its (S,G) OIF is Null and it >receives (*,G) on IIF without (S,G) RPT Prune. This state would tell it to send >periodic (S,G) Joins towards source. You don't have to limit this to just the RP. Any router that has the shared-tree intersect with the shortest-path between the source and the RP could use this same functionality. (That way you don't have to have data flow up to the RP that you aren't interested in) BTW, this is the X-flag. > One more question related to this is - in the topology mentioned below, when R1 >sends (S,G) RPT Prune on LAN for the first time, how does R2 override that Prune - >with (S,G) RPT Join ? If yes, will R2 keep sending (S,G) RPT Joins periodically ? R2 doesn't have to override the prune if you do your implementation correctly. And as you suggest, having to override an (s,g,r) prune every time is kind of painful. (I believe the new PIM draft does say something about an (s,g,r) join but is pretty clear that this is a unique event that is only triggered -- this event/topology is not unique.) If I go any farther though I'll tell you how it was done at Cisco and it took me an awful long time to get (nameless) to pay attention to me on this point. :-) (Truthfully, I'm not sure its all right to get that specific, but if you had a couple of ciscos, you'd be able to watch it happen and figure it all out in about an hour. Now, if someone from Cisco wants to tell you, that's fine.) There are different trade-offs. In any case, I'm also pretty sure the new pim spec addresses this. (But I have a very bad memory and haven't read it in at least 4 months). > > -- > Sonum > > > ---------------------------------LAN > > | | | > > R1 RP R2----Rcvr > > | > > R3---Sender > > | > > Rcvr > > -----Original Message----- > From: John Zwiebel [mailto:John.Zwiebel@Procket.com] > Sent: Thursday, June 21, 2001 3:27 PM > To: Mathur Sonum-CSM109 > Cc: 'pim@catarina.usc.edu' > Subject: Re: RP on a stick scenario > > Mathur Sonum-CSM109 wrote: > > If R2 doesn't send (S,G) joins (which you would have had to specifically > configure it to do because even though the IIF for the RPT and the SPT > may > be the same, that has nothing to do with which tree that router is > joined to). > > -- then it must be sending (*,G) joins, which means that the RP should > have a non-NULL olist for the (*,G). > > An RP that is receiving a (*,G) join without a (S,G,RP) prune (and R2 > has > to be sending the (*,G) join part as long as there is a member and if > it "never joins the shortest-path" as you said then it doens't include > the (S,G,RP-bit) prune in the message) should know that it must continue > to send (S,G) joins for the group. The specifics on you you want to > make this > happen are up to you. > > [NOTE: any router that receives a JOIN/PRUNE message with only a (*,G) > part > and no (S,G,rp-bit)prune part has received some very important > information > that it should act on.] > > Let me say again that if you are looking at RFC2362, you're wasting your > time. > > > > > When RP has an (S,G) entry with Null OIF and IIF is on a shared link, which has some other recievers, there is a possibility of data hole. This was one of the issues in RFC 2362 as specified in PIM-SM issue #27: Turnaround rules incompletely specified > > > > ---------------------------------LAN > > | | | > > R1 RP R2----Rcvr > > | > > R3---Sender > > | > > Rcvr > > > > R2 never sends (S,G) Join directly to source (as it never goes to shortest path tree) and RP doesn't send periodic (S,G) Join as its OIF is Null and is not forwarding. This may lead to no data on LAN. > > > > RP needs to have some state (or special flag in (S,G) entry) which indicates that it has to send periodic (S,G) Joins to source to get data on LAN. If this issue has already been resolved in the new spec, please explain how. > > > > Thanks > > -- > > Sonum > > _______________________________________________ > > Pim-external mailing list > > Pim-external@mailist.procket.com > > http://mailist.procket.com/mailman/listinfo/pim-external From owner-pim@catarina.usc.edu Tue Jun 26 00:07:07 2001 Received: from catarina.usc.edu (catarina.usc.edu [128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id AAA06852 for ; Tue, 26 Jun 2001 00:07:06 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id UAA25118 for pim-list; Mon, 25 Jun 2001 20:48:53 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136] (may be forged)) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id UAA25113 for ; Mon, 25 Jun 2001 20:48:51 -0700 (PDT) Received: from web14507.mail.yahoo.com (web14507.mail.yahoo.com [216.136.224.70]) by usc.edu (8.9.3.1/8.9.3/usc) with SMTP id UAA06306 for ; Mon, 25 Jun 2001 20:48:50 -0700 (PDT) Message-ID: <20010626034832.11270.qmail@web14507.mail.yahoo.com> Received: from [192.11.226.122] by web14507.mail.yahoo.com; Tue, 26 Jun 2001 11:48:32 CST Date: Tue, 26 Jun 2001 11:48:32 +0800 (CST) From: =?gb2312?q?Jiang=20Pet?= Reply-To: jiangpet@yahoo.com Subject: Is there ps version of RFC2362 To: pim@catarina.usc.edu MIME-Version: 1.0 Content-Type: text/plain; charset=gb2312 Sender: owner-pim@catarina.usc.edu Precedence: bulk X-MIME-Autoconverted: from 8bit to base64 by catarina.usc.edu id UAA25118 Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from base64 to 8bit by ietf.org id AAA06852 Hi all, In RFC2362.txt, it said that figures are only in ps version. I can't find the ps version through Internet. Is there any guy can tell me where can I get the ps version? Thanks a lot. Don Jiang _________________________________________________________ Do You Yahoo!? µÇ¼Ãâ·ÑÑÅ»¢µçÓÊ! http://mail.yahoo.com.cn ¾Û½¹²Æ¾­Èȵ㣬¾¡À¿É̺£·çÔÆ£¡¡ª¡ª ÑÅ»¢²Æ¾­È«Ð¸İæ! http://cn.finance.yahoo.com From owner-pim@catarina.usc.edu Tue Jun 26 04:57:49 2001 Received: from catarina.usc.edu (catarina.usc.edu [128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id EAA25485 for ; Tue, 26 Jun 2001 04:57:47 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id BAA26165 for pim-list; Tue, 26 Jun 2001 01:49:52 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136] (may be forged)) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id BAA26160 for ; Tue, 26 Jun 2001 01:49:46 -0700 (PDT) From: arvindmk@in.huawei.com Received: from huaweimail.in.huawei.com ([203.197.168.164]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id BAA17721 for ; Tue, 26 Jun 2001 01:49:42 -0700 (PDT) Received: by HUAWEIMAIL with Internet Mail Service (5.5.2653.19) id ; Tue, 26 Jun 2001 14:21:04 +0500 Message-ID: <751B6DD7A243D511AB9F0002557C568755D80C@HUAWEIMAIL> To: pim@catarina.usc.edu Subject: Pls send the postscript version of PIM Date: Tue, 26 Jun 2001 14:20:57 +0500 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2653.19) Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C0FE21.4EC0ADC0" Sender: owner-pim@catarina.usc.edu Precedence: bulk This message is in MIME format. Since your mail reader does not understand this format, some or all of this message may not be legible. ------_=_NextPart_001_01C0FE21.4EC0ADC0 Content-Type: text/plain; charset="iso-8859-1" Hi, I downloaded the file from the But I am not able to unzip it, it seems the file is corrupted, could you send me the good copy of the same for RFC 2362 Thanks Arvind " Attitude not the Aptitude , that makes your Altitude. " "Strength is life, weekness is death" Arvind Mollin Kubendran Software Engg , Huawei Technologies Leela Palace, Airport Rd, Bangalore . Ph :5216824,26,27 Fax:5278248 ------_=_NextPart_001_01C0FE21.4EC0ADC0 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Pls send the postscript version of PIM

Hi,

I downloaded the file from = the <http://catarina.usc.edu/pim/>
But I am not able to unzip it, it = seems the file is corrupted, could you send me the good copy of the = same for RFC 2362

Thanks
Arvind


" Attitude = not the Aptitude , that makes your Altitude. "
"Strength = is life, weekness is death"

Arvind Mollin Kubendran
Software Engg , Huawei Technologies
Leela Palace, Airport Rd, Bangalore = .
Ph :5216824,26,27 Fax:5278248

------_=_NextPart_001_01C0FE21.4EC0ADC0-- From owner-pim@catarina.usc.edu Tue Jun 26 07:17:34 2001 Received: from catarina.usc.edu (catarina.usc.edu [128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id HAA27841 for ; Tue, 26 Jun 2001 07:17:06 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id DAA27187 for pim-list; Tue, 26 Jun 2001 03:51:51 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from rumi.usc.edu (rumi.usc.edu [128.125.51.41]) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id DAA27182 for ; Tue, 26 Jun 2001 03:51:48 -0700 (PDT) Received: (from pavlin@localhost) by rumi.usc.edu (8.9.3/8.9.3) id DAA05322 for pim@catarina.usc.edu; Tue, 26 Jun 2001 03:51:48 -0700 (PDT) Received: from usc.edu (root@usc.edu [128.125.253.136]) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id CAA26902 for ; Tue, 26 Jun 2001 02:31:51 -0700 (PDT) Received: from ftpbox.mot.com (ftpbox.mot.com [129.188.136.101]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id CAA29020 for ; Tue, 26 Jun 2001 02:31:48 -0700 (PDT) Received: [from mothost.mot.com (mothost.mot.com [129.188.137.101]) by ftpbox.mot.com (ftpbox 2.1) with ESMTP id CAA12501; Tue, 26 Jun 2001 02:30:46 -0700 (MST)] Received: [from hpux4.miel.mot.com (hpux4.miel.mot.com [217.1.84.89]) by mothost.mot.com (MOT-mothost 2.0) with ESMTP id CAA28586; Tue, 26 Jun 2001 02:30:15 -0700 (MST)] Received: from ganga.miel.mot.com (ganga.miel.mot.com [217.1.84.34]) by miel.mot.com (8.9.3/8.9.3) with ESMTP id PAA11073; Tue, 26 Jun 2001 15:00:21 +0530 (IST) Received: from miel.mot.com (ganga.miel.mot.com [217.1.84.34]) by ganga.miel.mot.com with ESMTP (8.7.1/8.7.1) id OAA20433; Tue, 26 Jun 2001 14:25:57 +0530 (IST) Message-ID: <3B384E1C.153FE45C@miel.mot.com> Date: Tue, 26 Jun 2001 14:25:56 +0530 From: Reji Varghese Organization: Motorola India Electronics, Bangalore-560 042, India X-Mailer: Mozilla 4.61 [en] (X11; I; HP-UX B.10.20 9000/782) X-Accept-Language: en MIME-Version: 1.0 To: arvindmk@in.huawei.com CC: pim@catarina.usc.edu Subject: Re: Pls send the postscript version of PIM References: <751B6DD7A243D511AB9F0002557C568755D80C@HUAWEIMAIL> Content-Type: multipart/mixed; boundary="------------943891EFB640BEF6DFD8A522" Sender: owner-pim@catarina.usc.edu Precedence: bulk This is a multi-part message in MIME format. --------------943891EFB640BEF6DFD8A522 Content-Type: multipart/alternative; boundary="------------AAD9762C55C4A6A4F8D65F53" --------------AAD9762C55C4A6A4F8D65F53 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Hi Arvind, Here is the .ps document (RFC 2362). Hope this is what you're looking for. Regards Reji arvindmk@in.huawei.com wrote: > > > Hi, > > I downloaded the file from the > But I am not able to unzip it, it seems the file is corrupted, could > you send me the good copy of the same for RFC 2362 > > Thanks > Arvind > > " Attitude not the Aptitude , that makes your Altitude. " > "Strength is life, weekness is death" > > Arvind Mollin Kubendran > Software Engg , Huawei Technologies > Leela Palace, Airport Rd, Bangalore . > Ph :5216824,26,27 Fax:5278248 -- Reji Varghese Motorola India --------------AAD9762C55C4A6A4F8D65F53 Content-Type: text/html; charset=us-ascii Content-Transfer-Encoding: 7bit Hi Arvind,

Here is the .ps document (RFC 2362).
Hope this is what you're looking for.

Regards
Reji

arvindmk@in.huawei.com wrote:

 

Hi,

I downloaded the file from the<http://catarina.usc.edu/pim/>
But I am not able to unzip it, it seems the file is corrupted, could you send me the good copy of the same for RFC 2362

Thanks
Arvind

" Attitude not the Aptitude , that makes your Altitude. "
"Strength is life, weekness is death"

Arvind Mollin Kubendran
Software Engg , Huawei Technologies
Leela Palace, Airport Rd, Bangalore .
Ph :5216824,26,27 Fax:5278248


-- 
Reji Varghese
Motorola India 

--------------AAD9762C55C4A6A4F8D65F53-- --------------943891EFB640BEF6DFD8A522 Content-Type: application/postscript; name="PIM-SMv2.ps" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="PIM-SMv2.ps" Content-Transfer-Encoding: 7bit %!PS-Adobe-2.0 %%Creator: dvipsk 5.58f Copyright 1986, 1994 Radical Eye Software %%Title: spec-3-6.dvi %%Pages: 52 %%PageOrder: Ascend %%BoundingBox: 0 0 612 792 %%EndComments %DVIPSCommandLine: dvips spec-3-6 %DVIPSParameters: dpi=600, compressed, comments removed %DVIPSSource: TeX output 1997.03.15:0718 %%BeginProcSet: texc.pro /TeXDict 250 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N /X{S N}B /TR{translate}N /isls false N /vsize 11 72 mul N /hsize 8.5 72 mul N /landplus90{false}def /@rigin{isls{[0 landplus90{1 -1}{-1 1} ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[matrix currentmatrix{dup dup round sub abs 0.00001 lt{round}if} forall round exch round exch]setmatrix}N /@landscape{/isls true N}B /@manualfeed{statusdict /manualfeed true put}B /@copies{/#copies X}B /FMat[1 0 0 -1 0 0]N /FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{ /nn 8 dict N nn begin /FontType 3 N /FontMatrix fntrx N /FontBBox FBB N string /base X array /BitMaps X /BuildChar{CharBuilder}N /Encoding IE N end dup{/foo setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /df{ /sf 1 N /fntrx FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0] N df-tail}B /E{pop nn dup definefont setfont}B /ch-width{ch-data dup length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{ 128 ch-data dup length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N /rc 0 N /gp 0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup /base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx 0 ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff .1 sub]/id ch-image N /rw ch-width 7 add 8 idiv string N /rc 0 N /gp 0 N /cp 0 N{rc 0 ne{rc 1 sub /rc X rw}{G}ifelse}imagemask restore}B /G{{id gp get /gp gp 1 add N dup 18 mod S 18 idiv pl S get exec}loop}B /adv{cp add /cp X}B /chg{rw cp id gp 4 index getinterval putinterval dup gp add /gp X adv}B /nd{/cp 0 N rw exit}B /lsh{rw cp 2 copy get dup 0 eq{pop 1}{ dup 255 eq{pop 254}{dup dup add 255 and S 1 and or}ifelse}ifelse put 1 adv}B /rsh{rw cp 2 copy get dup 0 eq{pop 128}{dup 255 eq{pop 127}{dup 2 idiv S 128 and or}ifelse}ifelse put 1 adv}B /clr{rw cp 2 index string putinterval adv}B /set{rw cp fillstr 0 4 index getinterval putinterval adv}B /fillstr 18 string 0 1 17{2 copy 255 put pop}for N /pl[{adv 1 chg} {adv 1 chg nd}{1 add chg}{1 add chg nd}{adv lsh}{adv lsh nd}{adv rsh}{ adv rsh nd}{1 add adv}{/rc X nd}{1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]dup{bind pop}forall N /D{/cc X dup type /stringtype ne{] }if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup length 1 sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}B /I{ cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin 0 0 moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N /eop{SI restore userdict /eop-hook known{eop-hook}if showpage}N /@start{userdict /start-hook known{start-hook}if pop /VResolution X /Resolution X 1000 div /DVImag X /IE 256 array N 0 1 255{IE S 1 string dup 0 3 index put cvn put}for 65781.76 div /vsize X 65781.76 div /hsize X}N /p{show}N /RMat[1 0 0 -1 0 0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley X /rulex X V}B /V {}B /RV statusdict begin /product where{pop product dup length 7 ge{0 7 getinterval dup(Display)eq exch 0 4 getinterval(NeXT)eq or}{pop false} ifelse}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale rulex ruley false RMat{BDot}imagemask grestore}}{{gsave TR -.1 .1 TR rulex ruley scale 1 1 false RMat{BDot}imagemask grestore}}ifelse B /QV{gsave newpath transform round exch round exch itransform moveto rulex 0 rlineto 0 ruley neg rlineto rulex neg 0 rlineto fill grestore}B /a{moveto}B /delta 0 N /tail {dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{S p tail}B /c{-4 M} B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{3 M}B /k{ 4 M}B /w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p -1 w}B /q{ p 1 w}B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{3 2 roll p a}B /bos{/SS save N}B /eos{SS restore}B end %%EndProcSet %%BeginProcSet: special.pro TeXDict begin /SDict 200 dict N SDict begin /@SpecialDefaults{/hs 612 N /vs 792 N /ho 0 N /vo 0 N /hsc 1 N /vsc 1 N /ang 0 N /CLIP 0 N /rwiSeen false N /rhiSeen false N /letter{}N /note{}N /a4{}N /legal{}N}B /@scaleunit 100 N /@hscale{@scaleunit div /hsc X}B /@vscale{@scaleunit div /vsc X}B /@hsize{/hs X /CLIP 1 N}B /@vsize{/vs X /CLIP 1 N}B /@clip{ /CLIP 2 N}B /@hoffset{/ho X}B /@voffset{/vo X}B /@angle{/ang X}B /@rwi{ 10 div /rwi X /rwiSeen true N}B /@rhi{10 div /rhi X /rhiSeen true N}B /@llx{/llx X}B /@lly{/lly X}B /@urx{/urx X}B /@ury{/ury X}B /magscale true def end /@MacSetUp{userdict /md known{userdict /md get type /dicttype eq{userdict begin md length 10 add md maxlength ge{/md md dup length 20 add dict copy def}if end md begin /letter{}N /note{}N /legal{} N /od{txpose 1 0 mtx defaultmatrix dtransform S atan/pa X newpath clippath mark{transform{itransform moveto}}{transform{itransform lineto} }{6 -2 roll transform 6 -2 roll transform 6 -2 roll transform{ itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll curveto}}{{ closepath}}pathforall newpath counttomark array astore /gc xdf pop ct 39 0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack}if}N /txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1 -1 scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub neg 0 TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{noflips{TR pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop 90 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr 1 get neg sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr 2 get ppr 0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4 -1 roll add 2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S TR}if}N /cp {pop pop showpage pm restore}N end}if}if}N /normalscale{Resolution 72 div VResolution 72 div neg scale magscale{DVImag dup scale}if 0 setgray} N /psfts{S 65781.76 div N}N /startTexFig{/psf$SavedState save N userdict maxlength dict begin /magscale true def normalscale currentpoint TR /psf$ury psfts /psf$urx psfts /psf$lly psfts /psf$llx psfts /psf$y psfts /psf$x psfts currentpoint /psf$cy X /psf$cx X /psf$sx psf$x psf$urx psf$llx sub div N /psf$sy psf$y psf$ury psf$lly sub div N psf$sx psf$sy scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub TR /showpage{}N /erasepage{}N /copypage{}N /p 3 def @MacSetUp}N /doclip{ psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll newpath 4 copy 4 2 roll moveto 6 -1 roll S lineto S lineto S lineto closepath clip newpath moveto}N /endTexFig{end psf$SavedState restore}N /@beginspecial{SDict begin /SpecialSave save N gsave normalscale currentpoint TR @SpecialDefaults count /ocount X /dcount countdictstack N}N /@setspecial {CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto closepath clip}if ho vo TR hsc vsc scale ang rotate rwiSeen{rwi urx llx sub div rhiSeen{rhi ury lly sub div}{dup}ifelse scale llx neg lly neg TR }{rhiSeen{rhi ury lly sub div dup scale llx neg lly neg TR}if}ifelse CLIP 2 eq{newpath llx lly moveto urx lly lineto urx ury lineto llx ury lineto closepath clip}if /showpage{}N /erasepage{}N /copypage{}N newpath }N /@endspecial{count ocount sub{pop}repeat countdictstack dcount sub{ end}repeat grestore SpecialSave restore end}N /@defspecial{SDict begin} N /@fedspecial{end}B /li{lineto}B /rl{rlineto}B /rc{rcurveto}B /np{ /SaveX currentpoint /SaveY X N 1 setlinecap newpath}N /st{stroke SaveX SaveY moveto}N /fil{fill SaveX SaveY moveto}N /ellipse{/endangle X /startangle X /yrad X /xrad X /savematrix matrix currentmatrix N TR xrad yrad scale 0 0 1 startangle endangle arc savematrix setmatrix}N end %%EndProcSet TeXDict begin 40258431 52099146 1000 600 600 (spec-3-6.dvi) @start /Fa 64 127 df<00101304007C131F00FEEB3F80A26C137FA248133FB2007E14 00007C7F003C131E00101304191C75B830>34 D<141E147F14FF5BEB03FEEB07FCEB0FF0 EB1FE0EB3FC0EB7F80EBFF00485A5B12035B485A120F5BA2485AA2123F5BA2127F90C7FC A412FEAD127FA47F123FA27F121FA26C7EA27F12076C7E7F12017F6C7EEB7F80EB3FC0EB 1FE0EB0FF0EB07FCEB03FEEB01FF7F147F141E184771BE30>40 D<127812FE7E7F6C7E6C 7EEA0FF06C7E6C7E6C7E6C7EEB7F80133F14C0131FEB0FE014F01307A2EB03F8A214FC13 01A214FE1300A4147FAD14FEA4130114FCA2130314F8A2EB07F0A2130F14E0EB1FC0133F 1480137FEBFF00485A485A485A485AEA3FE0485A485A90C7FC5A1278184778BE30>I<14 3EA2147FAF007FB7FCA2B81280A36C1600A2C76CC8FCAF143EA229297DAF30>43 DI<007FB612F0A2B712F8A3 6C15F0A225077B9E30>I<120FEA3FC0EA7FE0A2EAFFF0A4EA7FE0A2EA3FC0EA0F000C0C 6E8B30>I<14FE903807FFC0497F013F13F8497F90B57E48EB83FF4848C6138049137F48 48EB3FC04848EB1FE049130F001F15F0491307A24848EB03F8A290C712014815FCA400FE EC00FEAD6C14016C15FCA36D1303003F15F8A26D1307001F15F0A26D130F6C6CEB1FE0A2 6C6CEB3FC06C6CEB7F806D13FF2601FF8313006CEBFFFE6D5B6D5B010F13E06D5BD900FE C7FC273A7CB830>48 DIIII<000FB61280 4815C05AA316800180C8FCAEEB83FF019F13C090B512F015FC8181D9FE0313809039F000 7FC049133F0180EB1FE06CC7120F000E15F0C81207A216F81503A31218127EA2B4FC1507 16F048140F6C15E06C141F6DEB3FC06D137F3A3FE001FF80261FFC0F13006CB55A6C5C6C 5C6C14E06C6C1380D90FFCC7FC25397BB730>II<127CB712FC16FEA416FC48C7EA 0FF816F0ED1FE0007CEC3FC0C8EA7F80EDFF00A24A5A4A5A5D14075D140F5D4A5AA24A5A A24AC7FCA25C5C13015CA213035CA213075CA4495AA6131F5CA96D5A6DC8FC273A7CB830 >I<49B4FC011F13F0017F13FC90B57E0003ECFF804815C048010113E03A1FF8003FF049 131FD83FC0EB07F8A24848EB03FC90C71201A56D1303003F15F86D13076C6CEB0FF06C6C EB1FE0D807FCEB7FC03A03FF83FF806C90B512006C6C13FC011F13F0497F90B512FE4880 2607FE0013C0D80FF8EB3FE0D81FE0EB0FF04848EB07F8491303007F15FC90C712014815 FE481400A66C14016C15FC6D1303003F15F86D1307D81FF0EB1FF06D133F3A0FFF01FFE0 6C90B512C06C1580C6ECFE006D5B011F13F0010190C7FC273A7CB830>I<49B4FC010F13 E0013F13F890B57E4880488048010113803A0FFC007FC0D81FF0EB3FE04848131F49EB0F F048481307A290C7EA03F85A4815FC1501A416FEA37E7E6D130315076C7E6C6C130F6D13 3FD80FFC13FF6CB6FC7E6C14FE6C14F9013FEBE1FC010F138190380060011400ED03F8A2 150716F0150F000F15E0486C131F486CEB3FC0157FEDFF804A1300EC07FE391FF01FFC90 B55A6C5C6C5C6C1480C649C7FCEB3FF0273A7CB830>I<147F4A7EA2497FA4497F14F7A4 01077F14E3A3010F7FA314C1A2011F7FA490383F80FEA590387F007FA4498049133F90B6 FCA34881A39038FC001F00038149130FA4000781491307A2D87FFFEB7FFFB56CB51280A4 6C496C130029397DB830>65 D<007FB512F0B612FE6F7E82826C813A03F8001FF815076F 7E1501A26F7EA615015EA24B5A1507ED1FF0ED7FE090B65A5E4BC7FC6F7E16E0829039F8 000FF8ED03FC6F7E1500167FA3EE3F80A6167F1700A25E4B5A1503ED1FFC007FB6FCB75A 5E16C05E6C02FCC7FC29387EB730>I<91387F803C903903FFF03E49EBFC7E011F13FE49 EBFFFE5B9038FFE07F48EB801F3903FE000F484813075B48481303A2484813015B123F49 1300A2127F90C8FC167C16005A5AAC7E7EA2167C6D14FE123FA27F121F6D13016C6C14FC A26C6CEB03F86D13076C6CEB0FF03901FF801F6C9038E07FE06DB512C06D14806D140001 0713FC6D13F09038007FC0273A7CB830>I<003FB512E04814FCB67E6F7E6C816C813A03 F8007FF0ED1FF8150F6F7E6F7E15016F7EA2EE7F80A2163F17C0161FA4EE0FE0AC161F17 C0A3163F1780A2167F17005E4B5A15034B5A150F4B5AED7FF0003FB65A485DB75A93C7FC 6C14FC6C14E02B387FB730>I<007FB7FCB81280A47ED803F8C7123FA8EE1F0093C7FCA4 157C15FEA490B5FCA6EBF800A4157C92C8FCA5EE07C0EE0FE0A9007FB7FCB8FCA46C16C0 2B387EB730>I<003FB712804816C0B8FCA27E7ED801FCC7121FA8EE0F8093C7FCA5153E 157FA490B6FCA69038FC007FA4153E92C8FCAE383FFFF8487FB5FCA27E6C5B2A387EB730 >I<02FF13F00103EBC0F8010F13F1013F13FD4913FF90B6FC4813C1EC007F4848133F48 48131F49130F485A491307121F5B123F491303A2127F90C7FC6F5A92C8FC5A5AA892B5FC 4A14805CA26C7F6C6D1400ED03F8A27F003F1407A27F121F6D130F120F7F6C6C131FA2D8 03FE133F6C6C137FECC1FF6C90B5FC7F6D13FB010F13F30103EBC1F0010090C8FC293A7D B830>I<3B3FFF800FFFE0486D4813F0B56C4813F8A26C496C13F06C496C13E0D803F8C7 EAFE00B290B6FCA601F8C7FCB3A23B3FFF800FFFE0486D4813F0B56C4813F8A26C496C13 F06C496C13E02D387FB730>I<007FB6FCB71280A46C1500260007F0C7FCB3B3A8007FB6 FCB71280A46C1500213879B730>I<49B512F04914F85BA27F6D14F090C7EAFE00B3B312 3C127EB4FCA24A5A1403EB8007397FF01FF86CB55A5D6C5C00075C000149C7FC38003FF0 25397AB730>I<383FFFF8487FB57EA26C5B6C5BD801FCC9FCB3B0EE0F80EE1FC0A9003F B7FC5AB8FCA27E6C16802A387EB730>76 DII<90383FFFE048B512FC000714FF481580 4815C04815E0EBF80001E0133FD87F80EB0FF0A290C71207A44815F8481403B3A96C1407 A26C15F0A36D130FA26D131F6C6CEB3FE001F813FF90B6FC6C15C06C15806C1500000114 FCD8003F13E0253A7BB830>I<007FB512F0B612FE6F7E16E0826C813903F8003FED0FFC ED03FE15016F7EA2821780163FA6167F17005EA24B5A1503ED0FFCED3FF890B6FC5E5E16 804BC7FC15F001F8C9FCB0387FFFC0B57EA46C5B29387EB730>I<003FB57E4814F0B612 FC15FF6C816C812603F8017F9138003FF0151F6F7E15071503821501A515035E1507150F 4B5A153F4AB45A90B65A5E93C7FC5D8182D9F8007FED3FE0151F150F821507A817F8EEF1 FCA53A3FFF8003FB4801C0EBFFF8B56C7E17F06C496C13E06C49EB7FC0C9EA1F002E397F B730>82 D<90390FF803C0D97FFF13E048B512C74814F74814FF5A381FF80F383FE00149 7E4848137F90C7123F5A48141FA2150FA37EED07C06C91C7FC7F7FEA3FF0EA1FFEEBFFF0 6C13FF6C14E0000114F86C80011F13FF01031480D9003F13C014019138007FE0151FED0F F0A2ED07F8A2007C140312FEA56C140716F07F6DEB0FE06D131F01F8EB3FC001FF13FF91 B51280160000FD5CD8FC7F13F8D8F81F5BD878011380253A7BB830>I<003FB712C04816 E0B8FCA43AFE003F800FA8007CED07C0C791C7FCB3B1011FB5FC4980A46D91C7FC2B387E B730>I<3B7FFFC007FFFCB56C4813FEA46C496C13FCD803F8C7EA3F80B3B16D147F0001 1600A36C6C14FE6D13016D5CEC800390393FE00FF890391FF83FF06DB55A6D5C6D5C6D91 C7FC9038007FFCEC1FF02F3980B730>III<3A3FFF01FFF84801837F02C77FA202835B6C01015B3A01FC007F806D 91C7FC00005C6D5BEB7F01EC81FCEB3F8314C3011F5B14E7010F5B14FF6D5BA26D5BA26D 5BA26D90C8FCA4497FA2497FA2815B81EB0FE781EB1FC381EB3F8181EB7F0081497F4980 0001143F49800003141F49800007140FD87FFEEB7FFFB590B5128080A25C6C486D130029 387DB730>I97 DII<913801FFE04A7F5CA28080EC0007AAEB03FE90381FFF874913E7 90B6FC5A5A481303380FFC00D81FF0133F49131F485A150F4848130790C7FCA25AA25AA8 7E6C140FA27F003F141F6D133F6C7E6D137F390FF801FF2607FE07EBFFC06CB712E06C16 F06C14F76D01C713E0011F010313C0D907FCC8FC2C397DB730>I<49B4FC010713E0011F 13F8017F7F90B57E488048018113803A07FC007FC04848133FD81FE0EB1FE0150F484814 F0491307127F90C7FCED03F85A5AB7FCA516F048C9FC7E7EA27F003FEC01F06DEB03F86C 7E6C7E6D1307D807FEEB1FF03A03FFC07FE06C90B5FC6C15C0013F14806DEBFE00010713 F8010013C0252A7CA830>IIII<14E0EB03F8A2497EA36D5AA2EB00E091C8FC A9381FFFF8487F5AA27E7EEA0001B3A9003FB612C04815E0B7FCA27E6C15C023397AB830 >I107 D<387FFFF8B57EA47EEA0001B3B3A8007FB612F0 B712F8A46C15F025387BB730>I<02FC137E3B7FC3FF01FF80D8FFEF01877F90B500CF7F 15DF92B57E6C010F13872607FE07EB03F801FC13FE9039F803FC01A201F013F8A301E013 F0B3A23C7FFE0FFF07FF80B548018F13C0A46C486C01071380322881A730>II<49B4FC010F13E0013F13F8497F90B57E0003ECFF8014013A07 FC007FC04848EB3FE0D81FE0EB0FF0A24848EB07F8491303007F15FC90C71201A300FEEC 00FEA86C14016C15FCA26D1303003F15F86D13076D130F6C6CEB1FF06C6CEB3FE06D137F 3A07FF01FFC06C90B512806C15006C6C13FC6D5B010F13E0010190C7FC272A7CA830>I< EC03FE3A3FFC1FFF80267FFE7F13E000FF90B57E90B612FC6C816CEBFE07C69038F001FF 4A6C13804A137F4AEB3FC091C7121F4915E0160FA217F01607A8160FA217E07F161F6EEB 3FC0A26EEB7F806E13FFDAF00313009138FC0FFE91B55A5E495C6E13C0021F90C7FCEC03 FC91C9FCAD383FFFF8487FB57EA26C5B6C5B2C3C80A730>I114 D<90381FFC1E48B5129F000714FF5A5A5A387FF007EB800100FEC7FC4880A46C143E007F 91C7FC13E06CB4FC6C13FC6CEBFF806C14E0000114F86C6C7F01037F9038000FFF020013 80007C147F00FEEC1FC0A2150F7EA27F151F6DEB3F806D137F9039FC03FF0090B6FC5D5D 00FC14F0D8F83F13C026780FFEC7FC222A79A830>III<3B3FFFC0 7FFF80486DB512C0B515E0A26C16C06C496C13803B01F80003F000A26D130700005DA26D 130F017E5CA2017F131F6D5CA2EC803F011F91C7FCA26E5A010F137EA2ECE0FE01075BA2 14F101035BA3903801FBF0A314FF6D5BA36E5A6E5A2B277EA630>I<3B3FFFC01FFFE048 6D4813F0B515F8A26C16F06C496C13E0D807E0C7EA3F00A26D5C0003157EA56D14FE0001 5DEC0F80EC1FC0EC3FE0A33A00FC7FF1F8A2147DA2ECFDF9017C5C14F8A3017E13FBA290 393FF07FE0A3ECE03FA2011F5C90390F800F802D277FA630>I<3A3FFF81FFFC4801C37F B580A26C5D6C01815BC648C66CC7FC137FEC80FE90383F81FC90381FC3F8EB0FE3ECE7F0 6DB45A6D5B7F6D5B92C8FC147E147F5C497F81903803F7E0EB07E790380FE3F0ECC1F890 381F81FC90383F80FE90387F007E017E137F01FE6D7E48486D7E267FFF80B5FCB500C114 8014E3A214C16C0180140029277DA630>I<3B3FFFC07FFF80486DB512C0B515E0A26C16 C06C496C13803B01FC0003F000A2000014076D5C137E150F017F5C7F151FD91F805BA214 C0010F49C7FCA214E00107137EA2EB03F0157C15FCEB01F85DA2EB00F9ECFDF0147D147F A26E5AA36E5AA35DA2143F92C8FCA25C147EA2000F13FE486C5AEA3FC1EBC3F81387EB8F F0EBFFE06C5B5C6C90C9FC6C5AEA01F02B3C7EA630>I<127CA212FEB3B3B3AD127CA207 476CBE30>124 D<017C133848B4137C48EB80FE4813C14813C348EBEFFC397FEFFFF0D8 FF8713E0010713C0486C1380D87C0113003838007C1F0C78B730>126 D E /Fb 1 106 df<1307EB0F80EB1FC0A2EB0F80EB070090C7FCA9EA01E0EA07F8EA0E 3CEA1C3E123812301270EA607EEAE07C12C013FC485A120012015B12035BA21207EBC040 14C0120F13801381381F01801303EB0700EA0F06131EEA07F8EA01F0122E7EAC18>105 D E /Fc 35 122 df<121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A0A798919>58 D<121EEA7F8012FF13C0A213E0A3127FEA1E601200A413E013C0A312011380120313005A 120E5A1218123812300B1C798919>I<1806181F187FEF01FFEF07FCEF1FF0EF7FC09338 01FF00EE07FCEE3FF0EEFFC0030390C7FCED0FFCED3FE0EDFF80DA03FEC8FCEC0FF8EC7F E0903801FF80D907FEC9FCEB1FF8EB7FC04848CAFCEA07FCEA1FF0EA7FC048CBFCA2EA7F C0EA1FF0EA07FCEA01FF38007FC0EB1FF8EB07FE903801FF809038007FE0EC0FF8EC03FE 913800FF80ED3FE0ED0FFCED03FF030013C0EE3FF0EE07FCEE01FF9338007FC0EF1FF0EF 07FCEF01FFEF007F181F1806383679B147>II<126012F812FE6C7EEA3FE0EA0FF8 EA03FEC66C7EEB3FE0EB0FFCEB03FF010013C0EC3FF0EC07FCEC01FF9138007FC0ED1FF0 ED07FE923801FF809238007FE0EE1FF8EE03FE933800FF80EF3FE0EF0FF8EF03FEEF00FF A2EF03FEEF0FF8EF3FE0EFFF80933803FE00EE1FF8EE7FE0923801FF80DB07FEC7FCED1F F0ED7FC04A48C8FCEC07FCEC3FF0ECFFC0010390C9FCEB0FFCEB3FE0EBFF80D803FECAFC EA0FF8EA3FE0EAFF8048CBFC12F81260383679B147>I<17075F84171FA2173F177FA217 FFA25E5EA24C6C7EA2EE0E3F161E161C1638A21670A216E0ED01C084ED0380171FED0700 5D150E5DA25D157815705D844A5A170F4A5A4AC7FC92B6FC5CA2021CC7120F143C14384A 81A24A140713015C495AA249C8FC5B130E131E4982137C13FED807FFED1FFEB500F00107 B512FCA219F83E417DC044>65 D 67 D<49B712F818FF19C0D9000190C7EA3FF0F00FF84BEC03FCF000FE197F0203EE3F80 5DF11FC0A20207EE0FE05D1AF0A2020F16075DA21AF8141F5DA2190F143F5DA21AF0147F 4B151FA302FF17E092C9123FA21AC049177F5C1A8019FF010318005C4E5A61010716034A 5E4E5A180F010F4C5A4A5E4E5A4EC7FC011F16FE4A4A5AEF07F8013FED0FE0EF3FC04A49 B4C8FC017FEC0FFCB812F017C004FCC9FC453E7DBD4B>I71 D<49B56C93383FFFF05113E098B5FCD9 0001F1E000704B5B03DF933803BF80A2F2077F1403039F040E90C7FC1A1CDB8FE05E0207 5F030F4C5AA21AE1020FEE01C1020E606F6CEC03811A83021EEE0703021C040E5BA2F11C 07023C16380238606F6C1470F1E00F14780270DB01C05BA2953803801F02F0ED07004A6C 6C5E180E4E133F130102C04B5C601A7F01036D6C5B4A95C8FC4D5A4D485B130791C749C7 5A170E047F1401495D010E4B5CA24D1303131E011C4B5C5F013C023F1407017C5D01FE92 C75BD803FF4D7EB500FC013E011FB512F8163C041C5E5C3E7DBD58>77 D<49B712F018FF19C0D9000190C76C7EF00FF84BEC03FC1801020382727E5DA214071A80 5DA2140F4E13005DA2021F5E18034B5D1807023F5E4E5A4B4A5A4E5A027F4B5A06FEC7FC 4BEB03FCEF3FF091B712C005FCC8FC92CBFCA25BA25CA21303A25CA21307A25CA2130FA2 5CA2131FA25CA2133FA25C497EB612E0A3413E7DBD3A>80 D<49B77E18F818FFD90001D9 00017F9438003FE04BEC0FF0727E727E14034B6E7EA30207825DA3020F4B5A5DA24E5A14 1F4B4A5A614E5A023F4B5A4B4A5A06FEC7FCEF03FC027FEC0FF04BEBFF8092B500FCC8FC 5F9139FF8001FE92C7EA7F80EF1FC084496F7E4A1407A28413035CA2170F13075C60171F 130F5CA3011F033F5B4AEE038018E0013F17071A004A021F5B496C160EB600E090380FF0 1E05075B716C5ACBEAFFE0F03F8041407DBD45>82 DI<48B912FCA25A913A0003FE000F01F84A1301D807E0EE00F8491307491778000F5D 90C7FC001E140FA2001C4B1470123C0038141FA200785D1270033F15F000F018E0485DC8 1600157FA25EA215FFA293C9FCA25CA25DA21403A25DA21407A25DA2140FA25DA2141FA2 5DA2143FA25DA2147FA214FF497F001FB612FCA25E3E3D7FBC35>I86 DI97 DIIII 103 DI<143C14FEA21301A314FCEB00701400AD137E3801FF803803 C7C0EA0703000F13E0120E121C13071238A2EA780F007013C0A2EAF01F14801200133F14 005B137EA213FE5BA212015B0003130E13F0A20007131EEBE01CA2143CEBC03814781470 14E013C13803E3C03801FF00EA007C173E7EBC1F>I107 DIII I114 DI<147014FC1301A25CA21303A25CA21307A2 5CA2130FA25CA2007FB512F0B6FC15E039001F8000133FA291C7FCA25BA2137EA213FEA2 5BA21201A25BA21203A25BA21207EC01C013E01403000F1480A2EBC0071500140E141E5C 000713385C3803E1E03801FF80D8003EC7FC1C3A7EB821>I<137C48B4EC03802603C7C0 EB0FC0EA0703000F7F000E151F121C010715801238163FEA780F0070491400A2D8F01F5C 5C0000157E133F91C712FEA2495C137E150113FE495CA215030001161C4914F0A2150717 3CEEE038150F031F1378000016706D133F017C017313F0017E01E313E0903A3F03C1F1C0 903A0FFF007F80D901FCEB1F002E297EA734>I120 D<137C48B4EC03802603C7C0EB0FC0EA0703000F7F000E151F001C168013071238163FD8 780F150000705BA2D8F01F5C4A137E1200133F91C712FE5E5B137E150113FE495CA21503 00015D5BA215075EA2150F151F00005D6D133F017C137F017E13FF90393F03DF8090380F FF1FEB01FC90C7123F93C7FCA25DD80380137ED80FE013FE001F5C4A5AA24848485A4A5A 6CC6485A001C495A001E49C8FC000E137C380781F03803FFC0C648C9FC2A3B7EA72D>I E /Fd 6 104 df<007FB812FEBAFCA26C17FE3804799847>0 D<121EEA7F80A2EAFFC0A4 EA7F80A2EA1E000A0A799B19>I3 D15 D<153FEC03FFEC0FE0EC3F80EC7E00495A5C495AA2495AB3AA130F5C 131F495A91C7FC13FEEA03F8EA7FE048C8FCEA7FE0EA03F8EA00FE133F806D7E130F8013 07B3AA6D7EA26D7E80EB007EEC3F80EC0FE0EC03FFEC003F205B7AC32D>102 D<12FCEAFFC0EA07F0EA01FCEA007E6D7E131F6D7EA26D7EB3AA801303806D7E1300147F EC1FC0EC07FEEC00FFEC07FEEC1FC0EC7F0014FC1301495A5C13075CB3AA495AA2495A13 3F017EC7FC485AEA07F0EAFFC000FCC8FC205B7AC32D>I E /Fe 62 122 df13 D40 D<12F07E127E7E6C7E6C7E6C7E7F6C7E6C7E12007F137F80133F806D7EA26D7EA26D7EA2 801303A2801301A280A27F1580A4EC7FC0A615E0A2143FAE147FA215C0A6ECFF80A41500 5BA25CA213035CA213075CA2495AA2495AA2495A5C137F91C7FC13FE5B1201485A485A5B 485A485A48C8FC127E12F85A1B647ACA2C>I44 DIIIIIII<163FA25E5E5D5DA25D5D5D5DA25D92B5FCEC01F7EC03E7140715C7EC0F87EC1F07 143E147E147C14F8EB01F0EB03E0130714C0EB0F80EB1F00133E5BA25B485A485A485A12 0F5B48C7FC123E5A12FCB91280A5C8000F90C7FCAC027FB61280A531417DC038>I<0007 150301E0143F01FFEB07FF91B6FC5E5E5E5E5E16804BC7FC5D15E092C8FC01C0C9FCAAEC 3FF001C1B5FC01C714C001DF14F09039FFE03FFC9138000FFE01FC6D7E01F06D13804915 C0497F6C4815E0C8FC6F13F0A317F8A4EA0F80EA3FE0487E12FF7FA317F05B5D6C4815E0 5B007EC74813C0123E003F4A1380D81FC0491300D80FF0495AD807FEEBFFFC6CB612F0C6 5D013F1480010F01FCC7FC010113C02D427BC038>I<4AB47E021F13F0027F13FC49B6FC 01079038807F8090390FFC001FD93FF014C04948137F4948EBFFE048495A5A1400485A12 0FA248486D13C0EE7F80EE1E00003F92C7FCA25B127FA2EC07FC91381FFF8000FF017F13 E091B512F89039F9F01FFC9039FBC007FE9039FF8003FF17804A6C13C05B6F13E0A24915 F0A317F85BA4127FA5123FA217F07F121FA2000F4A13E0A26C6C15C06D4913806C018014 006C6D485A6C9038E01FFC6DB55A011F5C010714C0010191C7FC9038003FF02D427BC038 >I<121E121F13FC90B712FEA45A17FC17F817F017E017C0A2481680007EC8EA3F00007C 157E5E00785D15014B5A00F84A5A484A5A5E151FC848C7FC157E5DA24A5A14035D14074A 5AA2141F5D143FA2147F5D14FFA25BA35B92C8FCA35BA55BAA6D5A6D5A6D5A2F447AC238 >IIII65 DII< B9FC18F018FE727E19E026003FFEC7001F13F805017F9438003FFF060F7F727F727F727F 84737E737EA2737EA2737EA21B80A2851BC0A51BE0AD1BC0A51B8061A21B006162193F62 4F5A19FF624E5B06075B4E5B063F90C7FC4DB45A050F13F8BA5A19C04EC8FC18F095C9FC 4B447CC356>IIIIII<0107B7FCA590C7001F1300B3B3A9EA1FE0487E487EA2487EA44B5AA26C48495A49 5C6C4813FF6C48485B260FFC0713C06CB65A6C4AC7FCC66C13F8010F138030457DC33A> I76 DII<923807FFC092B512FE0207ECFFC0021F15F091267FFE0013FC902601FFF0EB1F FF01070180010313C04990C76C7FD91FFC6E6C7E49486F7E49486F7E01FF8348496F7E48 496F1380A248496F13C0A24890C96C13E0A24819F04982003F19F8A3007F19FC49177FA4 00FF19FEAD007F19FC6D17FFA3003F19F8A26D5E6C19F0A26E5D6C19E0A26C6D4B13C06C 19806E5D6C6D4B13006C6D4B5A6D6C4B5A6D6C4B5A6D6C4A5B6D01C001075B6D01F0011F 5B010101FE90B5C7FC6D90B65A023F15F8020715C002004AC8FC030713C047467AC454> II82 D I<003FBA12E0A59026FE000FEB8003D87FE09338003FF049171F90C71607A2007E180300 7C1801A300781800A400F819F8481978A5C81700B3B3A20107B8FCA545437CC24E>III<9038 01FFE0011F13FE017F6D7E48B612E03A03FE007FF84848EB1FFC6D6D7E486C6D7EA26F7F A36F7F6C5A6C5AEA00F090C7FCA40203B5FC91B6FC1307013F13F19038FFFC01000313E0 000F1380381FFE00485A5B127F5B12FF5BA35DA26D5B6C6C5B4B13F0D83FFE013EEBFFC0 3A1FFF80FC7F0007EBFFF86CECE01FC66CEB8007D90FFCC9FC322F7DAD36>97 DIIIIIII<137C48 B4FC4813804813C0A24813E0A56C13C0A26C13806C1300EA007C90C7FCAAEB7FC0EA7FFF A512037EB3AFB6FCA518467CC520>IIII<90277F 8007FEEC0FFCB590263FFFC090387FFF8092B5D8F001B512E002816E4880913D87F01FFC 0FE03FF8913D8FC00FFE1F801FFC0003D99F009026FF3E007F6C019E6D013C130F02BC5D 02F86D496D7EA24A5D4A5DA34A5DB3A7B60081B60003B512FEA5572D7CAC5E>I<90397F 8007FEB590383FFF8092B512E0028114F8913987F03FFC91388F801F000390399F000FFE 6C139E14BC02F86D7E5CA25CA35CB3A7B60083B512FEA5372D7CAC3E>II<90397FC00FF8B590B57E02C314E002CF14 F89139DFC03FFC9139FF001FFE000301FCEB07FF6C496D13804A15C04A6D13E05C7013F0 A2EF7FF8A4EF3FFCACEF7FF8A318F017FFA24C13E06E15C06E5B6E4913806E4913006E49 5A9139DFC07FFC02CFB512F002C314C002C091C7FCED1FF092C9FCADB67EA536407DAC3E >I<90387F807FB53881FFE0028313F0028F13F8ED8FFC91389F1FFE000313BE6C13BC14 F8A214F0ED0FFC9138E007F8ED01E092C7FCA35CB3A5B612E0A5272D7DAC2E>114 D<90391FFC038090B51287000314FF120F381FF003383FC00049133F48C7121F127E00FE 140FA215077EA27F01E090C7FC13FE387FFFF014FF6C14C015F06C14FC6C800003806C15 806C7E010F14C0EB003F020313E0140000F0143FA26C141F150FA27EA26C15C06C141FA2 6DEB3F8001E0EB7F009038F803FE90B55A00FC5CD8F03F13E026E007FEC7FC232F7CAD2C >IIIIIII E /Ff 47 122 df<933807FF80043F13E09338FE00F8DB01 F0133EDB07E0130E4B48131F4C137F031F14FF4BC7FCA218FE157E1878180015FE5DA314 01A25DA414030103B712F0A218E0903A0003F000070207140F4B14C0A3171F020F15805D A2173F1800141F5D5F177EA2143F92C712FE5FA34A1301027EECF81CA3160302FEECF03C 4A1538A21878187013014A010113F018E0933800F1C0EF7F804948EC1F0094C7FCA35C13 07A2001E5B127F130F00FF5BA249CAFC12FEEAF81EEA703CEA7878EA1FF0EA07C0385383 BF33>12 D39 D44 D<387FFFFEA3B5FCA21705799521>I<120FEA3FC0127F A212FFA31380EA7F00123C0A0A77891C>I<02C0EB018002F0130FD901FEEB7F0091B512 FE5E5E4914E016804BC7FCECBFF8D90780C8FC91C9FCA35B130EA3131E131CA3133C9038 381FC0ECFFF090383BE07C90387F003E017E133F017C7F0178805B498090C7FCA6153FA4 001F147F486C5C487EA24913FF00FF92C7FC90C7FC48495A12E04A5A5D6C495A140F0070 5C0078495A6C495A003E01FEC8FC381F03FC380FFFF0000313C0C648C9FC293F77BC2E> 53 D<15FF020713C091381F81E091383E00F002FC13F84948137C495A4948137E010F14 3E495A133F4A133F017F147F91C7FC5BA2485AA216FF12035B16FE150112075B1503A216 FC491307A20003140F16F8151F12016D133F0000EC7FF015EF90387C01CF90393E079FE0 90380FFE1FD903F813C090C7123FA21680157F160015FEA24A5A001C5C007F1303485C4A 5A4A5A4A5A4849C7FC00F8137E00E05B6C485A387C07E0383FFFC06C90C8FCEA03F8283F 77BC2E>57 D<131EEB3F80137FEBFFC05AA214806C13005B133C90C7FCB3120FEA3FC012 7FA212FFA35B6CC7FC123C122777A61C>I<171C173C177CA217FCA216011603A21607A2 4C7EA2161DA216391679167116E1A2ED01C1A2ED038115071601150EA2031C7FA24B7EA2 5D15F05D4A5AA24A5AA24AC7FC5C140E5C021FB6FC4A81A20270C7127FA25C13015C495A A249C8FCA2130E131E131C133C5B01F882487ED807FEEC01FFB500E0017FEBFF80A25C39 417BC044>65 D<49B712C018F818FE903B0003FC0001FF9438007F804BEC3FC0A2F01FE0 14074B15F0180FA2140F5D181FA2021F16E05D183F19C0023FED7F804B14FF19004D5A02 7F4A5A92C7EA07F0EF1FE0EF7F804AD903FEC7FC92B512F017FE4AC7EA3F800101ED1FE0 4A6E7E17078401036F7E5CA30107825CA3010F5E4A1407A260011F150F5C4D5A60013F15 3F4A4A5A4D5A017F4A90C7FC4C5A91C7EA0FF849EC3FF0B812C094C8FC16F83C3E7BBD40 >I<9339FF8001C0030F13E0033F9038F803809239FF807E07913A03FC001F0FDA0FF0EB 071FDA1FC0ECBF00DA7F806DB4FC4AC77E495AD903F86E5A495A130F4948157E4948157C 495A13FF91C9FC4848167812035B1207491670120FA2485A95C7FC485AA3127F5BA312FF 5BA490CCFCA2170FA2170EA2171E171C173C173817786C16706D15F04C5A003F5E6D1403 001F4B5A6D4AC8FC000F151E6C6C5C6C6C14F86C6C495A6C6CEB07C090397FC03F809026 1FFFFEC9FC010713F0010013803A4272BF41>I<49B712C018F818FE903B0003FE0003FF 9438007F804BEC1FC0F00FE0F007F014074BEC03F8F001FCA2140F4BEC00FEA3141F4B15 FFA3143F5DA3027F5D5DA219FE14FF92C81203A34917FC4A1507A219F813034A150F19F0 A20107EE1FE05CF03FC0A2010FEE7F804A16006060011F4B5A4A4A5A4D5AA2013F4B5A4A EC3FC04DC7FC017F15FEEE03FC4AEB0FF001FFEC7FE0B8128004FCC8FC16E0403E7BBD45 >I71 D<49B6FC5BA2D9000313005D5DA31407 5DA3140F5DA3141F5DA3143F5DA3147F5DA314FF92C7FCA35B5CA313035CA313075CA313 0F5CA3131F5CA3133F5CA2137FA25C497EB67EA3283E7BBD23>73 D<4AB61280A2180091C713C0167F5FA216FF94C7FCA35D5EA315035EA315075EA3150F5E A3151F5EA3153F5EA3157FA25EA215FFA293C8FCA25CA25DA2380F8003EA3FC0D87FE05B A21407D8FFC05B140F01805B49485A12FC0070495A4A5A6C01FEC9FC383C01FC380F07F0 3807FFC0C648CAFC314079BD30>I<49B612C0A25FD9000390C8FC5D5DA314075DA3140F 5DA3141F5DA3143F5DA3147F5DA314FF92C9FCA35B5CA313035C18C0EF01E0010716C05C 17031880130F4A140718005F131F4A141EA2173E013F5D4A14FC1601017F4A5A16074A13 1F01FFECFFF0B8FCA25F333E7BBD39>76 D<49B5933807FFFC496062D90003F0FC00505A DBBF805E1A771AEF1407033F923801CFE0A2F1039F020FEE071F020E606F6C140E1A3F02 1E161C021C04385BA2F1707F143C023804E090C7FCF001C0629126780FE0495A02705FF0 0700F00E0114F002E0031C5BA2F03803010116704A6C6C5D18E019070103ED01C00280DA 03805BA2943807000F13070200020E5C5FDB03F8141F495D010E4B5CA24D133F131E011C DAF9C05CEEFB80197F013C6DB4C7FC013895C8FC5E01784A5C13F8486C4A5CD807FE4C7E B500F04948B512FE16E01500563E7BBD52>I<902601FFFE020FB5FC496D5CA2D900016D 010013C04AEE3F00193E70141C193CEC07BFDB3FE01438151F1978020F7FDA0E0F157082 19F0EC1E07021C6D5CA203031401023C7FDA38015DA2701303EC7800027002805BA2047F 130702F014C04A013F91C7FCA2715A0101141F4AECF00EA2040F131E010315F84A151C16 07EFFC3C0107140391C7143817FE040113784915FF010E16708218F0131E011C6F5AA217 3F133C01385E171F137813F8486C6F5AEA07FEB500F01407A295C8FC483E7BBD44>II<49B77E18F018FC903B0003FE0003FEEF00FF4BEC7F80F03FC00207151F19E05DA202 0F16F0A25DA2141FF03FE05DA2023F16C0187F4B1580A2027FEDFF00604B495A4D5A02FF 4A5A4D5A92C7EA3FC04CB4C7FC4990B512FC17E04ACAFCA21303A25CA21307A25CA2130F A25CA2131FA25CA2133FA25CA2137FA25C497EB67EA33C3E7BBD3E>I<49B612FCEFFF80 18F0903B0003FE000FF8EF03FE4BEB00FF8419800207ED3FC05DA219E0140F5DA3021FED 7FC05DA2F0FF80143F4B15004D5A60027F4A5A4B495A4D5AEF3F8002FF02FEC7FC923800 07F892B512E01780499038000FE04A6D7E707E707E0103814A130083A213075CA25E130F 5C5F1603131F5CA3013F020714404A16E05F017F160119C04A01031303496C1680B6D880 0113079438FE0F009338007E1ECAEA3FFCEF07F03B407BBD42>82 D<92390FF001C0ED7FFE4AB5EA0380913907F80FC791390FC003EF91391F8001FF4AC713 00027E805C495A4948143EA2495AA2010F153C5CA3011F1538A38094C7FC80A214FC6DB4 FC15F015FE6DEBFFC06D14F06D14FC6D80143F020F7F020180EC001F150303007F167F16 3FA2161FA212075A5F120EA2001E153F94C7FCA2163E003E157E167C003F15FC4B5A486C 5C4B5A6D495AD87DE0EB1F80D8F8F849C8FC017F13FE39F03FFFF8D8E00F13E048C690C9 FC32427ABF33>I<48B9FCA25A903AFE001FF00101F89138E0007FD807E0163E49013F14 1E5B48C75BA2001E147FA2001C4B131C123C003814FFA2007892C7FC12704A153C00F017 38485CC716001403A25DA21407A25DA2140FA25DA2141FA25DA2143FA25DA2147FA25DA2 14FFA292C9FCA25BA25CA21303A25CEB0FFE003FB67E5AA2383D71BC41>I<130C131C13 7813E0EA01C013801203EA0700120E120C121C12181238123012701260A212E012CFEAFF C0A61380EA7F00123C0E1C6EBE1C>96 D<147E49B47E903907C1C38090391F80EFC09038 3F00FF017E137F4914804848133F485AA248481400120F5B001F5C157E485AA215FE007F 5C90C7FCA21401485C5AA21403EDF0385AA21407EDE078020F1370127C021F13F0007E01 3F13E0003E137FECF3E1261F01E313C03A0F8781E3803A03FF00FF00D800FC133E252977 A72E>IIII I<167C4BB4FC923807C78092380F83C0ED1F87161FED3F3FA2157EA21780EE0E004BC7FC A414015DA414035DA30103B512F8A390260007E0C7FCA3140F5DA5141F5DA4143F92C8FC A45C147EA414FE5CA413015CA4495AA4495AA4495A121E127F5C12FF49C9FCA2EAFE1EEA F83C1270EA7878EA3FE0EA0F802A5383BF1C>III<1478EB01FCA21303A314F8EB00E01400AD137C48B4FC 38038F80EA0707000E13C0121E121CEA3C0F1238A2EA781F00701380A2EAF03F14001200 5B137E13FE5BA212015BA212035B1438120713E0000F1378EBC070A214F0EB80E0A2EB81 C01383148038078700EA03FEEA00F8163E79BC1C>I107 DIIII<903903E001F8 90390FF807FE903A1E7C1E0F80903A1C3E3C07C0013C137801389038E003E0EB783F0170 01C013F0ED80019038F07F0001E015F8147E1603000113FEA2C75AA20101140717F05CA2 0103140F17E05CA20107EC1FC0A24A1480163F010F15005E167E5E131F4B5A6E485A4B5A 90393FB80F80DA9C1FC7FCEC0FFCEC03E049C9FCA2137EA213FEA25BA21201A25BA21203 A2387FFFE0B5FCA22D3A80A72E>I114 DII<13 7C48B4141C26038F80137EEA0707000E7F001E15FE121CD83C0F5C12381501EA781F0070 01805BA2D8F03F1303140000005D5B017E1307A201FE5C5B150F1201495CA2151F0003ED C1C0491481A2153F1683EE0380A2ED7F07000102FF13005C01F8EBDF0F00009038079F0E 90397C0F0F1C90391FFC07F8903907F001F02A2979A731>I<017CEB01C048B4EB07F038 038F80EA0707000E01C013F8121E001C1403EA3C0F0038EC01F0A2D8781F130000705BA2 EAF03F91C712E012005B017E130116C013FE5B1503000115805BA2ED07001203495B150E A25DA25D1578000114706D5B0000495A6D485AD97E0FC7FCEB1FFEEB03F0252979A72A> I<017C167048B491387001FC3A038F8001F8EA0707000E01C015FE001E1403001CEDF000 EA3C0F0038177C1507D8781F4A133C00701380A2D8F03F130F020049133812005B017E01 1F14784C137013FE5B033F14F0000192C712E05BA2170100034A14C049137E17031880A2 EF070015FE170E00010101141E01F86D131C0000D9039F5BD9FC076D5A903A3E0F07C1E0 903A1FFC03FFC0902703F0007FC7FC372979A73C>I<903903F001F890390FFC07FE9039 3C1E0E0F9026780F1C138001F0EBB83FD801E013F89039C007F07FEA0380000714E0D900 0F140048151C000E4AC7FCA2001E131FA2C75BA2143F92C8FCA35C147EA314FE4A131CA3 0101143C001E1538003F491378D87F811470018314F000FF5D9039077801C039FE0F7C03 3A7C0E3C078027783C1E1EC7FC391FF80FFC3907E003F029297CA72A>I<137C48B41438 26038F8013FCEA0707000E7F001E1401001C15F8EA3C0F12381503D8781F14F000701380 A2D8F03F1307020013E012005B017E130F16C013FE5B151F1201491480A2153F00031500 5BA25D157EA315FE5D00011301EBF8030000130790387C1FF8EB3FF9EB07E1EB00035DA2 1407000E5CEA3F80007F495AA24A5AD8FF0090C7FC143E007C137E00705B387801F03838 03E0381E0FC06CB4C8FCEA03F8263B79A72C>I E /Fg 36 120 df45 D<157815FC14031407141F14FF130F0007B5FCB6FCA2147F13F0EAF800C7FCB3B3 B3A6007FB712FEA52F4E76CD43>49 DI<91380FFFC0 91B512FC0107ECFF80011F15E090263FF8077F9026FF800113FC4848C76C7ED803F86E7E 491680D807FC8048B416C080486D15E0A4805CA36C17C06C5B6C90C75AD801FC1680C9FC 4C13005FA24C5A4B5B4B5B4B13C04B5BDBFFFEC7FC91B512F816E016FCEEFF80DA000713 E0030113F89238007FFE707E7013807013C018E07013F0A218F8A27013FCA218FEA2EA03 E0EA0FF8487E487E487EB57EA318FCA25E18F891C7FC6C17F0495C6C4816E001F04A13C0 6C484A1380D80FF84A13006CB44A5A6CD9F0075BC690B612F06D5D011F1580010302FCC7 FCD9001F1380374F7ACD43>I<177C17FEA2160116031607160FA2161F163F167FA216FF 5D5DA25D5DED1FBFED3F3F153E157C15FCEC01F815F0EC03E01407EC0FC01580EC1F005C 147E147C5C1301495A495A5C495A131F49C7FC133E5B13FC485A5B485A1207485A485A90 C8FC123E127E5ABA12C0A5C96C48C7FCAF020FB712C0A53A4F7CCE43>III<171F4D7E4D7EA24D7EA34C7FA24C7FA34C7FA34C7FA24C7FA34C 8083047F80167E8304FE804C7E03018116F8830303814C7E03078116E083030F814C7E03 1F81168083033F8293C77E4B82157E8403FE824B800201835D840203834B800207835D84 4AB87EA24A83A3DA3F80C88092C97E4A84A2027E8202FE844A82010185A24A820103854A 82010785A24A82010F855C011F717FEBFFFCB600F8020FB712E0A55B547BD366>65 D<932601FFFCEC01C0047FD9FFC013030307B600F81307033F03FE131F92B8EA803F0203 DAE003EBC07F020F01FCC7383FF0FF023F01E0EC0FF94A01800203B5FC494848C9FC4901 F8824949824949824949824949824990CA7E494883A2484983485B1B7F485B481A3FA248 49181FA3485B1B0FA25AA298C7FC5CA2B5FCAE7EA280A2F307C07EA36C7FA21B0F6C6D19 80A26C1A1F6C7F1C006C6D606C6D187EA26D6C606D6D4C5A6D6D16036D6D4C5A6D6D4C5A 6D01FC4C5A6D6DEE7F806D6C6C6C4BC7FC6E01E0EC07FE020F01FEEC1FF80203903AFFE0 01FFF0020091B612C0033F93C8FC030715FCDB007F14E0040101FCC9FC525479D261>67 DI70 D73 D77 D<93380FFFC00303B6FC031F15E092B712FC0203D9FC0013FF020F01C0010F13C0023F90 C7000313F0DA7FFC02007F494848ED7FFE4901E0ED1FFF49496F7F49496F7F4990C96C7F 49854948707F4948707FA24849717E48864A83481B804A83481BC0A2481BE04A83A2481B F0A348497113F8A5B51AFCAF6C1BF86E5FA46C1BF0A26E5F6C1BE0A36C6D4D13C0A26C6D 4D1380A26C1B006C6D4D5A6E5E6C626D6C4C5B6D6D4B5B6D6D4B5B6D6D4B5B6D6D4B5B6D 6D4B90C7FC6D6D4B5A6D01FF02035B023F01E0011F13F0020F01FC90B512C0020390B7C8 FC020016FC031F15E0030392C9FCDB001F13E0565479D265>79 DI82 D<91260FFF80130791B500F85B010702FF5B011FEDC0 3F49EDF07F9026FFFC006D5A4801E0EB0FFD4801800101B5FC4848C87E48488149150F00 1F824981123F4981007F82A28412FF84A27FA26D82A27F7F6D93C7FC14C06C13F014FF15 F86CECFF8016FC6CEDFFC017F06C16FC6C16FF6C17C06C836C836D826D82010F82130301 0082021F16801400030F15C0ED007F040714E01600173F050F13F08383A200788200F882 A3187FA27EA219E07EA26CEFFFC0A27F6D4B13806D17006D5D01FC4B5A01FF4B5A02C04A 5A02F8EC7FF0903B1FFFC003FFE0486C90B65AD8FC0393C7FC48C66C14FC48010F14F048 D9007F90C8FC3C5479D24B>I97 D<913801FFF8021FEBFF8091B612F0010315FC010F9038C00FFE903A1F FE0001FFD97FFC491380D9FFF05B4817C048495B5C5A485BA2486F138091C7FC486F1300 705A4892C8FC5BA312FFAD127F7FA27EA2EF03E06C7F17076C6D15C07E6E140F6CEE1F80 6C6DEC3F006C6D147ED97FFE5C6D6CEB03F8010F9038E01FF0010390B55A01001580023F 49C7FC020113E033387CB63C>99 D<4DB47E0407B5FCA5EE001F1707B3A4913801FFE002 1F13FC91B6FC010315C7010F9038E03FE74990380007F7D97FFC0101B5FC49487F484914 3F484980485B83485B5A91C8FC5AA3485AA412FFAC127FA36C7EA37EA26C7F5F6C6D5C7E 6C6D5C6C6D49B5FC6D6C4914E0D93FFED90FEFEBFF80903A0FFFC07FCF6D90B5128F0101 ECFE0FD9003F13F8020301C049C7FC41547CD24B>I<913803FFC0023F13FC49B6FC0107 15C04901817F903A3FFC007FF849486D7E49486D7E4849130F48496D7E48178048497F18 C0488191C7FC4817E0A248815B18F0A212FFA490B8FCA318E049CAFCA6127FA27F7EA218 E06CEE01F06E14037E6C6DEC07E0A26C6DEC0FC06C6D141F6C6DEC3F806D6CECFF00D91F FEEB03FE903A0FFFC03FF8010390B55A010015C0021F49C7FC020113F034387CB63D>I< ED3FFC0203B5FC020F14C0023F14E09139FFF81FF0499038C03FF849EB807F49903800FF FC495A495AA2495AA2EE7FF8495AEE3FF0EE0FC093C7FCAEB712E0A526007FF8C8FCB3B3 A7007FB512FEA52E547CD329>II<137F497E000313E0487F A2487FA76C5BA26C5BC613806DC7FC90C8FCADEB3FF0B5FCA512017EB3B3A6B612E0A51B 547BD325>105 D107 DIII<913801FFE0021F13FE91B612C0010315F0010F9038807F FC903A1FFC000FFED97FF86D6C7E49486D7F48496D7F48496D7F4A147F48834890C86C7E A24883A248486F7EA3007F1880A400FF18C0AC007F1880A3003F18006D5DA26C5FA26C5F 6E147F6C5F6C6D4A5A6C6D495B6C6D495B6D6C495BD93FFE011F90C7FC903A0FFF807FFC 6D90B55A010015C0023F91C8FC020113E03A387CB643>I<903A3FF001FFE0B5010F13FE 033FEBFFC092B612F002F301017F913AF7F8007FFE0003D9FFE0EB1FFFC602806D7F92C7 6C7F4A824A6E7F4A6E7FA2717FA285187F85A4721380AC1A0060A36118FFA2615F616E4A 5BA26E4A5B6E4A5B6F495B6F4990C7FC03F0EBFFFC9126FBFE075B02F8B612E06F148003 1F01FCC8FC030313C092CBFCB1B612F8A5414D7BB54B>I<90397FE003FEB590380FFF80 033F13E04B13F09238FE1FF89139E1F83FFC0003D9E3E013FEC6ECC07FECE78014EF1500 14EE02FEEB3FFC5CEE1FF8EE0FF04A90C7FCA55CB3AAB612FCA52F367CB537>114 D<903903FFF00F013FEBFE1F90B7FC120348EB003FD80FF81307D81FE0130148487F4980 127F90C87EA24881A27FA27F01F091C7FC13FCEBFFC06C13FF15F86C14FF16C06C15F06C 816C816C81C681013F1580010F15C01300020714E0EC003F030713F015010078EC007F00 F8153F161F7E160FA27E17E07E6D141F17C07F6DEC3F8001F8EC7F0001FEEB01FE9039FF C00FFC6DB55AD8FC1F14E0D8F807148048C601F8C7FC2C387CB635>I<143EA6147EA414 FEA21301A313031307A2130F131F133F13FF5A000F90B6FCB8FCA426003FFEC8FCB3A9EE 07C0AB011FEC0F8080A26DEC1F0015806DEBC03E6DEBF0FC6DEBFFF86D6C5B021F5B0203 13802A4D7ECB34>IIII E /Fh 19 117 df<007FB5FCA2B512FEA418067C961E>45 D<121EEA3F80EA7FC012FFA4 1380EA7F00123C0A0A788919>I48 D<157015F014011407143F903803FFE0137F EBFFCFEBF80F1300141F15C0A5143F1580A5147F1500A55C5CA513015CA513035CA51307 5CA5130F5CA3131F497EB612F8A31D3D78BC2D>I<011FB512FC5BA29039003FF8006E5A A25DA5143F5DA5147F5DA514FF92C7FCA55B5CA513035CA513075CA5130F5CA5131F5CA3 133F497E007FB512F0A2B6FC263E7EBD21>73 D<90263FFFF0933807FFFE5013FC629026 007FF8EFFC00023F4D5AA2023BEF77F0A2DA39FC16E7A2F101CF0279EE038FDA70FE5FF1 070FA2190E1A1FDAF07F151C02E060193819706F7EF1E03F130102C0DB01C05BA26F6CEB 0380A2953807007F0103160E4A6C6C93C7FC60A2606201076D6C5B02005F60A26F6C485A 94380380015B010EDB07005BA2923801FC0EA24D1303131E011C6D6C485C5FA25F190701 3CEC7FC0013860013C5D137C01FE6EC7120F2607FF80013E4A7EB500FC031FB512F8043C 5E4A131C573E7DBD53>77 D<013FB612FEEFFFE018F8903B007FF0000FFC6E48EB01FF71 13804BEC7FC0183F19E0F01FF0A2147F5D19F8A402FFED3FF092C8FCA219E0A2F07FC05B 4AEDFF8019004D5A4D5AEF0FF80103ED3FE04A903801FF8091B648C7FC17F002FCCAFCA2 13075CA5130F5CA5131F5CA5133F5CA3137F497EB612E0A25D3D3E7DBD3E>80 D<9239FF8003800207EBF007021F9038FC0F0091387F00FE02FCEB1F1FD903F0EB07BF49 486DB4FC49487F4A6D5A49C8FC49157E133E137E173E49153CA57F1738A26D92C7FC8080 80EB7FFEECFFE06D13FEEDFFC06D14F06D14FC010380010080143F020380DA003F7F1503 1500707E163F161FA2160F121CA31607160F003C5EA35F003E151F94C7FC007E5D007F15 3E6D5C16FC01E0495AD87DF0495AD8FCFCEB0FC03AF87F803F8027F01FFFFEC8FCD8E007 13F839C0007FC031427BBF33>83 D97 D99 DII< ED07F0ED3FFCEDFC1E913803F03F4A48B4FC4A481380141FEC3F81DA7F0113008102FE13 7C93C7FCA213015CA513035CA50007B512F8A3260007F0C8FCA3130F5CA5131F5CA5133F 5CA5137F91C9FCA55B5BA4EA03FF007F13FEB5FCA229407DBF1C>I<1478EB01FE130314 FFA25B14FE130314FCEB00F01400ACEB03F8EA01FF14F0A2EA001F130FA314E0A5131F14 C0A5133F1480A5137F1400A55B5BA4EA03FF007F13F0A2B5FC183E7DBD1A>105 D<902707F007F8EB03FCD803FFD91FFF90380FFF80913CE0781FC03C0FE09126E1E00FEB F0073E001FE38007E1C003F090260FE700EBE38002EEDAF70013F802FC14FE02D85C14F8 4A5CA24A5C011F020F14074A4A14F0A5013F021F140F4A4A14E0A5017F023F141F91C749 14C0A549027F143F4992C71380A300014B147F486C496DEBFFC0B5D8F87FD9FC3F13FEA3 47287DA74C>109 D<91387F01FE903A7FFF0FFFC09139FE3E03F09238F801F8903A01FF E000FE4B137F6D497F4990C713804A15C04A141FA218E0A20103150F5C18F0A3171F0107 16E05CA3173F18C0130F4A147F1880A2EFFF004C5A011F5D16034C5A6E495AEE1FC06E49 5AD93FDC017EC7FC91388F01F8913883FFE0028090C8FC92C9FC137FA291CAFCA45BA25B A31201487EB512F8A3343A81A733>112 D<903907F01F80D803FFEB7FE09138E1E1F091 38E387F839001FE707EB0FE614EE02FC13F002D813E09138F801804AC7FCA25C131FA25C A4133F5CA5137F91C8FCA55B5BA31201487EB512FEA325287EA724>114 D<9138FF81C0010713E390381F807F90397C003F8049131F4848130F5B00031407A24848 1400A27FA27F6D90C7FCEBFF8014FC6C13FF6C14C015F06C6C7F011F7F13079038007FFE 1403140100381300157EA2123C153E157E007C147CA2007E147815F8007F495A4A5A486C 485A26F9E01FC7FC38E0FFFC38C01FE0222A7DA824>II E /Fi 29 122 df12 DI<123C127E12FFA8127EAB123E123CAB1218A61200A7123C127E12 FFA4127E123C08367AB515>33 D<123C127EB4FCA21380A2127F123D1201A412031300A2 5A1206120E120C121C5A5A126009177A8715>44 D<123C127E12FFA4127E123C08087A87 15>46 D<007FB712FEA390398007F001D87C00EC003E0078161E0070160EA20060160600 E01607A3481603A6C71500B3AB4A7E011FB512FCA330337DB237>84 D97 DII<153FEC0FFFA3EC007F81AEEB07F0EB3FFCEBFC0F3901F003BF39 07E001FF48487E48487F8148C7FCA25A127E12FEAA127E127FA27E6C6C5BA26C6C5B6C6C 4813803A03F007BFFC3900F81E3FEB3FFCD90FE0130026357DB32B>III<151F90391FC07F809039FFF8E3C03901F07FC73907E03F033A0FC01F8380 9039800F8000001F80EB00074880A66C5CEB800F000F5CEBC01F6C6C48C7FCEBF07C380E FFF8380C1FC0001CC9FCA3121EA2121F380FFFFEECFFC06C14F06C14FC4880381F000100 3EEB007F4880ED1F8048140FA56C141F007C15006C143E6C5C390FC001F83903F007E0C6 B51280D91FFCC7FC22337EA126>III107 DI<2703F01FE013FF00FF 90267FF80313C0903BF1E07C0F03E0903BF3803E1C01F02807F7003F387FD803FE147049 6D486C7EA2495CA2495CB3486C496C487EB53BC7FFFE3FFFF0A33C217EA041>I<3903F0 1FC000FFEB7FF09038F1E0FC9038F3807C3907F7007EEA03FE497FA25BA25BB3486CEB7F 80B538C7FFFCA326217EA02B>II<3903F03F8000FFEBFFE09038F3C0F89038F7007ED807FE7F6C48EB1F804914C049 130F16E0ED07F0A3ED03F8A9150716F0A216E0150F16C06D131F6DEB3F80160001FF13FC 9038F381F89038F1FFE0D9F07FC7FC91C8FCAA487EB512C0A325307EA02B>I<3803E07C 38FFE1FF9038E38F809038E71FC0EA07EEEA03ECA29038FC0F8049C7FCA35BB2487EB512 E0A31A217FA01E>114 DI<13 30A51370A313F0A21201A212031207381FFFFEB5FCA23803F000AF1403A814073801F806 A23800FC0EEB7E1CEB1FF8EB07E0182F7FAD1E>IIIII<3A7FFF807F F8A33A07F8001FC00003EC0F800001EC070015066C6C5BA26D131C017E1318A26D5BA2EC 8070011F1360ECC0E0010F5BA2903807E180A214F3010390C7FC14FBEB01FEA26D5AA314 78A21430A25CA214E05CA2495A1278D8FC03C8FCA21306130EEA701CEA7838EA1FF0EA0F C025307F9F29>I E /Fj 1 50 df<13E01201120712FF12F91201B3A7487EB512C0A212 217AA01E>49 D E /Fk 83 124 df<4AB4EB0FE0021F9038E03FFC913A7F00F8FC1ED901 FC90383FF03FD907F090397FE07F80494801FF13FF4948485BD93F805C137F0200ED7F00 EF003E01FE6D91C7FC82ADB97EA3C648C76CC8FCB3AE486C4A7E007FD9FC3FEBFF80A339 407FBF35>11 D<4AB4FC021F13C091387F01F0903901FC0078D907F0131C4948133E4948 13FF49485A137F1400A213FE6F5A163893C7FCAA167FB8FCA33900FE00018182B3AC486C ECFF80007FD9FC3F13FEA32F407FBF33>I<4AB47E021F13F791387F00FFEB01F8903807 F001EB0FE0EB1FC0EB3F80137F14008101FE80AEB8FCA3C648C77EB3AE486CECFF80007F D9FC3F13FEA32F407FBF33>I<4AB4ECFF80021FD9C00F13E0913B7F01F03F80F8903C01 F80078FE003CD907F0D93FF8130E49484948131F49484948EB7F804948484913FF137F02 005CA201FE92C7FC6FED7F0070141C96C7FCAAF13F80BBFCA3C648C76CC7FC197F193FB3 AC486C4A6CEB7FC0007FD9FC3FD9FE1FB5FCA348407FBF4C>I<001E130F397F803FC000 FF137F01C013E0A201E013F0A3007F133F391E600F3000001300A401E01370491360A300 0114E04913C00003130101001380481303000EEB070048130E0018130C0038131C003013 181C1C7DBE2D>34 D38 D<121EEA7F8012FF13C0A213E0A3127FEA1E601200A413E0 13C0A312011380120313005A120E5A1218123812300B1C79BE19>I<1430147014E0EB01 C0EB03801307EB0F00131E133E133C5B13F85B12015B1203A2485AA2120F5BA2121F90C7 FCA25AA3123E127EA6127C12FCB2127C127EA6123E123FA37EA27F120FA27F1207A26C7E A212017F12007F13787F133E131E7FEB07801303EB01C0EB00E014701430145A77C323> I<12C07E12707E7E121E7E6C7E7F12036C7E7F12007F1378137CA27FA2133F7FA2148013 0FA214C0A3130714E0A6130314F0B214E01307A614C0130FA31480A2131F1400A25B133E A25BA2137813F85B12015B485A12075B48C7FC121E121C5A5A5A5A145A7BC323>II<1506 150FB3A9007FB912E0BA12F0A26C18E0C8000FC9FCB3A915063C3C7BB447>I<121EEA7F 8012FF13C0A213E0A3127FEA1E601200A413E013C0A312011380120313005A120E5A1218 123812300B1C798919>II<121EEA7F80A2EAFFC0A4EA7F80A2EA 1E000A0A798919>IIIIII<150E151E153EA2157EA215FE14 01A21403EC077E1406140E141CA214381470A214E0EB01C0A2EB0380EB0700A2130E5BA2 5B5BA25B5B1201485A90C7FC5A120E120C121C5AA25A5AB8FCA3C8EAFE00AC4A7E49B6FC A3283E7EBD2D>I<00061403D80780131F01F813FE90B5FC5D5D5D15C092C7FC14FCEB3F E090C9FCACEB01FE90380FFF8090383E03E090387001F8496C7E49137E497F90C7138000 06141FC813C0A216E0150FA316F0A3120C127F7F12FFA416E090C7121F12FC007015C012 780038EC3F80123C6CEC7F00001F14FE6C6C485A6C6C485A3903F80FE0C6B55A013F90C7 FCEB07F8243F7CBC2D>II<123812 3C123F90B612FCA316F85A16F016E00078C712010070EC03C0ED078016005D48141E151C 153C5DC8127015F04A5A5D14034A5A92C7FC5C141EA25CA2147C147814F8A213015C1303 A31307A3130F5CA2131FA6133FAA6D5A0107C8FC26407BBD2D>III<121EEA7F80A2EAFFC0A4EA7F80A2EA1E00C7FCB3121EEA7F80A2EAFFC0A4EA7F 80A2EA1E000A2779A619>I<121EEA7F80A2EAFFC0A4EA7F80A2EA1E00C7FCB3121E127F EAFF80A213C0A4127F121E1200A412011380A3120313005A1206120E120C121C5A1230A2 0A3979A619>I<007FB912E0BA12F0A26C18E0CDFCAE007FB912E0BA12F0A26C18E03C16 7BA147>61 D<15074B7EA34B7EA34B7EA34B7EA34B7E15E7A2913801C7FC15C3A2913803 81FEA34AC67EA3020E6D7EA34A6D7EA34A6D7EA34A6D7EA34A6D7EA349486D7E91B6FCA2 49819138800001A249C87EA24982010E157FA2011E82011C153FA2013C820138151FA201 7882170F13FC00034C7ED80FFF4B7EB500F0010FB512F8A33D417DC044>65 DII IIII< B6D8C01FB512F8A3000101E0C7383FFC0026007F80EC0FF0B3A691B7FCA30280C7120FB3 A92601FFE0EC3FFCB6D8C01FB512F8A33D3E7DBD44>II<011FB512FCA3D9000713006E5A1401B3B3A6123FEA 7F80EAFFC0A44A5A1380D87F005B007C130700385C003C495A6C495A6C495A2603E07EC7 FC3800FFF8EB3FC026407CBD2F>I76 DIIIIIII<003FB91280A3903AF0007FE001018090393FC000 3F48C7ED1FC0007E1707127C00781703A300701701A548EF00E0A5C81600B3B14B7E4B7E 0107B612FEA33B3D7DBC42>IIII<007FB5D8C003B512E0A3C649C7 EBFC00D93FF8EC3FE06D48EC1F806D6C92C7FC171E6D6C141C6D6C143C5F6D6C14706D6D 13F04C5ADA7FC05B023F13036F485ADA1FF090C8FC020F5BEDF81E913807FC1C163C6E6C 5A913801FF7016F06E5B6F5AA26F7E6F7EA28282153FED3BFEED71FF15F103E07F913801 C07F0203804B6C7EEC07004A6D7E020E6D7E5C023C6D7E02386D7E14784A6D7E4A6D7F13 0149486E7E4A6E7E130749C86C7E496F7E497ED9FFC04A7E00076DEC7FFFB500FC0103B5 12FEA33F3E7EBD44>I<003FB712F8A391C7EA1FF013F801E0EC3FE00180EC7FC090C8FC 003EEDFF80A2003C4A1300007C4A5A12784B5A4B5AA200704A5AA24B5A4B5AA2C8485A4A 90C7FCA24A5A4A5AA24A5AA24A5A4A5AA24A5A4A5AA24990C8FCA2495A4948141CA2495A 495AA2495A495A173C495AA24890C8FC485A1778485A484815F8A2484814011603484814 0F4848143FED01FFB8FCA32E3E7BBD38>90 DI<486C13C00003130101001380481303000EEB070048130E0018130C003813 1C003013180070133800601330A300E01370481360A400CFEB678039FFC07FE001E013F0 A3007F133FA2003F131F01C013E0390F0007801C1C73BE2D>II96 DII< 49B4FC010F13E090383F00F8017C131E4848131F4848137F0007ECFF80485A5B121FA248 48EB7F00151C007F91C7FCA290C9FC5AAB6C7EA3003FEC01C07F001F140316806C6C1307 6C6C14000003140E6C6C131E6C6C137890383F01F090380FFFC0D901FEC7FC222A7DA828 >IIII<167C903903F801FF903A1FFF078F8090397E0FDE1F9038 F803F83803F001A23B07E000FC0600000F6EC7FC49137E001F147FA8000F147E6D13FE00 075C6C6C485AA23901F803E03903FE0FC026071FFFC8FCEB03F80006CAFC120EA3120FA2 7F7F6CB512E015FE6C6E7E6C15E06C810003813A0FC0001FFC48C7EA01FE003E14004815 7E825A82A46C5D007C153E007E157E6C5D6C6C495A6C6C495AD803F0EB0FC0D800FE017F C7FC90383FFFFC010313C0293D7EA82D>III<1478EB01FEA2EB 03FFA4EB01FEA2EB00781400AC147FEB7FFFA313017F147FB3B3A5123E127F38FF807E14 FEA214FCEB81F8EA7F01387C03F0381E07C0380FFF803801FC00185185BD1C>III<2701F801FE14FF00FF902707FFC0 0313E0913B1E07E00F03F0913B7803F03C01F80007903BE001F87000FC2603F9C06D487F 000101805C01FBD900FF147F91C75B13FF4992C7FCA2495CB3A6486C496CECFF80B5D8F8 7FD9FC3F13FEA347287DA74C>I<3901F801FE00FF903807FFC091381E07E091387803F0 00079038E001F82603F9C07F0001138001FB6D7E91C7FC13FF5BA25BB3A6486C497EB5D8 F87F13FCA32E287DA733>I<14FF010713E090381F81F890387E007E01F8131F4848EB0F 804848EB07C04848EB03E0000F15F04848EB01F8A2003F15FCA248C812FEA44815FFA96C 15FEA36C6CEB01FCA3001F15F86C6CEB03F0A26C6CEB07E06C6CEB0FC06C6CEB1F80D800 7EEB7E0090383F81FC90380FFFF0010090C7FC282A7EA82D>I<3901FC03FC00FF90381F FF8091387C0FE09039FDE003F03A03FFC001FC6C496C7E91C7127F49EC3F805BEE1FC017 E0A2EE0FF0A3EE07F8AAEE0FF0A4EE1FE0A2EE3FC06D1580EE7F007F6E13FE9138C001F8 9039FDE007F09039FC780FC0DA3FFFC7FCEC07F891C9FCAD487EB512F8A32D3A7EA733> I<02FF131C0107EBC03C90381F80F090397F00387C01FC131CD803F8130E4848EB0FFC15 0748481303121F485A1501485AA448C7FCAA6C7EA36C7EA2001F14036C7E15076C6C130F 6C7E6C6C133DD8007E137990383F81F190380FFFC1903801FE0190C7FCAD4B7E92B512F8 A32D3A7DA730>I<3901F807E000FFEB1FF8EC787CECE1FE3807F9C100031381EA01FB14 01EC00FC01FF1330491300A35BB3A5487EB512FEA31F287EA724>I<90383FC0603901FF F8E03807C03F381F000F003E1307003C1303127C0078130112F81400A27E7E7E6D1300EA 7FF8EBFFC06C13F86C13FE6C7F6C1480000114C0D8003F13E0010313F0EB001FEC0FF800 E01303A214017E1400A27E15F07E14016C14E06CEB03C0903880078039F3E01F0038E0FF FC38C01FE01D2A7DA824>I<131CA6133CA4137CA213FCA2120112031207001FB512C0B6 FCA2D801FCC7FCB3A215E0A912009038FE01C0A2EB7F03013F138090381F8700EB07FEEB 01F81B397EB723>II IIII<001FB61280A2 EBE0000180140049485A001E495A121C4A5A003C495A141F00385C4A5A147F5D4AC7FCC6 485AA2495A495A130F5C495A90393FC00380A2EB7F80EBFF005A5B484813071207491400 485A48485BA248485B4848137F00FF495A90B6FCA221277EA628>II E /Fl 3 52 df<130C133C137CEA03FC12FFEAFC7C1200B3B113FE387FFFFEA217 2C7AAB23>49 DII E /Fm 63 122 df<001C131C007F137F39FF80FF80A26D13C0A3007F137F001C131C00001300A4 0001130101801380A20003130301001300485B00061306000E130E485B485B485B006013 601A197DB92A>34 D<146014E0EB01C0EB0380EB0700130E131E5B5BA25B485AA2485AA2 12075B120F90C7FCA25A121EA2123EA35AA65AB2127CA67EA3121EA2121F7EA27F12077F 1203A26C7EA26C7E1378A27F7F130E7FEB0380EB01C0EB00E01460135278BD20>40 D<12C07E12707E7E7E120F6C7E6C7EA26C7E6C7EA21378A2137C133C133E131EA2131F7F A21480A3EB07C0A6EB03E0B2EB07C0A6EB0F80A31400A25B131EA2133E133C137C1378A2 5BA2485A485AA2485A48C7FC120E5A5A5A5A5A13527CBD20>I<121C127FEAFF80A213C0 A3127F121C1200A412011380A2120313005A1206120E5A5A5A12600A19798817>44 DI<121C127FEAFF80A5EA7F00121C0909798817>I<150C151E15 3EA2153C157CA2157815F8A215F01401A215E01403A215C01407A21580140FA215005CA2 141E143EA2143C147CA2147814F8A25C1301A25C1303A2495AA25C130FA291C7FC5BA213 1E133EA2133C137CA2137813F8A25B1201A25B1203A25B1207A25B120FA290C8FC5AA212 1E123EA2123C127CA2127812F8A25A12601F537BBD2A>IIIII<1538A2157815F8A2140114031407A2140F141F 141B14331473146314C313011483EB030313071306130C131C131813301370136013C012 01EA038013005A120E120C5A123812305A12E0B712F8A3C73803F800AB4A7E0103B512F8 A325397EB82A>I<0006140CD80780133C9038F003F890B5FC5D5D158092C7FC14FC3806 7FE090C9FCABEB07F8EB3FFE9038780F803907E007E090388003F0496C7E12066E7EC87E A28181A21680A4123E127F487EA490C71300485C12E000605C12700030495A00385C6C13 03001E495A6C6C485A3907E03F800001B5C7FC38007FFCEB1FE0213A7CB72A>II<12301238123E003FB612E0A316C05A168016000070C71206 0060140E5D151800E01438485C5D5DC712014A5A92C7FC5C140E140C141C5CA25CA214F0 495AA21303A25C1307A2130FA3495AA3133FA5137FA96DC8FC131E233B7BB82A>III64 D<1538A3157CA315FEA34A7EA34A6C7EA202077FEC063FA2020E7FEC0C1FA2021C7FEC18 0FA202387FEC3007A202707FEC6003A202C07F1501A2D901807F81A249C77F167FA20106 810107B6FCA24981010CC7121FA2496E7EA3496E7EA3496E7EA213E0707E1201486C81D8 0FFC02071380B56C90B512FEA3373C7DBB3E>II<913A01FF800180 020FEBE003027F13F8903A01FF807E07903A03FC000F0FD90FF0EB039F4948EB01DFD93F 80EB00FF49C8127F01FE153F12014848151F4848150FA248481507A2485A1703123F5B00 7F1601A35B00FF93C7FCAD127F6DED0180A3123F7F001F160318006C7E5F6C7E17066C6C 150E6C6C5D00001618017F15386D6C5CD91FE05C6D6CEB03C0D903FCEB0F80902701FF80 3FC7FC9039007FFFFC020F13F002011380313D7BBA3C>IIIIIII<013FB512E0A39039001FFC00EC07F8 B3B3A3123FEA7F80EAFFC0A44A5A1380D87F005B0070131F6C5C6C495A6C49C7FC380781 FC3801FFF038007F80233B7DB82B>IIIII80 D82 DI<003FB812E0A3D9C003EB001F273E0001FE 130348EE01F00078160000701770A300601730A400E01738481718A4C71600B3B0913807 FF80011FB612E0A335397DB83C>II< B5D8FC07B5D8F001B5FCA30007902780001FFEC7EA1FF86C48C7D80FF8EC07E000010307 ED03C01B807F6C6F6C1500A26E5F017F6E6C1406A280013F4A6C5CA280011F4A6D5BEE06 7FA26D6C010E6D5BEE0C3FA26D6C011C6D5BEE181FA26D6C6F5BEE300FA26D6C6F485AEE 6007A26D6C4CC7FC9338C003FCA203805D913B7F818001FE06A203C1150EDA3FC3C7EAFF 0CA203E3151CDA1FE6EC7F98A215F6DA0FFCEC3FF0A302075E4B141FA202035E4B140FA2 02015E4B1407A2020093C8FC4B80503B7EB855>87 D<007FB590383FFFFCA3C601F80107 1380D97FE0D903FCC7FC013FEC01F06D6C5C5F6D6C5C6D6C13034CC8FC6D6C1306160E6D 6C5B6DEB8018163891387FC0306E6C5A16E06E6C5A91380FF18015FB6EB4C9FC5D14036E 7EA26E7F6F7EA24B7E15DF9138019FF09138038FF8150F91380607FC91380E03FE140C4A 6C7EEC38000230804A6D7E14E04A6D7E49486D7E130391C76C7E01066E7E130E010C6E7E 011C1401013C8101FE822607FF80010713E0B500E0013FEBFF80A339397EB83E>I<3901 800180000313033907000700000E130E485B001813180038133800301330007013700060 1360A200E013E0485BA400CE13CE39FF80FF806D13C0A3007F137FA2393F803F80390E00 0E001A1974B92A>92 D97 DIIII<147E903803FF80 90380FC1E0EB1F8790383F0FF0137EA213FCA23901F803C091C7FCADB512FCA3D801F8C7 FCB3AB487E387FFFF8A31C3B7FBA19>IIII 107 DI<2703F00FF0EB1F E000FFD93FFCEB7FF8913AF03F01E07E903BF1C01F83803F3D0FF3800FC7001F802603F7 0013CE01FE14DC49D907F8EB0FC0A2495CA3495CB3A3486C496CEB1FE0B500C1B50083B5 FCA340257EA445>I<3903F00FF000FFEB3FFCECF03F9039F1C01F803A0FF3800FC03803 F70013FE496D7EA25BA35BB3A3486C497EB500C1B51280A329257EA42E>II<3903F01FE000FFEB7FF89038F1E07E9039F3801F803A07F7000FC0D803FEEB07E0 49EB03F04914F849130116FC150016FEA3167FAA16FEA3ED01FCA26DEB03F816F06D1307 6DEB0FE001F614C09039F7803F009038F1E07E9038F0FFF8EC1FC091C8FCAB487EB512C0 A328357EA42E>I<3807E01F00FFEB7FC09038E1E3E09038E387F0380FE707EA03E613EE 9038EC03E09038FC0080491300A45BB3A2487EB512F0A31C257EA421>114 DI<1318A5 1338A31378A313F8120112031207001FB5FCB6FCA2D801F8C7FCB215C0A93800FC011580 EB7C03017E13006D5AEB0FFEEB01F81A347FB220>IIIIII E /Fn 68 124 df12 D39 DI<127012F8127C7EEA3F806C7E6C7E12076C7E7F6C7E6C7EA2137F80133F 806D7EA280130FA280130780A36D7EA4807FA51580B01500A55B5CA4495AA35C130F5CA2 131F5CA2495A5C137F91C7FC13FEA2485A485A5B485A120F485A485A003EC8FC5A5A1270 195A7AC329>I<147C14FE497EA5260C00FE1360003FEC01F8D87F80EB03FC01C0130701 E0130F3AFFF87C3FFED87FFCEB7FFC01FE13FF263FFF7D13F8000F90B512E000011500D8 003F13F8010713C0A2013F13F848B6FC000F15E0003F017D13F8267FFE7C13FC01FC137F D8FFF8EB3FFE3A7FE0FE0FFC01C0130701801303D83F00EB01F8000CEC0060C6486C1300 A56D5A147C27287AC334>I44 DII<161C163E167EA216FE16FC15 0116F8A2150316F0A2150716E0150F16C0A2151F1680153F1600A25D157E15FE5DA21401 5DA214035D14075DA2140F5D141F5DA2143F92C7FC5C147EA214FE5CA213015C13035CA2 13075C130F5CA2131F5C133F91C8FCA25B137EA213FE5B12015BA212035B12075BA2120F 5B121F5BA2123F90C9FCA25A127E12FE5AA25A1278275B7AC334>II<140F143F5C495A130F48B5FCB6FCA313F7EAFE071200B3B3A8B712 F0A5243C78BB34>I<903803FF80013F13F890B512FE00036E7E4881260FF80F7F261FC0 037F4848C67F486C6D7E6D6D7E487E6D6D7EA26F1380A46C5A6C5A6C5A0007C7FCC8FC4B 1300A25E153F5E4B5AA24B5A5E4A5B4A5B4A48C7FC5D4A5AEC1FE04A5A4A5A9139FF000F 80EB01FC495A4948EB1F00495AEB1F8049C7FC017E5C5B48B7FC485D5A5A5A5A5AB7FC5E A4293C7BBB34>I<903801FFE0010F13FE013F6D7E90B612E04801817F3A03FC007FF8D8 07F06D7E82D80FFC131F6D80121F7FA56C5A5E6C48133FD801F05CC8FC4B5A5E4B5A4A5B 020F5B902607FFFEC7FC15F815FEEDFFC0D9000113F06E6C7E6F7E6F7E6F7E1780A26F13 C0A217E0EA0FC0487E487E487E487EA317C0A25D491580127F49491300D83FC0495A6C6C 495A3A0FFE01FFF86CB65A6C5DC61580013F49C7FC010313E02B3D7CBB34>II<00071538D80FE0EB01F801FE133F 90B6FC5E5E5E5E93C7FC5D15F85D15C04AC8FC0180C9FCA9ECFFC0018713FC019F13FF90 B67E020113E09039F8007FF0496D7E01C06D7E5B6CC77FC8120F82A31780A21207EA1FC0 487E487E12FF7FA21700A25B4B5A6C5A01805C6CC7123F6D495AD81FE0495A260FFC075B 6CB65A6C92C7FCC614FC013F13F0010790C8FC293D7BBB34>II<121F7F13F890B712F0A45A17E017C0178017005E5E5A 007EC7EA01F84B5A007C4A5A4B5A4B5A93C7FC485C157E5DC7485A4A5AA24A5A140F5D14 1F143F5D147FA214FF92C8FC5BA25BA3495AA3130FA5131FAA6D5A6D5A6D5A2C3F7ABD34 >II58 D<16FCA24B7EA24B7EA34B7FA24B7FA34B7FA24B7FA34B7F157C03FC 7FEDF87FA2020180EDF03F0203804B7E02078115C082020F814B7E021F811500824A8102 3E7F027E81027C7FA202FC814A147F49B77EA34982A2D907E0C7001F7F4A80010F835C83 011F8391C87E4983133E83017E83017C81B500FC91B612FCA5463F7CBE4F>65 DI<9226 07FFC0130E92B500FC131E020702FF133E023FEDC07E91B7EAE1FE01039138803FFB4990 39F80003FF4901C01300013F90C8127F4948151FD9FFF8150F48491507485B4A15034817 01485B18004890CAFC197E5A5B193E127FA349170012FFAC127F7F193EA2123FA27F6C18 7E197C6C7F19FC6C6D16F86C6D150119F06C6D15036C6DED07E0D97FFEED0FC06D6CED3F 80010F01C0ECFF006D01F8EB03FE6D9039FF801FFC010091B55A023F15E0020715800200 02FCC7FC030713C03F407ABE4C>IIII<922607FFC0 130E92B500FC131E020702FF133E023FEDC07E91B7EAE1FE01039138803FFB499039F800 03FF4901C01300013F90C8127F4948151FD9FFF8150F48491507485B4A1503481701485B 18004890CAFC197E5A5B193E127FA34994C7FC12FFAB0407B612FC127F7FA3003F92C738 3FFE00A27F7EA26C7FA26C7F6C7FA26C7F6C7FD97FFE157F6D6C7E010F01E014FF6D01F8 13036D9038FF801F010091B512F3023F15C00207ED803E02009138FE000E030701E090C7 FC46407ABE52>III<0103B612F8A590C7383FFC00B3B3A4EA1FE0487E487EA2487EA3157F5EA26C 48495A495C263FE0035B261FF80F5B6CB6C7FC000314FCC614F0011F90C8FC2D3F7EBD36 >I76 DIIII82 D<903A03FFC001C0011FEBF803017FEBFE0748B612 8F4815DF48010013FFD80FF8130F48481303497F4848EB007F127F49143F161F12FF160F A27F1607A27F7F01FC91C7FCEBFF806C13F8ECFFC06C14FCEDFF806C15E016F86C816C81 6C816C16806C6C15C07F010715E0EB007F020714F0EC003F1503030013F8167F163F1278 00F8151FA2160FA27EA217F07E161F6C16E06D143F01E015C001F8EC7F8001FEEB01FF90 26FFE00713004890B55A486C14F8D8F81F5CD8F00314C027E0003FFEC7FC2D407ABE3A> I<003FB912FCA5903BFE003FFE003FD87FF0EE0FFE01C0160349160190C71500197E127E A2007C183EA400FC183F48181FA5C81600B3AF010FB712F8A5403D7CBC49>IIII91 D93 D<903807FFC0013F13F848B6FC48812607FE037F260FF8007F6DEB3FF048 6C806F7EA36F7EA26C5A6C5AEA01E0C8FC153F91B5FC130F137F3901FFFE0F4813E0000F 1380381FFE00485A5B485A12FF5BA4151F7F007F143F6D90387BFF806C6C01FB13FE391F FF07F36CEBFFE100031480C6EC003FD91FF890C7FC2F2B7DA933>97 D<13FFB5FCA512077EAFEDFFE0020713FC021FEBFF80027F80DAFF8113F09139FC003FF8 02F06D7E4A6D7E4A13074A80701380A218C082A318E0AA18C0A25E1880A218005E6E5C6E 495A6E495A02FCEB7FF0903AFCFF01FFE0496CB55AD9F01F91C7FCD9E00713FCC7000113 C033407DBE3A>IIIII<903A03FF8007F0 013F9038F83FF8499038FCFFFC48B712FE48018313F93A07FC007FC34848EB3FE1001FED F1FC4990381FF0F81700003F81A7001F5DA26D133F000F5D6C6C495A3A03FF83FF8091B5 C7FC4814FC01BF5BD80F03138090CAFCA2487EA27F13F06CB6FC16F016FC6C15FF17806C 16C06C16E01207001F16F0393FE000034848EB003F49EC1FF800FF150F90C81207A56C6C EC0FF06D141F003F16E001F0147FD81FFC903801FFC02707FF800F13006C90B55AC615F8 013F14E0010101FCC7FC2F3D7DA834>I<13FFB5FCA512077EAFED1FF8EDFFFE02036D7E 4A80DA0FE07F91381F007F023C805C4A6D7E5CA25CA35CB3A4B5D8FE0FB512E0A5333F7C BE3A>III<13FFB5FCA512077EB092380FFFFEA5DB01FEC7FC4B5AED07F0ED1FE04B5A4B5A4B C8FCEC03FC4A5A4A5A141FEC7FF84A7EA2818102E77F02C37F148102007F826F7E6F7E15 1F6F7E826F7F6F7F816F7FB5D8FC07EBFFC0A5323F7DBE37>I<13FFB5FCA512077EB3B3 AFB512FCA5163F7CBE1D>I<01FFD91FF8ECFFC0B590B5010713F80203DAC01F13FE4A6E 487FDA0FE09026F07F077F91261F003FEBF8010007013EDAF9F0806C0178ECFBC04A6DB4 486C7FA24A92C7FC4A5CA34A5CB3A4B5D8FE07B5D8F03FEBFF80A551297CA858>I<01FF EB1FF8B5EBFFFE02036D7E4A80DA0FE07F91381F007F0007013C806C5B4A6D7E5CA25CA3 5CB3A4B5D8FE0FB512E0A533297CA83A>II<01FFEBFFE0B5000713FC021FEBFF80027F80DAFF8113F09139FC007FF8000301 F06D7E4A6D7E4A130F4A6D7E1880A27013C0A38218E0AA4C13C0A318805E18005E6E5C6E 495A6E495A02FCEBFFF0DAFF035B92B55A029F91C7FC028713FC028113C00280C9FCACB5 12FEA5333B7DA83A>I<3901FE01FE00FF903807FF804A13E04A13F0EC3F1F91387C3FF8 000713F8000313F0EBFFE0A29138C01FF0ED0FE091388007C092C7FCA391C8FCB3A2B6FC A525297DA82B>114 D<90383FFC1E48B512BE000714FE5A381FF00F383F800148C7FC00 7E147EA200FE143EA27E7F6D90C7FC13F8EBFFE06C13FF15C06C14F06C806C806C806C80 C61580131F1300020713C014000078147F00F8143F151F7EA27E16806C143F6D140001E0 13FF9038F803FE90B55A15F0D8F87F13C026E00FFEC7FC222B7DA929>IIIIIII<003FB612 F8A4D9F80113F001C014E0495A494813C04A1380007E15005C4A5A007C5C147F4A5A495B 5DC65A495B495BA249EB007C495A5C137F494813FC484913F85C5A48EBC0011480481403 4813004848130749131F007FECFFF0B7FCA426287DA72E>II E /Fo 23 124 df12 D<150E151E153C157815F0EC01E0EC 03C01407EC0F80EC1F00143EA25C5C13015C495A13075C130F5C131F91C7FC5B133E137E 137C13FCA2485AA3485AA3485AA3120F5BA3121F5BA3123FA390C8FCA25AA5127EA312FE B3A7127EA3127FA57EA27FA3121FA37F120FA37F1207A36C7EA36C7EA36C7EA2137C137E 133E133F7F80130F8013078013036D7E801300147C80A280EC0F80EC07C01403EC01E0EC 00F01578153C151E150E1F8F73EA33>40 D<12E07E12787E7E7E6C7E7F6C7E6C7E6C7EA2 137C7F133F7F6D7E80130780130380130180130080147C147EA280A3EC1F80A3EC0FC0A3 15E01407A315F01403A315F8A31401A215FCA51400A315FEB3A715FCA31401A515F8A214 03A315F0A3140715E0A3140F15C0A3EC1F80A3EC3F00A3147EA2147C14FC5C13015C1303 5C13075C130F5C49C7FC5B133E5B5BA2485A485A485A5B48C8FC121E5A5A5A5A1F8F7AEA 33>I45 D<120FEA3FC0EA7FE0EAFFF0A6EA7FE0EA3FC0EA0F00 C7FCB3B3A2120FEA3FC0EA7FE0EAFFF0A6EA7FE0EA3FC0EA0F000C3E74BD24>58 D73 D77 D80 D83 D97 D<4AB47E020F13F8023F13FE9139FF007F80D903FCEB07E0D907F0EB01F0D91FE0EB0078 49488049488049C87E48485D4915FF00034B138048485CA2485AA2485AA2003F6F130049 EC007C94C7FC127FA35B12FFAD127F7FA4123F7FA2001FEE01C07F000F16036D16801207 6C6C15076D160000015E6C6C151E6D6C5C6D6C5C6D6C5CD90FF8495AD903FCEB07C0903A 00FF803F8091263FFFFEC7FC020F13F80201138032417CBF3A>99 D<181EEF3FFEEE07FFA4EE000F1703A21701B3AAEDFF80020F13F8023F13FE9139FF803F 81903A03FC0007C14948EB01E1D91FE0EB00F94948147D4948143D49C8121F4848150F49 1507120348481503491501120F121F5BA2123F5B127FA45B12FFAD127F7FA3123FA27F12 1FA26C6C1503A26C6C150712036D150F6C6C151F0000163D137F6D6CECF9FF6D6CEB01F1 D90FF0D903C113C06D6CD90F81EBFF80D901FFEB7F019039007FFFFC021F13E002010100 91C7FC41657CE349>II<133C13FF487F487FA66C5B6C90C7FC133C90C8FCB3A2EB03C0EA07FF127FA4 1201EA007FA2133FB3B3AC497E497EB612E0A41B5F7DDE23>105 D108 D110 DII<90390780 03F8D807FFEB0FFFB5013F13C092387C0FE0913881F01F9238E03FF00001EB838039007F 8700148FEB3F8E029CEB1FE0EE0FC00298EB030002B890C7FCA214B014F0A25CA55CB3B0 497EEBFFF8B612FCA42C3F7CBE33>114 D<9139FFE00180010FEBFC03017FEBFF073A01 FF001FCFD803F8EB03EFD807E0EB01FF48487F4848147F48C8123F003E151F007E150F12 7CA200FC1507A316037EA27E7F6C7E6D91C7FC13F8EA3FFE381FFFF06CEBFF806C14F86C 14FF6C15C06C6C14F0011F80010714FED9007F7F02031480DA003F13C01503030013E016 7F00E0ED1FF0160F17F86C15071603A36C1501A37EA26C16F016037E17E06D14076DEC0F C06D1580D8FDF0141FD8F8F8EC7F00013E14FC3AF01FC00FF80107B512E0D8E001148027 C0003FF8C7FC2D417DBF34>I<1438A71478A414F8A31301A31303A21307130F131FA213 7F13FF1203000F90B6FCB8FCA3260007F8C8FCB3AE17E0AE6D6CEB01C0A316036D6C1480 16076D6C14006E6C5A91383FC01E91381FF07C6EB45A020313E09138007F802B597FD733 >II123 D E end %%EndProlog %%BeginSetup %%Feature: *Resolution 600dpi TeXDict begin %%EndSetup %%Page: 0 1 0 0 bop 23 166 a Fo(Proto)t(col)44 b(Indep)t(enden)l(t)h (Multicast{Sparse)g(Mo)t(de)e(\(PIM-SM\):)g(Proto)t(col)1583 309 y(Sp)t(eci\014cation)17 702 y Fn(Deb)s(orah)35 b(Estrin)17 861 y Fm(Computer)27 b(Science)g(Dept/ISI)17 961 y(Univ)n(ersit)n(y)f (of)i(Southern)f(Calif.)17 1061 y(Los)f(Angeles,)i(CA)g(90089)17 1160 y(estrin@usc.edu)1167 702 y Fn(Dino)35 b(F)-9 b(arinacci)1167 861 y Fm(Cisco)27 b(Systems)g(Inc.)1167 961 y(170)f(W)-7 b(est)28 b(T)-7 b(asman)27 b(Driv)n(e,)1167 1061 y(San)g(Jose,)g(CA)h (95134)1167 1160 y(dino@cisco.com)2317 702 y Fn(Ahmed)35 b(Helm)m(y)2317 861 y Fm(Computer)28 b(Science)f(Dept.)2317 961 y(Univ)n(ersit)n(y)g(of)h(Southern)f(Calif.)2317 1061 y(Los)g(Angeles,)g(CA)h(90089)2317 1160 y(ahelm)n (y@catarina.usc.edu)3468 702 y Fn(Da)m(vid)35 b(Thaler)3468 861 y Fm(EECS)27 b(Departmen)n(t)3468 961 y(Univ)n(ersit)n(y)f(of)i (Mic)n(higan)3468 1061 y(Ann)g(Arb)r(or,)f(MI)h(48109)3468 1160 y(thalerd@eecs.umic)n(h.edu)17 1478 y Fn(Stephen)34 b(Deering)17 1637 y Fm(Xero)n(x)26 b(P)-7 b(AR)n(C)17 1737 y(3333)25 b(Co)n(y)n(ote)h(Hill)i(Road)17 1837 y(P)n(alo)e(Alto,)h (CA)h(94304)17 1936 y(deering@parc.xero)n(x.com)1337 1478 y Fn(Mark)35 b(Handley)1337 1637 y Fm(Departmen)n(t)24 b(of)f(Computer)g(Science)1337 1737 y(Univ)n(ersit)n(y)k(College)f (London)1337 1837 y(Go)n(w)n(er)g(Street)1337 1936 y(London,)h(W)n(C1E) g(6BT)1337 2036 y(UK)1337 2135 y(m.handley@cs.ucl.ac.uk)2658 1478 y Fn(V)-9 b(an)35 b(Jacobson)2658 1637 y Fm(La)n(wrence)26 b(Berk)n(eley)g(Lab)r(oratory)2658 1737 y(1)h(Cyclotron)f(Road)2658 1837 y(Berk)n(eley)-7 b(,)26 b(CA)i(94720)2658 1936 y(v)-5 b(an@ee.lbl.go)n(v)17 2416 y Fn(Ching-gung)35 b(Liu)17 2575 y Fm(Computer)27 b(Science)g(Dept.)17 2675 y(Univ)n(ersit)n(y)f (of)i(Southern)f(Calif.)17 2775 y(Los)f(Angeles,)i(CA)g(90089)17 2874 y(c)n(harley@catarina.usc.edu)1317 2416 y Fn(Puneet)35 b(Sharma)1317 2575 y Fm(Computer)27 b(Science)h(Dept.)1317 2675 y(Univ)n(ersit)n(y)f(of)g(Southern)h(Calif.)1317 2775 y(Los)f(Angeles,)g(CA)h(90089)1317 2874 y(puneet@catarina.usc.edu) 2797 2416 y Fn(Liming)35 b(W)-9 b(ei)2797 2575 y Fm(Cisco)27 b(Systems)h(Inc.)2797 2675 y(170)f(W)-7 b(est)28 b(T)-7 b(asman)26 b(Driv)n(e,)2797 2775 y(San)i(Jose,)e(CA)i(95134)2797 2874 y(lw)n(ei@cisco.com)3997 2383 y Fl(1)1257 3181 y Fk(draft-ietf-idmr-PIM-SM-sp)s(ec-10.ps)1640 3394 y(Marc)m(h)j(15,)g (1997)1463 3824 y Fn(Status)j(of)h(This)g(Memo)17 4023 y Fm(This)29 b(do)r(cumen)n(t)g(is)g(an)g(In)n(ternet)g(Draft.)42 b(In)n(ternet)29 b(Drafts)g(are)f(w)n(orking)g(do)r(cumen)n(ts)h(of)g (the)h(In)n(ternet)f(Engineering)e(T)-7 b(ask)-125 4123 y(F)g(orce)25 b(\(IETF\),)h(its)g(Areas,)f(and)g(its)g(W)-7 b(orking)25 b(Groups.)35 b(\(Note)26 b(that)g(other)f(groups)f(ma)n(y)h (also)f(distribute)i(w)n(orking)e(do)r(cumen)n(ts)-125 4223 y(as)j(In)n(ternet)h(Drafts\).)17 4322 y(In)n(ternet)35 b(Drafts)h(are)f(draft)g(do)r(cumen)n(ts)h(v)-5 b(alid)36 b(for)f(a)g(maxim)n(um)h(of)f(six)h(mon)n(ths.)61 b(In)n(ternet)35 b(Drafts)h(ma)n(y)f(b)r(e)h(up)r(dated,)-125 4422 y(replaced,)c(or)f (obsoleted)g(b)n(y)h(other)f(do)r(cumen)n(ts)h(at)f(an)n(y)g(time.)50 b(It)32 b(is)g(not)g(appropriate)e(to)h(use)h(In)n(ternet)g(Drafts)f (as)g(reference)-125 4522 y(material)c(or)g(to)g(cite)h(them)g(other)f (than)h(as)f(a)g(\\w)n(orking)f(draft")h(or)f(\\w)n(ork)g(in)i (progress.")17 4634 y(Please)h(c)n(hec)n(k)g(the)i(I-D)g(abstract)e (listing)h(con)n(tained)g(in)h(eac)n(h)e(In)n(ternet)i(Draft)f (directory)f(to)h(learn)g(the)h(curren)n(t)e(status)i(of)-125 4747 y(this)d(or)f(an)n(y)g(other)g(In)n(ternet)g(Draft.)p -125 5190 1656 4 v -21 5244 a Fj(1)14 5275 y Fi(The)f(author)g(list)h (has)g(b)r(een)f(reordered)g(to)h(re\015ect)f(the)g(in)n(v)n(olv)n (emen)n(t)e(in)i(detailed)h(editorial)g(w)n(ork)g(on)f(this)g(sp)r (eci\014cation)i(do)r(cumen)n(t.)-125 5367 y(The)21 b(\014rst)g(four)g (authors)g(are)g(the)f(primary)g(editors)h(and)f(are)h(listed)h(alphab) r(etically)-6 b(.)33 b(The)21 b(rest)g(of)h(the)e(authors,)i(also)g (listed)f(alphab)r(etically)-6 b(,)-125 5458 y(participated)27 b(in)e(all)i(asp)r(ects)f(of)h(the)e(arc)n(hitectural)i(and)e(detailed) h(design)g(but)f(managed)g(to)h(get)g(a)n(w)n(a)n(y)g(without)g(hac)n (king)g(the)f(latex!)p eop %%Page: 1 2 1 1 bop -125 -149 a Fh(draft-ietf-idmr-PIM-SM-sp)s(ec-10.ps)2718 b Fk(1)-125 149 y Fg(Con)l(ten)l(ts)-125 353 y Fn(1)85 b(In)m(tro)s(duction)3375 b(3)-125 557 y(2)85 b(PIM-SM)35 b(Proto)s(col)h(Ov)m(erview)2659 b(3)12 670 y Fk(2.1)94 b(Lo)s(cal)30 b(hosts)g(joining)f(a)i(group)78 b(.)46 b(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g (.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)158 b(4)12 783 y(2.2)94 b(Establishing)27 b(the)k(RP-ro)s(oted)g(shared)e (tree)f(.)46 b(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g (.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)158 b(4)12 896 y(2.3)94 b(Hosts)31 b(sending)e(to)i(a)g(group)26 b(.)45 b(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.) g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g (.)f(.)h(.)158 b(5)12 1009 y(2.4)94 b(Switc)m(hing)29 b(from)g(shared)h(tree)h(\(RP-tree\))h(to)f(shortest)g(path)f(tree)h (\(SP-tree\))60 b(.)46 b(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)158 b(6)12 1122 y(2.5)94 b(Steady)30 b(state)i(main)m(tenance)f(of)f (distribution)d(tree)k(\(i.e.,)g(router)g(state\))37 b(.)46 b(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)158 b(7)12 1235 y(2.6)94 b(Obtaining)28 b(RP)i(information)39 b(.)46 b(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.) f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f (.)h(.)158 b(7)12 1347 y(2.7)94 b(In)m(terop)s(eration)30 b(with)f(dense)h(mo)s(de)g(proto)s(cols)g(suc)m(h)g(as)h(D)m(VMRP)81 b(.)45 b(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.) 158 b(8)12 1460 y(2.8)94 b(Multicast)30 b(data)h(pac)m(k)m(et)h(pro)s (cessing)66 b(.)46 b(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.) h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h (.)158 b(9)12 1573 y(2.9)94 b(Op)s(eration)29 b(o)m(v)m(er)j (Multi-access)e(Net)m(w)m(orks)73 b(.)46 b(.)g(.)f(.)h(.)g(.)f(.)h(.)g (.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.) g(.)f(.)h(.)158 b(9)12 1686 y(2.10)49 b(Unicast)30 b(Routing)g(Changes) 76 b(.)46 b(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g (.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.) f(.)h(.)113 b(11)12 1799 y(2.11)49 b(PIM-SM)30 b(for)h(In)m(ter-Domain) f(Multicast)63 b(.)45 b(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g (.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)113 b(11)12 1912 y(2.12)49 b(Securit)m(y)60 b(.)46 b(.)g(.)f(.)h(.)g(.)f(.) h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h (.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.) h(.)g(.)f(.)h(.)113 b(11)-125 2116 y Fn(3)85 b(Detailed)34 b(Proto)s(col)j(Description)2530 b(12)12 2229 y Fk(3.1)94 b(Hello)38 b(.)46 b(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g (.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.) f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)113 b(12)221 2342 y(3.1.1)106 b(Sending)28 b(Hellos)75 b(.)46 b(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g (.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.) f(.)h(.)113 b(12)221 2455 y(3.1.2)106 b(Receiving)30 b(Hellos)76 b(.)45 b(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.) f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g (.)f(.)h(.)g(.)f(.)h(.)113 b(12)221 2567 y(3.1.3)106 b(Timing)28 b(out)j(neigh)m(b)s(or)e(en)m(tries)39 b(.)46 b(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g (.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)113 b(12)12 2680 y(3.2)94 b(Join/Prune)72 b(.)45 b(.)h(.)g(.)f(.)h(.)g(.)g (.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.) f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f (.)h(.)113 b(12)221 2793 y(3.2.1)106 b(Sending)28 b(Join/Prune)h (Messages)38 b(.)45 b(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g (.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)113 b(12)221 2906 y(3.2.2)106 b(Receiving)30 b(Join/Prune)e(Messages)39 b(.)46 b(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.) f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)113 b(15)12 3019 y(3.3)94 b(Register)30 b(and)g(Register-Stop)93 b(.)46 b(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.) h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h (.)113 b(18)221 3132 y(3.3.1)106 b(Sending)28 b(Registers)j(and)e (Receiving)h(Register-Stops)35 b(.)45 b(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h (.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)113 b(18)221 3245 y(3.3.2)106 b(Receiving)30 b(Register)g(Messages)i(and)e(Sending)e (Register-Stops)j(.)46 b(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.) f(.)h(.)113 b(18)12 3358 y(3.4)94 b(Multicast)30 b(Data)i(P)m(ac)m(k)m (et)h(F)-8 b(orw)m(arding)69 b(.)46 b(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h (.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.) h(.)g(.)f(.)h(.)113 b(19)221 3471 y(3.4.1)106 b(Data)32 b(triggered)e(switc)m(h)g(to)h(shortest)g(path)f(tree)h(\(SP-tree\))39 b(.)45 b(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.) 113 b(20)12 3584 y(3.5)94 b(Assert)63 b(.)45 b(.)h(.)g(.)f(.)h(.)g(.)f (.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.) h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f (.)h(.)g(.)f(.)h(.)113 b(21)221 3697 y(3.5.1)106 b(Sending)28 b(Asserts)h(.)46 b(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g (.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.) g(.)f(.)h(.)g(.)f(.)h(.)113 b(21)221 3809 y(3.5.2)106 b(Receiving)30 b(Asserts)g(.)45 b(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g (.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.) f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)113 b(21)12 3922 y(3.6)94 b(Candidate-RP-Adv)m(ertisemen)m(ts)30 b(and)g(Bo)s(otstrap)h (messages)25 b(.)45 b(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g (.)g(.)f(.)h(.)g(.)f(.)h(.)113 b(22)221 4035 y(3.6.1)106 b(Sending)28 b(Candidate-RP-Adv)m(ertisemen)m(ts)c(.)46 b(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g (.)g(.)f(.)h(.)g(.)f(.)h(.)113 b(22)221 4148 y(3.6.2)106 b(Receiving)30 b(C-RP-Advs)g(and)f(Originating)f(Bo)s(otstrap)45 b(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f (.)h(.)113 b(23)221 4261 y(3.6.3)106 b(Receiving)30 b(and)f(F)-8 b(orw)m(arding)31 b(Bo)s(otstrap)43 b(.)j(.)g(.)f(.)h(.)g(.)g(.)f(.)h (.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.) 113 b(23)12 4374 y(3.7)94 b(Hash)30 b(F)-8 b(unction)87 b(.)46 b(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.) h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h (.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)113 b(24)12 4487 y(3.8)94 b(Pro)s(cessing)29 b(Timer)g(Ev)m(en)m(ts)k(.)45 b(.)h(.)g(.)f(.)h(.)g (.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.) g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)113 b(25)221 4600 y(3.8.1)106 b(Timers)29 b(related)h(to)h(tree)g(main)m (tenance)k(.)45 b(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g (.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)113 b(25)221 4713 y(3.8.2)106 b(Timers)29 b(relating)g(to)i(neigh)m(b)s(or) e(disco)m(v)m(ery)87 b(.)46 b(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g (.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)113 b(27)221 4826 y(3.8.3)106 b(Timers)29 b(relating)g(to)i(RP)f (information)61 b(.)45 b(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.) g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)113 b(27)221 4939 y(3.8.4)106 b(Default)30 b(timer)g(v)-5 b(alues)63 b(.)46 b(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g (.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.) g(.)f(.)h(.)113 b(27)12 5051 y(3.9)94 b(Summary)29 b(of)h(\015ags)h (used)49 b(.)d(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f (.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.) f(.)h(.)g(.)f(.)h(.)113 b(29)12 5164 y(3.10)49 b(Securit)m(y)60 b(.)46 b(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.) f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f (.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)113 b(29)p eop %%Page: 2 3 2 2 bop -125 -149 a Fh(draft-ietf-idmr-PIM-SM-sp)s(ec-10.ps)2718 b Fk(2)-125 149 y Fn(4)85 b(P)m(ac)m(k)m(et)35 b(F)-9 b(ormats)3188 b(30)12 262 y Fk(4.1)94 b(Enco)s(ded)29 b(Source)i(and)e(Group)h(Address)f(formats)24 b(.)46 b(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h (.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)113 b(31)12 375 y(4.2)94 b(Hello)30 b(Message)36 b(.)46 b(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.) h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h (.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)113 b(33)12 488 y(4.3)94 b(Register)30 b(Message)58 b(.)45 b(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f (.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.) f(.)h(.)g(.)f(.)h(.)113 b(34)12 601 y(4.4)94 b(Register-Stop)31 b(Message)57 b(.)46 b(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h (.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.) g(.)g(.)f(.)h(.)g(.)f(.)h(.)113 b(35)12 714 y(4.5)94 b(Join/Prune)28 b(Message)72 b(.)46 b(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g (.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.) f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)113 b(36)12 827 y(4.6)94 b(Bo)s(otstrap)31 b(Message)57 b(.)46 b(.)g(.)g(.)f(.)h(.) g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g (.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)113 b(39)12 940 y(4.7)94 b(Assert)30 b(Message)61 b(.)46 b(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g (.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.) g(.)f(.)h(.)g(.)f(.)h(.)113 b(41)12 1053 y(4.8)94 b(Graft)31 b(Message)25 b(.)46 b(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g (.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.) f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)113 b(41)12 1166 y(4.9)94 b(Graft-Ac)m(k)32 b(Message)53 b(.)46 b(.)g(.)g(.)f(.)h (.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.) g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)113 b(41)12 1279 y(4.10)49 b(Candidate-RP-Adv)m(ertisemen)m(t)58 b(.)45 b(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.) g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)113 b(42)-125 1482 y Fn(5)85 b(Ac)m(kno)m(wledgmen)m(ts)3079 b(43)-125 1686 y(6)85 b(App)s(endices)3373 b(44)12 1799 y Fk(6.1)94 b(App)s(endix)28 b(I:)i(Ma)5 b(jor)31 b(Changes)f(and)g(Up) s(dates)g(to)h(the)g(Sp)s(ec)92 b(.)45 b(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.) h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)113 b(44)12 1912 y(6.2)94 b(App)s(endix)28 b(I)s(I:)h(BSR)h(Election)g(and)g (RP-Set)h(Distribution)65 b(.)46 b(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h (.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)113 b(46)12 2025 y(6.3)94 b(App)s(endix)28 b(I)s(I)s(I:)h(Glossary)h(of)g(T)-8 b(erms)76 b(.)46 b(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h (.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.) 113 b(49)p eop %%Page: 3 4 3 3 bop -125 -149 a Fh(draft-ietf-idmr-PIM-SM-sp)s(ec-10.ps)2718 b Fk(3)-125 149 y Fg(1)135 b(In)l(tro)t(duction)-125 352 y Fk(This)32 b(do)s(cumen)m(t)h(describ)s(es)e(a)j(proto)s(col)f (for)g(e\016cien)m(tly)g(routing)f(to)i(m)m(ulticast)f(groups)f(that)i (ma)m(y)g(span)e(wide-area)-125 465 y(\(and)d(in)m(ter-domain\))f(in)m (ternets.)40 b(W)-8 b(e)29 b(refer)g(to)g(the)g(approac)m(h)g(as)g (Proto)s(col)g(Indep)s(enden)m(t)e(Multicast{Sparse)h(Mo)s(de)-125 578 y(\(PIM-SM\))43 b(b)s(ecause)g(it)e(is)h(not)g(dep)s(enden)m(t)f (on)i(an)m(y)f(particular)f(unicast)g(routing)g(proto)s(col,)46 b(and)41 b(b)s(ecause)i(it)e(is)-125 691 y(designed)28 b(to)i(supp)s(ort)d(sparse)h(groups)h(as)g(de\014ned)e(in)h([1)q(,)h (2].)41 b(This)27 b(do)s(cumen)m(t)h(describ)s(es)f(the)j(proto)s(col)e (details.)40 b(F)-8 b(or)-125 804 y(the)31 b(motiv)-5 b(ation)30 b(b)s(ehind)e(the)i(design)f(and)h(a)h(description)d(of)j (the)f(arc)m(hitecture,)i(see)f([1,)g(2].)17 917 y(Section)k(2)i (summarizes)e(PIM-SM)h(op)s(eration.)57 b(It)36 b(describ)s(es)f(the)h (proto)s(col)g(from)f(a)i(net)m(w)m(ork)g(p)s(ersp)s(ectiv)m(e,)g(in) -125 1030 y(particular,)29 b(ho)m(w)i(the)f(participating)f(routers)h (in)m(teract)h(to)g(create)h(and)e(main)m(tain)f(the)i(m)m(ulticast)f (distribution)c(tree.)-125 1143 y(Section)f(3)f(describ)s(es)f(PIM-SM)h (op)s(erations)g(from)g(the)g(p)s(ersp)s(ectiv)m(e)f(of)i(a)g(single)d (router)j(implemen)m(ting)d(the)i(proto)s(col;)-125 1256 y(this)i(section)i(constitutes)f(the)g(main)f(b)s(o)s(dy)g(of)h(the)g (proto)s(col)g(sp)s(eci\014cation.)39 b(It)27 b(is)f(organized)h (according)g(to)h(PIM-SM)-125 1369 y(message)k(t)m(yp)s(e;)f(for)f(eac) m(h)h(message)h(t)m(yp)s(e)e(w)m(e)h(describ)s(e)e(its)h(con)m(ten)m (ts,)i(its)e(generation,)h(and)f(its)f(pro)s(cessing.)17 1481 y(Sections)f(3.8)j(and)d(3.9)i(summarize)e(the)i(timers)e(and)h (\015ags)g(referred)f(to)i(throughout)f(this)f(do)s(cumen)m(t.)40 b(Section)29 b(4)-125 1594 y(pro)m(vides)h(pac)m(k)m(et)i(format)f (details.)17 1707 y(The)f(most)h(signi\014can)m(t)f(functional)f(c)m (hanges)j(since)e(the)i(Jan)m(uary)e('95)i(v)m(ersion)e(in)m(v)m(olv)m (e)h(the)h(Rendezv)m(ous)f(P)m(oin)m(t-)-125 1820 y(related)22 b(mec)m(hanisms,)i(sev)m(eral)e(resulting)e(simpli\014cations)f(to)k (the)f(proto)s(col,)i(and)d(remo)m(v)-5 b(al)23 b(of)f(the)g(PIM-DM)h (proto)s(col)-125 1933 y(details)30 b(to)h(a)g(separate)g(do)s(cumen)m (t)f([3)q(])h(\(for)f(clarit)m(y\).)-125 2220 y Fg(2)135 b(PIM-SM)44 b(Proto)t(col)h(Ov)l(erview)-125 2422 y Fk(In)30 b(this)f(section)i(w)m(e)g(pro)m(vide)e(an)h(o)m(v)m(erview)h(of)g(the) g(arc)m(hitectural)f(comp)s(onen)m(ts)g(of)h(PIM-SM.)17 2535 y(A)c(router)g(receiv)m(es)h(explicit)e(Join/Prune)f(messages)j (from)f(those)h(neigh)m(b)s(oring)d(routers)i(that)h(ha)m(v)m(e)g(do)m (wnstream)-125 2648 y(group)22 b(mem)m(b)s(ers.)37 b(The)22 b(router)g(then)g(forw)m(ards)f(data)i(pac)m(k)m(ets)h(addressed)e(to)h (a)f(m)m(ulticast)g(group,)h(G,)g(only)f(on)m(to)h(those)-125 2761 y(in)m(terfaces)34 b(on)e(whic)m(h)f(explicit)g(joins)h(ha)m(v)m (e)i(b)s(een)e(receiv)m(ed.)47 b(Note)34 b(that)g(all)d(routers)i(men)m (tioned)f(in)f(this)h(do)s(cumen)m(t)-125 2874 y(are)f(assumed)f(to)h (b)s(e)f(PIM-SM)g(capable,)h(unless)d(otherwise)i(sp)s(eci\014ed.)17 2987 y(A)h(Designated)h(Router)f(\(DR\))i(sends)d(p)s(erio)s(dic)f (Join/Prune)g(messages)j(to)m(w)m(ard)g(a)g(group-sp)s(eci\014c)e (Rendezv)m(ous)-125 3100 y(P)m(oin)m(t)j(\(RP\))f(for)g(eac)m(h)h (group)e(for)h(whic)m(h)f(it)g(has)h(activ)m(e)h(mem)m(b)s(ers.)45 b(Eac)m(h)32 b(router)g(along)g(the)g(path)g(to)m(w)m(ard)h(the)f(RP) -125 3213 y(builds)25 b(a)i(wildcard)e(\(an)m(y-source\))k(state)g(for) e(the)h(group)f(and)g(sends)f(Join/Prune)g(messages)i(on)f(to)m(w)m (ard)i(the)e(RP)-8 b(.)28 b(W)-8 b(e)-125 3326 y(use)28 b(the)h(term)f Ff(r)-5 b(oute)31 b(entry)e Fk(to)g(refer)f(to)h(the)f (state)h(main)m(tained)e(in)g(a)i(router)f(to)h(represen)m(t)f(the)g (distribution)d(tree.)40 b(A)-125 3439 y(route)28 b(en)m(try)g(ma)m(y)g (include)e(suc)m(h)h(\014elds)f(as)i(the)g(source)g(address,)f(the)h (group)f(address,)h(the)g(incoming)e(in)m(terface)i(from)-125 3552 y(whic)m(h)e(pac)m(k)m(ets)i(are)f(accepted,)i(the)e(list)e(of)i (outgoing)g(in)m(terfaces)g(to)g(whic)m(h)e(pac)m(k)m(ets)k(are)e(sen)m (t,)h(timers,)f(\015ag)g(bits,)f(etc.)-125 3664 y(The)i(wildcard)d (route)j(en)m(try's)h(incoming)d(in)m(terface)j(p)s(oin)m(ts)d(to)m(w)m (ard)j(the)f(RP;)g(the)g(outgoing)g(in)m(terfaces)h(p)s(oin)m(t)e(to)h (the)-125 3777 y(neigh)m(b)s(oring)d(do)m(wnstream)h(routers)h(that)g (ha)m(v)m(e)h(sen)m(t)f(Join/Prune)e(messages)i(to)m(w)m(ard)h(the)e (RP)-8 b(.)27 b(This)e(state)j(creates)g(a)-125 3890 y(shared,)f(RP-cen)m(tered,)i(distribution)23 b(tree)k(that)g(reac)m (hes)h(all)d(group)h(mem)m(b)s(ers.)39 b(When)26 b(a)h(data)h(source)e (\014rst)g(sends)g(to)-125 4003 y(a)g(group,)g(its)f(DR)h(unicasts)e (Register)i(messages)g(to)g(the)f(RP)g(with)f(the)i(source's)g(data)g (pac)m(k)m(ets)h(encapsulated)e(within.)-125 4116 y(If)f(the)g(data)h (rate)g(is)e(high,)h(the)h(RP)e(can)i(send)e(source-sp)s(eci\014c)g (Join/Prune)g(messages)i(bac)m(k)g(to)m(w)m(ards)f(the)h(source)f(and) -125 4229 y(the)30 b(source's)g(data)g(pac)m(k)m(ets)h(will)26 b(follo)m(w)j(the)g(resulting)f(forw)m(arding)g(state)j(and)d(tra)m(v)m (el)j(unencapsulated)c(to)j(the)g(RP)-8 b(.)-125 4342 y(Whether)36 b(they)f(arriv)m(e)g(encapsulated)g(or)g(nativ)m(ely)-8 b(,)37 b(the)e(RP)g(forw)m(ards)g(the)g(source's)h(decapsulated)f(data) h(pac)m(k)m(ets)-125 4455 y(do)m(wn)27 b(the)f(RP-cen)m(tered)i (distribution)23 b(tree)k(to)m(w)m(ard)g(group)f(mem)m(b)s(ers.)39 b(If)26 b(the)h(data)g(rate)g(w)m(arran)m(ts)g(it,)g(routers)g(with) -125 4568 y(lo)s(cal)i(receiv)m(ers)h(can)f(join)g(a)g(source-sp)s (eci\014c,)h(shortest)f(path,)h(distribution)c(tree,)k(and)f(prune)f (this)g(source's)i(pac)m(k)m(ets)-125 4681 y(o\013)i(of)g(the)f(shared) g(RP-cen)m(tered)i(tree.)44 b(F)-8 b(or)32 b(lo)m(w)g(data)g(rate)g (sources,)g(neither)e(the)i(RP)-8 b(,)32 b(nor)e(last-hop)i(routers)f (need)-125 4794 y(join)f(a)h(source-sp)s(eci\014c)e(shortest)i(path)f (tree)h(and)f(data)h(pac)m(k)m(ets)h(can)f(b)s(e)f(deliv)m(ered)f(via)h (the)g(shared,)g(RP-tree.)17 4907 y(The)h(follo)m(wing)g(subsections)g (describ)s(e)f(SM)i(op)s(eration)g(in)f(more)h(detail,)g(in)f (particular,)g(the)i(con)m(trol)f(messages,)-125 5019 y(and)e(the)h(actions)f(they)h(trigger.)p eop %%Page: 4 5 4 4 bop -125 -149 a Fh(draft-ietf-idmr-PIM-SM-sp)s(ec-10.ps)2718 b Fk(4)-125 1738 y @beginspecial 340 @voffset 60 @hoffset 60 @hscale 60 @vscale 270 @angle @setspecial %%BeginDocument: example.1.ps % % Frame ps_prolog 4.0, for use with Frame 4.0 products % This ps_prolog file is Copyright (c) 1986-1993 Frame Technology % Corporation. All rights reserved. This ps_prolog file may be % freely copied and distributed in conjunction with documents created % using FrameMaker, FrameBuilder and FrameViewer as long as this % copyright notice is preserved. % % Frame products normally print colors as their true color on a color printer % or as shades of gray, based on luminance, on a black-and white printer. The % following flag, if set to True, forces all non-white colors to print as pure % black. This has no effect on bitmap images. /FMPrintAllColorsAsBlack false def % % Frame products can either set their own line screens or use a printer's % default settings. Three flags below control this separately for no % separations, spot separations and process separations. If a flag % is true, then the default printer settings will not be changed. If it is % false, Frame products will use their own settings from a table based on % the printer's resolution. /FMUseDefaultNoSeparationScreen true def /FMUseDefaultSpotSeparationScreen true def /FMUseDefaultProcessSeparationScreen false def % % For any given PostScript printer resolution, Frame products have two sets of % screen angles and frequencies for printing process separations, which are % recomended by Adobe. The following variable chooses the higher frequencies % when set to true or the lower frequencies when set to false. This is only % effective if the appropriate FMUseDefault...SeparationScreen flag is false. /FMUseHighFrequencyScreens true def % % PostScript Level 2 printers contain an "Accurate Screens" feature which can % improve process separation rendering at the expense of compute time. This % flag is ignored by PostScript Level 1 printers. /FMUseAcccurateScreens true def % % The following PostScript procedure defines the spot function that Frame % products will use for process separations. You may un-comment-out one of % the alternative functions below, or use your own. % % Dot function /FMSpotFunction {abs exch abs 2 copy add 1 gt {1 sub dup mul exch 1 sub dup mul add 1 sub } {dup mul exch dup mul add 1 exch sub }ifelse } def % % Line function % /FMSpotFunction { pop } def % % Elipse function % /FMSpotFunction { dup 5 mul 8 div mul exch dup mul exch add % sqrt 1 exch sub } def % % /FMversion (4.0) def /FMLevel1 /languagelevel where {pop languagelevel} {1} ifelse 2 lt def /FMPColor FMLevel1 { false /colorimage where {pop pop true} if } { true } ifelse def /FrameDict 400 dict def systemdict /errordict known not {/errordict 10 dict def errordict /rangecheck {stop} put} if % The readline in PS 23.0 doesn't recognize cr's as nl's on AppleTalk FrameDict /tmprangecheck errordict /rangecheck get put errordict /rangecheck {FrameDict /bug true put} put FrameDict /bug false put mark % Some PS machines read past the CR, so keep the following 3 lines together! currentfile 5 string readline 00 0000000000 cleartomark errordict /rangecheck FrameDict /tmprangecheck get put FrameDict /bug get { /readline { /gstring exch def /gfile exch def /gindex 0 def { gfile read pop dup 10 eq {exit} if dup 13 eq {exit} if gstring exch gindex exch put /gindex gindex 1 add def } loop pop gstring 0 gindex getinterval true } bind def } if /FMshowpage /showpage load def /FMquit /quit load def /FMFAILURE { dup = flush FMshowpage /Helvetica findfont 12 scalefont setfont 72 200 moveto show FMshowpage FMquit } def /FMVERSION { FMversion ne { (Frame product version does not match ps_prolog!) FMFAILURE } if } def /FMBADEPSF { (PostScript Lang. Ref. Man., 2nd Ed., H.2.4 says EPS must not call X ) dup dup (X) search pop exch pop exch pop length 4 -1 roll putinterval FMFAILURE } def /FMLOCAL { FrameDict begin 0 def end } def /concatprocs { /proc2 exch cvlit def/proc1 exch cvlit def/newproc proc1 length proc2 length add array def newproc 0 proc1 putinterval newproc proc1 length proc2 putinterval newproc cvx }def FrameDict begin /FMnone 0 def /FMcyan 1 def /FMmagenta 2 def /FMyellow 3 def /FMblack 4 def /FMcustom 5 def /FrameNegative false def /FrameSepIs FMnone def /FrameSepBlack 0 def /FrameSepYellow 0 def /FrameSepMagenta 0 def /FrameSepCyan 0 def /FrameSepRed 1 def /FrameSepGreen 1 def /FrameSepBlue 1 def /FrameCurGray 1 def /FrameCurPat null def /FrameCurColors [ 0 0 0 1 0 0 0 ] def /FrameColorEpsilon .001 def /eqepsilon { sub dup 0 lt {neg} if FrameColorEpsilon le } bind def /FrameCmpColorsCMYK { 2 copy 0 get exch 0 get eqepsilon { 2 copy 1 get exch 1 get eqepsilon { 2 copy 2 get exch 2 get eqepsilon { 3 get exch 3 get eqepsilon } {pop pop false} ifelse }{pop pop false} ifelse } {pop pop false} ifelse } bind def /FrameCmpColorsRGB { 2 copy 4 get exch 0 get eqepsilon { 2 copy 5 get exch 1 get eqepsilon { 6 get exch 2 get eqepsilon }{pop pop false} ifelse } {pop pop false} ifelse } bind def /RGBtoCMYK { 1 exch sub 3 1 roll 1 exch sub 3 1 roll 1 exch sub 3 1 roll 3 copy 2 copy le { pop } { exch pop } ifelse 2 copy le { pop } { exch pop } ifelse dup dup dup 6 1 roll 4 1 roll 7 1 roll sub 6 1 roll sub 5 1 roll sub 4 1 roll } bind def /CMYKtoRGB { dup dup 4 -1 roll add 5 1 roll 3 -1 roll add 4 1 roll add 1 exch sub dup 0 lt {pop 0} if 3 1 roll 1 exch sub dup 0 lt {pop 0} if exch 1 exch sub dup 0 lt {pop 0} if exch } bind def /FrameSepInit { 1.0 RealSetgray } bind def /FrameSetSepColor { /FrameSepBlue exch def /FrameSepGreen exch def /FrameSepRed exch def /FrameSepBlack exch def /FrameSepYellow exch def /FrameSepMagenta exch def /FrameSepCyan exch def /FrameSepIs FMcustom def setCurrentScreen } bind def /FrameSetCyan { /FrameSepBlue 1.0 def /FrameSepGreen 1.0 def /FrameSepRed 0.0 def /FrameSepBlack 0.0 def /FrameSepYellow 0.0 def /FrameSepMagenta 0.0 def /FrameSepCyan 1.0 def /FrameSepIs FMcyan def setCurrentScreen } bind def /FrameSetMagenta { /FrameSepBlue 1.0 def /FrameSepGreen 0.0 def /FrameSepRed 1.0 def /FrameSepBlack 0.0 def /FrameSepYellow 0.0 def /FrameSepMagenta 1.0 def /FrameSepCyan 0.0 def /FrameSepIs FMmagenta def setCurrentScreen } bind def /FrameSetYellow { /FrameSepBlue 0.0 def /FrameSepGreen 1.0 def /FrameSepRed 1.0 def /FrameSepBlack 0.0 def /FrameSepYellow 1.0 def /FrameSepMagenta 0.0 def /FrameSepCyan 0.0 def /FrameSepIs FMyellow def setCurrentScreen } bind def /FrameSetBlack { /FrameSepBlue 0.0 def /FrameSepGreen 0.0 def /FrameSepRed 0.0 def /FrameSepBlack 1.0 def /FrameSepYellow 0.0 def /FrameSepMagenta 0.0 def /FrameSepCyan 0.0 def /FrameSepIs FMblack def setCurrentScreen } bind def /FrameNoSep { /FrameSepIs FMnone def setCurrentScreen } bind def /FrameSetSepColors { FrameDict begin [ exch 1 add 1 roll ] /FrameSepColors exch def end } bind def /FrameColorInSepListCMYK { FrameSepColors { exch dup 3 -1 roll FrameCmpColorsCMYK { pop true exit } if } forall dup true ne {pop false} if } bind def /FrameColorInSepListRGB { FrameSepColors { exch dup 3 -1 roll FrameCmpColorsRGB { pop true exit } if } forall dup true ne {pop false} if } bind def /RealSetgray /setgray load def /RealSetrgbcolor /setrgbcolor load def /RealSethsbcolor /sethsbcolor load def end /setgray { FrameDict begin FrameSepIs FMnone eq { RealSetgray } { FrameSepIs FMblack eq { RealSetgray } { FrameSepIs FMcustom eq FrameSepRed 0 eq and FrameSepGreen 0 eq and FrameSepBlue 0 eq and { RealSetgray } { 1 RealSetgray pop } ifelse } ifelse } ifelse end } bind def /setrgbcolor { FrameDict begin FrameSepIs FMnone eq { RealSetrgbcolor } { 3 copy [ 4 1 roll ] FrameColorInSepListRGB { FrameSepBlue eq exch FrameSepGreen eq and exch FrameSepRed eq and { 0 } { 1 } ifelse } { FMPColor { RealSetrgbcolor currentcmykcolor } { RGBtoCMYK } ifelse FrameSepIs FMblack eq {1.0 exch sub 4 1 roll pop pop pop} { FrameSepIs FMyellow eq {pop 1.0 exch sub 3 1 roll pop pop} { FrameSepIs FMmagenta eq {pop pop 1.0 exch sub exch pop } { FrameSepIs FMcyan eq {pop pop pop 1.0 exch sub } {pop pop pop pop 1} ifelse } ifelse } ifelse } ifelse } ifelse RealSetgray } ifelse end } bind def /sethsbcolor { FrameDict begin FrameSepIs FMnone eq { RealSethsbcolor } { RealSethsbcolor currentrgbcolor setrgbcolor } ifelse end } bind def FrameDict begin /setcmykcolor where { pop /RealSetcmykcolor /setcmykcolor load def } { /RealSetcmykcolor { 4 1 roll 3 { 3 index add 0 max 1 min 1 exch sub 3 1 roll} repeat setrgbcolor pop } bind def } ifelse userdict /setcmykcolor { FrameDict begin FrameSepIs FMnone eq { RealSetcmykcolor } { 4 copy [ 5 1 roll ] FrameColorInSepListCMYK { FrameSepBlack eq exch FrameSepYellow eq and exch FrameSepMagenta eq and exch FrameSepCyan eq and { 0 } { 1 } ifelse } { FrameSepIs FMblack eq {1.0 exch sub 4 1 roll pop pop pop} { FrameSepIs FMyellow eq {pop 1.0 exch sub 3 1 roll pop pop} { FrameSepIs FMmagenta eq {pop pop 1.0 exch sub exch pop } { FrameSepIs FMcyan eq {pop pop pop 1.0 exch sub } {pop pop pop pop 1} ifelse } ifelse } ifelse } ifelse } ifelse RealSetgray } ifelse end } bind put FMLevel1 not { /patProcDict 5 dict dup begin <0f1e3c78f0e1c387> { 3 setlinewidth -1 -1 moveto 9 9 lineto stroke 4 -4 moveto 12 4 lineto stroke -4 4 moveto 4 12 lineto stroke} bind def <0f87c3e1f0783c1e> { 3 setlinewidth -1 9 moveto 9 -1 lineto stroke -4 4 moveto 4 -4 lineto stroke 4 12 moveto 12 4 lineto stroke} bind def <8142241818244281> { 1 setlinewidth -1 9 moveto 9 -1 lineto stroke -1 -1 moveto 9 9 lineto stroke } bind def <03060c183060c081> { 1 setlinewidth -1 -1 moveto 9 9 lineto stroke 4 -4 moveto 12 4 lineto stroke -4 4 moveto 4 12 lineto stroke} bind def <8040201008040201> { 1 setlinewidth -1 9 moveto 9 -1 lineto stroke -4 4 moveto 4 -4 lineto stroke 4 12 moveto 12 4 lineto stroke} bind def end def /patDict 15 dict dup begin /PatternType 1 def /PaintType 2 def /TilingType 3 def /BBox [ 0 0 8 8 ] def /XStep 8 def /YStep 8 def /PaintProc { begin patProcDict bstring known { patProcDict bstring get exec } { 8 8 true [1 0 0 -1 0 8] bstring imagemask } ifelse end } bind def end def } if /combineColor { FrameSepIs FMnone eq { graymode FMLevel1 or not { [/Pattern [/DeviceCMYK]] setcolorspace FrameCurColors 0 4 getinterval aload pop FrameCurPat setcolor } { FrameCurColors 3 get 1.0 ge { FrameCurGray RealSetgray } { FMPColor graymode and { 0 1 3 { FrameCurColors exch get 1 FrameCurGray sub mul } for RealSetcmykcolor } { 4 1 6 { FrameCurColors exch get graymode { 1 exch sub 1 FrameCurGray sub mul 1 exch sub } { 1.0 lt {FrameCurGray} {1} ifelse } ifelse } for RealSetrgbcolor } ifelse } ifelse } ifelse } { FrameCurColors 0 4 getinterval aload FrameColorInSepListCMYK { FrameSepBlack eq exch FrameSepYellow eq and exch FrameSepMagenta eq and exch FrameSepCyan eq and FrameSepIs FMcustom eq and { FrameCurGray } { 1 } ifelse } { FrameSepIs FMblack eq {FrameCurGray 1.0 exch sub mul 1.0 exch sub 4 1 roll pop pop pop} { FrameSepIs FMyellow eq {pop FrameCurGray 1.0 exch sub mul 1.0 exch sub 3 1 roll pop pop} { FrameSepIs FMmagenta eq {pop pop FrameCurGray 1.0 exch sub mul 1.0 exch sub exch pop } { FrameSepIs FMcyan eq {pop pop pop FrameCurGray 1.0 exch sub mul 1.0 exch sub } {pop pop pop pop 1} ifelse } ifelse } ifelse } ifelse } ifelse graymode FMLevel1 or not { [/Pattern [/DeviceGray]] setcolorspace FrameCurPat setcolor } { graymode not FMLevel1 and { dup 1 lt {pop FrameCurGray} if } if RealSetgray } ifelse } ifelse } bind def /savematrix { orgmatrix currentmatrix pop } bind def /restorematrix { orgmatrix setmatrix } bind def /dmatrix matrix def /dpi 72 0 dmatrix defaultmatrix dtransform dup mul exch dup mul add sqrt def /freq dpi dup 72 div round dup 0 eq {pop 1} if 8 mul div def /sangle 1 0 dmatrix defaultmatrix dtransform exch atan def /dpiranges [ 2540 2400 1693 1270 1200 635 600 0 ] def /CMLowFreqs [ 100.402 94.8683 89.2289 100.402 94.8683 66.9349 63.2456 47.4342 ] def /YLowFreqs [ 95.25 90.0 84.65 95.25 90.0 70.5556 66.6667 50.0 ] def /KLowFreqs [ 89.8026 84.8528 79.8088 89.8026 84.8528 74.8355 70.7107 53.033 ] def /CLowAngles [ 71.5651 71.5651 71.5651 71.5651 71.5651 71.5651 71.5651 71.5651 ] def /MLowAngles [ 18.4349 18.4349 18.4349 18.4349 18.4349 18.4349 18.4349 18.4349 ] def /YLowTDot [ true true false true true false false false ] def /CMHighFreqs [ 133.87 126.491 133.843 108.503 102.523 100.402 94.8683 63.2456 ] def /YHighFreqs [ 127.0 120.0 126.975 115.455 109.091 95.25 90.0 60.0 ] def /KHighFreqs [ 119.737 113.137 119.713 128.289 121.218 89.8026 84.8528 63.6395 ] def /CHighAngles [ 71.5651 71.5651 71.5651 70.0169 70.0169 71.5651 71.5651 71.5651 ] def /MHighAngles [ 18.4349 18.4349 18.4349 19.9831 19.9831 18.4349 18.4349 18.4349 ] def /YHighTDot [ false false true false false true true false ] def /PatFreq [ 10.5833 10.0 9.4055 10.5833 10.0 10.5833 10.0 9.375 ] def /screenIndex { 0 1 dpiranges length 1 sub { dup dpiranges exch get 1 sub dpi le {exit} {pop} ifelse } for } bind def /getCyanScreen { FMUseHighFrequencyScreens { CHighAngles CMHighFreqs} {CLowAngles CMLowFreqs} ifelse screenIndex dup 3 1 roll get 3 1 roll get /FMSpotFunction load } bind def /getMagentaScreen { FMUseHighFrequencyScreens { MHighAngles CMHighFreqs } {MLowAngles CMLowFreqs} ifelse screenIndex dup 3 1 roll get 3 1 roll get /FMSpotFunction load } bind def /getYellowScreen { FMUseHighFrequencyScreens { YHighTDot YHighFreqs} { YLowTDot YLowFreqs } ifelse screenIndex dup 3 1 roll get 3 1 roll get { 3 div {2 { 1 add 2 div 3 mul dup floor sub 2 mul 1 sub exch} repeat FMSpotFunction } } {/FMSpotFunction load } ifelse 0.0 exch } bind def /getBlackScreen { FMUseHighFrequencyScreens { KHighFreqs } { KLowFreqs } ifelse screenIndex get 45.0 /FMSpotFunction load } bind def /getSpotScreen { getBlackScreen } bind def /getCompositeScreen { getBlackScreen } bind def /FMSetScreen FMLevel1 { /setscreen load }{ { 8 dict begin /HalftoneType 1 def /SpotFunction exch def /Angle exch def /Frequency exch def /AccurateScreens FMUseAcccurateScreens def currentdict end sethalftone } bind } ifelse def /setDefaultScreen { FMPColor { orgrxfer cvx orggxfer cvx orgbxfer cvx orgxfer cvx setcolortransfer } { orgxfer cvx settransfer } ifelse orgfreq organgle orgproc cvx setscreen } bind def /setCurrentScreen { FrameSepIs FMnone eq { FMUseDefaultNoSeparationScreen { setDefaultScreen } { getCompositeScreen FMSetScreen } ifelse } { FrameSepIs FMcustom eq { FMUseDefaultSpotSeparationScreen { setDefaultScreen } { getSpotScreen FMSetScreen } ifelse } { FMUseDefaultProcessSeparationScreen { setDefaultScreen } { FrameSepIs FMcyan eq { getCyanScreen FMSetScreen } { FrameSepIs FMmagenta eq { getMagentaScreen FMSetScreen } { FrameSepIs FMyellow eq { getYellowScreen FMSetScreen } { getBlackScreen FMSetScreen } ifelse } ifelse } ifelse } ifelse } ifelse } ifelse } bind def end /gstring FMLOCAL /gfile FMLOCAL /gindex FMLOCAL /orgrxfer FMLOCAL /orggxfer FMLOCAL /orgbxfer FMLOCAL /orgxfer FMLOCAL /orgproc FMLOCAL /orgrproc FMLOCAL /orggproc FMLOCAL /orgbproc FMLOCAL /organgle FMLOCAL /orgrangle FMLOCAL /orggangle FMLOCAL /orgbangle FMLOCAL /orgfreq FMLOCAL /orgrfreq FMLOCAL /orggfreq FMLOCAL /orgbfreq FMLOCAL /yscale FMLOCAL /xscale FMLOCAL /edown FMLOCAL /manualfeed FMLOCAL /paperheight FMLOCAL /paperwidth FMLOCAL /FMDOCUMENT { array /FMfonts exch def /#copies exch def FrameDict begin 0 ne /manualfeed exch def /paperheight exch def /paperwidth exch def 0 ne /FrameNegative exch def 0 ne /edown exch def /yscale exch def /xscale exch def FMLevel1 { manualfeed {setmanualfeed} if /FMdicttop countdictstack 1 add def /FMoptop count def setpapername manualfeed {true} {papersize} ifelse {manualpapersize} {false} ifelse {desperatepapersize} {false} ifelse { (Can't select requested paper size for Frame print job!) FMFAILURE } if count -1 FMoptop {pop pop} for countdictstack -1 FMdicttop {pop end} for } {{}stopped { (Can't select requested paper size for Frame print job!) FMFAILURE } if { } stopped pop } ifelse FMPColor { currentcolorscreen cvlit /orgproc exch def /organgle exch def /orgfreq exch def cvlit /orgbproc exch def /orgbangle exch def /orgbfreq exch def cvlit /orggproc exch def /orggangle exch def /orggfreq exch def cvlit /orgrproc exch def /orgrangle exch def /orgrfreq exch def currentcolortransfer FrameNegative { 1 1 4 { pop { 1 exch sub } concatprocs 4 1 roll } for 4 copy setcolortransfer } if cvlit /orgxfer exch def cvlit /orgbxfer exch def cvlit /orggxfer exch def cvlit /orgrxfer exch def } { currentscreen cvlit /orgproc exch def /organgle exch def /orgfreq exch def currenttransfer FrameNegative { { 1 exch sub } concatprocs dup settransfer } if cvlit /orgxfer exch def } ifelse end } def /pagesave FMLOCAL /orgmatrix FMLOCAL /landscape FMLOCAL /pwid FMLOCAL /FMBEGINPAGE { FrameDict begin /pagesave save def 3.86 setmiterlimit /landscape exch 0 ne def landscape { 90 rotate 0 exch dup /pwid exch def neg translate pop }{ pop /pwid exch def } ifelse edown { [-1 0 0 1 pwid 0] concat } if xscale yscale scale /orgmatrix matrix def gsave } def /FMENDPAGE { grestore pagesave restore end showpage } def /FMFONTDEFINE { FrameDict begin findfont ReEncode 1 index exch definefont FMfonts 3 1 roll put end } def /FMFILLS { FrameDict begin dup array /fillvals exch def dict /patCache exch def end } def /FMFILL { FrameDict begin fillvals 3 1 roll put end } def /FMNORMALIZEGRAPHICS { newpath 0.0 0.0 moveto 1 setlinewidth 0 setlinecap 0 0 0 sethsbcolor 0 setgray } bind def /fx FMLOCAL /fy FMLOCAL /fh FMLOCAL /fw FMLOCAL /llx FMLOCAL /lly FMLOCAL /urx FMLOCAL /ury FMLOCAL /FMBEGINEPSF { end /FMEPSF save def /showpage {} def % See Adobe's "PostScript Language Reference Manual, 2nd Edition", page 714. % "...the following operators MUST NOT be used in an EPS file:" (emphasis ours) /banddevice {(banddevice) FMBADEPSF} def /clear {(clear) FMBADEPSF} def /cleardictstack {(cleardictstack) FMBADEPSF} def /copypage {(copypage) FMBADEPSF} def /erasepage {(erasepage) FMBADEPSF} def /exitserver {(exitserver) FMBADEPSF} def /framedevice {(framedevice) FMBADEPSF} def /grestoreall {(grestoreall) FMBADEPSF} def /initclip {(initclip) FMBADEPSF} def /initgraphics {(initgraphics) FMBADEPSF} def /initmatrix {(initmatrix) FMBADEPSF} def /quit {(quit) FMBADEPSF} def /renderbands {(renderbands) FMBADEPSF} def /setglobal {(setglobal) FMBADEPSF} def /setpagedevice {(setpagedevice) FMBADEPSF} def /setshared {(setshared) FMBADEPSF} def /startjob {(startjob) FMBADEPSF} def /lettertray {(lettertray) FMBADEPSF} def /letter {(letter) FMBADEPSF} def /lettersmall {(lettersmall) FMBADEPSF} def /11x17tray {(11x17tray) FMBADEPSF} def /11x17 {(11x17) FMBADEPSF} def /ledgertray {(ledgertray) FMBADEPSF} def /ledger {(ledger) FMBADEPSF} def /legaltray {(legaltray) FMBADEPSF} def /legal {(legal) FMBADEPSF} def /statementtray {(statementtray) FMBADEPSF} def /statement {(statement) FMBADEPSF} def /executivetray {(executivetray) FMBADEPSF} def /executive {(executive) FMBADEPSF} def /a3tray {(a3tray) FMBADEPSF} def /a3 {(a3) FMBADEPSF} def /a4tray {(a4tray) FMBADEPSF} def /a4 {(a4) FMBADEPSF} def /a4small {(a4small) FMBADEPSF} def /b4tray {(b4tray) FMBADEPSF} def /b4 {(b4) FMBADEPSF} def /b5tray {(b5tray) FMBADEPSF} def /b5 {(b5) FMBADEPSF} def FMNORMALIZEGRAPHICS [/fy /fx /fh /fw /ury /urx /lly /llx] {exch def} forall fx fw 2 div add fy fh 2 div add translate rotate fw 2 div neg fh 2 div neg translate fw urx llx sub div fh ury lly sub div scale llx neg lly neg translate /FMdicttop countdictstack 1 add def /FMoptop count def } bind def /FMENDEPSF { count -1 FMoptop {pop pop} for countdictstack -1 FMdicttop {pop end} for FMEPSF restore FrameDict begin } bind def FrameDict begin /setmanualfeed { statusdict /manualfeed true put } bind def /max {2 copy lt {exch} if pop} bind def /min {2 copy gt {exch} if pop} bind def /inch {72 mul} def /pagedimen { paperheight sub abs 16 lt exch paperwidth sub abs 16 lt and {/papername exch def} {pop} ifelse } bind def /papersizedict FMLOCAL /setpapername { /papersizedict 14 dict def papersizedict begin /papername /unknown def /Letter 8.5 inch 11.0 inch pagedimen /LetterSmall 7.68 inch 10.16 inch pagedimen /Tabloid 11.0 inch 17.0 inch pagedimen /Ledger 17.0 inch 11.0 inch pagedimen /Legal 8.5 inch 14.0 inch pagedimen /Statement 5.5 inch 8.5 inch pagedimen /Executive 7.5 inch 10.0 inch pagedimen /A3 11.69 inch 16.5 inch pagedimen /A4 8.26 inch 11.69 inch pagedimen /A4Small 7.47 inch 10.85 inch pagedimen /B4 10.125 inch 14.33 inch pagedimen /B5 7.16 inch 10.125 inch pagedimen end } bind def /papersize { papersizedict begin /Letter {lettertray letter} def /LetterSmall {lettertray lettersmall} def /Tabloid {11x17tray 11x17} def /Ledger {ledgertray ledger} def /Legal {legaltray legal} def /Statement {statementtray statement} def /Executive {executivetray executive} def /A3 {a3tray a3} def /A4 {a4tray a4} def /A4Small {a4tray a4small} def /B4 {b4tray b4} def /B5 {b5tray b5} def /unknown {unknown} def papersizedict dup papername known {papername} {/unknown} ifelse get end statusdict begin stopped end } bind def /manualpapersize { papersizedict begin /Letter {letter} def /LetterSmall {lettersmall} def /Tabloid {11x17} def /Ledger {ledger} def /Legal {legal} def /Statement {statement} def /Executive {executive} def /A3 {a3} def /A4 {a4} def /A4Small {a4small} def /B4 {b4} def /B5 {b5} def /unknown {unknown} def papersizedict dup papername known {papername} {/unknown} ifelse get end stopped } bind def /desperatepapersize { statusdict /setpageparams known { paperwidth paperheight 0 1 statusdict begin {setpageparams} stopped end } {true} ifelse } bind def /DiacriticEncoding [ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quotesingle /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /grave /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef /Adieresis /Aring /Ccedilla /Eacute /Ntilde /Odieresis /Udieresis /aacute /agrave /acircumflex /adieresis /atilde /aring /ccedilla /eacute /egrave /ecircumflex /edieresis /iacute /igrave /icircumflex /idieresis /ntilde /oacute /ograve /ocircumflex /odieresis /otilde /uacute /ugrave /ucircumflex /udieresis /dagger /.notdef /cent /sterling /section /bullet /paragraph /germandbls /registered /copyright /trademark /acute /dieresis /.notdef /AE /Oslash /.notdef /.notdef /.notdef /.notdef /yen /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /ordfeminine /ordmasculine /.notdef /ae /oslash /questiondown /exclamdown /logicalnot /.notdef /florin /.notdef /.notdef /guillemotleft /guillemotright /ellipsis /.notdef /Agrave /Atilde /Otilde /OE /oe /endash /emdash /quotedblleft /quotedblright /quoteleft /quoteright /.notdef /.notdef /ydieresis /Ydieresis /fraction /currency /guilsinglleft /guilsinglright /fi /fl /daggerdbl /periodcentered /quotesinglbase /quotedblbase /perthousand /Acircumflex /Ecircumflex /Aacute /Edieresis /Egrave /Iacute /Icircumflex /Idieresis /Igrave /Oacute /Ocircumflex /.notdef /Ograve /Uacute /Ucircumflex /Ugrave /dotlessi /circumflex /tilde /macron /breve /dotaccent /ring /cedilla /hungarumlaut /ogonek /caron ] def /ReEncode { dup length dict begin { 1 index /FID ne {def} {pop pop} ifelse } forall 0 eq {/Encoding DiacriticEncoding def} if currentdict end } bind def FMPColor { /BEGINBITMAPCOLOR { BITMAPCOLOR} def /BEGINBITMAPCOLORc { BITMAPCOLORc} def /BEGINBITMAPTRUECOLOR { BITMAPTRUECOLOR } def /BEGINBITMAPTRUECOLORc { BITMAPTRUECOLORc } def } { /BEGINBITMAPCOLOR { BITMAPGRAY} def /BEGINBITMAPCOLORc { BITMAPGRAYc} def /BEGINBITMAPTRUECOLOR { BITMAPTRUEGRAY } def /BEGINBITMAPTRUECOLORc { BITMAPTRUEGRAYc } def } ifelse /K { FMPrintAllColorsAsBlack { dup 1 eq 2 index 1 eq and 3 index 1 eq and not {7 {pop} repeat 0 0 0 1 0 0 0} if } if FrameCurColors astore pop combineColor } bind def /graymode true def /bwidth FMLOCAL /bpside FMLOCAL /bstring FMLOCAL /onbits FMLOCAL /offbits FMLOCAL /xindex FMLOCAL /yindex FMLOCAL /x FMLOCAL /y FMLOCAL /setPatternMode { FMLevel1 { /bwidth exch def /bpside exch def /bstring exch def /onbits 0 def /offbits 0 def freq sangle landscape {90 add} if {/y exch def /x exch def /xindex x 1 add 2 div bpside mul cvi def /yindex y 1 add 2 div bpside mul cvi def bstring yindex bwidth mul xindex 8 idiv add get 1 7 xindex 8 mod sub bitshift and 0 ne FrameNegative {not} if {/onbits onbits 1 add def 1} {/offbits offbits 1 add def 0} ifelse } setscreen offbits offbits onbits add div FrameNegative {1.0 exch sub} if /FrameCurGray exch def } { pop pop dup patCache exch known { patCache exch get } { dup patDict /bstring 3 -1 roll put patDict 9 PatFreq screenIndex get div dup matrix scale makepattern dup patCache 4 -1 roll 3 -1 roll put } ifelse /FrameCurGray 0 def /FrameCurPat exch def } ifelse /graymode false def combineColor } bind def /setGrayScaleMode { graymode not { /graymode true def FMLevel1 { setCurrentScreen } if } if /FrameCurGray exch def combineColor } bind def /normalize { transform round exch round exch itransform } bind def /dnormalize { dtransform round exch round exch idtransform } bind def /lnormalize { 0 dtransform exch cvi 2 idiv 2 mul 1 add exch idtransform pop } bind def /H { lnormalize setlinewidth } bind def /Z { setlinecap } bind def /PFill { graymode FMLevel1 or not { gsave 1 setgray eofill grestore } if } bind def /PStroke { graymode FMLevel1 or not { gsave 1 setgray stroke grestore } if stroke } bind def /fillvals FMLOCAL /X { fillvals exch get dup type /stringtype eq {8 1 setPatternMode} {setGrayScaleMode} ifelse } bind def /V { PFill gsave eofill grestore } bind def /Vclip { clip } bind def /Vstrk { currentlinewidth exch setlinewidth PStroke setlinewidth } bind def /N { PStroke } bind def /Nclip { strokepath clip newpath } bind def /Nstrk { currentlinewidth exch setlinewidth PStroke setlinewidth } bind def /M {newpath moveto} bind def /E {lineto} bind def /D {curveto} bind def /O {closepath} bind def /n FMLOCAL /L { /n exch def newpath normalize moveto 2 1 n {pop normalize lineto} for } bind def /Y { L closepath } bind def /x1 FMLOCAL /x2 FMLOCAL /y1 FMLOCAL /y2 FMLOCAL /R { /y2 exch def /x2 exch def /y1 exch def /x1 exch def x1 y1 x2 y1 x2 y2 x1 y2 4 Y } bind def /rad FMLOCAL /rarc {rad arcto } bind def /RR { /rad exch def normalize /y2 exch def /x2 exch def normalize /y1 exch def /x1 exch def mark newpath { x1 y1 rad add moveto x1 y2 x2 y2 rarc x2 y2 x2 y1 rarc x2 y1 x1 y1 rarc x1 y1 x1 y2 rarc closepath } stopped {x1 y1 x2 y2 R} if cleartomark } bind def /RRR { /rad exch def normalize /y4 exch def /x4 exch def normalize /y3 exch def /x3 exch def normalize /y2 exch def /x2 exch def normalize /y1 exch def /x1 exch def newpath normalize moveto mark { x2 y2 x3 y3 rarc x3 y3 x4 y4 rarc x4 y4 x1 y1 rarc x1 y1 x2 y2 rarc closepath } stopped {x1 y1 x2 y2 x3 y3 x4 y4 newpath moveto lineto lineto lineto closepath} if cleartomark } bind def /C { grestore gsave R clip setCurrentScreen } bind def /CP { grestore gsave Y clip setCurrentScreen } bind def /FMpointsize FMLOCAL /F { FMfonts exch get FMpointsize scalefont setfont } bind def /Q { /FMpointsize exch def F } bind def /T { moveto show } bind def /RF { rotate 0 ne {-1 1 scale} if } bind def /TF { gsave moveto RF show grestore } bind def /P { moveto 0 32 3 2 roll widthshow } bind def /PF { gsave moveto RF 0 32 3 2 roll widthshow grestore } bind def /S { moveto 0 exch ashow } bind def /SF { gsave moveto RF 0 exch ashow grestore } bind def /B { moveto 0 32 4 2 roll 0 exch awidthshow } bind def /BF { gsave moveto RF 0 32 4 2 roll 0 exch awidthshow grestore } bind def /G { gsave newpath normalize translate 0.0 0.0 moveto dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath PFill fill grestore } bind def /Gstrk { savematrix newpath 2 index 2 div add exch 3 index 2 div sub exch normalize 2 index 2 div sub exch 3 index 2 div add exch translate scale 0.0 0.0 1.0 5 3 roll arc restorematrix currentlinewidth exch setlinewidth PStroke setlinewidth } bind def /Gclip { newpath savematrix normalize translate 0.0 0.0 moveto dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath clip newpath restorematrix } bind def /GG { gsave newpath normalize translate 0.0 0.0 moveto rotate dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath PFill fill grestore } bind def /GGclip { savematrix newpath normalize translate 0.0 0.0 moveto rotate dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath clip newpath restorematrix } bind def /GGstrk { savematrix newpath normalize translate 0.0 0.0 moveto rotate dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath restorematrix currentlinewidth exch setlinewidth PStroke setlinewidth } bind def /A { gsave savematrix newpath 2 index 2 div add exch 3 index 2 div sub exch normalize 2 index 2 div sub exch 3 index 2 div add exch translate scale 0.0 0.0 1.0 5 3 roll arc restorematrix PStroke grestore } bind def /Aclip { newpath savematrix normalize translate 0.0 0.0 moveto dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath strokepath clip newpath restorematrix } bind def /Astrk { Gstrk } bind def /AA { gsave savematrix newpath 3 index 2 div add exch 4 index 2 div sub exch normalize 3 index 2 div sub exch 4 index 2 div add exch translate rotate scale 0.0 0.0 1.0 5 3 roll arc restorematrix PStroke grestore } bind def /AAclip { savematrix newpath normalize translate 0.0 0.0 moveto rotate dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath strokepath clip newpath restorematrix } bind def /AAstrk { GGstrk } bind def /x FMLOCAL /y FMLOCAL /w FMLOCAL /h FMLOCAL /xx FMLOCAL /yy FMLOCAL /ww FMLOCAL /hh FMLOCAL /FMsaveobject FMLOCAL /FMoptop FMLOCAL /FMdicttop FMLOCAL /BEGINPRINTCODE { /FMdicttop countdictstack 1 add def /FMoptop count 7 sub def /FMsaveobject save def userdict begin /showpage {} def FMNORMALIZEGRAPHICS 3 index neg 3 index neg translate } bind def /ENDPRINTCODE { count -1 FMoptop {pop pop} for countdictstack -1 FMdicttop {pop end} for FMsaveobject restore } bind def /gn { 0 { 46 mul cf read pop 32 sub dup 46 lt {exit} if 46 sub add } loop add } bind def /str FMLOCAL /cfs { /str sl string def 0 1 sl 1 sub {str exch val put} for str def } bind def /ic [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0223 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0223 0 {0 hx} {1 hx} {2 hx} {3 hx} {4 hx} {5 hx} {6 hx} {7 hx} {8 hx} {9 hx} {10 hx} {11 hx} {12 hx} {13 hx} {14 hx} {15 hx} {16 hx} {17 hx} {18 hx} {19 hx} {gn hx} {0} {1} {2} {3} {4} {5} {6} {7} {8} {9} {10} {11} {12} {13} {14} {15} {16} {17} {18} {19} {gn} {0 wh} {1 wh} {2 wh} {3 wh} {4 wh} {5 wh} {6 wh} {7 wh} {8 wh} {9 wh} {10 wh} {11 wh} {12 wh} {13 wh} {14 wh} {gn wh} {0 bl} {1 bl} {2 bl} {3 bl} {4 bl} {5 bl} {6 bl} {7 bl} {8 bl} {9 bl} {10 bl} {11 bl} {12 bl} {13 bl} {14 bl} {gn bl} {0 fl} {1 fl} {2 fl} {3 fl} {4 fl} {5 fl} {6 fl} {7 fl} {8 fl} {9 fl} {10 fl} {11 fl} {12 fl} {13 fl} {14 fl} {gn fl} ] def /sl FMLOCAL /val FMLOCAL /ws FMLOCAL /im FMLOCAL /bs FMLOCAL /cs FMLOCAL /len FMLOCAL /pos FMLOCAL /ms { /sl exch def /val 255 def /ws cfs /im cfs /val 0 def /bs cfs /cs cfs } bind def 400 ms /ip { is 0 cf cs readline pop { ic exch get exec add } forall pop } bind def /rip { bis ris copy pop is 0 cf cs readline pop { ic exch get exec add } forall pop pop ris gis copy pop dup is exch cf cs readline pop { ic exch get exec add } forall pop pop gis bis copy pop dup add is exch cf cs readline pop { ic exch get exec add } forall pop } bind def /wh { /len exch def /pos exch def ws 0 len getinterval im pos len getinterval copy pop pos len } bind def /bl { /len exch def /pos exch def bs 0 len getinterval im pos len getinterval copy pop pos len } bind def /s1 1 string def /fl { /len exch def /pos exch def /val cf s1 readhexstring pop 0 get def pos 1 pos len add 1 sub {im exch val put} for pos len } bind def /hx { 3 copy getinterval cf exch readhexstring pop pop } bind def /h FMLOCAL /w FMLOCAL /d FMLOCAL /lb FMLOCAL /bitmapsave FMLOCAL /is FMLOCAL /cf FMLOCAL /wbytes { dup dup 24 eq { pop pop 3 mul } { 8 eq {pop} {1 eq {7 add 8 idiv} {3 add 4 idiv} ifelse} ifelse } ifelse } bind def /BEGINBITMAPBWc { 1 {} COMMONBITMAPc } bind def /BEGINBITMAPGRAYc { 8 {} COMMONBITMAPc } bind def /BEGINBITMAP2BITc { 2 {} COMMONBITMAPc } bind def /COMMONBITMAPc { /r exch def /d exch def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /h exch def /w exch def /lb w d wbytes def sl lb lt {lb ms} if /bitmapsave save def r /is im 0 lb getinterval def ws 0 lb getinterval is copy pop /cf currentfile def w h d [w 0 0 h neg 0 h] {ip} image bitmapsave restore grestore } bind def /BEGINBITMAPBW { 1 {} COMMONBITMAP } bind def /BEGINBITMAPGRAY { 8 {} COMMONBITMAP } bind def /BEGINBITMAP2BIT { 2 {} COMMONBITMAP } bind def /COMMONBITMAP { /r exch def /d exch def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /h exch def /w exch def /bitmapsave save def r /is w d wbytes string def /cf currentfile def w h d [w 0 0 h neg 0 h] {cf is readhexstring pop} image bitmapsave restore grestore } bind def /ngrayt 256 array def /nredt 256 array def /nbluet 256 array def /ngreent 256 array def /gryt FMLOCAL /blut FMLOCAL /grnt FMLOCAL /redt FMLOCAL /indx FMLOCAL /cynu FMLOCAL /magu FMLOCAL /yelu FMLOCAL /k FMLOCAL /u FMLOCAL FMLevel1 { /colorsetup { currentcolortransfer /gryt exch def /blut exch def /grnt exch def /redt exch def 0 1 255 { /indx exch def /cynu 1 red indx get 255 div sub def /magu 1 green indx get 255 div sub def /yelu 1 blue indx get 255 div sub def /k cynu magu min yelu min def /u k currentundercolorremoval exec def % /u 0 def nredt indx 1 0 cynu u sub max sub redt exec put ngreent indx 1 0 magu u sub max sub grnt exec put nbluet indx 1 0 yelu u sub max sub blut exec put ngrayt indx 1 k currentblackgeneration exec sub gryt exec put } for {255 mul cvi nredt exch get} {255 mul cvi ngreent exch get} {255 mul cvi nbluet exch get} {255 mul cvi ngrayt exch get} setcolortransfer {pop 0} setundercolorremoval {} setblackgeneration } bind def } { /colorSetup2 { [ /Indexed /DeviceRGB 255 {dup red exch get 255 div exch dup green exch get 255 div exch blue exch get 255 div} ] setcolorspace } bind def } ifelse /tran FMLOCAL /fakecolorsetup { /tran 256 string def 0 1 255 {/indx exch def tran indx red indx get 77 mul green indx get 151 mul blue indx get 28 mul add add 256 idiv put} for currenttransfer {255 mul cvi tran exch get 255.0 div} exch concatprocs settransfer } bind def /BITMAPCOLOR { /d 8 def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /h exch def /w exch def /bitmapsave save def FMLevel1 { colorsetup /is w d wbytes string def /cf currentfile def w h d [w 0 0 h neg 0 h] {cf is readhexstring pop} {is} {is} true 3 colorimage } { colorSetup2 /is w d wbytes string def /cf currentfile def 7 dict dup begin /ImageType 1 def /Width w def /Height h def /ImageMatrix [w 0 0 h neg 0 h] def /DataSource {cf is readhexstring pop} bind def /BitsPerComponent d def /Decode [0 255] def end image } ifelse bitmapsave restore grestore } bind def /BITMAPCOLORc { /d 8 def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /h exch def /w exch def /lb w d wbytes def sl lb lt {lb ms} if /bitmapsave save def FMLevel1 { colorsetup /is im 0 lb getinterval def ws 0 lb getinterval is copy pop /cf currentfile def w h d [w 0 0 h neg 0 h] {ip} {is} {is} true 3 colorimage } { colorSetup2 /is im 0 lb getinterval def ws 0 lb getinterval is copy pop /cf currentfile def 7 dict dup begin /ImageType 1 def /Width w def /Height h def /ImageMatrix [w 0 0 h neg 0 h] def /DataSource {ip} bind def /BitsPerComponent d def /Decode [0 255] def end image } ifelse bitmapsave restore grestore } bind def /BITMAPTRUECOLORc { /d 24 def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /h exch def /w exch def /lb w d wbytes def sl lb lt {lb ms} if /bitmapsave save def /is im 0 lb getinterval def /ris im 0 w getinterval def /gis im w w getinterval def /bis im w 2 mul w getinterval def ws 0 lb getinterval is copy pop /cf currentfile def w h 8 [w 0 0 h neg 0 h] {w rip pop ris} {gis} {bis} true 3 colorimage bitmapsave restore grestore } bind def /BITMAPTRUECOLOR { gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /h exch def /w exch def /bitmapsave save def /is w string def /gis w string def /bis w string def /cf currentfile def w h 8 [w 0 0 h neg 0 h] { cf is readhexstring pop } { cf gis readhexstring pop } { cf bis readhexstring pop } true 3 colorimage bitmapsave restore grestore } bind def /BITMAPTRUEGRAYc { /d 24 def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /h exch def /w exch def /lb w d wbytes def sl lb lt {lb ms} if /bitmapsave save def /is im 0 lb getinterval def /ris im 0 w getinterval def /gis im w w getinterval def /bis im w 2 mul w getinterval def ws 0 lb getinterval is copy pop /cf currentfile def w h 8 [w 0 0 h neg 0 h] {w rip pop ris gis bis w gray} image bitmapsave restore grestore } bind def /ww FMLOCAL /r FMLOCAL /g FMLOCAL /b FMLOCAL /i FMLOCAL /gray { /ww exch def /b exch def /g exch def /r exch def 0 1 ww 1 sub { /i exch def r i get .299 mul g i get .587 mul b i get .114 mul add add r i 3 -1 roll floor cvi put } for r } bind def /BITMAPTRUEGRAY { gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /h exch def /w exch def /bitmapsave save def /is w string def /gis w string def /bis w string def /cf currentfile def w h 8 [w 0 0 h neg 0 h] { cf is readhexstring pop cf gis readhexstring pop cf bis readhexstring pop w gray} image bitmapsave restore grestore } bind def /BITMAPGRAY { 8 {fakecolorsetup} COMMONBITMAP } bind def /BITMAPGRAYc { 8 {fakecolorsetup} COMMONBITMAPc } bind def /ENDBITMAP { } bind def end /ALDsave FMLOCAL /ALDmatrix matrix def ALDmatrix currentmatrix pop /StartALD { /ALDsave save def savematrix ALDmatrix setmatrix } bind def /InALD { restorematrix } bind def /DoneALD { ALDsave restore } bind def /I { setdash } bind def /J { [] 0 setdash } bind def (4.0) FMVERSION 1 1 0 0 612 792 0 1 2 FMDOCUMENT 0 0 /Times-Roman FMFONTDEFINE 1 0 /Times-BoldItalic FMFONTDEFINE 32 FMFILLS 0 0 FMFILL 1 0.1 FMFILL 2 0.3 FMFILL 3 0.5 FMFILL 4 0.7 FMFILL 5 0.9 FMFILL 6 0.97 FMFILL 7 1 FMFILL 8 <0f1e3c78f0e1c387> FMFILL 9 <0f87c3e1f0783c1e> FMFILL 10 FMFILL 11 FMFILL 12 <8142241818244281> FMFILL 13 <03060c183060c081> FMFILL 14 <8040201008040201> FMFILL 16 1 FMFILL 17 0.9 FMFILL 18 0.7 FMFILL 19 0.5 FMFILL 20 0.3 FMFILL 21 0.1 FMFILL 22 0.03 FMFILL 23 0 FMFILL 24 FMFILL 25 FMFILL 26 <3333333333333333> FMFILL 27 <0000ffff0000ffff> FMFILL 28 <7ebddbe7e7dbbd7e> FMFILL 29 FMFILL 30 <7fbfdfeff7fbfdfe> FMFILL 612 792 1 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K J 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 45 216 693 684 R 45 216 693 684 R 567 351.75 612 387.75 R 3 H 2 Z 0 X 0 0 0 1 0 0 0 K N 0 12 Q (C) 585 369.75 T 7 X 270 360 13.5 18.75 234 351.75 G 245.62 336.17 234 333 242.18 341.85 243.9 339.01 4 Y 3 X V 0.5 H 317.19 360 13.5 18.75 234 351.75 A 162 387 72 387 2 L 1 H 0 X N 162 522 162 288 2 L N 216 369 162 369 2 L N 216 351 261 387 R 3 H N (A) 234 369 T 261 369 378 369 2 L 1 H N 378 351.75 423 387.75 R 3 H N (B) 396 369.75 T 423 369.75 567 369.75 2 L 1 H N 405 549.75 450 585.75 R 3 H N 405 387.75 423 549.75 2 L 1 H N 261 396.75 404.17 464.25 18 RR 0.5 H N 432.75 279 576 341.25 18 RR N 52.38 432 144 468 18 RR 7 X V 0 X N (2. IGMP Host) 65.36 459 T (Membership-) 63 447 T 7 X 90 180 9 35.25 54 414 G 44.8 440.98 54 449.26 50.59 437.36 47.69 439.17 4 Y 3 X V 134.46 180 9 35.25 54 414 A 180 279 252 333.75 13.12 RR 7 X V 0 X N (1. IGMP) 188.44 324.92 T (Host-) 188.44 313.26 T (4. Send Join/Prune) 271.45 453 T (Multicast-Address = G) 269.95 429.75 T (Join = {C, WCbit, RPT) 269.95 417.75 T (-bit}) 381.39 417.75 T (Prune = NULL) 269.95 405.75 T 173.54 320.69 162 324 173.54 327.31 173.54 324 4 Y 3 X V 180 324 173.54 324 2 L N 207.83 477 360 570.75 18 RR 0 X N 239.8 465.44 243 477 246.41 465.5 243.1 465.47 4 Y 1 X V 243.83 387.75 243.11 465.46 2 L 3 X V 1 X N 0 X (3. Create \050*,G\051 entry:) 224.83 561.75 T (Multicast address = G) 224.83 549.75 T (RP-address = C) 224.83 537.75 T (outgoing interface list = {1}) 224.83 525.75 T (incoming interface = {2}) 224.83 513.75 T (WC-bit = 1) 224.83 501.75 T (RPT) 224.83 489.75 T (-bit = 1) 245.73 489.75 T 590.69 475.21 594 486.75 597.31 475.21 594 475.21 4 Y 1 X V 594 387.75 594 475.21 2 L N 495 486.75 657 576.75 18 RR 0 X N 420.54 328.98 431.99 324.01 419.65 322.16 420.1 325.57 4 Y 3 X V 180 250.71 36 27.75 432 351.75 A 248.89 404.78 260.99 405.76 251.25 398.51 250.07 401.65 4 Y V 129.52 180 17.17 18 261 387.75 A 0 X (6. Send Join/Prune) 441.75 328.42 T (Multicast-Address = G) 441.75 306.89 T (Join = {C, WCbit, RPT) 441.75 296.6 T (-bit}) 553.19 296.6 T (Prune = NULL) 441.75 286.32 T 399.31 327.29 396 315.75 392.69 327.29 396 327.29 4 Y 1 X V 396 351.75 396 327.29 2 L N 270 225 423 315.75 18 RR 0 X N (5. Create \050*,G\051 entry:) 288.2 306.75 T (Multicast address = G) 288.2 294.75 T (RP-address = C) 288.2 282.75 T (outgoing interface list = {1}) 288.2 270.75 T (incoming interface = {3}) 288.2 258.75 T (WC-bit = 1) 288.2 246.75 T (RPT) 288.2 234.75 T (-bit = 1) 309.1 234.75 T (7. Create \050*,G\051 entry:) 513 567.75 T (Multicast address = G) 513 555.75 T (RP-address = C) 513 543.75 T (outgoing interface list = {1}) 513 531.75 T (incoming interface = NULL) 513 519.75 T (WC-bit = 1) 513 507.75 T (RPT) 513 495.75 T (-bit = 1) 533.9 495.75 T (1) 228 389.6 T (2) 270 371.6 T (1) 369 378.75 T (2) 414 396.75 T (3) 432 378.75 T (1) 558 372.35 T 1 F (PIM DR/IGMP Querier) 252 338.43 T (for LAN) 252 326.43 T (LAN) 135 351.82 T (Rendezvous Point) 585 339.18 T (\050RP\051 for group G) 585 327.18 T 7 X 90 450 22.5 22.5 49.5 391.5 G 3 H 0 X 90 450 22.5 22.5 49.5 391.5 A 0 F (Host) 36 387 T 150.46 453.31 162 450 150.46 446.69 150.46 450 4 Y 3 X V 144 450 150.46 450 2 L 0.5 H N 0 X (D) 423 567.75 T 1 F (Receiver) 36 353.43 T 0 F (message to B:) 271.45 441 T (message to C:) 441.75 316.42 T (Report for G) 64.62 434.6 T (Membership) 188.44 301.26 T (Query) 188.44 289.26 T FMENDPAGE %%EndDocument @endspecial 657 1884 a(Figure)30 b(1:)41 b(Example:)f(ho)m(w)30 b(a)h(receiv)m(er)g(joins,)e(and)h(sets)h(up)e(shared)h(tree)1226 1997 y(Actions)g(are)h(n)m(um)m(b)s(ered)e(in)g(the)h(order)g(they)h(o) s(ccur)-125 2272 y Fe(2.1)113 b(Lo)s(cal)37 b(hosts)h(joining)e(a)i (group)-125 2444 y Fk(In)c(order)f(to)i(join)e(a)h(m)m(ulticast)g (group,)h(G,)f(a)h(host)f(con)m(v)m(eys)h(its)f(mem)m(b)s(ership)d (information)h(through)i(the)g(In)m(ternet)-125 2557 y(Group)f(Managemen)m(t)j(Proto)s(col)e(\(IGMP\),)h(as)e(sp)s (eci\014ed)f(in)g([4)q(,)i(5],)h(\(see)f(\014gure)f(1\).)51 b(F)-8 b(rom)34 b(this)f(p)s(oin)m(t)f(on)i(w)m(e)g(refer)-125 2670 y(to)e(suc)m(h)e(a)g(host)h(as)f(a)h(receiv)m(er,)g(R,)g(\(or)g (mem)m(b)s(er\))f(of)g(the)h(group)f(G.)17 2783 y(Note)f(that)h(all)d (\014gures)h(used)g(in)f(this)g(section)i(are)g(for)f(illustration)e (and)i(are)h(not)f(in)m(tended)g(to)h(b)s(e)f(complete.)41 b(F)-8 b(or)-125 2895 y(complete)31 b(and)f(detailed)g(proto)s(col)g (action)h(see)g(Section)f(3.)17 3008 y(When)k(a)h(DR)g(\(e.g.,)i (router)d(A)h(in)e(\014gure)h(1\))h(gets)h(a)e(mem)m(b)s(ership)e (indication)h(from)h(IGMP)h(for)f(a)h(new)f(group,)-125 3121 y(G,)f(the)g(DR)g(lo)s(oks)f(up)f(the)i(asso)s(ciated)f(RP)-8 b(.)33 b(The)f(DR)h(creates)h(a)f(wildcard)d(m)m(ulticast)i(route)g(en) m(try)h(for)f(the)h(group,)-125 3234 y(referred)i(to)h(here)f(as)h(a)g (\(*,G\))h(en)m(try;)h(if)d(there)g(is)g(no)g(more)h(sp)s(eci\014c)e (matc)m(h)i(for)f(a)h(particular)e(source,)j(the)e(pac)m(k)m(et)-125 3347 y(will)28 b(b)s(e)i(forw)m(arded)g(according)g(to)h(this)e(en)m (try)-8 b(.)17 3460 y(The)30 b(RP)g(address)g(is)g(included)d(in)j(a)h (sp)s(ecial)e(\014eld)g(in)h(the)g(route)h(en)m(try)g(and)f(is)g (included)e(in)h(p)s(erio)s(dic)f(upstream)-125 3573 y(Join/Prune)e(messages.)40 b(The)27 b(outgoing)g(in)m(terface)h(is)e (set)h(to)h(that)g(included)c(in)i(the)h(IGMP)g(mem)m(b)s(ership)e (indication)-125 3686 y(for)34 b(the)f(new)g(mem)m(b)s(er.)49 b(The)33 b(incoming)f(in)m(terface)i(is)e(set)i(to)g(the)g(in)m (terface)g(used)f(to)h(send)e(unicast)h(pac)m(k)m(ets)i(to)f(the)-125 3799 y(RP)-8 b(.)17 3912 y(When)34 b(there)h(are)g(no)g(longer)g (directly)e(connected)j(mem)m(b)s(ers)e(for)h(the)g(group,)g(IGMP)g (noti\014es)f(the)h(DR.)h(If)e(the)-125 4025 y(DR)d(has)f(neither)g(lo) s(cal)f(mem)m(b)s(ers)h(nor)g(do)m(wnstream)g(receiv)m(ers,)h(the)g (\(*,G\))h(state)f(is)f(deleted.)-125 4268 y Fe(2.2)113 b(Establishing)35 b(the)j(RP-ro)s(oted)f(shared)h(tree)-125 4440 y Fk(T)-8 b(riggered)33 b(b)m(y)g(the)f(\(*,G\))j(state,)g(the)e (DR)g(creates)h(a)f(Join/Prune)e(message)j(with)d(the)i(RP)g(address)f (in)f(its)h(join)g(list)-125 4553 y(and)h(the)g(the)g(wildcard)d(bit)i (\(W)m(C-bit\))i(and)e(RP-tree)i(bit)e(\(RPT-bit\))g(set)h(to)h(1.)49 b(The)32 b(W)m(C-bit)h(indicates)f(that)h(an)m(y)-125 4665 y(source)38 b(ma)m(y)h(matc)m(h)f(and)g(b)s(e)f(forw)m(arded)g (according)g(to)i(this)e(en)m(try)h(if)e(there)i(is)f(no)h(longer)f (matc)m(h;)43 b(the)38 b(RPT-bit)-125 4778 y(indicates)f(that)h(this)e (join)h(is)f(b)s(eing)g(sen)m(t)i(up)f(the)h(shared,)g(RP-tree.)63 b(The)37 b(prune)f(list)g(is)h(left)g(empt)m(y)-8 b(.)63 b(When)37 b(the)-125 4891 y(RPT-bit)h(is)f(set)j(to)f(1)g(it)f (indicates)g(that)h(the)g(join)e(is)h(asso)s(ciated)h(with)e(the)i (shared)f(RP-tree)h(and)f(therefore)h(the)-125 5004 y(Join/Prune)29 b(message)j(is)d(propagated)i(along)g(the)g(RP-tree.)42 b(When)30 b(the)h(W)m(C-bit)f(is)f(set)j(to)f(1)g(it)f(indicates)f (that)i(the)-125 5117 y(address)26 b(is)g(an)g(RP)g(and)g(the)h(do)m (wnstream)f(receiv)m(ers)h(exp)s(ect)g(to)g(receiv)m(e)g(pac)m(k)m(ets) i(from)d(all)f(sources)h(via)g(this)g(\(shared)-125 5230 y(tree\))35 b(path.)51 b(The)33 b(term)h(RPT-bit)f(is)f(used)h(to)i (refer)f(to)g(b)s(oth)f(the)h(RPT-bit)f(\015ags)h(asso)s(ciated)g(with) e(route)i(en)m(tries,)-125 5343 y(and)c(the)h(RPT-bit)e(included)f(in)h (eac)m(h)i(enco)s(ded)f(address)g(in)f(a)i(Join/Prune)d(message.)p eop %%Page: 5 6 5 5 bop -125 -149 a Fh(draft-ietf-idmr-PIM-SM-sp)s(ec-10.ps)2718 b Fk(5)-125 1738 y @beginspecial 340 @voffset 60 @hoffset 60 @hscale 60 @vscale 270 @angle @setspecial %%BeginDocument: example.2.ps % % Frame ps_prolog 4.0, for use with Frame 4.0 products % This ps_prolog file is Copyright (c) 1986-1993 Frame Technology % Corporation. All rights reserved. This ps_prolog file may be % freely copied and distributed in conjunction with documents created % using FrameMaker, FrameBuilder and FrameViewer as long as this % copyright notice is preserved. % % Frame products normally print colors as their true color on a color printer % or as shades of gray, based on luminance, on a black-and white printer. The % following flag, if set to True, forces all non-white colors to print as pure % black. This has no effect on bitmap images. /FMPrintAllColorsAsBlack false def % % Frame products can either set their own line screens or use a printer's % default settings. Three flags below control this separately for no % separations, spot separations and process separations. If a flag % is true, then the default printer settings will not be changed. If it is % false, Frame products will use their own settings from a table based on % the printer's resolution. /FMUseDefaultNoSeparationScreen true def /FMUseDefaultSpotSeparationScreen true def /FMUseDefaultProcessSeparationScreen false def % % For any given PostScript printer resolution, Frame products have two sets of % screen angles and frequencies for printing process separations, which are % recomended by Adobe. The following variable chooses the higher frequencies % when set to true or the lower frequencies when set to false. This is only % effective if the appropriate FMUseDefault...SeparationScreen flag is false. /FMUseHighFrequencyScreens true def % % PostScript Level 2 printers contain an "Accurate Screens" feature which can % improve process separation rendering at the expense of compute time. This % flag is ignored by PostScript Level 1 printers. /FMUseAcccurateScreens true def % % The following PostScript procedure defines the spot function that Frame % products will use for process separations. You may un-comment-out one of % the alternative functions below, or use your own. % % Dot function /FMSpotFunction {abs exch abs 2 copy add 1 gt {1 sub dup mul exch 1 sub dup mul add 1 sub } {dup mul exch dup mul add 1 exch sub }ifelse } def % % Line function % /FMSpotFunction { pop } def % % Elipse function % /FMSpotFunction { dup 5 mul 8 div mul exch dup mul exch add % sqrt 1 exch sub } def % % /FMversion (4.0) def /FMLevel1 /languagelevel where {pop languagelevel} {1} ifelse 2 lt def /FMPColor FMLevel1 { false /colorimage where {pop pop true} if } { true } ifelse def /FrameDict 400 dict def systemdict /errordict known not {/errordict 10 dict def errordict /rangecheck {stop} put} if % The readline in PS 23.0 doesn't recognize cr's as nl's on AppleTalk FrameDict /tmprangecheck errordict /rangecheck get put errordict /rangecheck {FrameDict /bug true put} put FrameDict /bug false put mark % Some PS machines read past the CR, so keep the following 3 lines together! currentfile 5 string readline 00 0000000000 cleartomark errordict /rangecheck FrameDict /tmprangecheck get put FrameDict /bug get { /readline { /gstring exch def /gfile exch def /gindex 0 def { gfile read pop dup 10 eq {exit} if dup 13 eq {exit} if gstring exch gindex exch put /gindex gindex 1 add def } loop pop gstring 0 gindex getinterval true } bind def } if /FMshowpage /showpage load def /FMquit /quit load def /FMFAILURE { dup = flush FMshowpage /Helvetica findfont 12 scalefont setfont 72 200 moveto show FMshowpage FMquit } def /FMVERSION { FMversion ne { (Frame product version does not match ps_prolog!) FMFAILURE } if } def /FMBADEPSF { (PostScript Lang. Ref. Man., 2nd Ed., H.2.4 says EPS must not call X ) dup dup (X) search pop exch pop exch pop length 4 -1 roll putinterval FMFAILURE } def /FMLOCAL { FrameDict begin 0 def end } def /concatprocs { /proc2 exch cvlit def/proc1 exch cvlit def/newproc proc1 length proc2 length add array def newproc 0 proc1 putinterval newproc proc1 length proc2 putinterval newproc cvx }def FrameDict begin /FMnone 0 def /FMcyan 1 def /FMmagenta 2 def /FMyellow 3 def /FMblack 4 def /FMcustom 5 def /FrameNegative false def /FrameSepIs FMnone def /FrameSepBlack 0 def /FrameSepYellow 0 def /FrameSepMagenta 0 def /FrameSepCyan 0 def /FrameSepRed 1 def /FrameSepGreen 1 def /FrameSepBlue 1 def /FrameCurGray 1 def /FrameCurPat null def /FrameCurColors [ 0 0 0 1 0 0 0 ] def /FrameColorEpsilon .001 def /eqepsilon { sub dup 0 lt {neg} if FrameColorEpsilon le } bind def /FrameCmpColorsCMYK { 2 copy 0 get exch 0 get eqepsilon { 2 copy 1 get exch 1 get eqepsilon { 2 copy 2 get exch 2 get eqepsilon { 3 get exch 3 get eqepsilon } {pop pop false} ifelse }{pop pop false} ifelse } {pop pop false} ifelse } bind def /FrameCmpColorsRGB { 2 copy 4 get exch 0 get eqepsilon { 2 copy 5 get exch 1 get eqepsilon { 6 get exch 2 get eqepsilon }{pop pop false} ifelse } {pop pop false} ifelse } bind def /RGBtoCMYK { 1 exch sub 3 1 roll 1 exch sub 3 1 roll 1 exch sub 3 1 roll 3 copy 2 copy le { pop } { exch pop } ifelse 2 copy le { pop } { exch pop } ifelse dup dup dup 6 1 roll 4 1 roll 7 1 roll sub 6 1 roll sub 5 1 roll sub 4 1 roll } bind def /CMYKtoRGB { dup dup 4 -1 roll add 5 1 roll 3 -1 roll add 4 1 roll add 1 exch sub dup 0 lt {pop 0} if 3 1 roll 1 exch sub dup 0 lt {pop 0} if exch 1 exch sub dup 0 lt {pop 0} if exch } bind def /FrameSepInit { 1.0 RealSetgray } bind def /FrameSetSepColor { /FrameSepBlue exch def /FrameSepGreen exch def /FrameSepRed exch def /FrameSepBlack exch def /FrameSepYellow exch def /FrameSepMagenta exch def /FrameSepCyan exch def /FrameSepIs FMcustom def setCurrentScreen } bind def /FrameSetCyan { /FrameSepBlue 1.0 def /FrameSepGreen 1.0 def /FrameSepRed 0.0 def /FrameSepBlack 0.0 def /FrameSepYellow 0.0 def /FrameSepMagenta 0.0 def /FrameSepCyan 1.0 def /FrameSepIs FMcyan def setCurrentScreen } bind def /FrameSetMagenta { /FrameSepBlue 1.0 def /FrameSepGreen 0.0 def /FrameSepRed 1.0 def /FrameSepBlack 0.0 def /FrameSepYellow 0.0 def /FrameSepMagenta 1.0 def /FrameSepCyan 0.0 def /FrameSepIs FMmagenta def setCurrentScreen } bind def /FrameSetYellow { /FrameSepBlue 0.0 def /FrameSepGreen 1.0 def /FrameSepRed 1.0 def /FrameSepBlack 0.0 def /FrameSepYellow 1.0 def /FrameSepMagenta 0.0 def /FrameSepCyan 0.0 def /FrameSepIs FMyellow def setCurrentScreen } bind def /FrameSetBlack { /FrameSepBlue 0.0 def /FrameSepGreen 0.0 def /FrameSepRed 0.0 def /FrameSepBlack 1.0 def /FrameSepYellow 0.0 def /FrameSepMagenta 0.0 def /FrameSepCyan 0.0 def /FrameSepIs FMblack def setCurrentScreen } bind def /FrameNoSep { /FrameSepIs FMnone def setCurrentScreen } bind def /FrameSetSepColors { FrameDict begin [ exch 1 add 1 roll ] /FrameSepColors exch def end } bind def /FrameColorInSepListCMYK { FrameSepColors { exch dup 3 -1 roll FrameCmpColorsCMYK { pop true exit } if } forall dup true ne {pop false} if } bind def /FrameColorInSepListRGB { FrameSepColors { exch dup 3 -1 roll FrameCmpColorsRGB { pop true exit } if } forall dup true ne {pop false} if } bind def /RealSetgray /setgray load def /RealSetrgbcolor /setrgbcolor load def /RealSethsbcolor /sethsbcolor load def end /setgray { FrameDict begin FrameSepIs FMnone eq { RealSetgray } { FrameSepIs FMblack eq { RealSetgray } { FrameSepIs FMcustom eq FrameSepRed 0 eq and FrameSepGreen 0 eq and FrameSepBlue 0 eq and { RealSetgray } { 1 RealSetgray pop } ifelse } ifelse } ifelse end } bind def /setrgbcolor { FrameDict begin FrameSepIs FMnone eq { RealSetrgbcolor } { 3 copy [ 4 1 roll ] FrameColorInSepListRGB { FrameSepBlue eq exch FrameSepGreen eq and exch FrameSepRed eq and { 0 } { 1 } ifelse } { FMPColor { RealSetrgbcolor currentcmykcolor } { RGBtoCMYK } ifelse FrameSepIs FMblack eq {1.0 exch sub 4 1 roll pop pop pop} { FrameSepIs FMyellow eq {pop 1.0 exch sub 3 1 roll pop pop} { FrameSepIs FMmagenta eq {pop pop 1.0 exch sub exch pop } { FrameSepIs FMcyan eq {pop pop pop 1.0 exch sub } {pop pop pop pop 1} ifelse } ifelse } ifelse } ifelse } ifelse RealSetgray } ifelse end } bind def /sethsbcolor { FrameDict begin FrameSepIs FMnone eq { RealSethsbcolor } { RealSethsbcolor currentrgbcolor setrgbcolor } ifelse end } bind def FrameDict begin /setcmykcolor where { pop /RealSetcmykcolor /setcmykcolor load def } { /RealSetcmykcolor { 4 1 roll 3 { 3 index add 0 max 1 min 1 exch sub 3 1 roll} repeat setrgbcolor pop } bind def } ifelse userdict /setcmykcolor { FrameDict begin FrameSepIs FMnone eq { RealSetcmykcolor } { 4 copy [ 5 1 roll ] FrameColorInSepListCMYK { FrameSepBlack eq exch FrameSepYellow eq and exch FrameSepMagenta eq and exch FrameSepCyan eq and { 0 } { 1 } ifelse } { FrameSepIs FMblack eq {1.0 exch sub 4 1 roll pop pop pop} { FrameSepIs FMyellow eq {pop 1.0 exch sub 3 1 roll pop pop} { FrameSepIs FMmagenta eq {pop pop 1.0 exch sub exch pop } { FrameSepIs FMcyan eq {pop pop pop 1.0 exch sub } {pop pop pop pop 1} ifelse } ifelse } ifelse } ifelse } ifelse RealSetgray } ifelse end } bind put FMLevel1 not { /patProcDict 5 dict dup begin <0f1e3c78f0e1c387> { 3 setlinewidth -1 -1 moveto 9 9 lineto stroke 4 -4 moveto 12 4 lineto stroke -4 4 moveto 4 12 lineto stroke} bind def <0f87c3e1f0783c1e> { 3 setlinewidth -1 9 moveto 9 -1 lineto stroke -4 4 moveto 4 -4 lineto stroke 4 12 moveto 12 4 lineto stroke} bind def <8142241818244281> { 1 setlinewidth -1 9 moveto 9 -1 lineto stroke -1 -1 moveto 9 9 lineto stroke } bind def <03060c183060c081> { 1 setlinewidth -1 -1 moveto 9 9 lineto stroke 4 -4 moveto 12 4 lineto stroke -4 4 moveto 4 12 lineto stroke} bind def <8040201008040201> { 1 setlinewidth -1 9 moveto 9 -1 lineto stroke -4 4 moveto 4 -4 lineto stroke 4 12 moveto 12 4 lineto stroke} bind def end def /patDict 15 dict dup begin /PatternType 1 def /PaintType 2 def /TilingType 3 def /BBox [ 0 0 8 8 ] def /XStep 8 def /YStep 8 def /PaintProc { begin patProcDict bstring known { patProcDict bstring get exec } { 8 8 true [1 0 0 -1 0 8] bstring imagemask } ifelse end } bind def end def } if /combineColor { FrameSepIs FMnone eq { graymode FMLevel1 or not { [/Pattern [/DeviceCMYK]] setcolorspace FrameCurColors 0 4 getinterval aload pop FrameCurPat setcolor } { FrameCurColors 3 get 1.0 ge { FrameCurGray RealSetgray } { FMPColor graymode and { 0 1 3 { FrameCurColors exch get 1 FrameCurGray sub mul } for RealSetcmykcolor } { 4 1 6 { FrameCurColors exch get graymode { 1 exch sub 1 FrameCurGray sub mul 1 exch sub } { 1.0 lt {FrameCurGray} {1} ifelse } ifelse } for RealSetrgbcolor } ifelse } ifelse } ifelse } { FrameCurColors 0 4 getinterval aload FrameColorInSepListCMYK { FrameSepBlack eq exch FrameSepYellow eq and exch FrameSepMagenta eq and exch FrameSepCyan eq and FrameSepIs FMcustom eq and { FrameCurGray } { 1 } ifelse } { FrameSepIs FMblack eq {FrameCurGray 1.0 exch sub mul 1.0 exch sub 4 1 roll pop pop pop} { FrameSepIs FMyellow eq {pop FrameCurGray 1.0 exch sub mul 1.0 exch sub 3 1 roll pop pop} { FrameSepIs FMmagenta eq {pop pop FrameCurGray 1.0 exch sub mul 1.0 exch sub exch pop } { FrameSepIs FMcyan eq {pop pop pop FrameCurGray 1.0 exch sub mul 1.0 exch sub } {pop pop pop pop 1} ifelse } ifelse } ifelse } ifelse } ifelse graymode FMLevel1 or not { [/Pattern [/DeviceGray]] setcolorspace FrameCurPat setcolor } { graymode not FMLevel1 and { dup 1 lt {pop FrameCurGray} if } if RealSetgray } ifelse } ifelse } bind def /savematrix { orgmatrix currentmatrix pop } bind def /restorematrix { orgmatrix setmatrix } bind def /dmatrix matrix def /dpi 72 0 dmatrix defaultmatrix dtransform dup mul exch dup mul add sqrt def /freq dpi dup 72 div round dup 0 eq {pop 1} if 8 mul div def /sangle 1 0 dmatrix defaultmatrix dtransform exch atan def /dpiranges [ 2540 2400 1693 1270 1200 635 600 0 ] def /CMLowFreqs [ 100.402 94.8683 89.2289 100.402 94.8683 66.9349 63.2456 47.4342 ] def /YLowFreqs [ 95.25 90.0 84.65 95.25 90.0 70.5556 66.6667 50.0 ] def /KLowFreqs [ 89.8026 84.8528 79.8088 89.8026 84.8528 74.8355 70.7107 53.033 ] def /CLowAngles [ 71.5651 71.5651 71.5651 71.5651 71.5651 71.5651 71.5651 71.5651 ] def /MLowAngles [ 18.4349 18.4349 18.4349 18.4349 18.4349 18.4349 18.4349 18.4349 ] def /YLowTDot [ true true false true true false false false ] def /CMHighFreqs [ 133.87 126.491 133.843 108.503 102.523 100.402 94.8683 63.2456 ] def /YHighFreqs [ 127.0 120.0 126.975 115.455 109.091 95.25 90.0 60.0 ] def /KHighFreqs [ 119.737 113.137 119.713 128.289 121.218 89.8026 84.8528 63.6395 ] def /CHighAngles [ 71.5651 71.5651 71.5651 70.0169 70.0169 71.5651 71.5651 71.5651 ] def /MHighAngles [ 18.4349 18.4349 18.4349 19.9831 19.9831 18.4349 18.4349 18.4349 ] def /YHighTDot [ false false true false false true true false ] def /PatFreq [ 10.5833 10.0 9.4055 10.5833 10.0 10.5833 10.0 9.375 ] def /screenIndex { 0 1 dpiranges length 1 sub { dup dpiranges exch get 1 sub dpi le {exit} {pop} ifelse } for } bind def /getCyanScreen { FMUseHighFrequencyScreens { CHighAngles CMHighFreqs} {CLowAngles CMLowFreqs} ifelse screenIndex dup 3 1 roll get 3 1 roll get /FMSpotFunction load } bind def /getMagentaScreen { FMUseHighFrequencyScreens { MHighAngles CMHighFreqs } {MLowAngles CMLowFreqs} ifelse screenIndex dup 3 1 roll get 3 1 roll get /FMSpotFunction load } bind def /getYellowScreen { FMUseHighFrequencyScreens { YHighTDot YHighFreqs} { YLowTDot YLowFreqs } ifelse screenIndex dup 3 1 roll get 3 1 roll get { 3 div {2 { 1 add 2 div 3 mul dup floor sub 2 mul 1 sub exch} repeat FMSpotFunction } } {/FMSpotFunction load } ifelse 0.0 exch } bind def /getBlackScreen { FMUseHighFrequencyScreens { KHighFreqs } { KLowFreqs } ifelse screenIndex get 45.0 /FMSpotFunction load } bind def /getSpotScreen { getBlackScreen } bind def /getCompositeScreen { getBlackScreen } bind def /FMSetScreen FMLevel1 { /setscreen load }{ { 8 dict begin /HalftoneType 1 def /SpotFunction exch def /Angle exch def /Frequency exch def /AccurateScreens FMUseAcccurateScreens def currentdict end sethalftone } bind } ifelse def /setDefaultScreen { FMPColor { orgrxfer cvx orggxfer cvx orgbxfer cvx orgxfer cvx setcolortransfer } { orgxfer cvx settransfer } ifelse orgfreq organgle orgproc cvx setscreen } bind def /setCurrentScreen { FrameSepIs FMnone eq { FMUseDefaultNoSeparationScreen { setDefaultScreen } { getCompositeScreen FMSetScreen } ifelse } { FrameSepIs FMcustom eq { FMUseDefaultSpotSeparationScreen { setDefaultScreen } { getSpotScreen FMSetScreen } ifelse } { FMUseDefaultProcessSeparationScreen { setDefaultScreen } { FrameSepIs FMcyan eq { getCyanScreen FMSetScreen } { FrameSepIs FMmagenta eq { getMagentaScreen FMSetScreen } { FrameSepIs FMyellow eq { getYellowScreen FMSetScreen } { getBlackScreen FMSetScreen } ifelse } ifelse } ifelse } ifelse } ifelse } ifelse } bind def end /gstring FMLOCAL /gfile FMLOCAL /gindex FMLOCAL /orgrxfer FMLOCAL /orggxfer FMLOCAL /orgbxfer FMLOCAL /orgxfer FMLOCAL /orgproc FMLOCAL /orgrproc FMLOCAL /orggproc FMLOCAL /orgbproc FMLOCAL /organgle FMLOCAL /orgrangle FMLOCAL /orggangle FMLOCAL /orgbangle FMLOCAL /orgfreq FMLOCAL /orgrfreq FMLOCAL /orggfreq FMLOCAL /orgbfreq FMLOCAL /yscale FMLOCAL /xscale FMLOCAL /edown FMLOCAL /manualfeed FMLOCAL /paperheight FMLOCAL /paperwidth FMLOCAL /FMDOCUMENT { array /FMfonts exch def /#copies exch def FrameDict begin 0 ne /manualfeed exch def /paperheight exch def /paperwidth exch def 0 ne /FrameNegative exch def 0 ne /edown exch def /yscale exch def /xscale exch def FMLevel1 { manualfeed {setmanualfeed} if /FMdicttop countdictstack 1 add def /FMoptop count def setpapername manualfeed {true} {papersize} ifelse {manualpapersize} {false} ifelse {desperatepapersize} {false} ifelse { (Can't select requested paper size for Frame print job!) FMFAILURE } if count -1 FMoptop {pop pop} for countdictstack -1 FMdicttop {pop end} for } {{}stopped { (Can't select requested paper size for Frame print job!) FMFAILURE } if { } stopped pop } ifelse FMPColor { currentcolorscreen cvlit /orgproc exch def /organgle exch def /orgfreq exch def cvlit /orgbproc exch def /orgbangle exch def /orgbfreq exch def cvlit /orggproc exch def /orggangle exch def /orggfreq exch def cvlit /orgrproc exch def /orgrangle exch def /orgrfreq exch def currentcolortransfer FrameNegative { 1 1 4 { pop { 1 exch sub } concatprocs 4 1 roll } for 4 copy setcolortransfer } if cvlit /orgxfer exch def cvlit /orgbxfer exch def cvlit /orggxfer exch def cvlit /orgrxfer exch def } { currentscreen cvlit /orgproc exch def /organgle exch def /orgfreq exch def currenttransfer FrameNegative { { 1 exch sub } concatprocs dup settransfer } if cvlit /orgxfer exch def } ifelse end } def /pagesave FMLOCAL /orgmatrix FMLOCAL /landscape FMLOCAL /pwid FMLOCAL /FMBEGINPAGE { FrameDict begin /pagesave save def 3.86 setmiterlimit /landscape exch 0 ne def landscape { 90 rotate 0 exch dup /pwid exch def neg translate pop }{ pop /pwid exch def } ifelse edown { [-1 0 0 1 pwid 0] concat } if xscale yscale scale /orgmatrix matrix def gsave } def /FMENDPAGE { grestore pagesave restore end showpage } def /FMFONTDEFINE { FrameDict begin findfont ReEncode 1 index exch definefont FMfonts 3 1 roll put end } def /FMFILLS { FrameDict begin dup array /fillvals exch def dict /patCache exch def end } def /FMFILL { FrameDict begin fillvals 3 1 roll put end } def /FMNORMALIZEGRAPHICS { newpath 0.0 0.0 moveto 1 setlinewidth 0 setlinecap 0 0 0 sethsbcolor 0 setgray } bind def /fx FMLOCAL /fy FMLOCAL /fh FMLOCAL /fw FMLOCAL /llx FMLOCAL /lly FMLOCAL /urx FMLOCAL /ury FMLOCAL /FMBEGINEPSF { end /FMEPSF save def /showpage {} def % See Adobe's "PostScript Language Reference Manual, 2nd Edition", page 714. % "...the following operators MUST NOT be used in an EPS file:" (emphasis ours) /banddevice {(banddevice) FMBADEPSF} def /clear {(clear) FMBADEPSF} def /cleardictstack {(cleardictstack) FMBADEPSF} def /copypage {(copypage) FMBADEPSF} def /erasepage {(erasepage) FMBADEPSF} def /exitserver {(exitserver) FMBADEPSF} def /framedevice {(framedevice) FMBADEPSF} def /grestoreall {(grestoreall) FMBADEPSF} def /initclip {(initclip) FMBADEPSF} def /initgraphics {(initgraphics) FMBADEPSF} def /initmatrix {(initmatrix) FMBADEPSF} def /quit {(quit) FMBADEPSF} def /renderbands {(renderbands) FMBADEPSF} def /setglobal {(setglobal) FMBADEPSF} def /setpagedevice {(setpagedevice) FMBADEPSF} def /setshared {(setshared) FMBADEPSF} def /startjob {(startjob) FMBADEPSF} def /lettertray {(lettertray) FMBADEPSF} def /letter {(letter) FMBADEPSF} def /lettersmall {(lettersmall) FMBADEPSF} def /11x17tray {(11x17tray) FMBADEPSF} def /11x17 {(11x17) FMBADEPSF} def /ledgertray {(ledgertray) FMBADEPSF} def /ledger {(ledger) FMBADEPSF} def /legaltray {(legaltray) FMBADEPSF} def /legal {(legal) FMBADEPSF} def /statementtray {(statementtray) FMBADEPSF} def /statement {(statement) FMBADEPSF} def /executivetray {(executivetray) FMBADEPSF} def /executive {(executive) FMBADEPSF} def /a3tray {(a3tray) FMBADEPSF} def /a3 {(a3) FMBADEPSF} def /a4tray {(a4tray) FMBADEPSF} def /a4 {(a4) FMBADEPSF} def /a4small {(a4small) FMBADEPSF} def /b4tray {(b4tray) FMBADEPSF} def /b4 {(b4) FMBADEPSF} def /b5tray {(b5tray) FMBADEPSF} def /b5 {(b5) FMBADEPSF} def FMNORMALIZEGRAPHICS [/fy /fx /fh /fw /ury /urx /lly /llx] {exch def} forall fx fw 2 div add fy fh 2 div add translate rotate fw 2 div neg fh 2 div neg translate fw urx llx sub div fh ury lly sub div scale llx neg lly neg translate /FMdicttop countdictstack 1 add def /FMoptop count def } bind def /FMENDEPSF { count -1 FMoptop {pop pop} for countdictstack -1 FMdicttop {pop end} for FMEPSF restore FrameDict begin } bind def FrameDict begin /setmanualfeed { statusdict /manualfeed true put } bind def /max {2 copy lt {exch} if pop} bind def /min {2 copy gt {exch} if pop} bind def /inch {72 mul} def /pagedimen { paperheight sub abs 16 lt exch paperwidth sub abs 16 lt and {/papername exch def} {pop} ifelse } bind def /papersizedict FMLOCAL /setpapername { /papersizedict 14 dict def papersizedict begin /papername /unknown def /Letter 8.5 inch 11.0 inch pagedimen /LetterSmall 7.68 inch 10.16 inch pagedimen /Tabloid 11.0 inch 17.0 inch pagedimen /Ledger 17.0 inch 11.0 inch pagedimen /Legal 8.5 inch 14.0 inch pagedimen /Statement 5.5 inch 8.5 inch pagedimen /Executive 7.5 inch 10.0 inch pagedimen /A3 11.69 inch 16.5 inch pagedimen /A4 8.26 inch 11.69 inch pagedimen /A4Small 7.47 inch 10.85 inch pagedimen /B4 10.125 inch 14.33 inch pagedimen /B5 7.16 inch 10.125 inch pagedimen end } bind def /papersize { papersizedict begin /Letter {lettertray letter} def /LetterSmall {lettertray lettersmall} def /Tabloid {11x17tray 11x17} def /Ledger {ledgertray ledger} def /Legal {legaltray legal} def /Statement {statementtray statement} def /Executive {executivetray executive} def /A3 {a3tray a3} def /A4 {a4tray a4} def /A4Small {a4tray a4small} def /B4 {b4tray b4} def /B5 {b5tray b5} def /unknown {unknown} def papersizedict dup papername known {papername} {/unknown} ifelse get end statusdict begin stopped end } bind def /manualpapersize { papersizedict begin /Letter {letter} def /LetterSmall {lettersmall} def /Tabloid {11x17} def /Ledger {ledger} def /Legal {legal} def /Statement {statement} def /Executive {executive} def /A3 {a3} def /A4 {a4} def /A4Small {a4small} def /B4 {b4} def /B5 {b5} def /unknown {unknown} def papersizedict dup papername known {papername} {/unknown} ifelse get end stopped } bind def /desperatepapersize { statusdict /setpageparams known { paperwidth paperheight 0 1 statusdict begin {setpageparams} stopped end } {true} ifelse } bind def /DiacriticEncoding [ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quotesingle /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /grave /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef /Adieresis /Aring /Ccedilla /Eacute /Ntilde /Odieresis /Udieresis /aacute /agrave /acircumflex /adieresis /atilde /aring /ccedilla /eacute /egrave /ecircumflex /edieresis /iacute /igrave /icircumflex /idieresis /ntilde /oacute /ograve /ocircumflex /odieresis /otilde /uacute /ugrave /ucircumflex /udieresis /dagger /.notdef /cent /sterling /section /bullet /paragraph /germandbls /registered /copyright /trademark /acute /dieresis /.notdef /AE /Oslash /.notdef /.notdef /.notdef /.notdef /yen /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /ordfeminine /ordmasculine /.notdef /ae /oslash /questiondown /exclamdown /logicalnot /.notdef /florin /.notdef /.notdef /guillemotleft /guillemotright /ellipsis /.notdef /Agrave /Atilde /Otilde /OE /oe /endash /emdash /quotedblleft /quotedblright /quoteleft /quoteright /.notdef /.notdef /ydieresis /Ydieresis /fraction /currency /guilsinglleft /guilsinglright /fi /fl /daggerdbl /periodcentered /quotesinglbase /quotedblbase /perthousand /Acircumflex /Ecircumflex /Aacute /Edieresis /Egrave /Iacute /Icircumflex /Idieresis /Igrave /Oacute /Ocircumflex /.notdef /Ograve /Uacute /Ucircumflex /Ugrave /dotlessi /circumflex /tilde /macron /breve /dotaccent /ring /cedilla /hungarumlaut /ogonek /caron ] def /ReEncode { dup length dict begin { 1 index /FID ne {def} {pop pop} ifelse } forall 0 eq {/Encoding DiacriticEncoding def} if currentdict end } bind def FMPColor { /BEGINBITMAPCOLOR { BITMAPCOLOR} def /BEGINBITMAPCOLORc { BITMAPCOLORc} def /BEGINBITMAPTRUECOLOR { BITMAPTRUECOLOR } def /BEGINBITMAPTRUECOLORc { BITMAPTRUECOLORc } def } { /BEGINBITMAPCOLOR { BITMAPGRAY} def /BEGINBITMAPCOLORc { BITMAPGRAYc} def /BEGINBITMAPTRUECOLOR { BITMAPTRUEGRAY } def /BEGINBITMAPTRUECOLORc { BITMAPTRUEGRAYc } def } ifelse /K { FMPrintAllColorsAsBlack { dup 1 eq 2 index 1 eq and 3 index 1 eq and not {7 {pop} repeat 0 0 0 1 0 0 0} if } if FrameCurColors astore pop combineColor } bind def /graymode true def /bwidth FMLOCAL /bpside FMLOCAL /bstring FMLOCAL /onbits FMLOCAL /offbits FMLOCAL /xindex FMLOCAL /yindex FMLOCAL /x FMLOCAL /y FMLOCAL /setPatternMode { FMLevel1 { /bwidth exch def /bpside exch def /bstring exch def /onbits 0 def /offbits 0 def freq sangle landscape {90 add} if {/y exch def /x exch def /xindex x 1 add 2 div bpside mul cvi def /yindex y 1 add 2 div bpside mul cvi def bstring yindex bwidth mul xindex 8 idiv add get 1 7 xindex 8 mod sub bitshift and 0 ne FrameNegative {not} if {/onbits onbits 1 add def 1} {/offbits offbits 1 add def 0} ifelse } setscreen offbits offbits onbits add div FrameNegative {1.0 exch sub} if /FrameCurGray exch def } { pop pop dup patCache exch known { patCache exch get } { dup patDict /bstring 3 -1 roll put patDict 9 PatFreq screenIndex get div dup matrix scale makepattern dup patCache 4 -1 roll 3 -1 roll put } ifelse /FrameCurGray 0 def /FrameCurPat exch def } ifelse /graymode false def combineColor } bind def /setGrayScaleMode { graymode not { /graymode true def FMLevel1 { setCurrentScreen } if } if /FrameCurGray exch def combineColor } bind def /normalize { transform round exch round exch itransform } bind def /dnormalize { dtransform round exch round exch idtransform } bind def /lnormalize { 0 dtransform exch cvi 2 idiv 2 mul 1 add exch idtransform pop } bind def /H { lnormalize setlinewidth } bind def /Z { setlinecap } bind def /PFill { graymode FMLevel1 or not { gsave 1 setgray eofill grestore } if } bind def /PStroke { graymode FMLevel1 or not { gsave 1 setgray stroke grestore } if stroke } bind def /fillvals FMLOCAL /X { fillvals exch get dup type /stringtype eq {8 1 setPatternMode} {setGrayScaleMode} ifelse } bind def /V { PFill gsave eofill grestore } bind def /Vclip { clip } bind def /Vstrk { currentlinewidth exch setlinewidth PStroke setlinewidth } bind def /N { PStroke } bind def /Nclip { strokepath clip newpath } bind def /Nstrk { currentlinewidth exch setlinewidth PStroke setlinewidth } bind def /M {newpath moveto} bind def /E {lineto} bind def /D {curveto} bind def /O {closepath} bind def /n FMLOCAL /L { /n exch def newpath normalize moveto 2 1 n {pop normalize lineto} for } bind def /Y { L closepath } bind def /x1 FMLOCAL /x2 FMLOCAL /y1 FMLOCAL /y2 FMLOCAL /R { /y2 exch def /x2 exch def /y1 exch def /x1 exch def x1 y1 x2 y1 x2 y2 x1 y2 4 Y } bind def /rad FMLOCAL /rarc {rad arcto } bind def /RR { /rad exch def normalize /y2 exch def /x2 exch def normalize /y1 exch def /x1 exch def mark newpath { x1 y1 rad add moveto x1 y2 x2 y2 rarc x2 y2 x2 y1 rarc x2 y1 x1 y1 rarc x1 y1 x1 y2 rarc closepath } stopped {x1 y1 x2 y2 R} if cleartomark } bind def /RRR { /rad exch def normalize /y4 exch def /x4 exch def normalize /y3 exch def /x3 exch def normalize /y2 exch def /x2 exch def normalize /y1 exch def /x1 exch def newpath normalize moveto mark { x2 y2 x3 y3 rarc x3 y3 x4 y4 rarc x4 y4 x1 y1 rarc x1 y1 x2 y2 rarc closepath } stopped {x1 y1 x2 y2 x3 y3 x4 y4 newpath moveto lineto lineto lineto closepath} if cleartomark } bind def /C { grestore gsave R clip setCurrentScreen } bind def /CP { grestore gsave Y clip setCurrentScreen } bind def /FMpointsize FMLOCAL /F { FMfonts exch get FMpointsize scalefont setfont } bind def /Q { /FMpointsize exch def F } bind def /T { moveto show } bind def /RF { rotate 0 ne {-1 1 scale} if } bind def /TF { gsave moveto RF show grestore } bind def /P { moveto 0 32 3 2 roll widthshow } bind def /PF { gsave moveto RF 0 32 3 2 roll widthshow grestore } bind def /S { moveto 0 exch ashow } bind def /SF { gsave moveto RF 0 exch ashow grestore } bind def /B { moveto 0 32 4 2 roll 0 exch awidthshow } bind def /BF { gsave moveto RF 0 32 4 2 roll 0 exch awidthshow grestore } bind def /G { gsave newpath normalize translate 0.0 0.0 moveto dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath PFill fill grestore } bind def /Gstrk { savematrix newpath 2 index 2 div add exch 3 index 2 div sub exch normalize 2 index 2 div sub exch 3 index 2 div add exch translate scale 0.0 0.0 1.0 5 3 roll arc restorematrix currentlinewidth exch setlinewidth PStroke setlinewidth } bind def /Gclip { newpath savematrix normalize translate 0.0 0.0 moveto dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath clip newpath restorematrix } bind def /GG { gsave newpath normalize translate 0.0 0.0 moveto rotate dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath PFill fill grestore } bind def /GGclip { savematrix newpath normalize translate 0.0 0.0 moveto rotate dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath clip newpath restorematrix } bind def /GGstrk { savematrix newpath normalize translate 0.0 0.0 moveto rotate dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath restorematrix currentlinewidth exch setlinewidth PStroke setlinewidth } bind def /A { gsave savematrix newpath 2 index 2 div add exch 3 index 2 div sub exch normalize 2 index 2 div sub exch 3 index 2 div add exch translate scale 0.0 0.0 1.0 5 3 roll arc restorematrix PStroke grestore } bind def /Aclip { newpath savematrix normalize translate 0.0 0.0 moveto dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath strokepath clip newpath restorematrix } bind def /Astrk { Gstrk } bind def /AA { gsave savematrix newpath 3 index 2 div add exch 4 index 2 div sub exch normalize 3 index 2 div sub exch 4 index 2 div add exch translate rotate scale 0.0 0.0 1.0 5 3 roll arc restorematrix PStroke grestore } bind def /AAclip { savematrix newpath normalize translate 0.0 0.0 moveto rotate dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath strokepath clip newpath restorematrix } bind def /AAstrk { GGstrk } bind def /x FMLOCAL /y FMLOCAL /w FMLOCAL /h FMLOCAL /xx FMLOCAL /yy FMLOCAL /ww FMLOCAL /hh FMLOCAL /FMsaveobject FMLOCAL /FMoptop FMLOCAL /FMdicttop FMLOCAL /BEGINPRINTCODE { /FMdicttop countdictstack 1 add def /FMoptop count 7 sub def /FMsaveobject save def userdict begin /showpage {} def FMNORMALIZEGRAPHICS 3 index neg 3 index neg translate } bind def /ENDPRINTCODE { count -1 FMoptop {pop pop} for countdictstack -1 FMdicttop {pop end} for FMsaveobject restore } bind def /gn { 0 { 46 mul cf read pop 32 sub dup 46 lt {exit} if 46 sub add } loop add } bind def /str FMLOCAL /cfs { /str sl string def 0 1 sl 1 sub {str exch val put} for str def } bind def /ic [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0223 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0223 0 {0 hx} {1 hx} {2 hx} {3 hx} {4 hx} {5 hx} {6 hx} {7 hx} {8 hx} {9 hx} {10 hx} {11 hx} {12 hx} {13 hx} {14 hx} {15 hx} {16 hx} {17 hx} {18 hx} {19 hx} {gn hx} {0} {1} {2} {3} {4} {5} {6} {7} {8} {9} {10} {11} {12} {13} {14} {15} {16} {17} {18} {19} {gn} {0 wh} {1 wh} {2 wh} {3 wh} {4 wh} {5 wh} {6 wh} {7 wh} {8 wh} {9 wh} {10 wh} {11 wh} {12 wh} {13 wh} {14 wh} {gn wh} {0 bl} {1 bl} {2 bl} {3 bl} {4 bl} {5 bl} {6 bl} {7 bl} {8 bl} {9 bl} {10 bl} {11 bl} {12 bl} {13 bl} {14 bl} {gn bl} {0 fl} {1 fl} {2 fl} {3 fl} {4 fl} {5 fl} {6 fl} {7 fl} {8 fl} {9 fl} {10 fl} {11 fl} {12 fl} {13 fl} {14 fl} {gn fl} ] def /sl FMLOCAL /val FMLOCAL /ws FMLOCAL /im FMLOCAL /bs FMLOCAL /cs FMLOCAL /len FMLOCAL /pos FMLOCAL /ms { /sl exch def /val 255 def /ws cfs /im cfs /val 0 def /bs cfs /cs cfs } bind def 400 ms /ip { is 0 cf cs readline pop { ic exch get exec add } forall pop } bind def /rip { bis ris copy pop is 0 cf cs readline pop { ic exch get exec add } forall pop pop ris gis copy pop dup is exch cf cs readline pop { ic exch get exec add } forall pop pop gis bis copy pop dup add is exch cf cs readline pop { ic exch get exec add } forall pop } bind def /wh { /len exch def /pos exch def ws 0 len getinterval im pos len getinterval copy pop pos len } bind def /bl { /len exch def /pos exch def bs 0 len getinterval im pos len getinterval copy pop pos len } bind def /s1 1 string def /fl { /len exch def /pos exch def /val cf s1 readhexstring pop 0 get def pos 1 pos len add 1 sub {im exch val put} for pos len } bind def /hx { 3 copy getinterval cf exch readhexstring pop pop } bind def /h FMLOCAL /w FMLOCAL /d FMLOCAL /lb FMLOCAL /bitmapsave FMLOCAL /is FMLOCAL /cf FMLOCAL /wbytes { dup dup 24 eq { pop pop 3 mul } { 8 eq {pop} {1 eq {7 add 8 idiv} {3 add 4 idiv} ifelse} ifelse } ifelse } bind def /BEGINBITMAPBWc { 1 {} COMMONBITMAPc } bind def /BEGINBITMAPGRAYc { 8 {} COMMONBITMAPc } bind def /BEGINBITMAP2BITc { 2 {} COMMONBITMAPc } bind def /COMMONBITMAPc { /r exch def /d exch def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /h exch def /w exch def /lb w d wbytes def sl lb lt {lb ms} if /bitmapsave save def r /is im 0 lb getinterval def ws 0 lb getinterval is copy pop /cf currentfile def w h d [w 0 0 h neg 0 h] {ip} image bitmapsave restore grestore } bind def /BEGINBITMAPBW { 1 {} COMMONBITMAP } bind def /BEGINBITMAPGRAY { 8 {} COMMONBITMAP } bind def /BEGINBITMAP2BIT { 2 {} COMMONBITMAP } bind def /COMMONBITMAP { /r exch def /d exch def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /h exch def /w exch def /bitmapsave save def r /is w d wbytes string def /cf currentfile def w h d [w 0 0 h neg 0 h] {cf is readhexstring pop} image bitmapsave restore grestore } bind def /ngrayt 256 array def /nredt 256 array def /nbluet 256 array def /ngreent 256 array def /gryt FMLOCAL /blut FMLOCAL /grnt FMLOCAL /redt FMLOCAL /indx FMLOCAL /cynu FMLOCAL /magu FMLOCAL /yelu FMLOCAL /k FMLOCAL /u FMLOCAL FMLevel1 { /colorsetup { currentcolortransfer /gryt exch def /blut exch def /grnt exch def /redt exch def 0 1 255 { /indx exch def /cynu 1 red indx get 255 div sub def /magu 1 green indx get 255 div sub def /yelu 1 blue indx get 255 div sub def /k cynu magu min yelu min def /u k currentundercolorremoval exec def % /u 0 def nredt indx 1 0 cynu u sub max sub redt exec put ngreent indx 1 0 magu u sub max sub grnt exec put nbluet indx 1 0 yelu u sub max sub blut exec put ngrayt indx 1 k currentblackgeneration exec sub gryt exec put } for {255 mul cvi nredt exch get} {255 mul cvi ngreent exch get} {255 mul cvi nbluet exch get} {255 mul cvi ngrayt exch get} setcolortransfer {pop 0} setundercolorremoval {} setblackgeneration } bind def } { /colorSetup2 { [ /Indexed /DeviceRGB 255 {dup red exch get 255 div exch dup green exch get 255 div exch blue exch get 255 div} ] setcolorspace } bind def } ifelse /tran FMLOCAL /fakecolorsetup { /tran 256 string def 0 1 255 {/indx exch def tran indx red indx get 77 mul green indx get 151 mul blue indx get 28 mul add add 256 idiv put} for currenttransfer {255 mul cvi tran exch get 255.0 div} exch concatprocs settransfer } bind def /BITMAPCOLOR { /d 8 def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /h exch def /w exch def /bitmapsave save def FMLevel1 { colorsetup /is w d wbytes string def /cf currentfile def w h d [w 0 0 h neg 0 h] {cf is readhexstring pop} {is} {is} true 3 colorimage } { colorSetup2 /is w d wbytes string def /cf currentfile def 7 dict dup begin /ImageType 1 def /Width w def /Height h def /ImageMatrix [w 0 0 h neg 0 h] def /DataSource {cf is readhexstring pop} bind def /BitsPerComponent d def /Decode [0 255] def end image } ifelse bitmapsave restore grestore } bind def /BITMAPCOLORc { /d 8 def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /h exch def /w exch def /lb w d wbytes def sl lb lt {lb ms} if /bitmapsave save def FMLevel1 { colorsetup /is im 0 lb getinterval def ws 0 lb getinterval is copy pop /cf currentfile def w h d [w 0 0 h neg 0 h] {ip} {is} {is} true 3 colorimage } { colorSetup2 /is im 0 lb getinterval def ws 0 lb getinterval is copy pop /cf currentfile def 7 dict dup begin /ImageType 1 def /Width w def /Height h def /ImageMatrix [w 0 0 h neg 0 h] def /DataSource {ip} bind def /BitsPerComponent d def /Decode [0 255] def end image } ifelse bitmapsave restore grestore } bind def /BITMAPTRUECOLORc { /d 24 def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /h exch def /w exch def /lb w d wbytes def sl lb lt {lb ms} if /bitmapsave save def /is im 0 lb getinterval def /ris im 0 w getinterval def /gis im w w getinterval def /bis im w 2 mul w getinterval def ws 0 lb getinterval is copy pop /cf currentfile def w h 8 [w 0 0 h neg 0 h] {w rip pop ris} {gis} {bis} true 3 colorimage bitmapsave restore grestore } bind def /BITMAPTRUECOLOR { gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /h exch def /w exch def /bitmapsave save def /is w string def /gis w string def /bis w string def /cf currentfile def w h 8 [w 0 0 h neg 0 h] { cf is readhexstring pop } { cf gis readhexstring pop } { cf bis readhexstring pop } true 3 colorimage bitmapsave restore grestore } bind def /BITMAPTRUEGRAYc { /d 24 def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /h exch def /w exch def /lb w d wbytes def sl lb lt {lb ms} if /bitmapsave save def /is im 0 lb getinterval def /ris im 0 w getinterval def /gis im w w getinterval def /bis im w 2 mul w getinterval def ws 0 lb getinterval is copy pop /cf currentfile def w h 8 [w 0 0 h neg 0 h] {w rip pop ris gis bis w gray} image bitmapsave restore grestore } bind def /ww FMLOCAL /r FMLOCAL /g FMLOCAL /b FMLOCAL /i FMLOCAL /gray { /ww exch def /b exch def /g exch def /r exch def 0 1 ww 1 sub { /i exch def r i get .299 mul g i get .587 mul b i get .114 mul add add r i 3 -1 roll floor cvi put } for r } bind def /BITMAPTRUEGRAY { gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /h exch def /w exch def /bitmapsave save def /is w string def /gis w string def /bis w string def /cf currentfile def w h 8 [w 0 0 h neg 0 h] { cf is readhexstring pop cf gis readhexstring pop cf bis readhexstring pop w gray} image bitmapsave restore grestore } bind def /BITMAPGRAY { 8 {fakecolorsetup} COMMONBITMAP } bind def /BITMAPGRAYc { 8 {fakecolorsetup} COMMONBITMAPc } bind def /ENDBITMAP { } bind def end /ALDsave FMLOCAL /ALDmatrix matrix def ALDmatrix currentmatrix pop /StartALD { /ALDsave save def savematrix ALDmatrix setmatrix } bind def /InALD { restorematrix } bind def /DoneALD { ALDsave restore } bind def /I { setdash } bind def /J { [] 0 setdash } bind def (4.0) FMVERSION 1 1 0 0 612 792 0 1 2 FMDOCUMENT 0 0 /Times-Roman FMFONTDEFINE 1 0 /Times-BoldItalic FMFONTDEFINE 32 FMFILLS 0 0 FMFILL 1 0.1 FMFILL 2 0.3 FMFILL 3 0.5 FMFILL 4 0.7 FMFILL 5 0.9 FMFILL 6 0.97 FMFILL 7 1 FMFILL 8 <0f1e3c78f0e1c387> FMFILL 9 <0f87c3e1f0783c1e> FMFILL 10 FMFILL 11 FMFILL 12 <8142241818244281> FMFILL 13 <03060c183060c081> FMFILL 14 <8040201008040201> FMFILL 16 1 FMFILL 17 0.9 FMFILL 18 0.7 FMFILL 19 0.5 FMFILL 20 0.3 FMFILL 21 0.1 FMFILL 22 0.03 FMFILL 23 0 FMFILL 24 FMFILL 25 FMFILL 26 <3333333333333333> FMFILL 27 <0000ffff0000ffff> FMFILL 28 <7ebddbe7e7dbbd7e> FMFILL 29 FMFILL 30 <7fbfdfeff7fbfdfe> FMFILL 612 792 1 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K J 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 45 225 693 693 R 45 225 693 693 R 549 495 549 477 648 477 648 459 4 Y 7 X 0 0 0 1 0 0 0 K V 651.31 470.54 648 459 644.69 470.54 648 470.54 4 Y 1 X V 549 495 549 477 648 477 648 470.54 4 L 0.5 H 2 Z N 459 342 504 378 R 3 H 0 X N 0 12 Q (1) 450 359.2 T 480.31 326.54 477 315 473.69 326.54 477 326.54 4 Y 1 X V 477 342 477 326.54 2 L 0.5 H N 530.85 351.67 539.99 360.01 536.66 348.1 533.76 349.88 4 Y 2 X V 270 325.77 36 18 504 360 A 213.9 402.15 216 414 220.5 402.84 217.2 402.49 4 Y V 194.82 270 36 45 252 414 A 513 491.6 558.94 527.6 R 3 H 0 X N (D) 530.61 508.1 T 585 500.6 666 500.6 2 L 0.5 H N 3 H 90 450 22.5 22.5 688.5 505.1 A (Host) 678.54 504.69 T 561.19 509.6 585 509.6 2 L 0.5 H N 1 F (LAN \050B\051) 587.03 519.42 T (DR \050\336rst hop router\051) 477 551.3 T 701.33 539.87 692.99 549 704.9 545.67 703.11 542.77 4 Y 2 X V 0 55.78 18 36 693 513 A 585 482.6 585 608.6 2 L 1 H 0 X N 603 540 693 567 9 RR 2 X N 0 F 0 X (for G) 612 546 T 596.53 545.69 585 549 596.53 552.31 596.53 549 4 Y 2 X V 603 549 596.53 549 2 L 0.5 H N 333 513 468 549 9 RR 0 X N (2. Create \050S,G\051 entry:) 342 537.42 T (incoming interface = {1}) 342 522.82 T 252 333 297 369 R 3 H N (C) 270 351 T 162 498 207 534 R N (A) 180 516 T (2) 219 504.82 T (1) 261 378.82 T 1 F (LAN \050A\051) 69 576.82 T (Rendezvous Point) 306 369.82 T (\050RP\051 for group G) 306 357.82 T 7 X 90 450 22.5 22.5 58.5 534 G 0 X 90 450 22.5 22.5 58.5 534 A 0 F (Host) 45 529.5 T 1 F (Receiver \050R\051) 39.75 498.75 T (Source \050S\051) 612 483.42 T 0 F (2) 306 335.6 T 261 369 207 513 2 L 0.5 H N (1) 151.97 520.85 T 513 504 477 378 2 L 1 H N 324 441 459 504 9 RR N 465.44 496.22 458.99 486.01 459.05 498.08 462.25 497.15 4 Y 2 X V 0.5 H 90 160.01 54 32.6 513 486 A 0 X (3. Encapsulate Data) 333 489.01 T (packets in Register) 333 476.25 T (messages and unicast to) 333 463.5 T (RP \050C\051) 333 450.74 T (1) 567 519.42 T (2) 495 486.82 T 9 405 216 468 9 RR N (5. If \050*,G\051 state exists then) 18 450 T (decapsulate Registers and) 36 432.82 T (forward packets out oif list of \050*,G\051) 36 417.82 T 279 261 423 315 9 RR N (7. Send Join/Prune) 287.57 302.46 T (2) 486 384.42 T (X) 477 357.42 T (Multicast-Address = G) 288 276.3 T (Join = {S}, Prune = NULL) 288 263.6 T 268.74 303.45 278.99 297.01 266.88 297.04 267.81 300.24 4 Y 2 X V 180 245.52 27 36 279 333 A 450 261 594 315 9 RR 0 X N (8. Create \050S,G\051 entry:) 459.54 306 T (outgoing interface list = {1}) 459.53 288.82 T (incoming interface = {2}) 459 271.22 T 540 333 684 387 9 RR N (9. Send Join/Prune) 549 374.6 T (message to D:) 549 362.6 T (Multicast-Address = G) 549 350.6 T (Join = {S}, Prune = NULL) 549 338.6 T 504 423 630 468 9 RR N 525.31 479.54 522 468 518.69 479.54 522 479.54 4 Y 1 X V 522 491.6 522 479.54 2 L N 0 X (10. Update \050S,G\051 entry:) 513 457.39 T (add {2} to outgoing) 521.46 443.6 T 0 301.78 220.73 382.78 9 RR N (6. If Register data rate > Threshold) 10.93 365.23 T (then create \050S,G\051 entry:) 10.93 354.1 T (outgoing interface list = oif list of \050*,G\051-{2}) 8.2 342.52 T (incoming interface = {2}) 8.2 331.39 T (RPT) 10.03 311.6 T (-bit = 0, SPT) 30.94 311.6 T (-bit = 0) 91.94 311.6 T 114 576 114 486 2 L N 159 513 114 513 2 L N 78 531 114 531 2 L N 479.54 518.69 468 522 479.54 525.31 479.54 522 4 Y 1 X V 513 522 479.54 522 2 L N 0 X (1. Data packets) 612 558 T 459 351 297 351 2 L N 228.3 287.09 216 288.01 226.92 293.74 227.61 290.42 4 Y 2 X V 288.82 360 36 45 216 333 A 27 243 234 288 18 RR 0 X N (1) 36 275.6 T (1. When receive \050S,G\051 unencapsulated) 41.56 275.6 T (packets set SPT) 36 263.6 T (-bit for \050S,G\051 entry) 110.89 263.6 T (,) 200.76 263.6 T 236.54 334.47 225 337.78 236.54 341.09 236.54 337.78 4 Y 1 X V 252 337.78 236.54 337.78 2 L N 0 X (message to X:) 287.57 290.46 T (and trigger Register) 36 251.6 T (-Stop message to D) 131.08 251.6 T (interface list) 521.46 431.6 T 639 396 738 459 18 RR 7 X V 0 X N (12. When receive) 648 441 T (Register) 648 429 T (-Stop:) 687.76 429 T (restart Register) 648 417 T (-) 720.74 417 T 270 396 396 432 18 RR 7 X V 0 X N (4. Initiate \050S,G\051 packet) 279 414 T (counter) 279 402 T 284.69 384.46 288 396 291.31 384.46 288 384.46 4 Y 1 X V 288 369 288 384.46 2 L N 1 F 0 X (for LAN \050B\051) 477 540.82 T 0 F (Suppression-timer) 648 405 T FMENDPAGE %%EndDocument @endspecial 1032 1884 a(Figure)30 b(2:)41 b(Example:)f(a)30 b(host)h(sending)e(to)i(a)g(group)1226 1997 y(Actions)f(are)h(n)m(um)m (b)s(ered)e(in)g(the)h(order)g(they)h(o)s(ccur)17 2272 y(Eac)m(h)48 b(upstream)e(router)h(creates)i(or)f(up)s(dates)e(its)h(m) m(ulticast)g(route)g(en)m(try)h(for)f(\(*,G\))i(when)d(it)h(receiv)m (es)h(a)-125 2385 y(Join/Prune)42 b(with)g(the)h(RPT-bit)f(and)g(W)m (C-bit)h(set.)79 b(The)43 b(in)m(terface)h(on)f(whic)m(h)e(the)j (Join/Prune)d(message)j(ar-)-125 2498 y(riv)m(ed)27 b(is)g(added)g(to)i (the)f(list)e(of)i(outgoing)g(in)m(terfaces)h(\(oifs\))e(for)h (\(*,G\).)i(Based)e(on)g(this)e(en)m(try)i(eac)m(h)h(upstream)f(router) -125 2611 y(b)s(et)m(w)m(een)h(the)g(receiv)m(er)g(and)e(the)i(RP)f (sends)f(a)i(Join/Prune)d(message)j(in)e(whic)m(h)g(the)i(join)e(list)g (includes)f(the)i(RP)-8 b(.)29 b(The)-125 2724 y(pac)m(k)m(et)k(pa)m (yload)d(con)m(tains)h(Multicast-Address=G,)e(Join=)p Fd(f)p Fk(RP)-8 b(,W)m(C-bit,RPT-bit)p Fd(g)p Fk(,)30 b(Prune=NULL.)-125 2967 y Fe(2.3)113 b(Hosts)37 b(sending)g(to)g(a)h (group)-125 3139 y Fk(When)32 b(a)f(host)h(starts)f(sending)f(m)m (ulticast)h(data)h(pac)m(k)m(ets)h(to)f(a)g(group,)f(initially)d(its)j (DR)h(m)m(ust)f(deliv)m(er)f(eac)m(h)i(pac)m(k)m(et)-125 3252 y(to)h(the)f(RP)f(for)h(distribution)c(do)m(wn)j(the)h(RP-tree)h (\(see)f(\014gure)f(2\).)46 b(The)31 b(sender's)g(DR)h(initially)d (encapsulates)i(eac)m(h)-125 3365 y(data)j(pac)m(k)m(et)g(in)d(a)i (Register)g(message)g(and)f(unicasts)f(it)h(to)i(the)e(RP)g(for)g(that) i(group.)46 b(The)32 b(RP)g(decapsulates)g(eac)m(h)-125 3478 y(Register)e(message)h(and)e(forw)m(ards)g(the)h(enclosed)f(data)h (pac)m(k)m(et)i(nativ)m(ely)d(to)h(do)m(wnstream)g(mem)m(b)s(ers)f(on)g (the)h(shared)-125 3591 y(RP-tree.)17 3703 y(If)h(the)h(data)h(rate)f (of)g(the)h(source)f(w)m(arran)m(ts)g(the)g(use)g(of)g(a)g(source-sp)s (eci\014c)f(shortest)h(path)g(tree)h(\(SPT\),)f(the)g(RP)-125 3816 y(ma)m(y)k(construct)f(a)g(new)f(m)m(ulticast)g(route)h(en)m(try)g (that)g(is)f(sp)s(eci\014c)f(to)j(the)e(source,)i(hereafter)g(referred) d(to)j(as)f(\(S,G\))-125 3929 y(state,)30 b(and)d(send)f(p)s(erio)s (dic)f(Join/Prune)g(messages)j(to)m(w)m(ard)g(the)g(source.)40 b(Note)28 b(that)g(o)m(v)m(er)g(time,)g(the)g(rules)d(for)i(when)-125 4042 y(to)i(switc)m(h)f(can)h(b)s(e)e(mo)s(di\014ed)f(without)h(global) h(co)s(ordination.)39 b(When)28 b(and)f(if)g(the)i(RP)f(do)s(es)g (switc)m(h)f(to)i(the)g(SPT,)e(the)-125 4155 y(routers)g(b)s(et)m(w)m (een)h(the)f(source)g(and)f(the)h(RP)g(build)d(and)i(main)m(tain)g (\(S,G\))i(state)g(in)e(resp)s(onse)g(to)i(these)f(messages)h(and)-125 4268 y(send)i(\(S,G\))h(messages)h(upstream)d(to)m(w)m(ard)j(the)e (source.)17 4381 y(The)f(source's)g(DR)h(m)m(ust)g(stop)f (encapsulating)g(data)h(pac)m(k)m(ets)h(in)d(Registers)i(when)e(\(and)i (so)f(long)h(as\))g(it)f(receiv)m(es)-125 4494 y(Register-Stop)34 b(messages)h(from)e(the)g(RP)-8 b(.)34 b(The)f(RP)g(triggers)g (Register-Stop)h(messages)g(in)e(resp)s(onse)h(to)h(Registers,)-125 4607 y(if)j(the)h(RP)f(has)g(no)g(do)m(wnstream)h(receiv)m(ers)g(for)f (the)h(group)f(\(or)h(for)f(that)h(particular)e(source\),)k(or)d(if)g (the)g(RP)h(has)-125 4720 y(already)f(joined)e(the)i(\(S,G\))h(tree)g (and)e(is)g(receiving)g(the)h(data)g(pac)m(k)m(ets)i(nativ)m(ely)-8 b(.)60 b(Eac)m(h)37 b(source's)g(DR)g(main)m(tains,)-125 4833 y(p)s(er)29 b(\(S,G\),)h(a)g(Register-Suppression-timer.)37 b(The)29 b(Register-Suppression-timer)d(is)j(started)g(b)m(y)h(the)f (Register-Stop)-125 4945 y(message;)48 b(up)s(on)39 b(expiration,)j (the)f(source's)g(DR)g(resumes)f(sending)f(data)i(pac)m(k)m(ets)i(to)e (the)g(RP)-8 b(,)41 b(encapsulated)g(in)-125 5058 y(Register)31 b(messages.)p eop %%Page: 6 7 6 6 bop -125 -149 a Fh(draft-ietf-idmr-PIM-SM-sp)s(ec-10.ps)2718 b Fk(6)-125 1738 y @beginspecial 340 @voffset 60 @hoffset 60 @vscale 60 @hscale 270 @angle @setspecial %%BeginDocument: example.3.ps % % Frame ps_prolog 4.0, for use with Frame 4.0 products % This ps_prolog file is Copyright (c) 1986-1993 Frame Technology % Corporation. All rights reserved. This ps_prolog file may be % freely copied and distributed in conjunction with documents created % using FrameMaker, FrameBuilder and FrameViewer as long as this % copyright notice is preserved. % % Frame products normally print colors as their true color on a color printer % or as shades of gray, based on luminance, on a black-and white printer. The % following flag, if set to True, forces all non-white colors to print as pure % black. This has no effect on bitmap images. /FMPrintAllColorsAsBlack false def % % Frame products can either set their own line screens or use a printer's % default settings. Three flags below control this separately for no % separations, spot separations and process separations. If a flag % is true, then the default printer settings will not be changed. If it is % false, Frame products will use their own settings from a table based on % the printer's resolution. /FMUseDefaultNoSeparationScreen true def /FMUseDefaultSpotSeparationScreen true def /FMUseDefaultProcessSeparationScreen false def % % For any given PostScript printer resolution, Frame products have two sets of % screen angles and frequencies for printing process separations, which are % recomended by Adobe. The following variable chooses the higher frequencies % when set to true or the lower frequencies when set to false. This is only % effective if the appropriate FMUseDefault...SeparationScreen flag is false. /FMUseHighFrequencyScreens true def % % PostScript Level 2 printers contain an "Accurate Screens" feature which can % improve process separation rendering at the expense of compute time. This % flag is ignored by PostScript Level 1 printers. /FMUseAcccurateScreens true def % % The following PostScript procedure defines the spot function that Frame % products will use for process separations. You may un-comment-out one of % the alternative functions below, or use your own. % % Dot function /FMSpotFunction {abs exch abs 2 copy add 1 gt {1 sub dup mul exch 1 sub dup mul add 1 sub } {dup mul exch dup mul add 1 exch sub }ifelse } def % % Line function % /FMSpotFunction { pop } def % % Elipse function % /FMSpotFunction { dup 5 mul 8 div mul exch dup mul exch add % sqrt 1 exch sub } def % % /FMversion (4.0) def /FMLevel1 /languagelevel where {pop languagelevel} {1} ifelse 2 lt def /FMPColor FMLevel1 { false /colorimage where {pop pop true} if } { true } ifelse def /FrameDict 400 dict def systemdict /errordict known not {/errordict 10 dict def errordict /rangecheck {stop} put} if % The readline in PS 23.0 doesn't recognize cr's as nl's on AppleTalk FrameDict /tmprangecheck errordict /rangecheck get put errordict /rangecheck {FrameDict /bug true put} put FrameDict /bug false put mark % Some PS machines read past the CR, so keep the following 3 lines together! currentfile 5 string readline 00 0000000000 cleartomark errordict /rangecheck FrameDict /tmprangecheck get put FrameDict /bug get { /readline { /gstring exch def /gfile exch def /gindex 0 def { gfile read pop dup 10 eq {exit} if dup 13 eq {exit} if gstring exch gindex exch put /gindex gindex 1 add def } loop pop gstring 0 gindex getinterval true } bind def } if /FMshowpage /showpage load def /FMquit /quit load def /FMFAILURE { dup = flush FMshowpage /Helvetica findfont 12 scalefont setfont 72 200 moveto show FMshowpage FMquit } def /FMVERSION { FMversion ne { (Frame product version does not match ps_prolog!) FMFAILURE } if } def /FMBADEPSF { (PostScript Lang. Ref. Man., 2nd Ed., H.2.4 says EPS must not call X ) dup dup (X) search pop exch pop exch pop length 4 -1 roll putinterval FMFAILURE } def /FMLOCAL { FrameDict begin 0 def end } def /concatprocs { /proc2 exch cvlit def/proc1 exch cvlit def/newproc proc1 length proc2 length add array def newproc 0 proc1 putinterval newproc proc1 length proc2 putinterval newproc cvx }def FrameDict begin /FMnone 0 def /FMcyan 1 def /FMmagenta 2 def /FMyellow 3 def /FMblack 4 def /FMcustom 5 def /FrameNegative false def /FrameSepIs FMnone def /FrameSepBlack 0 def /FrameSepYellow 0 def /FrameSepMagenta 0 def /FrameSepCyan 0 def /FrameSepRed 1 def /FrameSepGreen 1 def /FrameSepBlue 1 def /FrameCurGray 1 def /FrameCurPat null def /FrameCurColors [ 0 0 0 1 0 0 0 ] def /FrameColorEpsilon .001 def /eqepsilon { sub dup 0 lt {neg} if FrameColorEpsilon le } bind def /FrameCmpColorsCMYK { 2 copy 0 get exch 0 get eqepsilon { 2 copy 1 get exch 1 get eqepsilon { 2 copy 2 get exch 2 get eqepsilon { 3 get exch 3 get eqepsilon } {pop pop false} ifelse }{pop pop false} ifelse } {pop pop false} ifelse } bind def /FrameCmpColorsRGB { 2 copy 4 get exch 0 get eqepsilon { 2 copy 5 get exch 1 get eqepsilon { 6 get exch 2 get eqepsilon }{pop pop false} ifelse } {pop pop false} ifelse } bind def /RGBtoCMYK { 1 exch sub 3 1 roll 1 exch sub 3 1 roll 1 exch sub 3 1 roll 3 copy 2 copy le { pop } { exch pop } ifelse 2 copy le { pop } { exch pop } ifelse dup dup dup 6 1 roll 4 1 roll 7 1 roll sub 6 1 roll sub 5 1 roll sub 4 1 roll } bind def /CMYKtoRGB { dup dup 4 -1 roll add 5 1 roll 3 -1 roll add 4 1 roll add 1 exch sub dup 0 lt {pop 0} if 3 1 roll 1 exch sub dup 0 lt {pop 0} if exch 1 exch sub dup 0 lt {pop 0} if exch } bind def /FrameSepInit { 1.0 RealSetgray } bind def /FrameSetSepColor { /FrameSepBlue exch def /FrameSepGreen exch def /FrameSepRed exch def /FrameSepBlack exch def /FrameSepYellow exch def /FrameSepMagenta exch def /FrameSepCyan exch def /FrameSepIs FMcustom def setCurrentScreen } bind def /FrameSetCyan { /FrameSepBlue 1.0 def /FrameSepGreen 1.0 def /FrameSepRed 0.0 def /FrameSepBlack 0.0 def /FrameSepYellow 0.0 def /FrameSepMagenta 0.0 def /FrameSepCyan 1.0 def /FrameSepIs FMcyan def setCurrentScreen } bind def /FrameSetMagenta { /FrameSepBlue 1.0 def /FrameSepGreen 0.0 def /FrameSepRed 1.0 def /FrameSepBlack 0.0 def /FrameSepYellow 0.0 def /FrameSepMagenta 1.0 def /FrameSepCyan 0.0 def /FrameSepIs FMmagenta def setCurrentScreen } bind def /FrameSetYellow { /FrameSepBlue 0.0 def /FrameSepGreen 1.0 def /FrameSepRed 1.0 def /FrameSepBlack 0.0 def /FrameSepYellow 1.0 def /FrameSepMagenta 0.0 def /FrameSepCyan 0.0 def /FrameSepIs FMyellow def setCurrentScreen } bind def /FrameSetBlack { /FrameSepBlue 0.0 def /FrameSepGreen 0.0 def /FrameSepRed 0.0 def /FrameSepBlack 1.0 def /FrameSepYellow 0.0 def /FrameSepMagenta 0.0 def /FrameSepCyan 0.0 def /FrameSepIs FMblack def setCurrentScreen } bind def /FrameNoSep { /FrameSepIs FMnone def setCurrentScreen } bind def /FrameSetSepColors { FrameDict begin [ exch 1 add 1 roll ] /FrameSepColors exch def end } bind def /FrameColorInSepListCMYK { FrameSepColors { exch dup 3 -1 roll FrameCmpColorsCMYK { pop true exit } if } forall dup true ne {pop false} if } bind def /FrameColorInSepListRGB { FrameSepColors { exch dup 3 -1 roll FrameCmpColorsRGB { pop true exit } if } forall dup true ne {pop false} if } bind def /RealSetgray /setgray load def /RealSetrgbcolor /setrgbcolor load def /RealSethsbcolor /sethsbcolor load def end /setgray { FrameDict begin FrameSepIs FMnone eq { RealSetgray } { FrameSepIs FMblack eq { RealSetgray } { FrameSepIs FMcustom eq FrameSepRed 0 eq and FrameSepGreen 0 eq and FrameSepBlue 0 eq and { RealSetgray } { 1 RealSetgray pop } ifelse } ifelse } ifelse end } bind def /setrgbcolor { FrameDict begin FrameSepIs FMnone eq { RealSetrgbcolor } { 3 copy [ 4 1 roll ] FrameColorInSepListRGB { FrameSepBlue eq exch FrameSepGreen eq and exch FrameSepRed eq and { 0 } { 1 } ifelse } { FMPColor { RealSetrgbcolor currentcmykcolor } { RGBtoCMYK } ifelse FrameSepIs FMblack eq {1.0 exch sub 4 1 roll pop pop pop} { FrameSepIs FMyellow eq {pop 1.0 exch sub 3 1 roll pop pop} { FrameSepIs FMmagenta eq {pop pop 1.0 exch sub exch pop } { FrameSepIs FMcyan eq {pop pop pop 1.0 exch sub } {pop pop pop pop 1} ifelse } ifelse } ifelse } ifelse } ifelse RealSetgray } ifelse end } bind def /sethsbcolor { FrameDict begin FrameSepIs FMnone eq { RealSethsbcolor } { RealSethsbcolor currentrgbcolor setrgbcolor } ifelse end } bind def FrameDict begin /setcmykcolor where { pop /RealSetcmykcolor /setcmykcolor load def } { /RealSetcmykcolor { 4 1 roll 3 { 3 index add 0 max 1 min 1 exch sub 3 1 roll} repeat setrgbcolor pop } bind def } ifelse userdict /setcmykcolor { FrameDict begin FrameSepIs FMnone eq { RealSetcmykcolor } { 4 copy [ 5 1 roll ] FrameColorInSepListCMYK { FrameSepBlack eq exch FrameSepYellow eq and exch FrameSepMagenta eq and exch FrameSepCyan eq and { 0 } { 1 } ifelse } { FrameSepIs FMblack eq {1.0 exch sub 4 1 roll pop pop pop} { FrameSepIs FMyellow eq {pop 1.0 exch sub 3 1 roll pop pop} { FrameSepIs FMmagenta eq {pop pop 1.0 exch sub exch pop } { FrameSepIs FMcyan eq {pop pop pop 1.0 exch sub } {pop pop pop pop 1} ifelse } ifelse } ifelse } ifelse } ifelse RealSetgray } ifelse end } bind put FMLevel1 not { /patProcDict 5 dict dup begin <0f1e3c78f0e1c387> { 3 setlinewidth -1 -1 moveto 9 9 lineto stroke 4 -4 moveto 12 4 lineto stroke -4 4 moveto 4 12 lineto stroke} bind def <0f87c3e1f0783c1e> { 3 setlinewidth -1 9 moveto 9 -1 lineto stroke -4 4 moveto 4 -4 lineto stroke 4 12 moveto 12 4 lineto stroke} bind def <8142241818244281> { 1 setlinewidth -1 9 moveto 9 -1 lineto stroke -1 -1 moveto 9 9 lineto stroke } bind def <03060c183060c081> { 1 setlinewidth -1 -1 moveto 9 9 lineto stroke 4 -4 moveto 12 4 lineto stroke -4 4 moveto 4 12 lineto stroke} bind def <8040201008040201> { 1 setlinewidth -1 9 moveto 9 -1 lineto stroke -4 4 moveto 4 -4 lineto stroke 4 12 moveto 12 4 lineto stroke} bind def end def /patDict 15 dict dup begin /PatternType 1 def /PaintType 2 def /TilingType 3 def /BBox [ 0 0 8 8 ] def /XStep 8 def /YStep 8 def /PaintProc { begin patProcDict bstring known { patProcDict bstring get exec } { 8 8 true [1 0 0 -1 0 8] bstring imagemask } ifelse end } bind def end def } if /combineColor { FrameSepIs FMnone eq { graymode FMLevel1 or not { [/Pattern [/DeviceCMYK]] setcolorspace FrameCurColors 0 4 getinterval aload pop FrameCurPat setcolor } { FrameCurColors 3 get 1.0 ge { FrameCurGray RealSetgray } { FMPColor graymode and { 0 1 3 { FrameCurColors exch get 1 FrameCurGray sub mul } for RealSetcmykcolor } { 4 1 6 { FrameCurColors exch get graymode { 1 exch sub 1 FrameCurGray sub mul 1 exch sub } { 1.0 lt {FrameCurGray} {1} ifelse } ifelse } for RealSetrgbcolor } ifelse } ifelse } ifelse } { FrameCurColors 0 4 getinterval aload FrameColorInSepListCMYK { FrameSepBlack eq exch FrameSepYellow eq and exch FrameSepMagenta eq and exch FrameSepCyan eq and FrameSepIs FMcustom eq and { FrameCurGray } { 1 } ifelse } { FrameSepIs FMblack eq {FrameCurGray 1.0 exch sub mul 1.0 exch sub 4 1 roll pop pop pop} { FrameSepIs FMyellow eq {pop FrameCurGray 1.0 exch sub mul 1.0 exch sub 3 1 roll pop pop} { FrameSepIs FMmagenta eq {pop pop FrameCurGray 1.0 exch sub mul 1.0 exch sub exch pop } { FrameSepIs FMcyan eq {pop pop pop FrameCurGray 1.0 exch sub mul 1.0 exch sub } {pop pop pop pop 1} ifelse } ifelse } ifelse } ifelse } ifelse graymode FMLevel1 or not { [/Pattern [/DeviceGray]] setcolorspace FrameCurPat setcolor } { graymode not FMLevel1 and { dup 1 lt {pop FrameCurGray} if } if RealSetgray } ifelse } ifelse } bind def /savematrix { orgmatrix currentmatrix pop } bind def /restorematrix { orgmatrix setmatrix } bind def /dmatrix matrix def /dpi 72 0 dmatrix defaultmatrix dtransform dup mul exch dup mul add sqrt def /freq dpi dup 72 div round dup 0 eq {pop 1} if 8 mul div def /sangle 1 0 dmatrix defaultmatrix dtransform exch atan def /dpiranges [ 2540 2400 1693 1270 1200 635 600 0 ] def /CMLowFreqs [ 100.402 94.8683 89.2289 100.402 94.8683 66.9349 63.2456 47.4342 ] def /YLowFreqs [ 95.25 90.0 84.65 95.25 90.0 70.5556 66.6667 50.0 ] def /KLowFreqs [ 89.8026 84.8528 79.8088 89.8026 84.8528 74.8355 70.7107 53.033 ] def /CLowAngles [ 71.5651 71.5651 71.5651 71.5651 71.5651 71.5651 71.5651 71.5651 ] def /MLowAngles [ 18.4349 18.4349 18.4349 18.4349 18.4349 18.4349 18.4349 18.4349 ] def /YLowTDot [ true true false true true false false false ] def /CMHighFreqs [ 133.87 126.491 133.843 108.503 102.523 100.402 94.8683 63.2456 ] def /YHighFreqs [ 127.0 120.0 126.975 115.455 109.091 95.25 90.0 60.0 ] def /KHighFreqs [ 119.737 113.137 119.713 128.289 121.218 89.8026 84.8528 63.6395 ] def /CHighAngles [ 71.5651 71.5651 71.5651 70.0169 70.0169 71.5651 71.5651 71.5651 ] def /MHighAngles [ 18.4349 18.4349 18.4349 19.9831 19.9831 18.4349 18.4349 18.4349 ] def /YHighTDot [ false false true false false true true false ] def /PatFreq [ 10.5833 10.0 9.4055 10.5833 10.0 10.5833 10.0 9.375 ] def /screenIndex { 0 1 dpiranges length 1 sub { dup dpiranges exch get 1 sub dpi le {exit} {pop} ifelse } for } bind def /getCyanScreen { FMUseHighFrequencyScreens { CHighAngles CMHighFreqs} {CLowAngles CMLowFreqs} ifelse screenIndex dup 3 1 roll get 3 1 roll get /FMSpotFunction load } bind def /getMagentaScreen { FMUseHighFrequencyScreens { MHighAngles CMHighFreqs } {MLowAngles CMLowFreqs} ifelse screenIndex dup 3 1 roll get 3 1 roll get /FMSpotFunction load } bind def /getYellowScreen { FMUseHighFrequencyScreens { YHighTDot YHighFreqs} { YLowTDot YLowFreqs } ifelse screenIndex dup 3 1 roll get 3 1 roll get { 3 div {2 { 1 add 2 div 3 mul dup floor sub 2 mul 1 sub exch} repeat FMSpotFunction } } {/FMSpotFunction load } ifelse 0.0 exch } bind def /getBlackScreen { FMUseHighFrequencyScreens { KHighFreqs } { KLowFreqs } ifelse screenIndex get 45.0 /FMSpotFunction load } bind def /getSpotScreen { getBlackScreen } bind def /getCompositeScreen { getBlackScreen } bind def /FMSetScreen FMLevel1 { /setscreen load }{ { 8 dict begin /HalftoneType 1 def /SpotFunction exch def /Angle exch def /Frequency exch def /AccurateScreens FMUseAcccurateScreens def currentdict end sethalftone } bind } ifelse def /setDefaultScreen { FMPColor { orgrxfer cvx orggxfer cvx orgbxfer cvx orgxfer cvx setcolortransfer } { orgxfer cvx settransfer } ifelse orgfreq organgle orgproc cvx setscreen } bind def /setCurrentScreen { FrameSepIs FMnone eq { FMUseDefaultNoSeparationScreen { setDefaultScreen } { getCompositeScreen FMSetScreen } ifelse } { FrameSepIs FMcustom eq { FMUseDefaultSpotSeparationScreen { setDefaultScreen } { getSpotScreen FMSetScreen } ifelse } { FMUseDefaultProcessSeparationScreen { setDefaultScreen } { FrameSepIs FMcyan eq { getCyanScreen FMSetScreen } { FrameSepIs FMmagenta eq { getMagentaScreen FMSetScreen } { FrameSepIs FMyellow eq { getYellowScreen FMSetScreen } { getBlackScreen FMSetScreen } ifelse } ifelse } ifelse } ifelse } ifelse } ifelse } bind def end /gstring FMLOCAL /gfile FMLOCAL /gindex FMLOCAL /orgrxfer FMLOCAL /orggxfer FMLOCAL /orgbxfer FMLOCAL /orgxfer FMLOCAL /orgproc FMLOCAL /orgrproc FMLOCAL /orggproc FMLOCAL /orgbproc FMLOCAL /organgle FMLOCAL /orgrangle FMLOCAL /orggangle FMLOCAL /orgbangle FMLOCAL /orgfreq FMLOCAL /orgrfreq FMLOCAL /orggfreq FMLOCAL /orgbfreq FMLOCAL /yscale FMLOCAL /xscale FMLOCAL /edown FMLOCAL /manualfeed FMLOCAL /paperheight FMLOCAL /paperwidth FMLOCAL /FMDOCUMENT { array /FMfonts exch def /#copies exch def FrameDict begin 0 ne /manualfeed exch def /paperheight exch def /paperwidth exch def 0 ne /FrameNegative exch def 0 ne /edown exch def /yscale exch def /xscale exch def FMLevel1 { manualfeed {setmanualfeed} if /FMdicttop countdictstack 1 add def /FMoptop count def setpapername manualfeed {true} {papersize} ifelse {manualpapersize} {false} ifelse {desperatepapersize} {false} ifelse { (Can't select requested paper size for Frame print job!) FMFAILURE } if count -1 FMoptop {pop pop} for countdictstack -1 FMdicttop {pop end} for } {{}stopped { (Can't select requested paper size for Frame print job!) FMFAILURE } if { } stopped pop } ifelse FMPColor { currentcolorscreen cvlit /orgproc exch def /organgle exch def /orgfreq exch def cvlit /orgbproc exch def /orgbangle exch def /orgbfreq exch def cvlit /orggproc exch def /orggangle exch def /orggfreq exch def cvlit /orgrproc exch def /orgrangle exch def /orgrfreq exch def currentcolortransfer FrameNegative { 1 1 4 { pop { 1 exch sub } concatprocs 4 1 roll } for 4 copy setcolortransfer } if cvlit /orgxfer exch def cvlit /orgbxfer exch def cvlit /orggxfer exch def cvlit /orgrxfer exch def } { currentscreen cvlit /orgproc exch def /organgle exch def /orgfreq exch def currenttransfer FrameNegative { { 1 exch sub } concatprocs dup settransfer } if cvlit /orgxfer exch def } ifelse end } def /pagesave FMLOCAL /orgmatrix FMLOCAL /landscape FMLOCAL /pwid FMLOCAL /FMBEGINPAGE { FrameDict begin /pagesave save def 3.86 setmiterlimit /landscape exch 0 ne def landscape { 90 rotate 0 exch dup /pwid exch def neg translate pop }{ pop /pwid exch def } ifelse edown { [-1 0 0 1 pwid 0] concat } if xscale yscale scale /orgmatrix matrix def gsave } def /FMENDPAGE { grestore pagesave restore end showpage } def /FMFONTDEFINE { FrameDict begin findfont ReEncode 1 index exch definefont FMfonts 3 1 roll put end } def /FMFILLS { FrameDict begin dup array /fillvals exch def dict /patCache exch def end } def /FMFILL { FrameDict begin fillvals 3 1 roll put end } def /FMNORMALIZEGRAPHICS { newpath 0.0 0.0 moveto 1 setlinewidth 0 setlinecap 0 0 0 sethsbcolor 0 setgray } bind def /fx FMLOCAL /fy FMLOCAL /fh FMLOCAL /fw FMLOCAL /llx FMLOCAL /lly FMLOCAL /urx FMLOCAL /ury FMLOCAL /FMBEGINEPSF { end /FMEPSF save def /showpage {} def % See Adobe's "PostScript Language Reference Manual, 2nd Edition", page 714. % "...the following operators MUST NOT be used in an EPS file:" (emphasis ours) /banddevice {(banddevice) FMBADEPSF} def /clear {(clear) FMBADEPSF} def /cleardictstack {(cleardictstack) FMBADEPSF} def /copypage {(copypage) FMBADEPSF} def /erasepage {(erasepage) FMBADEPSF} def /exitserver {(exitserver) FMBADEPSF} def /framedevice {(framedevice) FMBADEPSF} def /grestoreall {(grestoreall) FMBADEPSF} def /initclip {(initclip) FMBADEPSF} def /initgraphics {(initgraphics) FMBADEPSF} def /initmatrix {(initmatrix) FMBADEPSF} def /quit {(quit) FMBADEPSF} def /renderbands {(renderbands) FMBADEPSF} def /setglobal {(setglobal) FMBADEPSF} def /setpagedevice {(setpagedevice) FMBADEPSF} def /setshared {(setshared) FMBADEPSF} def /startjob {(startjob) FMBADEPSF} def /lettertray {(lettertray) FMBADEPSF} def /letter {(letter) FMBADEPSF} def /lettersmall {(lettersmall) FMBADEPSF} def /11x17tray {(11x17tray) FMBADEPSF} def /11x17 {(11x17) FMBADEPSF} def /ledgertray {(ledgertray) FMBADEPSF} def /ledger {(ledger) FMBADEPSF} def /legaltray {(legaltray) FMBADEPSF} def /legal {(legal) FMBADEPSF} def /statementtray {(statementtray) FMBADEPSF} def /statement {(statement) FMBADEPSF} def /executivetray {(executivetray) FMBADEPSF} def /executive {(executive) FMBADEPSF} def /a3tray {(a3tray) FMBADEPSF} def /a3 {(a3) FMBADEPSF} def /a4tray {(a4tray) FMBADEPSF} def /a4 {(a4) FMBADEPSF} def /a4small {(a4small) FMBADEPSF} def /b4tray {(b4tray) FMBADEPSF} def /b4 {(b4) FMBADEPSF} def /b5tray {(b5tray) FMBADEPSF} def /b5 {(b5) FMBADEPSF} def FMNORMALIZEGRAPHICS [/fy /fx /fh /fw /ury /urx /lly /llx] {exch def} forall fx fw 2 div add fy fh 2 div add translate rotate fw 2 div neg fh 2 div neg translate fw urx llx sub div fh ury lly sub div scale llx neg lly neg translate /FMdicttop countdictstack 1 add def /FMoptop count def } bind def /FMENDEPSF { count -1 FMoptop {pop pop} for countdictstack -1 FMdicttop {pop end} for FMEPSF restore FrameDict begin } bind def FrameDict begin /setmanualfeed { statusdict /manualfeed true put } bind def /max {2 copy lt {exch} if pop} bind def /min {2 copy gt {exch} if pop} bind def /inch {72 mul} def /pagedimen { paperheight sub abs 16 lt exch paperwidth sub abs 16 lt and {/papername exch def} {pop} ifelse } bind def /papersizedict FMLOCAL /setpapername { /papersizedict 14 dict def papersizedict begin /papername /unknown def /Letter 8.5 inch 11.0 inch pagedimen /LetterSmall 7.68 inch 10.16 inch pagedimen /Tabloid 11.0 inch 17.0 inch pagedimen /Ledger 17.0 inch 11.0 inch pagedimen /Legal 8.5 inch 14.0 inch pagedimen /Statement 5.5 inch 8.5 inch pagedimen /Executive 7.5 inch 10.0 inch pagedimen /A3 11.69 inch 16.5 inch pagedimen /A4 8.26 inch 11.69 inch pagedimen /A4Small 7.47 inch 10.85 inch pagedimen /B4 10.125 inch 14.33 inch pagedimen /B5 7.16 inch 10.125 inch pagedimen end } bind def /papersize { papersizedict begin /Letter {lettertray letter} def /LetterSmall {lettertray lettersmall} def /Tabloid {11x17tray 11x17} def /Ledger {ledgertray ledger} def /Legal {legaltray legal} def /Statement {statementtray statement} def /Executive {executivetray executive} def /A3 {a3tray a3} def /A4 {a4tray a4} def /A4Small {a4tray a4small} def /B4 {b4tray b4} def /B5 {b5tray b5} def /unknown {unknown} def papersizedict dup papername known {papername} {/unknown} ifelse get end statusdict begin stopped end } bind def /manualpapersize { papersizedict begin /Letter {letter} def /LetterSmall {lettersmall} def /Tabloid {11x17} def /Ledger {ledger} def /Legal {legal} def /Statement {statement} def /Executive {executive} def /A3 {a3} def /A4 {a4} def /A4Small {a4small} def /B4 {b4} def /B5 {b5} def /unknown {unknown} def papersizedict dup papername known {papername} {/unknown} ifelse get end stopped } bind def /desperatepapersize { statusdict /setpageparams known { paperwidth paperheight 0 1 statusdict begin {setpageparams} stopped end } {true} ifelse } bind def /DiacriticEncoding [ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quotesingle /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /grave /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef /Adieresis /Aring /Ccedilla /Eacute /Ntilde /Odieresis /Udieresis /aacute /agrave /acircumflex /adieresis /atilde /aring /ccedilla /eacute /egrave /ecircumflex /edieresis /iacute /igrave /icircumflex /idieresis /ntilde /oacute /ograve /ocircumflex /odieresis /otilde /uacute /ugrave /ucircumflex /udieresis /dagger /.notdef /cent /sterling /section /bullet /paragraph /germandbls /registered /copyright /trademark /acute /dieresis /.notdef /AE /Oslash /.notdef /.notdef /.notdef /.notdef /yen /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /ordfeminine /ordmasculine /.notdef /ae /oslash /questiondown /exclamdown /logicalnot /.notdef /florin /.notdef /.notdef /guillemotleft /guillemotright /ellipsis /.notdef /Agrave /Atilde /Otilde /OE /oe /endash /emdash /quotedblleft /quotedblright /quoteleft /quoteright /.notdef /.notdef /ydieresis /Ydieresis /fraction /currency /guilsinglleft /guilsinglright /fi /fl /daggerdbl /periodcentered /quotesinglbase /quotedblbase /perthousand /Acircumflex /Ecircumflex /Aacute /Edieresis /Egrave /Iacute /Icircumflex /Idieresis /Igrave /Oacute /Ocircumflex /.notdef /Ograve /Uacute /Ucircumflex /Ugrave /dotlessi /circumflex /tilde /macron /breve /dotaccent /ring /cedilla /hungarumlaut /ogonek /caron ] def /ReEncode { dup length dict begin { 1 index /FID ne {def} {pop pop} ifelse } forall 0 eq {/Encoding DiacriticEncoding def} if currentdict end } bind def FMPColor { /BEGINBITMAPCOLOR { BITMAPCOLOR} def /BEGINBITMAPCOLORc { BITMAPCOLORc} def /BEGINBITMAPTRUECOLOR { BITMAPTRUECOLOR } def /BEGINBITMAPTRUECOLORc { BITMAPTRUECOLORc } def } { /BEGINBITMAPCOLOR { BITMAPGRAY} def /BEGINBITMAPCOLORc { BITMAPGRAYc} def /BEGINBITMAPTRUECOLOR { BITMAPTRUEGRAY } def /BEGINBITMAPTRUECOLORc { BITMAPTRUEGRAYc } def } ifelse /K { FMPrintAllColorsAsBlack { dup 1 eq 2 index 1 eq and 3 index 1 eq and not {7 {pop} repeat 0 0 0 1 0 0 0} if } if FrameCurColors astore pop combineColor } bind def /graymode true def /bwidth FMLOCAL /bpside FMLOCAL /bstring FMLOCAL /onbits FMLOCAL /offbits FMLOCAL /xindex FMLOCAL /yindex FMLOCAL /x FMLOCAL /y FMLOCAL /setPatternMode { FMLevel1 { /bwidth exch def /bpside exch def /bstring exch def /onbits 0 def /offbits 0 def freq sangle landscape {90 add} if {/y exch def /x exch def /xindex x 1 add 2 div bpside mul cvi def /yindex y 1 add 2 div bpside mul cvi def bstring yindex bwidth mul xindex 8 idiv add get 1 7 xindex 8 mod sub bitshift and 0 ne FrameNegative {not} if {/onbits onbits 1 add def 1} {/offbits offbits 1 add def 0} ifelse } setscreen offbits offbits onbits add div FrameNegative {1.0 exch sub} if /FrameCurGray exch def } { pop pop dup patCache exch known { patCache exch get } { dup patDict /bstring 3 -1 roll put patDict 9 PatFreq screenIndex get div dup matrix scale makepattern dup patCache 4 -1 roll 3 -1 roll put } ifelse /FrameCurGray 0 def /FrameCurPat exch def } ifelse /graymode false def combineColor } bind def /setGrayScaleMode { graymode not { /graymode true def FMLevel1 { setCurrentScreen } if } if /FrameCurGray exch def combineColor } bind def /normalize { transform round exch round exch itransform } bind def /dnormalize { dtransform round exch round exch idtransform } bind def /lnormalize { 0 dtransform exch cvi 2 idiv 2 mul 1 add exch idtransform pop } bind def /H { lnormalize setlinewidth } bind def /Z { setlinecap } bind def /PFill { graymode FMLevel1 or not { gsave 1 setgray eofill grestore } if } bind def /PStroke { graymode FMLevel1 or not { gsave 1 setgray stroke grestore } if stroke } bind def /fillvals FMLOCAL /X { fillvals exch get dup type /stringtype eq {8 1 setPatternMode} {setGrayScaleMode} ifelse } bind def /V { PFill gsave eofill grestore } bind def /Vclip { clip } bind def /Vstrk { currentlinewidth exch setlinewidth PStroke setlinewidth } bind def /N { PStroke } bind def /Nclip { strokepath clip newpath } bind def /Nstrk { currentlinewidth exch setlinewidth PStroke setlinewidth } bind def /M {newpath moveto} bind def /E {lineto} bind def /D {curveto} bind def /O {closepath} bind def /n FMLOCAL /L { /n exch def newpath normalize moveto 2 1 n {pop normalize lineto} for } bind def /Y { L closepath } bind def /x1 FMLOCAL /x2 FMLOCAL /y1 FMLOCAL /y2 FMLOCAL /R { /y2 exch def /x2 exch def /y1 exch def /x1 exch def x1 y1 x2 y1 x2 y2 x1 y2 4 Y } bind def /rad FMLOCAL /rarc {rad arcto } bind def /RR { /rad exch def normalize /y2 exch def /x2 exch def normalize /y1 exch def /x1 exch def mark newpath { x1 y1 rad add moveto x1 y2 x2 y2 rarc x2 y2 x2 y1 rarc x2 y1 x1 y1 rarc x1 y1 x1 y2 rarc closepath } stopped {x1 y1 x2 y2 R} if cleartomark } bind def /RRR { /rad exch def normalize /y4 exch def /x4 exch def normalize /y3 exch def /x3 exch def normalize /y2 exch def /x2 exch def normalize /y1 exch def /x1 exch def newpath normalize moveto mark { x2 y2 x3 y3 rarc x3 y3 x4 y4 rarc x4 y4 x1 y1 rarc x1 y1 x2 y2 rarc closepath } stopped {x1 y1 x2 y2 x3 y3 x4 y4 newpath moveto lineto lineto lineto closepath} if cleartomark } bind def /C { grestore gsave R clip setCurrentScreen } bind def /CP { grestore gsave Y clip setCurrentScreen } bind def /FMpointsize FMLOCAL /F { FMfonts exch get FMpointsize scalefont setfont } bind def /Q { /FMpointsize exch def F } bind def /T { moveto show } bind def /RF { rotate 0 ne {-1 1 scale} if } bind def /TF { gsave moveto RF show grestore } bind def /P { moveto 0 32 3 2 roll widthshow } bind def /PF { gsave moveto RF 0 32 3 2 roll widthshow grestore } bind def /S { moveto 0 exch ashow } bind def /SF { gsave moveto RF 0 exch ashow grestore } bind def /B { moveto 0 32 4 2 roll 0 exch awidthshow } bind def /BF { gsave moveto RF 0 32 4 2 roll 0 exch awidthshow grestore } bind def /G { gsave newpath normalize translate 0.0 0.0 moveto dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath PFill fill grestore } bind def /Gstrk { savematrix newpath 2 index 2 div add exch 3 index 2 div sub exch normalize 2 index 2 div sub exch 3 index 2 div add exch translate scale 0.0 0.0 1.0 5 3 roll arc restorematrix currentlinewidth exch setlinewidth PStroke setlinewidth } bind def /Gclip { newpath savematrix normalize translate 0.0 0.0 moveto dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath clip newpath restorematrix } bind def /GG { gsave newpath normalize translate 0.0 0.0 moveto rotate dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath PFill fill grestore } bind def /GGclip { savematrix newpath normalize translate 0.0 0.0 moveto rotate dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath clip newpath restorematrix } bind def /GGstrk { savematrix newpath normalize translate 0.0 0.0 moveto rotate dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath restorematrix currentlinewidth exch setlinewidth PStroke setlinewidth } bind def /A { gsave savematrix newpath 2 index 2 div add exch 3 index 2 div sub exch normalize 2 index 2 div sub exch 3 index 2 div add exch translate scale 0.0 0.0 1.0 5 3 roll arc restorematrix PStroke grestore } bind def /Aclip { newpath savematrix normalize translate 0.0 0.0 moveto dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath strokepath clip newpath restorematrix } bind def /Astrk { Gstrk } bind def /AA { gsave savematrix newpath 3 index 2 div add exch 4 index 2 div sub exch normalize 3 index 2 div sub exch 4 index 2 div add exch translate rotate scale 0.0 0.0 1.0 5 3 roll arc restorematrix PStroke grestore } bind def /AAclip { savematrix newpath normalize translate 0.0 0.0 moveto rotate dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath strokepath clip newpath restorematrix } bind def /AAstrk { GGstrk } bind def /x FMLOCAL /y FMLOCAL /w FMLOCAL /h FMLOCAL /xx FMLOCAL /yy FMLOCAL /ww FMLOCAL /hh FMLOCAL /FMsaveobject FMLOCAL /FMoptop FMLOCAL /FMdicttop FMLOCAL /BEGINPRINTCODE { /FMdicttop countdictstack 1 add def /FMoptop count 7 sub def /FMsaveobject save def userdict begin /showpage {} def FMNORMALIZEGRAPHICS 3 index neg 3 index neg translate } bind def /ENDPRINTCODE { count -1 FMoptop {pop pop} for countdictstack -1 FMdicttop {pop end} for FMsaveobject restore } bind def /gn { 0 { 46 mul cf read pop 32 sub dup 46 lt {exit} if 46 sub add } loop add } bind def /str FMLOCAL /cfs { /str sl string def 0 1 sl 1 sub {str exch val put} for str def } bind def /ic [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0223 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0223 0 {0 hx} {1 hx} {2 hx} {3 hx} {4 hx} {5 hx} {6 hx} {7 hx} {8 hx} {9 hx} {10 hx} {11 hx} {12 hx} {13 hx} {14 hx} {15 hx} {16 hx} {17 hx} {18 hx} {19 hx} {gn hx} {0} {1} {2} {3} {4} {5} {6} {7} {8} {9} {10} {11} {12} {13} {14} {15} {16} {17} {18} {19} {gn} {0 wh} {1 wh} {2 wh} {3 wh} {4 wh} {5 wh} {6 wh} {7 wh} {8 wh} {9 wh} {10 wh} {11 wh} {12 wh} {13 wh} {14 wh} {gn wh} {0 bl} {1 bl} {2 bl} {3 bl} {4 bl} {5 bl} {6 bl} {7 bl} {8 bl} {9 bl} {10 bl} {11 bl} {12 bl} {13 bl} {14 bl} {gn bl} {0 fl} {1 fl} {2 fl} {3 fl} {4 fl} {5 fl} {6 fl} {7 fl} {8 fl} {9 fl} {10 fl} {11 fl} {12 fl} {13 fl} {14 fl} {gn fl} ] def /sl FMLOCAL /val FMLOCAL /ws FMLOCAL /im FMLOCAL /bs FMLOCAL /cs FMLOCAL /len FMLOCAL /pos FMLOCAL /ms { /sl exch def /val 255 def /ws cfs /im cfs /val 0 def /bs cfs /cs cfs } bind def 400 ms /ip { is 0 cf cs readline pop { ic exch get exec add } forall pop } bind def /rip { bis ris copy pop is 0 cf cs readline pop { ic exch get exec add } forall pop pop ris gis copy pop dup is exch cf cs readline pop { ic exch get exec add } forall pop pop gis bis copy pop dup add is exch cf cs readline pop { ic exch get exec add } forall pop } bind def /wh { /len exch def /pos exch def ws 0 len getinterval im pos len getinterval copy pop pos len } bind def /bl { /len exch def /pos exch def bs 0 len getinterval im pos len getinterval copy pop pos len } bind def /s1 1 string def /fl { /len exch def /pos exch def /val cf s1 readhexstring pop 0 get def pos 1 pos len add 1 sub {im exch val put} for pos len } bind def /hx { 3 copy getinterval cf exch readhexstring pop pop } bind def /h FMLOCAL /w FMLOCAL /d FMLOCAL /lb FMLOCAL /bitmapsave FMLOCAL /is FMLOCAL /cf FMLOCAL /wbytes { dup dup 24 eq { pop pop 3 mul } { 8 eq {pop} {1 eq {7 add 8 idiv} {3 add 4 idiv} ifelse} ifelse } ifelse } bind def /BEGINBITMAPBWc { 1 {} COMMONBITMAPc } bind def /BEGINBITMAPGRAYc { 8 {} COMMONBITMAPc } bind def /BEGINBITMAP2BITc { 2 {} COMMONBITMAPc } bind def /COMMONBITMAPc { /r exch def /d exch def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /h exch def /w exch def /lb w d wbytes def sl lb lt {lb ms} if /bitmapsave save def r /is im 0 lb getinterval def ws 0 lb getinterval is copy pop /cf currentfile def w h d [w 0 0 h neg 0 h] {ip} image bitmapsave restore grestore } bind def /BEGINBITMAPBW { 1 {} COMMONBITMAP } bind def /BEGINBITMAPGRAY { 8 {} COMMONBITMAP } bind def /BEGINBITMAP2BIT { 2 {} COMMONBITMAP } bind def /COMMONBITMAP { /r exch def /d exch def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /h exch def /w exch def /bitmapsave save def r /is w d wbytes string def /cf currentfile def w h d [w 0 0 h neg 0 h] {cf is readhexstring pop} image bitmapsave restore grestore } bind def /ngrayt 256 array def /nredt 256 array def /nbluet 256 array def /ngreent 256 array def /gryt FMLOCAL /blut FMLOCAL /grnt FMLOCAL /redt FMLOCAL /indx FMLOCAL /cynu FMLOCAL /magu FMLOCAL /yelu FMLOCAL /k FMLOCAL /u FMLOCAL FMLevel1 { /colorsetup { currentcolortransfer /gryt exch def /blut exch def /grnt exch def /redt exch def 0 1 255 { /indx exch def /cynu 1 red indx get 255 div sub def /magu 1 green indx get 255 div sub def /yelu 1 blue indx get 255 div sub def /k cynu magu min yelu min def /u k currentundercolorremoval exec def % /u 0 def nredt indx 1 0 cynu u sub max sub redt exec put ngreent indx 1 0 magu u sub max sub grnt exec put nbluet indx 1 0 yelu u sub max sub blut exec put ngrayt indx 1 k currentblackgeneration exec sub gryt exec put } for {255 mul cvi nredt exch get} {255 mul cvi ngreent exch get} {255 mul cvi nbluet exch get} {255 mul cvi ngrayt exch get} setcolortransfer {pop 0} setundercolorremoval {} setblackgeneration } bind def } { /colorSetup2 { [ /Indexed /DeviceRGB 255 {dup red exch get 255 div exch dup green exch get 255 div exch blue exch get 255 div} ] setcolorspace } bind def } ifelse /tran FMLOCAL /fakecolorsetup { /tran 256 string def 0 1 255 {/indx exch def tran indx red indx get 77 mul green indx get 151 mul blue indx get 28 mul add add 256 idiv put} for currenttransfer {255 mul cvi tran exch get 255.0 div} exch concatprocs settransfer } bind def /BITMAPCOLOR { /d 8 def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /h exch def /w exch def /bitmapsave save def FMLevel1 { colorsetup /is w d wbytes string def /cf currentfile def w h d [w 0 0 h neg 0 h] {cf is readhexstring pop} {is} {is} true 3 colorimage } { colorSetup2 /is w d wbytes string def /cf currentfile def 7 dict dup begin /ImageType 1 def /Width w def /Height h def /ImageMatrix [w 0 0 h neg 0 h] def /DataSource {cf is readhexstring pop} bind def /BitsPerComponent d def /Decode [0 255] def end image } ifelse bitmapsave restore grestore } bind def /BITMAPCOLORc { /d 8 def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /h exch def /w exch def /lb w d wbytes def sl lb lt {lb ms} if /bitmapsave save def FMLevel1 { colorsetup /is im 0 lb getinterval def ws 0 lb getinterval is copy pop /cf currentfile def w h d [w 0 0 h neg 0 h] {ip} {is} {is} true 3 colorimage } { colorSetup2 /is im 0 lb getinterval def ws 0 lb getinterval is copy pop /cf currentfile def 7 dict dup begin /ImageType 1 def /Width w def /Height h def /ImageMatrix [w 0 0 h neg 0 h] def /DataSource {ip} bind def /BitsPerComponent d def /Decode [0 255] def end image } ifelse bitmapsave restore grestore } bind def /BITMAPTRUECOLORc { /d 24 def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /h exch def /w exch def /lb w d wbytes def sl lb lt {lb ms} if /bitmapsave save def /is im 0 lb getinterval def /ris im 0 w getinterval def /gis im w w getinterval def /bis im w 2 mul w getinterval def ws 0 lb getinterval is copy pop /cf currentfile def w h 8 [w 0 0 h neg 0 h] {w rip pop ris} {gis} {bis} true 3 colorimage bitmapsave restore grestore } bind def /BITMAPTRUECOLOR { gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /h exch def /w exch def /bitmapsave save def /is w string def /gis w string def /bis w string def /cf currentfile def w h 8 [w 0 0 h neg 0 h] { cf is readhexstring pop } { cf gis readhexstring pop } { cf bis readhexstring pop } true 3 colorimage bitmapsave restore grestore } bind def /BITMAPTRUEGRAYc { /d 24 def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /h exch def /w exch def /lb w d wbytes def sl lb lt {lb ms} if /bitmapsave save def /is im 0 lb getinterval def /ris im 0 w getinterval def /gis im w w getinterval def /bis im w 2 mul w getinterval def ws 0 lb getinterval is copy pop /cf currentfile def w h 8 [w 0 0 h neg 0 h] {w rip pop ris gis bis w gray} image bitmapsave restore grestore } bind def /ww FMLOCAL /r FMLOCAL /g FMLOCAL /b FMLOCAL /i FMLOCAL /gray { /ww exch def /b exch def /g exch def /r exch def 0 1 ww 1 sub { /i exch def r i get .299 mul g i get .587 mul b i get .114 mul add add r i 3 -1 roll floor cvi put } for r } bind def /BITMAPTRUEGRAY { gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /h exch def /w exch def /bitmapsave save def /is w string def /gis w string def /bis w string def /cf currentfile def w h 8 [w 0 0 h neg 0 h] { cf is readhexstring pop cf gis readhexstring pop cf bis readhexstring pop w gray} image bitmapsave restore grestore } bind def /BITMAPGRAY { 8 {fakecolorsetup} COMMONBITMAP } bind def /BITMAPGRAYc { 8 {fakecolorsetup} COMMONBITMAPc } bind def /ENDBITMAP { } bind def end /ALDsave FMLOCAL /ALDmatrix matrix def ALDmatrix currentmatrix pop /StartALD { /ALDsave save def savematrix ALDmatrix setmatrix } bind def /InALD { restorematrix } bind def /DoneALD { ALDsave restore } bind def /I { setdash } bind def /J { [] 0 setdash } bind def (4.0) FMVERSION 1 1 0 0 612 792 0 1 2 FMDOCUMENT 0 0 /Times-Roman FMFONTDEFINE 1 0 /Times-BoldItalic FMFONTDEFINE 32 FMFILLS 0 0 FMFILL 1 0.1 FMFILL 2 0.3 FMFILL 3 0.5 FMFILL 4 0.7 FMFILL 5 0.9 FMFILL 6 0.97 FMFILL 7 1 FMFILL 8 <0f1e3c78f0e1c387> FMFILL 9 <0f87c3e1f0783c1e> FMFILL 10 FMFILL 11 FMFILL 12 <8142241818244281> FMFILL 13 <03060c183060c081> FMFILL 14 <8040201008040201> FMFILL 16 1 FMFILL 17 0.9 FMFILL 18 0.7 FMFILL 19 0.5 FMFILL 20 0.3 FMFILL 21 0.1 FMFILL 22 0.03 FMFILL 23 0 FMFILL 24 FMFILL 25 FMFILL 26 <3333333333333333> FMFILL 27 <0000ffff0000ffff> FMFILL 28 <7ebddbe7e7dbbd7e> FMFILL 29 FMFILL 30 <7fbfdfeff7fbfdfe> FMFILL 612 792 1 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K J 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 81 216 729 684 R 81 216 729 684 R 585 324 630 360 R 3 H 2 Z 0 X 0 0 0 1 0 0 0 K N 0 12 Q (C) 603 342 T 108 360 145.5 360 2 L 1 H N 146.25 442.5 146.25 258.75 2 L N 146.25 345.75 186.75 345.75 2 L N 188.25 328.5 233.25 364.5 R 3 H N (A) 206.25 346.5 T 234.75 342 396 342 2 L 1 H N 396 324 441 360 R 3 H N (B) 414 342 T 441 342 585 342 2 L 1 H N 501.75 526.5 546.75 562.5 R 3 H N 423.75 360 517.5 525 2 L 1 H N 206.25 373.5 350.92 442.5 18 RR 0.5 H N 342 441 474.75 504.75 27 RR N (2. Send Join/Prune) 215.2 430.5 T (Multicast address = G) 215.2 406.5 T (Join = {S}) 215.2 394.5 T (Prune = NULL) 215.2 382.5 T 112.22 450 324 558 9 RR N 185.77 438.46 189.08 450 192.38 438.46 189.08 438.46 4 Y 1 X V 189.08 364.5 189.08 438.46 2 L 3 X V 1 X N 0 X (Create \050S,G\051 entry:) 138.79 504.71 T (outgoing interface list = {1}) 134.2 487.83 T (incoming interface = {2}) 134.2 476.09 T (WC-bit=0, RPT) 134.2 464.35 T (-bit=0, SPT) 209.87 464.35 T (-bit=0) 264.88 464.35 T 445.53 308.06 457.5 303.75 445.07 301.07 445.3 304.56 4 Y 3 X V 180 253.71 43.5 20.25 457.5 324 A 194.14 381.53 206.24 382.51 196.5 375.26 195.32 378.4 4 Y V 129.52 180 17.17 18 206.25 364.5 A 0 X (4. Send Join/Prune) 352.5 491.92 T (Multicast-Address = G) 352.5 468.89 T (Join = {S}) 352.5 458.6 T (Prune = NULL) 352.5 448.32 T 274.22 225 450 297 18 RR N (3. Create \050S,G\051 entry:) 292.06 288.14 T (outgoing interface list = {1}) 288 270.82 T (incoming interface = {2}) 288 259.09 T (WC-bit=0, RPT) 288 247.37 T (-bit=0, SPT) 363.67 247.37 T (-bit=0) 418.68 247.37 T (1) 179.25 355.5 T (2) 242.25 355.5 T (1) 387 351 T (2) 438 369 T (3) 450 351 T (1) 576 344.6 T 1 F (Designated Router for LAN) 160.46 317.43 T (LAN) 120 276 T (Rendezvous Point) 635.25 345.93 T (\050RP\051 for group G) 635.25 333.93 T 7 X 90 450 22.5 22.5 85.5 364.5 G 3 H 0 X 90 450 22.5 22.5 85.5 364.5 A 0 F (Host) 72 360 T (D) 519 543 T 1 F (Receiver \050R\051) 66.75 329.25 T 519 525.75 603 360 2 L 0.5 H N 547.5 546.75 593.25 546.75 2 L N 3 H 90 450 22.88 22.88 617.63 543.38 A 0 F (Host) 607.5 543 T 1 F (Source \050S\051) 595.7 506.43 T 0 F (2) 606.75 367.5 T 1 F (First Hop Router for S) 483.75 569.43 T (\050Last Hop Router for R\051) 159.75 304.5 T 419.95 440.22 432 441 422.2 433.96 421.08 437.09 4 Y 3 X V 1 H 108.05 180 35.25 79.5 432 361.5 A 454.22 234 640.97 315 18 RR 0 X N 0 F (6. After receiving packets from D:) 468.75 299.25 T (Set \050S,G\051\325) 468.75 287.25 T (s SPT) 516.75 287.25 T (-bit = 1, and) 543.99 287.25 T (send Join/Prune message to C:) 468.75 275.25 T (message to D:) 352.5 479.92 T (Multicast-Address = G) 483.75 263.25 T (Join = NULL) 483.75 251.25 T (Prune = {S,RPT) 483.75 239.25 T (-bit}) 560.85 239.25 T (message to B:) 215.2 418.5 T (1. Receive S\325) 117.69 543.6 T (s packets on shared RP tree.) 181.35 543.6 T (Initiate packet count.) 121.25 531.52 T (If data rate > Threshold then:) 121.25 519.78 T (1) 531 513 T (2) 504 513 T 342 522 477 576 18 RR 7 X V 0.5 H 0 X N 488.54 545.69 477 549 488.54 552.31 488.54 549 4 Y 1 X V 504 549 488.54 549 2 L N 0 X (5. Add interface {2}) 350.99 557.6 T (to the outgoing interface) 350.99 545.6 T (list of \050S,G\051 entry) 350.99 533.6 T 576 405 711 459 27 RR 1 X N 0 X (7. Create \050S,G\051 entry:) 594 441 T (oif list = oif\050*,G\051-{1}) 594 429 T (RPT) 594 417 T (-bit = 1) 614.9 417 T 617.69 393.46 621 405 624.31 393.46 621 393.46 4 Y 1 X V 621 360 621 393.46 2 L N 0 X (S-T) 288 235.37 T (imer: Started) 305.58 235.37 T 412.52 308.54 409.22 297 405.91 308.54 409.22 308.54 4 Y 1 X V 409.22 324 409.22 308.54 2 L N 0 X (S-T) 135.34 452.6 T (imer: Started) 152.92 452.6 T FMENDPAGE %%EndDocument @endspecial 579 1884 a(Figure)30 b(3:)41 b(Example:)f(Switc)m(hing)29 b(from)g(shared)h(tree)h(to)g(shortest)g(path)f(tree)1154 1997 y(Actions)g(are)h(n)m(um)m(b)s(ered)e(in)g(the)h(order)g(they)h(o) s(ccur)-125 2272 y Fe(2.4)113 b(Switc)m(hing)35 b(from)i(shared)i(tree) e(\(RP-tree\))e(to)i(shortest)h(path)g(tree)f(\(SP-tree\))-125 2444 y Fk(A)i(router)f(with)f(directly-connected)h(mem)m(b)s(ers)f (\014rst)h(joins)f(the)h(shared)f(RP-tree.)65 b(The)38 b(router)g(can)g(switc)m(h)g(to)h(a)-125 2557 y(source's)e(shortest)g (path)e(tree)i(\(SP-tree\))h(after)e(receiving)g(pac)m(k)m(ets)i(from)e (that)h(source)f(o)m(v)m(er)h(the)g(shared)e(RP-tree.)-125 2670 y(The)f(recommended)f(p)s(olicy)f(is)h(to)i(initiate)d(the)i (switc)m(h)g(to)g(the)g(SP-tree)g(after)h(receiving)e(a)h(signi\014can) m(t)f(n)m(um)m(b)s(er)f(of)-125 2783 y(data)25 b(pac)m(k)m(ets)h (during)21 b(a)k(sp)s(eci\014ed)d(time)h(in)m(terv)-5 b(al)23 b(from)h(a)g(particular)e(source.)39 b(T)-8 b(o)24 b(realize)f(this)g(p)s(olicy)f(the)i(router)g(can)-125 2895 y(monitor)32 b(data)i(pac)m(k)m(ets)g(from)e(sources)g(for)h(whic) m(h)e(it)h(has)g Ff(no)h Fk(source-sp)s(eci\014c)f(m)m(ulticast)g (route)h(en)m(try)g(and)f(initiate)-125 3008 y(suc)m(h)39 b(an)g(en)m(try)g(when)f(the)h(data)g(rate)h(exceeds)g(the)f (con\014gured)f(threshold.)65 b(As)38 b(sho)m(wn)h(in)e(\014gure)h(3,)k (router)d(`A')-125 3121 y(initiates)29 b(a)i(\(S,G\))g(state.)17 3234 y(When)24 b(a)h(\(S,G\))h(en)m(try)f(is)e(activ)-5 b(ated)26 b(\(and)e(p)s(erio)s(dically)d(so)k(long)g(as)g(the)f(state)i (exists\),)h(a)e(Join/Prune)e(message)i(is)-125 3347 y(sen)m(t)j(upstream)f(to)m(w)m(ards)h(the)f(source,)h(S,)f(with)f(S)g (in)g(the)i(join)e(list.)38 b(The)27 b(pa)m(yload)g(con)m(tains)g (Multicast-Address=G,)-125 3460 y(Join=)p Fd(f)p Fk(S)p Fd(g)p Fk(,)42 b(Prune=NULL.)c(When)i(the)g(\(S,G\))g(en)m(try)h(is)d (created,)44 b(the)c(outgoing)g(in)m(terface)g(list)f(is)g(copied)g (from)-125 3573 y(\(*,G\),)34 b(i.e.,)f(all)e(lo)s(cal)h(shared)f(tree) i(branc)m(hes)e(are)i(replicated)e(in)g(the)h(new)f(shortest)i(path)f (tree.)46 b(In)31 b(this)g(w)m(a)m(y)i(when)-125 3686 y(a)e(data)f(pac)m(k)m(et)i(from)d(S)g(arriv)m(es)g(and)h(matc)m(hes)g (on)g(this)f(en)m(try)-8 b(,)30 b(all)f(receiv)m(ers)h(will)d(con)m (tin)m(ue)j(to)h(receiv)m(e)f(the)g(source's)-125 3799 y(pac)m(k)m(ets)d(along)d(this)g(path.)38 b(\(In)24 b(more)h (complicated)f(scenarios,)i(other)e(en)m(tries)h(in)e(the)h(router)h (ha)m(v)m(e)g(to)g(b)s(e)f(considered,)-125 3912 y(as)31 b(describ)s(ed)d(in)h(Section)i(3\).)17 4025 y(Note)26 b(that)g(\(S,G\))h(state)f(m)m(ust)g(b)s(e)e(main)m(tained)h(in)f(eac)m (h)i(last-hop)g(router)f(that)h(is)e(resp)s(onsible)f(for)i(initiating) e(and)-125 4137 y(main)m(taining)g(an)h(SP-tree.)39 b(Ev)m(en)25 b(when)e(\(*,G\))j(and)e(\(S,G\))h(o)m(v)m(erlap,)h(b)s(oth)e(states)h (are)g(needed)f(to)h(trigger)f(the)h(source-)-125 4250 y(sp)s(eci\014c)d(Join/Prune)f(messages.)39 b(\(S,G\))23 b(state)h(is)e(k)m(ept)h(aliv)m(e)f(b)m(y)h(data)g(pac)m(k)m(ets)i (arriving)20 b(from)j(that)g(source.)38 b(A)23 b(timer,)-125 4363 y(En)m(try-timer,)37 b(is)e(set)h(for)f(the)h(\(S,G\))g(en)m(try)g (and)f(this)f(timer)h(is)f(restarted)i(whenev)m(er)g(data)g(pac)m(k)m (ets)h(for)f(\(S,G\))g(are)-125 4476 y(forw)m(arded)30 b(out)g(at)h(least)f(one)h(oif,)f(or)g(Registers)g(are)g(sen)m(t.)42 b(When)29 b(the)i(En)m(try-timer)e(expires,)h(the)g(state)h(is)e (deleted.)-125 4589 y(The)e(last-hop)g(router)h(is)e(the)i(router)f (that)h(deliv)m(ers)e(the)i(pac)m(k)m(ets)h(to)f(their)f(ultimate)f (end-system)i(destination.)38 b(This)-125 4702 y(is)27 b(the)h(router)g(that)g(monitors)f(if)f(there)i(is)f(group)g(mem)m(b)s (ership)e(and)i(joins)g(or)g(prunes)f(the)i(appropriate)f(distribution) -125 4815 y(trees)34 b(in)d(resp)s(onse.)47 b(In)32 b(general)h(the)g (last-hop)f(router)h(is)f(the)h(Designated)g(Router)g(\(DR\))h(for)e (the)h(LAN.)g(Ho)m(w)m(ev)m(er,)-125 4928 y(under)d(v)-5 b(arious)30 b(conditions)f(describ)s(ed)g(later,)j(a)f(parallel)e (router)i(connected)h(to)g(the)f(same)g(LAN)h(ma)m(y)f(tak)m(e)i(o)m(v) m(er)f(as)-125 5041 y(the)f(last-hop)f(router)g(in)f(place)i(of)f(the)h (DR.)17 5154 y(Only)40 b(the)i(RP)g(and)f(routers)h(with)f(lo)s(cal)g (mem)m(b)s(ers)g(can)i(initiate)e(switc)m(hing)f(to)j(the)f(SP-tree;)49 b(in)m(termediate)-125 5267 y(routers)35 b(do)g(not.)54 b(Consequen)m(tly)-8 b(,)35 b(last-hop)g(routers)f(create)j(\(S,G\))e (state)h(in)e(resp)s(onse)f(to)j(data)f(pac)m(k)m(ets)i(from)d(the)-125 5380 y(source,)c(S;)e(whereas)g(in)m(termediate)g(routers)g(only)g (create)i(\(S,G\))f(state)h(in)d(resp)s(onse)h(to)h(Join/Prune)d (messages)k(from)p eop %%Page: 7 8 7 7 bop -125 -149 a Fh(draft-ietf-idmr-PIM-SM-sp)s(ec-10.ps)2718 b Fk(7)-125 149 y(do)m(wnstream)31 b(that)g(ha)m(v)m(e)g(S)f(in)f(the)i (Join)e(list.)17 262 y(The)f(\(S,G\))i(en)m(try)f(is)g(initialized)d (with)h(the)j(SPT-bit)d(cleared,)j(indicating)d(that)j(the)f(shortest)g (path)g(tree)h(branc)m(h)-125 375 y(from)i(S)g(has)g(not)g(y)m(et)i(b)s (een)d(setup)h(completely)-8 b(,)33 b(and)f(the)g(router)g(can)h(still) d(accept)j(pac)m(k)m(ets)h(from)e(S)g(that)h(arriv)m(e)f(on)-125 488 y(the)25 b(\(*,G\))h(en)m(try's)f(indicated)e(incoming)f(in)m (terface)j(\(iif)7 b(\).)38 b(Eac)m(h)25 b(PIM)f(m)m(ulticast)g(en)m (try)h(has)f(an)g(asso)s(ciated)h(incoming)-125 601 y(in)m(terface)31 b(on)g(whic)m(h)e(pac)m(k)m(ets)j(are)f(exp)s(ected)g(to)g(arriv)m(e.) 17 714 y(When)25 b(a)h(router)g(with)e(a)i(\(S,G\))g(en)m(try)g(and)f (a)h(cleared)g(SPT-bit)e(starts)i(to)g(receiv)m(e)h(pac)m(k)m(ets)g (from)e(the)h(new)f(source)-125 827 y(S)j(on)h(the)f(iif)f(for)h(the)h (\(S,G\))g(en)m(try)-8 b(,)29 b(and)f(that)h(iif)e(di\013ers)g(from)h (the)g(\(*,G\))i(en)m(try's)f(iif,)e(the)i(router)f(sets)h(the)g (SPT-bit,)-125 940 y(and)k(sends)g(a)h(Join/Prune)e(message)j(to)m(w)m (ards)f(the)g(RP)-8 b(,)34 b(indicating)e(that)i(the)g(router)f(no)h (longer)f(w)m(an)m(ts)h(to)h(receiv)m(e)-125 1053 y(pac)m(k)m(ets)f (from)d(S)h(via)f(the)h(shared)f(RP-tree.)46 b(The)31 b(Join/Prune)f(message)j(sen)m(t)f(to)m(w)m(ards)h(the)f(RP)f(includes) f(S)h(in)f(the)-125 1166 y(prune)h(list,)f(with)h(the)h(RPT-bit)e(set)i (indicating)e(that)i(S's)f(pac)m(k)m(ets)j(m)m(ust)d(not)h(b)s(e)f (forw)m(arded)g(do)m(wn)h(this)e(branc)m(h)h(of)-125 1279 y(the)39 b(shared)e(tree.)64 b(If)37 b(the)h(router)g(receiving)f (the)h(Join/Prune)e(message)j(has)f(\(S,G\))g(state)i(\(with)c(or)i (without)f(the)-125 1391 y(route)32 b(en)m(try's)g(RPT-bit)e(\015ag)h (set\),)i(it)e(deletes)g(the)h(arriving)d(in)m(terface)j(from)f(the)g (\(S,G\))h(oif)f(list.)42 b(If)31 b(the)g(router)h(has)-125 1504 y(only)26 b(\(*,G\))i(state,)g(it)e(creates)h(an)f(en)m(try)h (with)e(the)h(RPT-bit)f(\015ag)h(set)h(to)g(1.)39 b(F)-8 b(or)27 b(brevit)m(y)f(w)m(e)h(refer)e(to)i(an)f(\(S,G\))h(en)m(try) -125 1617 y(that)39 b(has)f(the)g(RPT-bit)f(\015ag)h(set)h(to)g(1)f(as) g(an)g(\(S,G\)RPT-bit)g(en)m(try)-8 b(.)64 b(This)37 b(notational)h(distinction)d(is)i(useful)g(to)-125 1730 y(p)s(oin)m(t)27 b(out)g(the)h(di\013eren)m(t)f(actions)g(tak)m(en)i (for)e(\(S,G\))h(en)m(tries)f(dep)s(ending)e(on)i(the)g(setting)h(of)f (the)h(RPT-bit)e(\015ag.)40 b(Note)-125 1843 y(that)29 b(a)f(router)g(can)g(ha)m(v)m(e)h(no)f(more)g(than)f(one)i(activ)m(e)g (\(S,G\))f(en)m(try)g(for)g(an)m(y)g(particular)e(S)i(and)f(G,)h(at)h (an)m(y)f(particular)-125 1956 y(time;)35 b(whether)e(the)h(RPT-bit)e (\015ag)i(is)e(set)i(or)g(not.)50 b(In)33 b(other)g(w)m(ords,)h(a)g (router)f(nev)m(er)h(has)f(b)s(oth)g(an)g(\(S,G\))i(and)e(an)-125 2069 y(\(S,G\)RPT-bit)e(en)m(try)h(for)f(the)g(same)g(S)g(and)g(G)g(at) h(the)f(same)h(time.)43 b(The)30 b(Join/Prune)g(message)i(pa)m(yload)f (con)m(tains)-125 2182 y(Multicast-Address=G,)f(Join=NULL,)f(Prune=)p Fd(f)p Fk(S,RPT-bit)p Fd(g)p Fk(.)17 2295 y(A)c(new)g(receiv)m(er)h(ma) m(y)g(join)e(an)i(existing)e(RP-tree)i(on)g(whic)m(h)e(source-sp)s (eci\014c)h(prune)e(state)k(has)e(b)s(een)g(established)-125 2408 y(\(e.g.,)43 b(b)s(ecause)38 b(do)m(wnstream)g(receiv)m(ers)h(ha)m (v)m(e)g(switc)m(hed)f(to)g(SP-trees\).)65 b(In)38 b(this)f(case)i(the) g(prune)d(state)k(m)m(ust)e(b)s(e)-125 2521 y(eradicated)j(upstream)e (of)h(the)g(new)g(receiv)m(er)g(to)h(bring)d(all)h(sources')h(data)h (pac)m(k)m(ets)h(do)m(wn)d(to)i(the)f(new)g(receiv)m(er.)-125 2633 y(Therefore,)e(when)e(a)g(\(*,G\))i(Join)d(arriv)m(es)h(at)h(a)g (router)f(that)h(has)f(an)m(y)h(\(Si,G\)RPT-bit)e(en)m(tries)h(\(i.e.,) j(en)m(tries)d(that)-125 2746 y(cause)30 b(the)g(router)f(to)h(send)e (source-sp)s(eci\014c)g(prunes)g(to)m(w)m(ard)i(the)f(RP\),)h(these)g (en)m(tries)f(m)m(ust)g(b)s(e)f(up)s(dated)g(upstream)-125 2859 y(of)f(the)f(router)g(so)g(as)g(to)h(bring)d(all)h(sources')h(pac) m(k)m(ets)i(do)m(wn)d(to)i(the)f(new)g(mem)m(b)s(er.)38 b(T)-8 b(o)27 b(accomplish)d(this,)i(eac)m(h)i(router)-125 2972 y(that)f(receiv)m(es)f(a)g(\(*,G\))h(Join/Prune)c(message)k(up)s (dates)d(all)h(existing)f(\(S,G\)RPT-bit)h(en)m(tries.)39 b(The)25 b(router)g(ma)m(y)h(also)-125 3085 y(trigger)31 b(a)f(\(*,G\))i(Join/Prune)d(message)i(upstream)f(to)g(cause)h(the)g (same)f(up)s(dating)e(of)j(RPT-bit)e(settings)h(upstream)-125 3198 y(and)25 b(pull)e(do)m(wn)j(all)e(activ)m(e)j(sources')f(pac)m(k)m (ets.)41 b(If)25 b(the)h(arriving)d(\(*,G\))k(join)e(has)g(some)h (sources)g(included)d(in)h(its)h(prune)-125 3311 y(list,)31 b(then)h(the)g(corresp)s(onding)d(\(S,G\)RPT-bit)j(en)m(tries)f(are)h (left)g(unc)m(hanged)f(\(i.e.,)i(the)f(RPT-bit)e(remains)h(set)h(and) -125 3424 y(no)f(oif)f(is)f(added\).)-125 3667 y Fe(2.5)113 b(Steady)38 b(state)f(main)m(tenance)h(of)f(distribution)e(tree)i (\(i.e.,)g(router)g(state\))-125 3839 y Fk(In)29 b(the)g(steady)h (state)h(eac)m(h)f(router)f(sends)f(p)s(erio)s(dic)f(Join/Prune)g (messages)k(for)e(eac)m(h)h(activ)m(e)g(PIM)g(route)f(en)m(try;)h(the) -125 3952 y(Join/Prune)g(messages)i(are)g(sen)m(t)f(to)h(the)f(neigh)m (b)s(or)f(indicated)g(in)g(the)h(corresp)s(onding)e(en)m(try)-8 b(.)44 b(These)31 b(messages)h(are)-125 4065 y(sen)m(t)c(p)s(erio)s (dically)23 b(to)28 b(capture)f(state,)i(top)s(ology)-8 b(,)29 b(and)d(mem)m(b)s(ership)e(c)m(hanges.)41 b(A)27 b(Join/Prune)e(message)j(is)e(also)h(sen)m(t)-125 4178 y(on)36 b(an)g(ev)m(en)m(t-triggered)i(basis)d(eac)m(h)j(time)d(a)i (new)e(route)i(en)m(try)f(is)f(established)g(for)g(some)i(new)e(source) i(\(note)g(that)-125 4291 y(some)27 b(damping)e(function)g(ma)m(y)i(b)s (e)f(applied,)f(e.g.,)k(a)e(short)f(dela)m(y)h(to)g(allo)m(w)f(for)g (merging)g(of)g(new)g(Join)f(information\).)-125 4403 y(Join/Prune)g(messages)i(do)g(not)f(elicit)g(an)m(y)g(form)g(of)h (explicit)e(ac)m(kno)m(wledgmen)m(t;)k(routers)d(reco)m(v)m(er)i(from)e (lost)h(pac)m(k)m(ets)-125 4516 y(using)i(the)i(p)s(erio)s(dic)d (refresh)h(mec)m(hanism.)-125 4760 y Fe(2.6)113 b(Obtaining)36 b(RP)h(information)-125 4931 y Fk(T)-8 b(o)34 b(obtain)e(the)h(RP)f (information,)g(all)g(routers)g(within)e(a)k(PIM)e(domain)g(collect)h (Bo)s(otstrap)h(messages.)49 b(Bo)s(otstrap)-125 5044 y(messages)29 b(are)f(sen)m(t)h(hop-b)m(y-hop)e(within)e(the)j(domain;) g(the)g(domain's)f(b)s(o)s(otstrap)g(router)h(\(BSR\))g(is)f(resp)s (onsible)e(for)-125 5157 y(originating)32 b(the)h(Bo)s(otstrap)h (messages.)49 b(Bo)s(otstrap)34 b(messages)g(are)f(used)f(to)i(carry)f (out)g(a)g(dynamic)f(BSR)g(election)-125 5270 y(when)e(needed)g(and)g (to)h(distribute)d(RP)i(information)e(in)h(steady)i(state.)17 5383 y(A)k(domain)f(in)f(this)h(con)m(text)j(is)e(a)g(con)m(tiguous)g (set)h(of)f(routers)g(that)h(all)d(implemen)m(t)h(PIM)h(and)g(are)g (con\014gured)p eop %%Page: 8 9 8 8 bop -125 -149 a Fh(draft-ietf-idmr-PIM-SM-sp)s(ec-10.ps)2718 b Fk(8)-125 149 y(to)39 b(op)s(erate)g(within)c(a)j(common)g(b)s (oundary)e(de\014ned)h(b)m(y)h(PIM)g(Multicast)f(Border)h(Routers)g (\(PMBRs\).)64 b(PMBRs)-125 262 y(connect)32 b(eac)m(h)f(PIM)g(domain)e (to)i(the)g(rest)f(of)h(the)f(in)m(ternet.)17 375 y(Routers)43 b(use)g(a)h(set)g(of)g(a)m(v)-5 b(ailable)43 b(RPs)g(\(called)g(the)h Ff(RP-Set)p Fk(\))f(distributed)e(in)h(Bo)s(otstrap)i(messages)h(to)f (get)-125 488 y(the)35 b(prop)s(er)e(Group)g(to)j(RP)e(mapping.)51 b(The)33 b(follo)m(wing)g(paragraphs)h(summarize)f(the)i(mec)m(hanism;) g(details)f(of)g(the)-125 601 y(mec)m(hanism)c(ma)m(y)h(b)s(e)f(found)f (in)g(Sections)h(3.6)h(and)f(App)s(endix)e(6.2.)17 714 y(A)34 b(\(small\))f(set)i(of)g(routers,)g(within)d(a)i(domain,)h(are)f (con\014gured)g(as)g(candidate)g(BSRs)g(and,)h(through)f(a)g(simple) -125 827 y(election)d(mec)m(hanism,)g(a)g(single)e(BSR)i(is)f(selected) h(for)g(that)g(domain.)41 b(A)31 b(set)h(of)e(routers)h(within)d(a)k (domain)d(are)i(also)-125 940 y(con\014gured)f(as)h(candidate)g(RPs)f (\(C-RPs\);)h(t)m(ypically)e(these)i(will)d(b)s(e)i(the)h(same)g (routers)g(that)g(are)g(con\014gured)f(as)h(C-)-125 1053 y(BSRs.)49 b(Candidate)32 b(RPs)h(p)s(erio)s(dically)c(unicast)j (Candidate-RP-Adv)m(ertisemen)m(t)h(messages)h(\(C-RP-Advs\))f(to)h (the)-125 1166 y(BSR)23 b(of)g(that)g(domain.)37 b(C-RP-Advs)22 b(include)e(the)j(address)f(of)h(the)g(adv)m(ertising)e(C-RP)-8 b(,)23 b(as)g(w)m(ell)f(as)h(an)f(optional)g(group)-125 1279 y(address)35 b(and)h(a)g(mask)g(length)f(\014eld,)h(indicating)d (the)j(group)g(pre\014x\(es\))f(for)h(whic)m(h)e(the)i(candidacy)g(is)e (adv)m(ertised.)-125 1391 y(The)d(BSR)g(then)g(includes)d(a)k(set)f(of) h(these)f(Candidate-RPs)f(\(the)i(RP-Set\),)g(along)f(with)f(the)h (corresp)s(onding)e(group)-125 1504 y(pre\014xes,)e(in)d(Bo)s(otstrap)j (messages)f(it)g(p)s(erio)s(dically)c(originates.)39 b(Bo)s(otstrap)26 b(messages)h(are)f(distributed)d(hop-b)m(y-hop)-125 1617 y(throughout)30 b(the)h(domain.)17 1730 y(Routers)c(receiv)m(e)g (and)g(store)g(Bo)s(otstrap)h(messages)g(originated)e(b)m(y)h(the)g (BSR.)g(When)f(a)i(DR)f(gets)h(a)f(mem)m(b)s(ership)-125 1843 y(indication)g(from)h(IGMP)h(for)g(\(or)g(a)g(data)g(pac)m(k)m(et) i(from\))d(a)i(directly)d(connected)i(host,)h(for)e(a)h(group)g(for)f (whic)m(h)f(it)i(has)-125 1956 y(no)f(en)m(try)-8 b(,)28 b(the)g(DR)f(uses)g(a)g(hash)g(function)f(to)i(map)f(the)g(group)g (address)f(to)i(one)f(of)h(the)f(C-RPs)g(whose)g(Group-pre\014x)-125 2069 y(includes)37 b(the)i(group)f(\(see)i(Section)e(3.7\).)67 b(The)39 b(DR)g(then)f(sends)g(a)h(Join/Prune)e(message)j(to)m(w)m (ards)f(\(or)g(unicasts)-125 2182 y(Registers)31 b(to\))g(that)g(RP)-8 b(.)17 2295 y(The)35 b(Bo)s(otstrap)i(message)g(indicates)e(liv)m (eness)g(of)h(the)g(RPs)g(included)d(therein.)57 b(If)36 b(an)f(RP)h(is)f(included)e(in)i(the)-125 2408 y(message,)29 b(then)c(it)h(is)f(tagged)j(as)e(`up')g(at)g(the)h(routers;)g(while)d (RPs)i(not)g(included)d(in)i(the)h(message)h(are)g(remo)m(v)m(ed)g (from)-125 2521 y(the)h(list)d(of)i(RPs)g(o)m(v)m(er)h(whic)m(h)e(the)h (hash)f(algorithm)g(acts.)40 b(Eac)m(h)28 b(router)f(con)m(tin)m(ues)g (to)g(use)g(the)g(con)m(ten)m(ts)i(of)e(the)g(most)-125 2633 y(recen)m(tly)k(receiv)m(ed)g(Bo)s(otstrap)g(message)h(un)m(til)c (it)i(receiv)m(es)h(a)g(new)f(Bo)s(otstrap)h(message.)17 2746 y(If)d(a)h(PIM)g(domain)f(partitions,)g(eac)m(h)i(area)g (separated)g(from)e(the)h(old)f(BSR)h(will)d(elect)k(its)e(o)m(wn)h (BSR,)g(whic)m(h)f(will)-125 2859 y(distribute)f(an)h(RP-Set)h(con)m (taining)g(RPs)f(that)h(are)g(reac)m(hable)h(within)c(that)j (partition.)39 b(When)28 b(the)h(partition)f(heals,)-125 2972 y(another)k(election)g(will)d(o)s(ccur)i(automatically)h(and)f (only)g(one)h(of)f(the)h(BSRs)g(will)c(con)m(tin)m(ue)k(to)h(send)e (out)h(Bo)s(otstrap)-125 3085 y(messages.)53 b(As)34 b(is)f(exp)s(ected)h(at)h(the)f(time)g(of)g(a)h(partition)d(or)i (healing,)g(some)h(disruption)30 b(in)j(pac)m(k)m(et)j(deliv)m(ery)d (ma)m(y)-125 3198 y(o)s(ccur.)50 b(This)32 b(time)h(will)e(b)s(e)h(on)i (the)f(order)g(of)h(the)g(region's)f(round-trip)e(time)i(and)g(the)g(b) s(o)s(otstrap)g(router)g(timeout)-125 3311 y(v)-5 b(alue.)-125 3554 y Fe(2.7)113 b(In)m(terop)s(eration)36 b(with)h(dense)h(mo)s(de)f (proto)s(cols)g(suc)m(h)h(as)g(D)m(VMRP)-125 3726 y Fk(In)i(order)f(to) i(in)m(terop)s(erate)f(with)f(net)m(w)m(orks)h(that)h(run)d(dense-mo)s (de,)k Ff(br)-5 b(o)g(adc)g(ast)45 b(and)d(prune)p Fk(,)h(proto)s (cols,)g(suc)m(h)c(as)-125 3839 y(D)m(VMRP)-8 b(,)24 b(all)d(pac)m(k)m(ets)j(generated)g(within)19 b(a)k(PIM-SM)f(region)g (m)m(ust)g(b)s(e)f(pulled)f(out)i(to)h(that)g(region's)f(PIM)g (Multicast)-125 3952 y(Border)30 b(Routers)g(\(PMBRs\))h(and)e (injected)h(\(i.e.,)h(broadcast\))f(in)m(to)g(the)g(D)m(VMRP)h(net)m(w) m(ork.)42 b(A)30 b(PMBR)g(is)f(a)i(router)-125 4065 y(that)22 b(sits)e(at)h(the)g(b)s(oundary)e(of)i(a)g(PIM-SM)g(domain)e(and)h(in)m (terop)s(erates)h(with)e(other)i(t)m(yp)s(es)g(of)g(m)m(ulticast)f (routers)h(suc)m(h)-125 4178 y(as)h(those)g(that)g(run)e(D)m(VMRP)-8 b(.)24 b(Generally)c(a)i(PMBR)g(w)m(ould)f(sp)s(eak)g(b)s(oth)g(proto)s (cols)g(and)g(implemen)m(t)f(in)m(terop)s(erabilit)m(y)-125 4291 y(functions)27 b(not)h(required)e(b)m(y)i(regular)f(PIM)g (routers.)40 b(T)-8 b(o)28 b(supp)s(ort)e(in)m(terop)s(erabilit)m(y)-8 b(,)27 b(a)h(sp)s(ecial)e(en)m(try)i(t)m(yp)s(e,)h(referred)-125 4403 y(to)h(as)g(\(*,*,RP\),)h(m)m(ust)e(b)s(e)f(supp)s(orted)f(b)m(y)i (all)f(PIM)h(routers.)40 b(F)-8 b(or)30 b(this)e(reason)h(w)m(e)h (include)d(details)h(ab)s(out)h(\(*,*,RP\))-125 4516 y(en)m(try)i(handling)d(in)h(this)g(general)i(PIM)f(sp)s (eci\014cation.)17 4629 y(A)38 b(data)h(pac)m(k)m(et)i(will)36 b(matc)m(h)j(on)f(a)h(\(*,*,RP\))i(en)m(try)d(if)g(there)g(is)g(no)g (more)h(sp)s(eci\014c)e(en)m(try)i(\(suc)m(h)f(as)h(\(S,G\))g(or)-125 4742 y(\(*,G\)\))c(and)c(the)i(destination)e(group)h(address)f(in)g (the)h(pac)m(k)m(et)j(maps)c(to)i(the)g(RP)f(listed)f(in)g(the)h (\(*,*,RP\))i(en)m(try)-8 b(.)47 b(In)-125 4855 y(this)35 b(sense,)i(a)f(\(*,*,RP\))h(en)m(try)f(represen)m(ts)f(an)g (aggregation)j(of)d(all)g(the)g(groups)g(that)h(hash)f(to)h(that)g(RP) -8 b(.)36 b(PMBRs)-125 4968 y(initialize)d(\(*,*,RP\))j(state)h(for)d (eac)m(h)j(RP)d(in)g(the)h(domain's)f(RPset.)55 b(The)34 b(\(*,*,RP\))j(state)f(causes)f(the)g(PMBRs)h(to)-125 5081 y(send)25 b(\(*,*,RP\))i(Join/Prune)c(messages)j(to)m(w)m(ard)g (eac)m(h)g(of)f(the)g(activ)m(e)h(RPs)f(in)f(the)h(domain.)38 b(As)25 b(a)g(result)f(distribution)-125 5194 y(trees)29 b(are)f(built)e(that)j(carry)e(all)g(data)i(pac)m(k)m(ets)h(originated) d(within)e(the)j(PIM)g(domain)f(\(and)h(sen)m(t)g(to)h(the)f(RPs\))g (do)m(wn)-125 5307 y(to)k(the)e(PMBRs.)17 5420 y(PMBRs)39 b(are)g(also)g(resp)s(onsible)d(for)j(deliv)m(ering)e (externally-generated)i(pac)m(k)m(ets)i(to)e(routers)g(within)d(the)j (PIM)p eop %%Page: 9 10 9 9 bop -125 -149 a Fh(draft-ietf-idmr-PIM-SM-sp)s(ec-10.ps)2718 b Fk(9)-125 149 y(domain.)42 b(T)-8 b(o)32 b(do)f(so,)h(PMBRs)f (initially)d(encapsulate)j(externally-originated)f(pac)m(k)m(ets)j (\(i.e.,)f(receiv)m(ed)f(on)g(D)m(VMRP)-125 262 y(in)m(terfaces\))e(in) d(Register)h(messages)h(and)f(unicast)g(them)g(to)h(the)f(corresp)s (onding)f(RP)h(within)e(the)i(PIM)g(domain.)39 b(The)-125 375 y(Register)c(message)h(has)e(a)h(bit)e(indicating)g(that)i(it)f(w)m (as)g(originated)g(b)m(y)g(a)h(b)s(order)e(router)i(and)e(the)i(RP)f (cac)m(hes)i(the)-125 488 y(originating)g(PMBR's)i(address)e(in)g(the)h (route)g(en)m(try)h(so)f(that)h(duplicate)d(Registers)i(from)g(other)g (PMBRs)h(can)f(b)s(e)-125 601 y(declined)29 b(with)g(a)i(Register-Stop) g(message.)17 714 y(All)24 b(PIM)i(routers)f(m)m(ust)h(b)s(e)f(capable) h(of)g(supp)s(orting)d(\(*,*,RP\))k(state)g(and)f(in)m(terpreting)e (asso)s(ciated)i(Join/Prune)-125 827 y(messages.)40 b(W)-8 b(e)24 b(describ)s(e)d(the)j(handling)c(of)j(\(*,*,RP\))i(en)m(tries)e (and)g(messages)h(throughout)e(this)g(do)s(cumen)m(t;)k(ho)m(w)m(ev)m (er,)-125 940 y(detailed)j(PIM)h(Multicast)f(Border)h(Router)f (\(PMBR\))i(functions)d(will)f(b)s(e)i(sp)s(eci\014ed)f(in)g(a)i (separate)h(in)m(terop)s(erabilit)m(y)-125 1053 y(do)s(cumen)m(t)g (\(see)g(directory)-8 b(,)31 b(h)m(ttp://catarina.usc.edu/pim/in)m (terop/\).)-125 1288 y Fe(2.8)113 b(Multicast)36 b(data)i(pac)m(k)m(et) f(pro)s(cessing)-125 1460 y Fk(Data)i(pac)m(k)m(ets)f(are)f(pro)s (cessed)f(in)f(a)i(manner)f(similar)e(to)j(other)g(m)m(ulticast)f(sc)m (hemes.)60 b(A)37 b(router)f(\014rst)g(p)s(erforms)f(a)-125 1573 y(longest)k(matc)m(h)h(on)e(the)h(source)f(and)g(group)g(address)g (in)f(the)i(data)g(pac)m(k)m(et.)67 b(A)39 b(\(S,G\))g(en)m(try)g(is)e (matc)m(hed)j(\014rst)d(if)-125 1686 y(one)g(exists;)i(a)e(\(*,G\))h (en)m(try)e(is)g(matc)m(hed)h(otherwise.)58 b(If)35 b(neither)h(state)h (exists,)h(then)e(a)h(\(*,*,RP\))h(en)m(try)e(matc)m(h)h(is)-125 1799 y(attempted)e(as)f(follo)m(ws:)46 b(the)33 b(router)h(hashes)f(on) g(G)h(to)g(iden)m(tify)e(the)h(RP)h(for)f(group)g(G,)h(and)f(lo)s(oks)f (for)i(a)g(\(*,*,RP\))-125 1912 y(en)m(try)27 b(that)g(has)e(this)g(RP) h(address)f(asso)s(ciated)i(with)e(it.)39 b(If)25 b(none)h(of)g(the)h (ab)s(o)m(v)m(e)g(exists,)g(then)f(the)g(pac)m(k)m(et)i(is)d(dropp)s (ed.)-125 2025 y(If)39 b(a)g(state)i(is)d(matc)m(hed,)k(the)d(router)g (compares)h(the)f(in)m(terface)h(on)f(whic)m(h)e(the)j(pac)m(k)m(et)h (arriv)m(ed)d(to)i(the)f(incoming)-125 2137 y(in)m(terface)27 b(\014eld)d(in)g(the)i(matc)m(hed)h(route)f(en)m(try)-8 b(.)40 b(If)25 b(the)h(iif)e(c)m(hec)m(k)j(fails)d(the)i(pac)m(k)m(et)i (is)d(dropp)s(ed,)f(otherwise)i(the)f(pac)m(k)m(et)-125 2250 y(is)30 b(forw)m(arded)g(to)h(all)e(in)m(terfaces)i(listed)e(in)g (the)h(outgoing)h(in)m(terface)g(list.)17 2363 y(Some)k(sp)s(ecial)e (actions)i(are)g(needed)g(to)g(deliv)m(er)f(pac)m(k)m(ets)j(con)m(tin)m (uously)d(while)f(switc)m(hing)g(from)h(the)i(shared)e(to)-125 2476 y(shortest-path)41 b(tree.)70 b(In)39 b(particular,)i(when)e(a)h (\(S,G\))h(en)m(try)f(is)f(matc)m(hed,)k(incoming)c(pac)m(k)m(ets)j (are)e(forw)m(arded)f(as)-125 2589 y(follo)m(ws:)-13 2735 y(1.)46 b(If)30 b(the)g(SPT-bit)f(is)g(set,)j(then:)141 2907 y(\(a\))47 b(if)34 b(the)h(incoming)e(in)m(terface)j(is)d(the)j (same)f(as)g(a)g(matc)m(hing)g(\(S,G\))h(iif,)e(the)h(pac)m(k)m(et)i (is)d(forw)m(arded)h(to)g(the)303 3020 y(oif-list)29 b(of)h(\(S,G\).)136 3149 y(\(b\))46 b(if)29 b(the)i(incoming)e(in)m (terface)h(is)g(di\013eren)m(t)g(than)g(a)h(matc)m(hing)f(\(S,G\))h (iif)e(,)h(the)h(pac)m(k)m(et)h(is)e(discarded.)-13 3320 y(2.)46 b(If)30 b(the)g(SPT-bit)f(is)g(cleared,)i(then:)141 3491 y(\(a\))47 b(if)34 b(the)h(incoming)e(in)m(terface)j(is)d(the)j (same)f(as)g(a)g(matc)m(hing)g(\(S,G\))h(iif,)e(the)h(pac)m(k)m(et)i (is)d(forw)m(arded)h(to)g(the)303 3604 y(oif-list)29 b(of)i(\(S,G\).)g(In)f(addition,)g(the)h(SPT)e(bit)h(is)g(set)h(for)f (that)i(en)m(try)f(if)e(the)i(incoming)f(in)m(terface)h(di\013ers)303 3717 y(from)f(the)g(incoming)f(in)m(terface)i(of)g(the)f(\(*,G\))i(or)f (\(*,*,RP\))h(en)m(try)-8 b(.)136 3847 y(\(b\))46 b(if)26 b(the)i(incoming)d(in)m(terface)j(is)f(di\013eren)m(t)f(than)h(a)h (matc)m(hing)g(\(S,G\))g(iif,)e(the)i(incoming)d(in)m(terface)j(is)f (tested)303 3960 y(against)33 b(a)g(matc)m(hing)g(\(*,G\))h(or)f (\(*,*,RP\))h(en)m(try)-8 b(.)49 b(If)32 b(the)h(iif)e(is)h(the)g(same) i(as)f(one)g(of)f(those,)j(the)d(pac)m(k)m(et)303 4073 y(is)d(forw)m(arded)h(to)h(the)g(oif-list)d(of)j(the)f(matc)m(hing)h (en)m(try)-8 b(.)146 4202 y(\(c\))47 b(Otherwise)29 b(the)h(iif)f(do)s (es)h(not)h(matc)m(h)g(an)m(y)g(en)m(try)f(for)g(G)h(and)f(the)g(pac)m (k)m(et)j(is)c(discarded.)17 4373 y(Data)38 b(pac)m(k)m(ets)g(nev)m(er) f(trigger)f(prunes.)58 b(Ho)m(w)m(ev)m(er,)40 b(data)d(pac)m(k)m(ets)h (ma)m(y)g(trigger)e(actions)h(that)g(in)e(turn)g(trigger)-125 4486 y(prunes.)k(F)-8 b(or)31 b(example,)f(when)f(router)h Ff(B)g Fk(in)f(\014gure)g(3)h(decides)g(to)g(switc)m(h)g(to)g(SP-tree)h (at)g(step)f(3,)g(it)g(creates)h(a)g(\(S,G\))-125 4599 y(en)m(try)g(with)e(SPT-bit)f(set)j(to)g(0.)41 b(When)30 b(data)h(pac)m(k)m(ets)h(from)e(S)f(arriv)m(e)h(at)h(in)m(terface)g(2)f (of)h Ff(B)p Fk(,)f Ff(B)g Fk(sets)h(the)f(SPT-bit)f(to)-125 4712 y(1)k(since)f(the)g(iif)f(for)h(\(*,G\))i(is)e(di\013eren)m(t)f (than)h(that)h(for)f(\(S,G\).)i(This)c(triggers)j(the)f(sending)f(of)h (prunes)f(to)m(w)m(ards)i(the)-125 4825 y(RP)-8 b(.)-125 5061 y Fe(2.9)113 b(Op)s(eration)37 b(o)m(v)m(er)g(Multi-access)g(Net)m (w)m(orks)-125 5232 y Fk(This)f(section)i(describ)s(es)d(a)j(few)f (additional)e(proto)s(col)j(mec)m(hanisms)e(needed)h(to)h(op)s(erate)g (PIM)g(o)m(v)m(er)g(m)m(ulti-access)-125 5345 y(net)m(w)m(orks:)57 b(Designated)38 b(Router)g(election,)i(Assert)e(messages)h(to)g(resolv) m(e)f(parallel)e(paths,)k(and)d(the)h(Join/Prune-)-125 5458 y(Suppression-Timer)27 b(to)k(suppress)d(redundan)m(t)h(Joins)g (on)i(m)m(ulti-access)f(net)m(w)m(orks.)p eop %%Page: 10 11 10 10 bop -125 -149 a Fh(draft-ietf-idmr-PIM-SM-sp)s(ec-10.ps)2673 b Fk(10)-125 149 y Fn(Designated)36 b(router)e(election)-125 321 y Fk(When)j(there)h(are)f(m)m(ultiple)e(routers)i(connected)h(to)g (a)g(m)m(ulti-access)f(net)m(w)m(ork,)j(one)e(of)f(them)g(m)m(ust)g(b)s (e)g(c)m(hosen)h(to)-125 434 y(op)s(erate)30 b(as)g(the)f(designated)g (router)g(\(DR\))h(at)g(an)m(y)g(p)s(oin)m(t)e(in)g(time.)40 b(The)29 b(DR)g(is)g(resp)s(onsible)d(for)j(sending)e(triggered)-125 547 y(Join/Prune)i(and)h(Register)g(messages)i(to)m(w)m(ard)f(the)g(RP) -8 b(.)17 660 y(A)25 b(simple)e(designated)h(router)h(\(DR\))h (election)f(mec)m(hanism)g(is)f(used)g(for)h(b)s(oth)f(SM)h(and)g (traditional)e(IP)i(m)m(ulticast)-125 773 y(routing.)58 b(Neigh)m(b)s(oring)34 b(routers)i(send)g(Hello)f(messages)i(to)g(eac)m (h)h(other.)58 b(The)36 b(sender)f(with)g(the)h(largest)h(net)m(w)m (ork)-125 886 y(la)m(y)m(er)e(address)e(assumes)g(the)h(role)f(of)h (DR.)g(Eac)m(h)g(router)g(connected)g(to)h(the)f(m)m(ulti-access)g(LAN) f(sends)g(the)h(Hellos)-125 999 y(p)s(erio)s(dically)27 b(in)i(order)h(to)h(adapt)g(to)g(c)m(hanges)g(in)e(router)i(status.) -125 1239 y Fn(P)m(arallel)36 b(paths)e(to)h(a)g(source)h(or)f(the)f (RP{Assert)i(pro)s(cess)-125 1410 y Fk(If)25 b(a)g(router)g(receiv)m (es)g(a)g(m)m(ulticast)g(datagram)g(on)g(a)g(m)m(ulti-access)g(LAN)g (from)f(a)h(source)g(whose)g(corresp)s(onding)e(\(S,G\))-125 1523 y(outgoing)31 b(in)m(terface)f(list)e(includes)g(the)i(in)m (terface)g(to)g(that)h(LAN,)f(the)g(pac)m(k)m(et)i(m)m(ust)d(b)s(e)g(a) h(duplicate.)40 b(In)29 b(this)f(case)j(a)-125 1636 y(single)26 b(forw)m(arder)g(m)m(ust)h(b)s(e)f(elected.)40 b(Using)26 b(Assert)h(messages)g(addressed)f(to)h(`224.0.0.13')k(\(ALL-PIM-R)m (OUTERS)-125 1749 y(group\))41 b(on)g(the)g(LAN,)h(upstream)e(routers)h (can)g(resolv)m(e)g(whic)m(h)f(one)h(will)e(act)j(as)f(the)g(forw)m (arder.)72 b(Do)m(wnstream)-125 1862 y(routers)27 b(listen)f(to)i(the)f (Asserts)g(so)g(they)g(kno)m(w)g(whic)m(h)f(one)i(w)m(as)f(elected,)i (and)d(therefore)i(where)e(to)i(send)e(subsequen)m(t)-125 1975 y(Joins.)42 b(T)m(ypically)29 b(this)h(is)h(the)g(same)g(as)h(the) f(do)m(wnstream)g(router's)g(RPF)g(\(Rev)m(erse)i(P)m(ath)e(F)-8 b(orw)m(arding\))32 b(neigh)m(b)s(or;)-125 2088 y(but)f(there)h(are)g (circumstances)g(where)f(this)g(migh)m(t)g(not)h(b)s(e)f(the)h(case,)h (e.g.,)h(when)d(using)f(m)m(ultiple)f(unicast)i(routing)-125 2201 y(proto)s(cols)25 b(on)g(that)g(LAN.)g(The)f(RPF)h(neigh)m(b)s(or) f(for)g(a)h(particular)e(source)i(\(or)g(RP\))g(is)f(the)h(next-hop)g (router)f(to)i(whic)m(h)-125 2314 y(pac)m(k)m(ets)k(are)d(forw)m(arded) g(en)g(route)h(to)g(that)g(source)g(\(or)g(RP\);)f(and)g(therefore)h (is)e(considered)h(a)g(go)s(o)s(d)h(path)f(via)g(whic)m(h)-125 2426 y(to)32 b(accept)f(pac)m(k)m(ets)i(from)d(that)g(source.)17 2539 y(The)e(upstream)h(router)g(elected)g(is)g(the)g(one)g(that)h(has) f(the)g(shortest)h(distance)e(to)i(the)g(source.)40 b(Therefore,)29 b(when)-125 2652 y(a)j(pac)m(k)m(et)h(is)d(receiv)m(ed)h(on)g(an)f (outgoing)i(in)m(terface)f(a)h(router)e(sends)g(an)h(Assert)g(message)h (on)f(the)g(m)m(ulti-access)g(LAN)-125 2765 y(indicating)39 b(what)i(metric)g(it)g(uses)g(to)h(reac)m(h)f(the)h(source)f(of)g(the)h (data)g(pac)m(k)m(et.)75 b(The)40 b(router)h(with)f(the)h(smallest)-125 2878 y(n)m(umerical)34 b(metric)h(\(with)f(ties)h(brok)m(en)g(b)m(y)g (highest)g(address\))g(will)d(b)s(ecome)k(the)f(forw)m(arder.)55 b(All)34 b(other)h(upstream)-125 2991 y(routers)g(will)c(delete)k(the)g (in)m(terface)g(from)f(their)f(outgoing)i(in)m(terface)g(list.)52 b(The)34 b(do)m(wnstream)g(routers)g(also)h(do)f(the)-125 3104 y(comparison)c(in)f(case)j(the)e(forw)m(arder)g(is)f(di\013eren)m (t)h(than)g(the)h(RPF)f(neigh)m(b)s(or.)17 3217 y(Asso)s(ciated)44 b(with)e(the)i(metric)g(is)f(a)h(metric)f(preference)h(v)-5 b(alue.)81 b(This)42 b(is)g(pro)m(vided)h(to)h(deal)g(with)e(the)i (case)-125 3330 y(where)29 b(the)h(upstream)e(routers)h(ma)m(y)h(run)e (di\013eren)m(t)g(unicast)h(routing)f(proto)s(cols.)40 b(The)29 b(n)m(umerically)e(smaller)h(metric)-125 3443 y(preference)f(is)g(alw)m(a)m(ys)g(preferred.)39 b(The)26 b(metric)h(preference)g(is)f(treated)i(as)f(the)h(high-order)d(part)i (of)g(an)g(assert)h(metric)-125 3556 y(comparison.)40 b(Therefore,)30 b(a)g(metric)f(v)-5 b(alue)29 b(can)h(b)s(e)e(compared) i(with)e(another)i(metric)f(v)-5 b(alue)29 b(pro)m(vided)f(b)s(oth)h (metric)-125 3668 y(preferences)h(are)f(the)h(same.)40 b(A)30 b(metric)f(preference)g(can)h(b)s(e)e(assigned)h(p)s(er)f (unicast)h(routing)f(proto)s(col)h(and)g(needs)g(to)-125 3781 y(b)s(e)h(consisten)m(t)h(for)f(all)f(routers)h(on)h(the)f(m)m (ulti-access)h(net)m(w)m(ork.)17 3894 y(Asserts)j(are)g(also)g(needed)f (for)h(\(*,G\))h(en)m(tries)f(since)f(an)h(RP-T)-8 b(ree)34 b(and)g(an)f(SP-T)-8 b(ree)34 b(for)g(the)g(same)g(group)g(ma)m(y)-125 4007 y(b)s(oth)f(cross)h(the)f(same)h(m)m(ulti-access)g(net)m(w)m(ork.) 50 b(When)34 b(an)f(assert)h(is)e(sen)m(t)i(for)f(a)h(\(*,G\))h(en)m (try)-8 b(,)35 b(the)f(\014rst)f(bit)f(in)g(the)-125 4120 y(metric)38 b(preference)h(\(RPT-bit\))e(is)g(alw)m(a)m(ys)i(set)g (to)g(1)f(to)h(indicate)f(that)g(this)f(path)h(corresp)s(onds)f(to)i (the)g(RP)e(tree,)-125 4233 y(and)c(that)h(the)g(matc)m(h)h(m)m(ust)e (b)s(e)g(done)g(on)h(\(*,G\))h(if)d(it)h(exists.)50 b(F)-8 b(urthermore,)35 b(the)e(RPT-bit)g(is)f(alw)m(a)m(ys)i(cleared)g(for) -125 4346 y(metric)g(preferences)g(that)g(refer)g(to)h(SP-tree)f(en)m (tries;)i(this)d(causes)h(an)g(SP-tree)g(path)g(to)h(alw)m(a)m(ys)f(lo) s(ok)g(b)s(etter)g(than)-125 4459 y(an)39 b(RP-tree)g(path.)64 b(When)38 b(the)g(SP-tree)h(and)e(RPtree)i(cross)f(the)h(same)f(LAN,)h (this)e(mec)m(hanism)h(eliminates)e(the)-125 4572 y(duplicates)29 b(that)i(w)m(ould)e(otherwise)h(b)s(e)g(carried)f(o)m(v)m(er)j(the)f (LAN.)17 4685 y(In)c(case)j(the)f(pac)m(k)m(et,)i(or)d(the)h(Assert)g (message,)h(matc)m(hes)g(on)e(oif)g(for)g(\(*,*,RP\))j(en)m(try)-8 b(,)30 b(a)f(\(*,G\))h(en)m(try)f(is)e(created,)-125 4798 y(and)j(asserts)h(tak)m(e)h(place)e(as)h(if)e(the)i(matc)m(hing)f (state)i(w)m(ere)f(\(*,G\).)17 4910 y(The)f(DR)h(ma)m(y)g(lose)g(the)g (\(*,G\))h(Assert)f(pro)s(cess)g(to)g(another)g(router)g(on)g(the)g (LAN)f(if)g(there)h(are)g(m)m(ultiple)e(paths)-125 5023 y(to)36 b(the)f(RP)f(through)g(the)g(LAN.)h(F)-8 b(rom)36 b(then)e(on,)i(the)e(DR)h(is)f(no)g(longer)g(the)h(last-hop)f(router)h (for)f(lo)s(cal)g(receiv)m(ers)-125 5136 y(and)k(remo)m(v)m(es)i(the)f (LAN)f(from)g(its)g(\(*,G\))i(oif)e(list.)64 b(The)38 b(winning)d(router)k(b)s(ecomes)f(the)h(last-hop)f(router)g(and)g(is) -125 5249 y(resp)s(onsible)28 b(for)i(sending)f(\(*,G\))j(join)d (messages)j(to)f(the)f(RP)-8 b(.)p eop %%Page: 11 12 11 11 bop -125 -149 a Fh(draft-ietf-idmr-PIM-SM-sp)s(ec-10.ps)2673 b Fk(11)-125 149 y Fn(Join/Prune)37 b(suppression)-125 321 y Fk(Join/Prune)23 b(suppression)f(ma)m(y)j(b)s(e)f(used)f(on)i(m)m (ulti-access)g(LANs)f(to)h(reduce)f(duplicate)f(con)m(trol)i(message)h (o)m(v)m(erhead;)-125 434 y(it)f(is)e(not)i(required)e(for)i(correct)h (p)s(erformance)e(of)h(the)f(proto)s(col.)39 b(If)24 b(a)i(Join/Prune)c(message)k(arriv)m(es)f(and)f(matc)m(hes)i(on)-125 547 y(the)h(incoming)e(in)m(terface)i(for)f(an)g(existing)g(\(S,G\),)h (\(*,G\),)i(or)d(\(*,*,RP\))i(route)f(en)m(try)-8 b(,)28 b(and)e(the)h(Holdtime)e(included)f(in)-125 660 y(the)31 b(Join/Prune)d(message)j(is)e(greater)j(than)e(the)g(recipien)m(t's)f (o)m(wn)h([Join/Prune-Holdtime])f(\(with)g(ties)h(resolv)m(ed)g(in)-125 773 y(fa)m(v)m(or)h(of)e(the)h(higher)e(net)m(w)m(ork)i(la)m(y)m(er)g (address\),)f(a)h(timer)e(\(the)i(Join/Prune-Suppression-timer\))25 b(in)j(the)h(recipien)m(t's)-125 886 y(route)45 b(en)m(try)h(ma)m(y)f (b)s(e)f(started)h(to)h(suppress)d(further)g(Join/Prune)g(messages.)85 b(After)45 b(this)f(timer)g(expires,)j(the)-125 999 y(recipien)m(t)32 b(triggers)f(a)i(Join/Prune)d(message,)k(and)d(resumes)h(sending)e(p)s (erio)s(dic)f(Join/Prunes,)i(for)h(this)f(en)m(try)-8 b(.)46 b(The)-125 1111 y(Join/Prune-Suppression-timer)35 b(should)i(b)s(e)h(restarted)i(eac)m(h)g(time)f(a)g(Join/Prune)e (message)k(is)d(receiv)m(ed)h(with)f(a)-125 1224 y(higher)29 b(Holdtime.)-125 1468 y Fe(2.10)113 b(Unicast)37 b(Routing)f(Changes) -125 1639 y Fk(When)27 b(unicast)f(routing)g(c)m(hanges,)j(an)d(RPF)h (c)m(hec)m(k)i(is)c(done)i(on)g(all)e(activ)m(e)j(\(S,G\),)g(\(*,G\))h (and)d(\(*,*,RP\))i(en)m(tries,)g(and)-125 1752 y(all)23 b(a\013ected)i(exp)s(ected)f(incoming)f(in)m(terfaces)h(are)g(up)s (dated.)37 b(In)23 b(particular,)h(if)e(the)i(new)g(incoming)e(in)m (terface)i(app)s(ears)-125 1865 y(in)e(the)h(outgoing)g(in)m(terface)g (list,)g(it)g(is)e(deleted)i(from)f(the)h(outgoing)g(in)m(terface)g (list.)37 b(The)22 b(previous)g(incoming)f(in)m(terface)-125 1978 y(ma)m(y)33 b(b)s(e)f(added)f(to)i(the)f(outgoing)h(in)m(terface)g (list)d(b)m(y)i(a)h(subsequen)m(t)e(Join/Prune)g(from)g(do)m(wnstream.) 46 b(Join/Prune)-125 2091 y(messages)34 b(receiv)m(ed)g(on)f(the)g (curren)m(t)g(incoming)e(in)m(terface)j(are)f(ignored.)48 b(Join/Prune)31 b(messages)j(receiv)m(ed)f(on)g(new)-125 2204 y(in)m(terfaces)k(or)f(existing)f(outgoing)i(in)m(terfaces)f(are)h (not)f(ignored.)57 b(Other)35 b(outgoing)i(in)m(terfaces)f(are)h(left)f (as)g(is)f(un)m(til)-125 2317 y(they)27 b(are)g(explicitly)d(pruned)h (b)m(y)h(do)m(wnstream)h(routers)f(or)h(are)g(timed)f(out)g(due)g(to)i (lac)m(k)f(of)g(appropriate)e(Join/Prune)-125 2430 y(messages.)44 b(If)30 b(the)h(router)g(has)g(a)g(\(S,G\))h(en)m(try)f(with)e(the)i (SPT-bit)f(set,)i(and)e(the)h(up)s(dated)f(iif\(S,G\))f(do)s(es)i Ff(not)h Fk(di\013er)-125 2543 y(from)e(iif\(*,G\))h(or)f (iif\(*,*,RP\),)h(then)f(the)g(router)h(resets)f(the)h(SPT-bit.)17 2656 y(The)f(router)h(m)m(ust)g(send)g(a)g(Join/Prune)f(message)i(with) e(S)h(in)e(the)j(Join)e(list)g(out)h(an)m(y)h(new)e(incoming)g(in)m (terfaces)-125 2769 y(to)37 b(inform)c(upstream)i(routers)g(that)h(it)f (exp)s(ects)g(m)m(ulticast)g(datagrams)h(o)m(v)m(er)h(the)f(in)m (terface.)56 b(It)35 b(ma)m(y)h(also)f(send)g(a)-125 2881 y(Join/Prune)28 b(message)j(with)e(S)g(in)f(the)i(Prune)f(list)f (out)i(the)g(old)f(incoming)g(in)m(terface,)h(if)f(the)h(link)e(is)g (op)s(erational,)i(to)-125 2994 y(inform)f(upstream)h(routers)g(that)h (this)e(part)h(of)h(the)g(distribution)26 b(tree)31 b(is)f(going)g(a)m (w)m(a)m(y)-8 b(.)-125 3238 y Fe(2.11)113 b(PIM-SM)38 b(for)f(In)m(ter-Domain)f(Multicast)-125 3409 y Fk(F)-8 b(uture)25 b(do)s(cumen)m(ts)e(will)f(address)h(the)h(use)g(of)g (PIM-SM)g(as)g(a)h(bac)m(kb)s(one)f(in)m(ter-domain)f(m)m(ulticast)g (routing)g(proto)s(col.)-125 3522 y(Design)k(c)m(hoices)g(cen)m(ter)g (primarily)c(around)i(the)i(distribution)22 b(and)k(usage)h(of)g(RP)f (information)e(for)i(wide)f(area,)k(in)m(ter-)-125 3635 y(domain)h(groups.)-125 3879 y Fe(2.12)113 b(Securit)m(y)-125 4050 y Fk(All)27 b(PIM)i(con)m(trol)g(messages)g(ma)m(y)g(use)f(IPsec)h ([6])g(to)g(address)f(securit)m(y)g(concerns.)40 b(Securit)m(y)28 b(mec)m(hanisms)f(are)i(lik)m(ely)-125 4163 y(to)j(b)s(e)d(enhanced)h (in)f(the)i(near)f(future.)p eop %%Page: 12 13 12 12 bop -125 -149 a Fh(draft-ietf-idmr-PIM-SM-sp)s(ec-10.ps)2673 b Fk(12)-125 149 y Fg(3)135 b(Detailed)47 b(Proto)t(col)f(Description) -125 352 y Fk(This)30 b(section)i(describ)s(es)e(the)i(proto)s(col)f (op)s(erations)g(from)h(the)f(p)s(ersp)s(ectiv)m(e)g(of)h(an)f (individual)d(router)j(implemen)m(ta-)-125 465 y(tion.)41 b(In)29 b(particular,)g(for)h(eac)m(h)i(message)f(t)m(yp)s(e)g(w)m(e)g (describ)s(e)e(ho)m(w)h(it)g(is)f(generated)j(and)d(pro)s(cessed.)-125 709 y Fe(3.1)113 b(Hello)-125 880 y Fk(Hello)30 b(messages)i(are)e(sen) m(t)h(so)g(neigh)m(b)s(oring)d(routers)i(can)h(disco)m(v)m(er)g(eac)m (h)g(other.)-125 1120 y Fn(3.1.1)106 b(Sending)35 b(Hellos)-125 1292 y Fk(Hello)c(messages)h(are)f(sen)m(t)g(p)s(erio)s(dically)d(b)s (et)m(w)m(een)j(PIM)g(neigh)m(b)s(ors,)f(ev)m(ery)i([Hello-P)m(erio)s (d])e(seconds.)42 b(This)29 b(informs)-125 1405 y(routers)c(what)g(in)m (terfaces)g(ha)m(v)m(e)h(PIM)f(neigh)m(b)s(ors.)38 b(Hello)24 b(messages)i(are)f(m)m(ulticast)g(using)e(address)h(224.0.0.13)29 b(\(ALL-)-125 1518 y(PIM-R)m(OUTERS)i(group\).)42 b(The)31 b(pac)m(k)m(et)i(includes)28 b(a)j(Holdtime,)g(set)g(to)h ([Hello-Holdtime],)f(for)g(neigh)m(b)s(ors)e(to)j(k)m(eep)-125 1631 y(the)f(information)e(v)-5 b(alid.)39 b(Hellos)29 b(are)i(sen)m(t)g(on)f(all)g(t)m(yp)s(es)g(of)h(comm)m(unication)e (links.)-125 1871 y Fn(3.1.2)106 b(Receiving)36 b(Hellos)-125 2043 y Fk(When)g(a)h(router)f(receiv)m(es)h(a)f(Hello)g(message,)i(it)e (stores)h(the)f(net)m(w)m(ork)h(la)m(y)m(er)f(address)g(for)f(that)i (neigh)m(b)s(or,)g(sets)f(its)-125 2155 y(Neigh)m(b)s(or-timer)24 b(for)g(the)g(Hello)g(sender)f(to)i(the)f(Holdtime)g(included)d(in)i (the)h(Hello,)i(and)d(determines)g(the)i(Designated)-125 2268 y(Router)31 b(\(DR\))g(for)f(that)g(in)m(terface.)42 b(The)29 b(highest)g(addressed)h(system)g(is)f(elected)i(DR.)f(Eac)m(h) h(Hello)f(receiv)m(ed)g(causes)-125 2381 y(the)h(DR's)g(address)e(to)i (b)s(e)f(up)s(dated.)17 2494 y(When)e(a)i(router)f(that)g(is)f(the)i (activ)m(e)g(DR)f(receiv)m(es)h(a)f(Hello)g(from)g(a)g(new)f(neigh)m(b) s(or)g(\(i.e.,)i(from)f(an)g(address)f(that)-125 2607 y(is)35 b(not)h(y)m(et)h(in)e(the)g(DRs)h(neigh)m(b)s(or)f(table\),)i (the)f(DR)g(unicasts)f(its)g(most)h(recen)m(t)h(RP-set)f(information)f (to)h(the)g(new)-125 2720 y(neigh)m(b)s(or.)-125 2960 y Fn(3.1.3)106 b(Timing)34 b(out)h(neigh)m(b)s(or)h(en)m(tries)-125 3132 y Fk(A)27 b(p)s(erio)s(dic)e(pro)s(cess)h(is)g(run)f(to)j(time)f (out)g(PIM)f(neigh)m(b)s(ors)g(that)h(ha)m(v)m(e)h(not)f(sen)m(t)h (Hellos.)39 b(If)26 b(the)h(DR)g(has)g(gone)h(do)m(wn,)-125 3245 y(a)34 b(new)f(DR)g(is)f(c)m(hosen)i(b)m(y)f(scanning)f(all)g (neigh)m(b)s(ors)g(on)h(the)g(in)m(terface)h(and)f(selecting)g(the)g (new)g(DR)g(to)h(b)s(e)f(the)g(one)-125 3358 y(with)h(the)h(highest)f (net)m(w)m(ork)i(la)m(y)m(er)f(address.)53 b(If)35 b(an)f(in)m(terface) i(has)e(gone)i(do)m(wn,)f(the)g(router)g(ma)m(y)g(optionally)f(time) -125 3470 y(out)d(all)e(PIM)i(neigh)m(b)s(ors)e(asso)s(ciated)h(with)f (the)i(in)m(terface.)-125 3714 y Fe(3.2)113 b(Join/Prune)-125 3886 y Fk(Join/Prune)33 b(messages)i(are)g(sen)m(t)g(to)g(join)e(or)h (prune)f(a)i(branc)m(h)e(o\013)i(of)f(the)h(m)m(ulticast)f (distribution)c(tree.)53 b(A)35 b(single)-125 3998 y(message)d(con)m (tains)f(b)s(oth)f(a)h(join)e(and)h(prune)f(list,)g(either)h(one)h(of)g (whic)m(h)e(ma)m(y)i(b)s(e)f(n)m(ull.)39 b(Eac)m(h)31 b(list)f(con)m(tains)g(a)h(set)g(of)-125 4111 y(source)26 b(addresses,)g(indicating)d(the)j(source-sp)s(eci\014c)e(trees)i(or)g (shared)e(tree)i(that)g(the)g(router)f(w)m(an)m(ts)h(to)g(join)e(or)i (prune.)-125 4351 y Fn(3.2.1)106 b(Sending)35 b(Join/Prune)h(Messages) -125 4523 y Fk(Join/Prune)j(messages)i(are)g(merged)f(suc)m(h)g(that)g (a)h(message)g(sen)m(t)g(to)g(a)f(particular)f(upstream)g(neigh)m(b)s (or,)j(N,)e(in-)-125 4636 y(cludes)31 b(all)f(of)i(the)g(curren)m(t)f (joined)f(and)h(pruned)f(sources)h(that)i(are)e(reac)m(hed)i(via)e(N;)h (according)f(to)i(unicast)d(routing)-125 4749 y(Join/Prune)e(messages)i (are)f(m)m(ulticast)g(to)h(all)e(routers)h(on)g(m)m(ulti-access)g(net)m (w)m(orks)h(with)e(the)h(target)i(address)d(set)i(to)-125 4862 y(the)j(next)f(hop)g(router)g(to)m(w)m(ards)g(S)g(or)g(RP)-8 b(.)33 b(Join/Prune)d(messages)j(are)f(sen)m(t)h(ev)m(ery)g ([Join/Prune-P)m(erio)s(d])d(seconds.)-125 4975 y(In)37 b(the)g(future)f(w)m(e)h(will)d(in)m(tro)s(duce)i(mec)m(hanisms)g(to)i (rate-limit)d(this)h(con)m(trol)h(tra\016c)h(on)f(a)g(hop)f(b)m(y)h (hop)f(basis,)i(in)-125 5088 y(order)31 b(to)h(a)m(v)m(oid)g(excessiv)m (e)h(o)m(v)m(erhead)f(on)g(small)d(links.)42 b(In)31 b(addition,)f(certain)h(ev)m(en)m(ts)i(cause)f(triggered)f(Join/Prune) -125 5201 y(messages)h(to)f(b)s(e)f(sen)m(t.)p eop %%Page: 13 14 13 13 bop -125 -149 a Fh(draft-ietf-idmr-PIM-SM-sp)s(ec-10.ps)2673 b Fk(13)-125 149 y Fn(3.2.1.1)106 b(P)m(erio)s(dic)47 b(Join/Prune)g(Messages)92 b Fk(A)40 b(router)g(sends)f(a)h(p)s(erio)s (dic)d(Join/Prune)i(message)i(to)f(eac)m(h)-125 262 y(distinct)33 b(RPF)h(neigh)m(b)s(or)f(asso)s(ciated)h(with)f(eac)m(h)i(\(S,G\),)g (\(*,G\))h(and)d(\(*,*,RP\))j(en)m(try)-8 b(.)53 b(Join/Prune)32 b(messages)j(are)-125 375 y(only)g(sen)m(t)g(if)f(the)h(RPF)g(neigh)m (b)s(or)f(is)g(a)h(PIM)g(neigh)m(b)s(or.)54 b(A)35 b(p)s(erio)s(dic)d (Join/Prune)h(message)j(sen)m(t)g(to)g(a)f(particular)-125 488 y(RPF)c(neigh)m(b)s(or)e(is)g(constructed)i(as)g(follo)m(ws:)-13 701 y(1.)46 b(Eac)m(h)36 b(router)g(determines)f(the)h(RP)g(for)f(a)h (\(*,G\))i(en)m(try)e(b)m(y)g(using)e(the)i(hash)g(function)e(describ)s (ed.)55 b(The)36 b(RP)103 814 y(address)31 b(\(with)f(RPT)i(and)f(W)m (C)h(bits)f(set\))i(is)d(included)f(in)i(the)h(join)f(list)f(of)i(a)g (p)s(erio)s(dic)d(Join/Prune)h(message)103 927 y(under)f(the)h(follo)m (wing)f(conditions:)141 1114 y(\(a\))47 b(The)26 b(Join/Prune)g (message)i(is)e(b)s(eing)g(sen)m(t)h(to)h(the)f(RPF)h(neigh)m(b)s(or)d (to)m(w)m(ard)j(the)g(RP)e(for)h(an)g(activ)m(e)i(\(*,G\))303 1227 y(or)h(\(*,*,RP\))i(en)m(try)-8 b(,)32 b(and)136 1373 y(\(b\))46 b(The)34 b(outgoing)h(in)m(terface)h(list)d(in)h(the)h (\(*,G\))i(or)e(\(*,*,RP\))h(en)m(try)g(is)e(non-NULL,)g(or)h(the)g (router)g(is)f(the)303 1486 y(DR)c(on)h(the)f(same)h(in)m(terface)g(as) g(the)f(RPF)h(neigh)m(b)s(or.)-13 1674 y(2.)46 b(A)27 b(particular)f(source)h(address,)h(S,)f(is)f(included)f(in)h(the)h (join)g(list)f(with)g(the)h(RPT)g(and)g(W)m(C)g(bits)g(cleared)g(under) 103 1787 y(the)j(follo)m(wing)f(conditions:)141 1974 y(\(a\))47 b(The)30 b(Join/Prune)e(message)k(is)d(b)s(eing)g(sen)m(t)i (to)g(the)g(RPF)f(neigh)m(b)s(or)f(to)m(w)m(ard)i(S,)f(and)136 2120 y(\(b\))46 b(There)30 b(exists)g(an)g(activ)m(e)i(\(S,G\))f(en)m (try)f(with)f(the)i(RPT-bit)e(\015ag)i(cleared,)f(and)146 2267 y(\(c\))47 b(The)30 b Ff(oif)49 b Fk(list)29 b(in)g(the)i(\(S,G\)) g(en)m(try)g(is)e(not)i(n)m(ull.)-13 2454 y(3.)46 b(A)37 b(particular)f(source)i(address,)h(S,)e(is)g(included)e(in)h(the)i (prune)e(list)h(with)f(the)i(RPT)f(and)g(W)m(C)h(bits)e(cleared)103 2567 y(under)29 b(the)h(follo)m(wing)f(conditions:)141 2755 y(\(a\))47 b(The)30 b(Join/Prune)e(message)k(is)d(b)s(eing)g(sen)m (t)i(to)g(the)g(RPF)f(neigh)m(b)s(or)f(to)m(w)m(ard)i(S,)f(and)136 2901 y(\(b\))46 b(There)30 b(exists)g(an)g(activ)m(e)i(\(S,G\))f(en)m (try)f(with)f(the)i(RPT-bit)e(\015ag)i(cleared,)f(and)146 3047 y(\(c\))47 b(The)30 b Ff(oif)49 b Fk(list)29 b(in)g(the)i(\(S,G\)) g(en)m(try)g(is)e(n)m(ull.)-13 3235 y(4.)46 b(A)32 b(particular)e (source)j(address,)f(S,)f(is)h(included)d(in)i(the)h(prune)f(list)g (with)f(the)j(RPT-bit)e Ff(set)h Fk(and)f(the)i(W)m(C)f(bit)103 3347 y(cleared)e(under)f(the)h(follo)m(wing)f(conditions:)141 3535 y(\(a\))47 b(The)29 b(Join/Prune)e(message)j(is)f(b)s(eing)f(sen)m (t)h(to)h(the)g(RPF)f(neigh)m(b)s(or)f(to)m(w)m(ard)i(the)g(RP)f(and)g (there)g(exists)g(a)303 3648 y(\(S,G\))i(en)m(try)f(with)g(the)g (RPT-bit)f(\015ag)i(set)g(and)f(n)m(ull)e Ff(oif)50 b Fk(list,)29 b(or)136 3794 y(\(b\))46 b(The)39 b(Join/Prune)f(message)j (is)e(b)s(eing)f(sen)m(t)j(to)f(the)g(RPF)g(neigh)m(b)s(or)f(to)m(w)m (ard)h(the)g(RP)-8 b(,)41 b(there)f(exists)f(a)303 3907 y(\(S,G\))28 b(en)m(try)g(with)e(the)h(RPT-bit)g(\015ag)g(cleared)h (and)f(SPT-bit)e(set,)k(and)e(the)h(incoming)d(in)m(terface)j(to)m(w)m (ard)303 4020 y(S)i(is)f(di\013eren)m(t)h(than)g(the)g(incoming)f(in)m (terface)i(to)m(w)m(ard)h(the)e(RP)-8 b(,)31 b(or)146 4166 y(\(c\))47 b(The)27 b(Join/Prune)g(message)i(is)e(b)s(eing)g(sen)m (t)i(to)g(the)f(RPF)g(neigh)m(b)s(or)f(to)m(w)m(ard)i(the)g(RP)-8 b(,)28 b(and)g(there)g(exists)g(a)303 4279 y(\(*,G\))k(en)m(try)e(and)g (\(S,G\))h(en)m(try)g(for)f(a)h(directly)e(connected)i(source.)-13 4467 y(5.)46 b(The)30 b(RP)g(address)f(\(with)h(RPT)f(and)h(W)m(C)h (bits)e(set\))j(is)d(included)f(in)h(the)h(prune)f(list)g(if:)141 4679 y(\(a\))47 b(The)29 b(Join/Prune)e(message)j(is)f(b)s(eing)f(sen)m (t)h(to)h(the)g(RPF)f(neigh)m(b)s(or)f(to)m(w)m(ard)i(the)g(RP)f(and)g (there)g(exists)g(a)303 4792 y(\(*,G\))j(en)m(try)e(with)f(a)i(n)m(ull) e Ff(oif)49 b Fk(list)29 b(\(see)j(Section)e(3.5.2\).)-125 5032 y Fn(3.2.1.2)106 b(T)-9 b(riggered)44 b(Join/Prune)g(Messages)92 b Fk(In)36 b(addition)g(to)i(p)s(erio)s(dic)c(messages,)41 b(the)c(follo)m(wing)f(ev)m(en)m(ts)-125 5145 y(will)29 b(trigger)j(Join/Prune)e(messages)i(if)f(as)h(a)g(result,)f(a\))h(a)g (new)f(en)m(try)h(is)f(created,)i(or)f(b\))f(the)h(oif)f(list)f(c)m (hanges)j(from)-125 5258 y(n)m(ull)j(to)i(non-n)m(ull)d(or)i(non-n)m (ull)e(to)k(n)m(ull.)59 b(The)37 b(con)m(ten)m(ts)i(of)f(triggered)f (messages)h(are)g(the)g(same)g(as)f(the)h(p)s(erio)s(dic,)-125 5371 y(describ)s(ed)29 b(ab)s(o)m(v)m(e.)p eop %%Page: 14 15 14 14 bop -125 -149 a Fh(draft-ietf-idmr-PIM-SM-sp)s(ec-10.ps)2673 b Fk(14)-13 149 y(1.)46 b(Receipt)28 b(of)h(an)f(indication)f(from)h (IGMP)h(that)g(the)f(state)i(of)f(directly-connected-)g(mem)m(b)s (ership)d(has)i(c)m(hanged)103 262 y(\(i.e.,)j(new)e(mem)m(b)s(ers)g (ha)m(v)m(e)j(just)d(joined)g(`mem)m(b)s(ership)f(indication')g(or)i (all)f(mem)m(b)s(ers)g(ha)m(v)m(e)i(left\),)g(for)f(a)g(group)103 375 y(G,)44 b(ma)m(y)f(cause)h(the)g(last-hop)f(router)g(to)h(build)c (or)j(mo)s(dify)f(corresp)s(onding)f(\(*,G\))k(state.)81 b(When)43 b(IGMP)103 488 y(indicates)31 b(that)h(there)h(are)f(no)g (longer)g(directly)f(connected)h(mem)m(b)s(ers,)g(the)h(oif)e(is)g (remo)m(v)m(ed)i(from)f(the)g(oif)g(list)103 601 y(if)g(the)h (oif-timer)f(is)g(not)h(running.)45 b(A)33 b(Join/Prune)e(message)j(is) e(triggered)h(if)f(and)g(only)g(if)g(a\))i(a)f(new)f(en)m(try)h(is)103 714 y(created,)e(or)g(b\))f(the)h(oif)e(list)g(c)m(hanges)j(from)e(n)m (ull)e(to)j(non-n)m(ull)d(or)i(non-n)m(ull)e(to)k(n)m(ull,)c(as)j (follo)m(ws)e(:)141 902 y(\(a\))47 b(If)39 b(the)i(receiving)e(router)h (do)s(es)g(not)g(ha)m(v)m(e)h(a)g(route)f(en)m(try)g(for)g(G)h(the)f (router)g(creates)h(a)g(\(*,G\))g(en)m(try)-8 b(,)303 1015 y(copies)23 b(the)h(oif)f(list)f(from)i(the)f(corresp)s(onding)f (\(*,*,RP\))j(en)m(try)f(\(if)f(it)g(exists\),)j(and)d(includes)e(the)j (in)m(terface)303 1127 y(included)19 b(in)i(the)i(IGMP)g(mem)m(b)s (ership)c(indication)i(in)g(the)h(oif)g(list;)i(as)f(alw)m(a)m(ys,)h (the)f(router)f(nev)m(er)h(includes)303 1240 y(the)29 b(en)m(try's)f(iif)f(in)g(the)i(oif)f(list.)39 b(The)28 b(router)g(sends)g(a)h(Join/Prune)e(message)j(to)m(w)m(ards)f(the)g(RP) f(with)f(the)303 1353 y(RP)j(address)f(and)h(RPT-bit)f(and)h(W)m (C-bits)g(set)h(in)e(the)i(join)e(list.)39 b(Or,)136 1499 y(\(b\))46 b(If)20 b(a)g(\(S,G\)RPT-bit)g(or)g(\(*,G\))i(en)m(try) f(already)f(exists,)i(the)e(in)m(terface)h(included)d(in)h(the)h(IGMP)h (mem)m(b)s(ership)303 1612 y(indication)28 b(is)h(added)h(to)h(the)g (oif)f(list)f(\(if)g(it)h(w)m(as)h(not)g(included)c(already\).)-13 1800 y(2.)46 b(Receipt)c(of)f(a)h(Join/Prune)e(message)j(for)e (\(S,G\),)i(\(*,G\))g(or)f(\(*,*,RP\))h(will)c(cause)k(building)37 b(or)42 b(mo)s(difying)103 1913 y(corresp)s(onding)29 b(state,)k(and)e(subsequen)m(t)f(triggering)h(of)g(upstream)g (Join/Prune)f(messages,)i(in)e(the)i(follo)m(wing)103 2026 y(cases:)141 2213 y(\(a\))47 b(When)32 b(there)g(is)g(no)g(curren) m(t)g(route)g(en)m(try)-8 b(,)34 b(the)e(RP)g(address)g(included)d(in)i (the)i(Join/Prune)d(message)j(is)303 2326 y(c)m(hec)m(k)m(ed)g(against) e(the)g(lo)s(cal)g(RP-Set)g(information.)41 b(If)30 b(it)h(matc)m(hes,) i(an)e(en)m(try)g(will)d(b)s(e)j(created)h(and)e(the)303 2439 y(new)h(en)m(try)h(will)e(in)g(turn)h(trigger)h(an)g(upstream)f (Join/Prune)g(message.)46 b(If)32 b(the)g(router)g(has)f(no)h(RP-Set) 303 2552 y(information)39 b(it)i(ma)m(y)h(discard)e(the)h(message,)46 b(or)41 b(optionally)f(use)h(the)g(RP)g(address)g(included)d(in)i(the) 303 2665 y(message.)136 2811 y(\(b\))46 b(When)20 b(the)g(outgoing)h (in)m(terface)g(list)e(of)h(an)g(\(S,G\)RPT-bit)g(en)m(try)h(b)s (ecomes)f(n)m(ull,)h(the)f(triggered)g(Join/Prune)303 2924 y(message)31 b(will)d(con)m(tain)j(S)e(in)h(the)g(prune)f(list.) 146 3070 y(\(c\))47 b(When)42 b(there)h(exists)f(a)h(\(S,G\)RPT-bit)f (with)f(n)m(ull)f(oif)i(list,)j(and)d(an)g(\(*,G\))i(Join/Prune)d (message)i(is)303 3183 y(receiv)m(ed,)i(the)d(arriving)e(in)m(terface)j (is)d(added)i(to)g(the)g(oif)g(list)e(and)h(a)i(\(*,G\))g(Join/Prune)d (message)j(is)303 3296 y(triggered)30 b(upstream.)136 3442 y(\(d\))46 b(When)34 b(there)h(exists)f(a)g(\(*,G\))j(with)c(n)m (ull)f(oif)i(list,)g(and)g(a)h(\(*,*,RP\))h(Join/Prune)d(message)i(is)f (receiv)m(ed,)303 3555 y(the)c(receiving)f(in)m(terface)i(is)e(added)h (to)h(the)f(oif)g(list)e(and)i(a)h(\(*,*,RP\))h(Join/Prune)c(message)j (is)e(triggered)303 3668 y(upstream.)-13 3856 y(3.)46 b(Receipt)32 b(of)g(a)g(pac)m(k)m(et)i(that)f(matc)m(hes)g(on)f(a)g (\(S,G\))h(en)m(try)f(whose)g(SPT-bit)e(is)h(cleared)h(triggers)g(the)g (follo)m(wing)103 3968 y(if)e(the)i(pac)m(k)m(et)h(arriv)m(ed)e(on)g (the)h(correct)g(incoming)e(in)m(terface)i(and)f(there)h(is)e(a)i (\(*,G\))h(or)f(\(*,*,RP\))h(en)m(try)f(with)103 4081 y(a)d(di\013eren)m(t)g(incoming)f(in)m(terface:)40 b(a\))30 b(the)g(router)f(sets)h(the)f(SPT-bit)f(on)h(the)g(\(S,G\))h(en)m(try) -8 b(,)30 b(and)f(b\))g(the)h(router)103 4194 y(sends)f(a)i(Join/Prune) e(message)i(to)m(w)m(ards)g(the)g(RP)f(with)f(S)h(in)f(the)h(prune)f (list)g(and)h(the)g(RPT-bit)g(set.)-13 4382 y(4.)46 b(Receipt)37 b(of)g(a)g(pac)m(k)m(et)i(at)e(the)g(DR)g(from)g(a)g(directly)e (connected)j(source)f(S,)f(on)h(the)g(subnet)f(con)m(taining)g(the)103 4495 y(address)27 b(S,)h(triggers)g(a)g(Join/Prune)e(message)k(to)m(w)m (ards)e(the)h(RP)e(with)g(S)h(in)e(the)j(prune)d(list)h(and)g(the)i (RPT-bit)103 4608 y(set)h(under)d(the)j(follo)m(wing)e(conditions:)39 b(a\))30 b(there)f(is)g(no)g(matc)m(hing)g(\(S,G\))h(state,)i(and)c (b\))h(there)h(exists)f(a)h(\(*,G\))103 4721 y(or)g(\(*,*,RP\))i(for)e (whic)m(h)g(the)g(DR)h(is)e(not)i(the)f(RP)-8 b(.)-13 4908 y(5.)46 b(When)32 b(a)h(Join/Prune)e(message)j(is)e(receiv)m(ed)h (for)f(a)h(group)f(G,)i(the)f(prune)e(list)g(is)h(c)m(hec)m(k)m(ed.)49 b(If)33 b(the)g(prune)e(list)103 5021 y(con)m(tains)i(a)g(source)g(or)g (RP)f(for)h(whic)m(h)e(the)i(receiving)f(router)h(has)f(a)h(corresp)s (onding)e(activ)m(e)j(\(S,G\),)g(\(*,G\))g(or)103 5134 y(\(*,*,RP\))e(en)m(try)-8 b(,)31 b(and)f(whose)g Ff(iif)50 b Fk(is)29 b(that)i(on)g(whic)m(h)e(the)h(Join/Prune)f(w)m(as)i(receiv) m(ed,)g(then)f(a)h(join)e(for)h(\(S,G\),)103 5247 y(\(*,G\))j(or)f (\(*,*,RP\))i(is)c(triggered)i(to)h(o)m(v)m(erride)e(the)h(prune,)f (resp)s(ectiv)m(ely)-8 b(.)45 b(\(This)30 b(is)h(necessary)h(in)e(the)i (case)h(of)103 5360 y(parallel)28 b(do)m(wnstream)j(routers)f (connected)h(to)g(a)g(m)m(ulti-access)f(net)m(w)m(ork.\))p eop %%Page: 15 16 15 15 bop -125 -149 a Fh(draft-ietf-idmr-PIM-SM-sp)s(ec-10.ps)2673 b Fk(15)-13 149 y(6.)46 b(When)35 b(the)h(RP)f(fails,)h(the)f(RP)h (will)c(not)k(b)s(e)f(included)e(in)h(the)i(Bo)s(otstrap)g(messages)h (sen)m(t)f(to)g(all)e(routers)i(in)103 262 y(that)26 b(domain.)38 b(This)23 b(triggers)j(the)f(DRs)h(to)g(send)f(\(*,G\))i (Join/Prune)d(messages)i(to)m(w)m(ards)g(the)g(new)f(RP)g(for)g(the)103 375 y(group,)34 b(as)h(determined)d(b)m(y)i(the)h(RP-Set)f(and)g(the)g (hash)f(function.)51 b(As)34 b(describ)s(ed)e(earlier,)i(PMBRs)g (trigger)103 488 y(\(*,*,RP\))e(joins)d(to)m(w)m(ards)i(eac)m(h)h(RP)e (in)f(the)i(RP-Set.)-13 672 y(7.)46 b(When)22 b(an)g(en)m(try's)g (Join/Prune-Suppression)c(timer)j(expires,)i(a)g(Join/Prune)d(message)k (is)d(triggered)h(upstream)103 785 y(corresp)s(onding)33 b(to)j(that)g(en)m(try)-8 b(,)37 b(ev)m(en)f(if)e(the)i(outgoing)f(in)m (terface)h(has)f(not)g(transitioned)f(b)s(et)m(w)m(een)i(n)m(ull)d(and) 103 898 y(non-n)m(ull)28 b(states.)-13 1081 y(8.)46 b(When)20 b(the)g(RPF)h(neigh)m(b)s(or)e(c)m(hanges)i(\(whether)f(due)g(to)h(an)f (Assert)h(or)f(c)m(hanges)h(in)e(unicast)h(routing\),)i(the)f(router) 103 1194 y(sets)32 b(a)g(random)f(dela)m(y)h(timer)g(\(the)g (Random-Dela)m(y-Join-Timer\))f(whose)h(expiration)f(triggers)h (sending)e(of)i(a)103 1307 y(Join/Prune)20 b(message)j(for)f(the)g (asserted)h(route)f(en)m(try)g(to)h(the)f(Assert)h(winner)d(\(if)h(the) h(Join/Prune)f(Suppression)103 1420 y(timer)29 b(has)i(expired.\))-125 1597 y(W)-8 b(e)34 b(do)d(not)h(trigger)g(prunes)f(on)m(to)i(in)m (terfaces)f(based)f(on)h(data)h(pac)m(k)m(ets.)47 b(Data)33 b(pac)m(k)m(ets)h(that)e(arriv)m(e)g(on)g(the)g(wrong)-125 1710 y(incoming)h(in)m(terface)h(are)g(silen)m(tly)e(dropp)s(ed.)49 b(Ho)m(w)m(ev)m(er,)37 b(on)d(p)s(oin)m(t-to-p)s(oin)m(t)f(in)m (terfaces)h(triggered)g(prunes)e(ma)m(y)i(b)s(e)-125 1823 y(sen)m(t)d(as)g(an)f(optimization.)-125 2061 y Fn(3.2.1.3)106 b(F)-9 b(ragmen)m(tation)90 b Fk(It)33 b(is)e(p)s(ossible)f(that)j(a)g(Join/Prune)d(message)k(constructed)f (according)f(to)h(the)g(pre-)-125 2174 y(ceding)45 b(rules)e(could)h (exceed)i(the)f(MTU)g(of)g(a)h(net)m(w)m(ork.)85 b(In)44 b(this)g(case,)49 b(the)d(message)g(can)f(undergo)f(seman)m(tic)-125 2287 y(fragmen)m(tation)34 b(whereb)m(y)e(information)f(corresp)s (onding)g(to)j(di\013eren)m(t)e(groups)g(can)h(b)s(e)f(sen)m(t)h(in)f (di\013eren)m(t)g(messages.)-125 2400 y(Ho)m(w)m(ev)m(er,)27 b(if)22 b(a)h(Join/Prune)f(message)i(m)m(ust)e(b)s(e)h(fragmen)m(ted)g (the)g(complete)h(prune)d(list)h(corresp)s(onding)f(to)i(a)h(group)e(G) -125 2513 y(m)m(ust)28 b(b)s(e)f(included)e(in)i(the)h(same)g (Join/Prune)e(message)j(as)f(the)g(asso)s(ciated)g(RP-tree)h(Join)d (for)i(G.)g(If)g(suc)m(h)f(seman)m(tic)-125 2626 y(fragmen)m(tation)32 b(is)d(not)i(p)s(ossible,)d(IP)i(fragmen)m(tation)h(should)d(b)s(e)i (used)g(b)s(et)m(w)m(een)h(the)f(t)m(w)m(o)i(neigh)m(b)s(oring)c(hops.) -125 2864 y Fn(3.2.2)106 b(Receiving)36 b(Join/Prune)g(Messages)-125 3036 y Fk(When)31 b(a)f(router)h(receiv)m(es)g(a)f(Join/Prune)f (message,)j(it)e(pro)s(cesses)g(it)g(as)g(follo)m(ws.)17 3149 y(The)i(receiv)m(er)g(of)h(the)g(Join/Prune)d(notes)j(the)g(in)m (terface)g(on)f(whic)m(h)f(the)i(PIM)f(message)h(arriv)m(ed,)g(call)f (it)f(I.)i(The)-125 3261 y(receiv)m(er)j(then)f(c)m(hec)m(ks)i(to)f (see)g(if)e(the)i(Join/Prune)d(message)j(w)m(as)g(addressed)e(to)i(the) g(receiving)e(router)i(itself)e(\(i.e.,)-125 3374 y(the)28 b(router's)g(address)f(app)s(ears)f(in)h(the)g(Unicast)h(Upstream)g (Neigh)m(b)s(or)e(Router)i(\014eld)e(of)i(the)g(Join/Prune)e (message\).)-125 3487 y(\(If)33 b(the)f(router)g(is)g(connected)h(to)g (a)g(m)m(ultiaccess)f(LAN,)h(the)f(message)i(could)d(b)s(e)h(in)m (tended)f(for)h(a)h(di\013eren)m(t)f(router.\))-125 3600 y(If)e(the)h(Join/Prune)e(is)g(for)h(this)f(router)i(the)f(follo)m (wing)f(actions)i(are)f(tak)m(en.)17 3713 y(F)-8 b(or)29 b(eac)m(h)h(group)f(address)f(G,)h(in)f(the)h(Join/Prune)e(message,)k (the)e(asso)s(ciated)g(join)f(list)g(is)f(pro)s(cessed)i(as)g(follo)m (ws.)-125 3826 y(W)-8 b(e)35 b(refer)e(to)h(eac)m(h)g(address)f(in)f (the)h(join)f(list)g(as)i(Sj;)g(Sj)f(refers)f(to)i(the)g(RP)f(if)f(the) i(RPT-bit)e(and)g(W)m(C-bit)h(are)h(b)s(oth)-125 3939 y(set.)42 b(F)-8 b(or)31 b(eac)m(h)g(Sj)f(in)f(the)i(join)e(list)g(of)h (the)h(Join/Prune)e(message:)-13 4116 y(1.)46 b(If)29 b(an)h(address,)f(Sj,)h(in)e(the)j(join)d(list)h(of)h(the)g(Join/Prune) e(message)j(has)f(the)g(RPT-bit)f(and)g(W)m(C-bit)h(set,)h(then)103 4229 y(Sj)e(is)h(the)g(RP)g(address)g(used)f(b)m(y)i(the)f(do)m (wnstream)h(router\(s\))f(and)g(the)h(follo)m(wing)e(actions)h(are)h (tak)m(en:)141 4413 y(\(a\))47 b(If)36 b(Sj)h(is)f(not)h(the)h(same)f (as)h(the)f(receiving)f(router's)h(RP)g(mapping)f(for)h(G,)g(the)g (receiving)g(router)g(ma)m(y)303 4526 y(ignore)32 b(the)g(Join/Prune)f (message)j(with)d(resp)s(ect)h(to)h(that)g(group)f(en)m(try)-8 b(.)48 b(If)32 b(the)g(router)g(do)s(es)h(not)f(ha)m(v)m(e)303 4639 y(an)m(y)d(RP-Set)g(information,)f(it)g Ff(may)i Fk(use)f(the)g(address)f(Sj)g(included)e(in)i(the)h(Join/Prune)e (message)j(as)f(the)303 4752 y(RP)h(for)g(the)h(group.)136 4894 y(\(b\))46 b(If)26 b(Sj)g(is)g(the)g(same)i(as)f(the)f(receiving)g (router's)h(RP)f(mapping)f(for)i(G,)g(the)g(receiving)f(router)g(adds)g (I)h(to)g(the)303 5006 y(outgoing)35 b(in)m(terface)g(list)e(of)i(the)g (\(*,G\))h(route)f(en)m(try)g(\(if)f(there)h(is)e(no)i(\(*,G\))h(en)m (try)-8 b(,)37 b(the)d(router)h(creates)303 5119 y(one)28 b(\014rst\))g(and)f(sets)h(the)h(Oif-timer)d(for)i(that)g(in)m(terface) h(to)g(the)f(Holdtime)f(sp)s(eci\014ed)f(in)h(the)h(Join/Prune)303 5232 y(message.)57 b(In)34 b(addition,)h(the)h(Oif-Deletion-Dela)m(y)g (for)f(that)h(in)m(terface)g(is)e(set)i(to)g(1/3rd)g(the)f(Holdtime)303 5345 y(sp)s(eci\014ed)26 b(in)i(the)g(Join/Prune)f(message.)41 b(If)28 b(a)h(\(*,*,RP\))h(en)m(try)f(exists,)g(for)f(the)h(RP)f(asso)s (ciated)h(with)e(G,)303 5458 y(then)j(the)g(oif)g(list)f(of)i(the)f (newly)f(created)j(\(*,G\))g(en)m(try)f(is)e(copied)h(from)g(that)h (\(*,*,RP\))h(en)m(try)-8 b(.)p eop %%Page: 16 17 16 16 bop -125 -149 a Fh(draft-ietf-idmr-PIM-SM-sp)s(ec-10.ps)2673 b Fk(16)146 149 y(\(c\))47 b(F)-8 b(or)30 b(eac)m(h)h(\(Si,G\))e(en)m (try)h(asso)s(ciated)g(with)e(group)h(G:)h(i\))f(if)f(Si)h(is)f(not)i (included)d(in)h(the)h(prune)f(list,)h(ii\))f(if)h(I)303 262 y(is)e(not)i(on)f(the)g(same)h(subnet)e(as)i(the)g(address)e(Si,)h (and)f(iii\))g(if)g(I)h(is)f(not)i(the)g(iif,)e(then)h(in)m(terface)h (I)f(is)f(added)303 375 y(to)36 b(the)g Ff(oif)56 b Fk(list)34 b(and)i(the)g(Oif-timer)e(for)i(that)g(in)m(terface)g(in)f(eac)m(h)i (a\013ected)g(en)m(try)g(is)e(increased)g(\(nev)m(er)303 488 y(decreased\))c(to)h(the)f(Holdtime)f(included)e(in)h(the)i (Join/Prune)e(message.)43 b(In)30 b(addition,)f(if)h(the)h(Oif-timer) 303 601 y(for)40 b(that)g(in)m(terface)h(is)e(increased,)j(the)e (Oif-Deletion-Dela)m(y)h(for)f(that)g(in)m(terface)h(is)e(set)i(to)g (1/3rd)f(the)303 714 y(Holdtime)29 b(sp)s(eci\014ed)g(in)g(the)h (Join/Prune)f(message.)303 844 y(If)e(the)h(group)g(address)f(in)g(the) h(Join/Prune)e(message)j(is)e(`*')i(then)f(ev)m(ery)g(\(*,G\))i(and)d (\(S,G\))i(en)m(try)-8 b(,)30 b(whose)303 956 y(group)38 b(address)g(hashes)g(to)i(the)f(RP)g(indicated)e(in)h(the)h(\(*,*,RP\)) h(Join/Prune)d(message,)43 b(is)38 b(up)s(dated)303 1069 y(accordingly)-8 b(.)73 b(A)42 b(`*')g(in)f(the)g(group)g(\014eld)f(of) i(the)f(Join/Prune)f(is)h(represen)m(ted)g(b)m(y)g(a)h(group)f(address) 303 1182 y(224.0.0.0)34 b(and)29 b(a)i(group)f(mask)g(length)g(of)h(4,) g(indicating)d(a)j(\(*,*,RP\))h(Join.)136 1328 y(\(d\))46 b(If)33 b(the)h(\(Si,G\))g(en)m(try)h(has)e(its)h(RPT-bit)f(\015ag)h (set)g(to)h(1,)h(and)d(its)g Ff(oif)54 b Fk(list)33 b(is)g(the)h(same)g (as)g(the)h(\(*,G\))g Ff(oif)303 1441 y Fk(list,)29 b(then)h(the)h (\(Si,G\)RPT-bit)e(en)m(try)h(is)g(deleted,)146 1587 y(\(e\))47 b(The)34 b(incoming)g(in)m(terface)h(is)f(set)i(to)f(the)h (in)m(terface)f(used)f(to)i(send)e(unicast)g(pac)m(k)m(ets)j(to)f(the)f (RP)g(in)e(the)303 1700 y(\(*,G\))f(route)e(en)m(try)-8 b(,)32 b(i.e.,)e(RPF)h(in)m(terface)g(to)m(w)m(ard)g(the)g(RP)-8 b(.)-13 1888 y(2.)46 b(F)-8 b(or)30 b(eac)m(h)g(address,)f(Sj,)g(in)f (the)i(join)e(list)g(whose)h(RPT-bit)g(and)f(W)m(C-bit)i(are)f Ff(not)h Fk(set,)h(and)e(for)g(whic)m(h)f(there)h(is)103 2001 y(no)e(existing)g(\(Sj,G\))h(route)g(en)m(try)-8 b(,)30 b(the)e(router)f(initiates)g(one.)40 b(The)27 b(router)h(creates)h(a)f(\(S,G\))g(en)m(try)g(and)g(copies)103 2114 y(all)j(outgoing)i(in)m(terfaces)f(from)g(the)g(\(S,G\)RPT-bit)g (en)m(try)-8 b(,)34 b(if)d(it)h(exists.)46 b(If)32 b(there)g(is)g(no)g (\(S,G\))h(en)m(try)-8 b(,)34 b(the)e(oif)103 2227 y(list)k(is)g (copied)h(from)g(the)h(\(*,G\))h(en)m(try;)j(and)37 b(if)f(there)i(is)e (no)i(\(*,G\))h(en)m(try)-8 b(,)40 b(the)e(oif)f(list)f(is)g(copied)h (from)g(the)103 2340 y(\(*,*,RP\))f(en)m(try)-8 b(,)37 b(if)d(it)g(exists.)53 b(In)34 b(all)g(cases,)j(the)d(iif)f(of)i(the)g (\(S,G\))g(en)m(try)g(is)f(alw)m(a)m(ys)h(excluded)f(from)g(the)h(oif) 103 2452 y(list.)141 2640 y(\(a\))47 b(The)36 b(outgoing)h(in)m (terface)g(for)f(\(Sj,G\))h(is)f(set)h(to)g(I.)g(The)f(incoming)f(in)m (terface)i(for)f(\(Sj,G\))h(is)f(set)h(to)g(the)303 2753 y(in)m(terface)31 b(used)e(to)i(send)f(unicast)g(pac)m(k)m(ets)i(to)f (Sj)e(\(i.e.,)j(the)e(RPF)h(neigh)m(b)s(or\).)136 2899 y(\(b\))46 b(If)27 b(the)h(in)m(terface)g(used)f(to)h(reac)m(h)h(Sj,)e (is)g(the)h(same)g(as)g(I,)f(this)g(represen)m(ts)h(an)f(error)g(\(or)h (a)g(unicast)f(routing)303 3012 y(c)m(hange\))32 b(and)d(the)i (Join/Prune)e(m)m(ust)h(not)g(b)s(e)g(pro)s(cessed.)-13 3200 y(3.)46 b(F)-8 b(or)26 b(eac)m(h)h(address,)f(Sj,)g(in)f(the)g (join)g(list)f(of)i(the)g(Join/Prune)e(message,)k(for)e(whic)m(h)e (there)i(is)f(an)g(existing)g(\(Sj,G\))103 3313 y(route)30 b(en)m(try)-8 b(,)141 3525 y(\(a\))47 b(If)31 b(the)h(RPT-bit)f(is)g (not)h(set)h(for)f(Sj)f(listed)f(in)h(the)h(Join/Prune)f(message,)i (but)f(the)g(RPT-bit)e(\015ag)j(is)e(set)303 3638 y(on)j(the)h (existing)e(\(Sj,G\))i(en)m(try)-8 b(,)36 b(the)f(router)f(clears)h (the)f(RPT-bit)f(\015ag)i(on)f(the)h(\(Sj,G\))g(en)m(try)-8 b(,)36 b(sets)f(the)303 3751 y(incoming)28 b(in)m(terface)j(to)f(p)s (oin)m(t)f(to)m(w)m(ards)i(Sj)e(for)h(that)g(\(Sj,G\))h(en)m(try)-8 b(,)31 b(and)e(sends)g(a)h(Join/Prune)e(message)303 3864 y(corresp)s(onding)g(to)j(that)g(en)m(try)g(through)e(the)i(new)f (incoming)f(in)m(terface;)i(and)136 4010 y(\(b\))46 b(If)28 b(I)g(is)f(not)i(the)f(same)h(as)f(the)h(existing)e(incoming)g(in)m (terface,)j(the)e(router)g(adds)g(I)g(to)h(the)g(list)e(of)h(outgoing) 303 4123 y(in)m(terfaces.)146 4269 y(\(c\))47 b(The)28 b(Oif-timer)f(for)h(I)g(is)g(increased)g(\(nev)m(er)h(decreased\))h(to) f(the)g(Holdtime)e(included)f(in)h(the)i(Join/Prune)303 4382 y(message.)58 b(In)35 b(addition,)g(if)g(the)h(Oif-timer)e(for)i (that)g(in)m(terface)h(is)d(increased,)j(the)f(Oif-Deletion-Dela)m(y) 303 4495 y(for)30 b(that)h(in)m(terface)g(is)e(set)i(to)g(1/3rd)g(the)g (Holdtime)e(sp)s(eci\014ed)g(in)g(the)h(Join/Prune)f(message.)136 4641 y(\(d\))46 b(The)30 b(\(Sj,G\))g(en)m(try's)h(SPT)f(bit)f(is)g (cleared)i(un)m(til)d(data)j(comes)h(do)m(wn)e(the)g(shortest)h(path)f (tree.)17 4853 y(F)-8 b(or)24 b(eac)m(h)h(group)f(address)f(G,)h(in)f (the)h(Join/Prune)e(message,)27 b(the)d(asso)s(ciated)g(prune)f(list)f (is)h(pro)s(cessed)h(as)g(follo)m(ws.)-125 4966 y(W)-8 b(e)29 b(refer)f(to)g(eac)m(h)h(address)e(in)f(the)i(prune)e(list)g(as) i(Sp;)g(Sp)f(refers)g(to)h(the)g(RP)g(if)e(the)i(RPT-bit)e(and)h(W)m (C-bit)h(are)g(b)s(oth)-125 5079 y(set.)42 b(F)-8 b(or)31 b(eac)m(h)g(Sp)f(in)f(the)h(prune)f(list)g(of)i(the)f(Join/Prune)f (message:)-13 5267 y(1.)46 b(F)-8 b(or)31 b(eac)m(h)g(address,)f(Sp,)g (in)f(the)h(prune)f(list)g(whose)h(RPT-bit)g(and)f(W)m(C-bit)i(are)f (cleared:)p eop %%Page: 17 18 17 17 bop -125 -149 a Fh(draft-ietf-idmr-PIM-SM-sp)s(ec-10.ps)2673 b Fk(17)141 149 y(\(a\))47 b(If)34 b(there)h(is)f(an)h(existing)f (\(Sp,G\))h(route)g(en)m(try)-8 b(,)37 b(the)e(router)g(lo)m(w)m(ers)g (the)g(en)m(try's)h(Oif-timer)d(for)i(I)f(to)i(its)303 262 y(Oif-Deletion-Dela)m(y)-8 b(,)32 b(allo)m(wing)e(for)h(other)h(do) m(wnstream)f(routers)g(on)h(a)f(m)m(ulti-access)h(LAN)f(to)h(o)m(v)m (erride)303 375 y(the)e(prune.)39 b(Ho)m(w)m(ev)m(er,)33 b(on)d(p)s(oin)m(t-to-p)s(oin)m(t)g(links,)f(the)h(oif-timer)g(is)f (expired)g(immediately)-8 b(.)136 521 y(\(b\))46 b(If)27 b(the)g(router)g(has)g(a)h(curren)m(t)f(\(*,G\),)i(or)e(\(*,*,RP\),)j (route)d(en)m(try)-8 b(,)29 b(and)e(if)f(the)h(existing)g(\(Sp,G\))g (en)m(try)h(has)303 634 y(its)34 b(RPT-bit)g(\015ag)h(set)g(to)h(1,)g (then)f(this)f(\(Sp,G\)RPT-bit)g(en)m(try)h(is)f(main)m(tained)f(\(not) j(deleted\))f(ev)m(en)g(if)303 747 y(its)30 b(outgoing)g(in)m(terface)h (list)e(is)h(n)m(ull.)-13 935 y(2.)46 b(F)-8 b(or)31 b(eac)m(h)g(address,)f(Sp,)g(in)f(the)h(prune)f(list)g(whose)h(RPT-bit) g(is)f(set)i(and)f(whose)g(W)m(C-bit)g(cleared:)141 1122 y(\(a\))47 b(If)34 b(there)h(is)f(an)h(existing)f(\(Sp,G\))h(route)g (en)m(try)-8 b(,)37 b(the)e(router)g(lo)m(w)m(ers)g(the)g(en)m(try's)h (Oif-timer)d(for)i(I)f(to)i(its)303 1235 y(Oif-Deletion-Dela)m(y)-8 b(,)32 b(allo)m(wing)e(for)h(other)h(do)m(wnstream)f(routers)g(on)h(a)f (m)m(ulti-access)h(LAN)f(to)h(o)m(v)m(erride)303 1348 y(the)e(prune.)39 b(Ho)m(w)m(ev)m(er,)33 b(on)d(p)s(oin)m(t-to-p)s(oin) m(t)g(links,)f(the)h(oif-timer)g(is)f(expired)g(immediately)-8 b(.)136 1494 y(\(b\))46 b(If)27 b(the)g(router)g(has)g(a)h(curren)m(t)f (\(*,G\),)i(or)e(\(*,*,RP\),)j(route)d(en)m(try)-8 b(,)29 b(and)e(if)f(the)h(existing)g(\(Sp,G\))g(en)m(try)h(has)303 1607 y(its)k(RPT-bit)g(\015ag)h(set)h(to)g(1,)g(then)f(this)f (\(Sp,G\)RPT-bit)g(en)m(try)h(is)f(not)i(deleted,)f(and)g(the)g(En)m (try-timer)303 1720 y(is)c(restarted,)i(ev)m(en)g(if)f(its)f(outgoing)i (in)m(terface)g(list)e(is)h(n)m(ull.)146 1866 y(\(c\))47 b(If)28 b(\(*,G\),)i(or)e(corresp)s(onding)e(\(*,*,RP\),)31 b(state)f(exists,)e(but)g(there)g(is)g(no)g(\(Sp,G\))h(en)m(try)-8 b(,)29 b(an)f(\(Sp,G\)RPT-)303 1979 y(bit)j(en)m(try)h(is)f(created)i (.)46 b(The)31 b(outgoing)i(in)m(terface)f(list)f(is)g(copied)h(from)f (the)h(\(*,G\),)i(or)e(\(*,*,RP\),)i(en)m(try)-8 b(,)303 2092 y(with)34 b(the)j(in)m(terface,)h(I,)e(on)f(whic)m(h)g(the)h (prune)f(w)m(as)h(receiv)m(ed,)i(is)d(deleted.)57 b(P)m(ac)m(k)m(ets)39 b(from)c(the)h(pruned)303 2205 y(source,)31 b(Sp,)e(matc)m(h)i(on)g (this)e(state)j(and)d(are)i(not)g(forw)m(arded)f(to)m(w)m(ard)h(the)f (pruned)f(receiv)m(ers.)136 2351 y(\(d\))46 b(If)31 b(there)h(exists)f (a)i(\(Sp,G\))f(en)m(try)-8 b(,)33 b(with)d(or)i(without)f(the)g (RPT-bit)g(set,)i(the)f(oif-timer)f(for)g(I)h(is)f(expired,)303 2464 y(and)f(the)g(En)m(try-timer)g(is)f(restarted.)-13 2652 y(3.)46 b(F)-8 b(or)31 b(eac)m(h)g(address,)f(Sp,)g(in)f(the)h (prune)f(list)g(whose)h(RPT-bit)g(and)f(W)m(C-bit)i(are)f(b)s(oth)g (set:)141 2839 y(\(a\))47 b(If)39 b(there)i(is)e(an)h(existing)f (\(*,G\))i(en)m(try)-8 b(,)44 b(with)39 b(Sp)g(as)h(the)g(RP)g(for)g (G,)g(the)h(router)f(lo)m(w)m(ers)g(the)g(en)m(try's)303 2952 y(Oif-timer)35 b(for)j(I)f(to)h(its)f(Oif-Deletion-Dela)m(y)-8 b(,)40 b(allo)m(wing)c(for)h(other)h(do)m(wnstream)f(routers)g(on)h(a)g (m)m(ulti-)303 3065 y(access)d(LAN)g(to)f(o)m(v)m(erride)h(the)f (prune.)51 b(Ho)m(w)m(ev)m(er,)37 b(on)d(p)s(oin)m(t-to-p)s(oin)m(t)g (links,)f(the)h(oif-timer)g(is)f(expired)303 3178 y(immediately)-8 b(.)136 3324 y(\(b\))46 b(If)25 b(the)i(corresp)s(onding)d(\(*,*,RP\))k (state)f(exists,)g(but)f(there)g(is)f(no)h(\(*,G\))i(en)m(try)-8 b(,)28 b(a)f(\(*,G\))g(en)m(try)g(is)e(created.)303 3437 y(The)33 b(outgoing)i(in)m(terface)f(list)f(is)g(copied)g(from)h (\(*,*,RP\))i(en)m(try)-8 b(,)36 b(with)d(the)h(in)m(terface,)h(I,)g (on)e(whic)m(h)g(the)303 3550 y(prune)c(w)m(as)h(receiv)m(ed,)h (deleted.)103 3738 y(F)-8 b(or)29 b(an)m(y)g(new)f(\(S,G\),)h(\(*,G\))i (or)d(\(*,*,RP\))i(en)m(try)f(created)h(b)m(y)e(an)g(incoming)f (Join/Prune)g(message,)j(the)f(SPT-)103 3851 y(bit)g(is)h(cleared)g (\(and)g(if)f(a)i(Join/Prune-Suppression)26 b(timer)k(is)f(used,)h(it)g (is)f(left)h(o\013.\))17 4038 y(If)35 b(the)h(en)m(try)g(has)f(a)h (Join/Prune-Suppression)31 b(timer)k(asso)s(ciated)h(with)f(it,)i(and)e (if)f(the)i(receiv)m(ed)g(Join/Prune)-125 4151 y(do)s(es)i(not)g (indicate)f(the)h(router)g(as)g(its)g(target,)j(then)d(the)g(receiving) f(router)h(examines)f(the)h(join)f(and)h(prune)e(lists)-125 4264 y(to)g(see)g(if)e(an)m(y)i(addresses)e(in)g(the)h(list)f (`completely-matc)m(h')j(existing)d(\(S,G\),)i(\(*,G\),)h(or)e (\(*,*,RP\))i(state)g(for)e(whic)m(h)-125 4377 y(the)44 b(receiving)e(router)g(curren)m(tly)g(sc)m(hedules)g(Join/Prune)g (messages.)79 b(An)42 b(elemen)m(t)i(on)f(the)g(join)e(or)i(prune)f (list)-125 4490 y(`completely-matc)m(hes')g(a)e(route)h(en)m(try)f (only)f(if)g(b)s(oth)g(the)h(addresses)f(and)h(RPT-bit)e(\015ag)j(are)f (the)g(same.)70 b(If)39 b(the)-125 4603 y(incoming)d(Join/Prune)f (message)j(completely)e(matc)m(hes)i(an)f(existing)e(\(S,G\),)j (\(*,G\),)h(or)d(\(*,*,RP\))j(en)m(try)e(and)f(the)-125 4716 y(Join/Prune)j(arriv)m(ed)g(on)h(the)g Ff(iif)59 b Fk(for)39 b(that)i(en)m(try)-8 b(,)43 b(then)d(the)g(router)g (compares)g(the)g(Holdtime)f(included)f(in)g(the)-125 4829 y(Join/Prune)c(message,)k(to)e(its)f(o)m(wn)h ([Join/Prune-Holdtime].)54 b(If)35 b(its)f(o)m(wn)i ([Join/Prune-Holdtime])e(is)g(lo)m(w)m(er,)j(the)-125 4941 y(Join/Prune-Suppression-timer)31 b(is)k(started)h(at)g(the)g ([Join/Prune-Suppression-Timeout].)52 b(If)35 b(the)h([Join/Prune-)-125 5054 y(Holdtime])31 b(is)g(equal,)g(the)g(tie)h(is)e(resolv)m(ed)h(in)f (fa)m(v)m(or)j(of)e(the)h(Join/Prune)d(Message)k(originator)e(that)h (has)f(the)h(higher)-125 5167 y(net)m(w)m(ork)d(la)m(y)m(er)e(address.) 39 b(When)27 b(the)h(Join/Prune)d(timer)i(expires,)g(the)h(router)f (triggers)g(a)h(Join/Prune)d(message)k(for)-125 5280 y(the)i(corresp)s(onding)d(en)m(try\(ies\).)p eop %%Page: 18 19 18 18 bop -125 -149 a Fh(draft-ietf-idmr-PIM-SM-sp)s(ec-10.ps)2673 b Fk(18)-125 149 y Fe(3.3)113 b(Register)36 b(and)i(Register-Stop)-125 321 y Fk(When)30 b(a)f(source)h(\014rst)e(starts)i(sending)e(to)i(a)f (group)g(its)g(pac)m(k)m(ets)i(are)f(encapsulated)e(in)g(Register)i (messages)g(and)f(sen)m(t)-125 434 y(to)h(the)f(RP)-8 b(.)29 b(If)f(the)h(data)g(rate)g(w)m(arran)m(ts)g(source-sp)s (eci\014c)f(paths,)h(the)g(RP)f(sets)h(up)f(source)h(sp)s(eci\014c)e (state)j(and)e(starts)-125 547 y(sending)h(\(S,G\))i(Join/Prune)e (messages)i(to)m(w)m(ard)h(the)e(source,)h(with)e(S)h(in)f(the)h(join)g (list.)-125 787 y Fn(3.3.1)106 b(Sending)35 b(Registers)h(and)f (Receiving)h(Register-Stops)-125 959 y Fk(Register)31 b(messages)g(are)g(sen)m(t)g(as)g(follo)m(ws:)-13 1146 y(1.)46 b(When)37 b(a)g(DR)h(receiv)m(es)f(a)h(pac)m(k)m(et)h(from)e(a) g(directly)f(connected)i(source,)h(S,)e(on)g(the)g(subnet)g(con)m (taining)f(the)103 1259 y(address)29 b(S,)141 1447 y(\(a\))47 b(If)25 b(there)g(is)f(no)i(corresp)s(onding)d(\(S,G\))j(en)m(try)-8 b(,)27 b(and)e(the)g(router)g(has)g(RP-Set)h(information,)f(and)f(the)i (DR)f(is)303 1560 y(not)31 b(the)g(RP)f(for)g(G,)i(the)e(DR)h(creates)i (an)d(\(S,G\))i(en)m(try)f(with)e(the)i(Register-Suppression-timer)d (turned)303 1673 y(o\013)42 b(and)f(the)g(RP)g(address)g(set)h (according)g(to)g(the)g(hash)e(function)h(mapping)e(for)j(the)f (corresp)s(onding)303 1786 y(group.)51 b(The)33 b(oif)h(list)e(is)h (copied)h(from)f(existing)g(\(*,G\))j(or)e(\(*,*,RP\))i(en)m(tries,)f (if)e(they)h(exist.)52 b(The)33 b(iif)f(of)303 1898 y(the)g(\(S,G\))g (en)m(try)g(is)e(alw)m(a)m(ys)j(excluded)d(from)h(the)h(oif)f(list.)43 b(If)31 b(there)h(exists)f(a)h(\(*,G\))h(or)f(\(*,*,RP\))h(en)m(try)-8 b(,)303 2011 y(the)28 b(DR)g(sends)e(a)i(Join/Prune)e(message)j(to)m(w) m(ards)f(the)g(RP)g(with)e(S)h(in)f(the)i(prune)e(list)h(and)g(the)h (RPT-bit)303 2124 y(set.)136 2270 y(\(b\))46 b(If)30 b(there)g(is)g(a)g(\(S,G\))i(en)m(try)e(in)f(existence,)i(the)g(DR)g (simply)c(restarts)k(the)g(corresp)s(onding)d(En)m(try-timer.)103 2458 y(When)34 b(a)g(PMBR)g(\(e.g.,)j(a)e(router)f(that)g(connects)h (the)f(PIM-SM)g(region)g(to)h(a)f(dense)g(mo)s(de)f(region)h(running) 103 2571 y(D)m(VMRP)f(or)e(PIM-DM\))i(receiv)m(es)g(a)f(pac)m(k)m(et)h (from)f(a)g(source)f(in)g(the)h(dense)f(mo)s(de)g(region,)h(the)g (router)f(treats)103 2684 y(the)k(pac)m(k)m(et)i(as)f(if)e(it)h(w)m (ere)h(from)f(a)g(directly)f(connected)i(source.)56 b(A)36 b(separate)g(do)s(cumen)m(t)f(will)e(describ)s(e)g(the)103 2797 y(details)c(of)i(in)m(terop)s(erabilit)m(y)-8 b(.)-13 2984 y(2.)46 b(If)30 b(the)g(new)g(or)g(previously-existing)d(\(S,G\))k (en)m(try's)g(Register-Suppression-timer)d(is)h(not)h(running,)e(the)j (data)103 3097 y(pac)m(k)m(et)c(is)d(encapsulated)g(in)g(a)i(Register)f (message)h(and)e(unicast)h(to)g(the)h(RP)e(for)h(that)h(group.)38 b(The)25 b(data)g(pac)m(k)m(et)103 3210 y(is)30 b(also)h(forw)m(arded)g (according)g(to)h(\(S,G\))g(state)g(in)e(the)h(DR)h(if)e(the)h(oif)g (list)f(is)g(not)h(n)m(ull;)f(since)h(a)g(receiv)m(er)h(ma)m(y)103 3323 y(join)d(the)i(SP-tree)f(while)f(the)h(DR)h(is)e(still)g (registering)g(to)i(the)g(RP)-8 b(.)-13 3511 y(3.)46 b(If)27 b(the)h(\(S,G\))h(en)m(try's)f(Register-Suppression-timer)e(is) h(running,)f(the)i(data)g(pac)m(k)m(et)i(is)d(not)i(sen)m(t)f(in)f(a)h (Register)103 3624 y(message,)j(it)f(is)g(just)g(forw)m(arded)f (according)i(to)g(the)f(\(S,G\))h(oif)f(list.)17 3811 y(When)42 b(the)h(DR)f(receiv)m(es)i(a)f(Register-Stop)g(message,)k(it) 42 b(restarts)h(the)f(Register-Suppression-timer)e(in)h(the)-125 3924 y(corresp)s(onding)34 b(\(S,G\))j(en)m(try\(ies\))f(at)h ([Register-Suppression-Timeout])c(seconds.)57 b(If)35 b(there)h(is)f(data)i(to)f(b)s(e)g(regis-)-125 4037 y(tered,)30 b(the)g(DR)g(ma)m(y)g(send)e(a)i(n)m(ull)d(Register)j(\(a)g(Register)f (message)i(with)d(a)i(zero-length)g(data)g(p)s(ortion)e(in)g(the)h (inner)-125 4150 y(pac)m(k)m(et\))j(to)d(the)g(RP)-8 b(,)29 b([Prob)s(e-Time])f(seconds)h(b)s(efore)f(the)h (Register-Suppression-timer)d(expires,)i(to)i(a)m(v)m(oid)f(sending) -125 4263 y(o)s(ccasional)i(bursts)e(of)h(tra\016c)h(to)g(an)g(RP)f (unnecessarily)-8 b(.)-125 4503 y Fn(3.3.2)106 b(Receiving)36 b(Register)f(Messages)h(and)f(Sending)g(Register-Stops)-125 4675 y Fk(When)c(a)f(router)h(\(i.e.,)g(the)f(RP\))h(receiv)m(es)g(a)g (Register)f(message,)i(the)e(router)h(do)s(es)f(the)g(follo)m(wing:)-13 4862 y(1.)46 b(Decapsulates)31 b(the)g(data)g(pac)m(k)m(et,)h(and)e(c)m (hec)m(ks)i(for)e(a)h(corresp)s(onding)d(\(S,G\))j(en)m(try)-8 b(.)141 5050 y(\(a\))47 b(If)32 b(a)g(\(S,G\))h(en)m(try)g(with)e (cleared)h(\(0\))h(SPT)e(bit)h(exists,)g(and)g(the)g(receiv)m(ed)h (Register)f(do)s(es)g(not)h(ha)m(v)m(e)g(the)303 5163 y(Null-Register-Bit)d(set)i(to)h(1,)f(the)g(pac)m(k)m(et)i(is)c(forw)m (arded;)i(and)f(the)h(SPT)e(bit)h(is)g(left)g(cleared)h(\(0\).)45 b(If)31 b(the)303 5276 y(SPT)c(bit)h(is)g(1,)i(the)f(pac)m(k)m(et)i(is) d(dropp)s(ed,)f(and)h(Register-Stop)h(messages)h(are)f(triggered.)40 b(Register-Stops)303 5389 y(should)26 b(b)s(e)i(rate-limited)f(\(in)h (an)g(implemen)m(tation-sp)s(eci\014c)e(manner\))i(so)h(that)g(no)f (more)h(than)f(a)h(few)f(are)p eop %%Page: 19 20 19 19 bop -125 -149 a Fh(draft-ietf-idmr-PIM-SM-sp)s(ec-10.ps)2673 b Fk(19)303 149 y(sen)m(t)35 b(p)s(er)e(round)g(trip)h(time.)53 b(This)33 b(prev)m(en)m(ts)i(a)g(high)e(datarate)j(stream)f(of)g(pac)m (k)m(ets)h(from)e(triggering)g(a)303 262 y(large)28 b(n)m(um)m(b)s(er)g (of)g(Register-Stop)h(messages)h(b)s(et)m(w)m(een)f(the)g(time)f(that)h (the)g(\014rst)f(pac)m(k)m(et)i(is)e(receiv)m(ed)h(and)303 375 y(the)h(time)g(when)g(the)g(source)h(receiv)m(es)g(the)g(\014rst)e (Register-Stop.)136 521 y(\(b\))46 b(If)31 b(there)g(is)g(no)g(\(S,G\)) h(en)m(try)-8 b(,)33 b(but)e(there)g(is)g(a)h(\(*,G\))h(en)m(try)-8 b(,)32 b(and)f(the)h(receiv)m(ed)g(Register)f(do)s(es)g(not)h(ha)m(v)m (e)303 634 y(the)e(Null-Register-Bit)g(set)h(to)g(1,)g(the)f(pac)m(k)m (et)j(is)c(forw)m(arded)h(according)g(to)h(the)g(\(*,G\))h(en)m(try)-8 b(.)146 780 y(\(c\))47 b(If)34 b(there)i(is)e(a)h(\(*,*,RP\))i(en)m (try)f(but)e(no)h(\(*,G\))i(en)m(try)-8 b(,)37 b(and)e(the)g(Register)g (receiv)m(ed)h(do)s(es)f(not)g(ha)m(v)m(e)h(the)303 893 y(Null-Register-Bit)29 b(set)h(to)h(1,)g(a)f(\(*,G\))i(or)e(\(S,G\))g (en)m(try)h(is)e(created)i(and)e(the)h(oif)g(list)e(is)h(copied)h(from) f(the)303 1006 y(\(*,*,RP\))j(en)m(try)f(to)g(the)f(new)g(en)m(try)-8 b(.)42 b(The)29 b(pac)m(k)m(et)k(is)c(forw)m(arded)h(according)g(to)h (the)g(created)g(en)m(try)-8 b(.)136 1152 y(\(d\))46 b(If)30 b(there)h(is)e(no)i(G)g(or)f(\(*,*,RP\))j(en)m(try)e(corresp)s (onding)d(to)k(G,)f(the)g(pac)m(k)m(et)h(is)e(dropp)s(ed,)f(and)h(a)h (Register-)303 1265 y(Stop)f(is)f(triggered.)146 1411 y(\(e\))47 b(A)27 b(\\Border)g(bit")f(bit)g(is)f(added)h(to)i(the)f (Register)g(message,)i(to)e(facilitate)g(in)m(terop)s(erabilit)m(y)d (mec)m(hanisms.)303 1524 y(PMBRs)j(set)h(this)e(bit)g(when)g (registering)g(for)h(external)g(sources)g(\(see)h(Section)f(2.7\).)41 b(If)26 b(the)h(\\Border)h(bit")303 1637 y(is)h(set)i(in)e(the)i (Register,)g(the)f(RP)g(do)s(es)g(the)h(follo)m(wing:)377 1792 y(i.)45 b(If)23 b(there)g(is)f(no)h(matc)m(hing)h(\(S,G\))g (state,)i(but)c(there)i(exists)f(\(*,G\))i(or)e(\(*,*,RP\))i(en)m(try) -8 b(,)26 b(the)d(RP)g(creates)473 1905 y(a)34 b(\(S,G\))h(en)m(try)-8 b(,)37 b(with)c(a)h(`PMBR')i(\014eld.)51 b(This)32 b(\014eld)h(holds)g (the)i(source)f(of)g(the)h(Register)f(\(i.e.)53 b(the)473 2017 y(outer)29 b(net)m(w)m(ork)i(la)m(y)m(er)f(address)e(of)i(the)f (register)g(pac)m(k)m(et\).)43 b(The)29 b(RP)g(triggers)g(a)h(\(S,G\))g (join)f(to)m(w)m(ards)473 2130 y(the)i(source)h(of)f(the)h(data)g(pac)m (k)m(et,)i(and)c(clears)i(the)f(SPT)f(bit)h(for)g(the)g(\(S,G\))h(en)m (try)-8 b(.)45 b(If)31 b(the)g(receiv)m(ed)473 2243 y(Register)38 b(is)e(not)i(a)g(`n)m(ull)e(Register')i(the)g(pac)m(k)m(et)i(is)c(forw) m(arded)h(according)h(to)g(the)g(created)h(state.)473 2356 y(Else,)352 2486 y(ii.)44 b(If)36 b(the)g(`PMBR')i(\014eld)d(for)h (the)g(corresp)s(onding)f(\(S,G\))i(en)m(try)f(matc)m(hes)i(the)f (source)f(of)h(the)f(Regis-)473 2599 y(ter)f(pac)m(k)m(et,)k(and)34 b(the)i(receiv)m(ed)f(Register)h(is)e(not)h(a)h(`n)m(ull)d(Register',)k (the)f(decapsulated)e(pac)m(k)m(et)j(is)473 2711 y(forw)m(arded)29 b(to)j(the)e(oif)g(list)f(of)i(that)f(en)m(try)-8 b(.)42 b(Else,)326 2841 y(iii.)i(If)30 b(the)h(`PMBR')g(\014eld)e(for)i(the)g (corresp)s(onding)d(\(S,G\))j(en)m(try)g(matc)m(hes)h(the)f(source)g (of)f(the)h(Register)473 2954 y(pac)m(k)m(et,)h(the)f(decapsulated)f (pac)m(k)m(et)i(is)e(forw)m(arded)f(to)i(the)g(oif)f(list)f(of)h(that)h (en)m(try)-8 b(,)32 b(else)329 3083 y(iv.)45 b(The)25 b(pac)m(k)m(et)i(is)d(dropp)s(ed,)h(and)g(a)h(Register-stop)g(is)e (triggered)h(to)m(w)m(ards)i(the)e(source)h(of)f(the)h(Register.)103 3271 y(The)k(\(S,G\))h(En)m(try-timer)e(is)h(restarted)h(b)m(y)f (Registers)g(arriving)f(from)h(that)h(source)f(to)h(that)g(group.)-13 3459 y(2.)46 b(If)24 b(the)g(matc)m(hing)g(\(S,G\))i(or)e(\(*,G\))i (state)f(con)m(tains)g(a)g(n)m(ull)d(oif)i(list,)g(the)h(RP)f(unicasts) f(a)i(Register-Stop)f(message)103 3572 y(to)e(the)h(source)f(of)g(the)g (Register)g(message;)k(in)21 b(the)h(latter)g(case,)j(the)d (source-address)g(\014eld,)g(within)e(the)i(Register-)103 3685 y(Stop)30 b(message,)j(is)d(set)h(to)h(the)f(wildcard)e(v)-5 b(alue)30 b(\(all)g(0's\).)43 b(This)29 b(message)j(is)e(not)i(pro)s (cessed)e(b)m(y)h(in)m(termediate)103 3797 y(routers,)f(hence)h(no)f (\(S,G\))h(state)h(is)d(constructed)i(b)s(et)m(w)m(een)g(the)f(RP)g (and)g(the)h(source.)-13 3985 y(3.)46 b(If)35 b(the)h(Register)g (message)h(arriv)-5 b(al)34 b(rate)i(w)m(arran)m(ts)g(it)f(and)g(there) h(is)f(no)h(existing)e(\(S,G\))j(en)m(try)-8 b(,)38 b(the)e(RP)f(sets) 103 4098 y(up)f(a)h(\(S,G\))h(route)g(en)m(try)f(with)f(the)i(outgoing) f(in)m(terface)h(list,)f(excluding)f(iif\(S,G\),)g(copied)h(from)f(the) i(\(*,G\))103 4211 y(outgoing)25 b(in)m(terface)h(list,)f(its)f (SPT-bit)f(is)h(initialized)e(to)k(0.)39 b(If)25 b(a)g(\(*,G\))i(en)m (try)e(do)s(es)g(not)g(exist,)h(but)f(there)g(exists)103 4324 y(a)j(\(*,*,RP\))i(en)m(try)e(with)e(the)i(RP)g(corresp)s(onding)e (to)i(G)g(,)g(the)g(oif)g(list)e(for)i(\(S,G\))g(is)f(copied)h (-excluding)e(the)i(iif-)103 4437 y(from)i(that)h(\(*,*,RP\))h(en)m (try)-8 b(.)103 4587 y(A)24 b(timer)f(\(En)m(try-timer\))h(is)f(set)i (for)f(the)g(\(S,G\))h(en)m(try)f(and)f(this)g(timer)g(is)g(restarted)i (b)m(y)f(receipt)g(of)g(data)h(pac)m(k)m(ets)103 4700 y(for)35 b(\(S,G\).)i(The)f(\(S,G\))h(en)m(try)f(causes)g(the)g(RP)g (to)h(send)e(a)h(Join/Prune)e(message)k(for)d(the)h(indicated)f(group) 103 4813 y(to)m(w)m(ards)c(the)f(source)h(of)g(the)f(register)g (message.)103 4963 y(If)g(the)g(\(S,G\))h(oif)f(list)f(b)s(ecomes)i(n)m (ull,)d(Join/Prune)h(messages)i(will)d(not)j(b)s(e)e(sen)m(t)i(to)m(w)m (ards)g(the)g(source,)g(S.)-125 5206 y Fe(3.4)113 b(Multicast)36 b(Data)h(P)m(ac)m(k)m(et)g(F)-9 b(orw)m(arding)-125 5378 y Fk(Pro)s(cessing)30 b(a)h(m)m(ulticast)f(data)h(pac)m(k)m(et)h(in)m (v)m(olv)m(es)f(the)f(follo)m(wing)f(steps:)p eop %%Page: 20 21 20 20 bop -125 -149 a Fh(draft-ietf-idmr-PIM-SM-sp)s(ec-10.ps)2673 b Fk(20)-13 149 y(1.)46 b(Lo)s(okup)38 b(route)h(state)h(based)f(on)g (a)g(longest)g(matc)m(h)h(of)f(the)g(source)g(address,)i(and)d(an)h (exact)h(matc)m(h)g(of)f(the)103 262 y(destination)d(address)g(in)g (the)i(data)g(pac)m(k)m(et.)63 b(If)37 b(neither)g(S,)g(nor)f(G,)i (\014nd)e(a)i(longest)f(matc)m(h)h(en)m(try)-8 b(,)40 b(and)d(the)103 375 y(RP)28 b(for)f(the)i(pac)m(k)m(et's)h(destination) d(group)g(address)g(has)h(a)h(corresp)s(onding)d(\(*,*,RP\))k(en)m(try) -8 b(,)29 b(then)f(the)g(longest)103 488 y(matc)m(h)i(do)s(es)g(not)f (require)g(an)g(exact)i(matc)m(h)g(on)e(the)h(destination)f(group)g (address.)39 b(In)29 b(summary)-8 b(,)29 b(the)h(longest)103 601 y(matc)m(h)c(is)f(p)s(erformed)f(in)h(the)h(follo)m(wing)e(order:) 38 b(\(1\))27 b(\(S,G\),)f(\(2\))h(\(*,G\).)h(If)d(neither)g(is)g(matc) m(hed,)i(then)f(a)g(lo)s(okup)103 714 y(is)j(p)s(erformed)g(on)h (\(*,*,RP\))i(en)m(tries.)-13 899 y(2.)46 b(If)29 b(the)h(pac)m(k)m(et) i(arriv)m(ed)d(on)h(the)g(in)m(terface)h(found)d(in)h(the)h(matc)m (hing-en)m(try's)g Ff(iif)49 b Fk(\014eld,)29 b(and)g(the)h Ff(oif)50 b Fk(list)28 b(is)h(not)103 1012 y(n)m(ull:)141 1197 y(\(a\))47 b(F)-8 b(orw)m(ard)44 b(the)f(pac)m(k)m(et)j(to)e(the)f Ff(oif)63 b Fk(list)42 b(for)i(that)g(en)m(try)-8 b(,)47 b(excluding)42 b(the)h(subnet)g(con)m(taining)g(S,)g(and)303 1310 y(restart)29 b(the)g(En)m(try-timer)f(if)g(the)h(matc)m(hing)f(en) m(try)h(is)f(\(S,G\).)i(Optionally)-8 b(,)27 b(the)i(\(S,G\))h(En)m (try-timer)e(ma)m(y)303 1423 y(b)s(e)h(restarted)i(b)m(y)g(p)s(erio)s (dic)c(c)m(hec)m(king)k(of)g(the)g(matc)m(hing)f(pac)m(k)m(et)i(coun)m (t.)136 1567 y(\(b\))46 b(If)32 b(the)h(en)m(try)h(is)e(a)h(\(S,G\))h (en)m(try)f(with)f(a)h(cleared)g(SPT-bit,)g(and)f(a)h(\(*,G\))i(or)e (asso)s(ciated)h(\(*,*,RP\))g(also)303 1679 y(exists)c(whose)g (incoming)f(in)m(terface)i(is)f(di\013eren)m(t)g(than)g(that)h(for)g (\(S,G\),)g(set)g(the)g(SPT-bit)e(for)h(the)h(\(S,G\))303 1792 y(en)m(try)f(and)g(trigger)h(an)f(\(S,G\))h(RPT-bit)e(prune)g(to)m (w)m(ards)i(the)g(RP)-8 b(.)146 1936 y(\(c\))47 b(If)22 b(the)h(source)g(of)h(the)f(pac)m(k)m(et)i(is)d(a)h(directly-connected) g(host)g(and)f(the)h(router)g(is)f(the)h(DR)g(on)g(the)g(receiving)303 2049 y(in)m(terface,)40 b(c)m(hec)m(k)f(the)f (Register-Suppression-timer)d(asso)s(ciated)j(with)e(the)i(\(S,G\))g (en)m(try)-8 b(.)63 b(If)37 b(it)h(is)e(not)303 2162 y(running,)f(then)h(the)g(router)g(encapsulates)g(the)h(data)g(pac)m(k) m(et)h(in)d(a)i(register)f(message)h(and)f(sends)f(it)h(to)303 2275 y(the)30 b(RP)-8 b(.)103 2460 y(This)20 b(co)m(v)m(ers)j(the)f (common)g(case)h(of)f(a)g(pac)m(k)m(et)i(arriving)c(on)i(the)g(RPF)f (in)m(terface)i(to)f(the)g(source)g(or)g(RP)g(and)f(b)s(eing)103 2573 y(forw)m(arded)33 b(to)h(all)e(joined)g(branc)m(hes.)50 b(It)34 b(also)f(detects)i(when)d(pac)m(k)m(ets)k(arriv)m(e)d(on)g(the) h(SP-tree,)h(and)d(triggers)103 2686 y(their)f(pruning)f(from)i(the)g (RP-tree.)48 b(If)32 b(it)g(is)g(the)g(DR)h(for)f(the)h(source,)g(it)f (sends)f(data)j(pac)m(k)m(ets)g(encapsulated)103 2799 y(in)29 b(Registers)h(to)h(the)g(RPs.)-13 2984 y(3.)46 b(If)31 b(the)g(pac)m(k)m(et)i(matc)m(hes)g(to)f(an)f(en)m(try)g(but)g (did)e(not)j(arriv)m(e)f(on)g(the)h(in)m(terface)f(found)f(in)g(the)i (en)m(try's)f Ff(iif)51 b Fk(\014eld,)103 3097 y(c)m(hec)m(k)36 b(the)f(SPT-bit)e(of)i(the)g(en)m(try)-8 b(.)55 b(If)34 b(the)h(SPT-bit)e(is)h(set,)j(drop)d(the)h(pac)m(k)m(et.)56 b(If)34 b(the)h(SPT-bit)e(is)h(cleared,)103 3209 y(then)c(lo)s(okup)f (the)i(\(*,G\),)h(or)f(\(*,*,RP\),)i(en)m(try)d(for)h(G.)g(If)f(the)h (pac)m(k)m(et)h(arriv)m(ed)e(on)g(the)h Ff(iif)49 b Fk(found)30 b(in)f(\(*,G\),)j(or)103 3322 y(the)i(corresp)s(onding)d(\(*,*,RP\),)36 b(forw)m(ard)e(the)g(pac)m(k)m(et)h(to)g(the)f Ff(oif)53 b Fk(list)32 b(of)i(the)g(matc)m(hing)g(en)m(try)-8 b(.)52 b(This)32 b(co)m(v)m(ers)103 3435 y(the)40 b(case)i(when)d(a)i(data)g (pac)m(k)m(et)h(matc)m(hes)f(on)g(a)f(\(S,G\))h(en)m(try)g(for)f(whic)m (h)f(the)h(SP-tree)h(has)f(not)h(y)m(et)g(b)s(een)103 3548 y(completely)30 b(established)e(upstream.)-13 3733 y(4.)46 b(If)41 b(the)i(pac)m(k)m(et)h(do)s(es)e(not)g(matc)m(h)h(an)m (y)g(en)m(try)-8 b(,)46 b(but)41 b(the)i(source)f(of)h(the)f(data)h (pac)m(k)m(et)h(is)d(a)i(lo)s(cal,)h(directly-)103 3846 y(connected)32 b(host,)f(and)g(the)g(router)g(is)f(the)h(DR)h(on)f(a)g (m)m(ulti-access)h(LAN)f(and)f(has)h(RP-Set)g(information,)f(the)103 3959 y(DR)40 b(uses)f(the)h(hash)f(function)g(to)h(determine)f(the)h (RP)f(asso)s(ciated)i(with)d(the)i(destination)f(group,)j(G.)e(The)103 4072 y(DR)32 b(creates)h(a)f(\(S,G\))g(en)m(try)-8 b(,)33 b(with)d(the)i(Register-Suppression-timer)c(not)k(running,)d (encapsulates)j(the)g(data)103 4185 y(pac)m(k)m(et)g(in)d(a)i(Register) f(message)i(and)e(unicasts)f(it)h(to)h(the)g(RP)-8 b(.)-13 4370 y(5.)46 b(If)33 b(the)h(pac)m(k)m(et)i(do)s(es)e(not)g(matc)m(h)h (to)f(an)m(y)h(en)m(try)-8 b(,)35 b(and)f(it)f(is)g(not)h(a)h(lo)s(cal) e(host)h(or)g(the)g(router)g(is)f(not)h(the)g(DR,)103 4483 y(drop)29 b(the)i(pac)m(k)m(et.)-125 4722 y Fn(3.4.1)106 b(Data)34 b(triggered)h(switc)m(h)g(to)g(shortest)g(path)f(tree)h (\(SP-tree\))-125 4894 y Fk(Di\013eren)m(t)23 b(criteria)f(can)h(b)s(e) f(applied)f(to)i(trigger)g(switc)m(hing)e(o)m(v)m(er)j(from)e(the)h (RP-based)f(shared)g(tree)h(to)h(source-sp)s(eci\014c,)-125 5006 y(shortest)31 b(path)f(trees.)17 5119 y(One)h(prop)s(osed)f (example)h(is)g(to)h(do)g(so)g(based)f(on)g(data)i(rate.)45 b(F)-8 b(or)32 b(example,)g(when)e(a)i(\(*,G\),)i(or)d(corresp)s (onding)-125 5232 y(\(*,*,RP\),)36 b(en)m(try)d(is)g(created,)i(a)f (data)f(rate)h(coun)m(ter)g(ma)m(y)g(b)s(e)f(initiated)e(at)j(the)g (last-hop)f(routers.)49 b(The)32 b(coun)m(ter)i(is)-125 5345 y(incremen)m(ted)22 b(with)e(ev)m(ery)j(data)f(pac)m(k)m(et)i (receiv)m(ed)e(for)g(directly)e(connected)j(mem)m(b)s(ers)e(of)h(an)g (SM)f(group,)i(if)e(the)h(longest)-125 5458 y(matc)m(h)k(is)e(\(*,G\))i (or)f(\(*,*,RP\).)i(If)d(and)g(when)g(the)h(data)g(rate)h(for)e(the)h (group)g(exceeds)g(a)g(certain)g(con\014gured)f(threshold)p eop %%Page: 21 22 21 21 bop -125 -149 a Fh(draft-ietf-idmr-PIM-SM-sp)s(ec-10.ps)2673 b Fk(21)-125 149 y(\(t1\),)38 b(the)d(router)g(initiates)e(`source-sp)s (eci\014c')i(data)g(rate)h(coun)m(ters)f(for)g(the)g(follo)m(wing)e (data)i(pac)m(k)m(ets.)56 b(Then,)35 b(eac)m(h)-125 262 y(coun)m(ter)28 b(for)f(a)h(source,)g(is)f(incremen)m(ted)g(when)f(pac) m(k)m(ets)j(matc)m(hing)e(on)h(\(*,G\),)h(or)e(\(*,*,RP\),)j(are)d (receiv)m(ed)h(from)f(that)-125 375 y(source.)48 b(If)32 b(the)h(data)h(rate)f(from)f(the)h(particular)e(source)i(exceeds)g(a)g (con\014gured)f(threshold)f(\(t2\),)k(a)e(\(S,G\))g(en)m(try)g(is)-125 488 y(created)h(and)e(a)i(Join/Prune)d(message)j(is)d(sen)m(t)j(to)m(w) m(ards)f(the)g(source.)48 b(If)33 b(the)g(RPF)f(in)m(terface)i(for)e (\(S,G\))i(is)e Ff(not)h Fk(the)-125 601 y(same)e(as)g(that)g(for)f (\(*,G\))i(-or)f(\(*,*,RP\),)h(then)e(the)h(SPT-bit)e(is)g(cleared)h (in)f(the)i(\(S,G\))g(en)m(try)-8 b(.)17 714 y(Other)29 b(con\014gured)h(rules)f(ma)m(y)i(b)s(e)f(enforced)g(to)h(cause)g(or)g (prev)m(en)m(t)g(establishmen)m(t)e(of)h(\(S,G\))h(state.)-125 957 y Fe(3.5)113 b(Assert)-125 1129 y Fk(Asserts)33 b(are)f(used)f(to)i (resolv)m(e)g(whic)m(h)e(of)h(the)g(parallel)e(routers)i(connected)h (to)g(a)g(m)m(ulti-access)f(LAN)g(is)f(resp)s(onsible)-125 1241 y(for)g(forw)m(arding)e(pac)m(k)m(ets)j(on)m(to)f(the)g(LAN.)-125 1481 y Fn(3.5.1)106 b(Sending)35 b(Asserts)-125 1653 y Fk(The)c(follo)m(wing)e(Assert)i(rules)e(are)i(pro)m(vided)e(when)h (a)h(m)m(ulticast)f(pac)m(k)m(et)i(is)e(receiv)m(ed)h(on)g(an)f (outgoing)h(m)m(ulti-access)-125 1766 y(in)m(terface)g(\\I")g(of)g(an)f (existing)g(activ)m(e)h(\(S,G\),)h(\(*,G\))g(or)e(\(*,*,RP\))i(en)m (try:)-13 1975 y(1.)46 b(Do)34 b(unicast)e(routing)g(table)h(lo)s(okup) e(on)i(source)h(address)e(from)g(data)i(pac)m(k)m(et,)i(and)c(send)g (assert)i(on)f(in)m(terface)103 2088 y(\\I")27 b(for)f(source)g (address)g(in)f(data)i(pac)m(k)m(et;)j(include)24 b(metric)i (preference)h(of)f(routing)g(proto)s(col)g(and)g(metric)g(from)103 2201 y(routing)j(table)h(lo)s(okup.)-13 2387 y(2.)46 b(If)30 b(route)g(is)g(not)g(found,)g(use)g(metric)g(preference)g(of)h (0x7\013\013\013f)g(and)e(metric)i(0x\013\013\013\013.)-125 2597 y(When)h(an)f(assert)h(is)e(sen)m(t)i(for)g(a)f(\(*,G\))j(en)m (try)-8 b(,)32 b(the)g(\014rst)f(bit)f(in)g(the)i(metric)f(preference)g (\(the)h(RPT-bit\))f(is)g(set)h(to)g(1,)-125 2709 y(indicating)d(the)h (data)h(pac)m(k)m(et)i(is)c(routed)h(do)m(wn)g(the)h(RP-tree.)17 2822 y(Asserts)f(should)e(b)s(e)i(rate-limited)f(in)g(an)i(implemen)m (tation-sp)s(eci\014c)d(manner.)-125 3062 y Fn(3.5.2)106 b(Receiving)36 b(Asserts)-125 3234 y Fk(When)31 b(an)f(Assert)h(is)f (receiv)m(ed)h(the)g(router)f(p)s(erforms)f(a)i(longest)g(matc)m(h)h (on)e(the)h(source)g(and)f(group)g(address)g(in)f(the)-125 3346 y(Assert)e(message,)i(only)d(activ)m(e)i(en)m(tries)f({)g(that)g (ha)m(v)m(e)h(pac)m(k)m(et)h(forw)m(arding)c(state)j({)g(are)f(matc)m (hed.)40 b(The)26 b(router)h(c)m(hec)m(ks)-125 3459 y(the)k(\014rst)f (bit)f(of)i(the)f(metric)g(preference)h(\(RPT-bit\).)-13 3644 y(1.)46 b(If)34 b(the)g(RPT-bit)f(is)g(set,)j(the)f(router)f (\014rst)f(do)s(es)h(a)h(matc)m(h)g(on)f(\(*,G\),)i(or)e(\(*,*,RP\),)j (en)m(tries;)f(if)d(no)h(matc)m(hing)103 3757 y(en)m(try)c(is)g(found,) f(it)h(ignores)g(the)g(Assert.)-13 3944 y(2.)46 b(If)24 b(the)h(RPT-bit)f(is)g(not)h(set)h(in)e(the)h(Assert,)h(the)f(router)g (\014rst)f(do)s(es)h(a)g(matc)m(h)h(on)f(\(S,G\))h(en)m(tries;)h(if)c (no)i(matc)m(hing)103 4057 y(en)m(try)30 b(is)g(found,)f(the)i(router)f (matc)m(hes)h(\(*,G\))h(or)f(\(*,*,RP\))h(en)m(tries.)-125 4296 y Fn(3.5.2.1)106 b(Receiving)41 b(Asserts)g(on)f(an)g(en)m(try's)g (outgoing)h(in)m(terface)91 b Fk(If)34 b(the)h(in)m(terface)h(that)f (receiv)m(ed)g(the)-125 4409 y(Assert)k(message)g(is)e(in)f(the)j Ff(oif)57 b Fk(list)37 b(of)h(the)g(matc)m(hed)h(en)m(try)-8 b(,)40 b(then)e(this)f(Assert)h(is)f(pro)s(cessed)h(b)m(y)f(this)g (router)h(as)-125 4522 y(follo)m(ws:)-13 4707 y(1.)46 b(If)29 b(the)h(Assert's)g(RPT-bit)f(is)g(set)h(and)f(the)h(matc)m (hing)g(en)m(try)g(is)f(\(*,*,RP\),)j(the)e(router)g(creates)h(a)f (\(*,G\))h(en)m(try)-8 b(.)103 4820 y(If)31 b(the)h(Assert's)f(RPT-bit) g(is)f(cleared)i(and)f(the)g(matc)m(hing)h(en)m(try)g(is)e(\(*,G\),)k (or)d(\(*,*,RP\),)j(the)e(router)f(creates)103 4933 y(a)f (\(S,G\)RPT-bit)g(en)m(try)-8 b(.)42 b(Otherwise,)29 b(no)h(new)g(en)m(try)h(is)e(created)j(in)d(resp)s(onse)g(to)i(the)g (Assert.)-13 5119 y(2.)46 b(The)24 b(router)i(then)e(compares)i(the)f (metric)g(v)-5 b(alues)25 b(receiv)m(ed)g(in)f(the)i(Assert)f(with)f (the)h(metric)g(v)-5 b(alues)25 b(asso)s(ciated)103 5232 y(with)f(the)i(matc)m(hed)g(en)m(try)-8 b(.)40 b(The)25 b(RPT-bit)f(and)h(metric)g(preference)h(\(in)e(that)i(order\))g(are)f (treated)i(as)f(the)f(high-)103 5345 y(order)j(part)h(of)g(an)g(Assert) g(metric)f(comparison.)40 b(If)28 b(the)h(v)-5 b(alue)29 b(in)e(the)i(Assert)g(is)f(less)g(than)h(the)g(router's)g(v)-5 b(alue)103 5458 y(\(with)28 b(ties)i(brok)m(en)f(b)m(y)h(the)g(IP)f (address,)g(where)h(higher)e(net)m(w)m(ork)i(la)m(y)m(er)h(address)d (wins\),)h(delete)h(the)g(in)m(terface)p eop %%Page: 22 23 22 22 bop -125 -149 a Fh(draft-ietf-idmr-PIM-SM-sp)s(ec-10.ps)2673 b Fk(22)103 149 y(from)25 b(the)g(en)m(try)-8 b(.)40 b(When)25 b(the)h(deletion)e(o)s(ccurs)h(for)g(a)h(\(*,G\))h(or)e (\(*,*,RP\))i(en)m(try)f(,)h(the)e(in)m(terface)h(is)e(also)i(deleted) 103 262 y(from)31 b(an)m(y)i(asso)s(ciated)f(\(S,G\)RPT-bit)g(or)g (\(*,G\))i(en)m(tries,)f(resp)s(ectiv)m(ely)-8 b(.)46 b(The)31 b(En)m(try-timer)h(for)g(the)g(a\013ected)103 375 y(en)m(tries)e(is)f(restarted.)-13 563 y(3.)46 b(If)26 b(the)h(router)f(has)g(w)m(on)h(the)g(election)f(the)h(router)f(k)m (eeps)h(the)g(in)m(terface)g(in)f(its)g(outgoing)g(in)m(terface)i (list.)38 b(It)26 b(acts)103 676 y(as)k(the)h(forw)m(arder)f(for)g(the) g(LAN.)-125 863 y(The)i(winning)d(router)k(sends)e(an)h(Assert)g (message)i(con)m(taining)d(its)h(o)m(wn)g(metric)g(to)h(that)g (outgoing)f(in)m(terface.)47 b(This)-125 976 y(will)26 b(cause)j(other)g(routers)f(on)g(the)h(LAN)f(to)h(prune)e(that)i(in)m (terface)g(from)f(their)g(route)g(en)m(tries.)40 b(The)28 b(winning)e(router)-125 1089 y(sets)31 b(the)g(RPT-bit)e(in)g(the)i (Assert)f(message)i(if)d(a)i(\(*,G\))h(or)e(\(S,G\)RPT-bit)g(en)m(try)h (w)m(as)g(matc)m(hed.)-125 1329 y Fn(3.5.2.2)106 b(Receiving)45 b(Asserts)f(on)g(an)f(en)m(try's)h(incoming)g(in)m(terface)91 b Fk(If)37 b(the)h(Assert)g(arriv)m(ed)g(on)f(the)h(in-)-125 1442 y(coming)31 b(in)m(terface)h(of)f(an)g(existing)f(\(S,G\),)i (\(*,G\),)h(or)e(\(*,*,RP\))i(en)m(try)-8 b(,)32 b(the)f(Assert)g(is)f (pro)s(cessed)h(as)g(follo)m(ws.)42 b(If)30 b(the)-125 1555 y(Assert)d(message)h(do)s(es)f(not)f(matc)m(h)i(the)f(en)m(try)-8 b(,)28 b Ff(exactly)p Fk(,)h(it)d(is)g(ignored;)h(i.e,)g(longest-matc)m (h)i(is)c(not)i(used)f(in)g(this)f(case.)-125 1668 y(If)30 b(the)h(Assert)g(message)g(do)s(es)f(matc)m(h)h(exactly)-8 b(,)32 b(then:)-13 1856 y(1.)46 b(Do)m(wnstream)29 b(routers)e(will)f (select)i(the)g(upstream)g(router)g(with)e(the)j(smallest)e(metric)g (preference)h(and)g(metric)103 1969 y(as)36 b(their)f(RPF)h(neigh)m(b)s (or.)55 b(If)36 b(t)m(w)m(o)h(metrics)e(are)i(the)f(same,)i(the)e (highest)f(net)m(w)m(ork)i(la)m(y)m(er)f(address)f(is)g(c)m(hosen)103 2082 y(to)e(break)f(the)h(tie.)47 b(This)31 b(is)h(imp)s(ortan)m(t)g (so)g(that)h(do)m(wnstream)g(routers)f(send)g(subsequen)m(t)g (Joins/Prunes)e(\(in)103 2194 y(SM\))g(to)h(the)g(correct)g(neigh)m(b)s (or.)40 b(An)30 b(Assert-timer)g(is)f(initiated)g(when)g(c)m(hanging)h (the)h(RPF)f(neigh)m(b)s(or)f(to)i(the)103 2307 y(Assert)d(winner.)38 b(When)28 b(the)g(timer)g(expires,)f(the)i(router)f(resets)g(its)g(RPF) g(neigh)m(b)s(or)f(according)h(to)h(its)e(unicast)103 2420 y(routing)i(tables)h(to)h(capture)g(net)m(w)m(ork)g(dynamics)e (and)h(router)g(failures.)-13 2608 y(2.)46 b(If)23 b(the)h(do)m (wnstream)f(routers)g(ha)m(v)m(e)i(do)m(wnstream)e(mem)m(b)s(ers,)i (and)e(if)f(the)i(Assert)g(caused)f(the)h(RPF)g(neigh)m(b)s(or)e(to)103 2721 y(c)m(hange,)31 b(the)e(do)m(wnstream)g(routers)g(m)m(ust)g (trigger)h(a)f(Join/Prune)f(message)i(to)g(inform)d(the)j(upstream)f (router)103 2834 y(that)i(pac)m(k)m(ets)h(are)f(to)g(b)s(e)f(forw)m (arded)f(on)i(the)f(m)m(ulti-access)h(net)m(w)m(ork.)-125 3077 y Fe(3.6)113 b(Candidate-RP-Adv)m(ertisemen)m(ts)36 b(and)i(Bo)s(otstrap)g(messages)-125 3249 y Fk(Candidate-RP-Adv)m (ertisemen)m(ts)j(\(C-RP-Advs\))h(are)f(p)s(erio)s(dic)e(PIM)i (messages)h(unicast)f(to)h(the)f(BSR)g(b)m(y)g(those)-125 3362 y(routers)31 b(that)g(are)f(con\014gured)g(as)h(Candidate-RPs)e (\(C-RPs\).)17 3475 y(Bo)s(otstrap)36 b(messages)h(are)f(p)s(erio)s (dic)d(PIM)j(messages)h(originated)e(b)m(y)g(the)h(Bo)s(otstrap)h (router)f(\(BSR\))g(within)d(a)-125 3588 y(domain,)d(and)g(forw)m (arded)f(hop-b)m(y-hop)h(to)h(distribute)d(the)j(curren)m(t)f(RP-set)h (to)g(all)e(routers)h(in)g(that)h(domain.)17 3700 y(The)23 b(Bo)s(otstrap)h(messages)h(also)e(supp)s(ort)f(a)i(simple)d(mec)m (hanism)i(b)m(y)h(whic)m(h)e(the)i(Candidate)e(BSR)i(\(C-BSR\))g(with) -125 3813 y(the)37 b(highest)f(BSR-priorit)m(y)f(and)g(address)h (\(referred)g(to)h(as)f(the)h(preferred)e(BSR\))h(is)g(elected)h(as)f (the)h(BSR)f(for)g(the)-125 3926 y(domain.)k(W)-8 b(e)31 b(recommend)f(that)g(eac)m(h)h(router)f(con\014gured)f(as)h(a)h(C-RP)e (also)h(b)s(e)f(con\014gured)g(as)i(a)f(C-BSR.)g(Sections)-125 4039 y(3.6.2)f(and)e(3.6.3)h(describ)s(e)e(the)h(com)m(bined)f (function)g(of)h(Bo)s(otstrap)h(messages)g(as)f(the)g(v)m(ehicle)g(for) f(BSR)h(election)g(and)-125 4152 y(RP-Set)k(distribution.)17 4265 y(A)k(Finite)g(State)h(Mac)m(hine)g(description)e(of)i(the)f(BSR)h (election)f(and)g(RP-Set)h(distribution)c(mec)m(hanisms)j(is)f(in-)-125 4378 y(cluded)29 b(in)g(App)s(endix)f(I)s(I.)-125 4618 y Fn(3.6.1)106 b(Sending)35 b(Candidate-RP-Adv)m(ertisemen)m(ts)-125 4790 y Fk(C-RPs)43 b(p)s(erio)s(dically)38 b(unicast)k(C-RP-Advs)g(to)h (the)g(BSR)f(for)h(that)g(domain.)76 b(The)42 b(in)m(terv)-5 b(al)42 b(for)g(sending)f(these)-125 4903 y(messages)32 b(is)d(sub)5 b(ject)30 b(to)i(lo)s(cal)d(con\014guration)h(at)h(the)g (C-RP)-8 b(.)17 5015 y(Candidate-RP-Adv)m(ertisemen)m(ts)35 b(carry)h(group)f(address)g(and)h(group)f(mask)h(\014elds.)55 b(This)35 b(enables)g(the)h(adv)m(er-)-125 5128 y(tising)e(router)h(to) i(limit)c(the)i(adv)m(ertisemen)m(t)h(to)g(certain)f(pre\014xes)g(or)g (scop)s(es)g(of)h(groups.)54 b(The)35 b(adv)m(ertising)g(router)-125 5241 y(ma)m(y)29 b(enforce)f(this)f(scop)s(e)h(acceptance)i(when)d (receiving)g(Registers)g(or)h(Join/Prune)e(messages.)41 b(C-RPs)27 b(should)f(send)-125 5354 y(C-RP-Adv)k(messages)i(with)d (the)h(`Priorit)m(y')g(\014eld)f(set)i(to)g(`0'.)p eop %%Page: 23 24 23 23 bop -125 -149 a Fh(draft-ietf-idmr-PIM-SM-sp)s(ec-10.ps)2673 b Fk(23)-125 149 y Fn(3.6.2)106 b(Receiving)36 b(C-RP-Advs)g(and)e (Originating)h(Bo)s(otstrap)-125 321 y Fk(Up)s(on)30 b(receiving)g(a)g(C-RP-Adv,)h(a)f(router)h(do)s(es)f(the)g(follo)m (wing:)-13 509 y(1.)46 b(If)30 b(the)g(router)g(is)g(not)g(the)h (elected)g(BSR,)f(it)g(ignores)g(the)h(message,)h(else)-13 696 y(2.)46 b(The)26 b(BSR)g(adds)f(the)i(RP)f(address)f(to)i(its)f(lo) s(cal)f(p)s(o)s(ol)g(of)i(candidate)f(RPs,)g(according)h(to)g(the)f (asso)s(ciated)h(group)103 809 y(pre\014x\(es\))32 b(in)g(the)h (C-RP-Adv)g(message.)49 b(The)32 b(Holdtime)g(in)g(the)h(C-RP-Adv)f (message)i(is)e(also)h(stored)g(with)103 922 y(the)e(corresp)s(onding)d (RP)-8 b(,)31 b(to)h(b)s(e)d(included)f(later)j(in)e(the)i(Bo)s (otstrap)h(message.)42 b(The)30 b(BSR)h(ma)m(y)g(apply)e(a)i(lo)s(cal) 103 1035 y(p)s(olicy)j(to)i(limit)d(the)j(n)m(um)m(b)s(er)e(of)i (Candidate)f(RPs)g(included)e(in)h(the)i(Bo)s(otstrap)g(message.)57 b(The)35 b(BSR)h(ma)m(y)103 1148 y(o)m(v)m(erride)30 b(the)h(pre\014x)e(indicated)g(in)g(a)i(C-RP-Adv)f(unless)f(the)h (`Priorit)m(y')g(\014eld)f(is)g(not)i(zero.)17 1336 y(The)e(BSR)h(k)m (eeps)g(an)g(RP-timer)g(p)s(er)f(RP)g(in)g(its)g(lo)s(cal)h(RP-set.)41 b(The)29 b(RP-timer)h(is)f(initialized)d(to)31 b(the)f(Holdtime)-125 1449 y(in)d(the)g(RP's)g(C-RP-Adv.)40 b(When)27 b(the)g(timer)g (expires,)g(the)h(corresp)s(onding)d(RP)i(is)g(remo)m(v)m(ed)h(from)f (the)h(RP-set.)40 b(The)-125 1561 y(RP-timer)30 b(is)g(restarted)g(b)m (y)h(the)f(C-RP-Advs)g(from)g(the)h(corresp)s(onding)d(RP)-8 b(.)17 1674 y(The)30 b(BSR)g(also)h(uses)f(its)g(Bo)s(otstrap-timer)h (to)h(p)s(erio)s(dically)27 b(send)j(Bo)s(otstrap)h(messages.)43 b(In)30 b(particular,)f(when)-125 1787 y(the)k(Bo)s(otstrap-timer)g (expires,)f(the)h(BSR)f(originates)g(a)g(Bo)s(otstrap)i(message)f(on)g (eac)m(h)g(of)g(its)e(PIM)i(in)m(terfaces.)47 b(T)-8 b(o)-125 1900 y(reduce)31 b(the)h(b)s(o)s(otstrap)e(message)j(o)m(v)m (erhead)f(during)d(partition)h(healing,)g(the)h(BSR)g(should)e(set)j(a) g(random)e(time)h(\(as)-125 2013 y(a)i(function)f(of)h(the)f(priorit)m (y)f(and)h(address\))g(after)i(whic)m(h)d(the)i(Bo)s(otstrap)g(message) h(is)e(originated)f(only)h(if)g(no)g(other)-125 2126 y(preferred)21 b(Bo)s(otstrap)i(message)g(is)e(receiv)m(ed.)38 b(F)-8 b(or)23 b(details)e(see)h(app)s(endix)e(6.2.)39 b(The)21 b(message)j(is)c(sen)m(t)j(with)e(a)h(TTL)f(of)h(1)-125 2239 y(to)h(the)f(`ALL-PIM-R)m(OUTERS')h(group.)37 b(In)21 b(steady)i(state,)i(the)d(BSR)g(originates)g(Bo)s(otstrap)g(messages)h (p)s(erio)s(dically)-8 b(.)-125 2352 y(A)m(t)26 b(startup,)g(the)e(Bo)s (otstrap-timer)i(is)d(initialized)f(to)j([Bo)s(otstrap-Timeout],)i (causing)d(the)h(\014rst)f(Bo)s(otstrap)h(message)-125 2465 y(to)32 b(b)s(e)d(originated)h(only)f(when)h(and)f(if)h(the)g (timer)g(expires.)40 b(F)-8 b(or)31 b(timer)f(details,)f(see)i(Section) f(3.6.3.)17 2578 y(A)f(DR)g(unicasts)g(a)g(Bo)s(otstrap)h(message)g(to) g(eac)m(h)h(new)d(PIM)h(neigh)m(b)s(or,)g(i.e.,)g(after)h(the)f(DR)h (receiv)m(es)g(the)f(neigh-)-125 2691 y(b)s(or's)h(Hello)g(message)h (\(it)g(do)s(es)f(so)g(ev)m(en)h(if)f(the)g(new)g(neigh)m(b)s(or)f(b)s (ecomes)i(the)f(DR\).)17 2803 y(The)k(Bo)s(otstrap)i(message)h(is)d (sub)s(divided)d(in)m(to)k(sets)h(of)f Fd(f)p Fk (group-pre\014x,RP-Coun)m(t,RP-addresses)p Fd(g)p Fk(.)55 b(F)-8 b(or)36 b(eac)m(h)-125 2916 y(RP-address,)45 b(the)e(corresp)s (onding)e(Holdtime)g(is)h(included)e(in)h(the)h(\\RP-Holdtime")h (\014eld.)76 b(The)42 b(format)h(of)f(the)-125 3029 y(Bo)s(otstrap)22 b(message)g(allo)m(ws)e(`seman)m(tic)h(fragmen)m(tation',)j(if)c(the)h (length)f(of)h(the)g(original)e(Bo)s(otstrap)j(message)g(exceeds)-125 3142 y(the)38 b(pac)m(k)m(et)h(maxim)m(um)d(b)s(oundaries)e(\(see)k (Section)f(4\).)62 b(Ho)m(w)m(ev)m(er,)41 b(w)m(e)c(recommend)g (against)g(con\014guring)f(a)h(large)-125 3255 y(n)m(um)m(b)s(er)30 b(of)g(routers)g(as)h(C-RPs,)f(to)h(reduce)f(the)h(seman)m(tic)g (fragmen)m(tation)g(required.)-125 3495 y Fn(3.6.3)106 b(Receiving)36 b(and)f(F)-9 b(orw)m(arding)35 b(Bo)s(otstrap)-125 3667 y Fk(Eac)m(h)c(router)g(k)m(eeps)g(a)f(Bo)s(otstrap-timer,)i (initialized)27 b(to)k([Bo)s(otstrap-Timeout])g(at)g(startup.)17 3780 y(When)42 b(a)g(router)g(receiv)m(es)h(Bo)s(otstrap)g(message)g (sen)m(t)g(to)g(`ALL-PIM-R)m(OUTERS')f(group,)j(it)d(p)s(erforms)e(the) -125 3893 y(follo)m(wing:)-13 4080 y(1.)46 b(If)31 b(the)g(message)i(w) m(as)f(not)f(sen)m(t)h(b)m(y)g(the)f(RPF)h(neigh)m(b)s(or)e(to)m(w)m (ards)i(the)g(BSR)f(address)f(included,)g(the)h(message)103 4193 y(is)e(dropp)s(ed.)39 b(Else)-13 4381 y(2.)46 b(If)30 b(the)g(included)e(BSR)i(is)f Fn(not)i Fk(preferred)e(o)m(v)m(er,)j (and)e(not)g(equal)g(to,)h(the)g(curren)m(tly)e(activ)m(e)j(BSR:)141 4568 y(\(a\))47 b(If)37 b(the)g(Bo)s(otstrap-timer)h(has)g Fn(not)f Fk(y)m(et)i(expired,)f(or)f(if)g(the)g(receiving)g(router)g (is)g(a)h(C-BSR,)f(then)g(the)303 4681 y(Bo)s(otstrap)31 b(message)g(is)f(dropp)s(ed.)39 b(Else)136 4827 y(\(b\))46 b(If)39 b(the)i(Bo)s(otstrap-timer)f Fn(has)h Fk(expired)d(and)i(the)g (receiving)g(router)g(is)f(not)h(a)h(C-BSR,)f(the)g(receiving)303 4940 y(router)28 b(stores)g(the)g(RP-Set)g(and)g(BSR)f(address)h(and)f (priorit)m(y)f(found)h(in)g(the)h(message,)h(and)f(restarts)g(the)303 5053 y(timer)j(b)m(y)g(setting)h(it)f(to)i([Bo)s(otstrap-Timeout].)45 b(The)31 b(Bo)s(otstrap)i(message)g(is)d(then)i(forw)m(arded)f(out)h (all)303 5166 y(PIM)g(in)m(terfaces,)h(excluding)d(the)i(one)h(o)m(v)m (er)g(whic)m(h)e(the)h(message)h(arriv)m(ed,)f(to)h(`ALL-PIM-R)m (OUTERS')303 5279 y(group,)d(with)f(a)i(TTL)e(of)i(1.)p eop %%Page: 24 25 24 24 bop -125 -149 a Fh(draft-ietf-idmr-PIM-SM-sp)s(ec-10.ps)2673 b Fk(24)-13 149 y(3.)46 b(If)31 b(the)h(Bo)s(otstrap)g(message)h (includes)c(a)j(BSR)f(address)g(that)h Fn(is)g Fk(preferred)e(o)m(v)m (er,)k(or)e(equal)f(to,)i(the)e(curren)m(tly)103 262 y(activ)m(e)e(BSR,)f(the)h(router)e(restarts)i(its)f(Bo)s (otstrap-timer)g(at)h([Bo)s(otstrap-Timeout])g(seconds.)40 b(and)28 b(stores)g(the)103 375 y(BSR)i(address)f(and)h(RP-Set)h (information.)103 526 y(The)e(Bo)s(otstrap)h(message)h(is)e(then)g (forw)m(arded)g(out)h(all)f(PIM)h(in)m(terfaces,)g(excluding)e(the)i (one)g(o)m(v)m(er)h(whic)m(h)d(the)103 638 y(message)j(arriv)m(ed,)f (to)h(`ALL-PIM-R)m(OUTERS')g(group,)f(with)f(a)i(TTL)e(of)i(1.)-13 826 y(4.)46 b(If)28 b(the)i(receiving)e(router)h(has)g(no)f(curren)m(t) h(RP)g(set)h(information)d(and)i(the)g(Bo)s(otstrap)h(w)m(as)f(unicast) f(to)i(it)f(from)103 939 y(a)g(directly)e(connected)j(neigh)m(b)s(or,)e (the)h(router)g(stores)g(the)g(information)e(as)i(its)g(new)f(RP-set.) 41 b(This)27 b(co)m(v)m(ers)j(the)103 1052 y(startup)g(condition)f (when)g(a)i(newly)e(b)s(o)s(oted)h(router)g(obtains)g(the)g(RP-Set)h (and)f(BSR)g(address)f(from)h(its)g(DR.)17 1240 y(When)42 b(a)i(router)e(receiv)m(es)i(a)g(new)e(RP-Set,)47 b(it)42 b(c)m(hec)m(ks)i(if)e(eac)m(h)j(of)e(the)g(RPs)f(referred)h(to)g(b)m(y) g(existing)f(state)-125 1352 y(\(i.e.,)g(b)m(y)d(\(*,G\),)i (\(*,*,RP\),)g(or)d(\(S,G\)RPT-bit)h(en)m(tries\))g(is)f(in)f(the)i (new)f(RP-Set.)67 b(If)38 b(an)h(RP)f(is)g(not)h(in)f(the)h(new)-125 1465 y(RP-set,)c(that)e(RP)g(is)e(considered)h(unreac)m(hable)g(and)g (the)h(hash)f(algorithm)g(\(see)i(b)s(elo)m(w\))e(is)g(re-p)s(erformed) g(for)g(eac)m(h)-125 1578 y(group)38 b(with)e(lo)s(cally)g(activ)m(e)j (state)g(that)f(previously)d(hashed)i(to)h(that)h(RP)-8 b(.)38 b(This)e(will)e(cause)39 b(those)f(groups)f(to)h(b)s(e)-125 1691 y(distributed)30 b(among)j(the)g(remaining)e(RPs.)47 b(When)32 b(the)h(new)f(RP-Set)h(con)m(tains)g(a)f(new)h(RP)-8 b(,)33 b(the)f(v)-5 b(alue)32 b(of)h(the)g(new)-125 1804 y(RP)27 b(is)e(calculated)h(for)g(eac)m(h)i(group)e(co)m(v)m(ered)i(b)m (y)e(that)h(C-RP's)f(Group-pre\014x.)38 b(An)m(y)26 b(group)g(for)g (whic)m(h)f(the)i(new)f(RP's)-125 1917 y(v)-5 b(alue)30 b(is)g(greater)h(than)f(the)h(previously)d(activ)m(e)k(RP's)e(v)-5 b(alue)30 b(is)f(switc)m(hed)h(o)m(v)m(er)i(to)f(the)f(new)g(RP)-8 b(.)-125 2160 y Fe(3.7)113 b(Hash)38 b(F)-9 b(unction)-125 2332 y Fk(The)30 b(hash)g(function)f(is)g(used)h(b)m(y)g(all)g(routers) g(within)d(a)k(domain,)f(to)h(map)f(a)h(group)e(to)j(one)e(of)h(the)f (C-RPs)g(from)g(the)-125 2445 y(RP-Set.)46 b(F)-8 b(or)33 b(a)f(particular)e(group,)i(G,)h(the)f(hash)f(function)f(uses)i(only)f (those)h(C-RPs)g(whose)f(Group-pre\014x)g(co)m(v)m(ers)-125 2558 y(G.)j(The)e(algorithm)f(tak)m(es)j(as)f(input)d(the)j(group)f (address,)h(and)f(the)g(addresses)g(of)h(the)g(Candidate)e(RPs,)i(and)f (giv)m(es)-125 2671 y(as)f(output)f(one)h(RP)f(address)f(to)i(b)s(e)f (used.)17 2784 y(The)h(proto)s(col)h(requires)e(that)j(all)e(routers)g (hash)g(to)i(the)f(same)g(RP)g(within)d(a)k(domain)d(\(except)k(for)d (transien)m(ts\).)-125 2897 y(The)f(follo)m(wing)f(hash)h(function)f(m) m(ust)h(b)s(e)g(used)f(in)g(eac)m(h)j(router:)-13 3109 y(1.)46 b(F)-8 b(or)40 b(RP)f(addresses)f(in)g(the)i(RP-Set,)h(whose)e (Group-pre\014x)f(co)m(v)m(ers)j(G,)f(select)g(the)f(RPs)g(with)f(the)h (highest)103 3222 y(priorit)m(y)29 b(\(i.e.)40 b(lo)m(w)m(est)32 b(`Priorit)m(y')d(v)-5 b(alue\),)31 b(and)f(compute)g(a)h(v)-5 b(alue:)120 3486 y Fc(V)20 b(al)r(ue)p Fk(\()p Fc(G;)15 b(M)5 b(;)15 b(C)709 3500 y Fb(i)738 3486 y Fk(\))26 b(=)f(\(1103515245)g Fd(\001)20 b Fk(\(\(1103515245)26 b Fd(\001)20 b Fk(\()p Fc(G)p Fk(&)p Fc(M)10 b Fk(\))20 b(+)g(12345\))33 b(X)m(OR)e Fc(C)3055 3500 y Fb(i)3083 3486 y Fk(\))20 b(+)g(12345\))185 b(mo)s(d)29 b(2)3923 3449 y Fl(31)103 3728 y Fk(where)e Fc(C)428 3742 y Fb(i)483 3728 y Fk(is)f(the)i(RP)f(address)f(and)h Fc(M)37 b Fk(is)27 b(a)h(hash-mask)e(included)f(in)h(Bo)s(otstrap)i(messages.)41 b(The)27 b(hash-mask)103 3841 y(allo)m(ws)h(a)i(small)e(n)m(um)m(b)s (er)g(of)h(consecutiv)m(e)i(groups)d(\(e.g.,)k(4\))e(to)g(alw)m(a)m(ys) g(hash)e(to)i(the)g(same)g(RP)-8 b(.)29 b(F)-8 b(or)30 b(instance,)103 3954 y(hierarc)m(hically-enco)s(ded)f(data)j(can)g(b)s (e)f(sen)m(t)h(on)g(consecutiv)m(e)g(group)f(addresses)g(to)i(get)g (the)e(same)h(dela)m(y)g(and)103 4067 y(fate-sharing)e(c)m (haracteristics.)103 4217 y(F)-8 b(or)35 b(address)f(families)f(other)i (than)g(IPv4,)h(a)f(32-bit)g(digest)g(to)h(b)s(e)e(used)g(as)h Fc(C)2895 4231 y Fb(i)2958 4217 y Fk(m)m(ust)g(\014rst)f(b)s(e)g(deriv) m(ed)g(from)103 4330 y(the)g(actual)g(RP)f(address.)50 b(Suc)m(h)33 b(a)h(digest)f(metho)s(d)h(m)m(ust)f(b)s(e)g(used)g (consisten)m(tly)g(throughout)h(the)g(PIM)f(do-)103 4443 y(main.)38 b(F)-8 b(or)25 b(IPv6)h(addresses,)f(w)m(e)h(recommend)f (using)f(the)h(equiv)-5 b(alen)m(t)24 b(IPv4)i(address)e(for)h(an)g (IPv4-compatible)103 4556 y(address,)k(and)h(the)h(CR)m(C-32)g(c)m(hec) m(ksum)g([7)q(])f(of)h(all)e(other)i(IPv6)f(addresses.)-13 4743 y(2.)46 b(F)-8 b(rom)27 b(the)g(RPs)f(with)f(the)i(highest)f (priorit)m(y)f(\(i.e.)40 b(lo)m(w)m(est)27 b(`Priorit)m(y')f(v)-5 b(alue\),)28 b(the)f(candidate)f(with)f(the)i(highest)103 4856 y(resulting)i(v)-5 b(alue)30 b(is)g(then)h(c)m(hosen)g(as)g(the)g (RP)g(for)f(that)i(group,)e(and)h(its)f(iden)m(tit)m(y)g(and)h(hash)f (v)-5 b(alue)30 b(are)h(stored)103 4969 y(with)e(the)h(en)m(try)h (created.)103 5119 y(Ties)e(b)s(et)m(w)m(een)h(RPs)g(ha)m(ving)f(the)h (same)h(hash)e(v)-5 b(alue)29 b(and)g(priorit)m(y)-8 b(,)30 b(are)g(brok)m(en)g(in)e(adv)-5 b(an)m(tage)32 b(of)e(the)g(highest)103 5232 y(address.)p eop %%Page: 25 26 25 25 bop -125 -149 a Fh(draft-ietf-idmr-PIM-SM-sp)s(ec-10.ps)2673 b Fk(25)17 149 y(The)31 b(hash)g(function)g(algorithm)g(is)g(in)m(v)m (ok)m(ed)i(b)m(y)f(a)g(DR,)h(up)s(on)d(reception)i(of)g(a)h(pac)m(k)m (et,)i(or)d(IGMP)g(mem)m(b)s(ership)-125 262 y(indication,)k(for)g(a)h (group,)g(for)f(whic)m(h)f(the)h(DR)h(has)e(no)i(en)m(try)-8 b(.)58 b(It)37 b(is)e(in)m(v)m(ok)m(ed)h(b)m(y)g(an)m(y)h(router)f (that)h(has)f(\(*,*,RP\))-125 375 y(state)f(when)e(a)g(pac)m(k)m(et)j (is)c(receiv)m(ed)i(for)f(whic)m(h)f(there)i(is)e(no)i(corresp)s (onding)d(\(S,G\))j(or)g(\(*,G\))h(en)m(try)-8 b(.)50 b(F)-8 b(urthermore,)-125 488 y(the)31 b(hash)f(function)f(is)g(in)m(v) m(ok)m(ed)i(b)m(y)f(all)f(routers)i(up)s(on)d(receiving)i(a)h(\(*,G\))h (or)e(\(*,*,RP\))i(Join/Prune)d(message.)-125 732 y Fe(3.8)113 b(Pro)s(cessing)36 b(Timer)g(Ev)m(en)m(ts)-125 903 y Fk(In)26 b(this)f(subsection,)h(w)m(e)h(en)m(umerate)f(all)f(timers)h (that)g(ha)m(v)m(e)i(b)s(een)d(discussed)f(or)i(implied.)37 b(Since)25 b(some)h(critical)f(timer)-125 1016 y(ev)m(en)m(ts)37 b(are)e(not)g(asso)s(ciated)g(with)f(the)h(receipt)f(or)h(sending)e(of) i(messages,)j(they)d(are)g(not)g(fully)d(co)m(v)m(ered)37 b(b)m(y)d(earlier)-125 1129 y(subsections.)17 1242 y(Timers)c(are)j (implemen)m(ted)e(in)g(an)h(implemen)m(tation-sp)s(eci\014c)e(manner.) 45 b(F)-8 b(or)33 b(example,)g(a)f(timer)g(ma)m(y)h(coun)m(t)f(up)-125 1355 y(or)g(do)m(wn,)f(or)g(ma)m(y)h(simply)d(expire)h(at)i(a)g(sp)s (eci\014c)e(time.)43 b(Setting)31 b(a)h(timer)f(to)h(a)f(v)-5 b(alue)31 b(T)g(means)g(that)h(it)f(will)d(expire)-125 1468 y(after)j(T)f(seconds.)-125 1708 y Fn(3.8.1)106 b(Timers)34 b(related)g(to)h(tree)f(main)m(tenance)-125 1880 y Fk(Eac)m(h)27 b(\(S,G\),)h(\(*,G\),)g(and)e(\(*,*,RP\))i(route)e (en)m(try)h(has)f(m)m(ultiple)e(timers)i(asso)s(ciated)g(with)f(it:)39 b(one)26 b(for)g(eac)m(h)i(in)m(terface)-125 1992 y(in)37 b(the)h(outgoing)g(in)m(terface)h(list,)g(one)f(for)g(the)g(m)m (ulticast)f(routing)g(en)m(try)h(itself,)h(and)f(one)g(optional)f (Join/Prune-)-125 2105 y(Suppression-Timer.)d(Eac)m(h)21 b(\(S,G\))g(and)f(\(*,G\))j(en)m(try)d(also)h(has)f(an)h(Assert-timer)f (and)g(a)h(Random-Dela)m(y-Join-Timer)-125 2218 y(for)28 b(use)f(with)f(Asserts.)40 b(In)26 b(addition,)h(DR's)g(ha)m(v)m(e)i(a) f(Register-Suppression-timer)c(for)k(eac)m(h)g(\(S,G\))g(en)m(try)g (and)f(ev)m(ery)-125 2331 y(router)41 b(has)g(a)g(single)f (Join/Prune-timer.)70 b(\(A)42 b(router)e(ma)m(y)i(optionally)d(k)m (eep)j(separate)g(Join/Prune-timers)d(for)-125 2444 y(di\013eren)m(t)30 b(in)m(terfaces)h(or)f(route)h(en)m(tries)f(if)g(di\013eren)m(t)f (Join/Prune)g(p)s(erio)s(ds)f(are)j(desired.\))-125 2657 y Fn(Join/Prune-Timer)46 b Fk(This)39 b(timer)i(is)f(used)g(for)h(p)s (erio)s(dically)d(sending)h(aggregate)44 b(Join/Prune)c(messages.)74 b(T)-8 b(o)103 2770 y(a)m(v)m(oid)24 b(sync)m(hronization)f(among)i (routers)e(b)s(o)s(oting)g(sim)m(ultaneously)-8 b(,)24 b(it)f(is)g(initially)e(set)j(to)h(a)f(random)f(v)-5 b(alue)24 b(b)s(e-)103 2882 y(t)m(w)m(een)d(1)g(and)f([Join/Prune-P)m (erio)s(d].)35 b(When)20 b(it)g(expires,)h(the)g(timer)e(is)h (immediately)e(restarted)j(to)g([Join/Prune-)103 2995 y(P)m(erio)s(d].)40 b(A)30 b(Join/Prune)e(message)j(is)e(then)h(sen)m (t)g(out)h(eac)m(h)g(in)m(terface.)41 b(This)28 b(timer)h(should)f(not) j(b)s(e)e(restarted)103 3108 y(b)m(y)h(other)h(ev)m(en)m(ts.)-125 3296 y Fn(Join/Prune-Suppression-Timer)36 b(\(k)m(ept)f(p)s(er)g(route) f(en)m(try\))45 b Fk(A)21 b(route)f(en)m(try's)h(\(optional\))f (Join/Prune-Suppression-)103 3409 y(Timer)j(ma)m(y)h(b)s(e)g(used)g(to) h(suppress)d(duplicate)h(joins)g(from)h(m)m(ultiple)e(do)m(wnstream)i (routers)g(on)g(the)g(same)h(LAN.)103 3522 y(When)35 b(a)i(Join)d(message)j(is)e(receiv)m(ed)h(from)g(a)g(neigh)m(b)s(or)e (on)i(the)g(en)m(try's)g(incoming)f(in)m(terface)h(in)f(whic)m(h)f(the) 103 3635 y(included)40 b(Holdtime)j(is)g(higher)f(than)h(the)h (router's)f(o)m(wn)h([Join/Prune-Holdtime])d(\(with)i(ties)g(brok)m(en) h(b)m(y)103 3748 y(higher)38 b(net)m(w)m(ork)j(la)m(y)m(er)f (address\),)i(the)d(timer)g(is)g(set)h(to)h ([Join/Prune-Suppression-Timeout],)d(with)g(some)103 3860 y(random)28 b(jitter)g(in)m(tro)s(duced)f(to)j(a)m(v)m(oid)f(sync) m(hronization)f(of)g(triggered)h(Join/Prune)e(messages)j(on)e (expiration.)103 3973 y(\(The)38 b(random)g(timeout)h(v)-5 b(alue)38 b(m)m(ust)h(b)s(e)f Fc(<)h Fk(1.5)h(*)f([Join/Prune-P)m(erio) s(d])e(to)i(prev)m(en)m(t)h(losing)d(data)j(after)f(2)103 4086 y(dropp)s(ed)30 b(Join/Prunes.\))45 b(The)32 b(timer)g(is)f (restarted)i(ev)m(ery)h(time)e(a)g(subsequen)m(t)g(Join/Prune)f (message)i(\(with)103 4199 y(higher)h(Holdtime/IP)h(address\))g(for)g (the)h(en)m(try)g(is)f(receiv)m(ed)h(on)f(its)h(incoming)e(in)m (terface.)57 b(While)34 b(the)i(timer)103 4312 y(is)g(running,)g (Join/Prune)g(messages)i(for)f(the)g(en)m(try)h(are)f(not)h(sen)m(t.)61 b(This)36 b(timer)g(is)h(idle)e(\(not)j(running\))d(for)103 4425 y(p)s(oin)m(t-to-p)s(oin)m(t)30 b(links.)-125 4613 y Fn(Oif-Timer)k(\(k)m(ept)g(p)s(er)h(oif)g(for)g(eac)m(h)g(route)g(en) m(try\))45 b Fk(A)29 b(timer)g(for)g(eac)m(h)h(oif)e(of)h(a)h(route)f (en)m(try)h(is)e(used)g(to)i(time)103 4726 y(out)i(that)h(oif.)47 b(Because)34 b(some)e(of)h(the)g(outgoing)f(in)m(terfaces)h(in)e(an)i (\(S,G\))g(en)m(try)f(are)h(copied)f(from)g(the)h(\(*,G\))103 4838 y(outgoing)24 b(in)m(terface)h(list,)f(they)g(ma)m(y)h(not)f(ha)m (v)m(e)h(explicit)d(\(S,G\))j(join)e(messages)i(from)f(some)g(of)g(the) g(do)m(wnstream)103 4951 y(routers)d(\(i.e.,)j(where)e(mem)m(b)s(ers)f (are)h(joining)e(to)i(the)g(\(*,G\))i(tree)e(only\).)38 b(Th)m(us,)22 b(when)f(an)h(Oif-timer)e(is)h(restarted)103 5064 y(in)29 b(a)h(\(*,G\))i(en)m(try)-8 b(,)32 b(the)e(Oif-timer)f(is) g(restarted)i(for)f(that)h(in)m(terface)g(in)e(eac)m(h)i(existing)e (\(S,G\))i(en)m(try)g(whose)f(oif)103 5177 y(list)k(con)m(tains)h(that) h(in)m(terface.)56 b(The)35 b(same)h(rule)e(applies)f(to)j(\(*,G\))h (and)e(\(S,G\))h(en)m(tries)f(when)f(restarting)i(an)103 5290 y(Oif-timer)28 b(on)j(a)f(\(*,*,RP\))j(en)m(try)-8 b(.)p eop %%Page: 26 27 26 26 bop -125 -149 a Fh(draft-ietf-idmr-PIM-SM-sp)s(ec-10.ps)2673 b Fk(26)103 149 y(The)25 b(follo)m(wing)g(table)g(sho)m(ws)h(its)f (usage)i(when)e(\014rst)g(adding)g(the)h(oif)f(to)i(the)f(en)m(try's)g (oi\015ist,)g(when)f(it)g(should)f(b)s(e)103 262 y(restarted)29 b(\(unless)f(it)h(is)f(already)g(higher\),)h(and)g(when)f(it)g(should)f (b)s(e)i(decreased)g(\(unless)f(it)h(is)f(already)h(lo)m(w)m(er\).)p 103 334 3176 4 v 101 447 4 113 v 153 413 a Fn(Set)34 b(to)772 b(When)925 b(Applies)36 b(to)p 3276 447 V 103 450 3176 4 v 101 563 4 113 v 153 529 a Fk(included)27 b(Holdtime)316 b(adding)29 b(oif)h(o\013)h(Join/Prune)187 b(\(S,G\))31 b(\(*,G\))h(\(*,*,RP\))p 3276 563 V 101 676 V 153 642 a Fn(Increased)j(\(only\))f(to)175 b(When)925 b(Applies)36 b(to)p 3276 676 V 103 679 3176 4 v 101 792 4 113 v 153 758 a Fk(included)27 b(Holdtime)316 b(receiv)m(ed)31 b(Join/Prune)394 b(\(S,G\))31 b(\(*,G\))h(\(*,*,RP\))p 3276 792 V 101 905 V 153 871 a(\(*,*,RP\))g(oif-timer)d(v)-5 b(alue)99 b(\(*,*,RP\))33 b(oif-timer)c(restarted)100 b(\(S,G\))31 b(\(*,G\))p 3276 905 V 101 1018 V 153 984 a(\(*,G\))h(oif-timer)d(v)-5 b(alue)227 b(\(*,G\))32 b(oif-timer)e(restarted)228 b(\(S,G\))p 3276 1018 V 103 1021 3176 4 v 103 1038 V 101 1151 4 113 v 153 1117 a Fn(Decreased)35 b(\(only\))g(to)144 b(When)925 b(Applies)36 b(to)p 3276 1151 V 103 1154 3176 4 v 101 1267 4 113 v 153 1233 a Fk(Oif-Deletion-Dela)m(y)304 b(prune)29 b(receiv)m(ed)621 b(\(S,G\))31 b(\(*,G\))p 3276 1267 V 103 1271 3176 4 v 103 1379 a(When)e(the)h(timer)f(expires,)g(the)h(oif)f(is)f(remo)m(v) m(ed)j(from)e(the)h(oi\015ist)e(if)g(there)i(are)g(no)g (directly-connected)f(mem-)103 1492 y(b)s(ers.)39 b(When)30 b(deleted,)h(the)f(oif)g(is)g(also)g(remo)m(v)m(ed)h(in)e(an)m(y)i (asso)s(ciated)g(\(S,G\))g(or)f(\(*,G\))i(en)m(tries.)-125 1680 y Fn(En)m(try-Timer)i(\(k)m(ept)g(p)s(er)h(route)g(en)m(try\))45 b Fk(A)39 b(timer)f(for)g(eac)m(h)i(route)f(en)m(try)g(is)f(used)g(to)i (time)e(out)h(that)g(en)m(try)-8 b(.)103 1793 y(The)31 b(follo)m(wing)f(table)h(summarizes)f(its)h(usage)h(when)e(\014rst)h (adding)f(the)i(oif)e(to)j(the)e(en)m(try's)h(oi\015ist,)f(and)f(when) 103 1906 y(it)g(should)e(b)s(e)i(restarted)h(\(unless)e(it)h(is)f (already)h(higher\).)p 103 1977 3932 4 v 101 2090 4 113 v 153 2056 a Fn(Set)k(to)697 b(When)737 b(Applies)35 b(to)p 4033 2090 V 103 2094 3932 4 v 101 2207 4 113 v 153 2173 a Fk([Data-Timeout])358 b(created)31 b(o\013)g(data)g(pac)m(k) m(et)102 b(\(S,G\))p 4033 2207 V 101 2319 V 153 2286 a(included)27 b(Holdtime)241 b(created)31 b(o\013)g(Join/Prune)108 b(\(S,G\))562 b(\(*,G\))521 b(\(*,*,RP\))p 4033 2319 V 103 2323 3932 4 v 103 2339 V 101 2452 4 113 v 153 2418 a Fn(Increased)35 b(\(only\))f(to)100 b(When)737 b(Applies)35 b(to)p 4033 2452 V 103 2456 3932 4 v 101 2569 4 113 v 153 2535 a Fk([Data-Timeout])358 b(receiving)29 b(data)j(pac)m(k)m(ets) 131 b(\(S,G\)no)31 b(RPT-bit)p 4033 2569 V 101 2681 V 153 2648 a(oif-timer)e(v)-5 b(alue)395 b(an)m(y)31 b(oif-timer)e (restarted)112 b(\(S,G\)RPT-bit)225 b(\(*,G\))521 b(\(*,*,RP\))p 4033 2681 V 101 2794 V 153 2760 a([Assert-Timeout])301 b(assert)31 b(receiv)m(ed)432 b(\(S,G\)RPT-bit)225 b(\(*,G\))32 b(w/n)m(ull)d(oif)p 4033 2794 V 103 2798 3932 4 v 103 2912 a(When)37 b(the)h(timer)e(expires,)j(the)e(route)h(en)m(try)f(is)g (deleted;)k(if)36 b(the)i(en)m(try)f(is)g(a)h(\(*,G\))h(or)e (\(*,*,RP\))i(en)m(try)-8 b(,)41 b(all)103 3024 y(asso)s(ciated)31 b(\(S,G\)RPT-bit)f(en)m(tries)g(are)g(also)h(deleted.)-125 3212 y Fn(Register-Suppression-Timer)36 b(\(k)m(ept)e(p)s(er)h(\(S,G\)) f(route)h(en)m(try\))45 b Fk(An)20 b(\(S,G\))h(route)g(en)m(try's)f (Register-Suppression-)103 3325 y(Timer)h(is)g(used)h(to)h(suppress)e (registers)h(when)g(the)g(RP)h(is)e(receiving)h(data)h(pac)m(k)m(ets)i (nativ)m(ely)-8 b(.)38 b(When)22 b(a)h(Register-)103 3438 y(Stop)28 b(message)i(for)e(the)g(en)m(try)h(is)f(receiv)m(ed)g (from)g(the)h(RP)-8 b(,)29 b(the)f(timer)g(is)g(set)h(to)g(a)g(random)e (v)-5 b(alue)28 b(in)f(the)i(range)103 3551 y(0.5)35 b(*)f([Register-Suppression-Timeout])e(to)j(1.5)g(*)f ([Register-Suppression-Timeout].)50 b(While)33 b(the)h(timer)f(is)103 3664 y(running,)25 b(Registers)j(for)f(that)h(en)m(try)f(will)e(b)s(e)h (suppressed.)38 b(If)27 b(n)m(ull)e(registers)i(are)h(used,)f(a)h(n)m (ull)d(register)j(is)e(sen)m(t)103 3777 y([Prob)s(e-Time])j(seconds)i (b)s(efore)f(the)g(timer)g(expires.)-125 3964 y Fn(Assert-Timer)k(\(p)s (er)h(\(S,G\))f(or)h(\(*,G\))g(route)g(en)m(try\))45 b Fk(The)30 b(Assert-Timer)g(for)g(an)g(\(S,G\))i(or)e(\(*,G\))i(route) f(en-)103 4077 y(try)j(is)f(used)h(for)g(timing)f(out)h(Asserts)g (receiv)m(ed.)53 b(When)34 b(an)g(Assert)h(is)e(receiv)m(ed)i(and)f (the)g(RPF)g(neigh)m(b)s(or)f(is)103 4190 y(c)m(hanged)d(to)h(the)g (Assert)f(winner,)e(the)j(Assert-Timer)e(is)g(set)i(to)g ([Assert-Timeout],)f(and)g(is)f(restarted)i(to)f(this)103 4303 y(v)-5 b(alue)29 b(ev)m(ery)i(time)f(a)h(subsequen)m(t)e(Assert)h (for)g(the)h(en)m(try)f(is)f(receiv)m(ed)i(on)f(its)f(incoming)g(in)m (terface.)41 b(When)30 b(the)103 4416 y(timer)f(expires,)h(the)h (router)f(resets)h(its)e(RPF)i(neigh)m(b)s(or)e(according)h(to)h(its)f (unicast)g(routing)f(table.)-125 4603 y Fn(Random-Dela)m(y-Join-Timer) 34 b(\(p)s(er)h(\(S,G\))f(or)h(\(*,G\))g(route)g(en)m(try\))45 b Fk(The)20 b(Random-Dela)m(y-Join-Timer)f(for)103 4716 y(an)33 b(\(S,G\))g(or)g(\(*,G\))i(route)e(en)m(try)g(is)f(used)g(to)i (prev)m(en)m(t)f(sync)m(hronization)f(among)i(do)m(wnstream)f(routers)f (on)h(a)103 4829 y(LAN)40 b(when)e(their)h(RPF)h(neigh)m(b)s(or)e(c)m (hanges.)70 b(When)39 b(the)h(RPF)g(neigh)m(b)s(or)e(c)m(hanges,)43 b(this)c(timer)g(is)f(set)j(to)103 4942 y(a)d(random)f(v)-5 b(alue)37 b(b)s(et)m(w)m(een)h(0)h(and)e([Random-Dela)m (y-Join-Timeout])h(seconds.)63 b(When)37 b(the)h(timer)f(expires,)103 5055 y(a)h(triggered)g(Join/Prune)f(message)i(is)e(sen)m(t)h(for)g(the) h(en)m(try)f(unless)e(its)i(Join/Prune-Suppression-Timer)32 b(is)103 5168 y(running.)p eop %%Page: 27 28 27 27 bop -125 -149 a Fh(draft-ietf-idmr-PIM-SM-sp)s(ec-10.ps)2673 b Fk(27)-125 149 y Fn(3.8.2)106 b(Timers)34 b(relating)h(to)f(neigh)m (b)s(or)i(disco)m(v)m(ery)-125 321 y(Hello-Timer)45 b Fk(This)31 b(timer)h(is)g(used)g(to)i(p)s(erio)s(dically)29 b(send)j(Hello)g(messages.)49 b(T)-8 b(o)34 b(a)m(v)m(oid)f(sync)m (hronization)f(among)103 434 y(routers)h(b)s(o)s(oting)g(sim)m (ultaneously)-8 b(,)33 b(it)g(is)g(initially)d(set)k(to)g(a)g(random)f (v)-5 b(alue)33 b(b)s(et)m(w)m(een)i(1)f(and)f([Hello-P)m(erio)s(d].) 103 547 y(When)28 b(it)g(expires,)f(the)i(timer)e(is)h(immediately)e (restarted)j(to)g([Hello-P)m(erio)s(d].)39 b(A)29 b(Hello)e(message)j (is)d(then)h(sen)m(t)103 660 y(out)i(eac)m(h)i(in)m(terface.)41 b(This)29 b(timer)g(should)g(not)h(b)s(e)g(restarted)h(b)m(y)f(other)h (ev)m(en)m(ts.)-125 847 y Fn(Neigh)m(b)s(or-Timer)k(\(k)m(ept)f(p)s(er) h(neigh)m(b)s(or\))46 b Fk(A)34 b(Neigh)m(b)s(or-Timer)e(for)i(eac)m(h) h(neigh)m(b)s(or)d(is)h(used)h(to)g(time)g(out)g(the)103 960 y(neigh)m(b)s(or)g(state.)59 b(When)35 b(a)i(Hello)e(message)i(is)e (receiv)m(ed)h(from)g(a)g(new)f(neigh)m(b)s(or,)h(the)g(timer)g(is)e (initially)f(set)103 1073 y(to)38 b(the)f(Holdtime)f(included)f(in)h (the)h(Hello)g(message)h(\(whic)m(h)f(is)f(equal)h(to)h(the)f(neigh)m (b)s(or's)f(v)-5 b(alue)37 b(of)g([Hello-)103 1186 y(Holdtime]\).)i(Ev) m(ery)29 b(time)f(a)g(subsequen)m(t)f(Hello)h(is)f(receiv)m(ed)i(from)e (that)i(neigh)m(b)s(or,)e(the)i(timer)e(is)g(restarted)i(to)103 1299 y(the)h(Holdtime)g(in)f(the)h(Hello.)41 b(When)30 b(the)g(timer)g(expires,)g(the)g(neigh)m(b)s(or)f(state)j(is)d(remo)m (v)m(ed.)-125 1539 y Fn(3.8.3)106 b(Timers)34 b(relating)h(to)f(RP)i (information)-125 1711 y(C-RP-Adv-Timer)e(\(C-RP's)h(only\))46 b Fk(Routers)24 b(con\014gured)f(as)h(candidate)f(RP's)h(use)f(this)g (timer)g(to)h(p)s(erio)s(dically)103 1824 y(send)38 b(C-RP-Adv)h (messages.)69 b(T)-8 b(o)40 b(a)m(v)m(oid)g(sync)m(hronization)e(among) i(routers)f(b)s(o)s(oting)f(sim)m(ultaneously)-8 b(,)40 b(the)103 1937 y(timer)35 b(is)h(initially)c(set)37 b(to)g(a)g(random)e (v)-5 b(alue)36 b(b)s(et)m(w)m(een)h(1)f(and)g([C-RP-Adv-P)m(erio)s (d].)58 b(When)36 b(it)f(expires,)i(the)103 2050 y(timer)g(is)g (immediately)f(restarted)i(to)h([C-RP-Adv-P)m(erio)s(d].)62 b(A)38 b(C-RP-Adv)g(message)h(is)e(then)g(sen)m(t)i(to)f(the)103 2162 y(elected)31 b(BSR.)f(This)f(timer)g(should)g(not)h(b)s(e)g (restarted)h(b)m(y)f(other)h(ev)m(en)m(ts.)-125 2350 y Fn(RP-Timer)k(\(BSR)g(only)-9 b(,)36 b(k)m(ept)f(p)s(er)g(RP)g(in)g (RP-Set\))46 b Fk(The)37 b(BSR)g(uses)g(a)h(timer)f(p)s(er)g(RP)g(in)f (the)i(RP-Set)g(to)103 2463 y(monitor)32 b(liv)m(eness.)45 b(When)33 b(a)g(C-RP)f(is)f(added)h(to)h(the)g(RP-Set,)g(its)f(timer)g (is)g(set)h(to)g(the)g(Holdtime)e(included)103 2576 y(in)e(the)h (C-RP-Adv)g(message)h(from)f(that)g(C-RP)g(\(whic)m(h)f(is)g(equal)h (to)h(the)f(C-RP's)g(v)-5 b(alue)30 b(of)g([RP-Holdtime]\).)103 2689 y(Ev)m(ery)21 b(time)f(a)h(subsequen)m(t)f(C-RP-Adv)h(is)e(receiv) m(ed)j(from)e(that)h(RP)-8 b(,)21 b(its)f(timer)g(is)g(restarted)h(to)h (the)f(Holdtime)f(in)103 2802 y(the)27 b(C-RP-Adv.)39 b(When)27 b(the)g(timer)f(expires,)h(the)g(RP)g(is)f(remo)m(v)m(ed)i (from)e(the)h(RP-Set)h(included)c(in)i(Bo)s(otstrap)103 2915 y(messages.)-125 3102 y Fn(Bo)s(otstrap-Timer)45 b Fk(This)28 b(timer)g(is)h(used)f(b)m(y)h(the)h(BSR)f(to)h(p)s(erio)s (dically)c(originate)j(Bo)s(otstrap)h(messages,)h(and)e(b)m(y)103 3215 y(other)35 b(routers)f(to)i(time)f(out)g(the)g(BSR)f(\(see)i (3.6.3\).)57 b(This)33 b(timer)h(is)g(initially)d(set)k(to)h([Bo)s (otstrap-Timeout].)103 3328 y(A)g(C-BSR)g(restarts)h(this)e(timer)h(to) h([Bo)s(otstrap-Timeout])g(up)s(on)e(receiving)g(a)i(Bo)s(otstrap)g (message)g(from)f(a)103 3441 y(preferred)31 b(router,)j(and)e (originates)h(a)g(Bo)s(otstrap)h(message)g(and)e(restarts)i(the)f (timer)f(to)i([Bo)s(otstrap-P)m(erio)s(d])103 3554 y(when)25 b(it)h(expires.)38 b(Routers)27 b(not)f(con\014gured)g(as)g(C-BSR's)h (restart)g(this)e(timer)g(to)j([Bo)s(otstrap-Timeout])f(up)s(on)103 3667 y(receiving)38 b(a)h(Bo)s(otstrap)h(message)g(from)f(the)g (elected)g(or)g(a)h(more)f(preferred)f(BSR,)h(and)f(ignore)h(Bo)s (otstrap)103 3780 y(messages)31 b(from)f(non-preferred)f(C-BSRs)h (while)e(it)i(is)g(running.)-125 4020 y Fn(3.8.4)106 b(Default)34 b(timer)g(v)-6 b(alues)-125 4191 y Fk(Most)35 b(of)e(the)h(default)e(timeout)i(v)-5 b(alues)32 b(for)i(state)g (information)e(are)i(3.5)g(times)f(the)h(refresh)e(p)s(erio)s(d.)47 b(F)-8 b(or)34 b(example,)-125 4304 y(Hellos)23 b(refresh)f(Neigh)m(b)s (or)h(state)i(and)d(the)i(default)e(Hello-timer)h(p)s(erio)s(d)e(is)h (30)i(seconds,)h(so)e(a)h(default)e(Neigh)m(b)s(or-timer)-125 4417 y(duration)29 b(of)g(105)i(seconds)f(is)f(included)d(in)j(the)h (Holdtime)e(\014eld)g(of)i(the)g(Hellos.)40 b(In)29 b(order)g(to)h (impro)m(v)m(e)g(con)m(v)m(ergence,)-125 4530 y(ho)m(w)m(ev)m(er,)i (the)f(default)f(timeout)g(v)-5 b(alue)30 b(for)g(information)f (related)h(to)h(RP)f(liv)m(eness)f(and)h(Bo)s(otstrap)i(messages)f(is)e (2.5)-125 4643 y(times)h(the)h(refresh)e(p)s(erio)s(d.)17 4756 y(In)44 b(this)h(v)m(ersion)g(of)g(the)h(sp)s(ec,)j(w)m(e)d (suggest)g(particular)e(n)m(umerical)g(timer)h(settings.)86 b(A)46 b(future)e(v)m(ersion)h(of)-125 4869 y(the)39 b(sp)s(eci\014cation)e(will)f(sp)s(ecify)h(a)i(mec)m(hanism)e(for)i (timer)e(v)-5 b(alues)38 b(to)h(b)s(e)f(scaled)g(based)g(up)s(on)f (observ)m(ed)i(net)m(w)m(ork)-125 4982 y(parameters.)-125 5194 y Fn([Join/Prune-P)m(erio)s(d])48 b Fk(This)35 b(is)h(the)g(in)m (terv)-5 b(al)36 b(b)s(et)m(w)m(een)h(sending)e(Join/Prune)g(messages.) 61 b Fn(Default:)f(60)43 b(sec-)103 5307 y(onds.)60 b Fk(This)35 b(v)-5 b(alue)36 b(ma)m(y)h(b)s(e)f(set)h(to)h(tak)m(e)g(in) m(to)e(accoun)m(t)j(suc)m(h)d(things)f(as)i(the)g(con\014gured)f (bandwidth)e(and)103 5420 y(exp)s(ected)24 b(a)m(v)m(erage)j(n)m(um)m (b)s(er)c(of)h(m)m(ulticast)g(route)g(en)m(tries)g(for)g(the)g(attac)m (hed)i(net)m(w)m(ork)f(or)f(link)e(\(e.g.,)27 b(the)e(p)s(erio)s(d)p eop %%Page: 28 29 28 28 bop -125 -149 a Fh(draft-ietf-idmr-PIM-SM-sp)s(ec-10.ps)2673 b Fk(28)103 149 y(w)m(ould)36 b(b)s(e)g(longer)h(for)g(lo)m(w)m(er-sp)s (eed)g(links,)g(or)g(for)g(routers)g(in)f(the)i(cen)m(ter)g(of)g(the)f (net)m(w)m(ork)h(that)g(exp)s(ect)g(to)103 262 y(ha)m(v)m(e)29 b(a)g(larger)f(n)m(um)m(b)s(er)f(of)i(en)m(tries)f(\).)40 b(In)28 b(addition,)f(a)i(router)f(could)g(mo)s(dify)e(this)h(v)-5 b(alue)28 b(\(and)g(corresp)s(onding)103 375 y(Join/Prune-Holdtime)23 b(v)-5 b(alue\))24 b(if)h(the)g(n)m(um)m(b)s(er)f(of)h(route)g(en)m (tries)g(c)m(hanges)h(signi\014can)m(tly)e(\(e.g.,)k(b)m(y)d(an)g (order)f(of)103 488 y(magnitude\).)37 b(F)-8 b(or)24 b(example,)g(giv)m(en)f(a)g(default)f(minim)m(um)e(Join/Prune-P)m(erio) s(d)g(v)-5 b(alue,)24 b(if)e(the)h(n)m(um)m(b)s(er)e(of)i(route)103 601 y(en)m(tries)35 b(with)f(a)h(particular)f(iif)f(increases)i(from)g (N)h(to)g(N*100,)i(the)e(router)f(could)f(increase)h(its)g(Join/Prune-) 103 714 y(P)m(erio)s(d)26 b(\(and)h(Join/Prune-Holdtime\),)f(for)h (that)h(in)m(terface,)h(b)m(y)e(a)g(factor)i(of)e(10;)i(and)e(if/when)f (the)h(n)m(um)m(b)s(er)f(of)103 827 y(en)m(tries)i(decreases)h(bac)m(k) g(to)h(N,)e(the)h(Join/Prune-P)m(erio)s(d)d(\(and)i (Join/Prune-Holdtime\))f(could)g(b)s(e)h(decreased)103 940 y(to)f(its)e(previous)g(v)-5 b(alue.)39 b(If)26 b(the)g (Join/Prune-P)m(erio)s(d)e(is)h(mo)s(di\014ed,)g(these)i(c)m(hanges)g (should)d(b)s(e)i(made)g(relativ)m(ely)103 1053 y(infrequen)m(tly)e (and)h(the)h(router)g(should)d(con)m(tin)m(ue)k(to)f(refresh)f(at)i (its)e(previous)f(Join/Prune-P)m(erio)s(d)g(for)i(at)g(least)103 1166 y(Join/Prune-Holdtime,)i(in)h(order)h(to)h(allo)m(w)f(the)g (upstream)g(router)g(to)i(adapt.)-125 1345 y Fn([Join-Prune)k (Holdtime])45 b Fk(This)35 b(is)i(the)h(Holdtime)e(sp)s(eci\014ed)g(in) g(Join/Prune)g(messages,)k(and)d(is)g(used)f(to)j(time)103 1457 y(out)30 b(oifs.)40 b(This)29 b(should)f(b)s(e)i(set)h(to)g(3.5)h (*)e([Join/Prune-P)m(erio)s(d].)39 b Fn(Default:)46 b(210)36 b(seconds.)-125 1636 y([Join/Prune-Suppression-Timeout])47 b Fk(This)30 b(is)h(the)i(mean)f(in)m(terv)-5 b(al)31 b(b)s(et)m(w)m(een)i(receiving)e(a)h(Join/Prune)f(with)103 1749 y(a)48 b(higher)f(Holdtime)g(\(with)g(ties)g(brok)m(en)h(b)m(y)g (higher)e(net)m(w)m(ork)j(la)m(y)m(er)g(address\))e(and)g(allo)m(wing)g (duplicate)103 1862 y(Join/Prunes)37 b(to)j(b)s(e)f(sen)m(t)h(again.)68 b(This)37 b(should)h(b)s(e)h(set)g(to)i(appro)m(ximately)d(1.25)j(*)f ([Join/Prune-P)m(erio)s(d].)103 1975 y Fn(Default:)46 b(75)35 b(seconds.)-125 2154 y([Data-Timeout])44 b Fk(This)31 b(is)h(the)g(time)h(after)g(whic)m(h)e(\(S,G\))i(state)h(for)f(a)g (silen)m(t)e(source)i(will)d(b)s(e)i(deleted.)47 b Fn(Default:)103 2267 y(210)35 b(seconds.)-125 2446 y([Register-Suppression-Timeout])46 b Fk(This)40 b(is)h(the)h(mean)h(in)m(terv)-5 b(al)41 b(b)s(et)m(w)m(een)h(receiving)f(a)i(Register-Stop)f(and)103 2559 y(allo)m(wing)25 b(Registers)h(to)h(b)s(e)e(sen)m(t)i(again.)40 b(A)26 b(lo)m(w)m(er)g(v)-5 b(alue)26 b(means)g(more)h(frequen)m(t)f (register)g(bursts)f(at)i(RP)-8 b(,)26 b(while)103 2672 y(a)34 b(higher)f(v)-5 b(alue)33 b(means)h(longer)g(join)e(latency)j (for)e(new)h(receiv)m(ers.)52 b Fn(Default:)i(60)40 b(seconds.)52 b Fk(\(Note)36 b(that)e(if)103 2785 y(n)m(ull)d(Registers)i(are)h(sen)m (t)g([Prob)s(e-Time])e(seconds)i(b)s(efore)f(the)g(timeout,)h(register) g(bursts)d(are)j(prev)m(en)m(ts,)h(and)103 2898 y ([Register-Suppression-Timeout])28 b(ma)m(y)j(b)s(e)e(lo)m(w)m(ered)i (to)g(decrease)g(join)f(latency)-8 b(.\))-125 3076 y Fn([Prob)s(e-Time])45 b Fk(When)33 b(n)m(ull)e(Registers)j(are)f(used,) h(this)e(is)g(the)h(time)g(b)s(et)m(w)m(een)h(sending)e(a)h(n)m(ull)e (Register)j(and)e(the)103 3189 y(Register-Suppression-Timer)j(expiring) h(unless)h(it)h(is)g(restarted)h(b)m(y)f(receiving)g(a)h (Register-Stop.)65 b(Th)m(us,)40 b(a)103 3302 y(n)m(ull)31 b(Register)i(w)m(ould)g(b)s(e)f(sen)m(t)i(when)e(the)i (Register-Suppression-Timer)c(reac)m(hes)k(this)e(v)-5 b(alue.)49 b Fn(Default:)k(5)103 3415 y(seconds.)-125 3594 y([Assert-Timeout])45 b Fk(This)22 b(is)h(the)g(in)m(terv)-5 b(al)23 b(b)s(et)m(w)m(een)i(the)f(last)f(time)h(an)f(Assert)h(is)f (receiv)m(ed,)j(and)d(the)h(time)f(at)i(whic)m(h)103 3707 y(the)30 b(assert)h(is)f(timed)f(out.)41 b Fn(Default:)46 b(180)36 b(seconds.)-125 3886 y([Random-Dela)m(y-Join-Timeout])45 b Fk(This)22 b(is)h(the)h(maxim)m(um)e(in)m(terv)-5 b(al)23 b(b)s(et)m(w)m(een)i(the)f(time)f(when)g(the)h(RPF)g(neigh-)103 3999 y(b)s(or)f(c)m(hanges,)j(and)d(the)h(time)g(at)g(whic)m(h)f(a)h (triggered)g(Join/Prune)e(message)j(is)e(sen)m(t.)39 b Fn(Default:)j(4.5)28 b(seconds.)-125 4178 y([Hello-P)m(erio)s(d])47 b Fk(This)28 b(is)i(the)g(in)m(terv)-5 b(al)30 b(b)s(et)m(w)m(een)h (sending)e(Hello)h(messages.)41 b Fn(Default:)46 b(30)36 b(seconds.)-125 4357 y([Hello-Holdtime])45 b Fk(This)26 b(is)h(the)i(Holdtime)e(sp)s(eci\014ed)f(in)h(Hello)g(messages,)j (after)f(whic)m(h)d(neigh)m(b)s(ors)h(will)e(time)j(out)103 4470 y(their)37 b(neigh)m(b)s(or)f(en)m(tries)h(for)h(the)g(router.)63 b(This)36 b(should)f(b)s(e)j(set)g(to)g(3.5)h(*)f([Hello-P)m(erio)s (d].)63 b Fn(Default:)g(105)103 4583 y(seconds.)-125 4762 y([C-RP-Adv-P)m(erio)s(d])47 b Fk(F)-8 b(or)36 b(C-RPs,)g(this)e (is)h(the)g(in)m(terv)-5 b(al)34 b(b)s(et)m(w)m(een)i(sending)e (C-RP-Adv)h(messages.)56 b Fn(Default:)103 4874 y(60)35 b(seconds.)-125 5053 y([RP-Holdtime])46 b Fk(F)-8 b(or)35 b(C-RPs,)g(this)f(is)g(the)g(Holdtime)g(sp)s(eci\014ed)f(in)g(C-RP-Adv) h(messages,)j(and)d(is)g(used)g(b)m(y)g(the)103 5166 y(BSR)c(to)h(time)f(out)h(RPs.)40 b(This)29 b(should)f(b)s(e)i(set)h (to)g(2.5)g(*)g([C-RP-Adv-P)m(erio)s(d].)40 b Fn(Default:)46 b(150)36 b(seconds.)-125 5345 y([Bo)s(otstrap-P)m(erio)s(d])47 b Fk(A)m(t)35 b(the)g(elected)g(BSR,)f(this)g(is)f(the)i(in)m(terv)-5 b(al)33 b(b)s(et)m(w)m(een)i(originating)e(Bo)s(otstrap)i(messages,)103 5458 y(and)30 b(should)e(b)s(e)i(equal)g(to)h(60)g(seconds.)p eop %%Page: 29 30 29 29 bop -125 -149 a Fh(draft-ietf-idmr-PIM-SM-sp)s(ec-10.ps)2673 b Fk(29)-125 149 y Fn([Bo)s(otstrap-Timeout])45 b Fk(This)27 b(is)h(the)h(time)f(after)h(whic)m(h)f(the)g(elected)i(BSR)e(will)e(b)s (e)i(assumed)g(unreac)m(hable)g(when)103 262 y(Bo)s(otstrap)33 b(messages)h(are)f(not)g(receiv)m(ed)g(from)f(it.)47 b(This)30 b(should)h(b)s(e)h(set)h(to)g(`2)g(*)g([Bo)s(otstrap-P)m (erio)s(d])h(+)e(10'.)103 375 y Fn(Default:)46 b(130)36 b(seconds.)-125 619 y Fe(3.9)113 b(Summary)37 b(of)h(\015ags)g(used) -125 790 y Fk(F)-8 b(ollo)m(wing)30 b(is)g(a)g(summary)g(of)g(all)f (the)i(\015ags)g(used)e(in)g(our)h(sc)m(heme.)p 17 1016 3899 4 v 15 1186 4 170 v 66 1135 a Fn(Bit)406 b(Used)36 b(in)350 b(De\014nition)p 3914 1186 V 17 1189 3899 4 v 15 1454 4 266 v 66 1307 a Fk(Border)278 b(Register)375 b(Register)43 b(for)h(external)f(sources)h(is)f(coming)g(from)g(a)h (PIM)g(m)m(ulticast)1316 1420 y(b)s(order)29 b(router)p 3914 1454 V 15 1720 V 66 1573 a(Null)379 b(Register)c(Register)51 b(sen)m(t)h(as)f(Prob)s(e)f(of)h(RP)-8 b(,)52 b(the)f(encapsulated)g (data)h(pac)m(k)m(et)1316 1686 y(should)28 b(not)j(b)s(e)e(forw)m (arded)p 3914 1720 V 15 1889 4 170 v 66 1838 a(RPT)355 b(Route)31 b(en)m(try)224 b(En)m(try)30 b(represen)m(ts)g(state)i(on)e (the)h(RP-tree)p 3914 1889 V 15 2267 4 379 v 66 2007 a(RPT)355 b(Join/Prune)246 b(Join)63 b(is)h(asso)s(ciated)h(with)e(the) i(shared)f(tree)h(and)f(therefore)h(the)1316 2120 y(Join/Prune)25 b(message)k(is)d(propagated)i(along)g(the)f(RP-tree)i(\(source)e(en-) 1316 2233 y(co)s(ded)j(is)f(an)h(RP)h(address\))p 3914 2267 V 15 2532 4 266 v 66 2386 a(RPT)355 b(Assert)449 b(The)25 b(data)h(pac)m(k)m(et)i(w)m(as)e(routed)g(do)m(wn)f(the)h (shared)f(tree;)j(th)m(us,)f(the)f(path)1316 2499 y(indicated)j (corresp)s(onds)g(to)i(the)f(RP)g(tree)p 3914 2532 V 15 2798 V 66 2651 a(SPT)371 b(\(S,G\))31 b(en)m(try)245 b(P)m(ac)m(k)m(ets)33 b(ha)m(v)m(e)f(arriv)m(ed)e(on)g(the)h(iif)e(to)m (w)m(ards)i(S,)g(and)f(the)h(iif)d(is)i(di\013eren)m(t)1316 2764 y(from)g(the)g(\(*,G\))i(iif)p 3914 2798 V 15 3063 V 66 2916 a(W)m(C)394 b(Join)531 b(The)32 b(receiv)m(er)h(exp)s(ects)g (to)h(receiv)m(e)f(pac)m(k)m(ets)i(from)d(all)g(sources)g(via)h(this) 1316 3029 y(\(shared)22 b(tree\))h(path.)38 b(Th)m(us,)23 b(the)f(Join/Prune)e(applies)h(to)i(a)f(\(*,G\))i(en)m(try)p 3914 3063 V 15 3328 V 66 3182 a(W)m(C)394 b(Route)31 b(en)m(try)224 b(Wildcard)22 b(en)m(try;)27 b(if)c(there)h(is)g(no)g (more)g(sp)s(eci\014c)f(matc)m(h)i(for)f(a)g(particular)1316 3295 y(source,)30 b(pac)m(k)m(ets)j(will)27 b(b)s(e)j(forw)m(arded)g (according)g(to)h(this)f(en)m(try)p 3914 3328 V 17 3332 3899 4 v -125 3536 a Fe(3.10)113 b(Securit)m(y)-125 3708 y Fk(All)29 b(PIM)i(con)m(trol)g(messages)g(ma)m(y)g(use)f(IPsec)h([6]) g(to)g(address)f(securit)m(y)g(concerns.)p eop %%Page: 30 31 30 30 bop -125 -149 a Fh(draft-ietf-idmr-PIM-SM-sp)s(ec-10.ps)2673 b Fk(30)-125 149 y Fg(4)135 b(P)l(ac)l(k)l(et)47 b(F)-11 b(ormats)-125 352 y Fk(This)29 b(section)i(describ)s(es)d(the)j (details)e(of)i(the)f(pac)m(k)m(et)j(formats)d(for)g(PIM)h(con)m(trol)f (messages.)17 465 y(All)f(PIM)h(con)m(trol)h(messages)g(ha)m(v)m(e)h (proto)s(col)e(n)m(um)m(b)s(er)f(103.)17 578 y(Basically)-8 b(,)23 b(PIM)g(messages)g(are)g(either)f(unicast)f(\(e.g.)40 b(Registers)22 b(and)g(Register-Stop\),)j(or)d(m)m(ulticast)g(hop-b)m (y-hop)-125 691 y(to)32 b(`ALL-PIM-R)m(OUTERS')e(group)g(`224.0.0.13') 35 b(\(e.g.)42 b(Join/Prune,)29 b(Asserts,)h(etc.\).)-29 904 y Fa(0)906 b(1)h(2)g(3)-29 1017 y(0)47 b(1)h(2)f(3)h(4)f(5)h(6)f(7) h(8)f(9)g(0)h(1)f(2)h(3)f(4)h(5)f(6)h(7)f(8)h(9)f(0)g(1)h(2)f(3)h(4)f (5)h(6)f(7)h(8)f(9)h(0)f(1)-77 1129 y(+-+-+-+-+-+-+-+-+-+-+-+-+)o(-+-+) o(-+-)o(+-+-)o(+-+-)o(+-+)o(-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)-77 1242 y(|PIM)g(Ver|)f(Type)95 b(|)47 b(Reserved)284 b(|)525 b(Checksum)571 b(|)-77 1355 y(+-+-+-+-+-+-+-+-+-+-+-+-+)o(-+-+)o(-+-)o (+-+-)o(+-+-)o(+-+)o(-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)-125 1568 y Fn(PIM)36 b(V)-9 b(er)45 b Fk(PIM)31 b(V)-8 b(ersion)30 b(n)m(um)m(b)s(er)f(is)g(2.)-125 1755 y Fn(T)m(yp)s(e)46 b Fk(T)m(yp)s(es)30 b(for)g(sp)s(eci\014c)f(PIM)h(messages.)42 b(PIM)30 b(T)m(yp)s(es)g(are:)557 1941 y(0)46 b(=)20 b(Hello)557 2054 y(1)46 b(=)20 b(Register)557 2167 y(2)46 b(=)20 b(Register-Stop)557 2280 y(3)46 b(=)20 b(Join/Prune)557 2393 y(4)46 b(=)20 b(Bo)s(otstrap)557 2506 y(5)46 b(=)20 b(Assert)557 2619 y(6)46 b(=)20 b(Graft)31 b(\(used)f(in)f(PIM-DM)i (only\))557 2732 y(7)46 b(=)20 b(Graft-Ac)m(k)32 b(\(used)e(in)f (PIM-DM)j(only\))557 2845 y(8)46 b(=)20 b(Candidate-RP-Adv)m(ertisemen) m(t)-125 3182 y Fn(Reserv)m(ed)47 b Fk(set)31 b(to)g(zero.)41 b(Ignored)30 b(up)s(on)f(receipt.)-125 3370 y Fn(Chec)m(ksum)46 b Fk(The)38 b(c)m(hec)m(ksum)h(is)f(the)g(16-bit)h(one's)g(complemen)m (t)g(of)g(the)g(one's)g(complemen)m(t)f(sum)g(of)h(the)f(en)m(tire)103 3483 y(PIM)30 b(message,)h(\(excluding)d(the)i(data)h(p)s(ortion)d(in)h (the)h(Register)g(message\).)42 b(F)-8 b(or)30 b(computing)f(the)h(c)m (hec)m(ksum,)103 3596 y(the)g(c)m(hec)m(ksum)h(\014eld)e(is)h(zero)s (ed.)p eop %%Page: 31 32 31 31 bop -125 -149 a Fh(draft-ietf-idmr-PIM-SM-sp)s(ec-10.ps)2673 b Fk(31)-125 149 y Fe(4.1)113 b(Enco)s(ded)38 b(Source)f(and)i(Group)e (Address)h(formats)-13 321 y Fk(1.)46 b(Enco)s(ded-Unicast-address:)39 b(T)-8 b(ak)m(es)32 b(the)e(follo)m(wing)f(format:)198 557 y Fa(0)907 b(1)f(2)h(3)198 670 y(0)48 b(1)f(2)h(3)f(4)g(5)h(6)f(7)h (8)f(9)h(0)f(1)h(2)f(3)h(4)f(5)g(6)h(7)f(8)h(9)f(0)h(1)f(2)h(3)f(4)h(5) f(6)g(7)h(8)f(9)h(0)f(1)150 783 y(+-+-+-+-+-+-+-+-+-+-+-+-+-)o(+-+-)o (+-+)o(-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)o(-+-+)o(-+-+)o(-+)150 896 y(|)h(Addr)f(Family)141 b(|)48 b(Encoding)d(Type)i(|)238 b(Unicast)46 b(Address)523 b(|)150 1009 y(+-+-+-+-+-+-+-+-+-+-+-+-+-)o (+-+-)o(+-+)o(-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+~+)o(~+~+)o(~+~+)o(~+) 103 1209 y Fn(Addr)35 b(F)-9 b(amily)45 b Fk(The)29 b(address)h(family) f(of)h(the)h(`Unicast)f(Address')g(\014eld)f(of)h(this)g(address.)303 1337 y(Here)h(is)e(the)i(address)e(family)g(n)m(um)m(b)s(ers)g (assigned)g(b)m(y)i(IANA:)303 1522 y Fa(Number)189 b(Description)303 1635 y(-)47 b(------)189 b(--------------------------)o(----)o(---)o (----)o(----)o(---)o(----)o(----)o(---)o(--)541 1748 y(0)i(Reserved)541 1861 y(1)g(IP)47 b(\(IP)g(version)f(4\))541 1974 y(2)191 b(IP6)47 b(\(IP)g(version)f(6\))541 2087 y(3)191 b(NSAP)541 2200 y(4)g(HDLC)47 b(\(8-bit)f(multidrop\))541 2313 y(5)191 b(BBN)47 b(1822)541 2426 y(6)191 b(802)47 b(\(includes)e(all)i(802)g(media)f(plus)h(Ethernet)f("canonical)f (format"\))541 2539 y(7)191 b(E.163)541 2652 y(8)g(E.164)46 b(\(SMDS,)g(Frame)h(Relay,)f(ATM\))541 2764 y(9)191 b(F.69)47 b(\(Telex\))494 2877 y(10)190 b(X.121)46 b(\(X.25,)g(Frame)h(Relay\)) 494 2990 y(11)190 b(IPX)494 3103 y(12)g(Appletalk)494 3216 y(13)g(Decnet)46 b(IV)494 3329 y(14)190 b(Banyan)46 b(Vines)494 3442 y(15)190 b(E.164)46 b(with)h(NSAP)g(format)f (subaddress)103 3628 y Fn(Enco)s(ding)35 b(T)m(yp)s(e)46 b Fk(The)38 b(t)m(yp)s(e)h(of)g(enco)s(ding)f(used)g(within)f(a)i(sp)s (eci\014c)f(Address)g(F)-8 b(amily)g(.)66 b(The)38 b(v)-5 b(alue)39 b(`0')g(is)303 3741 y(reserv)m(ed)30 b(for)g(this)g(\014eld,) f(and)h(represen)m(ts)g(the)h(nativ)m(e)f(enco)s(ding)g(of)g(the)h (Address)e(F)-8 b(amily)g(.)103 3883 y Fn(Unicast)35 b(Address)46 b Fk(The)28 b(unicast)g(address)g(as)g(represen)m(ted)h(b) m(y)f(the)h(giv)m(en)f(Address)f(F)-8 b(amily)28 b(and)g(Enco)s(ding) 303 3996 y(T)m(yp)s(e.)-13 4202 y(2.)46 b(Enco)s(ded-Group-Address:)39 b(T)-8 b(ak)m(es)31 b(the)g(follo)m(wing)d(format:)198 4438 y Fa(0)907 b(1)f(2)h(3)198 4551 y(0)48 b(1)f(2)h(3)f(4)g(5)h(6)f (7)h(8)f(9)h(0)f(1)h(2)f(3)h(4)f(5)g(6)h(7)f(8)h(9)f(0)h(1)f(2)h(3)f(4) h(5)f(6)g(7)h(8)f(9)h(0)f(1)150 4664 y(+-+-+-+-+-+-+-+-+-+-+-+-+-)o (+-+-)o(+-+)o(-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)o(-+-+)o(-+-+)o(-+) 150 4777 y(|)h(Addr)f(Family)141 b(|)48 b(Encoding)d(Type)i(|)143 b(Reserved)188 b(|)96 b(Mask)46 b(Len)238 b(|)150 4890 y(+-+-+-+-+-+-+-+-+-+-+-+-+-)o(+-+-)o(+-+)o(-+-+)o(-+-+)o(-+-)o(+-+-)o (+-+-)o(+-+)o(-+-+)o(-+-+)o(-+)150 5003 y(|)764 b(Group)46 b(multicast)f(Address)1144 b(|)150 5115 y(+-+-+-+-+-+-+-+-+-+-+-+-+-)o (+-+-)o(+-+)o(-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)o(-+-+)o(-+-+)o(-+) 103 5316 y Fn(Addr)35 b(F)-9 b(amily)45 b Fk(describ)s(ed)28 b(ab)s(o)m(v)m(e.)103 5458 y Fn(Enco)s(ding)35 b(T)m(yp)s(e)46 b Fk(describ)s(ed)28 b(ab)s(o)m(v)m(e.)p eop %%Page: 32 33 32 32 bop -125 -149 a Fh(draft-ietf-idmr-PIM-SM-sp)s(ec-10.ps)2673 b Fk(32)103 149 y Fn(Reserv)m(ed)46 b Fk(T)-8 b(ransmitted)29 b(as)i(zero.)42 b(Ignored)30 b(up)s(on)e(receipt.)103 296 y Fn(Mask)35 b(Len)45 b Fk(The)37 b(Mask)h(length)f(is)g(8)h(bits.) 60 b(The)37 b(v)-5 b(alue)37 b(is)g(the)g(n)m(um)m(b)s(er)g(of)g(con)m (tiguous)h(bits)e(left)h(justi\014ed)303 408 y(used)32 b(as)h(a)g(mask)g(whic)m(h)f(describ)s(es)f(the)i(address.)48 b(It)33 b(is)f(less)g(than)h(or)g(equal)f(to)i(the)f(address)f(length)h (in)303 521 y(bits)25 b(for)h(the)g(giv)m(en)g(Address)f(F)-8 b(amily)25 b(and)h(Enco)s(ding)e(T)m(yp)s(e.)39 b(If)26 b(the)g(message)h(is)e(sen)m(t)i(for)f(a)g(single)f(group)303 634 y(then)k(the)h(Mask)h(length)e(m)m(ust)h(equal)f(the)i(address)e (length)g(in)f(bits)h(for)h(the)g(giv)m(en)g(Address)f(F)-8 b(amily)29 b(and)303 747 y(Enco)s(ding)g(T)m(yp)s(e.)40 b(\(e.g.)i(32)31 b(for)f(IPv4)h(nativ)m(e)f(enco)s(ding)g(and)f(128)j (for)e(IPv6)h(nativ)m(e)f(enco)s(ding\).)103 893 y Fn(Group)35 b(m)m(ulticast)f(Address)46 b Fk(con)m(tains)31 b(the)g(group)e (address.)-13 1106 y(3.)46 b(Enco)s(ded-Source-Address:)39 b(T)-8 b(ak)m(es)32 b(the)e(follo)m(wing)f(format:)198 1356 y Fa(0)907 b(1)f(2)h(3)198 1469 y(0)48 b(1)f(2)h(3)f(4)g(5)h(6)f (7)h(8)f(9)h(0)f(1)h(2)f(3)h(4)f(5)g(6)h(7)f(8)h(9)f(0)h(1)f(2)h(3)f(4) h(5)f(6)g(7)h(8)f(9)h(0)f(1)150 1582 y(+-+-+-+-+-+-+-+-+-+-+-+-+-)o (+-+-)o(+-+)o(-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)o(-+-+)o(-+-+)o(-+) 150 1694 y(|)h(Addr)f(Family)141 b(|)48 b(Encoding)d(Type)i(|)g(Rsrvd) 142 b(|S|W|R|)94 b(Mask)46 b(Len)238 b(|)150 1807 y (+-+-+-+-+-+-+-+-+-+-+-+-+-)o(+-+-)o(+-+)o(-+-+)o(-+-+)o(-+-)o(+-+-)o (+-+-)o(+-+)o(-+-+)o(-+-+)o(-+)150 1920 y(|)1146 b(Source)46 b(Address)1191 b(|)150 2033 y(+-+-+-+-+-+-+-+-+-+-+-+-+-)o(+-+-)o(+-+)o (-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)o(-+-+)o(-+-+)o(-+)103 2246 y Fn(Addr)35 b(F)-9 b(amily)45 b Fk(describ)s(ed)28 b(ab)s(o)m(v)m(e.)103 2392 y Fn(Enco)s(ding)35 b(T)m(yp)s(e)46 b Fk(describ)s(ed)28 b(ab)s(o)m(v)m(e.)103 2538 y Fn(Reserv)m(ed)46 b Fk(T)-8 b(ransmitted)29 b(as)i(zero,)g(ignored)f(on)g(receipt.)103 2684 y Fn(S,W,R)46 b Fk(See)30 b(Section)h(4.5)g(for)f(details.)103 2830 y Fn(Mask)35 b(Length)45 b Fk(Mask)28 b(length)e(is)g(8)h(bits.)38 b(The)27 b(v)-5 b(alue)26 b(is)g(the)h(n)m(um)m(b)s(er)e(of)i(con)m (tiguous)g(bits)f(left)g(justi\014ed)f(used)303 2943 y(as)36 b(a)h(mask)f(whic)m(h)e(describ)s(es)h(the)h(address.)57 b(The)36 b(mask)g(length)f(m)m(ust)h(b)s(e)f(less)h(than)g(or)g(equal)f (to)i(the)303 3056 y(address)26 b(length)g(in)g(bits)g(for)g(the)h(giv) m(en)g(Address)f(F)-8 b(amily)26 b(and)h(Enco)s(ding)e(T)m(yp)s(e.)39 b(If)27 b(the)g(message)h(is)e(sen)m(t)303 3169 y(for)35 b(a)i(single)d(group)h(then)h(the)g(Mask)g(length)f(m)m(ust)h(equal)f (the)h(address)f(length)h(in)e(bits)h(for)g(the)h(giv)m(en)303 3282 y(Address)f(F)-8 b(amily)36 b(and)h(Enco)s(ding)e(T)m(yp)s(e.)59 b(In)36 b(v)m(ersion)g(2)h(of)g(PIM,)g(it)g(is)e(strongly)h (recommended)h(that)303 3395 y(this)29 b(\014eld)g(b)s(e)h(set)h(to)g (32)g(for)f(IPv4)h(nativ)m(e)f(enco)s(ding.)103 3541 y Fn(Source)35 b(Address)47 b Fk(The)29 b(source)i(address.)p eop %%Page: 33 34 33 33 bop -125 -149 a Fh(draft-ietf-idmr-PIM-SM-sp)s(ec-10.ps)2673 b Fk(33)-125 149 y Fe(4.2)113 b(Hello)35 b(Message)-125 321 y Fk(It)c(is)e(sen)m(t)i(p)s(erio)s(dically)c(b)m(y)j(routers)g(on) h(all)e(in)m(terfaces.)-29 534 y Fa(0)906 b(1)h(2)g(3)-29 647 y(0)47 b(1)h(2)f(3)h(4)f(5)h(6)f(7)h(8)f(9)g(0)h(1)f(2)h(3)f(4)h(5) f(6)h(7)f(8)h(9)f(0)g(1)h(2)f(3)h(4)f(5)h(6)f(7)h(8)f(9)h(0)f(1)-77 759 y(+-+-+-+-+-+-+-+-+-+-+-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)o (-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)-77 872 y(|PIM)g(Ver|)f(Type)95 b(|)47 b(Reserved)284 b(|)525 b(Checksum)571 b(|)-77 985 y(+-+-+-+-+-+-+-+-+-+-+-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)o (-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)-77 1098 y(|)334 b(OptionType)665 b(|)430 b(OptionLength)474 b(|)-77 1211 y(+-+-+-+-+-+-+-+-+-+-+-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)o(-+-+)o (-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)-77 1324 y(|)1241 b(OptionValue)d(|)-77 1437 y(+-+-+-+-+-+-+-+-+-+-+-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)o (-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+~)o(+~+)-77 1550 y(|)1479 b(.)h(|)-77 1663 y(|)f(.)h(|)-77 1776 y(|)f(.)h(|)-77 1889 y(+-+-+-+-+-+-+-+-+-+-+-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)o (-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)-77 2001 y(|)334 b(OptionType)665 b(|)430 b(OptionLength)474 b(|)-77 2114 y(+-+-+-+-+-+-+-+-+-+-+-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)o(-+-+)o (-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)-77 2227 y(|)1241 b(OptionValue)d(|)-77 2340 y(+-+-+-+-+-+-+-+-+-+-+-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)o (-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+~)o(+~+)-125 2553 y Fn(PIM)36 b(V)-9 b(ersion,)35 b(T)m(yp)s(e,)g(Reserv)m(ed,)h(Chec)m(ksum)45 b Fk(Describ)s(ed)29 b(ab)s(o)m(v)m(e.)-125 2740 y Fn(OptionT)m(yp)s(e) 45 b Fk(The)30 b(t)m(yp)s(e)h(of)f(the)h(option)f(giv)m(en)g(in)f(the)i (follo)m(wing)e(OptionV)-8 b(alue)29 b(\014eld.)-125 2928 y Fn(OptionLength)45 b Fk(The)30 b(length)g(of)h(the)f(OptionV)-8 b(alue)30 b(\014eld)e(in)i(b)m(ytes.)-125 3116 y Fn(OptionV)-9 b(alue)46 b Fk(A)30 b(v)-5 b(ariable)29 b(length)h(\014eld,)f(carrying) h(the)h(v)-5 b(alue)29 b(of)i(the)g(option.)-125 3328 y(The)f(Option)f(\014elds)g(ma)m(y)i(con)m(tain)g(the)f(follo)m(wing)f (v)-5 b(alues:)12 3516 y Fd(\017)46 b Fk(OptionT)m(yp)s(e)31 b(=)i(1;)i(OptionLength)d(=)h(2;)j(OptionV)-8 b(alue)32 b(=)h(Holdtime;)h(where)e(Holdtime)h(is)f(the)i(amoun)m(t)f(of)103 3629 y(time)d(a)h(receiv)m(er)h(m)m(ust)e(k)m(eep)i(the)f(neigh)m(b)s (or)e(reac)m(hable,)j(in)d(seconds.)42 b(If)30 b(the)h(Holdtime)f(is)g (set)i(to)f(`0x\013\013)7 b(',)32 b(the)103 3742 y(receiv)m(er)e(of)g (this)e(message)j(nev)m(er)f(times)f(out)h(the)g(neigh)m(b)s(or.)39 b(This)27 b(ma)m(y)k(b)s(e)e(used)f(with)h(ISDN)g(lines,)g(to)h(a)m(v)m (oid)103 3854 y(k)m(eeping)35 b(the)h(link)d(up)i(with)f(p)s(erio)s (dic)f(Hello)i(messages.)57 b(F)-8 b(urthermore,)37 b(if)d(the)i (Holdtime)e(is)h(set)h(to)g(`0',)i(the)103 3967 y(information)28 b(is)i(timed)f(out)i(immediately)-8 b(.)12 4155 y Fd(\017)46 b Fk(OptionT)m(yp)s(e)28 b(2)j(to)g(16:)42 b(reserv)m(ed)12 4343 y Fd(\017)k Fk(The)30 b(rest)g(of)h(the)f(OptionT)m(yp)s(es)f(are) h(de\014ned)g(in)f(another)h(do)s(cumen)m(t.)17 4530 y(In)f(general,)i(options)f(ma)m(y)h(b)s(e)e(ignored;)h(but)g(a)g (router)h(m)m(ust)f(not)h(ignore)f(the)g('Holdtime')g(OptionT)m(yp)s (e.")p eop %%Page: 34 35 34 34 bop -125 -149 a Fh(draft-ietf-idmr-PIM-SM-sp)s(ec-10.ps)2673 b Fk(34)-125 149 y Fe(4.3)113 b(Register)36 b(Message)-125 321 y Fk(A)43 b(Register)f(message)i(is)d(sen)m(t)i(b)m(y)f(the)g(DR)h (or)f(a)g(PMBR)h(to)g(the)f(RP)g(when)g(a)g(m)m(ulticast)g(pac)m(k)m (et)i(needs)e(to)h(b)s(e)-125 434 y(transmitted)28 b(on)h(the)f (RP-tree.)41 b(Source)28 b(address)g(is)f(set)i(to)g(the)g(address)f (of)g(the)h(DR,)g(destination)e(address)h(is)f(to)i(the)-125 547 y(RP's)i(address.)-29 759 y Fa(0)906 b(1)h(2)g(3)-29 872 y(0)47 b(1)h(2)f(3)h(4)f(5)h(6)f(7)h(8)f(9)g(0)h(1)f(2)h(3)f(4)h(5) f(6)h(7)f(8)h(9)f(0)g(1)h(2)f(3)h(4)f(5)h(6)f(7)h(8)f(9)h(0)f(1)-77 985 y(+-+-+-+-+-+-+-+-+-+-+-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)o (-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)-77 1098 y(|PIM)g(Ver|)f(Type)95 b(|)47 b(Reserved)284 b(|)525 b(Checksum)571 b(|)-77 1211 y(+-+-+-+-+-+-+-+-+-+-+-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)o (-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)-77 1324 y(|B|N|)1097 b(Reserved)1334 b(|)-77 1437 y(+-+-+-+-+-+-+-+-+-+-+-+-+)o(-+-+)o(-+-)o (+-+-)o(+-+-)o(+-+)o(-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)-77 1550 y(|)3007 b(|)-77 1663 y(~)1050 b(Multicast)45 b(data)i(packet)953 b(~)-77 1776 y(|)3007 b(|)-77 1889 y(+-+-+-+-+-+-+-+-+-+-+-+-+)o(-+-+)o (-+-)o(+-+-)o(+-+-)o(+-+)o(-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)-125 2101 y Fn(PIM)36 b(V)-9 b(ersion,)35 b(T)m(yp)s(e,)g(Reserv)m(ed,)h (Chec)m(ksum)45 b Fk(Describ)s(ed)33 b(ab)s(o)m(v)m(e.)51 b Ff(Note)36 b(that)h(the)f(che)-5 b(cksum)36 b(for)g(R)-5 b(e)g(gisters)103 2214 y(is)32 b(done)i(only)f(on)g(the)g(PIM)f(he)-5 b(ader,)34 b(excluding)f(the)g(data)h(p)-5 b(acket)33 b(p)-5 b(ortion.)-125 2402 y Fn(B)46 b Fk(The)30 b(Border)g(bit.)39 b(If)30 b(the)g(router)g(is)f(a)i(DR)f(for)g(a)g(source)h(that)f(it)g (is)f(directly)g(connected)i(to,)g(it)e(sets)i(the)f(B)h(bit)e(to)103 2515 y(0.)41 b(If)30 b(the)g(router)h(is)e(a)i(PMBR)g(for)f(a)g(source) h(in)e(a)i(directly)e(connected)i(cloud,)f(it)g(sets)g(the)h(B)g(bit)e (to)i(1.)-125 2702 y Fn(N)46 b Fk(The)36 b(Null-Register)f(bit.)58 b(Set)37 b(to)g(1)g(b)m(y)g(a)f(DR)h(that)g(is)f(probing)f(the)h(RP)h (b)s(efore)f(expiring)e(its)i(lo)s(cal)g(Register-)103 2815 y(Suppression)27 b(timer.)40 b(Set)31 b(to)g(0)f(otherwise.)-125 3003 y Fn(Multicast)36 b(data)e(pac)m(k)m(et)46 b Fk(The)29 b(original)g(pac)m(k)m(et)j(sen)m(t)f(b)m(y)f(the)h(source.)-125 3215 y(F)-8 b(or)30 b(\(S,G\))g(n)m(ull)d(Registers,)i(the)h(Multicast) e(data)i(pac)m(k)m(et)h(p)s(ortion)d(con)m(tains)h(only)f(a)h(dumm)m(y) f(header)h(with)f(S)g(as)h(the)-125 3328 y(source)i(address,)f(G)g(as)h (the)g(destination)e(address,)h(and)f(a)i(data)g(length)f(of)g(zero.)p eop %%Page: 35 36 35 35 bop -125 -149 a Fh(draft-ietf-idmr-PIM-SM-sp)s(ec-10.ps)2673 b Fk(35)-125 149 y Fe(4.4)113 b(Register-Stop)36 b(Message)-125 321 y Fk(A)j(Register-Stop)g(is)e(unicast)g(from)h(the)h(RP)f(to)h(the) f(sender)g(of)h(the)f(Register)h(message.)65 b(Source)38 b(address)g(is)f(the)-125 434 y(address)g(to)h(whic)m(h)e(the)i (register)f(w)m(as)h(addressed.)61 b(Destination)37 b(address)f(is)h (the)g(source)h(address)e(of)i(the)g(register)-125 547 y(message.)-29 759 y Fa(0)906 b(1)h(2)g(3)-29 872 y(0)47 b(1)h(2)f(3)h(4)f(5)h(6)f(7)h(8)f(9)g(0)h(1)f(2)h(3)f(4)h(5)f(6)h(7)f (8)h(9)f(0)g(1)h(2)f(3)h(4)f(5)h(6)f(7)h(8)f(9)h(0)f(1)-77 985 y(+-+-+-+-+-+-+-+-+-+-+-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)o (-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)-77 1098 y(|PIM)g(Ver|)f(Type)95 b(|)47 b(Reserved)284 b(|)525 b(Checksum)571 b(|)-77 1211 y(+-+-+-+-+-+-+-+-+-+-+-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)o (-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)-77 1324 y(|)954 b(Encoded-Group)45 b(Address)1048 b(|)-77 1437 y (+-+-+-+-+-+-+-+-+-+-+-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)o(-+-+)o (-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)-77 1550 y(|)954 b (Encoded-Unicast-Source)42 b(Address)619 b(|)-77 1663 y(+-+-+-+-+-+-+-+-+-+-+-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)o(-+-+)o (-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)-125 1875 y Fn(PIM)36 b(V)-9 b(ersion,)35 b(T)m(yp)s(e,)g(Reserv)m(ed,)h(Chec)m(ksum)45 b Fk(Describ)s(ed)29 b(ab)s(o)m(v)m(e.)-125 2063 y Fn(Enco)s(ded-Group) 36 b(Address)46 b Fk(F)-8 b(ormat)36 b(describ)s(ed)d(ab)s(o)m(v)m(e.) 55 b(Note)36 b(that)f(for)g(Register-Stops)f(the)h(Mask)g(Len)g (\014eld)103 2176 y(con)m(tains)26 b(full)f(address)g(length)h(*)h(8)g (\(e.g.)41 b(32)27 b(for)f(IPv4)h(nativ)m(e)g(enco)s(ding\),)f(if)g (the)g(message)i(is)e(sen)m(t)h(for)f(a)h(single)103 2289 y(group.)-125 2476 y Fn(Enco)s(ded-Unicast-Source)37 b(Address)46 b Fk(host)25 b(address)f(of)g(source)h(from)f(m)m (ulticast)g(data)h(pac)m(k)m(et)i(in)c(register.)39 b(The)103 2589 y(format)33 b(for)g(this)f(address)h(is)f(giv)m(en)h(in)f(the)h (Enco)s(ded-Unicast-Address)f(in)g(4.1.)50 b(A)33 b(sp)s(ecial)f(wild)f (card)i(v)-5 b(alue)103 2702 y(\(0's\),)32 b(can)e(b)s(e)g(used)g(to)h (indicate)e(an)m(y)i(source.)p eop %%Page: 36 37 36 36 bop -125 -149 a Fh(draft-ietf-idmr-PIM-SM-sp)s(ec-10.ps)2673 b Fk(36)-125 149 y Fe(4.5)113 b(Join/Prune)36 b(Message)-125 321 y Fk(A)j(Join/Prune)d(message)k(is)d(sen)m(t)i(b)m(y)f(routers)h (to)m(w)m(ards)g(upstream)e(sources)i(and)e(RPs.)65 b(Joins)37 b(are)h(sen)m(t)h(to)g(build)-125 434 y(shared)27 b(trees)h(\(RP)f (trees\))h(or)f(source)g(trees)h(\(SPT\).)f(Prunes)f(are)h(sen)m(t)h (to)g(prune)e(source)h(trees)h(when)e(mem)m(b)s(ers)g(lea)m(v)m(e)-125 547 y(groups)k(as)h(w)m(ell)e(as)i(sources)f(that)h(do)f(not)h(use)f (the)h(shared)e(tree.)-29 716 y Fa(0)906 b(1)h(2)g(3)-29 829 y(0)47 b(1)h(2)f(3)h(4)f(5)h(6)f(7)h(8)f(9)g(0)h(1)f(2)h(3)f(4)h(5) f(6)h(7)f(8)h(9)f(0)g(1)h(2)f(3)h(4)f(5)h(6)f(7)h(8)f(9)h(0)f(1)-77 942 y(+-+-+-+-+-+-+-+-+-+-+-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)o (-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)-77 1055 y(|PIM)g(Ver|)f(Type)95 b(|)47 b(Reserved)284 b(|)525 b(Checksum)571 b(|)-77 1168 y(+-+-+-+-+-+-+-+-+-+-+-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)o (-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)-77 1280 y(|)620 b(Encoded-Unicast-Upstream)42 b(Neighbor)j(Address)428 b(|)-77 1393 y(+-+-+-+-+-+-+-+-+-+-+-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o (+-+)o(-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)-77 1506 y(|)95 b(Reserved)237 b(|)47 b(Num)g(groups)189 b(|)477 b(Holdtime)619 b(|)-77 1619 y(+-+-+-+-+-+-+-+-+-+-+-+-+)o(-+-+)o(-+-)o (+-+-)o(+-+-)o(+-+)o(-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)-77 1732 y(|)573 b(Encoded-Multicast)43 b(Group)j(Address-1)857 b(|)-77 1845 y(+-+-+-+-+-+-+-+-+-+-+-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o (+-+)o(-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)-77 1958 y(|)143 b(Number)46 b(of)h(Joined)94 b(Sources)141 b(|)i(Number)46 b(of)i(Pruned)e(Sources)189 b(|)-77 2071 y(+-+-+-+-+-+-+-+-+-+-+-+-+)o (-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)o(-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o (+-+)-77 2184 y(|)716 b(Encoded-Joined)44 b(Source)i(Address-1)809 b(|)-77 2297 y(+-+-+-+-+-+-+-+-+-+-+-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o (+-+)o(-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)-77 2410 y(|)1384 b(.)1575 b(|)-77 2522 y(|)1384 b(.)1575 b(|)-77 2635 y(+-+-+-+-+-+-+-+-+-+-+-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)o (-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)-77 2748 y(|)716 b(Encoded-Joined)44 b(Source)i(Address-n)809 b(|)-77 2861 y(+-+-+-+-+-+-+-+-+-+-+-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)o (-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)-77 2974 y(|)716 b(Encoded-Pruned)44 b(Source)i(Address-1)809 b(|)-77 3087 y(+-+-+-+-+-+-+-+-+-+-+-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)o (-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)-77 3200 y(|)1384 b(.)1575 b(|)-77 3313 y(|)1384 b(.)1575 b(|)-77 3426 y(+-+-+-+-+-+-+-+-+-+-+-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)o(-+-+)o (-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)-77 3539 y(|)716 b(Encoded-Pruned)44 b(Source)i(Address-n)809 b(|)-77 3652 y(+-+-+-+-+-+-+-+-+-+-+-+-+)o (-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)o(-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o (+-+)-77 3764 y(|)1289 b(.)1670 b(|)-77 3877 y(|)1289 b(.)1670 b(|)-77 3990 y(|)1289 b(.)1670 b(|)-77 4103 y(+-+-+-+-+-+-+-+-+-+-+-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)o(-+-+)o (-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)-77 4216 y(|)764 b(Encoded-Multicast)43 b(Group)j(Address-n)666 b(|)-77 4329 y(+-+-+-+-+-+-+-+-+-+-+-+-+)o (-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)o(-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o (+-+)-77 4442 y(|)143 b(Number)46 b(of)h(Joined)94 b(Sources)141 b(|)i(Number)46 b(of)i(Pruned)e(Sources)189 b(|)-77 4555 y(+-+-+-+-+-+-+-+-+-+-+-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)o(-+-+)o (-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)-77 4668 y(|)716 b(Encoded-Joined)44 b(Source)i(Address-1)809 b(|)-77 4781 y(+-+-+-+-+-+-+-+-+-+-+-+-+)o (-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)o(-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o (+-+)-77 4894 y(|)1384 b(.)1575 b(|)-77 5006 y(|)1384 b(.)1575 b(|)-77 5119 y(+-+-+-+-+-+-+-+-+-+-+-+-+)o(-+-+)o(-+-)o(+-+-)o (+-+-)o(+-+)o(-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)-77 5232 y(|)716 b(Encoded-Joined)44 b(Source)i(Address-n)809 b(|)-77 5345 y(+-+-+-+-+-+-+-+-+-+-+-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o (+-+)o(-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)-77 5458 y(|)716 b(Encoded-Pruned)44 b(Source)i(Address-1)809 b(|)p eop %%Page: 37 38 37 37 bop -125 -149 a Fh(draft-ietf-idmr-PIM-SM-sp)s(ec-10.ps)2673 b Fk(37)-77 149 y Fa(+-+-+-+-+-+-+-+-+-+-+-+-+)o(-+-+)o(-+-)o(+-+-)o (+-+-)o(+-+)o(-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)-77 262 y(|)1384 b(.)1575 b(|)-77 375 y(|)1384 b(.)1575 b(|)-77 488 y(+-+-+-+-+-+-+-+-+-+-+-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)o (-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)-77 601 y(|)716 b(Encoded-Pruned)44 b(Source)i(Address-n)809 b(|)-77 714 y(+-+-+-+-+-+-+-+-+-+-+-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)o (-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)-125 888 y Fn(PIM)36 b(V)-9 b(ersion,)35 b(T)m(yp)s(e,)g(Reserv)m(ed,)h(Chec)m(ksum)45 b Fk(Describ)s(ed)29 b(ab)s(o)m(v)m(e.)-125 1063 y Fn(Enco)s (ded-Unicast)36 b(Upstream)f(Neigh)m(b)s(or)g(Address)46 b Fk(The)f(address)g(of)g(the)h(RPF)f(or)h(upstream)f(neigh)m(b)s(or.) 103 1176 y(The)30 b(format)g(for)g(this)g(address)f(is)h(giv)m(en)g(in) f(the)i(Enco)s(ded-Unicast-Address)e(in)g(4.1.)-125 1351 y Fn(Reserv)m(ed)47 b Fk(T)-8 b(ransmitted)29 b(as)i(zero,)g(ignored)f (on)g(receipt.)-125 1526 y Fn(Holdtime)45 b Fk(The)d(amoun)m(t)h(of)g (time)f(a)h(receiv)m(er)g(m)m(ust)g(k)m(eep)g(the)g(Join/Prune)e(state) j(aliv)m(e,)h(in)d(seconds.)77 b(If)42 b(the)103 1639 y(Holdtime)32 b(is)h(set)h(to)g(`0x\013\013)7 b(',)36 b(the)e(receiv)m(er)g(of)g(this)e(message)j(nev)m(er)f(times)f(out)h (the)g(oif.)49 b(This)32 b(ma)m(y)i(b)s(e)f(used)103 1752 y(with)d(ISDN)i(lines,)f(to)h(a)m(v)m(oid)h(k)m(eeping)f(the)g (link)e(up)g(with)h(p)s(erio)s(dical)e(Join/Prune)h(messages.)46 b(F)-8 b(urthermore,)103 1865 y(if)29 b(the)i(Holdtime)e(is)h(set)g(to) i(`0',)f(the)g(information)d(is)i(timed)f(out)i(immediately)-8 b(.)-125 2040 y Fn(Num)m(b)s(er)34 b(of)h(Groups)47 b Fk(The)30 b(n)m(um)m(b)s(er)f(of)h(m)m(ulticast)g(group)g(sets)h(con)m (tained)f(in)g(the)g(message.)-125 2215 y Fn(Enco)s(ded-Multicast)36 b(group)f(address)46 b Fk(F)-8 b(or)31 b(format)g(description)d(see)j (Section)f(4.1.)42 b(A)30 b(wild)e(card)j(group)e(in)g(the)103 2328 y(\(*,*,RP\))39 b(join)d(is)g(represen)m(ted)h(b)m(y)g(a)h (224.0.0.0)j(in)36 b(the)h(group)g(address)f(\014eld)g(and)g(`4')i(in)e (the)i(mask)f(length)103 2441 y(\014eld.)i(A)31 b(\(*,*,RP\))h(join)d (also)h(has)g(the)h(W)m(C-bit)f(and)g(the)h(RPT-bit)e(set.)-125 2616 y Fn(Num)m(b)s(er)34 b(of)h(Joined)h(Sources)46 b Fk(Num)m(b)s(er)30 b(of)g(join)f(source)i(addresses)f(listed)f(for)h (a)h(giv)m(en)f(group.)-125 2790 y Fn(Join)36 b(Source)f(Address-1)h (..)47 b(n)e Fk(This)27 b(list)h(con)m(tains)h(the)g(sources)g(that)h (the)f(sending)e(router)i(will)d(forw)m(ard)j(m)m(ulti-)103 2903 y(cast)i(datagrams)g(for)f(if)g(receiv)m(ed)h(on)f(the)g(in)m (terface)h(this)f(message)h(is)e(sen)m(t)i(on.)103 3047 y(See)f(format)h(section)g(4.1.)41 b(The)30 b(\014elds)f(explanation)h (for)g(the)g(Enco)s(ded-Source-Address)f(format)i(follo)m(ws:)103 3241 y Fn(Reserv)m(ed)46 b Fk(Describ)s(ed)29 b(ab)s(o)m(v)m(e.)103 3374 y Fn(S)45 b Fk(The)30 b(Sparse)g(bit)f(is)h(a)g(1)h(bit)f(v)-5 b(alue,)30 b(set)h(to)g(1)f(for)h(PIM-SM.)f(It)h(is)e(used)h(for)g(PIM) g(v.1)h(compatibilit)m(y)-8 b(.)103 3508 y Fn(W)45 b Fk(The)29 b(W)m(C)g(bit)f(is)g(a)h(1)g(bit)f(v)-5 b(alue.)40 b(If)28 b(1,)i(the)f(join)f(or)h(prune)e(applies)g(to)i(the)g(\(*,G\))i (or)e(\(*,*,RP\))h(en)m(try)-8 b(.)41 b(If)29 b(0,)303 3621 y(the)g(join)f(or)h(prune)e(applies)g(to)j(the)f(\(S,G\))g(en)m (try)g(where)g(S)f(is)g(Source)h(Address.)39 b(Joins)27 b(and)i(prunes)e(sen)m(t)303 3733 y(to)m(w)m(ards)k(the)f(RP)h(m)m(ust) f(ha)m(v)m(e)h(this)f(bit)f(set.)103 3867 y Fn(R)46 b Fk(The)27 b(RPT-bit)g(is)h(a)g(1)h(bit)e(v)-5 b(alue.)40 b(If)28 b(1,)h(the)f(information)f(ab)s(out)h(\(S,G\))h(is)e(sen)m(t)i (to)m(w)m(ards)g(the)f(RP)-8 b(.)29 b(If)f(0,)h(the)303 3980 y(information)f(m)m(ust)j(b)s(e)e(sen)m(t)i(to)m(w)m(ard)h(S,)e (where)g(S)f(is)h(the)g(Source)g(Address.)103 4113 y Fn(Mask)35 b(Length,)g(Source)h(Address)46 b Fk(Describ)s(ed)29 b(ab)s(o)m(v)m(e.)103 4307 y(Represen)m(ted)h(in)f(the)i(form)f(of)g Fc(<)25 b(W)13 b(C)27 b Fd(\000)19 b Fc(bit)26 b(><)f(R)q(P)13 b(T)32 b Fd(\000)20 b Fc(bit)26 b(><)e(M)10 b(ask)33 b(l)r(eng)s(th)26 b(><)f(S)5 b(our)s(ce)31 b(addr)s(ess)25 b(>)p Fk(:)103 4451 y(A)30 b(source)h(address)e(could)h(b)s(e)f(a)i (host)g(IPv4)f(nativ)m(e)h(enco)s(ding)e(address)h(:)648 4595 y Fc(<)25 b Fk(0)h Fc(><)f Fk(0)g Fc(><)g Fk(32)h Fc(><)f Fk(192)p Fc(:)p Fk(1)p Fc(:)p Fk(1)p Fc(:)p Fk(17)k Fc(>)103 4738 y Fk(A)h(source)h(address)e(could)h(b)s(e)f(the)i(RP's)f (IP)g(address)g(:)648 4882 y Fc(<)25 b Fk(1)h Fc(><)f Fk(1)g Fc(><)g Fk(32)h Fc(><)f Fk(131)p Fc(:)p Fk(108)p Fc(:)p Fk(13)p Fc(:)p Fk(111)31 b Fc(>)103 5026 y Fk(A)f(source)h (address)e(could)h(b)s(e)f(a)i(subnet)f(address)f(to)i(prune)e(from)h (the)h(RP-tree)g(:)648 5170 y Fc(<)25 b Fk(0)h Fc(><)f Fk(1)g Fc(><)g Fk(28)h Fc(><)f Fk(192)p Fc(:)p Fk(1)p Fc(:)p Fk(1)p Fc(:)p Fk(16)k Fc(>)103 5314 y Fk(A)h(source)h(address)e (could)h(b)s(e)f(a)i(general)g(aggregate)i(:)648 5458 y Fc(<)25 b Fk(0)h Fc(><)f Fk(0)g Fc(><)g Fk(16)h Fc(><)f Fk(192)p Fc(:)p Fk(1)p Fc(:)p Fk(0)p Fc(:)p Fk(0)j Fc(>)p eop %%Page: 38 39 38 38 bop -125 -149 a Fh(draft-ietf-idmr-PIM-SM-sp)s(ec-10.ps)2673 b Fk(38)-125 149 y Fn(Num)m(b)s(er)34 b(of)h(Pruned)h(Sources)47 b Fk(Num)m(b)s(er)29 b(of)h(prune)f(source)i(addresses)e(listed)g(for)i (a)f(group.)-125 337 y Fn(Prune)36 b(Source)g(Address-1)f(..)47 b(n)e Fk(This)37 b(list)g(con)m(tains)h(the)g(sources)g(that)h(the)g (sending)d(router)i(do)s(es)g(not)h(w)m(an)m(t)103 450 y(to)34 b(forw)m(ard)g(m)m(ulticast)f(datagrams)i(for)e(when)g(receiv)m (ed)h(on)g(the)g(in)m(terface)g(this)f(message)i(is)e(sen)m(t)h(on.)51 b(If)33 b(the)103 563 y(Join/Prune)c(message)j(b)s(oundary)d(exceeds)i (the)g(maxim)m(um)f(pac)m(k)m(et)j(size,)e(then)g(the)g(join)f(and)g (prune)f(lists)h(for)103 676 y(the)g(same)h(group)f(m)m(ust)g(b)s(e)g (included)e(in)h(the)h(same)h(pac)m(k)m(et.)p eop %%Page: 39 40 39 39 bop -125 -149 a Fh(draft-ietf-idmr-PIM-SM-sp)s(ec-10.ps)2673 b Fk(39)-125 149 y Fe(4.6)113 b(Bo)s(otstrap)37 b(Message)-125 321 y Fk(The)g(Bo)s(otstrap)i(messages)f(are)g(m)m(ulticast)f(to)h (`ALL-PIM-R)m(OUTERS')f(group,)i(out)f(all)e(in)m(terfaces)i(ha)m(ving) e(PIM)-125 434 y(neigh)m(b)s(ors)e(\(excluding)g(the)i(one)f(o)m(v)m (er)i(whic)m(h)d(the)i(message)g(w)m(as)g(receiv)m(ed\).)56 b(Bo)s(otstrap)37 b(messages)f(are)g(sen)m(t)g(with)-125 547 y(TTL)30 b(v)-5 b(alue)30 b(of)g(1.)41 b(Bo)s(otstrap)32 b(messages)f(originate)f(at)h(the)g(BSR,)f(and)g(are)h(forw)m(arded)e (b)m(y)i(in)m(termediate)f(routers.)17 660 y(Bo)s(otstrap)h(message)g (is)e(divided)f(up)h(in)m(to)h(`seman)m(tic)h(fragmen)m(ts',)g(if)e (the)i(original)d(message)j(exceeds)g(the)g(maxi-)-125 773 y(m)m(um)f(pac)m(k)m(et)j(size)d(b)s(oundaries.)17 886 y(The)f(seman)m(tics)i(of)g(a)f(single)f(`fragmen)m(t')j(is)d(giv)m (en)i(b)s(elo)m(w:)-29 1098 y Fa(0)906 b(1)h(2)g(3)-29 1211 y(0)47 b(1)h(2)f(3)h(4)f(5)h(6)f(7)h(8)f(9)g(0)h(1)f(2)h(3)f(4)h (5)f(6)h(7)f(8)h(9)f(0)g(1)h(2)f(3)h(4)f(5)h(6)f(7)h(8)f(9)h(0)f(1)-77 1324 y(+-+-+-+-+-+-+-+-+-+-+-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)o (-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)-77 1437 y(|PIM)g(Ver|)f(Type)95 b(|)47 b(Reserved)284 b(|)525 b(Checksum)571 b(|)-77 1550 y(+-+-+-+-+-+-+-+-+-+-+-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)o (-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)-77 1663 y(|)429 b(Fragment)46 b(Tag)476 b(|)48 b(Hash)f(Mask)f(len)h(|)h(BSR-priority) 92 b(|)-77 1776 y(+-+-+-+-+-+-+-+-+-+-+-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-) o(+-+)o(-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)-77 1889 y(|)811 b(Encoded-Unicast-BSR-Addre)o(ss)901 b(|)-77 2001 y(+-+-+-+-+-+-+-+-+-+-+-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)o (-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)-77 2114 y(|)1193 b(Encoded-Group)44 b(Address-1)714 b(|)-77 2227 y (+-+-+-+-+-+-+-+-+-+-+-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)o(-+-+)o (-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)-77 2340 y(|)48 b(RP-Count-1)188 b(|)47 b(Frag)g(RP-Cnt-1)e(|)430 b(Reserved)666 b(|)-77 2453 y(+-+-+-+-+-+-+-+-+-+-+-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)o (-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)-77 2566 y(|)811 b(Encoded-Unicast-RP-Addres)o(s-1)853 b(|)-77 2679 y (+-+-+-+-+-+-+-+-+-+-+-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)o(-+-+)o (-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)-77 2792 y(|)477 b(RP1-Holdtime)426 b(|)48 b(RP1-Priority)92 b(|)143 b(Reserved)189 b(|)-77 2905 y(+-+-+-+-+-+-+-+-+-+-+-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)o (-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)-77 3018 y(|)811 b(Encoded-Unicast-RP-Addres)o(s-2)853 b(|)-77 3131 y (+-+-+-+-+-+-+-+-+-+-+-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)o(-+-+)o (-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)-77 3243 y(|)477 b(RP2-Holdtime)426 b(|)48 b(RP2-Priority)92 b(|)143 b(Reserved)189 b(|)-77 3356 y(+-+-+-+-+-+-+-+-+-+-+-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)o (-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)-77 3469 y(|)1479 b(.)h(|)-77 3582 y(|)f(.)h(|)-77 3695 y(+-+-+-+-+-+-+-+-+-+-+-+-+)o (-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)o(-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o (+-+)-77 3808 y(|)811 b(Encoded-Unicast-RP-Addres)o(s-m)853 b(|)-77 3921 y(+-+-+-+-+-+-+-+-+-+-+-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o (+-+)o(-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)-77 4034 y(|)477 b(RPm-Holdtime)426 b(|)48 b(RPm-Priority)92 b(|)143 b(Reserved)189 b(|)-77 4147 y(+-+-+-+-+-+-+-+-+-+-+-+-+)o(-+-+)o(-+-)o (+-+-)o(+-+-)o(+-+)o(-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)-77 4260 y(|)1193 b(Encoded-Group)44 b(Address-2)714 b(|)-77 4373 y(+-+-+-+-+-+-+-+-+-+-+-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)o (-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)-77 4485 y(|)1479 b(.)h(|)-77 4598 y(|)f(.)h(|)-77 4711 y(+-+-+-+-+-+-+-+-+-+-+-+-+)o (-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)o(-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o (+-+)-77 4824 y(|)1193 b(Encoded-Group)44 b(Address-n)714 b(|)-77 4937 y(+-+-+-+-+-+-+-+-+-+-+-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o (+-+)o(-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)-77 5050 y(|)48 b(RP-Count-n)188 b(|)47 b(Frag)g(RP-Cnt-n)e(|)477 b(Reserved)619 b(|)-77 5163 y(+-+-+-+-+-+-+-+-+-+-+-+-+)o(-+-+)o(-+-)o (+-+-)o(+-+-)o(+-+)o(-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)-77 5276 y(|)811 b(Encoded-Unicast-RP-Addres)o(s-1)853 b(|)-77 5389 y(+-+-+-+-+-+-+-+-+-+-+-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)o (-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)p eop %%Page: 40 41 40 40 bop -125 -149 a Fh(draft-ietf-idmr-PIM-SM-sp)s(ec-10.ps)2673 b Fk(40)-77 149 y Fa(|)477 b(RP1-Holdtime)426 b(|)48 b(RP1-Priority)92 b(|)143 b(Reserved)189 b(|)-77 262 y(+-+-+-+-+-+-+-+-+-+-+-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)o(-+-+)o (-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)-77 375 y(|)811 b (Encoded-Unicast-RP-Addres)o(s-2)853 b(|)-77 488 y (+-+-+-+-+-+-+-+-+-+-+-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)o(-+-+)o (-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)-77 601 y(|)477 b(RP2-Holdtime)426 b(|)48 b(RP2-Priority)92 b(|)143 b(Reserved)189 b(|)-77 714 y(+-+-+-+-+-+-+-+-+-+-+-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)o (-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)-77 827 y(|)1479 b(.)h(|)-77 940 y(|)f(.)h(|)-77 1053 y(|)f(.)h(|)-77 1166 y(+-+-+-+-+-+-+-+-+-+-+-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)o (-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)-77 1279 y(|)811 b(Encoded-Unicast-RP-Addres)o(s-m)853 b(|)-77 1391 y (+-+-+-+-+-+-+-+-+-+-+-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)o(-+-+)o (-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)-77 1504 y(|)477 b(RPm-Holdtime)426 b(|)48 b(RPm-Priority)92 b(|)143 b(Reserved)189 b(|)-77 1617 y(+-+-+-+-+-+-+-+-+-+-+-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)o (-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)-125 1791 y Fn(PIM)36 b(V)-9 b(ersion,)35 b(T)m(yp)s(e,)g(Reserv)m(ed,)h(Chec)m(ksum)45 b Fk(Describ)s(ed)29 b(ab)s(o)m(v)m(e.)-125 1966 y Fn(F)-9 b(ragmen)m(t)34 b(T)-9 b(ag)46 b Fk(A)30 b(randomly)e(generated)j(n)m (um)m(b)s(er,)e(acts)i(to)g(distinguish)26 b(the)k(fragmen)m(ts)h(b)s (elonging)d(to)j(di\013eren)m(t)103 2079 y(Bo)s(otstrap)40 b(messages;)46 b(fragmen)m(ts)40 b(b)s(elonging)e(to)i(same)g(Bo)s (otstrap)h(message)g(carry)e(the)h(same)g(`F)-8 b(ragmen)m(t)103 2192 y(T)g(ag'.)-125 2366 y Fn(Hash)35 b(Mask)h(len)45 b Fk(The)29 b(length)h(\(in)f(bits\))g(of)h(the)g(mask)g(to)g(use)g(in) e(the)i(hash)g(function.)39 b(F)-8 b(or)30 b(IPv4)g(w)m(e)h(recommend) 103 2479 y(a)f(v)-5 b(alue)30 b(of)h(30.)41 b(F)-8 b(or)32 b(IPv6)e(w)m(e)h(recommend)f(a)h(v)-5 b(alue)30 b(of)g(126.)-125 2654 y Fn(BSR-priorit)m(y)47 b Fk(Con)m(tains)32 b(the)g(BSR)g(priorit) m(y)e(v)-5 b(alue)32 b(of)g(the)g(included)e(BSR.)i(This)e(\014eld)h (is)g(considered)g(as)h(a)h(high)103 2767 y(order)d(b)m(yte)h(when)e (comparing)h(BSR)g(addresses.)-125 2942 y Fn(Enco)s (ded-Unicast-BSR-Address)48 b Fk(The)27 b(address)f(of)h(the)g(b)s(o)s (otstrap)g(router)g(for)g(the)g(domain.)39 b(The)26 b(format)i(for)103 3055 y(this)h(address)h(is)f(giv)m(en)h(in)f(the)i(Enco)s (ded-Unicast-Address)e(in)g(4.1.)-125 3229 y Fn(Enco)s(ded-Group)36 b(Address-1..n)47 b Fk(The)33 b(group)g(pre\014x)f(\(address)h(and)g (mask\))h(with)e(whic)m(h)h(the)g(Candidate)g(RPs)103 3342 y(are)e(asso)s(ciated.)41 b(F)-8 b(ormat)31 b(previously)d (describ)s(ed.)-125 3517 y Fn(RP-Coun)m(t-1..n)47 b Fk(The)32 b(n)m(um)m(b)s(er)g(of)i(Candidate)e(RP)h(addresses)g(included)e(in)h (the)h(whole)g(Bo)s(otstrap)h(message)h(for)103 3630 y(the)e(corresp)s(onding)e(group)i(pre\014x.)48 b(A)33 b(router)h(do)s(es)e Ff(not)i Fk(replace)g(its)e(old)h(RP-Set)g(for)g (a)h(giv)m(en)f(group)f(pre\014x)103 3743 y(un)m(til/unless)i(it)j (receiv)m(es)h(`RP-Coun)m(t')g(addresses)f(for)g(that)h(pre\014x;)j (the)c(addresses)g(could)g(b)s(e)f(carried)h(o)m(v)m(er)103 3856 y(sev)m(eral)j(fragmen)m(ts.)72 b(If)39 b(only)h(part)g(of)h(the)f (RP-Set)h(for)f(a)h(giv)m(en)f(group)g(pre\014x)f(w)m(as)i(receiv)m (ed,)i(the)e(router)103 3969 y(discards)28 b(it,)j(without)e(up)s (dating)f(that)j(sp)s(eci\014c)f(group)f(pre\014x's)h(RP-Set.)-125 4144 y Fn(F)-9 b(rag)36 b(RP-Cn)m(t-1..m)44 b Fk(The)27 b(n)m(um)m(b)s(er)f(of)h(Candidate)f(RP)h(addresses)f(included)f(in)g (this)h(fragmen)m(t)i(of)f(the)h(Bo)s(otstrap)103 4256 y(message,)45 b(for)c(the)h(corresp)s(onding)d(group)i(pre\014x.)73 b(The)40 b(`F)-8 b(rag)43 b(RP-Cn)m(t')f(\014eld)e(facilitates)h (parsing)f(of)h(the)103 4369 y(RP-Set)30 b(for)h(a)f(giv)m(en)h(group)e (pre\014x,)h(when)f(carried)h(o)m(v)m(er)i(more)e(than)g(one)h(fragmen) m(t.)-125 4544 y Fn(Enco)s(ded-Unicast-RP-address-1..m)47 b Fk(The)29 b(address)f(of)i(the)f(Candidate)f(RPs,)h(for)g(the)h (corresp)s(onding)d(group)103 4657 y(pre\014x.)39 b(The)30 b(format)h(for)f(this)f(address)h(is)f(giv)m(en)i(in)e(the)h(Enco)s (ded-Unicast-Address)f(in)g(4.1.)-125 4832 y Fn(RP1..m-Holdtime)45 b Fk(The)37 b(Holdtime)f(for)g(the)i(corresp)s(onding)c(RP)-8 b(.)38 b(This)d(\014eld)h(is)g(copied)g(from)h(the)g(`Holdtime')103 4945 y(\014eld)29 b(of)h(the)h(asso)s(ciated)g(RP)f(stored)g(at)h(the)g (BSR.)-125 5119 y Fn(RP1..m-Priorit)m(y)47 b Fk(The)37 b(`Priorit)m(y')f(of)i(the)f(corresp)s(onding)e(RP)i(and)g(Enco)s (ded-Group)f(Address.)60 b(This)36 b(\014eld)f(is)103 5232 y(copied)c(from)h(the)h(`Priorit)m(y')e(\014eld)g(stored)h(at)h (the)g(BSR)f(when)f(receiving)h(a)g(Candidate-RP-Adv)m(ertisemen)m(t.) 103 5345 y(The)c(highest)f(priorit)m(y)g(is)g(`0')j(\(i.e.)40 b(the)29 b(lo)m(w)m(er)f(the)h(v)-5 b(alue)28 b(of)g(the)h(`Priorit)m (y')e(\014eld,)h(the)g(higher\).)40 b(Note)29 b(that)g(the)103 5458 y(priorit)m(y)g(is)g(p)s(er)g(RP)h(p)s(er)g(Enco)s(ded-Group)f (Address.)p eop %%Page: 41 42 41 41 bop -125 -149 a Fh(draft-ietf-idmr-PIM-SM-sp)s(ec-10.ps)2673 b Fk(41)-125 149 y Fe(4.7)113 b(Assert)37 b(Message)-125 321 y Fk(The)21 b(Assert)g(message)h(is)e(sen)m(t)h(when)f(a)i(m)m (ulticast)e(data)i(pac)m(k)m(et)h(is)d(receiv)m(ed)h(on)g(an)g (outgoing)g(in)m(terface)g(corresp)s(onding)-125 434 y(to)32 b(the)e(\(S,G\))h(or)g(\(*,G\))h(asso)s(ciated)e(with)g(the)g (source.)-29 647 y Fa(0)906 b(1)h(2)g(3)-29 759 y(0)47 b(1)h(2)f(3)h(4)f(5)h(6)f(7)h(8)f(9)g(0)h(1)f(2)h(3)f(4)h(5)f(6)h(7)f (8)h(9)f(0)g(1)h(2)f(3)h(4)f(5)h(6)f(7)h(8)f(9)h(0)f(1)-77 872 y(+-+-+-+-+-+-+-+-+-+-+-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)o (-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)-77 985 y(|PIM)g(Ver|)f(Type)95 b(|)47 b(Reserved)284 b(|)525 b(Checksum)571 b(|)-77 1098 y(+-+-+-+-+-+-+-+-+-+-+-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)o (-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)-77 1211 y(|)1050 b(Encoded-Group)44 b(Address)953 b(|)-77 1324 y (+-+-+-+-+-+-+-+-+-+-+-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)o(-+-+)o (-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)-77 1437 y(|)668 b (Encoded-Unicast-Source)42 b(Address)905 b(|)-77 1550 y(+-+-+-+-+-+-+-+-+-+-+-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)o(-+-+)o (-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)-77 1663 y(|R|)1145 b(Metric)46 b(Preference)952 b(|)-77 1776 y(+-+-+-+-+-+-+-+-+-+-+-+-+)o(-+-+)o(-+-) o(+-+-)o(+-+-)o(+-+)o(-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)-77 1889 y(|)1241 b(Metric)1478 b(|)-77 2001 y(+-+-+-+-+-+-+-+-+-+-+-+-+)o (-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)o(-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o (+-+)-125 2214 y Fn(PIM)36 b(V)-9 b(ersion,)35 b(T)m(yp)s(e,)g(Reserv)m (ed,)h(Chec)m(ksum)45 b Fk(Describ)s(ed)29 b(ab)s(o)m(v)m(e.)-125 2402 y Fn(Enco)s(ded-Group)36 b(Address)46 b Fk(The)e(group)g(address)g (to)h(whic)m(h)e(the)i(data)g(pac)m(k)m(et)i(w)m(as)e(addressed,)i(and) d(whic)m(h)103 2515 y(triggered)30 b(the)h(Assert.)41 b(F)-8 b(ormat)31 b(previously)d(describ)s(ed.)-125 2702 y Fn(Enco)s(ded-Unicast-Source)37 b(Address)46 b Fk(Source)24 b(address)f(from)g(m)m(ulticast)h(datagram)h(that)f(triggered)g(the)g (Assert)103 2815 y(pac)m(k)m(et)32 b(to)f(b)s(e)f(sen)m(t.)41 b(The)30 b(format)h(for)f(this)f(address)h(is)f(giv)m(en)h(in)g(the)g (Enco)s(ded-Unicast-Address)f(in)g(4.1.)-125 3003 y Fn(R)46 b Fk(RPT-bit)32 b(is)g(a)h(1)g(bit)f(v)-5 b(alue.)48 b(If)33 b(the)g(m)m(ulticast)f(datagram)i(that)f(triggered)g(the)g (Assert)g(pac)m(k)m(et)i(is)d(routed)h(do)m(wn)103 3116 y(the)d(RP)g(tree,)i(then)e(the)g(RPT-bit)g(is)f(1;)i(if)e(the)i(m)m (ulticast)f(datagram)h(is)f(routed)g(do)m(wn)g(the)g(SPT,)g(it)g(is)f (0.)-125 3303 y Fn(Metric)36 b(Preference)46 b Fk(Preference)34 b(v)-5 b(alue)33 b(assigned)h(to)g(the)g(unicast)f(routing)g(proto)s (col)h(that)h(pro)m(vided)d(the)i(route)103 3416 y(to)d(Host)g (address.)-125 3604 y Fn(Metric)46 b Fk(The)21 b(unicast)g(routing)g (table)g(metric.)38 b(The)21 b(metric)g(is)f(in)h(units)f(applicable)f (to)j(the)g(unicast)f(routing)f(proto)s(col)103 3717 y(used.)-125 3960 y Fe(4.8)113 b(Graft)37 b(Message)-125 4132 y Fk(Used)31 b(in)e(dense-mo)s(de.)40 b(Refer)30 b(to)i(PIM)e(dense)g(mo)s(de)g(sp)s(eci\014cation.)-125 4375 y Fe(4.9)113 b(Graft-Ac)m(k)37 b(Message)-125 4547 y Fk(Used)31 b(in)e(dense-mo)s(de.)40 b(Refer)30 b(to)i(PIM)e(dense)g (mo)s(de)g(sp)s(eci\014cation.)p eop %%Page: 42 43 42 42 bop -125 -149 a Fh(draft-ietf-idmr-PIM-SM-sp)s(ec-10.ps)2673 b Fk(42)-125 149 y Fe(4.10)113 b(Candidate-RP-Adv)m(ertisemen)m(t)-125 321 y Fk(Candidate-RP-Adv)m(ertisemen)m(ts)31 b(are)f(p)s(erio)s (dically)d(unicast)j(from)g(the)g(C-RPs)g(to)h(the)g(BSR.)-29 509 y Fa(0)906 b(1)h(2)g(3)-29 622 y(0)47 b(1)h(2)f(3)h(4)f(5)h(6)f(7)h (8)f(9)g(0)h(1)f(2)h(3)f(4)h(5)f(6)h(7)f(8)h(9)f(0)g(1)h(2)f(3)h(4)f(5) h(6)f(7)h(8)f(9)h(0)f(1)-77 735 y(+-+-+-+-+-+-+-+-+-+-+-+-+)o(-+-+)o (-+-)o(+-+-)o(+-+-)o(+-+)o(-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)-77 847 y(|PIM)g(Ver|)f(Type)95 b(|)47 b(Reserved)284 b(|)525 b(Checksum)571 b(|)-77 960 y(+-+-+-+-+-+-+-+-+-+-+-+-+)o(-+-+)o(-+-)o (+-+-)o(+-+-)o(+-+)o(-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)-77 1073 y(|)48 b(Prefix-Cnt)188 b(|)143 b(Priority)188 b(|)621 b(Holdtime)475 b(|)-77 1186 y(+-+-+-+-+-+-+-+-+-+-+-+-+)o(-+-+)o(-+-)o (+-+-)o(+-+-)o(+-+)o(-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)-77 1299 y(|)811 b(Encoded-Unicast-RP-Addres)o(s)949 b(|)-77 1412 y(+-+-+-+-+-+-+-+-+-+-+-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)o (-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)-77 1525 y(|)1193 b(Encoded-Group)44 b(Address-1)714 b(|)-77 1638 y (+-+-+-+-+-+-+-+-+-+-+-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)o(-+-+)o (-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)-77 1751 y(|)1479 b(.)h(|)-77 1864 y(|)f(.)h(|)-77 1977 y(|)f(.)h(|)-77 2089 y (+-+-+-+-+-+-+-+-+-+-+-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)o(-+-+)o (-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)-77 2202 y(|)1193 b(Encoded-Group)44 b(Address-n)714 b(|)-77 2315 y(+-+-+-+-+-+-+-+-+-+-+-+-+)o(-+-+)o(-+-)o (+-+-)o(+-+-)o(+-+)o(-+-+)o(-+-+)o(-+-)o(+-+-)o(+-+-)o(+-+)-125 2528 y Fn(PIM)36 b(V)-9 b(ersion,)35 b(T)m(yp)s(e,)g(Reserv)m(ed,)h (Chec)m(ksum)45 b Fk(Describ)s(ed)29 b(ab)s(o)m(v)m(e.)-125 2715 y Fn(Pre\014x-Cn)m(t)46 b Fk(The)d(n)m(um)m(b)s(er)g(of)i(enco)s (ded)e(group)h(addresses)g(included)d(in)i(the)h(message;)53 b(indicating)42 b(the)i(group)103 2828 y(pre\014xes)35 b(for)h(whic)m(h)f(the)h(C-RP)g(is)g(adv)m(ertising.)57 b(A)36 b(Pre\014x-Cn)m(t)g(of)g(`0')i(implies)33 b(a)k(pre\014x)e(of)h (224.0.0.0)k(with)103 2941 y(mask)k(length)g(of)h(4;)52 b(i.e.)83 b(all)43 b(m)m(ulticast)h(groups.)83 b(If)44 b(the)g(C-RP)h(is)e(not)i(con\014gured)f(with)f(Group-pre\014x)103 3054 y(information,)29 b(the)h(C-RP)g(puts)g(a)h(default)e(v)-5 b(alue)30 b(of)h(`0')g(in)e(this)g(\014eld.)-125 3242 y Fn(Priorit)m(y)47 b Fk(The)42 b(`Priorit)m(y')h(of)g(the)g(included)d (RP)-8 b(,)44 b(for)e(the)i(corresp)s(onding)c(Enco)s(ded-Group)i (Address)g(\(if)g(an)m(y\).)103 3355 y(highest)31 b(priorit)m(y)f(is)h (`0')i(\(i.e.)46 b(the)32 b(lo)m(w)m(er)g(the)h(v)-5 b(alue)31 b(of)h(the)g(`Priorit)m(y')g(\014eld,)f(the)h(higher)f(the)h (priorit)m(y\).)44 b(This)103 3468 y(\014eld)20 b(is)g(stored)i(at)g (the)g(BSR)f(up)s(on)f(receipt)h(along)h(with)e(the)i(RP)f(address)f (and)h(corresp)s(onding)f(Enco)s(ded-Group)103 3581 y(Address.)-125 3768 y Fn(Holdtime)45 b Fk(The)32 b(amoun)m(t)i(of)f(time)f(the)i(adv)m (ertisemen)m(t)f(is)f(v)-5 b(alid.)47 b(This)31 b(\014eld)h(allo)m(ws)g (adv)m(ertisemen)m(ts)i(to)f(b)s(e)g(aged)103 3881 y(out.)-125 4069 y Fn(Enco)s(ded-Unicast-RP-Address)48 b Fk(The)42 b(address)g(of)h(the)g(in)m(terface)g(to)h(adv)m(ertise)f(as)g(a)g (Candidate)f(RP)-8 b(.)43 b(The)103 4182 y(format)30 b(for)h(this)e(address)g(is)h(giv)m(en)g(in)f(the)i(Enco)s (ded-Unicast-Address)e(in)g(4.1.)-125 4369 y Fn(Enco)s(ded-Group)36 b(Address-1..n)47 b Fk(The)33 b(group)g(pre\014xes)f(for)i(whic)m(h)e (the)i(C-RP)f(is)f(adv)m(ertising.)50 b(F)-8 b(ormat)34 b(previ-)103 4482 y(ously)29 b(describ)s(ed.)p eop %%Page: 43 44 43 43 bop -125 -149 a Fh(draft-ietf-idmr-PIM-SM-sp)s(ec-10.ps)2673 b Fk(43)-125 149 y Fg(5)135 b(Ac)l(kno)l(wledgmen)l(ts)-125 352 y Fk(T)-8 b(on)m(y)33 b(Ballardie,)f(Scott)h(Brim,)f(Jon)g(Cro)m(w) m(croft,)h(Bill)e(F)-8 b(enner,)33 b(P)m(aul)f(F)-8 b(rancis,)32 b(Jo)s(el)g(Halp)s(ern,)f(Horst)i(Ho)s(del,)f(P)m(olly)-125 465 y(Huang,)46 b(Stephen)c(Ostro)m(wski,)i(Lixia)d(Zhang)h(and)g (Girish)e(Chandranmenon)g(pro)m(vided)h(detailed)g(commen)m(ts)j(on) -125 578 y(previous)e(drafts.)80 b(The)43 b(authors)g(of)h(CBT)f([8)q (])g(and)g(mem)m(b)s(ership)e(of)j(the)f(IDMR)h(W)m(G)h(pro)m(vided)d (man)m(y)i(of)f(the)-125 691 y(motiv)-5 b(ating)31 b(ideas)e(for)h (this)g(w)m(ork)g(and)g(useful)f(feedbac)m(k)i(on)f(design)f(details.) 17 804 y(This)36 b(w)m(ork)i(w)m(as)g(supp)s(orted)e(b)m(y)i(the)g (National)g(Science)g(F)-8 b(oundation,)39 b(ARP)-8 b(A,)39 b(cisco)f(Systems)g(and)f(Sun)g(Mi-)-125 917 y(crosystems.)p eop %%Page: 44 45 44 44 bop -125 -149 a Fh(draft-ietf-idmr-PIM-SM-sp)s(ec-10.ps)2673 b Fk(44)-125 149 y Fg(6)135 b(App)t(endices)-125 356 y Fe(6.1)113 b(App)s(endix)37 b(I:)h(Ma)6 b(jor)38 b(Changes)h(and)f (Up)s(dates)h(to)e(the)g(Sp)s(ec)-125 527 y Fk(This)h(app)s(endix)g(p)s (opulates)g(the)i(ma)5 b(jor)40 b(c)m(hanges)h(in)d(the)i(sp)s (eci\014cation)e(do)s(cumen)m(t)i(as)g(compared)g(to)g(`draft-ietf-) -125 640 y(idmr-pim-sp)s(ec-01.)p Fd(f)p Fk(ps,txt)p Fd(g)p Fk('.)-125 880 y Fn(Ma)6 b(jor)35 b(Changes)-125 1052 y Fk(List)30 b(of)h(c)m(hanges)g(since)f(Marc)m(h)h('96)g(IETF:) -13 1262 y(1.)46 b(\(*,*,RP\))23 b(Joins)d(state)j(and)e(data)h(forw)m (arding)e(c)m(hec)m(k;)27 b(replaces)21 b(\(*,G-Pre\014x\))i(Joins)d (state)j(for)e(in)m(terop)s(erabilit)m(y)-8 b(.)103 1375 y(\(*,G\))32 b(negativ)m(e)f(cac)m(he)h(in)m(tro)s(duced)d(for)h(the)h (\(*,*,RP\))h(state)g(supp)s(orting)c(mec)m(hanisms.)-13 1562 y(2.)46 b(Seman)m(tic)30 b(fragmen)m(tation)h(for)f(the)h(Bo)s (otstrap)g(message.)-13 1749 y(3.)46 b(Re\014nemen)m(t)30 b(of)h(Assert)f(details.)-13 1936 y(4.)46 b(Addition)29 b(and)h(re\014nemen)m(t)h(of)g(Join/Prune)f(suppression)e(and)i (Register)h(suppression)e(\(in)m(tro)s(duction)g(of)i(n)m(ull)103 2048 y(Registers\).)-13 2235 y(5.)46 b(Editorial)28 b(c)m(hanges)j(and) f(clari\014cations)f(to)i(the)g(timers)e(section.)-13 2422 y(6.)46 b(Addition)31 b(of)i(App)s(endix)d(I)s(I)i(\(BSR)h (Election)f(and)h(RP-Set)g(Distribution\),)e(and)i(App)s(endix)d(I)s(I) s(I)h(\(Glossary)i(of)103 2535 y(T)-8 b(erms\).)-13 2722 y(7.)46 b(Addition)28 b(of)j(table)f(of)g(con)m(ten)m(ts.)17 2932 y(List)f(of)i(c)m(hanges)g(incurred)d(since)i(v)m(ersion)g(1)h(of) f(the)h(sp)s(ec.:)-13 3143 y(1.)46 b(Prop)s(osal)29 b(and)h (re\014nemen)m(t)g(of)h(b)s(o)s(otstrap)e(router)i(\(BSR\))g(election)f (mec)m(hanisms)-13 3330 y(2.)46 b(In)m(tro)s(duction)29 b(of)h(hash)g(functions)f(for)h(Group)g(to)h(RP)f(mapping)-13 3516 y(3.)46 b(New)f(RP-liv)m(eness)g(indication)e(mec)m(hanisms)h (based)h(up)s(on)f(the)h(the)h(Bo)s(otstrap)g(Router)g(\(BSR\))f(and)g (the)103 3629 y(Bo)s(otstrap)31 b(messages.)-13 3816 y(4.)46 b(Remo)m(v)-5 b(al)31 b(of)f(reac)m(habilit)m(y)g(messages,)i (RP)e(rep)s(orts)f(and)h(m)m(ultiple)e(RPs)i(p)s(er)f(group.)-125 4056 y Fn(P)m(ac)m(k)m(et)36 b(F)-9 b(ormat)34 b(Changes)-125 4228 y Fk(P)m(ac)m(k)m(et)g(F)-8 b(ormat)31 b(incurred)d(up)s(dates)i (to)h(accommo)s(date)h(di\013eren)m(t)e(address)g(lengths,)f(and)h (address)g(aggregation.)-13 4438 y(1.)46 b(The)30 b(`Addr)f(F)-8 b(amily')30 b(and)g(`Enco)s(ding)f(T)m(yp)s(e')h(\014elds)f(w)m(ere)i (added)e(to)i(the)g(pac)m(k)m(et)h(formats.)-13 4625 y(2.)46 b(The)33 b(Enco)s(ded)g(source)h(and)f(group)h(address)f (formats)h(w)m(ere)g(in)m(tro)s(duced,)g(with)e(the)i(use)g(of)g(a)g (`Mask)h(length')103 4738 y(\014eld)29 b(to)i(allo)m(w)f(aggregation,)i (section)f(4.1.)-13 4925 y(3.)46 b(P)m(ac)m(k)m(et)33 b(formats)d(are)h(no)g(longer)f(IGMP)g(messages;)i(rather)e(PIM)g (messages.)17 5135 y(PIM)g(message)h(t)m(yp)s(es)g(and)f(formats)g(w)m (ere)h(also)f(mo)s(di\014ed:)17 5248 y([)p Ff(Note:)42 b(most)33 b(changes)h(wer)-5 b(e)33 b(made)g(to)h(the)f(May)f(95)i (version,)f(unless)f(otherwise)j(sp)-5 b(e)g(ci\014e)g(d)p Fk(].)-13 5458 y(1.)46 b(Obsolete)30 b(messages:)p eop %%Page: 45 46 45 45 bop -125 -149 a Fh(draft-ietf-idmr-PIM-SM-sp)s(ec-10.ps)2673 b Fk(45)141 149 y(\(a\))47 b(Register-Ac)m(k)32 b([F)-8 b(eb.)41 b(96])136 296 y(\(b\))46 b(P)m(oll)29 b(and)h(P)m(oll)g(Resp)s (onse)f([F)-8 b(eb.)42 b(96])146 442 y(\(c\))47 b(RP-Reac)m(habilit)m (y)30 b([F)-8 b(eb.)41 b(96])136 588 y(\(d\))46 b(RPlist-Mapping)28 b([F)-8 b(eb.)41 b(96])-13 800 y(2.)46 b(New)30 b(messages:)141 1013 y(\(a\))47 b(Candidate-RP-Adv)m(ertisemen)m(t)30 b([c)m(hange)i(made)e(in)f(Octob)s(er)i(95])136 1159 y(\(b\))46 b(RP-Set)30 b([F)-8 b(eb.)42 b(96])-13 1372 y(3.)k(Mo)s(di\014ed)29 b(messages:)141 1584 y(\(a\))47 b(Join/Prune)28 b([F)-8 b(eb.)42 b(96])136 1730 y(\(b\))k(Register)30 b([F)-8 b(eb.)42 b(96])146 1876 y(\(c\))47 b(Register-Stop)30 b([F)-8 b(eb.)42 b(96])136 2022 y(\(d\))k(Hello)30 b(\(addition)f(of)h (OptionT)m(yp)s(es\))f([Aug)i(96])-13 2235 y(4.)46 b(Renamed)30 b(messages:)141 2447 y(\(a\))47 b(Query)29 b(messages)j(are)e(renamed)g (as)h(Hello)f(messages)h([Aug.)41 b(96])136 2594 y(\(b\))46 b(RP-Set)30 b(messages)i(are)f(renamed)e(as)i(Bo)s(otstrap)g(messages)h ([Aug.)41 b(96])p eop %%Page: 46 47 46 46 bop -125 -149 a Fh(draft-ietf-idmr-PIM-SM-sp)s(ec-10.ps)2673 b Fk(46)-125 149 y Fe(6.2)113 b(App)s(endix)37 b(I)s(I:)g(BSR)g (Election)e(and)k(RP-Set)e(Distribution)-125 321 y Fk(F)-8 b(or)44 b(simplicit)m(y)-8 b(,)44 b(the)e(b)s(o)s(otstrap)h(message)g (is)f(used)g(in)f(b)s(oth)h(the)h(BSR)g(election)f(and)g(the)h(RP-Set)g (distribution)-125 434 y(mec)m(hanisms.)c(These)26 b(mec)m(hanisms)f (are)i(describ)s(ed)d(b)m(y)i(the)h(follo)m(wing)d(state)k(mac)m(hine,) f(illustrated)d(in)h(\014gure)g(4.)40 b(The)-125 547 y(proto)s(col)34 b(transitions)e(for)i(a)g(Candidate-BSR)f(are)h(giv)m (en)g(in)f(state)i(diagram)e(\(a\).)52 b(F)-8 b(or)35 b(routers)e(not)h(con\014gured)f(as)-125 660 y(Candidate-BSRs,)d(the)h (proto)s(col)f(transitions)f(are)h(giv)m(en)h(in)e(state)j(diagram)d (\(b\).)-125 3902 y @beginspecial 0 @voffset 0 @hoffset 60 @hscale 60 @vscale 0 @angle @setspecial %%BeginDocument: legend.ps % % Frame ps_prolog 4.0, for use with Frame 4.0 products % This ps_prolog file is Copyright (c) 1986-1993 Frame Technology % Corporation. All rights reserved. This ps_prolog file may be % freely copied and distributed in conjunction with documents created % using FrameMaker, FrameBuilder and FrameViewer as long as this % copyright notice is preserved. % % Frame products normally print colors as their true color on a color printer % or as shades of gray, based on luminance, on a black-and white printer. The % following flag, if set to True, forces all non-white colors to print as pure % black. This has no effect on bitmap images. /FMPrintAllColorsAsBlack false def % % Frame products can either set their own line screens or use a printer's % default settings. Three flags below control this separately for no % separations, spot separations and process separations. If a flag % is true, then the default printer settings will not be changed. If it is % false, Frame products will use their own settings from a table based on % the printer's resolution. /FMUseDefaultNoSeparationScreen true def /FMUseDefaultSpotSeparationScreen true def /FMUseDefaultProcessSeparationScreen false def % % For any given PostScript printer resolution, Frame products have two sets of % screen angles and frequencies for printing process separations, which are % recomended by Adobe. The following variable chooses the higher frequencies % when set to true or the lower frequencies when set to false. This is only % effective if the appropriate FMUseDefault...SeparationScreen flag is false. /FMUseHighFrequencyScreens true def % % PostScript Level 2 printers contain an "Accurate Screens" feature which can % improve process separation rendering at the expense of compute time. This % flag is ignored by PostScript Level 1 printers. /FMUseAcccurateScreens true def % % The following PostScript procedure defines the spot function that Frame % products will use for process separations. You may un-comment-out one of % the alternative functions below, or use your own. % % Dot function /FMSpotFunction {abs exch abs 2 copy add 1 gt {1 sub dup mul exch 1 sub dup mul add 1 sub } {dup mul exch dup mul add 1 exch sub }ifelse } def % % Line function % /FMSpotFunction { pop } def % % Elipse function % /FMSpotFunction { dup 5 mul 8 div mul exch dup mul exch add % sqrt 1 exch sub } def % % /FMversion (4.0) def /FMLevel1 /languagelevel where {pop languagelevel} {1} ifelse 2 lt def /FMPColor FMLevel1 { false /colorimage where {pop pop true} if } { true } ifelse def /FrameDict 400 dict def systemdict /errordict known not {/errordict 10 dict def errordict /rangecheck {stop} put} if % The readline in PS 23.0 doesn't recognize cr's as nl's on AppleTalk FrameDict /tmprangecheck errordict /rangecheck get put errordict /rangecheck {FrameDict /bug true put} put FrameDict /bug false put mark % Some PS machines read past the CR, so keep the following 3 lines together! currentfile 5 string readline 00 0000000000 cleartomark errordict /rangecheck FrameDict /tmprangecheck get put FrameDict /bug get { /readline { /gstring exch def /gfile exch def /gindex 0 def { gfile read pop dup 10 eq {exit} if dup 13 eq {exit} if gstring exch gindex exch put /gindex gindex 1 add def } loop pop gstring 0 gindex getinterval true } bind def } if /FMshowpage /showpage load def /FMquit /quit load def /FMFAILURE { dup = flush FMshowpage /Helvetica findfont 12 scalefont setfont 72 200 moveto show FMshowpage FMquit } def /FMVERSION { FMversion ne { (Frame product version does not match ps_prolog!) FMFAILURE } if } def /FMBADEPSF { (PostScript Lang. Ref. Man., 2nd Ed., H.2.4 says EPS must not call X ) dup dup (X) search pop exch pop exch pop length 4 -1 roll putinterval FMFAILURE } def /FMLOCAL { FrameDict begin 0 def end } def /concatprocs { /proc2 exch cvlit def/proc1 exch cvlit def/newproc proc1 length proc2 length add array def newproc 0 proc1 putinterval newproc proc1 length proc2 putinterval newproc cvx }def FrameDict begin /FMnone 0 def /FMcyan 1 def /FMmagenta 2 def /FMyellow 3 def /FMblack 4 def /FMcustom 5 def /FrameNegative false def /FrameSepIs FMnone def /FrameSepBlack 0 def /FrameSepYellow 0 def /FrameSepMagenta 0 def /FrameSepCyan 0 def /FrameSepRed 1 def /FrameSepGreen 1 def /FrameSepBlue 1 def /FrameCurGray 1 def /FrameCurPat null def /FrameCurColors [ 0 0 0 1 0 0 0 ] def /FrameColorEpsilon .001 def /eqepsilon { sub dup 0 lt {neg} if FrameColorEpsilon le } bind def /FrameCmpColorsCMYK { 2 copy 0 get exch 0 get eqepsilon { 2 copy 1 get exch 1 get eqepsilon { 2 copy 2 get exch 2 get eqepsilon { 3 get exch 3 get eqepsilon } {pop pop false} ifelse }{pop pop false} ifelse } {pop pop false} ifelse } bind def /FrameCmpColorsRGB { 2 copy 4 get exch 0 get eqepsilon { 2 copy 5 get exch 1 get eqepsilon { 6 get exch 2 get eqepsilon }{pop pop false} ifelse } {pop pop false} ifelse } bind def /RGBtoCMYK { 1 exch sub 3 1 roll 1 exch sub 3 1 roll 1 exch sub 3 1 roll 3 copy 2 copy le { pop } { exch pop } ifelse 2 copy le { pop } { exch pop } ifelse dup dup dup 6 1 roll 4 1 roll 7 1 roll sub 6 1 roll sub 5 1 roll sub 4 1 roll } bind def /CMYKtoRGB { dup dup 4 -1 roll add 5 1 roll 3 -1 roll add 4 1 roll add 1 exch sub dup 0 lt {pop 0} if 3 1 roll 1 exch sub dup 0 lt {pop 0} if exch 1 exch sub dup 0 lt {pop 0} if exch } bind def /FrameSepInit { 1.0 RealSetgray } bind def /FrameSetSepColor { /FrameSepBlue exch def /FrameSepGreen exch def /FrameSepRed exch def /FrameSepBlack exch def /FrameSepYellow exch def /FrameSepMagenta exch def /FrameSepCyan exch def /FrameSepIs FMcustom def setCurrentScreen } bind def /FrameSetCyan { /FrameSepBlue 1.0 def /FrameSepGreen 1.0 def /FrameSepRed 0.0 def /FrameSepBlack 0.0 def /FrameSepYellow 0.0 def /FrameSepMagenta 0.0 def /FrameSepCyan 1.0 def /FrameSepIs FMcyan def setCurrentScreen } bind def /FrameSetMagenta { /FrameSepBlue 1.0 def /FrameSepGreen 0.0 def /FrameSepRed 1.0 def /FrameSepBlack 0.0 def /FrameSepYellow 0.0 def /FrameSepMagenta 1.0 def /FrameSepCyan 0.0 def /FrameSepIs FMmagenta def setCurrentScreen } bind def /FrameSetYellow { /FrameSepBlue 0.0 def /FrameSepGreen 1.0 def /FrameSepRed 1.0 def /FrameSepBlack 0.0 def /FrameSepYellow 1.0 def /FrameSepMagenta 0.0 def /FrameSepCyan 0.0 def /FrameSepIs FMyellow def setCurrentScreen } bind def /FrameSetBlack { /FrameSepBlue 0.0 def /FrameSepGreen 0.0 def /FrameSepRed 0.0 def /FrameSepBlack 1.0 def /FrameSepYellow 0.0 def /FrameSepMagenta 0.0 def /FrameSepCyan 0.0 def /FrameSepIs FMblack def setCurrentScreen } bind def /FrameNoSep { /FrameSepIs FMnone def setCurrentScreen } bind def /FrameSetSepColors { FrameDict begin [ exch 1 add 1 roll ] /FrameSepColors exch def end } bind def /FrameColorInSepListCMYK { FrameSepColors { exch dup 3 -1 roll FrameCmpColorsCMYK { pop true exit } if } forall dup true ne {pop false} if } bind def /FrameColorInSepListRGB { FrameSepColors { exch dup 3 -1 roll FrameCmpColorsRGB { pop true exit } if } forall dup true ne {pop false} if } bind def /RealSetgray /setgray load def /RealSetrgbcolor /setrgbcolor load def /RealSethsbcolor /sethsbcolor load def end /setgray { FrameDict begin FrameSepIs FMnone eq { RealSetgray } { FrameSepIs FMblack eq { RealSetgray } { FrameSepIs FMcustom eq FrameSepRed 0 eq and FrameSepGreen 0 eq and FrameSepBlue 0 eq and { RealSetgray } { 1 RealSetgray pop } ifelse } ifelse } ifelse end } bind def /setrgbcolor { FrameDict begin FrameSepIs FMnone eq { RealSetrgbcolor } { 3 copy [ 4 1 roll ] FrameColorInSepListRGB { FrameSepBlue eq exch FrameSepGreen eq and exch FrameSepRed eq and { 0 } { 1 } ifelse } { FMPColor { RealSetrgbcolor currentcmykcolor } { RGBtoCMYK } ifelse FrameSepIs FMblack eq {1.0 exch sub 4 1 roll pop pop pop} { FrameSepIs FMyellow eq {pop 1.0 exch sub 3 1 roll pop pop} { FrameSepIs FMmagenta eq {pop pop 1.0 exch sub exch pop } { FrameSepIs FMcyan eq {pop pop pop 1.0 exch sub } {pop pop pop pop 1} ifelse } ifelse } ifelse } ifelse } ifelse RealSetgray } ifelse end } bind def /sethsbcolor { FrameDict begin FrameSepIs FMnone eq { RealSethsbcolor } { RealSethsbcolor currentrgbcolor setrgbcolor } ifelse end } bind def FrameDict begin /setcmykcolor where { pop /RealSetcmykcolor /setcmykcolor load def } { /RealSetcmykcolor { 4 1 roll 3 { 3 index add 0 max 1 min 1 exch sub 3 1 roll} repeat setrgbcolor pop } bind def } ifelse userdict /setcmykcolor { FrameDict begin FrameSepIs FMnone eq { RealSetcmykcolor } { 4 copy [ 5 1 roll ] FrameColorInSepListCMYK { FrameSepBlack eq exch FrameSepYellow eq and exch FrameSepMagenta eq and exch FrameSepCyan eq and { 0 } { 1 } ifelse } { FrameSepIs FMblack eq {1.0 exch sub 4 1 roll pop pop pop} { FrameSepIs FMyellow eq {pop 1.0 exch sub 3 1 roll pop pop} { FrameSepIs FMmagenta eq {pop pop 1.0 exch sub exch pop } { FrameSepIs FMcyan eq {pop pop pop 1.0 exch sub } {pop pop pop pop 1} ifelse } ifelse } ifelse } ifelse } ifelse RealSetgray } ifelse end } bind put FMLevel1 not { /patProcDict 5 dict dup begin <0f1e3c78f0e1c387> { 3 setlinewidth -1 -1 moveto 9 9 lineto stroke 4 -4 moveto 12 4 lineto stroke -4 4 moveto 4 12 lineto stroke} bind def <0f87c3e1f0783c1e> { 3 setlinewidth -1 9 moveto 9 -1 lineto stroke -4 4 moveto 4 -4 lineto stroke 4 12 moveto 12 4 lineto stroke} bind def <8142241818244281> { 1 setlinewidth -1 9 moveto 9 -1 lineto stroke -1 -1 moveto 9 9 lineto stroke } bind def <03060c183060c081> { 1 setlinewidth -1 -1 moveto 9 9 lineto stroke 4 -4 moveto 12 4 lineto stroke -4 4 moveto 4 12 lineto stroke} bind def <8040201008040201> { 1 setlinewidth -1 9 moveto 9 -1 lineto stroke -4 4 moveto 4 -4 lineto stroke 4 12 moveto 12 4 lineto stroke} bind def end def /patDict 15 dict dup begin /PatternType 1 def /PaintType 2 def /TilingType 3 def /BBox [ 0 0 8 8 ] def /XStep 8 def /YStep 8 def /PaintProc { begin patProcDict bstring known { patProcDict bstring get exec } { 8 8 true [1 0 0 -1 0 8] bstring imagemask } ifelse end } bind def end def } if /combineColor { FrameSepIs FMnone eq { graymode FMLevel1 or not { [/Pattern [/DeviceCMYK]] setcolorspace FrameCurColors 0 4 getinterval aload pop FrameCurPat setcolor } { FrameCurColors 3 get 1.0 ge { FrameCurGray RealSetgray } { FMPColor graymode and { 0 1 3 { FrameCurColors exch get 1 FrameCurGray sub mul } for RealSetcmykcolor } { 4 1 6 { FrameCurColors exch get graymode { 1 exch sub 1 FrameCurGray sub mul 1 exch sub } { 1.0 lt {FrameCurGray} {1} ifelse } ifelse } for RealSetrgbcolor } ifelse } ifelse } ifelse } { FrameCurColors 0 4 getinterval aload FrameColorInSepListCMYK { FrameSepBlack eq exch FrameSepYellow eq and exch FrameSepMagenta eq and exch FrameSepCyan eq and FrameSepIs FMcustom eq and { FrameCurGray } { 1 } ifelse } { FrameSepIs FMblack eq {FrameCurGray 1.0 exch sub mul 1.0 exch sub 4 1 roll pop pop pop} { FrameSepIs FMyellow eq {pop FrameCurGray 1.0 exch sub mul 1.0 exch sub 3 1 roll pop pop} { FrameSepIs FMmagenta eq {pop pop FrameCurGray 1.0 exch sub mul 1.0 exch sub exch pop } { FrameSepIs FMcyan eq {pop pop pop FrameCurGray 1.0 exch sub mul 1.0 exch sub } {pop pop pop pop 1} ifelse } ifelse } ifelse } ifelse } ifelse graymode FMLevel1 or not { [/Pattern [/DeviceGray]] setcolorspace FrameCurPat setcolor } { graymode not FMLevel1 and { dup 1 lt {pop FrameCurGray} if } if RealSetgray } ifelse } ifelse } bind def /savematrix { orgmatrix currentmatrix pop } bind def /restorematrix { orgmatrix setmatrix } bind def /dmatrix matrix def /dpi 72 0 dmatrix defaultmatrix dtransform dup mul exch dup mul add sqrt def /freq dpi dup 72 div round dup 0 eq {pop 1} if 8 mul div def /sangle 1 0 dmatrix defaultmatrix dtransform exch atan def /dpiranges [ 2540 2400 1693 1270 1200 635 600 0 ] def /CMLowFreqs [ 100.402 94.8683 89.2289 100.402 94.8683 66.9349 63.2456 47.4342 ] def /YLowFreqs [ 95.25 90.0 84.65 95.25 90.0 70.5556 66.6667 50.0 ] def /KLowFreqs [ 89.8026 84.8528 79.8088 89.8026 84.8528 74.8355 70.7107 53.033 ] def /CLowAngles [ 71.5651 71.5651 71.5651 71.5651 71.5651 71.5651 71.5651 71.5651 ] def /MLowAngles [ 18.4349 18.4349 18.4349 18.4349 18.4349 18.4349 18.4349 18.4349 ] def /YLowTDot [ true true false true true false false false ] def /CMHighFreqs [ 133.87 126.491 133.843 108.503 102.523 100.402 94.8683 63.2456 ] def /YHighFreqs [ 127.0 120.0 126.975 115.455 109.091 95.25 90.0 60.0 ] def /KHighFreqs [ 119.737 113.137 119.713 128.289 121.218 89.8026 84.8528 63.6395 ] def /CHighAngles [ 71.5651 71.5651 71.5651 70.0169 70.0169 71.5651 71.5651 71.5651 ] def /MHighAngles [ 18.4349 18.4349 18.4349 19.9831 19.9831 18.4349 18.4349 18.4349 ] def /YHighTDot [ false false true false false true true false ] def /PatFreq [ 10.5833 10.0 9.4055 10.5833 10.0 10.5833 10.0 9.375 ] def /screenIndex { 0 1 dpiranges length 1 sub { dup dpiranges exch get 1 sub dpi le {exit} {pop} ifelse } for } bind def /getCyanScreen { FMUseHighFrequencyScreens { CHighAngles CMHighFreqs} {CLowAngles CMLowFreqs} ifelse screenIndex dup 3 1 roll get 3 1 roll get /FMSpotFunction load } bind def /getMagentaScreen { FMUseHighFrequencyScreens { MHighAngles CMHighFreqs } {MLowAngles CMLowFreqs} ifelse screenIndex dup 3 1 roll get 3 1 roll get /FMSpotFunction load } bind def /getYellowScreen { FMUseHighFrequencyScreens { YHighTDot YHighFreqs} { YLowTDot YLowFreqs } ifelse screenIndex dup 3 1 roll get 3 1 roll get { 3 div {2 { 1 add 2 div 3 mul dup floor sub 2 mul 1 sub exch} repeat FMSpotFunction } } {/FMSpotFunction load } ifelse 0.0 exch } bind def /getBlackScreen { FMUseHighFrequencyScreens { KHighFreqs } { KLowFreqs } ifelse screenIndex get 45.0 /FMSpotFunction load } bind def /getSpotScreen { getBlackScreen } bind def /getCompositeScreen { getBlackScreen } bind def /FMSetScreen FMLevel1 { /setscreen load }{ { 8 dict begin /HalftoneType 1 def /SpotFunction exch def /Angle exch def /Frequency exch def /AccurateScreens FMUseAcccurateScreens def currentdict end sethalftone } bind } ifelse def /setDefaultScreen { FMPColor { orgrxfer cvx orggxfer cvx orgbxfer cvx orgxfer cvx setcolortransfer } { orgxfer cvx settransfer } ifelse orgfreq organgle orgproc cvx setscreen } bind def /setCurrentScreen { FrameSepIs FMnone eq { FMUseDefaultNoSeparationScreen { setDefaultScreen } { getCompositeScreen FMSetScreen } ifelse } { FrameSepIs FMcustom eq { FMUseDefaultSpotSeparationScreen { setDefaultScreen } { getSpotScreen FMSetScreen } ifelse } { FMUseDefaultProcessSeparationScreen { setDefaultScreen } { FrameSepIs FMcyan eq { getCyanScreen FMSetScreen } { FrameSepIs FMmagenta eq { getMagentaScreen FMSetScreen } { FrameSepIs FMyellow eq { getYellowScreen FMSetScreen } { getBlackScreen FMSetScreen } ifelse } ifelse } ifelse } ifelse } ifelse } ifelse } bind def end /gstring FMLOCAL /gfile FMLOCAL /gindex FMLOCAL /orgrxfer FMLOCAL /orggxfer FMLOCAL /orgbxfer FMLOCAL /orgxfer FMLOCAL /orgproc FMLOCAL /orgrproc FMLOCAL /orggproc FMLOCAL /orgbproc FMLOCAL /organgle FMLOCAL /orgrangle FMLOCAL /orggangle FMLOCAL /orgbangle FMLOCAL /orgfreq FMLOCAL /orgrfreq FMLOCAL /orggfreq FMLOCAL /orgbfreq FMLOCAL /yscale FMLOCAL /xscale FMLOCAL /edown FMLOCAL /manualfeed FMLOCAL /paperheight FMLOCAL /paperwidth FMLOCAL /FMDOCUMENT { array /FMfonts exch def /#copies exch def FrameDict begin 0 ne /manualfeed exch def /paperheight exch def /paperwidth exch def 0 ne /FrameNegative exch def 0 ne /edown exch def /yscale exch def /xscale exch def FMLevel1 { manualfeed {setmanualfeed} if /FMdicttop countdictstack 1 add def /FMoptop count def setpapername manualfeed {true} {papersize} ifelse {manualpapersize} {false} ifelse {desperatepapersize} {false} ifelse { (Can't select requested paper size for Frame print job!) FMFAILURE } if count -1 FMoptop {pop pop} for countdictstack -1 FMdicttop {pop end} for } {{}stopped { (Can't select requested paper size for Frame print job!) FMFAILURE } if { } stopped pop } ifelse FMPColor { currentcolorscreen cvlit /orgproc exch def /organgle exch def /orgfreq exch def cvlit /orgbproc exch def /orgbangle exch def /orgbfreq exch def cvlit /orggproc exch def /orggangle exch def /orggfreq exch def cvlit /orgrproc exch def /orgrangle exch def /orgrfreq exch def currentcolortransfer FrameNegative { 1 1 4 { pop { 1 exch sub } concatprocs 4 1 roll } for 4 copy setcolortransfer } if cvlit /orgxfer exch def cvlit /orgbxfer exch def cvlit /orggxfer exch def cvlit /orgrxfer exch def } { currentscreen cvlit /orgproc exch def /organgle exch def /orgfreq exch def currenttransfer FrameNegative { { 1 exch sub } concatprocs dup settransfer } if cvlit /orgxfer exch def } ifelse end } def /pagesave FMLOCAL /orgmatrix FMLOCAL /landscape FMLOCAL /pwid FMLOCAL /FMBEGINPAGE { FrameDict begin /pagesave save def 3.86 setmiterlimit /landscape exch 0 ne def landscape { 90 rotate 0 exch dup /pwid exch def neg translate pop }{ pop /pwid exch def } ifelse edown { [-1 0 0 1 pwid 0] concat } if xscale yscale scale /orgmatrix matrix def gsave } def /FMENDPAGE { grestore pagesave restore end showpage } def /FMFONTDEFINE { FrameDict begin findfont ReEncode 1 index exch definefont FMfonts 3 1 roll put end } def /FMFILLS { FrameDict begin dup array /fillvals exch def dict /patCache exch def end } def /FMFILL { FrameDict begin fillvals 3 1 roll put end } def /FMNORMALIZEGRAPHICS { newpath 0.0 0.0 moveto 1 setlinewidth 0 setlinecap 0 0 0 sethsbcolor 0 setgray } bind def /fx FMLOCAL /fy FMLOCAL /fh FMLOCAL /fw FMLOCAL /llx FMLOCAL /lly FMLOCAL /urx FMLOCAL /ury FMLOCAL /FMBEGINEPSF { end /FMEPSF save def /showpage {} def % See Adobe's "PostScript Language Reference Manual, 2nd Edition", page 714. % "...the following operators MUST NOT be used in an EPS file:" (emphasis ours) /banddevice {(banddevice) FMBADEPSF} def /clear {(clear) FMBADEPSF} def /cleardictstack {(cleardictstack) FMBADEPSF} def /copypage {(copypage) FMBADEPSF} def /erasepage {(erasepage) FMBADEPSF} def /exitserver {(exitserver) FMBADEPSF} def /framedevice {(framedevice) FMBADEPSF} def /grestoreall {(grestoreall) FMBADEPSF} def /initclip {(initclip) FMBADEPSF} def /initgraphics {(initgraphics) FMBADEPSF} def /initmatrix {(initmatrix) FMBADEPSF} def /quit {(quit) FMBADEPSF} def /renderbands {(renderbands) FMBADEPSF} def /setglobal {(setglobal) FMBADEPSF} def /setpagedevice {(setpagedevice) FMBADEPSF} def /setshared {(setshared) FMBADEPSF} def /startjob {(startjob) FMBADEPSF} def /lettertray {(lettertray) FMBADEPSF} def /letter {(letter) FMBADEPSF} def /lettersmall {(lettersmall) FMBADEPSF} def /11x17tray {(11x17tray) FMBADEPSF} def /11x17 {(11x17) FMBADEPSF} def /ledgertray {(ledgertray) FMBADEPSF} def /ledger {(ledger) FMBADEPSF} def /legaltray {(legaltray) FMBADEPSF} def /legal {(legal) FMBADEPSF} def /statementtray {(statementtray) FMBADEPSF} def /statement {(statement) FMBADEPSF} def /executivetray {(executivetray) FMBADEPSF} def /executive {(executive) FMBADEPSF} def /a3tray {(a3tray) FMBADEPSF} def /a3 {(a3) FMBADEPSF} def /a4tray {(a4tray) FMBADEPSF} def /a4 {(a4) FMBADEPSF} def /a4small {(a4small) FMBADEPSF} def /b4tray {(b4tray) FMBADEPSF} def /b4 {(b4) FMBADEPSF} def /b5tray {(b5tray) FMBADEPSF} def /b5 {(b5) FMBADEPSF} def FMNORMALIZEGRAPHICS [/fy /fx /fh /fw /ury /urx /lly /llx] {exch def} forall fx fw 2 div add fy fh 2 div add translate rotate fw 2 div neg fh 2 div neg translate fw urx llx sub div fh ury lly sub div scale llx neg lly neg translate /FMdicttop countdictstack 1 add def /FMoptop count def } bind def /FMENDEPSF { count -1 FMoptop {pop pop} for countdictstack -1 FMdicttop {pop end} for FMEPSF restore FrameDict begin } bind def FrameDict begin /setmanualfeed { statusdict /manualfeed true put } bind def /max {2 copy lt {exch} if pop} bind def /min {2 copy gt {exch} if pop} bind def /inch {72 mul} def /pagedimen { paperheight sub abs 16 lt exch paperwidth sub abs 16 lt and {/papername exch def} {pop} ifelse } bind def /papersizedict FMLOCAL /setpapername { /papersizedict 14 dict def papersizedict begin /papername /unknown def /Letter 8.5 inch 11.0 inch pagedimen /LetterSmall 7.68 inch 10.16 inch pagedimen /Tabloid 11.0 inch 17.0 inch pagedimen /Ledger 17.0 inch 11.0 inch pagedimen /Legal 8.5 inch 14.0 inch pagedimen /Statement 5.5 inch 8.5 inch pagedimen /Executive 7.5 inch 10.0 inch pagedimen /A3 11.69 inch 16.5 inch pagedimen /A4 8.26 inch 11.69 inch pagedimen /A4Small 7.47 inch 10.85 inch pagedimen /B4 10.125 inch 14.33 inch pagedimen /B5 7.16 inch 10.125 inch pagedimen end } bind def /papersize { papersizedict begin /Letter {lettertray letter} def /LetterSmall {lettertray lettersmall} def /Tabloid {11x17tray 11x17} def /Ledger {ledgertray ledger} def /Legal {legaltray legal} def /Statement {statementtray statement} def /Executive {executivetray executive} def /A3 {a3tray a3} def /A4 {a4tray a4} def /A4Small {a4tray a4small} def /B4 {b4tray b4} def /B5 {b5tray b5} def /unknown {unknown} def papersizedict dup papername known {papername} {/unknown} ifelse get end statusdict begin stopped end } bind def /manualpapersize { papersizedict begin /Letter {letter} def /LetterSmall {lettersmall} def /Tabloid {11x17} def /Ledger {ledger} def /Legal {legal} def /Statement {statement} def /Executive {executive} def /A3 {a3} def /A4 {a4} def /A4Small {a4small} def /B4 {b4} def /B5 {b5} def /unknown {unknown} def papersizedict dup papername known {papername} {/unknown} ifelse get end stopped } bind def /desperatepapersize { statusdict /setpageparams known { paperwidth paperheight 0 1 statusdict begin {setpageparams} stopped end } {true} ifelse } bind def /DiacriticEncoding [ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quotesingle /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /grave /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef /Adieresis /Aring /Ccedilla /Eacute /Ntilde /Odieresis /Udieresis /aacute /agrave /acircumflex /adieresis /atilde /aring /ccedilla /eacute /egrave /ecircumflex /edieresis /iacute /igrave /icircumflex /idieresis /ntilde /oacute /ograve /ocircumflex /odieresis /otilde /uacute /ugrave /ucircumflex /udieresis /dagger /.notdef /cent /sterling /section /bullet /paragraph /germandbls /registered /copyright /trademark /acute /dieresis /.notdef /AE /Oslash /.notdef /.notdef /.notdef /.notdef /yen /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /ordfeminine /ordmasculine /.notdef /ae /oslash /questiondown /exclamdown /logicalnot /.notdef /florin /.notdef /.notdef /guillemotleft /guillemotright /ellipsis /.notdef /Agrave /Atilde /Otilde /OE /oe /endash /emdash /quotedblleft /quotedblright /quoteleft /quoteright /.notdef /.notdef /ydieresis /Ydieresis /fraction /currency /guilsinglleft /guilsinglright /fi /fl /daggerdbl /periodcentered /quotesinglbase /quotedblbase /perthousand /Acircumflex /Ecircumflex /Aacute /Edieresis /Egrave /Iacute /Icircumflex /Idieresis /Igrave /Oacute /Ocircumflex /.notdef /Ograve /Uacute /Ucircumflex /Ugrave /dotlessi /circumflex /tilde /macron /breve /dotaccent /ring /cedilla /hungarumlaut /ogonek /caron ] def /ReEncode { dup length dict begin { 1 index /FID ne {def} {pop pop} ifelse } forall 0 eq {/Encoding DiacriticEncoding def} if currentdict end } bind def FMPColor { /BEGINBITMAPCOLOR { BITMAPCOLOR} def /BEGINBITMAPCOLORc { BITMAPCOLORc} def /BEGINBITMAPTRUECOLOR { BITMAPTRUECOLOR } def /BEGINBITMAPTRUECOLORc { BITMAPTRUECOLORc } def } { /BEGINBITMAPCOLOR { BITMAPGRAY} def /BEGINBITMAPCOLORc { BITMAPGRAYc} def /BEGINBITMAPTRUECOLOR { BITMAPTRUEGRAY } def /BEGINBITMAPTRUECOLORc { BITMAPTRUEGRAYc } def } ifelse /K { FMPrintAllColorsAsBlack { dup 1 eq 2 index 1 eq and 3 index 1 eq and not {7 {pop} repeat 0 0 0 1 0 0 0} if } if FrameCurColors astore pop combineColor } bind def /graymode true def /bwidth FMLOCAL /bpside FMLOCAL /bstring FMLOCAL /onbits FMLOCAL /offbits FMLOCAL /xindex FMLOCAL /yindex FMLOCAL /x FMLOCAL /y FMLOCAL /setPatternMode { FMLevel1 { /bwidth exch def /bpside exch def /bstring exch def /onbits 0 def /offbits 0 def freq sangle landscape {90 add} if {/y exch def /x exch def /xindex x 1 add 2 div bpside mul cvi def /yindex y 1 add 2 div bpside mul cvi def bstring yindex bwidth mul xindex 8 idiv add get 1 7 xindex 8 mod sub bitshift and 0 ne FrameNegative {not} if {/onbits onbits 1 add def 1} {/offbits offbits 1 add def 0} ifelse } setscreen offbits offbits onbits add div FrameNegative {1.0 exch sub} if /FrameCurGray exch def } { pop pop dup patCache exch known { patCache exch get } { dup patDict /bstring 3 -1 roll put patDict 9 PatFreq screenIndex get div dup matrix scale makepattern dup patCache 4 -1 roll 3 -1 roll put } ifelse /FrameCurGray 0 def /FrameCurPat exch def } ifelse /graymode false def combineColor } bind def /setGrayScaleMode { graymode not { /graymode true def FMLevel1 { setCurrentScreen } if } if /FrameCurGray exch def combineColor } bind def /normalize { transform round exch round exch itransform } bind def /dnormalize { dtransform round exch round exch idtransform } bind def /lnormalize { 0 dtransform exch cvi 2 idiv 2 mul 1 add exch idtransform pop } bind def /H { lnormalize setlinewidth } bind def /Z { setlinecap } bind def /PFill { graymode FMLevel1 or not { gsave 1 setgray eofill grestore } if } bind def /PStroke { graymode FMLevel1 or not { gsave 1 setgray stroke grestore } if stroke } bind def /fillvals FMLOCAL /X { fillvals exch get dup type /stringtype eq {8 1 setPatternMode} {setGrayScaleMode} ifelse } bind def /V { PFill gsave eofill grestore } bind def /Vclip { clip } bind def /Vstrk { currentlinewidth exch setlinewidth PStroke setlinewidth } bind def /N { PStroke } bind def /Nclip { strokepath clip newpath } bind def /Nstrk { currentlinewidth exch setlinewidth PStroke setlinewidth } bind def /M {newpath moveto} bind def /E {lineto} bind def /D {curveto} bind def /O {closepath} bind def /n FMLOCAL /L { /n exch def newpath normalize moveto 2 1 n {pop normalize lineto} for } bind def /Y { L closepath } bind def /x1 FMLOCAL /x2 FMLOCAL /y1 FMLOCAL /y2 FMLOCAL /R { /y2 exch def /x2 exch def /y1 exch def /x1 exch def x1 y1 x2 y1 x2 y2 x1 y2 4 Y } bind def /rad FMLOCAL /rarc {rad arcto } bind def /RR { /rad exch def normalize /y2 exch def /x2 exch def normalize /y1 exch def /x1 exch def mark newpath { x1 y1 rad add moveto x1 y2 x2 y2 rarc x2 y2 x2 y1 rarc x2 y1 x1 y1 rarc x1 y1 x1 y2 rarc closepath } stopped {x1 y1 x2 y2 R} if cleartomark } bind def /RRR { /rad exch def normalize /y4 exch def /x4 exch def normalize /y3 exch def /x3 exch def normalize /y2 exch def /x2 exch def normalize /y1 exch def /x1 exch def newpath normalize moveto mark { x2 y2 x3 y3 rarc x3 y3 x4 y4 rarc x4 y4 x1 y1 rarc x1 y1 x2 y2 rarc closepath } stopped {x1 y1 x2 y2 x3 y3 x4 y4 newpath moveto lineto lineto lineto closepath} if cleartomark } bind def /C { grestore gsave R clip setCurrentScreen } bind def /CP { grestore gsave Y clip setCurrentScreen } bind def /FMpointsize FMLOCAL /F { FMfonts exch get FMpointsize scalefont setfont } bind def /Q { /FMpointsize exch def F } bind def /T { moveto show } bind def /RF { rotate 0 ne {-1 1 scale} if } bind def /TF { gsave moveto RF show grestore } bind def /P { moveto 0 32 3 2 roll widthshow } bind def /PF { gsave moveto RF 0 32 3 2 roll widthshow grestore } bind def /S { moveto 0 exch ashow } bind def /SF { gsave moveto RF 0 exch ashow grestore } bind def /B { moveto 0 32 4 2 roll 0 exch awidthshow } bind def /BF { gsave moveto RF 0 32 4 2 roll 0 exch awidthshow grestore } bind def /G { gsave newpath normalize translate 0.0 0.0 moveto dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath PFill fill grestore } bind def /Gstrk { savematrix newpath 2 index 2 div add exch 3 index 2 div sub exch normalize 2 index 2 div sub exch 3 index 2 div add exch translate scale 0.0 0.0 1.0 5 3 roll arc restorematrix currentlinewidth exch setlinewidth PStroke setlinewidth } bind def /Gclip { newpath savematrix normalize translate 0.0 0.0 moveto dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath clip newpath restorematrix } bind def /GG { gsave newpath normalize translate 0.0 0.0 moveto rotate dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath PFill fill grestore } bind def /GGclip { savematrix newpath normalize translate 0.0 0.0 moveto rotate dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath clip newpath restorematrix } bind def /GGstrk { savematrix newpath normalize translate 0.0 0.0 moveto rotate dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath restorematrix currentlinewidth exch setlinewidth PStroke setlinewidth } bind def /A { gsave savematrix newpath 2 index 2 div add exch 3 index 2 div sub exch normalize 2 index 2 div sub exch 3 index 2 div add exch translate scale 0.0 0.0 1.0 5 3 roll arc restorematrix PStroke grestore } bind def /Aclip { newpath savematrix normalize translate 0.0 0.0 moveto dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath strokepath clip newpath restorematrix } bind def /Astrk { Gstrk } bind def /AA { gsave savematrix newpath 3 index 2 div add exch 4 index 2 div sub exch normalize 3 index 2 div sub exch 4 index 2 div add exch translate rotate scale 0.0 0.0 1.0 5 3 roll arc restorematrix PStroke grestore } bind def /AAclip { savematrix newpath normalize translate 0.0 0.0 moveto rotate dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath strokepath clip newpath restorematrix } bind def /AAstrk { GGstrk } bind def /x FMLOCAL /y FMLOCAL /w FMLOCAL /h FMLOCAL /xx FMLOCAL /yy FMLOCAL /ww FMLOCAL /hh FMLOCAL /FMsaveobject FMLOCAL /FMoptop FMLOCAL /FMdicttop FMLOCAL /BEGINPRINTCODE { /FMdicttop countdictstack 1 add def /FMoptop count 7 sub def /FMsaveobject save def userdict begin /showpage {} def FMNORMALIZEGRAPHICS 3 index neg 3 index neg translate } bind def /ENDPRINTCODE { count -1 FMoptop {pop pop} for countdictstack -1 FMdicttop {pop end} for FMsaveobject restore } bind def /gn { 0 { 46 mul cf read pop 32 sub dup 46 lt {exit} if 46 sub add } loop add } bind def /str FMLOCAL /cfs { /str sl string def 0 1 sl 1 sub {str exch val put} for str def } bind def /ic [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0223 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0223 0 {0 hx} {1 hx} {2 hx} {3 hx} {4 hx} {5 hx} {6 hx} {7 hx} {8 hx} {9 hx} {10 hx} {11 hx} {12 hx} {13 hx} {14 hx} {15 hx} {16 hx} {17 hx} {18 hx} {19 hx} {gn hx} {0} {1} {2} {3} {4} {5} {6} {7} {8} {9} {10} {11} {12} {13} {14} {15} {16} {17} {18} {19} {gn} {0 wh} {1 wh} {2 wh} {3 wh} {4 wh} {5 wh} {6 wh} {7 wh} {8 wh} {9 wh} {10 wh} {11 wh} {12 wh} {13 wh} {14 wh} {gn wh} {0 bl} {1 bl} {2 bl} {3 bl} {4 bl} {5 bl} {6 bl} {7 bl} {8 bl} {9 bl} {10 bl} {11 bl} {12 bl} {13 bl} {14 bl} {gn bl} {0 fl} {1 fl} {2 fl} {3 fl} {4 fl} {5 fl} {6 fl} {7 fl} {8 fl} {9 fl} {10 fl} {11 fl} {12 fl} {13 fl} {14 fl} {gn fl} ] def /sl FMLOCAL /val FMLOCAL /ws FMLOCAL /im FMLOCAL /bs FMLOCAL /cs FMLOCAL /len FMLOCAL /pos FMLOCAL /ms { /sl exch def /val 255 def /ws cfs /im cfs /val 0 def /bs cfs /cs cfs } bind def 400 ms /ip { is 0 cf cs readline pop { ic exch get exec add } forall pop } bind def /rip { bis ris copy pop is 0 cf cs readline pop { ic exch get exec add } forall pop pop ris gis copy pop dup is exch cf cs readline pop { ic exch get exec add } forall pop pop gis bis copy pop dup add is exch cf cs readline pop { ic exch get exec add } forall pop } bind def /wh { /len exch def /pos exch def ws 0 len getinterval im pos len getinterval copy pop pos len } bind def /bl { /len exch def /pos exch def bs 0 len getinterval im pos len getinterval copy pop pos len } bind def /s1 1 string def /fl { /len exch def /pos exch def /val cf s1 readhexstring pop 0 get def pos 1 pos len add 1 sub {im exch val put} for pos len } bind def /hx { 3 copy getinterval cf exch readhexstring pop pop } bind def /h FMLOCAL /w FMLOCAL /d FMLOCAL /lb FMLOCAL /bitmapsave FMLOCAL /is FMLOCAL /cf FMLOCAL /wbytes { dup dup 24 eq { pop pop 3 mul } { 8 eq {pop} {1 eq {7 add 8 idiv} {3 add 4 idiv} ifelse} ifelse } ifelse } bind def /BEGINBITMAPBWc { 1 {} COMMONBITMAPc } bind def /BEGINBITMAPGRAYc { 8 {} COMMONBITMAPc } bind def /BEGINBITMAP2BITc { 2 {} COMMONBITMAPc } bind def /COMMONBITMAPc { /r exch def /d exch def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /h exch def /w exch def /lb w d wbytes def sl lb lt {lb ms} if /bitmapsave save def r /is im 0 lb getinterval def ws 0 lb getinterval is copy pop /cf currentfile def w h d [w 0 0 h neg 0 h] {ip} image bitmapsave restore grestore } bind def /BEGINBITMAPBW { 1 {} COMMONBITMAP } bind def /BEGINBITMAPGRAY { 8 {} COMMONBITMAP } bind def /BEGINBITMAP2BIT { 2 {} COMMONBITMAP } bind def /COMMONBITMAP { /r exch def /d exch def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /h exch def /w exch def /bitmapsave save def r /is w d wbytes string def /cf currentfile def w h d [w 0 0 h neg 0 h] {cf is readhexstring pop} image bitmapsave restore grestore } bind def /ngrayt 256 array def /nredt 256 array def /nbluet 256 array def /ngreent 256 array def /gryt FMLOCAL /blut FMLOCAL /grnt FMLOCAL /redt FMLOCAL /indx FMLOCAL /cynu FMLOCAL /magu FMLOCAL /yelu FMLOCAL /k FMLOCAL /u FMLOCAL FMLevel1 { /colorsetup { currentcolortransfer /gryt exch def /blut exch def /grnt exch def /redt exch def 0 1 255 { /indx exch def /cynu 1 red indx get 255 div sub def /magu 1 green indx get 255 div sub def /yelu 1 blue indx get 255 div sub def /k cynu magu min yelu min def /u k currentundercolorremoval exec def % /u 0 def nredt indx 1 0 cynu u sub max sub redt exec put ngreent indx 1 0 magu u sub max sub grnt exec put nbluet indx 1 0 yelu u sub max sub blut exec put ngrayt indx 1 k currentblackgeneration exec sub gryt exec put } for {255 mul cvi nredt exch get} {255 mul cvi ngreent exch get} {255 mul cvi nbluet exch get} {255 mul cvi ngrayt exch get} setcolortransfer {pop 0} setundercolorremoval {} setblackgeneration } bind def } { /colorSetup2 { [ /Indexed /DeviceRGB 255 {dup red exch get 255 div exch dup green exch get 255 div exch blue exch get 255 div} ] setcolorspace } bind def } ifelse /tran FMLOCAL /fakecolorsetup { /tran 256 string def 0 1 255 {/indx exch def tran indx red indx get 77 mul green indx get 151 mul blue indx get 28 mul add add 256 idiv put} for currenttransfer {255 mul cvi tran exch get 255.0 div} exch concatprocs settransfer } bind def /BITMAPCOLOR { /d 8 def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /h exch def /w exch def /bitmapsave save def FMLevel1 { colorsetup /is w d wbytes string def /cf currentfile def w h d [w 0 0 h neg 0 h] {cf is readhexstring pop} {is} {is} true 3 colorimage } { colorSetup2 /is w d wbytes string def /cf currentfile def 7 dict dup begin /ImageType 1 def /Width w def /Height h def /ImageMatrix [w 0 0 h neg 0 h] def /DataSource {cf is readhexstring pop} bind def /BitsPerComponent d def /Decode [0 255] def end image } ifelse bitmapsave restore grestore } bind def /BITMAPCOLORc { /d 8 def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /h exch def /w exch def /lb w d wbytes def sl lb lt {lb ms} if /bitmapsave save def FMLevel1 { colorsetup /is im 0 lb getinterval def ws 0 lb getinterval is copy pop /cf currentfile def w h d [w 0 0 h neg 0 h] {ip} {is} {is} true 3 colorimage } { colorSetup2 /is im 0 lb getinterval def ws 0 lb getinterval is copy pop /cf currentfile def 7 dict dup begin /ImageType 1 def /Width w def /Height h def /ImageMatrix [w 0 0 h neg 0 h] def /DataSource {ip} bind def /BitsPerComponent d def /Decode [0 255] def end image } ifelse bitmapsave restore grestore } bind def /BITMAPTRUECOLORc { /d 24 def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /h exch def /w exch def /lb w d wbytes def sl lb lt {lb ms} if /bitmapsave save def /is im 0 lb getinterval def /ris im 0 w getinterval def /gis im w w getinterval def /bis im w 2 mul w getinterval def ws 0 lb getinterval is copy pop /cf currentfile def w h 8 [w 0 0 h neg 0 h] {w rip pop ris} {gis} {bis} true 3 colorimage bitmapsave restore grestore } bind def /BITMAPTRUECOLOR { gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /h exch def /w exch def /bitmapsave save def /is w string def /gis w string def /bis w string def /cf currentfile def w h 8 [w 0 0 h neg 0 h] { cf is readhexstring pop } { cf gis readhexstring pop } { cf bis readhexstring pop } true 3 colorimage bitmapsave restore grestore } bind def /BITMAPTRUEGRAYc { /d 24 def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /h exch def /w exch def /lb w d wbytes def sl lb lt {lb ms} if /bitmapsave save def /is im 0 lb getinterval def /ris im 0 w getinterval def /gis im w w getinterval def /bis im w 2 mul w getinterval def ws 0 lb getinterval is copy pop /cf currentfile def w h 8 [w 0 0 h neg 0 h] {w rip pop ris gis bis w gray} image bitmapsave restore grestore } bind def /ww FMLOCAL /r FMLOCAL /g FMLOCAL /b FMLOCAL /i FMLOCAL /gray { /ww exch def /b exch def /g exch def /r exch def 0 1 ww 1 sub { /i exch def r i get .299 mul g i get .587 mul b i get .114 mul add add r i 3 -1 roll floor cvi put } for r } bind def /BITMAPTRUEGRAY { gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /h exch def /w exch def /bitmapsave save def /is w string def /gis w string def /bis w string def /cf currentfile def w h 8 [w 0 0 h neg 0 h] { cf is readhexstring pop cf gis readhexstring pop cf bis readhexstring pop w gray} image bitmapsave restore grestore } bind def /BITMAPGRAY { 8 {fakecolorsetup} COMMONBITMAP } bind def /BITMAPGRAYc { 8 {fakecolorsetup} COMMONBITMAPc } bind def /ENDBITMAP { } bind def end /ALDsave FMLOCAL /ALDmatrix matrix def ALDmatrix currentmatrix pop /StartALD { /ALDsave save def savematrix ALDmatrix setmatrix } bind def /InALD { restorematrix } bind def /DoneALD { ALDsave restore } bind def /I { setdash } bind def /J { [] 0 setdash } bind def (4.0) FMVERSION 1 1 0 0 612 792 0 1 7 FMDOCUMENT 0 0 /Times-Bold FMFONTDEFINE 1 0 /Times-Italic FMFONTDEFINE 2 0 /Times-Roman FMFONTDEFINE 3 1 /Symbol FMFONTDEFINE 32 FMFILLS 0 0 FMFILL 1 0.1 FMFILL 2 0.3 FMFILL 3 0.5 FMFILL 4 0.7 FMFILL 5 0.9 FMFILL 6 0.97 FMFILL 7 1 FMFILL 8 <0f1e3c78f0e1c387> FMFILL 9 <0f87c3e1f0783c1e> FMFILL 10 FMFILL 11 FMFILL 12 <8142241818244281> FMFILL 13 <03060c183060c081> FMFILL 14 <8040201008040201> FMFILL 16 1 FMFILL 17 0.9 FMFILL 18 0.7 FMFILL 19 0.5 FMFILL 20 0.3 FMFILL 21 0.1 FMFILL 22 0.03 FMFILL 23 0 FMFILL 24 FMFILL 25 FMFILL 26 <3333333333333333> FMFILL 27 <0000ffff0000ffff> FMFILL 28 <7ebddbe7e7dbbd7e> FMFILL 29 FMFILL 30 <7fbfdfeff7fbfdfe> FMFILL 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 0 0 0 1 1 1] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 8 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K J 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 14 Q 0 X 0 0 0 1 0 0 0 K ( Incoming events) 0 419.74 T 1 12 Q (Name) 9 392.74 T 2 F (-----------------------------------------------------------------------------------------------------) 9 380.74 T (PrefBSMRxd) 9 368.74 T (BSMRxd) 9 356.74 T (TExp) 9 344.74 T 1 F (Interface) 90 393.53 T 2 F (RPF nbr toward included BSR) 90 368.74 T 1 F (Meaning) 261 395.21 T 2 F (Bootstrap msg rcvd satisfying) 261 371.21 T 0 F (P) 410.66 371.21 T 2 F (RPF nbr toward included BSR) 90 356.74 T (Bootstrap message received) 261 356.74 T 0 14 Q ( States) 5.73 302.32 T 1 12 Q (Name) 6.41 275.36 T 2 F (------------------------------------------------------------------------------------------------------) 6.41 263.36 T (AxptPref) 9.34 254.34 T 1 F (Meaning) 105.41 275.36 T 2 F (Accept only Bootstrap messages from preferred or equal BSR) 105.41 251.36 T (AxptAny) 9.34 242.34 T (Accept any RP-Set messages coming thru the right interface) 105.41 239.36 T 0 14 Q (Outgoing events) 10.4 185.36 T 1 12 Q (Name) 9 158.7 T (-----------------------------------------------------------------------------------------------------) 9 146.7 T 2 F (FwdBSM) 9 134.7 T 1 F (Interface) 63 159.49 T 2 F (All interfaces except receiving interface) 63 134.7 T 1 F (Meaning) 270 158.7 T 2 F (Forward Bootstrap message) 270 134.7 T 0 14 Q (Pr) 7.31 503.62 T (edicates) 21.83 503.62 T 1 12 Q (Name) 6.41 476.62 T 2 F (------------------------------------------------------------------------------------------------------) 6.41 464.62 T 0 F (P) 6.41 452.62 T 1 F (Meaning) 78.41 476.62 T 2 F (T) 90 344.74 T (imer provider machinery) 96.91 344.74 T (Bootstrap timer expired) 261 344.74 T 1 F (R) 78.41 451.12 T (x) 86.45 451.12 T (d) 92.49 451.12 T (B) 99.19 451.12 T (S) 107.23 451.12 T (R) 113.94 451.12 T (L) 133.86 451.12 T (c) 141.24 451.12 T (l) 147.27 451.12 T (B) 151.32 451.12 T (S) 159.35 451.12 T (R) 166.06 451.12 T 3 F (\263) 124.27 451.12 T 0 14 Q (Speci\336c actions) 9 89.72 T 2 12 Q ([1] = Restart Bootstrap timer at) 9 62.72 T 1 F (Bootstrap-T) 162.42 62.72 T (imeout) 219.77 62.72 T 2 F ([2] =) 9 50.72 T 1 F (\050LclBSR) 35.76 50.72 T 2 F (=) 78.76 50.72 T 1 F ( RxdBSR) 85.52 50.72 T 2 F (\051) 127.85 50.72 T ([3] = \050) 9 38.72 T 1 F (LclRP-Set) 39.76 38.72 T 2 F ( =) 88.42 38.72 T 1 F (RxdRP-Set) 101.18 38.72 T 2 F (\051) 153.17 38.72 T 0 14 Q (State variables) 9 611.62 T 1 F (LclBSR =) 9 593.62 T 2 F ( Local concatenated BSR priority and BSR IP address) 63.95 593.62 T 1 F (LclRP-Set =) 9 579.62 T 2 F ( Local RP-Set) 78.72 579.62 T 1 F (RxdBSR =) 9 565.62 T 2 F (Received concatenated BSR priority and BSR IP address) 71.33 565.62 T 1 F (RxdRP-Set =) 9 551.62 T 2 F (Received RP-Set) 86.1 551.62 T 2 12 Q (CandBSR) 9.34 230.34 T (ElectedBSR) 9.34 218.34 T (Candidate bootstrap router) 105.41 227.36 T (Elected bootstrap router) 105.41 215.36 T (All interfaces) 63 122.7 T (Originate Bootstrap message) 270 122.7 T ([4] = Restart Bootstrap timer at) 9 26.72 T 1 F (Bootstrap-Period) 162.42 26.72 T 2 F (OrigBSM) 9 122.7 T 1 14 Q (Bootstrap-Period) 9 537.62 T 2 F (= 60 seconds) 110.5 537.62 T 1 F (Bootstrap-T) 9 523.62 T (imeout) 75.91 523.62 T 2 F (= 2.5 x Bootstrap-Period = 150 seconds) 117.51 523.62 T 0 0 0 1 0 0 0 K FMENDPAGE %%EndDocument @endspecial @beginspecial 0 @voffset 280 @hoffset 60 @hscale 60 @vscale 0 @angle @setspecial %%BeginDocument: fsm.ps % % Frame ps_prolog 4.0, for use with Frame 4.0 products % This ps_prolog file is Copyright (c) 1986-1993 Frame Technology % Corporation. All rights reserved. This ps_prolog file may be % freely copied and distributed in conjunction with documents created % using FrameMaker, FrameBuilder and FrameViewer as long as this % copyright notice is preserved. % % Frame products normally print colors as their true color on a color printer % or as shades of gray, based on luminance, on a black-and white printer. The % following flag, if set to True, forces all non-white colors to print as pure % black. This has no effect on bitmap images. /FMPrintAllColorsAsBlack false def % % Frame products can either set their own line screens or use a printer's % default settings. Three flags below control this separately for no % separations, spot separations and process separations. If a flag % is true, then the default printer settings will not be changed. If it is % false, Frame products will use their own settings from a table based on % the printer's resolution. /FMUseDefaultNoSeparationScreen true def /FMUseDefaultSpotSeparationScreen true def /FMUseDefaultProcessSeparationScreen false def % % For any given PostScript printer resolution, Frame products have two sets of % screen angles and frequencies for printing process separations, which are % recomended by Adobe. The following variable chooses the higher frequencies % when set to true or the lower frequencies when set to false. This is only % effective if the appropriate FMUseDefault...SeparationScreen flag is false. /FMUseHighFrequencyScreens true def % % PostScript Level 2 printers contain an "Accurate Screens" feature which can % improve process separation rendering at the expense of compute time. This % flag is ignored by PostScript Level 1 printers. /FMUseAcccurateScreens true def % % The following PostScript procedure defines the spot function that Frame % products will use for process separations. You may un-comment-out one of % the alternative functions below, or use your own. % % Dot function /FMSpotFunction {abs exch abs 2 copy add 1 gt {1 sub dup mul exch 1 sub dup mul add 1 sub } {dup mul exch dup mul add 1 exch sub }ifelse } def % % Line function % /FMSpotFunction { pop } def % % Elipse function % /FMSpotFunction { dup 5 mul 8 div mul exch dup mul exch add % sqrt 1 exch sub } def % % /FMversion (4.0) def /FMLevel1 /languagelevel where {pop languagelevel} {1} ifelse 2 lt def /FMPColor FMLevel1 { false /colorimage where {pop pop true} if } { true } ifelse def /FrameDict 400 dict def systemdict /errordict known not {/errordict 10 dict def errordict /rangecheck {stop} put} if % The readline in PS 23.0 doesn't recognize cr's as nl's on AppleTalk FrameDict /tmprangecheck errordict /rangecheck get put errordict /rangecheck {FrameDict /bug true put} put FrameDict /bug false put mark % Some PS machines read past the CR, so keep the following 3 lines together! currentfile 5 string readline 00 0000000000 cleartomark errordict /rangecheck FrameDict /tmprangecheck get put FrameDict /bug get { /readline { /gstring exch def /gfile exch def /gindex 0 def { gfile read pop dup 10 eq {exit} if dup 13 eq {exit} if gstring exch gindex exch put /gindex gindex 1 add def } loop pop gstring 0 gindex getinterval true } bind def } if /FMshowpage /showpage load def /FMquit /quit load def /FMFAILURE { dup = flush FMshowpage /Helvetica findfont 12 scalefont setfont 72 200 moveto show FMshowpage FMquit } def /FMVERSION { FMversion ne { (Frame product version does not match ps_prolog!) FMFAILURE } if } def /FMBADEPSF { (PostScript Lang. Ref. Man., 2nd Ed., H.2.4 says EPS must not call X ) dup dup (X) search pop exch pop exch pop length 4 -1 roll putinterval FMFAILURE } def /FMLOCAL { FrameDict begin 0 def end } def /concatprocs { /proc2 exch cvlit def/proc1 exch cvlit def/newproc proc1 length proc2 length add array def newproc 0 proc1 putinterval newproc proc1 length proc2 putinterval newproc cvx }def FrameDict begin /FMnone 0 def /FMcyan 1 def /FMmagenta 2 def /FMyellow 3 def /FMblack 4 def /FMcustom 5 def /FrameNegative false def /FrameSepIs FMnone def /FrameSepBlack 0 def /FrameSepYellow 0 def /FrameSepMagenta 0 def /FrameSepCyan 0 def /FrameSepRed 1 def /FrameSepGreen 1 def /FrameSepBlue 1 def /FrameCurGray 1 def /FrameCurPat null def /FrameCurColors [ 0 0 0 1 0 0 0 ] def /FrameColorEpsilon .001 def /eqepsilon { sub dup 0 lt {neg} if FrameColorEpsilon le } bind def /FrameCmpColorsCMYK { 2 copy 0 get exch 0 get eqepsilon { 2 copy 1 get exch 1 get eqepsilon { 2 copy 2 get exch 2 get eqepsilon { 3 get exch 3 get eqepsilon } {pop pop false} ifelse }{pop pop false} ifelse } {pop pop false} ifelse } bind def /FrameCmpColorsRGB { 2 copy 4 get exch 0 get eqepsilon { 2 copy 5 get exch 1 get eqepsilon { 6 get exch 2 get eqepsilon }{pop pop false} ifelse } {pop pop false} ifelse } bind def /RGBtoCMYK { 1 exch sub 3 1 roll 1 exch sub 3 1 roll 1 exch sub 3 1 roll 3 copy 2 copy le { pop } { exch pop } ifelse 2 copy le { pop } { exch pop } ifelse dup dup dup 6 1 roll 4 1 roll 7 1 roll sub 6 1 roll sub 5 1 roll sub 4 1 roll } bind def /CMYKtoRGB { dup dup 4 -1 roll add 5 1 roll 3 -1 roll add 4 1 roll add 1 exch sub dup 0 lt {pop 0} if 3 1 roll 1 exch sub dup 0 lt {pop 0} if exch 1 exch sub dup 0 lt {pop 0} if exch } bind def /FrameSepInit { 1.0 RealSetgray } bind def /FrameSetSepColor { /FrameSepBlue exch def /FrameSepGreen exch def /FrameSepRed exch def /FrameSepBlack exch def /FrameSepYellow exch def /FrameSepMagenta exch def /FrameSepCyan exch def /FrameSepIs FMcustom def setCurrentScreen } bind def /FrameSetCyan { /FrameSepBlue 1.0 def /FrameSepGreen 1.0 def /FrameSepRed 0.0 def /FrameSepBlack 0.0 def /FrameSepYellow 0.0 def /FrameSepMagenta 0.0 def /FrameSepCyan 1.0 def /FrameSepIs FMcyan def setCurrentScreen } bind def /FrameSetMagenta { /FrameSepBlue 1.0 def /FrameSepGreen 0.0 def /FrameSepRed 1.0 def /FrameSepBlack 0.0 def /FrameSepYellow 0.0 def /FrameSepMagenta 1.0 def /FrameSepCyan 0.0 def /FrameSepIs FMmagenta def setCurrentScreen } bind def /FrameSetYellow { /FrameSepBlue 0.0 def /FrameSepGreen 1.0 def /FrameSepRed 1.0 def /FrameSepBlack 0.0 def /FrameSepYellow 1.0 def /FrameSepMagenta 0.0 def /FrameSepCyan 0.0 def /FrameSepIs FMyellow def setCurrentScreen } bind def /FrameSetBlack { /FrameSepBlue 0.0 def /FrameSepGreen 0.0 def /FrameSepRed 0.0 def /FrameSepBlack 1.0 def /FrameSepYellow 0.0 def /FrameSepMagenta 0.0 def /FrameSepCyan 0.0 def /FrameSepIs FMblack def setCurrentScreen } bind def /FrameNoSep { /FrameSepIs FMnone def setCurrentScreen } bind def /FrameSetSepColors { FrameDict begin [ exch 1 add 1 roll ] /FrameSepColors exch def end } bind def /FrameColorInSepListCMYK { FrameSepColors { exch dup 3 -1 roll FrameCmpColorsCMYK { pop true exit } if } forall dup true ne {pop false} if } bind def /FrameColorInSepListRGB { FrameSepColors { exch dup 3 -1 roll FrameCmpColorsRGB { pop true exit } if } forall dup true ne {pop false} if } bind def /RealSetgray /setgray load def /RealSetrgbcolor /setrgbcolor load def /RealSethsbcolor /sethsbcolor load def end /setgray { FrameDict begin FrameSepIs FMnone eq { RealSetgray } { FrameSepIs FMblack eq { RealSetgray } { FrameSepIs FMcustom eq FrameSepRed 0 eq and FrameSepGreen 0 eq and FrameSepBlue 0 eq and { RealSetgray } { 1 RealSetgray pop } ifelse } ifelse } ifelse end } bind def /setrgbcolor { FrameDict begin FrameSepIs FMnone eq { RealSetrgbcolor } { 3 copy [ 4 1 roll ] FrameColorInSepListRGB { FrameSepBlue eq exch FrameSepGreen eq and exch FrameSepRed eq and { 0 } { 1 } ifelse } { FMPColor { RealSetrgbcolor currentcmykcolor } { RGBtoCMYK } ifelse FrameSepIs FMblack eq {1.0 exch sub 4 1 roll pop pop pop} { FrameSepIs FMyellow eq {pop 1.0 exch sub 3 1 roll pop pop} { FrameSepIs FMmagenta eq {pop pop 1.0 exch sub exch pop } { FrameSepIs FMcyan eq {pop pop pop 1.0 exch sub } {pop pop pop pop 1} ifelse } ifelse } ifelse } ifelse } ifelse RealSetgray } ifelse end } bind def /sethsbcolor { FrameDict begin FrameSepIs FMnone eq { RealSethsbcolor } { RealSethsbcolor currentrgbcolor setrgbcolor } ifelse end } bind def FrameDict begin /setcmykcolor where { pop /RealSetcmykcolor /setcmykcolor load def } { /RealSetcmykcolor { 4 1 roll 3 { 3 index add 0 max 1 min 1 exch sub 3 1 roll} repeat setrgbcolor pop } bind def } ifelse userdict /setcmykcolor { FrameDict begin FrameSepIs FMnone eq { RealSetcmykcolor } { 4 copy [ 5 1 roll ] FrameColorInSepListCMYK { FrameSepBlack eq exch FrameSepYellow eq and exch FrameSepMagenta eq and exch FrameSepCyan eq and { 0 } { 1 } ifelse } { FrameSepIs FMblack eq {1.0 exch sub 4 1 roll pop pop pop} { FrameSepIs FMyellow eq {pop 1.0 exch sub 3 1 roll pop pop} { FrameSepIs FMmagenta eq {pop pop 1.0 exch sub exch pop } { FrameSepIs FMcyan eq {pop pop pop 1.0 exch sub } {pop pop pop pop 1} ifelse } ifelse } ifelse } ifelse } ifelse RealSetgray } ifelse end } bind put FMLevel1 not { /patProcDict 5 dict dup begin <0f1e3c78f0e1c387> { 3 setlinewidth -1 -1 moveto 9 9 lineto stroke 4 -4 moveto 12 4 lineto stroke -4 4 moveto 4 12 lineto stroke} bind def <0f87c3e1f0783c1e> { 3 setlinewidth -1 9 moveto 9 -1 lineto stroke -4 4 moveto 4 -4 lineto stroke 4 12 moveto 12 4 lineto stroke} bind def <8142241818244281> { 1 setlinewidth -1 9 moveto 9 -1 lineto stroke -1 -1 moveto 9 9 lineto stroke } bind def <03060c183060c081> { 1 setlinewidth -1 -1 moveto 9 9 lineto stroke 4 -4 moveto 12 4 lineto stroke -4 4 moveto 4 12 lineto stroke} bind def <8040201008040201> { 1 setlinewidth -1 9 moveto 9 -1 lineto stroke -4 4 moveto 4 -4 lineto stroke 4 12 moveto 12 4 lineto stroke} bind def end def /patDict 15 dict dup begin /PatternType 1 def /PaintType 2 def /TilingType 3 def /BBox [ 0 0 8 8 ] def /XStep 8 def /YStep 8 def /PaintProc { begin patProcDict bstring known { patProcDict bstring get exec } { 8 8 true [1 0 0 -1 0 8] bstring imagemask } ifelse end } bind def end def } if /combineColor { FrameSepIs FMnone eq { graymode FMLevel1 or not { [/Pattern [/DeviceCMYK]] setcolorspace FrameCurColors 0 4 getinterval aload pop FrameCurPat setcolor } { FrameCurColors 3 get 1.0 ge { FrameCurGray RealSetgray } { FMPColor graymode and { 0 1 3 { FrameCurColors exch get 1 FrameCurGray sub mul } for RealSetcmykcolor } { 4 1 6 { FrameCurColors exch get graymode { 1 exch sub 1 FrameCurGray sub mul 1 exch sub } { 1.0 lt {FrameCurGray} {1} ifelse } ifelse } for RealSetrgbcolor } ifelse } ifelse } ifelse } { FrameCurColors 0 4 getinterval aload FrameColorInSepListCMYK { FrameSepBlack eq exch FrameSepYellow eq and exch FrameSepMagenta eq and exch FrameSepCyan eq and FrameSepIs FMcustom eq and { FrameCurGray } { 1 } ifelse } { FrameSepIs FMblack eq {FrameCurGray 1.0 exch sub mul 1.0 exch sub 4 1 roll pop pop pop} { FrameSepIs FMyellow eq {pop FrameCurGray 1.0 exch sub mul 1.0 exch sub 3 1 roll pop pop} { FrameSepIs FMmagenta eq {pop pop FrameCurGray 1.0 exch sub mul 1.0 exch sub exch pop } { FrameSepIs FMcyan eq {pop pop pop FrameCurGray 1.0 exch sub mul 1.0 exch sub } {pop pop pop pop 1} ifelse } ifelse } ifelse } ifelse } ifelse graymode FMLevel1 or not { [/Pattern [/DeviceGray]] setcolorspace FrameCurPat setcolor } { graymode not FMLevel1 and { dup 1 lt {pop FrameCurGray} if } if RealSetgray } ifelse } ifelse } bind def /savematrix { orgmatrix currentmatrix pop } bind def /restorematrix { orgmatrix setmatrix } bind def /dmatrix matrix def /dpi 72 0 dmatrix defaultmatrix dtransform dup mul exch dup mul add sqrt def /freq dpi dup 72 div round dup 0 eq {pop 1} if 8 mul div def /sangle 1 0 dmatrix defaultmatrix dtransform exch atan def /dpiranges [ 2540 2400 1693 1270 1200 635 600 0 ] def /CMLowFreqs [ 100.402 94.8683 89.2289 100.402 94.8683 66.9349 63.2456 47.4342 ] def /YLowFreqs [ 95.25 90.0 84.65 95.25 90.0 70.5556 66.6667 50.0 ] def /KLowFreqs [ 89.8026 84.8528 79.8088 89.8026 84.8528 74.8355 70.7107 53.033 ] def /CLowAngles [ 71.5651 71.5651 71.5651 71.5651 71.5651 71.5651 71.5651 71.5651 ] def /MLowAngles [ 18.4349 18.4349 18.4349 18.4349 18.4349 18.4349 18.4349 18.4349 ] def /YLowTDot [ true true false true true false false false ] def /CMHighFreqs [ 133.87 126.491 133.843 108.503 102.523 100.402 94.8683 63.2456 ] def /YHighFreqs [ 127.0 120.0 126.975 115.455 109.091 95.25 90.0 60.0 ] def /KHighFreqs [ 119.737 113.137 119.713 128.289 121.218 89.8026 84.8528 63.6395 ] def /CHighAngles [ 71.5651 71.5651 71.5651 70.0169 70.0169 71.5651 71.5651 71.5651 ] def /MHighAngles [ 18.4349 18.4349 18.4349 19.9831 19.9831 18.4349 18.4349 18.4349 ] def /YHighTDot [ false false true false false true true false ] def /PatFreq [ 10.5833 10.0 9.4055 10.5833 10.0 10.5833 10.0 9.375 ] def /screenIndex { 0 1 dpiranges length 1 sub { dup dpiranges exch get 1 sub dpi le {exit} {pop} ifelse } for } bind def /getCyanScreen { FMUseHighFrequencyScreens { CHighAngles CMHighFreqs} {CLowAngles CMLowFreqs} ifelse screenIndex dup 3 1 roll get 3 1 roll get /FMSpotFunction load } bind def /getMagentaScreen { FMUseHighFrequencyScreens { MHighAngles CMHighFreqs } {MLowAngles CMLowFreqs} ifelse screenIndex dup 3 1 roll get 3 1 roll get /FMSpotFunction load } bind def /getYellowScreen { FMUseHighFrequencyScreens { YHighTDot YHighFreqs} { YLowTDot YLowFreqs } ifelse screenIndex dup 3 1 roll get 3 1 roll get { 3 div {2 { 1 add 2 div 3 mul dup floor sub 2 mul 1 sub exch} repeat FMSpotFunction } } {/FMSpotFunction load } ifelse 0.0 exch } bind def /getBlackScreen { FMUseHighFrequencyScreens { KHighFreqs } { KLowFreqs } ifelse screenIndex get 45.0 /FMSpotFunction load } bind def /getSpotScreen { getBlackScreen } bind def /getCompositeScreen { getBlackScreen } bind def /FMSetScreen FMLevel1 { /setscreen load }{ { 8 dict begin /HalftoneType 1 def /SpotFunction exch def /Angle exch def /Frequency exch def /AccurateScreens FMUseAcccurateScreens def currentdict end sethalftone } bind } ifelse def /setDefaultScreen { FMPColor { orgrxfer cvx orggxfer cvx orgbxfer cvx orgxfer cvx setcolortransfer } { orgxfer cvx settransfer } ifelse orgfreq organgle orgproc cvx setscreen } bind def /setCurrentScreen { FrameSepIs FMnone eq { FMUseDefaultNoSeparationScreen { setDefaultScreen } { getCompositeScreen FMSetScreen } ifelse } { FrameSepIs FMcustom eq { FMUseDefaultSpotSeparationScreen { setDefaultScreen } { getSpotScreen FMSetScreen } ifelse } { FMUseDefaultProcessSeparationScreen { setDefaultScreen } { FrameSepIs FMcyan eq { getCyanScreen FMSetScreen } { FrameSepIs FMmagenta eq { getMagentaScreen FMSetScreen } { FrameSepIs FMyellow eq { getYellowScreen FMSetScreen } { getBlackScreen FMSetScreen } ifelse } ifelse } ifelse } ifelse } ifelse } ifelse } bind def end /gstring FMLOCAL /gfile FMLOCAL /gindex FMLOCAL /orgrxfer FMLOCAL /orggxfer FMLOCAL /orgbxfer FMLOCAL /orgxfer FMLOCAL /orgproc FMLOCAL /orgrproc FMLOCAL /orggproc FMLOCAL /orgbproc FMLOCAL /organgle FMLOCAL /orgrangle FMLOCAL /orggangle FMLOCAL /orgbangle FMLOCAL /orgfreq FMLOCAL /orgrfreq FMLOCAL /orggfreq FMLOCAL /orgbfreq FMLOCAL /yscale FMLOCAL /xscale FMLOCAL /edown FMLOCAL /manualfeed FMLOCAL /paperheight FMLOCAL /paperwidth FMLOCAL /FMDOCUMENT { array /FMfonts exch def /#copies exch def FrameDict begin 0 ne /manualfeed exch def /paperheight exch def /paperwidth exch def 0 ne /FrameNegative exch def 0 ne /edown exch def /yscale exch def /xscale exch def FMLevel1 { manualfeed {setmanualfeed} if /FMdicttop countdictstack 1 add def /FMoptop count def setpapername manualfeed {true} {papersize} ifelse {manualpapersize} {false} ifelse {desperatepapersize} {false} ifelse { (Can't select requested paper size for Frame print job!) FMFAILURE } if count -1 FMoptop {pop pop} for countdictstack -1 FMdicttop {pop end} for } {{}stopped { (Can't select requested paper size for Frame print job!) FMFAILURE } if { } stopped pop } ifelse FMPColor { currentcolorscreen cvlit /orgproc exch def /organgle exch def /orgfreq exch def cvlit /orgbproc exch def /orgbangle exch def /orgbfreq exch def cvlit /orggproc exch def /orggangle exch def /orggfreq exch def cvlit /orgrproc exch def /orgrangle exch def /orgrfreq exch def currentcolortransfer FrameNegative { 1 1 4 { pop { 1 exch sub } concatprocs 4 1 roll } for 4 copy setcolortransfer } if cvlit /orgxfer exch def cvlit /orgbxfer exch def cvlit /orggxfer exch def cvlit /orgrxfer exch def } { currentscreen cvlit /orgproc exch def /organgle exch def /orgfreq exch def currenttransfer FrameNegative { { 1 exch sub } concatprocs dup settransfer } if cvlit /orgxfer exch def } ifelse end } def /pagesave FMLOCAL /orgmatrix FMLOCAL /landscape FMLOCAL /pwid FMLOCAL /FMBEGINPAGE { FrameDict begin /pagesave save def 3.86 setmiterlimit /landscape exch 0 ne def landscape { 90 rotate 0 exch dup /pwid exch def neg translate pop }{ pop /pwid exch def } ifelse edown { [-1 0 0 1 pwid 0] concat } if xscale yscale scale /orgmatrix matrix def gsave } def /FMENDPAGE { grestore pagesave restore end showpage } def /FMFONTDEFINE { FrameDict begin findfont ReEncode 1 index exch definefont FMfonts 3 1 roll put end } def /FMFILLS { FrameDict begin dup array /fillvals exch def dict /patCache exch def end } def /FMFILL { FrameDict begin fillvals 3 1 roll put end } def /FMNORMALIZEGRAPHICS { newpath 0.0 0.0 moveto 1 setlinewidth 0 setlinecap 0 0 0 sethsbcolor 0 setgray } bind def /fx FMLOCAL /fy FMLOCAL /fh FMLOCAL /fw FMLOCAL /llx FMLOCAL /lly FMLOCAL /urx FMLOCAL /ury FMLOCAL /FMBEGINEPSF { end /FMEPSF save def /showpage {} def % See Adobe's "PostScript Language Reference Manual, 2nd Edition", page 714. % "...the following operators MUST NOT be used in an EPS file:" (emphasis ours) /banddevice {(banddevice) FMBADEPSF} def /clear {(clear) FMBADEPSF} def /cleardictstack {(cleardictstack) FMBADEPSF} def /copypage {(copypage) FMBADEPSF} def /erasepage {(erasepage) FMBADEPSF} def /exitserver {(exitserver) FMBADEPSF} def /framedevice {(framedevice) FMBADEPSF} def /grestoreall {(grestoreall) FMBADEPSF} def /initclip {(initclip) FMBADEPSF} def /initgraphics {(initgraphics) FMBADEPSF} def /initmatrix {(initmatrix) FMBADEPSF} def /quit {(quit) FMBADEPSF} def /renderbands {(renderbands) FMBADEPSF} def /setglobal {(setglobal) FMBADEPSF} def /setpagedevice {(setpagedevice) FMBADEPSF} def /setshared {(setshared) FMBADEPSF} def /startjob {(startjob) FMBADEPSF} def /lettertray {(lettertray) FMBADEPSF} def /letter {(letter) FMBADEPSF} def /lettersmall {(lettersmall) FMBADEPSF} def /11x17tray {(11x17tray) FMBADEPSF} def /11x17 {(11x17) FMBADEPSF} def /ledgertray {(ledgertray) FMBADEPSF} def /ledger {(ledger) FMBADEPSF} def /legaltray {(legaltray) FMBADEPSF} def /legal {(legal) FMBADEPSF} def /statementtray {(statementtray) FMBADEPSF} def /statement {(statement) FMBADEPSF} def /executivetray {(executivetray) FMBADEPSF} def /executive {(executive) FMBADEPSF} def /a3tray {(a3tray) FMBADEPSF} def /a3 {(a3) FMBADEPSF} def /a4tray {(a4tray) FMBADEPSF} def /a4 {(a4) FMBADEPSF} def /a4small {(a4small) FMBADEPSF} def /b4tray {(b4tray) FMBADEPSF} def /b4 {(b4) FMBADEPSF} def /b5tray {(b5tray) FMBADEPSF} def /b5 {(b5) FMBADEPSF} def FMNORMALIZEGRAPHICS [/fy /fx /fh /fw /ury /urx /lly /llx] {exch def} forall fx fw 2 div add fy fh 2 div add translate rotate fw 2 div neg fh 2 div neg translate fw urx llx sub div fh ury lly sub div scale llx neg lly neg translate /FMdicttop countdictstack 1 add def /FMoptop count def } bind def /FMENDEPSF { count -1 FMoptop {pop pop} for countdictstack -1 FMdicttop {pop end} for FMEPSF restore FrameDict begin } bind def FrameDict begin /setmanualfeed { statusdict /manualfeed true put } bind def /max {2 copy lt {exch} if pop} bind def /min {2 copy gt {exch} if pop} bind def /inch {72 mul} def /pagedimen { paperheight sub abs 16 lt exch paperwidth sub abs 16 lt and {/papername exch def} {pop} ifelse } bind def /papersizedict FMLOCAL /setpapername { /papersizedict 14 dict def papersizedict begin /papername /unknown def /Letter 8.5 inch 11.0 inch pagedimen /LetterSmall 7.68 inch 10.16 inch pagedimen /Tabloid 11.0 inch 17.0 inch pagedimen /Ledger 17.0 inch 11.0 inch pagedimen /Legal 8.5 inch 14.0 inch pagedimen /Statement 5.5 inch 8.5 inch pagedimen /Executive 7.5 inch 10.0 inch pagedimen /A3 11.69 inch 16.5 inch pagedimen /A4 8.26 inch 11.69 inch pagedimen /A4Small 7.47 inch 10.85 inch pagedimen /B4 10.125 inch 14.33 inch pagedimen /B5 7.16 inch 10.125 inch pagedimen end } bind def /papersize { papersizedict begin /Letter {lettertray letter} def /LetterSmall {lettertray lettersmall} def /Tabloid {11x17tray 11x17} def /Ledger {ledgertray ledger} def /Legal {legaltray legal} def /Statement {statementtray statement} def /Executive {executivetray executive} def /A3 {a3tray a3} def /A4 {a4tray a4} def /A4Small {a4tray a4small} def /B4 {b4tray b4} def /B5 {b5tray b5} def /unknown {unknown} def papersizedict dup papername known {papername} {/unknown} ifelse get end statusdict begin stopped end } bind def /manualpapersize { papersizedict begin /Letter {letter} def /LetterSmall {lettersmall} def /Tabloid {11x17} def /Ledger {ledger} def /Legal {legal} def /Statement {statement} def /Executive {executive} def /A3 {a3} def /A4 {a4} def /A4Small {a4small} def /B4 {b4} def /B5 {b5} def /unknown {unknown} def papersizedict dup papername known {papername} {/unknown} ifelse get end stopped } bind def /desperatepapersize { statusdict /setpageparams known { paperwidth paperheight 0 1 statusdict begin {setpageparams} stopped end } {true} ifelse } bind def /DiacriticEncoding [ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quotesingle /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /grave /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef /Adieresis /Aring /Ccedilla /Eacute /Ntilde /Odieresis /Udieresis /aacute /agrave /acircumflex /adieresis /atilde /aring /ccedilla /eacute /egrave /ecircumflex /edieresis /iacute /igrave /icircumflex /idieresis /ntilde /oacute /ograve /ocircumflex /odieresis /otilde /uacute /ugrave /ucircumflex /udieresis /dagger /.notdef /cent /sterling /section /bullet /paragraph /germandbls /registered /copyright /trademark /acute /dieresis /.notdef /AE /Oslash /.notdef /.notdef /.notdef /.notdef /yen /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /ordfeminine /ordmasculine /.notdef /ae /oslash /questiondown /exclamdown /logicalnot /.notdef /florin /.notdef /.notdef /guillemotleft /guillemotright /ellipsis /.notdef /Agrave /Atilde /Otilde /OE /oe /endash /emdash /quotedblleft /quotedblright /quoteleft /quoteright /.notdef /.notdef /ydieresis /Ydieresis /fraction /currency /guilsinglleft /guilsinglright /fi /fl /daggerdbl /periodcentered /quotesinglbase /quotedblbase /perthousand /Acircumflex /Ecircumflex /Aacute /Edieresis /Egrave /Iacute /Icircumflex /Idieresis /Igrave /Oacute /Ocircumflex /.notdef /Ograve /Uacute /Ucircumflex /Ugrave /dotlessi /circumflex /tilde /macron /breve /dotaccent /ring /cedilla /hungarumlaut /ogonek /caron ] def /ReEncode { dup length dict begin { 1 index /FID ne {def} {pop pop} ifelse } forall 0 eq {/Encoding DiacriticEncoding def} if currentdict end } bind def FMPColor { /BEGINBITMAPCOLOR { BITMAPCOLOR} def /BEGINBITMAPCOLORc { BITMAPCOLORc} def /BEGINBITMAPTRUECOLOR { BITMAPTRUECOLOR } def /BEGINBITMAPTRUECOLORc { BITMAPTRUECOLORc } def } { /BEGINBITMAPCOLOR { BITMAPGRAY} def /BEGINBITMAPCOLORc { BITMAPGRAYc} def /BEGINBITMAPTRUECOLOR { BITMAPTRUEGRAY } def /BEGINBITMAPTRUECOLORc { BITMAPTRUEGRAYc } def } ifelse /K { FMPrintAllColorsAsBlack { dup 1 eq 2 index 1 eq and 3 index 1 eq and not {7 {pop} repeat 0 0 0 1 0 0 0} if } if FrameCurColors astore pop combineColor } bind def /graymode true def /bwidth FMLOCAL /bpside FMLOCAL /bstring FMLOCAL /onbits FMLOCAL /offbits FMLOCAL /xindex FMLOCAL /yindex FMLOCAL /x FMLOCAL /y FMLOCAL /setPatternMode { FMLevel1 { /bwidth exch def /bpside exch def /bstring exch def /onbits 0 def /offbits 0 def freq sangle landscape {90 add} if {/y exch def /x exch def /xindex x 1 add 2 div bpside mul cvi def /yindex y 1 add 2 div bpside mul cvi def bstring yindex bwidth mul xindex 8 idiv add get 1 7 xindex 8 mod sub bitshift and 0 ne FrameNegative {not} if {/onbits onbits 1 add def 1} {/offbits offbits 1 add def 0} ifelse } setscreen offbits offbits onbits add div FrameNegative {1.0 exch sub} if /FrameCurGray exch def } { pop pop dup patCache exch known { patCache exch get } { dup patDict /bstring 3 -1 roll put patDict 9 PatFreq screenIndex get div dup matrix scale makepattern dup patCache 4 -1 roll 3 -1 roll put } ifelse /FrameCurGray 0 def /FrameCurPat exch def } ifelse /graymode false def combineColor } bind def /setGrayScaleMode { graymode not { /graymode true def FMLevel1 { setCurrentScreen } if } if /FrameCurGray exch def combineColor } bind def /normalize { transform round exch round exch itransform } bind def /dnormalize { dtransform round exch round exch idtransform } bind def /lnormalize { 0 dtransform exch cvi 2 idiv 2 mul 1 add exch idtransform pop } bind def /H { lnormalize setlinewidth } bind def /Z { setlinecap } bind def /PFill { graymode FMLevel1 or not { gsave 1 setgray eofill grestore } if } bind def /PStroke { graymode FMLevel1 or not { gsave 1 setgray stroke grestore } if stroke } bind def /fillvals FMLOCAL /X { fillvals exch get dup type /stringtype eq {8 1 setPatternMode} {setGrayScaleMode} ifelse } bind def /V { PFill gsave eofill grestore } bind def /Vclip { clip } bind def /Vstrk { currentlinewidth exch setlinewidth PStroke setlinewidth } bind def /N { PStroke } bind def /Nclip { strokepath clip newpath } bind def /Nstrk { currentlinewidth exch setlinewidth PStroke setlinewidth } bind def /M {newpath moveto} bind def /E {lineto} bind def /D {curveto} bind def /O {closepath} bind def /n FMLOCAL /L { /n exch def newpath normalize moveto 2 1 n {pop normalize lineto} for } bind def /Y { L closepath } bind def /x1 FMLOCAL /x2 FMLOCAL /y1 FMLOCAL /y2 FMLOCAL /R { /y2 exch def /x2 exch def /y1 exch def /x1 exch def x1 y1 x2 y1 x2 y2 x1 y2 4 Y } bind def /rad FMLOCAL /rarc {rad arcto } bind def /RR { /rad exch def normalize /y2 exch def /x2 exch def normalize /y1 exch def /x1 exch def mark newpath { x1 y1 rad add moveto x1 y2 x2 y2 rarc x2 y2 x2 y1 rarc x2 y1 x1 y1 rarc x1 y1 x1 y2 rarc closepath } stopped {x1 y1 x2 y2 R} if cleartomark } bind def /RRR { /rad exch def normalize /y4 exch def /x4 exch def normalize /y3 exch def /x3 exch def normalize /y2 exch def /x2 exch def normalize /y1 exch def /x1 exch def newpath normalize moveto mark { x2 y2 x3 y3 rarc x3 y3 x4 y4 rarc x4 y4 x1 y1 rarc x1 y1 x2 y2 rarc closepath } stopped {x1 y1 x2 y2 x3 y3 x4 y4 newpath moveto lineto lineto lineto closepath} if cleartomark } bind def /C { grestore gsave R clip setCurrentScreen } bind def /CP { grestore gsave Y clip setCurrentScreen } bind def /FMpointsize FMLOCAL /F { FMfonts exch get FMpointsize scalefont setfont } bind def /Q { /FMpointsize exch def F } bind def /T { moveto show } bind def /RF { rotate 0 ne {-1 1 scale} if } bind def /TF { gsave moveto RF show grestore } bind def /P { moveto 0 32 3 2 roll widthshow } bind def /PF { gsave moveto RF 0 32 3 2 roll widthshow grestore } bind def /S { moveto 0 exch ashow } bind def /SF { gsave moveto RF 0 exch ashow grestore } bind def /B { moveto 0 32 4 2 roll 0 exch awidthshow } bind def /BF { gsave moveto RF 0 32 4 2 roll 0 exch awidthshow grestore } bind def /G { gsave newpath normalize translate 0.0 0.0 moveto dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath PFill fill grestore } bind def /Gstrk { savematrix newpath 2 index 2 div add exch 3 index 2 div sub exch normalize 2 index 2 div sub exch 3 index 2 div add exch translate scale 0.0 0.0 1.0 5 3 roll arc restorematrix currentlinewidth exch setlinewidth PStroke setlinewidth } bind def /Gclip { newpath savematrix normalize translate 0.0 0.0 moveto dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath clip newpath restorematrix } bind def /GG { gsave newpath normalize translate 0.0 0.0 moveto rotate dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath PFill fill grestore } bind def /GGclip { savematrix newpath normalize translate 0.0 0.0 moveto rotate dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath clip newpath restorematrix } bind def /GGstrk { savematrix newpath normalize translate 0.0 0.0 moveto rotate dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath restorematrix currentlinewidth exch setlinewidth PStroke setlinewidth } bind def /A { gsave savematrix newpath 2 index 2 div add exch 3 index 2 div sub exch normalize 2 index 2 div sub exch 3 index 2 div add exch translate scale 0.0 0.0 1.0 5 3 roll arc restorematrix PStroke grestore } bind def /Aclip { newpath savematrix normalize translate 0.0 0.0 moveto dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath strokepath clip newpath restorematrix } bind def /Astrk { Gstrk } bind def /AA { gsave savematrix newpath 3 index 2 div add exch 4 index 2 div sub exch normalize 3 index 2 div sub exch 4 index 2 div add exch translate rotate scale 0.0 0.0 1.0 5 3 roll arc restorematrix PStroke grestore } bind def /AAclip { savematrix newpath normalize translate 0.0 0.0 moveto rotate dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath strokepath clip newpath restorematrix } bind def /AAstrk { GGstrk } bind def /x FMLOCAL /y FMLOCAL /w FMLOCAL /h FMLOCAL /xx FMLOCAL /yy FMLOCAL /ww FMLOCAL /hh FMLOCAL /FMsaveobject FMLOCAL /FMoptop FMLOCAL /FMdicttop FMLOCAL /BEGINPRINTCODE { /FMdicttop countdictstack 1 add def /FMoptop count 7 sub def /FMsaveobject save def userdict begin /showpage {} def FMNORMALIZEGRAPHICS 3 index neg 3 index neg translate } bind def /ENDPRINTCODE { count -1 FMoptop {pop pop} for countdictstack -1 FMdicttop {pop end} for FMsaveobject restore } bind def /gn { 0 { 46 mul cf read pop 32 sub dup 46 lt {exit} if 46 sub add } loop add } bind def /str FMLOCAL /cfs { /str sl string def 0 1 sl 1 sub {str exch val put} for str def } bind def /ic [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0223 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0223 0 {0 hx} {1 hx} {2 hx} {3 hx} {4 hx} {5 hx} {6 hx} {7 hx} {8 hx} {9 hx} {10 hx} {11 hx} {12 hx} {13 hx} {14 hx} {15 hx} {16 hx} {17 hx} {18 hx} {19 hx} {gn hx} {0} {1} {2} {3} {4} {5} {6} {7} {8} {9} {10} {11} {12} {13} {14} {15} {16} {17} {18} {19} {gn} {0 wh} {1 wh} {2 wh} {3 wh} {4 wh} {5 wh} {6 wh} {7 wh} {8 wh} {9 wh} {10 wh} {11 wh} {12 wh} {13 wh} {14 wh} {gn wh} {0 bl} {1 bl} {2 bl} {3 bl} {4 bl} {5 bl} {6 bl} {7 bl} {8 bl} {9 bl} {10 bl} {11 bl} {12 bl} {13 bl} {14 bl} {gn bl} {0 fl} {1 fl} {2 fl} {3 fl} {4 fl} {5 fl} {6 fl} {7 fl} {8 fl} {9 fl} {10 fl} {11 fl} {12 fl} {13 fl} {14 fl} {gn fl} ] def /sl FMLOCAL /val FMLOCAL /ws FMLOCAL /im FMLOCAL /bs FMLOCAL /cs FMLOCAL /len FMLOCAL /pos FMLOCAL /ms { /sl exch def /val 255 def /ws cfs /im cfs /val 0 def /bs cfs /cs cfs } bind def 400 ms /ip { is 0 cf cs readline pop { ic exch get exec add } forall pop } bind def /rip { bis ris copy pop is 0 cf cs readline pop { ic exch get exec add } forall pop pop ris gis copy pop dup is exch cf cs readline pop { ic exch get exec add } forall pop pop gis bis copy pop dup add is exch cf cs readline pop { ic exch get exec add } forall pop } bind def /wh { /len exch def /pos exch def ws 0 len getinterval im pos len getinterval copy pop pos len } bind def /bl { /len exch def /pos exch def bs 0 len getinterval im pos len getinterval copy pop pos len } bind def /s1 1 string def /fl { /len exch def /pos exch def /val cf s1 readhexstring pop 0 get def pos 1 pos len add 1 sub {im exch val put} for pos len } bind def /hx { 3 copy getinterval cf exch readhexstring pop pop } bind def /h FMLOCAL /w FMLOCAL /d FMLOCAL /lb FMLOCAL /bitmapsave FMLOCAL /is FMLOCAL /cf FMLOCAL /wbytes { dup dup 24 eq { pop pop 3 mul } { 8 eq {pop} {1 eq {7 add 8 idiv} {3 add 4 idiv} ifelse} ifelse } ifelse } bind def /BEGINBITMAPBWc { 1 {} COMMONBITMAPc } bind def /BEGINBITMAPGRAYc { 8 {} COMMONBITMAPc } bind def /BEGINBITMAP2BITc { 2 {} COMMONBITMAPc } bind def /COMMONBITMAPc { /r exch def /d exch def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /h exch def /w exch def /lb w d wbytes def sl lb lt {lb ms} if /bitmapsave save def r /is im 0 lb getinterval def ws 0 lb getinterval is copy pop /cf currentfile def w h d [w 0 0 h neg 0 h] {ip} image bitmapsave restore grestore } bind def /BEGINBITMAPBW { 1 {} COMMONBITMAP } bind def /BEGINBITMAPGRAY { 8 {} COMMONBITMAP } bind def /BEGINBITMAP2BIT { 2 {} COMMONBITMAP } bind def /COMMONBITMAP { /r exch def /d exch def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /h exch def /w exch def /bitmapsave save def r /is w d wbytes string def /cf currentfile def w h d [w 0 0 h neg 0 h] {cf is readhexstring pop} image bitmapsave restore grestore } bind def /ngrayt 256 array def /nredt 256 array def /nbluet 256 array def /ngreent 256 array def /gryt FMLOCAL /blut FMLOCAL /grnt FMLOCAL /redt FMLOCAL /indx FMLOCAL /cynu FMLOCAL /magu FMLOCAL /yelu FMLOCAL /k FMLOCAL /u FMLOCAL FMLevel1 { /colorsetup { currentcolortransfer /gryt exch def /blut exch def /grnt exch def /redt exch def 0 1 255 { /indx exch def /cynu 1 red indx get 255 div sub def /magu 1 green indx get 255 div sub def /yelu 1 blue indx get 255 div sub def /k cynu magu min yelu min def /u k currentundercolorremoval exec def % /u 0 def nredt indx 1 0 cynu u sub max sub redt exec put ngreent indx 1 0 magu u sub max sub grnt exec put nbluet indx 1 0 yelu u sub max sub blut exec put ngrayt indx 1 k currentblackgeneration exec sub gryt exec put } for {255 mul cvi nredt exch get} {255 mul cvi ngreent exch get} {255 mul cvi nbluet exch get} {255 mul cvi ngrayt exch get} setcolortransfer {pop 0} setundercolorremoval {} setblackgeneration } bind def } { /colorSetup2 { [ /Indexed /DeviceRGB 255 {dup red exch get 255 div exch dup green exch get 255 div exch blue exch get 255 div} ] setcolorspace } bind def } ifelse /tran FMLOCAL /fakecolorsetup { /tran 256 string def 0 1 255 {/indx exch def tran indx red indx get 77 mul green indx get 151 mul blue indx get 28 mul add add 256 idiv put} for currenttransfer {255 mul cvi tran exch get 255.0 div} exch concatprocs settransfer } bind def /BITMAPCOLOR { /d 8 def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /h exch def /w exch def /bitmapsave save def FMLevel1 { colorsetup /is w d wbytes string def /cf currentfile def w h d [w 0 0 h neg 0 h] {cf is readhexstring pop} {is} {is} true 3 colorimage } { colorSetup2 /is w d wbytes string def /cf currentfile def 7 dict dup begin /ImageType 1 def /Width w def /Height h def /ImageMatrix [w 0 0 h neg 0 h] def /DataSource {cf is readhexstring pop} bind def /BitsPerComponent d def /Decode [0 255] def end image } ifelse bitmapsave restore grestore } bind def /BITMAPCOLORc { /d 8 def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /h exch def /w exch def /lb w d wbytes def sl lb lt {lb ms} if /bitmapsave save def FMLevel1 { colorsetup /is im 0 lb getinterval def ws 0 lb getinterval is copy pop /cf currentfile def w h d [w 0 0 h neg 0 h] {ip} {is} {is} true 3 colorimage } { colorSetup2 /is im 0 lb getinterval def ws 0 lb getinterval is copy pop /cf currentfile def 7 dict dup begin /ImageType 1 def /Width w def /Height h def /ImageMatrix [w 0 0 h neg 0 h] def /DataSource {ip} bind def /BitsPerComponent d def /Decode [0 255] def end image } ifelse bitmapsave restore grestore } bind def /BITMAPTRUECOLORc { /d 24 def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /h exch def /w exch def /lb w d wbytes def sl lb lt {lb ms} if /bitmapsave save def /is im 0 lb getinterval def /ris im 0 w getinterval def /gis im w w getinterval def /bis im w 2 mul w getinterval def ws 0 lb getinterval is copy pop /cf currentfile def w h 8 [w 0 0 h neg 0 h] {w rip pop ris} {gis} {bis} true 3 colorimage bitmapsave restore grestore } bind def /BITMAPTRUECOLOR { gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /h exch def /w exch def /bitmapsave save def /is w string def /gis w string def /bis w string def /cf currentfile def w h 8 [w 0 0 h neg 0 h] { cf is readhexstring pop } { cf gis readhexstring pop } { cf bis readhexstring pop } true 3 colorimage bitmapsave restore grestore } bind def /BITMAPTRUEGRAYc { /d 24 def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /h exch def /w exch def /lb w d wbytes def sl lb lt {lb ms} if /bitmapsave save def /is im 0 lb getinterval def /ris im 0 w getinterval def /gis im w w getinterval def /bis im w 2 mul w getinterval def ws 0 lb getinterval is copy pop /cf currentfile def w h 8 [w 0 0 h neg 0 h] {w rip pop ris gis bis w gray} image bitmapsave restore grestore } bind def /ww FMLOCAL /r FMLOCAL /g FMLOCAL /b FMLOCAL /i FMLOCAL /gray { /ww exch def /b exch def /g exch def /r exch def 0 1 ww 1 sub { /i exch def r i get .299 mul g i get .587 mul b i get .114 mul add add r i 3 -1 roll floor cvi put } for r } bind def /BITMAPTRUEGRAY { gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /h exch def /w exch def /bitmapsave save def /is w string def /gis w string def /bis w string def /cf currentfile def w h 8 [w 0 0 h neg 0 h] { cf is readhexstring pop cf gis readhexstring pop cf bis readhexstring pop w gray} image bitmapsave restore grestore } bind def /BITMAPGRAY { 8 {fakecolorsetup} COMMONBITMAP } bind def /BITMAPGRAYc { 8 {fakecolorsetup} COMMONBITMAPc } bind def /ENDBITMAP { } bind def end /ALDsave FMLOCAL /ALDmatrix matrix def ALDmatrix currentmatrix pop /StartALD { /ALDsave save def savematrix ALDmatrix setmatrix } bind def /InALD { restorematrix } bind def /DoneALD { ALDsave restore } bind def /I { setdash } bind def /J { [] 0 setdash } bind def (4.0) FMVERSION 1 1 0 0 612 792 0 1 2 FMDOCUMENT 0 0 /Times-Roman FMFONTDEFINE 1 0 /Times-BoldItalic FMFONTDEFINE 32 FMFILLS 0 0 FMFILL 1 0.1 FMFILL 2 0.3 FMFILL 3 0.5 FMFILL 4 0.7 FMFILL 5 0.9 FMFILL 6 0.97 FMFILL 7 1 FMFILL 8 <0f1e3c78f0e1c387> FMFILL 9 <0f87c3e1f0783c1e> FMFILL 10 FMFILL 11 FMFILL 12 <8142241818244281> FMFILL 13 <03060c183060c081> FMFILL 14 <8040201008040201> FMFILL 16 1 FMFILL 17 0.9 FMFILL 18 0.7 FMFILL 19 0.5 FMFILL 20 0.3 FMFILL 21 0.1 FMFILL 22 0.03 FMFILL 23 0 FMFILL 24 FMFILL 25 FMFILL 26 <3333333333333333> FMFILL 27 <0000ffff0000ffff> FMFILL 28 <7ebddbe7e7dbbd7e> FMFILL 29 FMFILL 30 <7fbfdfeff7fbfdfe> FMFILL 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 0 0 0 1 1 1] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 8 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K J 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 3 H 2 Z 0 X 0 0 0 1 0 0 0 K 90 450 18 45 261 233.18 A 90 450 18 45 281.68 543.66 A 7 X 90 450 31.5 27 256.5 191.6 G 0.5 H 0 X 90 450 31.5 27 256.5 191.6 A 7 X 90 450 31.5 27 40.5 191.6 G 0 X 90 450 31.5 27 40.5 191.6 A 3 H 0 90 99 45 135 209.6 A 75.59 226.99 63 209.62 64.47 231.02 70.03 229.01 4 Y V 90 154.47 72 45 135 209.6 A 0 12 Q (PrefBSMRxd; FwdBSM, [1][2][3]) 213.68 289.79 T (TExp) 162 263.6 T 180 270 99 45 162 173.6 A 221.41 156.24 233.99 173.62 232.53 152.21 226.97 154.22 4 Y V 270 334.47 72 45 162 173.6 A (BSMRxd; FwdBSM, [1][2][3]) 108 110.6 T 7 X 90 450 40.5 26.59 277.18 499.07 G 0.5 H 0 X 90 450 40.5 26.59 277.18 499.07 A 3 H 90 450 18 45 47.68 544.47 A 7 X 90 450 31.5 27 52.18 499.47 G 0.5 H 0 X 90 450 31.5 27 52.18 499.47 A 70.84 535.47 65.68 517.47 60.51 535.47 65.68 535.47 4 Y V 65.68 535.47 65.68 535.47 2 L 3 H N 90 180 99 36.82 171 522 A 241.53 535.23 242.99 513.82 230.4 531.2 235.97 533.21 4 Y V 25.53 90 72 45 171 513.82 A (PrefBSMRxd; FwdBSM, [1][2][3]) 20.68 598.47 T 270 360 99 45 146.68 481.47 A 76.14 460.07 74.68 481.48 87.26 464.1 81.7 462.09 4 Y V 205.53 270 72 45 146.68 481.47 A (PrefBSMRxd; FwdBSM, [1][2][3]) 119.68 418.47 T (AxptPref) 234 189 T (AxptAny) 18 189.82 T 1 14 Q (State transition diagram for a router not con\336gured as C-BSR) 10.75 56.84 T 0 12 Q (CandBSR) 29.68 498.66 T (Elected BSR) 245.68 498.66 T 304.84 534.66 299.68 516.66 294.52 534.66 299.68 534.66 4 Y V 299.68 534.66 299.68 534.66 2 L N (TExp; OrigBSM,[4]) 137.68 570.66 T (TExp; OrigBSM,[4]) 272.68 597.66 T 1 14 Q (State transition diagram for a Candidate BSR) 11.68 363.66 T 0 12 Q (Initial state: AxptAny; LclBSR = 0, LclRP-Set = empty) 36 81 T (Initial state: CandBSR; LclBSR = Local address, LclRP-Set = empty) 9 388.63 T (\050b\051) 157.68 29.6 T (\050a\051) 144 335.6 T 284.16 224.18 279 206.18 273.84 224.18 279 224.18 4 Y V 279 224.18 279 224.18 2 L N 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K FMENDPAGE %%EndDocument @endspecial 290 4048 a(Figure)h(4:)41 b(State)32 b(Diagram)e(for)g (the)h(BSR)f(election)g(and)g(RP-Set)h(distribution)c(mec)m(hanisms)17 4256 y(Eac)m(h)35 b(PIM)f(router)g(k)m(eeps)h(a)f(b)s(o)s (otstrap-timer,)h(initialized)c(to)k([Bo)s(otstrap-Timeout],)i(in)c (addition)f(to)j(a)g(lo)s(cal)-125 4369 y(BSR)c(\014eld)f Ff(`L)-5 b(clBSR')32 b Fk(\(initialized)d(to)j(a)f(lo)s(cal)g(address)f (if)g(Candidate-BSR,)h(or)g(to)h(0)g(otherwise\),)g(and)e(a)i(lo)s(cal) e(RP-)-125 4482 y(Set)i Ff(`L)-5 b(clRP-Set')30 b Fk(\(initially)e (empt)m(y\).)43 b(The)30 b(main)g(stim)m(uli)e(to)k(the)f(state)h(mac)m (hine)f(are)g(timer)f(ev)m(en)m(ts)j(and)d(arriv)-5 b(al)29 b(of)-125 4595 y(b)s(o)s(otstrap)h(messages:)p eop %%Page: 47 48 47 47 bop -125 -149 a Fh(draft-ietf-idmr-PIM-SM-sp)s(ec-10.ps)2673 b Fk(47)-125 149 y Fn(Initial)35 b(States)f(and)h(Timer)e(Ev)m(en)m(ts) -13 321 y Fk(1.)46 b(If)30 b(the)g(router)g(is)g(a)h(Candidate-BSR:)141 509 y(\(a\))47 b(The)23 b(router)h(op)s(erates)h(initially)c(in)h(the)j (`CandBSR')e(state,)k(where)d(it)f(do)s(es)h(not)h(originate)e(an)m(y)i (b)s(o)s(otstrap)303 622 y(messages.)136 735 y(\(b\))46 b(If)39 b(the)h(b)s(o)s(otstrap-timer)e(expires,)k(and)d(the)g(curren)m (t)h(state)h(is)d(`CandBSR',)i(the)f(router)h(originates)f(a)303 847 y(b)s(o)s(otstrap)33 b(message)i(carrying)e(the)h(lo)s(cal)f (RP-Set)h(and)f(its)g(o)m(wn)h(BSR)g(priorit)m(y)e(and)h(address,)h (restarts)303 960 y(the)h(b)s(o)s(otstrap-timer)f(at)h([Bo)s(otstrap-P) m(erio)s(d])h(seconds,)g(and)e(transits)g(in)m(to)h(the)g(`ElectedBSR') g(state.)303 1073 y(Note)d(that)g(the)g(actual)g(sending)d(of)j(the)f (b)s(o)s(otstrap)g(message)i(ma)m(y)f(b)s(e)f(dela)m(y)m(ed)g(b)m(y)h (a)f(random)g(v)-5 b(alue)31 b(to)303 1186 y(reduce)j(transien)m(t)g (con)m(trol)h(o)m(v)m(erhead.)53 b(T)-8 b(o)35 b(obtain)f(b)s(est)g (results,)g(the)g(random)g(v)-5 b(alue)34 b(is)f(set)i(suc)m(h)f(that) 303 1299 y(the)f(preferred)e(BSR)i(is)f(the)h(\014rst)f(to)h(originate) f(a)i(b)s(o)s(otstrap)e(message.)49 b(W)-8 b(e)34 b(prop)s(ose)e(the)h (follo)m(wing)e(as)303 1412 y(an)f(e\016cien)m(t)h(implemen)m(tation)e (of)h(the)h(random)f(v)-5 b(alue)29 b(dela)m(y)i(\(in)e(seconds\):)816 1616 y Fc(D)s(el)r(ay)f Fk(=)d(5)c(+)f(2)h Fd(\003)f Fc(l)r(og)1586 1630 y Fl(2)1626 1616 y Fk(\(1)h(+)f Fc(bestP)13 b(r)s(ior)s(ity)22 b Fd(\000)e Fc(my)s(P)13 b(r)s(ior)s(ity)s Fk(\))20 b(+)g Fc(Addr)s(D)s(el)r(ay)303 1820 y Fk(where)30 b Ff(myPriority)h Fk(is)f(the)g(Candidate-BSR's)g(con\014gured)g (priorit)m(y)-8 b(,)29 b(and)h Ff(b)-5 b(estPriority)31 b Fk(equals:)1157 2025 y Fc(bestP)13 b(r)s(ior)s(ity)28 b Fk(=)d Fc(M)10 b(ax)p Fk(\()p Fc(stor)s(edP)j(r)s(ior)s(ity)s(;)i(my) s(P)e(r)s(ior)s(ity)s Fk(\))303 2246 y(and)30 b Ff(A)-5 b(ddrDelay)31 b Fk(is)f(giv)m(en)g(b)m(y)g(the)h(follo)m(wing:)377 2392 y(i.)45 b(if)29 b(\()p Ff(b)-5 b(estPriority)32 b Fk(equals)e Ff(myPriority)p Fk(\))i(then)1360 2596 y Fc(Addr)s(D)s(el)r(ay)c Fk(=)d Fc(l)r(og)2048 2610 y Fl(2)2088 2596 y Fk(\()p Fc(bestAddr)f Fd(\000)c Fc(my)s(Addr)s Fk(\))p Fc(=)p Fk(16)p Fc(;)352 2800 y Fk(ii.)44 b(else)1594 2913 y Fc(Addr)s(D)s(el)r(ay)29 b Fk(=)c(2)c Fd(\000)e Fk(\()p Fc(my)s(Addr)s(=)p Fk(2)2782 2875 y Fl(31)2858 2913 y Fk(\))303 3080 y(where)30 b Ff(myA)-5 b(ddr)32 b Fk(is)d(the)i(Candidate-BSR's)e(address,)h(and)g Ff(b)-5 b(estA)g(ddr)32 b Fk(is)d(the)i(stored)f(BSR's)g(address.)146 3193 y(\(c\))47 b(If)33 b(the)g(b)s(o)s(otstrap-timer)g(expires,)g(and) g(the)h(curren)m(t)f(state)i(is)d(`ElectedBSR',)i(the)g(router)f (originates)g(a)303 3306 y(b)s(o)s(otstrap)f(message,)k(and)c(restarts) i(the)f(RP-Set)h(timer)e(at)i([Bo)s(otstrap-P)m(erio)s(d].)51 b(No)33 b(state)i(transition)303 3419 y(is)29 b(incurred.)303 3548 y(This)f(w)m(a)m(y)-8 b(,)32 b(the)f(elected)g(BSR)f(originates)g (p)s(erio)s(dic)e(b)s(o)s(otstrap)i(messages)h(ev)m(ery)g([Bo)s (otstrap-P)m(erio)s(d].)-13 3719 y(2.)46 b(If)30 b(a)g(router)h(is)e (not)i(a)f(Candidate-BSR:)141 3907 y(\(a\))47 b(The)32 b(router)g(op)s(erates)h(initially)d(in)h(the)i(`AxptAn)m(y')g(state.) 49 b(In)32 b(suc)m(h)g(state,)j(a)e(router)f(accepts)i(the)f(\014rst) 303 4020 y(b)s(o)s(otstrap)21 b(message)i(from)f(the)g(The)f(Rev)m (erse)i(P)m(ath)f(F)-8 b(orw)m(arding)22 b(\(RPF\))h(neigh)m(b)s(or)d (to)m(w)m(ard)j(the)f(included)303 4133 y(BSR.)30 b(The)g(RPF)g(neigh)m (b)s(or)f(in)g(this)h(case)h(is)f(the)g(next)h(hop)e(router)i(en)f (route)h(to)g(the)f(included)e(BSR.)136 4246 y(\(b\))46 b(If)32 b(the)h(b)s(o)s(otstrap-timer)f(expires,)g(and)g(the)h(curren)m (t)f(state)j(is)c(`AxptPref)7 b('{)34 b(where)e(the)h(router)f(accepts) 303 4358 y(only)c(preferred)f(b)s(o)s(otstrap)i(messages)g(\(those)h (that)f(carry)g(BSR-priorit)m(y)f(and)g(address)g(higher)f(than,)i(or) 303 4471 y(equal)e(to,)i Ff(`L)-5 b(clBSR')p Fk(\))28 b(from)f(the)g(RPF)g(neigh)m(b)s(or)f(to)m(w)m(ard)j(the)e(included)e (BSR{)i(the)h(router)f(transits)f(in)m(to)303 4584 y(the)k(`AxptAn)m (y')h(state.)303 4714 y(In)38 b(this)g(case,)43 b(if)38 b(an)h(elected)g(BSR)g(b)s(ecomes)h(unreac)m(hable,)g(the)g(routers)e (start)i(accepting)g(b)s(o)s(otstrap)303 4827 y(messages)h(from)f (another)h(Candidate-BSR)e(after)i(the)g(b)s(o)s(otstrap-timer)e (expires.)70 b(All)39 b(PIM)i(routers)303 4940 y(within)28 b(a)i(domain)g(con)m(v)m(erge)i(on)e(the)h(preferred)e(reac)m(hable)i (Candidate-BSR.)p eop %%Page: 48 49 48 48 bop -125 -149 a Fh(draft-ietf-idmr-PIM-SM-sp)s(ec-10.ps)2673 b Fk(48)-125 149 y Fn(Receiving)37 b(Bo)s(otstrap)e(Message)-125 321 y Fk(T)-8 b(o)36 b(a)m(v)m(oid)f(lo)s(ops,)g(an)g(RPF)g(c)m(hec)m (k)i(is)c(p)s(erformed)h(on)h(the)g(included)d(BSR)i(address.)54 b(Up)s(on)34 b(receiving)g(a)h(b)s(o)s(otstrap)-125 434 y(message)d(from)e(the)g(RPF)h(neigh)m(b)s(or)e(to)m(w)m(ard)i(the)g (included)c(BSR,)k(the)f(follo)m(wing)f(actions)i(are)f(tak)m(en:)-13 605 y(1.)46 b(If)30 b(the)g(router)g(is)g(not)g(a)h(Candidate-BSR:)141 793 y(\(a\))47 b(If)30 b(the)h(curren)m(t)g(state)h(is)e(`AxptAn)m(y',) i(the)f(router)g(accepts)h(the)f(b)s(o)s(otstrap)g(message,)h(and)e (transits)g(in)m(to)303 906 y(the)g(`AxptPref)7 b(')31 b(state.)136 1018 y(\(b\))46 b(If)c(the)i(curren)m(t)f(state)h(is)e (`AxptPref)7 b(',)47 b(and)c(the)g(b)s(o)s(otstrap)g(message)h(is)e (preferred,)k(the)d(message)h(is)303 1131 y(accepted.)e(No)31 b(state)g(transition)e(is)h(incurred.)-13 1302 y(2.)46 b(If)28 b(the)i(router)e(is)h(a)g(Candidate-BSR,)f(and)h(the)g(b)s(o)s (otstrap)g(message)h(is)e(preferred,)g(the)i(message)g(is)e(accepted.) 103 1415 y(F)-8 b(urther,)29 b(if)g(this)f(happ)s(ens)g(when)g(the)i (curren)m(t)f(state)i(is)e(`Elected)h(BSR',)f(the)h(router)f(transits)g (in)m(to)h(the)f(`Can-)103 1528 y(dBSR')h(state.)17 1716 y(When)20 b(a)g(b)s(o)s(otstrap)g(message)i(is)d(accepted,)24 b(the)c(router)g(restarts)h(the)f(b)s(o)s(otstrap-timer)g(at)h([Bo)s (otstrap-Timeout],)-125 1829 y(stores)35 b(the)f(receiv)m(ed)g(BSR)g (priorit)m(y)e(and)i(address)f(in)g Ff(`L)-5 b(clBSR')p Fk(,)34 b(and)g(the)g(receiv)m(ed)g(RP-Set)g(in)f Ff(`L)-5 b(clRP-Set')p Fk(,)35 b(and)-125 1942 y(forw)m(ards)30 b(the)h(b)s(o)s(otstrap)f(message)h(out)g(all)e(in)m(terfaces)i(except) g(the)g(receiving)e(in)m(terface.)17 2055 y(If)h(a)g(b)s(o)s(otstrap)g (message)i(is)d(rejected,)i(no)g(state)g(transitions)e(are)i (triggered.)p eop %%Page: 49 50 49 49 bop -125 -149 a Fh(draft-ietf-idmr-PIM-SM-sp)s(ec-10.ps)2673 b Fk(49)-125 149 y Fe(6.3)113 b(App)s(endix)37 b(I)s(I)s(I:)g(Glossary) h(of)f(T)-9 b(erms)-125 321 y Fk(F)h(ollo)m(wing)30 b(is)g(an)g(alphab) s(etized)f(list)g(of)h(terms)h(and)e(de\014nitions)f(used)i(throughout) g(this)f(sp)s(eci\014cation.)12 487 y Fd(\017)46 b Fn(Bo)s(otstrap)c (router)g(\(BSR\))p Fk(.)36 b(A)h(BSR)f(is)g(a)g(dynamically)f(elected) i(router)f(within)e(a)j(PIM)f(domain.)58 b(It)36 b(is)103 600 y(resp)s(onsible)27 b(for)j(constructing)g(the)h(RP-Set)f(and)g (originating)f(Bo)s(otstrap)i(messages.)12 779 y Fd(\017)46 b Fn(Candidate-BSR)40 b(\(C-BSR\))p Fk(.)c(A)g(C-BSR)f(is)g(a)h(router) f(con\014gured)g(to)i(participate)e(in)f(the)i(BSR)f(election)103 892 y(and)30 b(act)h(as)g(BSRs)f(if)f(elected.)12 1071 y Fd(\017)46 b Fn(Candidate)22 b(RP)i(\(C-RP\))p Fk(.)c(A)g(C-RP)g(is)g (a)g(router)g(con\014gured)g(to)h(send)f(p)s(erio)s(dic)d (Candidate-RP-Adv)m(ertisemen)m(t)103 1184 y(messages)33 b(to)g(the)g(BSR,)f(and)g(act)i(as)e(an)h(RP)f(when)f(it)h(receiv)m(es) h(Join/Prune)e(or)h(Register)h(messages)g(for)f(the)103 1297 y(adv)m(ertised)e(group)g(pre\014x.)12 1476 y Fd(\017)46 b Fn(Designated)k(Router)g(\(DR\))p Fk(.)43 b(The)g(DR)g(sets)h(up)e(m) m(ulticast)h(route)g(en)m(tries)g(and)g(sends)f(corresp)s(onding)103 1589 y(Join/Prune)37 b(and)h(Register)g(messages)i(on)e(b)s(ehalf)f(of) i(directly-connected)g(receiv)m(ers)g(and)f(sources,)i(resp)s(ec-)103 1702 y(tiv)m(ely)-8 b(.)39 b(The)26 b(DR)h(ma)m(y)h(or)e(ma)m(y)i(not)f (b)s(e)f(the)g(same)i(router)e(as)h(the)g(IGMP)g(Querier.)38 b(The)26 b(DR)h(ma)m(y)g(or)g(ma)m(y)g(not)103 1815 y(b)s(e)h(the)h (long-term,)g(last-hop)g(router)g(for)f(the)h(group;)g(a)h(router)e(on) h(the)g(LAN)g(that)h(has)e(a)h(lo)m(w)m(er)h(metric)e(route)103 1927 y(to)j(the)f(data)h(source,)g(or)g(to)g(the)f(group's)g(RP)-8 b(,)31 b(ma)m(y)g(tak)m(e)h(o)m(v)m(er)g(the)e(role)g(of)h(sending)e (Join/Prune)f(messages.)12 2107 y Fd(\017)46 b Fn(Incoming)40 b(in)m(terface)h(\(iif)10 b(\))p Fk(.)56 b(The)35 b(iif)e(of)j(a)g(m)m (ulticast)f(route)h(en)m(try)f(indicates)g(the)h(in)m(terface)g(from)f (whic)m(h)103 2219 y(m)m(ulticast)29 b(data)h(pac)m(k)m(ets)i(are)e (accepted)h(for)e(forw)m(arding.)40 b(The)29 b(iif)f(is)g(initialized)f (when)i(the)g(en)m(try)h(is)f(created.)12 2398 y Fd(\017)46 b Fn(Join)26 b(list)p Fk(.)37 b(The)22 b(Join)f(list)g(is)g(one)i(of)f (t)m(w)m(o)h(lists)e(of)h(addresses)g(that)h(is)e(included)e(in)i(a)i (Join/Prune)d(message;)26 b(eac)m(h)103 2511 y(address)h(refers)h(to)g (a)h(source)f(or)g(RP)-8 b(.)28 b(It)h(indicates)e(those)h(sources)g (or)g(RPs)g(to)h(whic)m(h)d(do)m(wnstream)i(receiv)m(er\(s\))103 2624 y(wish)g(to)j(join.)12 2803 y Fd(\017)46 b Fn(Last-hop)38 b(router)p Fk(.)50 b(The)32 b(last-hop)h(router)h(is)e(the)i(last)f (router)g(to)h(receiv)m(e)h(m)m(ulticast)d(data)j(pac)m(k)m(ets)g(b)s (efore)103 2916 y(they)27 b(are)h(deliv)m(ered)f(to)h (directly-connected)f(mem)m(b)s(er)g(hosts.)40 b(In)27 b(general)g(the)h(last-hop)f(router)h(is)e(the)i(DR)g(for)103 3029 y(the)e(LAN.)g(Ho)m(w)m(ev)m(er,)j(under)24 b(v)-5 b(arious)25 b(conditions)f(describ)s(ed)f(in)i(this)f(do)s(cumen)m(t)i (a)g(parallel)e(router)i(connected)103 3142 y(to)31 b(the)f(same)h(LAN) g(ma)m(y)g(tak)m(e)h(o)m(v)m(er)f(as)g(the)f(last-hop)g(router)h(in)e (place)h(of)h(the)f(DR.)12 3321 y Fd(\017)46 b Fn(Outgoing)33 b(in)m(terface)f(\(oif)10 b(\))33 b(list)p Fk(.)40 b(Eac)m(h)29 b(m)m(ulticast)f(route)h(en)m(try)f(has)h(an)f(oif)g(list)f(con)m (taining)h(the)h(outgoing)103 3434 y(in)m(terfaces)i(to)g(whic)m(h)e(m) m(ulticast)h(pac)m(k)m(ets)i(should)c(b)s(e)i(forw)m(arded.)12 3613 y Fd(\017)46 b Fn(Prune)28 b(List)p Fk(.)38 b(The)23 b(Prune)g(list)g(is)g(the)h(second)g(list)e(of)i(addresses)g(that)g(is) f(included)e(in)i(a)h(Join/Prune)e(message.)103 3726 y(It)30 b(indicates)g(those)g(sources)h(or)f(RPs)g(from)g(whic)m(h)f (do)m(wnstream)h(receiv)m(er\(s\))i(wish)c(to)k(prune.)12 3905 y Fd(\017)46 b Fn(PIM)29 b(Multicast)g(Border)h(Router)g(\(PMBR\)) p Fk(.)c(A)f(PMBR)h(connects)g(a)g(PIM)f(domain)f(to)i(other)g(m)m (ulticast)103 4018 y(routing)j(domain\(s\).)12 4197 y Fd(\017)46 b Fn(Rendezv)m(ous)31 b(P)m(oin)m(t)g(\(RP\))p Fk(.)c(Eac)m(h)f(m)m(ulticast)g(group)g(has)g(a)g(shared-tree)h(via)e (whic)m(h)g(receiv)m(ers)i(hear)f(of)g(new)103 4310 y(sources)37 b(and)g(new)f(receiv)m(ers)i(hear)f(of)h(all)e(sources.)61 b(The)37 b(RP)g(is)f(the)i(ro)s(ot)f(of)h(this)e(p)s(er-group)g(shared) g(tree,)103 4423 y(called)29 b(the)i(RP-T)-8 b(ree.)12 4602 y Fd(\017)46 b Fn(RP-Set)p Fk(.)60 b(The)36 b(RP-Set)h(is)f(a)h (set)g(of)g(RP)f(addresses)g(constructed)h(b)m(y)g(the)g(BSR)f(based)h (on)f(Candidate-RP)103 4715 y(adv)m(ertisemen)m(ts)h(receiv)m(ed.)60 b(The)37 b(RP-Set)g(information)e(is)h(distributed)e(to)j(all)f(PIM)h (routers)f(in)g(the)h(BSR's)103 4827 y(PIM)30 b(domain.)12 5006 y Fd(\017)46 b Fn(Rev)m(erse)33 b(P)m(ath)g(F)-9 b(orw)m(arding)32 b(\(RPF\))p Fk(.)d(RPF)f(is)g(used)f(to)i(select)g (the)g(appropriate)e(incoming)g(in)m(terface)i(for)103 5119 y(a)35 b(m)m(ulticast)f(route)h(en)m(try)g(.)53 b(The)34 b(RPF)g(neigh)m(b)s(or)g(for)g(an)g(address)g(X)h(is)e(the)i (the)g(next-hop)f(router)h(used)f(to)103 5232 y(forw)m(ard)23 b(pac)m(k)m(ets)j(to)m(w)m(ard)f(X.)f(The)f(RPF)h(in)m(terface)g(is)f (the)h(in)m(terface)h(to)f(that)h(RPF)f(neigh)m(b)s(or.)37 b(In)23 b(the)h(common)103 5345 y(case)35 b(this)e(is)g(the)h(next)g (hop)g(used)f(b)m(y)h(the)g(unicast)g(routing)f(proto)s(col)h(for)g (sending)e(unicast)i(pac)m(k)m(ets)h(to)m(w)m(ard)103 5458 y(X.)30 b(F)-8 b(or)30 b(example,)g(in)f(cases)h(where)g(unicast)f (and)g(m)m(ulticast)g(routes)h(are)g(not)g(congruen)m(t,)h(it)e(can)i (b)s(e)e(di\013eren)m(t.)p eop %%Page: 50 51 50 50 bop -125 -149 a Fh(draft-ietf-idmr-PIM-SM-sp)s(ec-10.ps)2673 b Fk(50)12 149 y Fd(\017)46 b Fn(Route)38 b(en)m(try)-9 b(.)47 b Fk(A)33 b(m)m(ulticast)f(route)h(en)m(try)g(is)f(state)i(main) m(tained)d(in)h(a)h(router)f(along)h(the)g(distribution)c(tree)103 262 y(and)e(is)g(created,)i(and)e(up)s(dated)g(based)g(on)g(incoming)g (con)m(trol)h(messages.)41 b(The)27 b(route)h(en)m(try)g(ma)m(y)g(b)s (e)f(di\013eren)m(t)103 375 y(from)39 b(the)h(forw)m(arding)f(en)m (try;)45 b(the)40 b(latter)g(is)f(used)g(to)h(forw)m(ard)f(data)i(pac)m (k)m(ets)g(in)e(real)g(time.)69 b(T)m(ypically)38 b(a)103 488 y(forw)m(arding)30 b(en)m(try)i(is)f(not)h(created)h(un)m(til)e (data)h(pac)m(k)m(ets)i(arriv)m(e,)e(the)g(forw)m(arding)f(en)m(try's)h (iif)e(and)h(oif)g(list)g(are)103 601 y(copied)f(from)f(the)i(route)g (en)m(try)-8 b(,)31 b(and)f(the)g(forw)m(arding)f(en)m(try)i(ma)m(y)g (b)s(e)f(\015ushed)e(and)i(recreated)h(at)h(will.)12 786 y Fd(\017)46 b Fn(Shortest)35 b(path)g(tree)f(\(SPT\))p Fk(.)d(The)f(SPT)f(is)h(the)h(m)m(ulticast)f(distribution)d(tree)k (created)h(b)m(y)f(the)f(merger)h(of)103 899 y(all)e(of)i(the)f (shortest)h(paths)f(that)h(connect)g(receiv)m(ers)g(to)g(the)f(source)h (\(as)g(determined)e(b)m(y)h(unicast)g(routing\).)12 1085 y Fd(\017)46 b Fn(Sparse)f(Mo)s(de)g(\(SM\))p Fk(.)39 b(SM)g(is)f(one)h(mo)s(de)g(of)g(op)s(eration)g(of)g(a)h(m)m(ulticast)e (proto)s(col.)67 b(PIM)39 b(SM)g(uses)g(ex-)103 1197 y(plicit)32 b(Join/Prune)g(messages)j(and)f(Rendezv)m(ous)h(p)s(oin)m (ts)e(in)g(place)h(of)g(Dense)h(Mo)s(de)f(PIM's)h(and)e(D)m(VMRP's)103 1310 y(broadcast)e(and)e(prune)g(mec)m(hanism.)12 1496 y Fd(\017)46 b Fn(Wildcard)30 b(\(W)m(C\))f(m)m(ulticast)g(route)h(en)m (try)p Fk(.)39 b(Wildcard)25 b(m)m(ulticast)h(route)g(en)m(tries)g(are) g(those)h(en)m(tries)f(that)103 1609 y(ma)m(y)h(b)s(e)g(used)f(to)h (forw)m(ard)g(pac)m(k)m(ets)h(for)f(an)m(y)g(source)g(sending)f(to)h (the)h(sp)s(eci\014ed)d(group.)39 b(Wildcard)25 b(b)s(ots)i(in)e(the) 103 1721 y(join)33 b(list)g(of)h(a)h(Join/Prune)d(message)j(represen)m (t)g(either)e(a)i(\(*,G\))h(or)e(\(*,*,RP\))i(join;)f(in)e(the)i(prune) d(list)h(they)103 1834 y(represen)m(t)d(a)h(\(*,G\))h(prune.)12 2020 y Fd(\017)46 b Fn(\(S,G\))i(route)h(en)m(try)p Fk(.)78 b(\(S,G\))43 b(is)f(a)h(source-sp)s(eci\014c)f(route)h(en)m(try)-8 b(.)79 b(It)42 b(ma)m(y)i(b)s(e)e(created)i(in)d(resp)s(onse)h(to)103 2133 y(data)30 b(pac)m(k)m(ets,)i(Join/Prune)c(messages,)j(or)e (Asserts.)41 b(The)29 b(\(S,G\))h(state)h(in)d(routers)h(creates)i(a)f (source-ro)s(oted,)103 2246 y(shortest)h(path)g(\(or)g(rev)m(erse)h (shortest)f(path\))g(distribution)c(tree.)44 b(\(S,G\)RPT)31 b(bit)f(en)m(tries)h(are)g(source-sp)s(eci\014c)103 2358 y(en)m(tries)h(on)f(the)i(shared)e(RP-T)-8 b(ree;)34 b(these)e(en)m(tries)g(are)g(used)g(to)g(prune)f(particular)f(sources)i (o\013)h(of)f(the)g(shared)103 2471 y(tree.)12 2657 y Fd(\017)46 b Fn(\(*,G\))35 b(route)h(en)m(try)p Fk(.)43 b(Group)30 b(mem)m(b)s(ers)g(join)g(the)h(shared)g(RP-T)-8 b(ree)31 b(for)g(a)h(particular)d(group.)42 b(This)30 b(tree)h(is)103 2770 y(represen)m(ted)e(b)m(y)h(\(*,G\))h(m)m(ulticast) e(route)h(en)m(tries)f(along)h(the)f(shortest)h(path)g(branc)m(hes)f(b) s(et)m(w)m(een)h(the)g(RP)f(and)103 2882 y(the)h(group)g(mem)m(b)s (ers.)12 3068 y Fd(\017)46 b Fn(\(*,*,RP\))38 b(route)g(en)m(try)p Fk(.)49 b(\(*,*,RP\))35 b(refers)d(to)i(an)m(y)f(source)h(and)e(an)m(y) h(m)m(ulticast)g(group)f(that)i(maps)e(to)i(the)103 3181 y(RP)29 b(included)e(in)h(the)h(en)m(try)-8 b(.)41 b(The)29 b(routers)h(along)f(the)h(shortest)f(path)h(branc)m(hes)f(b)s(et)m(w)m (een)h(a)g(domain's)e(RP\(s\))103 3294 y(and)40 b(its)f(PMBRs)i(k)m (eep)g(\(*,*,RP\))h(state)g(and)e(use)g(it)g(to)h(determine)f(ho)m(w)g (to)h(deliv)m(er)f(pac)m(k)m(ets)i(to)m(w)m(ard)f(the)103 3406 y(PMBRs)36 b(if)f(data)i(pac)m(k)m(ets)h(arriv)m(e)e(for)g(whic)m (h)f(there)h(is)g(not)g(a)h(longer)e(matc)m(h.)59 b(The)36 b(wildcard)e(group)h(in)g(the)103 3519 y(\(*,*,RP\))d(route)f(en)m(try) f(is)g(represen)m(ted)g(b)m(y)g(a)h(group)f(address)f(of)i(224.0.0.0)j (and)29 b(a)i(mask)g(length)e(of)i(4)g(bits.)-125 3805 y Fg(References)-125 4008 y Fk([1])47 b(S.)28 b(Deering,)i(D.)f (Estrin,)f(D.)i(F)-8 b(arinacci,)29 b(V.)h(Jacobson,)f(C.)g(Liu,)f(L.)h (W)-8 b(ei,)30 b(P)-8 b(.)29 b(Sharma,)g(and)f(A.)h(Helm)m(y)-8 b(.)39 b(Proto)s(col)17 4121 y(indep)s(enden)m(t)28 b(m)m(ulticast)i (\(pim\))g(:)40 b(Motiv)-5 b(ation)31 b(and)f(arc)m(hitecture.)41 b Ff(Internet)33 b(Dr)-5 b(aft)p Fk(,)31 b(Ma)m(y)h(1995.)-125 4306 y([2])47 b(S.)42 b(Deering,)j(D.)e(Estrin,)h(D.)f(F)-8 b(arinacci,)45 b(V.)e(Jacobson,)j(C.)c(Liu,)i(and)e(L.)g(W)-8 b(ei.)76 b(The)42 b(pim)f(arc)m(hitecture)i(for)17 4419 y(wide-area)30 b(m)m(ulticast)g(routing.)40 b Ff(A)n(CM)31 b(T)-7 b(r)i(ansactions)35 b(on)e(Networks)p Fk(,)f(April)c(1996.)-125 4604 y([3])47 b(D.)26 b(Estrin,)g(D.)g(F)-8 b(arinacci,)27 b(V.)f(Jacobson,)i(C.)d(Liu,)h(L.)g(W)-8 b(ei,)27 b(P)-8 b(.)26 b(Sharma,)g(and)g(A.)g(Helm)m(y)-8 b(.)33 b(Proto)s(col)27 b(indep)s(enden)m(t)17 4717 y(m)m(ulticast-dense)j(mo)s(de)g (\(pim-dm\))f(:)41 b(Proto)s(col)30 b(sp)s(eci\014cation.)40 b Ff(Internet)33 b(Dr)-5 b(aft)p Fk(,)31 b(No)m(v)m(em)m(b)s(er)h (1995.)-125 4902 y([4])47 b(S.)30 b(Deering.)41 b(Host)31 b(extensions)f(for)g(ip)f(m)m(ulticasting,)g(aug)i(1989.)42 b(RF)m(C1112.)-125 5088 y([5])47 b(W.)31 b(F)-8 b(enner.)41 b(In)m(ternet)30 b(group)g(managemen)m(t)i(proto)s(col,)f(v)m(ersion)e (2.)41 b Ff(Internet)34 b(Dr)-5 b(aft)p Fk(,)31 b(Ma)m(y)h(1996.)-125 5273 y([6])47 b(R.)30 b(A)m(tkinson.)40 b(Securit)m(y)30 b(arc)m(hitecture)h(for)f(the)h(in)m(ternet)f(proto)s(col,)h(August)f (1995.)42 b(RF)m(C-1825.)-125 5458 y([7])47 b(Mark)31 b(R.)f(Nelson.)40 b(File)30 b(v)m(eri\014cation)g(using)f(CR)m(C.)40 b Ff(Dr.)32 b(Dobb's)h(Journal)p Fk(,)e(Ma)m(y)h(1992.)p eop %%Page: 51 52 51 51 bop -125 -149 a Fh(draft-ietf-idmr-PIM-SM-sp)s(ec-10.ps)2673 b Fk(51)-125 149 y([8])47 b(A.)d(J.)f(Ballardie,)j(P)-8 b(.)44 b(F.)g(F)-8 b(rancis,)46 b(and)d(J.)h(Cro)m(w)m(croft.)80 b(Core)44 b(based)f(trees.)80 b(In)43 b Ff(Pr)-5 b(o)g(c)g(e)g(e)g (dings)47 b(of)e(the)g(A)n(CM)17 262 y(SIGCOMM)p Fk(,)30 b(San)f(F)-8 b(rancisco,)32 b(1993.)p eop %%Trailer end userdict /end-hook known{end-hook}if %%EOF --------------943891EFB640BEF6DFD8A522-- From owner-pim@catarina.usc.edu Tue Jun 26 13:14:35 2001 Received: from catarina.usc.edu (catarina.usc.edu [128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id NAA27389 for ; Tue, 26 Jun 2001 13:14:28 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id JAA28506 for pim-list; Tue, 26 Jun 2001 09:53:48 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from rumi.usc.edu (rumi.usc.edu [128.125.51.41]) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id JAA28501 for ; Tue, 26 Jun 2001 09:53:47 -0700 (PDT) Received: (from pavlin@localhost) by rumi.usc.edu (8.9.3/8.9.3) id JAA13245 for pim@catarina.usc.edu; Tue, 26 Jun 2001 09:53:46 -0700 (PDT) Received: from usc.edu (root@usc.edu [128.125.253.136]) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id JAA28486 for ; Tue, 26 Jun 2001 09:52:29 -0700 (PDT) Received: from redd2202.procket.com (flowpoint.procket.com [209.140.237.1]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id JAA13212 for ; Tue, 26 Jun 2001 09:52:26 -0700 (PDT) Received: from Procket.com (IDENT:jzwiebel@localhost.localdomain [127.0.0.1]) by redd2202.procket.com (8.11.0/8.9.3) with ESMTP id f5QGon432403; Tue, 26 Jun 2001 09:50:49 -0700 X-Confidential: Procket Confidential/Need to know Message-ID: <3B38BD69.16863B9@Procket.com> Date: Tue, 26 Jun 2001 09:50:49 -0700 From: John Zwiebel Organization: Procket Networks X-Mailer: Mozilla 4.76 [en] (X11; U; Linux 2.2.16-22 i686) X-Accept-Language: en MIME-Version: 1.0 To: jiangpet@yahoo.com CC: pim@catarina.usc.edu Subject: Re: Is there ps version of RFC2362 References: <20010626034832.11270.qmail@web14507.mail.yahoo.com> Content-Type: multipart/mixed; boundary="------------4D61E8C670E524B443A881B7" Sender: owner-pim@catarina.usc.edu Precedence: bulk This is a multi-part message in MIME format. --------------4D61E8C670E524B443A881B7 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Jiang Pet wrote: > > Hi all, > > In RFC2362.txt, it said that figures are only in ps > version. I can't find the ps version through Internet. Folks: Let me remind you all that 2362 is EXPERIMENTAL, --that its 3 years old --it wasn't written as clearly as it could have been. (not because the authors didn't try, but because there wasn't enough operational experience to understand what the implications were for some of the decisions) --that there is a new PIM draft which builds on 2362 _and_ additional years of experience to result in something that -- though not easy to read or understand -- provides much clearer implementation information than the RFC --that if you implement the RFC only, you're going to have to eventually refer to this DRAFT at some point in time to clean up the problems you are going to encounter. You can obtain several PIM drafts at: http://www.ietf.org/ids.by.wg/pim.html >From IETF RFC Index: 2362 Protocol Independent Multicast-Sparse Mode (PIM-SM): Protocol Specification. D. Estrin, D. Farinacci, A. Helmy, D. Thaler, S. Deering, M. Handley, V. Jacobson, C. Liu, P. Sharma, L. Wei. June 1998. (Format: TXT=159833 bytes) (Obsoletes RFC2117) (Status: EXPERIMENTAL) I've spent the last 7 years working on PIM, finding all kinds of "corner cases" that just don't seem like they "should have been" important, but which somehow seem to always bite one in the ... I'm not saying the new DRAFT is perfect. And it would be nice to get more eyes looking at it to clean up some of those problems. But, if you really want to implement PIM -- or for that matter, just know how it is "suppose to work", please be sure to include this DRAFT in your reading. I include a pdf version attached here so that no one will have an excuse that they couldn't find it. Thanks z --------------4D61E8C670E524B443A881B7 Content-Type: application/pdf; name="PIM-SM-draft.pdf" Content-Disposition: inline; filename="PIM-SM-draft.pdf" Content-Transfer-Encoding: base64 JVBERi0xLjIKJcfsj6IKNCAwIG9iago8PC9MZW5ndGggNSAwIFIvRmlsdGVyIC9GbGF0ZURl Y29kZT4+CnN0cmVhbQp4nJ1XXW/jthJ9968g+tDbABEt6tPap7vdTbpGkUWaGOhD0wdaomPd SKJKUnHc39Af3Rl+yE662xYXC6wDkRyemTlzZhhTRmL853/rfvHb4jfC7LfwU/fk+81ieVfg h81uwUhkV0mZkDIuyab/bj0YoQZhyNXw2A5CqHZ4JBuun8i1VLW42PxvkVYFHNo0392ub8jP P+CnJCvI5rCIcCliKS6uP2+u7j5fbaKPd++vN+T7tutwZ4z70sJbuBbDINTy/ebbDS6ydOXM FLOZRvGdiVphdtHY9pHuo+ckGsQhihM6anLD1dPJbJ45s5/40HTiuHz/YX23xmWwGAx+mh73 5JPstkrKp+WHVtfS7mDJjFy3jVTkRzk9i47r0x7wsV7AHX5fcuNvrhds5S7mqt6TJI6ZNbma t169jK0S+h25F6MR/VaoedfyriQsw2xESZ7QVZ4S+MOGV9mYZDQP5qWRtezIemjEKOC/wZCb qTNtzbUhEbkfudKC3MhGkAfMTnR/83DxzkLPabFaBThftXw/irr9o+amlQOYuBMuKxUtS5+x 51aL5uFiRs4c8hLsZyWJMov83nAzaSJ3xOxbTT7KeuoBrDtU+UMxoClogfs3uKvxuwj8zQcS iBh9RAbAlwYX2oHspq4jtRx2UvV8qAU5tGZPOHwclU1TmmQ0KasZL/hisdyL2voF3Jc7xwq/ 04fl7vpDEicFdWmNEovtNQ6ApuBG3FEllCVZiJ96wkIJPnjfBflyOdmSiSuaxoE3WF/2a0rT Iq2C0RoTub7aXD9cXJLW3c715Qy+PNWbDRDsOLgSpQWLq1fYHpWcRm2dK2C5SPzyZ2kEYOWG SECs/D7S8yMEVUvStNqodmuZUDKa+WOT8XEAGHGSfSUMXDusMWA98e9NTP854FYFzsw+WzRF SrMAh3dtQ4AShAPyl7afekyBbl9ILwez15ZA6NNWkGlsuBGNC2Ow4qEpMXa8hkUCtuRWy07A VrI9+uicuYaktAGgZY4ikLCYxiAjFs/RzOLg1g8Lxk4Jb3tBydqcpAuImISEWZ7zEeg8qpZj diSZ9IlMEXGhsfiTPKd5xmYaaKLETiiBldHDYbDQoS9go25tpkXvfYGkD5Ah8o3LY5rQBNQn JBJrDSA8gm5p+o27y2/xmdoAwTtgB0a6npTC4n2bvRqugJDzugYzEEiI2t6Y8d1yeTi4a1cJ zfLSXUtR6Km08pRUUF+hjB+XuLJkbRPxLfCR10Ab82IcuyCy+Sr/Eqw3KnK/5408zxlqWxwq 4fDxTNBpkXpSg3LXRqpW/AtvWFlQFtrQ33ijA5AopiWzUNKUVlkeoNAZSkWrsqhy931v+s4u RVlc0FVRnpx+K6GYvGaqzSxFICPEtWxrIUlympWejx9k71it93LqGutk0yjnJVAHDfDJ7KXy 6hNOe9ohwWDLzz/85zy6WUWz1cq7pPtTdIGyqyJUbtuhZtiMQTyhy/8XGhAHpeR00jUVzURf txuWxkAZvLtCA+89IV63l4iVMc0hhwD1S11G21YHOb1V/1dbDaLlO6r96uLez2dBSQ36NoYr rMwiibCcMWATXKe6I26ahleHXplvXbez7WvL4awVOi0AGerDfGNU85FvOzHf/PagRZ1CGRcr X+lrQ7Z+GijzoEBT2zVeubOSZuk8yADIxtYDGARdARorJIgSEEgYqIyrCU7uMI6/P7tGV9Ak 3CZhLLiVLUQYpovbhwsyho5ziQrtqOUPBGqN7rLuSGrofkZYkir4NdHIofW729GQlhO0zDds wWnKF4ltdRAJny1tx5SvTiV+13OCafX6BiAObSPgp+3HTiCT0GXoLcCdzklLBg2ReX+P2Els fGGuKIos9E6bfDdNg6SyUCMvUASYNn0+h4EOw2Ti+yhMiKAFYQJNi8RNRXqyE01e0Lxg3tgf dYtUhuqdsZKdkv3laZiqpcJk4hWcDJMdTEEuON7v+3JSFTTOfFd7qzLnxR6lML4W8UwVXp/q PYFJM4ifRDCQByWig8KOhJjQQ4LunIEzyCGrPqEPz7tomPPK8BbZnASK7LlXVlZYZDD8sjyI /LOYYYGGQu9BDfWIDczmo3F3zl6GzjaixrTQVaFj2mCzCgQmVAxX+H2UWrdQfz7noEDxLLGT eRVjKFfxV6gxTVM7K8QwCIYG9Ax3zqDtuMBKeCgEjxSM5IOjx4rRMpsr5wBNXvwVP7K5E1wh iQMDLok5jiAhWGWw1iAJUfahazoSMMrSIvAK2gNu2MKk9BTtITWNTQiLYVcSdGVAjmvhgFU4 OMxDlvP9AHNd+9p9aBiruRhcpnCxWlkWxWeVoh7PubeiVZFVPlxidyIeo8DfcARo9jYYPlEV NNniPFFduJpZM9C80yq0Zn7Oa2je/vtRuzIKA3ga+0jA0Gl1/wBPYEtrmOuE1W092UECXzRH P8zBgJ3MM7192aBSdCEUce7iBApZBr8ev8ohmgaO1Edy+4ZCMPiswvS8djIXZMLqjvaohZ3A +euAFEC0PP/7gMApuaPeL0QHQ+oK5tyzh797qPsHahIHiTgu5wf6j3YRJuc0mIVneRhXs5JZ Vwpc9smHFzv5Jfh6ANllNBCDPwrCfsWlqw35afHT4k/Pq/uAZW5kc3RyZWFtCmVuZG9iago1 IDAgb2JqCjE5NjYKZW5kb2JqCjMgMCBvYmoKPDwKL1R5cGUgL1BhZ2UKL01lZGlhQm94IFsw IDAgNjEyIDc5Ml0KL1BhcmVudCAyIDAgUgovUmVzb3VyY2VzIDw8IC9Qcm9jU2V0IFsvUERG IC9UZXh0XQovRm9udCA8PAovUjkgOSAwIFIKL1I3IDcgMCBSCi9SNiA2IDAgUgo+Pgo+Pgov Q29udGVudHMgNCAwIFIKPj4KZW5kb2JqCjEyIDAgb2JqCjw8L0xlbmd0aCAxMyAwIFIvRmls dGVyIC9GbGF0ZURlY29kZT4+CnN0cmVhbQp4nL1Zy3bbNhDd6yuwTHIimHgQILtLYjtOW6WK pF3TBU3BMhuKUEnKbvoN+egC4ENUNKRs2Ym90BEJcS7u3Hlg6GGCPPtff8br0T+jfxBx15qP eI3eLkZnsxARghY3I4LG7i6SFEnO0GL94sPHxcXs48Xi5eLvkfAxEQFa3I98iqUvzNLF8sX4 fPbmcoEu/t0kuSp+sQs9u4ZwiT2fVovmalOq9bXKEfU8YtcQGWDJ6tuTKI9v21tnM4kIs4DG BJNQoEU8GlNCMCccjZmwv1hEtaF4RBgOpV896DpVSN+gdzorVVYW1dNCu1/3tMA8zzO7ZIFd TDD6kJW5Xm7jMtFZu7jigthnS4IlD8Pq4bjvb9+MA8V8H9MaFLf3x5xKNCbUXqAYOUKJb7ZU rVH5Osl0qldfIRi+wIw9EwzSgWEYOFffssRuvwD3bxCGxwxDdjnB/WbN/qeF2i51rJcKfdRl 1Mc/8diQbciy0Yj7hf8968xY/TAZzydomuvS2E7RH3d2USiwT8KgccRdopxzQqPPZuv3MDhD zgA8CJ3ntf44AMjxDtl8o+LkW9xLTBhiyhvMj/ALlbiJleB7x3CrB0NRB4XxjHpmv4SVWW/P rDH8XmUqj1I03eYbXagB29RrtPVA2zQQzS9A60aPn1+8ev3q9Wz6+WW/4fDRe/ZqeRCvNku7 Zlll9v2QTen8PByAoJ9p62fYOLfG5w8xfoLIOsYJZNyvjb/ON+UPYpxCdgWubKH5dr2O8uQ/ F19oEsW5BvMf4b27h3Tm1xonrI6tjnUjsvOojNDU3uLme9C4NYq/uITDsJTNNVWiy7pEENpc 1Pl9UzZqeqN8mWQrNNumCsRv0r8/lL+hTYhdiiDikEVXNeaqLK3hKFuid6kyVJov5a3aaWq6 QNdJCXIahG0OfAAc0hFTcEhrldXRzOmHB52cvUqK0jQcE1UU0QqmRwTY8wYFDiEKdzWVhIcE sYqgrPKMw2XaCNqHC93keu24O5+BdBEDkpxEFwjO6HCmYpU4vqStfDWuux1eNoQ3Kh3a2RRG 21sUj6Cl9NC5vHLurzrJzqb5NlOD3iTs8YWhbVMoOyTLFcQBsjpF46EQTV8k4aR2jB4Q37Az m+ry48EBecKF5iC4+U8CB4SBk9YxcHV1eihAk2vhagHga60xoE5xWx+bBHKCxk7Orwx0o9gH 8xifmeNDT0BCSGjbpXGgZeFYdoE8TjwnAwGjLthvX6YqT/QyiY/o96ROgksIQNj0MaZzuU3M 5m90vgepOl5yisP6lJ4nq5XK1XIQY2DigEHlEFKw3J3w5GHm9qvM/aYoVF4OE0NEK8BDbnro 6ZRgH+gwfZu4G43sY9gn7lnFAiOhuy7/5yEBAtm3+bhFUOZJDLrj9JZbgNvnjdF3URardFgK J5zsWhUKIJP6Vof1nlu2+1p972k6FED/Iux8pUhWmTG9RDO9NY1UYeRwPjNqsL3zlUpTPcgJ JaBDhmqKAJKW6Dalx60SxvtqSB8VnWMDDMAegGboIlX907anH3YFP/SCrHLRW63LosyjjWN+ NkXnSRFrt9zDxG+27dUzyTsXks5A6A5rNa4cnNARs8OgH/pQihf+IVvSTURyvd2MSz02WCfR ZmNc9/xRA2QKaV11FRW36HKb9TrrCYkCqBempM71No/VuJ58ock2LZM4KuAz5FNafQHU1MDN vpq518SU83r4VrjaOp9P0FIV5sxbTQyi5TI34dMTshwMHihk/U7QBBAqWg8t55OxztKvTQ75 ATELnK3DehzoemRzrIUmFs3YFJ5XrKMSxGrcFxyZKw8qCGjpQ+vBi8yOlJe1llyguyhCbyqH 1SBlgDk7ijHAjIAYIU8Gu0ogge41dDHVzbsVlJBi0c6eHRZQURIHcoiuYcFLoDSG1fHMnfb9 tk3cP+tXEI1IHgDReFSI0ydNEigZYXVIAyHaiybte62DxvNSbw6Ae+I4cIFFvxQh2Hw3w5cc gm2ajsODSS09YuPoGCQT+bDyejE1xURWxYSF3wFqyomd3DXR8bthsn90SHzS3w8do0XCKGgX xWUerdYqG3j5w046MgXe/sPGnBoY3L02vFRZpvKzK5MYUicsYUB5sqb669mVTq9zrb+c/eZu EsyY3ySzrXtZRBnFXBL3htO+lat3rNKoQH9O65bh3mib4LAGZJ1P/7K3Lhbo0+jT6H8Frvck ZW5kc3RyZWFtCmVuZG9iagoxMyAwIG9iagoxNjQ4CmVuZG9iagoxMSAwIG9iago8PAovVHlw ZSAvUGFnZQovTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQovUGFyZW50IDIgMCBSCi9SZXNvdXJj ZXMgPDwgL1Byb2NTZXQgWy9QREYgL1RleHRdCi9Gb250IDw8Ci9SOSA5IDAgUgovUjcgNyAw IFIKPj4KPj4KL0NvbnRlbnRzIDEyIDAgUgo+PgplbmRvYmoKMTUgMCBvYmoKPDwvTGVuZ3Ro IDE2IDAgUi9GaWx0ZXIgL0ZsYXRlRGVjb2RlPj4Kc3RyZWFtCnicrZVNU9swEIbv/hV7Kz1k o29ZvaU0DJkOFIKnl04PxhaQ4g+wnQL/vpLtmIHaaac0mVgZ70r7aN9diSAF4r/9mOTBfXAP tH23G5IcPkbBfG2AUoiuAgqz1gqagRYcovxgdRot16fL6H30I1ASqQoheggkQy2Vc43Sg9mn 9eIoguXj3aay9QfvSLwPFRqJZJ3Thb1rbH5pK2CEUO9DdYia9+aTuEpuBlMLRDzQjMsQpQA3 ejeBBhXCoq5t1cCJrev42sKRn2MkGmFMt1xZ5XEzrNRtzT2TgAm32s4LRz4vw5N2TkhRdjNC 4u0zQRnM3K8logThbHUCbYaEo+W79Te5repRCoVG7qOYIOFcDSR0hIRiR8FCZOqZAb62L13Q AS3OtnYUjQun2V6wMS7my6EHYx0YG8Akwmpx2iI4er99jaLXfXHYl0sSUIV8J19Rb1Jbxc3G /RujlBIFN+GbOMXrBLri7pRcpKkr5LqrK1elYtAqzjfZ01Rd8f2KjvEQMw3DOphjm2UlfLmb zAUl/J/Dytdauea6sMm22jRPcPhHGSj9j6G16+ttc1NW9budAuMlagyyvT38F+L/Fj100ZPb ovTvXZcJ2jk+ZDa9zm3RjJIIgyR8Yx+r1yQGYW2vbGWLZHz/cn/dT4RUYiqgP8BWRWrbrTNU fWs+jiuOaq/mk/G1fs6+frl0ByNVe8Qf2aKw1fw4LtLM9pcOI7pP8tP8uMwuq7K8nX9ujRQ5 l7tjY/uzPWXcJoSm7RWkvLmz2iyu4dvZcD0xN9f0SfG3CP/uTcsIzoPz4BeelagUZW5kc3Ry ZWFtCmVuZG9iagoxNiAwIG9iago2MDUKZW5kb2JqCjE0IDAgb2JqCjw8Ci9UeXBlIC9QYWdl Ci9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCi9QYXJlbnQgMiAwIFIKL1Jlc291cmNlcyA8PCAv UHJvY1NldCBbL1BERiAvVGV4dF0KL0ZvbnQgPDwKL1I5IDkgMCBSCj4+Cj4+Ci9Db250ZW50 cyAxNSAwIFIKPj4KZW5kb2JqCjE4IDAgb2JqCjw8L0xlbmd0aCAxOSAwIFIvRmlsdGVyIC9G bGF0ZURlY29kZT4+CnN0cmVhbQp4nIVYy3LbyBXd6yu6tLKrRAiNN2Ynj6SxJpZMU/QiFWcB Ak0SMQhw0KAU5Rv80Tm3XwApKSk/pEI3uu/j3HPPhe9x5tMf87Pcnf119hfj6pn9Ue7Yp+XZ 5SJnnLPl+oyzmVplacDSKGTL3Ye7h+XN4uFm+XH5r7Mk9niSseXzWRx4aZxg67L6MLteXN0u 2c2/93Uv5G+00ac9PEo9Pw70pkexH8RuJXoW+D6nPTzNvDQ0y/dFX27d0uUiNQbNQuyKIzYL E9rGPbccKXtDmKFPuGuHnhaD0MusZV11KIe6a/VL+Ximl/gJm/HEU6cut7VkVVcedqIdmNyL sv4lJCvYvu+Gruwatu56Jtba6tzLU67P/1XWeKN5YX13GOp2w3aHZqjLQg5sg0d7yYZtMbBd 8YJTi5Y915WY0Skze8yMh3RQ0YuC/fhQtBWr20EoR5LQC/0oNzGuul1Rtz8+6vVWDFKFIsu9 wM8zvUn54WzG72XRNKJic/vorq3EXuA/uHnvTJ2xx33RS6ENQ2ZjHlvD7rtKwLD53f3s8R63 r0RZHKS4YEUzbLvDZstq7R8ewlnBDji9b14oGIdWn2+DM3RkHN0SJqmX56G2+glBYb2+HWBN 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 ozFHZQxuRo7+7/SQC1gL7aWB6okMujBt/3b0pLYizKm2KZZn9hYbkj/fLNmJljINsjA3mq8f QepleWoFpY6QpnwVpQs949JEi/5eKh92XVWv1Te9KylFPziUZi5BAOFgyC3wqIUh+0dkuURy lg4YeDcMrbCCUnybJjFOcv4GTYJnLDnDOnU1o5RQqN8Rvb0o7MDPfWJPF8fVyyhXQqhSp9yf yGE68Y1CvVALOhqThySC7v64n0/pywgyfbC5UynBpgNp6/6n3EWXBilZFA0Mp9IHLP0Vb+h6 +ylIuUvIQoMdQTWR4wFqNgvsd00nxyVThWIIOYRJORRiHOr83Ao0+/7yM1zQAyW0CEjXxOLl 8nPXrDAe/Lz8m1rkyF/sxpInLTMgOgNuiCG0ik00SMKjcB/iLXkEIXGmsZKGR/aP+YgPDllt CZqgHP2T1m6W7NvZt7P/AqB1E6plbmRzdHJlYW0KZW5kb2JqCjE5IDAgb2JqCjI2NDYKZW5k b2JqCjE3IDAgb2JqCjw8Ci9UeXBlIC9QYWdlCi9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCi9Q YXJlbnQgMiAwIFIKL1Jlc291cmNlcyA8PCAvUHJvY1NldCBbL1BERiAvVGV4dF0KL0ZvbnQg PDwKL1I5IDkgMCBSCi9SNyA3IDAgUgo+Pgo+PgovQ29udGVudHMgMTggMCBSCj4+CmVuZG9i agoyMSAwIG9iago8PC9MZW5ndGggMjIgMCBSL0ZpbHRlciAvRmxhdGVEZWNvZGU+PgpzdHJl YW0KeJytWE1z3LgRvetXIDdvRQMRBD9TtQdp14qVWF6tPFs5eH2gSEjDmEOOCdLjqVT+gfOf 8xofJGcsr3NI2VWSSBDoft39+jUCLlhA/9zPcnv28ewjE+aZ/1Fu2dX67OI+Z0Kw9eOZYCvz lqUhSyPJ1tsXN2/WL+/fvFz/sP7nWRJzkWRsvT+LQ57GCZauqxern+8vr9fs5edd3Sv9F1oY 0BoRpTyIQ7vordoNavugehYGgaA1Is14Kt3r26IvN9OrlYxiHkdsJRN62XfjoHp6EcY8SaT9 hNMDyWUc02GrODOvViLh5qPb65srdjs2Q10WejC7AooEi0trXppyGaSZ3ey6c2aXZ0LwKBb2 cb83luJJHtsnRV/V7RO7aR+7flsMddeyq0IrbtfFPM0cKuuNYmuYsOmaSrOiadiAJ3ooBoXf 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 xqbykYDU9a6qE1hBPlLmrp4ee6+Rp3zttidIL+TNAmmflu5Wxli8KYwPtvyjDHBPBEQh4Raw qSm+Ppke6JbVwzvfohmx6xtv0yxuAU/JV7sLRn9fYstfQcKh/rcYjhvbUu6vf4JvmOzfhe/P GSkbazGQIdXkLIbaITal3mJIEv4aX0/jgqEiX8TFnGA5R5tvVKlOMxGzShh/jzVMO8eB/lpk 5jJoiN5ZHJICnEn+q6NCwYNZan77rA+tvalKQNk+BnvCtljteijU2rOX2QL8KIXP9c8YF1VL NzV2RUfWOmILQh7I6WLYXmuB+RCb2lzX2Ssu6l90B7RD/ijtLragHuMsnDnYXZ0WJPVJO2nD 5M+hC/ZJZPS8y7PHJBvKbqvMNk+duTk+atPEF6G/HD0sLuoWzFNvIUPsHffsgFckXVmOLk4J qGduhbqmHC5a1Y26MeojiXkeBF7Dmm/8oxUaVESPr1Xbqv7iFextlPsoDHxsDxevuuah77oP F393QkfKaeAa7YychTxPhbuexWuXtQ1AdQJ2BgB9QGYQsS56krN3frahVyBFr5XRx1j8nt69 XLNfz349+y/Tv+2ZZW5kc3RyZWFtCmVuZG9iagoyMiAwIG9iagoyNjAxCmVuZG9iagoyMCAw IG9iago8PAovVHlwZSAvUGFnZQovTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQovUGFyZW50IDIg MCBSCi9SZXNvdXJjZXMgPDwgL1Byb2NTZXQgWy9QREYgL1RleHRdCi9Gb250IDw8Ci9SMjQg MjQgMCBSCi9SMjMgMjMgMCBSCi9SOSA5IDAgUgovUjcgNyAwIFIKPj4KPj4KL0NvbnRlbnRz IDIxIDAgUgo+PgplbmRvYmoKMjYgMCBvYmoKPDwvTGVuZ3RoIDI3IDAgUi9GaWx0ZXIgL0Zs YXRlRGVjb2RlPj4Kc3RyZWFtCnictVpNc9tGEr3rV8xtky1yjMHg0zdvxUm8W846EqtyiHOA wJEImwQYALSi816T/7yv5wsDiJSSqt1KpSQT4ExP9+vXr3sUccEi+s/+rA9Xv179yoT+zP2o D+wfm6tX1yUTgm3urgRb66csj1meSLY5fPXuh83b6x/ebr7efLrKUi6ygm0ertKY52mGVzfb r9bfXL/5dsPe/nZsejW8phcjekckOY/S2Lx0o46jOtyqnsVRJOgdkRc8l/bx+6qvd/7Rq+vc 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 NvgMEdMoDGVh5wcf5jDzhHhytoSG0C+ziKXrNUF46FZu5uXRA5EZO6H7WIcTGSGtEgHlDbuu H9c1Xfy3U5+uPa+vRRoHVEnc5jMLgB79ZZ4t6D/tmr0KOn1LA8HMgAjOBdlyrONTf0dzY4rv zP0yp1FAkMG+Lrsn1i6vBszw53IT7YQUOhzhxgb8p8lJEA3+EmuWHCWKQfwkN8xfR9gEgYDr LwkA+CqRXpey1u849SZODj5tlqLpDvviJfGjvc2yKjniRblowkOQUK8Uu3OuJoFQ6NLkb+uc FDJtnJUHhaQZqKtHOqyzrlMCaP5vE7rzAOyOjTLTJMoi85ceARd7+UPaQExu5+yNs/WB7mzi 2OWmFrManV7DmQG58YegFmS67u5IvdeoHovJEtBSmwZ/mg3k+q9WTDa5i878xYuK4DBQZ2XY x9tbvtH/NYXRwSVEXBQXz+tgmj/4gqJbLMfLOCGNgtcgkZhe/Va1repffY+99mbglaJHcGF5 fPV9t7/tu+7zq3/ph2Buf0nZnUxVg3Cn2aKRodKhF20TpIKqSYmHsYplQTrFvCQ5+/mDjxQV Fi/xyfLsF3r2dsN+vPrx6r+k/aaIZW5kc3RyZWFtCmVuZG9iagoyNyAwIG9iagozNDA0CmVu ZG9iagoyNSAwIG9iago8PAovVHlwZSAvUGFnZQovTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQov UGFyZW50IDIgMCBSCi9SZXNvdXJjZXMgPDwgL1Byb2NTZXQgWy9QREYgL1RleHRdCi9Gb250 IDw8Ci9SOSA5IDAgUgovUjcgNyAwIFIKPj4KPj4KL0NvbnRlbnRzIDI2IDAgUgo+PgplbmRv YmoKMjkgMCBvYmoKPDwvTGVuZ3RoIDMwIDAgUi9GaWx0ZXIgL0ZsYXRlRGVjb2RlPj4Kc3Ry ZWFtCnic3VlNc9tGEr3rV8xtnS1yDAwGGCA3p+I4zsZeRWJVDus9gORIhE0CNACKq/0Nzn/e 1/MFgCIln7eclMv4mu7X3a9fNyMes4j+uL9Xu6uvV19ZbK75v1Y79tPi6vVNweKYLe6uYjY3 d5kSTMmELXav3n9cvL35+Hbxw+LzVZbyOMvZ4niVCq7SDI8u1q/mP9+8+WXB3v5nX7W6+5Ee jOiZWCoepcI+dKv3vd4tdctEFMX0TKxyrhJ3+0PZrjbh1jzBvVSyeZKZd/9GF+lEtlhdFTxW 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 kvpF17VuX/+KpN6aNzNweujWj69/bbbLtmm+vP6HuYmSSLzYaw52nZsLM7DaZE18ZuotguB4 YXAZUxdaXuoXdAln/7p29tItzCh+00PrAfVvuvd2wf64+uPqf+zdVEdlbmRzdHJlYW0KZW5k b2JqCjMwIDAgb2JqCjMwNjEKZW5kb2JqCjI4IDAgb2JqCjw8Ci9UeXBlIC9QYWdlCi9NZWRp YUJveCBbMCAwIDYxMiA3OTJdCi9QYXJlbnQgMiAwIFIKL1Jlc291cmNlcyA8PCAvUHJvY1Nl dCBbL1BERiAvVGV4dF0KL0ZvbnQgPDwKL1IyNCAyNCAwIFIKL1I5IDkgMCBSCi9SNyA3IDAg Ugo+Pgo+PgovQ29udGVudHMgMjkgMCBSCj4+CmVuZG9iagozMiAwIG9iago8PC9MZW5ndGgg MzMgMCBSL0ZpbHRlciAvRmxhdGVEZWNvZGU+PgpzdHJlYW0KeJztWcty28gV3esrehc7JbbR jXd2Uo0ndhI7GpK78SxAoCViTAAcNChF2WY7+db8Qs7tBx407bFTWWSRUqlEEs3u+zj33HNb ARcsoB/3t2yufrn6hQnzmf9TNux2e/VqnTMh2Pb+SrCVecpSydIoZNvmxdv329fr96+3L7c/ XyUxF0nGtk9XseRpnGDptnqx+m598/2Wvf7bse6V/gMtDGiNiFIexNIu2qjjoJqd6pkMAkFr RJrxNHSP3xV9uR8fvVqnzqBViFVxxFZhYpadDkO9KspSac2sSSnPZZTZXfqi1fXA/nLzXttt vF8rv2wlEm522u4V62jRCgFKYrYtryS8y+1Gj8p5UV6JgEv/cf9YmwfkvHmW8Ezm7uGTOVNE PE+F/aS7n3YRPAtC+3HRs32hWdm1pepbVbF60Opwz57qYc+OXd0Oq6FbmRfsULcfNTdnipRL 6Rx9Y0wXIUxP3elq6YyQPI6DhTt4GEX0LOCZSaJxLfO+XbPTaK7LHw50Nuu6fWDNLPpmwzBK OHIjQlpCUWf6hDTCudfDnnwb2H3Xs8Hlpdas7QZ2asuuabrWuhUiYJGzYbvHkrJo8XvSChFq joe6LIa6a7Xdad8r64v/nju8V4XGIgO+lIvYOjFm+x9bHx1hAyCl8RD5i1yynjqLB59bEwIp eJw5iPbNlM15knvF+u40qF6zroWFivDHmuIZ/uqTYh9e/P76jx9esj8hoZoNHatqgwspE55K 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 9Z0dNhKUvVd7RjyS3jobi8wMn35mLPKzcHHABNMPy3t0NA6apZPZfctm+jpWCTeWOeKNuGCV Qt872GCCiK3jdjLUAwbJ6uwyx+7y1QdIFxUH0bPRK8KkMA4Q4+ATgjKj8ULEXsf1p4NToSuR 039TQAAYxA19qrZV/as3IMaDiVaCiW4cLJ5fvekOiH/38dWfzUNsHnoV0p3MPCMyaa5L7YUr HjuTDgDZxroylxkS7B+nztOIsx/97EuPMPuG3vQHxbKf6NnrLfvh6oerfwP51NCTZW5kc3Ry ZWFtCmVuZG9iagozMyAwIG9iagoyNjA0CmVuZG9iagozMSAwIG9iago8PAovVHlwZSAvUGFn ZQovTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQovUGFyZW50IDIgMCBSCi9SZXNvdXJjZXMgPDwg L1Byb2NTZXQgWy9QREYgL1RleHRdCi9Gb250IDw8Ci9SMzQgMzQgMCBSCi9SOSA5IDAgUgov UjcgNyAwIFIKPj4KPj4KL0NvbnRlbnRzIDMyIDAgUgo+PgplbmRvYmoKMzYgMCBvYmoKPDwv TGVuZ3RoIDM3IDAgUi9GaWx0ZXIgL0ZsYXRlRGVjb2RlPj4Kc3RyZWFtCnicpVjLcttGFt3r K7qyGSdFtgA0ntnZZcfWpOxRRFZlMZ4FCDZFjEE0DYCitZ5t/nV+Yc7tFwBKntiVssoqAd19 X+eeexoBD1lA/+zv6nD1+eozC/Uz96s6sFfrq+u7goUhW++uQrbUb1kWsSwWbH14cfNh/ebu w5v1j+t/X6UJD9Ocrc9XScSzJMXS9fbF8vXdy1/W7M2XY93J/mdaGNCaMM54kERm0UoeB3nY yI5FQRDSmjDLeSbs6/dlV+39q4yHCVtXV0uBNUnMliKlRf9Z2bMrbOZhaO3LaqhVy2IuWH+U Vf2H7Nmwl+z25j27k9qUyLiIYrP8vu4HuHEvW9mVemfZbtmxU5Xs+7q9Z92pkT2f+REmMY/h R5jyb/IkfurJ31XdXt92p1Z+p2lz/jebTp6aftn3shv+otnXo9mcF7Gtm+zr+7Yc5JbdqROl 9eOL13cff2SysQ7VvfNny+qWrbyfqbZ3fSdiAiOwF6cx4JLDZGJM/tcscNj0rsW5wKJvyUU2 z8XdLdvWfaVo0xJ9kerzwjjiUViYrQ9yPDEYH3eP7CCrfdnW/eEyUWnBk2SKjfXUqSwKzRGw 3582vRyY2umqdPLzCQ2zZYPCm+NRoUQrdeoquVxpryv2/tQMdVX2w4J2LFer9wtK6Fb2VVdv dEZ1LCnMBEUGH4TpNZeA/MLXcOLm7bO5g2PHsvpE70TK87iwGYDfO9UdyqFnZSe/UtNibi4R vEiTYmLzpbcZhTwtLIj60+FQIsUmMcvVezbUB9n1GqYoXN0h5J1u5FzwKEjMthLZYQ/0OELH ZbH1tGxOqDfSdF/PCx0LpCnOp4UmFvO1zu0Brd4XhlwEdnE7wRloJr3EGbYbrGYWq0ts5QUO XEY6cCwZVwhaEdnYCQm3Hb0DDINAmKdqUJVq2GpAa827YEldEogxp+s9tZh1xcO9bBoNeTS5 Oaqno/CoHFip4Vcfjo08yHYwjNDv1anZskNZ4wmKih/VbdHQgzKxW2ztTq0xVamug9XmkV4n XKcxA96L0CaN/z7LMF4lscPStMnSwnWZ7A7wkMKxztrYwdw2eKwOLJTBQRlNGdhMA1fVdcdm dbVziEdpZk3cjKZDHhWpq7kBNwX2quwvcp4lPMtya0J1bH3zasFKYGxge9VsDbkYnwFhpF7j LsoxLfPEJY7WHFw/Ew8NaGFamKNfstj6d9IuDJ2kGg4mG51m1kmaw0DwPLfJ5DezNCMvoQVR O0xj9WDee0quTMBnifb6ozWzYqQ5Ry4R5S8rfByoUk9xUkDIhMZ1HlKKrYF3ysxc9J2N6iwv KDcCZYbTRsQ7zFeqGCLTRZuy74IpH4ovaeTCbB4BacMDBQqVejQ9sl6j/BLrZ+1fBGnhNIHG flkNJxTvcVzuqTAUARfJFL3LOAp4kOW+L1Snj8XTNLGJKLstTVd1tGOXUsom+XNI50YOpbwI nBxSwMjc656dazT1qZezHlFMgygsQNaZA1FN0WgvRQFqFH4yjAB0/qYgxTieOzyUm0Yu2Hlf Q5PpVUUC2nWrdLJQ/ZZtJDsdt3r8n+lvgkSH0W8rGllMYg54rn8op70fBq7/BhtQ3TpgGf8j jWzrPkHz3iqVYKTAl80A9rrfE5I1snePID787iWqOTYnJUuyT6ZM6Gk/244YsDqpW4W+a9WA Nihby5btJXzUzvSFPcL6ZidXKyURgtLMMLGt44IF4hluPECrZrYJNInjx0MQVssNKAIP7AHU ojXZd4Wpe+uGOce6QfbNWHb07VOiq6O55G8zykjRjaFthH4zlgePI5ehvS4blFkQZ04q1WpG ShMRwcc5PxWLNkUX6aSkgO9czkxQUcrD2Of2vLdzcKSQKOFFEc1U27PDvKu9KwVEAqkkCzjZ taWbi2ByK8f6hVYdutf6gf4HZCpl5gNQeq6HvW3AKYf2ijUKraOnguEHqNg88iHgZPRe7/Dd lwdpRlVeIKeutb4YrwCAh7qv0YXjAN+4GgioKqcTqAZkcwoXU2IDXj+ebFYjPTU9ZTWNspyV BMIm7EwMMNLS0hAyssqzlKh36Vb79vsd4Jx3vOZoGEuFjat+8FXIeYS0uOdb3eq+R4CBHSSw 0zPmMgkxxYtoIl0/vvhp8dPi7hb3jN4ppMiTxGpUOk7N9OxoBihNTuHvrbgP6Em7oK7Ukuke yTuSnOoezIxIuXDjFF21oUnzRFZGPA+CP0die6f3YVIiFk2LPMktGm+5zw8oT+g8zsJ9+x2x 2qsOhaYDe2sKGc2OXH3XkSUArm8mFvTj4eY5W+mu0en7qr1Fdxy+w+aFxXoi0coNMD6aVu3X YvZFEiQTnTL9ZVQTEEaxUyLdfMtSUGumvoPll2evhiWxGa5lO58kYrSN1PdqWckLtISi4CJK v4oWe+rWaags+f9iTj5XmQURmqawlnJGfGLIY/QDekZoJQWVGoX+UsRG/jdCK+dx6hAspVGE Iod0Crz0OdJHja0diy4YdAWJX71vN/puODjxztua6WoluNlkSTGZiPpkRw49e4IiU2QSZ/Qh aXIlktP7jr3auNEfYrCl0Tj65zfqjWzc94HMXGNxd9OKFGjIY6dxz5z948lFA40b+3bfVfOb RubEU9dTfZ7TdoqkrGsA00MCU7UQLtMmKC21au33U7GVx9CfSfZnYksTrVGAMdGNY/+nknWp +8l8Rgswld3KLxb41Hk/fFA3aM8fbNYP9f1+QCZNCDESmPmhU/a47SPPu04d9N4GEpvksMIf nR8EvtcXDI7szTxrbVvtJcqpTyeuFImF05djU1e1vZEK6IPE1eLidm6KhlEmEjQjpM/klh5y 9lZ/J2ts6nDDpBHowr49mUFCdGJ546igyZ+5qjtsLNEucRFPJubLbvY9wQVgBvd4pfQDGgek wkOPUtCqdqnZ1ve9ztzPFxQG1oNKykfLhvomt8WR/eQcr+4aVZLUJLWk2zuGDBAeLJUxOP3u gQbPw4nBDxJg2ABBK+/f5GPGRM79VR9ba8ikoMhwraFLa+IOlS2qev0OY8q0TEpXGqdlH6/f qWbTKfXp+lf9EhQrHBWpkxEDaQryCjUrpvTaMkgD/WU/gY1+k/yJQGeW6C2y/nnrQYVE5alP 5L1kxb/o3Zs1++3qt6v/AQ+dnMxlbmRzdHJlYW0KZW5kb2JqCjM3IDAgb2JqCjIzNTMKZW5k b2JqCjM1IDAgb2JqCjw8Ci9UeXBlIC9QYWdlCi9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCi9Q YXJlbnQgMiAwIFIKL1Jlc291cmNlcyA8PCAvUHJvY1NldCBbL1BERiAvVGV4dF0KL0ZvbnQg PDwKL1IzNCAzNCAwIFIKL1IyNCAyNCAwIFIKL1I5IDkgMCBSCi9SNyA3IDAgUgo+Pgo+Pgov Q29udGVudHMgMzYgMCBSCj4+CmVuZG9iagozOSAwIG9iago8PC9MZW5ndGggNDAgMCBSL0Zp bHRlciAvRmxhdGVEZWNvZGU+PgpzdHJlYW0KeJztWMty2zYU3esrMN40zlgwARB8eOeMX3Js VZHV6aLugiIhiY1EKiQVVdPJqtv+a3+hFy8+ZClxp9OZLjpZOAZw3+eee2kHE+TIf+ZnvOp9 6n1CRJ3ZH/EKvZv0zschIgRNZj2C+uoW+RT5LkOT1ZvBcHI9Hl5PTie/9DyOiRegybbHKfa5 B08nyZv+1fjyZoKuf12nhSgv5ENHviGujx1O9aMnsa7EaioKRB2HyDfED7DPzPVjVMSL+srH hKNJ3OtTeMNd1GeefPT7wOiOQTf2PKZls1lerKIqzTM0K/IVykQ6X0zz4jv5WvqpBIiPQ0a0 RHnXVhT6TqjPxXKZd+zLELjHUZ94WLswbCQDHLrG/UMWGYh41Ggub49YzNDgCnds+g7mPg9f axMtU3ndhzp7SoFLMQm50f9ZNLIOpsQcZ6IsUZWuoBzPb4YPqrbSLc/cT55P5dn52DfA6JPA w4y5jVdXokznWVSJBI3zTaU0XY2fT9FTBYcXWtziygZH26m8OhzWntpOTn0f0xAQqHOq4ABh eaGNa3TZ6PRw4JiXSQLALLuVpQzQF37TnXEXRQ5moWtrqiQ65RyP2vapYxBapHmRVjudE0gi dB8khQG43EC6wLULf3aT1ncDBpeHk13KLKO0RIko4yKdwk2aoVLEqg+gO3C3gDqCLfjWp8qY iwmmGIr29uzt2XikC6761ifKLd220syeWzXS+uZlncObvNty2OWm4wrRBSncOTUaj4C02KHx CEWo0BF/VPUDDdy3zSPWgOKFQLPcNC6HyoW257ZpNtd5utgHM/Rm4LLG8SYLHYGXISsAs9fE 6phjwKvxJwKGSzMIZSbvXQL4Y/XVCx9ZCLklQePjaPDYqha6N+nwHZuOPM3OR8UmE19twb7L tUyD/KfGX3hFDK0rHeh7UJfP0G8nw3wARHsi+WLwfHqGTu7Bnvz1Xv2mDI9ElkDS5ekIfPzS 7TituzE7OmhWBWAUIT11oE1c22GGs0YjQ1G1+sDFnHvtsO4b/RzTl1lSA2unbVjpto1rYwKm QIgD1nJ9mFftSlIcerypJCrXIk7/iC/2w1evGv9+OEg467IqRLRC942jysMQ+IqEQcfD+/0k EELl0GkZeWgn2acGolFZQW/doKEdIlVu+5PItwEE7Flj26jRAXivC5WUsj+rRVShrWo+QGw9 QaISbUqRKK2Uu9gP3ONQbkKtaU22NZD2ZllJ+BUiFmrMUUrkQqBpQyLkuKoVUH40FyUCPqwW aald0fKmh5saymlAWjU8Q1GWSD90LffZVZKn1mfk6tAm4PfG1vCwY3rupjpBkHnQC7aA5NBa wKRI0li9bgnbUJRXuhgmApCuK2eYFRxx2deJtUgT6DHpzAEjeolaC1Go1EVZE8/D5bCFe+YA 2OxKBTnTGWEUYBCybkaWFnDZEcAROVld8k3ASVgA6GRhqryA9E1FHEEeUTpTd4/jwTsUL6JM BgIHmZG40Y0M5XK4b5N3zBkO/2GWL77tzCraGZNYLyQh9gITymCG0golOXhT5mfao62ANOjK V0U6nwMYIjjpjBM/xI7rGw9aRNZeNroYMTEwzwMmozU+FmJPNYU9zrEqtpv2vkLCPQ6qEySb IXqBGBkA6M+XSQMRK6IIAWuLIWxtYFypxk/tYMBbS2jpMiqWu84CDV1WY/ZMtT98DcD0NzKz pjIwLWGiE2bDNitDIipoWVkoOJgvIARdpwTdimxwJXs6Qndy67fo13RWtZv4GEoYMHJwBLGW SQAlSsZ1oCrUa1cFgLMAkizENM9hrzPYALCUi3wDGS1EP82ADrMqlZSoiXG6U2QhiS/aIwmF PeaR5rsMGq8UBhT62JhfCZmGtFyVKCpEh+KeWhTHX7NCMr1C3rb2Rw7jqN5svr5A2qf/3gY5 h8qv0e3eGhlKHgj/8RoJE893eXeNvP0v75APeRwt0aP6EC8X6XrPx8azp8PbHyx6gyxebhJx 8mXPVvvTzg7lW7unciAdTv/ensqIlvl/T33lntpGJnW7G6utxmVZiqJCP5qPB+Bfu1FmGSg7 1K0EPhiYB0MT3rsKtUK+Pb+DobAU5s9CtP4K2Z3f5ctpkecfz9+rSygjs3yYbz6rEek5MMeI +iOR/LMCt39+AUI0DNQ0xrZH4RH3Td4N6fw0qvmGyWW17gLgcOL8LC+vJ+hD70PvL6GY+uVl bmRzdHJlYW0KZW5kb2JqCjQwIDAgb2JqCjE2NDYKZW5kb2JqCjM4IDAgb2JqCjw8Ci9UeXBl IC9QYWdlCi9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCi9QYXJlbnQgMiAwIFIKL1Jlc291cmNl cyA8PCAvUHJvY1NldCBbL1BERiAvVGV4dF0KL0ZvbnQgPDwKL1IzNCAzNCAwIFIKL1I5IDkg MCBSCi9SNyA3IDAgUgo+Pgo+PgovQ29udGVudHMgMzkgMCBSCj4+CmVuZG9iago0MiAwIG9i ago8PC9MZW5ndGggNDMgMCBSL0ZpbHRlciAvRmxhdGVEZWNvZGU+PgpzdHJlYW0KeJytWMty 2zYU3esrMNnU7lgwQZAEmF06cRKlsava6nRRdTo0CVlsSUIlqaieTlfd9qN78SJBWZ6kj8nC EXkBnHvuuQ8iwAQF6p/9m9ezX2e/IqKfuT95jb5azS5vU0QIWm1mBM31W8RCxCKKVvXZ4mZ1 dXtztTpf/TxLYkwSjlaHWRxiFidguirO5q9vX71ZoavfdmUrupfKMFA2JGI4iENjdCd2vajv RYvCICDKhjCOGbWvr7M23w6vGCYxWuWzeQg2cYTmNFFGf97ZvXNYjAmx5/dZL16ibxqB5Ab9 /uJGLpqNfIHWZzeL9fkFerFAlex69KrrRNur5x/s44PaLqQEUMZmK9l4Zt+vz/+Yook4Jgw4 Igk2gF6NgDhOI+uM3gFpxsIUw6rUPC9rcH99phdRisM0sS9W6/PJQZzgiDP+mQcdyqYR7Rf6 OIiKMooTHAO/1mqh6Q5wktp1S2+7BPPAGhYFxK+bICFBiNPk/wLiLY5wyoi/+Fr0bZkrgzmJ AhxRj+cb2aOy6UW7Ue8jBSm21GW5QN1O5OVf+cspcmasRujfnYS+6/pWZDV6L8vmctnuQUY6 cinFjKR8Ern3x4EiJMRJEnqHfPAlykLrYgb6u12i7zpRHINUNp+3/A26EeXD9l62qJeaKMht omx5innisB6ycQ8Ig8uStugUhH6b9Ub4cYoj5hSYdWhvwc3DOMKMRyOqDzLPKlTr9O225Q6V HewjEKhlX/Uq69Sv6tiqFvk2a8quBua6PaQ3HLJ4e71cnyOguSmbByQbg3VOqM5kBW4MtBHR 4UnAMVr0Q5WhIaYstC8bIQrUgFruBfpFO8kxj1L7FkoQKhVYwN/KPRyjPFHmCv/rW4CDjiCQ lECs+Ki1fVNBjvh7TCIxp2GMaZQ4jw7SzwZCMXUVr8nWZ2OgUihzzLz48uItMJSZrNCI4CgP UaBSio6INkoPyuYB8OwuUFb1W7l/2KKy3lWiFg3Ux1I2HaqzRyR36v9ZVT0afkIW4dglohA7 7UwEOFOtahsV2LxTVRZgoDzrhOLL94szzENq8T/ej25RZWD2zmUtBp5b558pGTpS2FIE/FHr Hl5NC0ZgA2kYAcdr7ZqKolIvun90yC5vQ2p7GuiZYM6Yc2dX1j+VTV7tC7E2ZJsFQw8MOKYW dZ3lrUSF6PK2vIcDwP9O5PrMCBOcYFOvzIohX5aLa2S39suKpfA4d1qRi1KzGUDKM+viR5Ue z2xUgwKzB9E5dZistautl14WqULmZQ8opCkUDFM2j72KcIjRauvB9ahFmpDOZAmke76vlJEl fe6OshggPR6k8mMEAxNEzIlXu6uy65/QaiE2J6JJYPKIbElTlLwWHUwdxWdGcn1WiL8a7bIG TMME03RQus9CApybYmAZADgFEFYohw5bAdBAxTosLkQd5F1VqNrTQdahvW0t2NU4Kw9nbiYN 9L3mBUalxBVjnRPPyQW21hAghwblEE5xQiNPOetpGTmtmDjA7IRebNU91s3zVfdZLcWgJX0U jAEB514zVgJz/JySeK87rqO+l9ptBIJCO9GWsijzCfPOPyOcsTsmuqYM/UV+FGNBASXGlrK2 LQuB9MnHO6JNK2s4FHqaIi9rRtgfXt34zYpDq2EjW0ZfAUgpjKZ+V3Ya0K7V+053q66XrUoz kWfw3LQpoazuBGQa9FGFZe0plGl9isbqxO4zbaeyBc1qMmDIJakL5qHRNLVCV2oYapPYhXJf gspUR9HNpAOhy07DsBCMWwzmjeg4nJWbUppnphQCIyiNyCenFOu4bjqnSLm+XXw1UKIpMCve mGIMug3iQdfPgQHtE+qK7afBqN5pjsSmCac44daVxQaVPfAMaDp5YRAdBNKzCCgXxtqHB10r mknTJMBi4Jr+4f3pTudpXG1l6yxNYAaIw9HHyb7gmVt+2PuDPkmPZt6BHCWHbJoA5jgkoaDt j+29fh1C6YmJzSN853sBKN30XFZZWz36KCkU+tA1ggtdxeBTL+aBJXWTtZNR2D4eJy7K1eTi KChED5mhwtXq2Sez0SrQW9EsXquylKF3oqqky2xT3Hu/Dj2nFZpAujnuPqkVg44xHAfcwdvC 6AvpJmUvCqsQkIztF62Ylw1kcdOXKpNNPkO/dZV+0mSwyeYY23Mh8zoxjtodylqrEW3jGptX nu/8JodNx2S2Y7raDyUk1Imt2nGEofDcufaqy3/MhsHuTsGd9t2x8s6N4VAn3kzHYdg7toG1 qIeV8C4Y9OGX7QAPj1vgSO7bXFzqaoV2Wdk6qMCaHfH1nEuSAKqzm0XFzgRrI0EQ9jMhTV0N PCjSdRReTtmZhyFENfE7uTnLN35KQvgPCAjs4/FuIIMPJ+/bl2BG6diUjxFS+KjjhB9/u10P X2VHKDU2OsTx6TWKuigxw/KLP47ZeDLyGjZ0KYOOnyZ8rGK2r9+dYGr4GoYmpdeMn8P/7sJH pYv6+V7/0gcvTS6pp8vl8b2O3Xs8dnnyWO2A3cjcEcDUFkXB9HZnuXxymwOFKk58t7xiDyMS e8KSvkp7NGe41f4ZVys36g7BIGGEOT2hTX/KZAFOeTiZMk+k7wA8io35f43Hf72Am1N38ZZw HOo0Egr85TvoW5Ww3xXwAWQ9e7x8J6v7VspfLr/WLwl8UrrhR+4/uoKgbqDUPWWiXtvSAFOM q5CTYRiMYmb9tUXxBycTGIfVBcyQltBcCPlRvbxaoW9n387+BtLH6X9lbmRzdHJlYW0KZW5k b2JqCjQzIDAgb2JqCjIwNDUKZW5kb2JqCjQxIDAgb2JqCjw8Ci9UeXBlIC9QYWdlCi9NZWRp YUJveCBbMCAwIDYxMiA3OTJdCi9QYXJlbnQgMiAwIFIKL1Jlc291cmNlcyA8PCAvUHJvY1Nl dCBbL1BERiAvVGV4dF0KL0ZvbnQgPDwKL1IyMyAyMyAwIFIKL1I5IDkgMCBSCi9SNyA3IDAg Ugo+Pgo+PgovQ29udGVudHMgNDIgMCBSCj4+CmVuZG9iago0NSAwIG9iago8PC9MZW5ndGgg NDYgMCBSL0ZpbHRlciAvRmxhdGVEZWNvZGU+PgpzdHJlYW0KeJytWE1z20YSvetXTOmy9pY4 wgy+fVPKsi3H0ioSUzmstrZAcCgiJgEGAE2rUnvaa370vp4PYEBLiQ9bPlgk56P79evX3RNw wQL6Z/8vtye/nfzGhP7O/Vdu2Q/zk/O7nAnB5qsTwWb6V5ZKlkYhm29fXd3ML+9uLuev57+e JDEXScbmh5NY8jROsHS+fDV7e3fxbs4uv+6qVnVvaGFAa0SU8iCWZtG92vVqu1Atk0EgaI1I M56G9ufroi3Xw08pFzGblycziTVxxGZhQov+e2HPLk9ExvPI7u061fZMGyhzLqMsN99XW9z2 8EpvCkMu88T+MH94PbklEzzK0ozNRML/+qJDVdeq/Zu+DiDQojjhMdyxq660dwFPcrvv1jsu 4VlgFy6XgKubWCICyfPk/2WItznieSr8zdeqb6uSFsxEFPAoFOOtN03PqrpX7Yp+j8ik2EJX lIp1O1VWf5RvppanZtVo+s/Pmr7r+lYVW8Tl/uz9w2v2sanq89t2XysTQSEBXBBNIvjxOGAi zEELH6dP42UpT6V1teh6dnf7jt2o6nG9aFrWN9pj5ISgtVnOsyS3cB2K8QzgKSy722XH7lm/ LgA4LQDzcb2Do2P7Ti2PkJA8ilLPuHvfOOEOvp2zRdXDvapeVmXRq24ApevxkVUdK8q+chYn +ngRBwDa4vNFjScHXApr1TFaSCKZ+6F5eOUzI0lCm6P68h91vgQ8yywwSu0uNkdmBDwMKceR cEEc5M4cE0N9sJGAnIdBPAnmj5qVkeAyzKb5OJNwQvhh/dSUxYZttW5062pHkPRrxZA3+03P mpX+tNGrumbflmpmyelv2qpyXdRVR6Tr9pCZojNWgkd0y9X761v2RXsd8ziz5mJz1dQsBCJg Z13VjwwfNQ/G3BDYIcNozI2iXpr8WD3RDr28X8PsXdH2VbnfFK21lHXrZr9ZsoUaE/hAwQLy Ine2VXW52S/VkrOLbhDWRHARRBa8rm9atWRr1aozc9XAnhEqssV8XaxgO8z0VQPE4cL5/XQ1 ckPwXFhuAKMvITwvm7qrul7VZQXCrosjdhLBg+Qbds6igJgwuLVQqibTms0X33twW4ZOpcnp q35wWmae07WCyzVkaqHYZ52VGR8Ct0OEVgaKttmTu/iLFhMeb++eC2MORONsDOO+3kCa/TMm ujELYU0YDe4cGh9OESI5rNzVhZ9rpFqpn2uFEWNtEa7yLAoApPREd0XqRWseYc+O05oMbA2d MM/NfizbFj0RtzLSxBZP5DetP7+Toa3zMymxOYqcA7tq+29LNatBZsPQFwTw1+K7Lcq2YUvV lW21wAVVzTpV6jsjLnjCTVExO4ZUvr26fk7zn+EqpXWrSqUVR9IxuZM7ovELB20Rr+IRlLRY GkGxu4dkcvDKEALv1bQznbiUO1o+jr2KuORsvvbM9aBlGpDOcApKREmORRb0mbvK2gAyPTbk x2hMQqojvFhvkGDfwGpNrJ+JpkBNimzSESRvVYdObPmdkXx4tVR/1NplbXAoE4AmncE+Cikw N6ljEYA5SwC2JIcOawXToC06LEMpcyoHb+qe7W39506BLT3c8guTEL9oXFKeZNJmpe51XqIL jtYmIEcG5ogs5EnoM+dhmnTPMyYWPBTJM4yxEnXMnIlGhZKHqcvaF9mEJtrkCLq1IMu8wkwU 2/9Jh9TrGurA7xvtOAOl2E61VYM2YoK989BQZ+x9bAkfKOm3EeBibEFr22qpmL75+ES2apst LkWRJPiKejT708WNx22JFivKkhEuQ7Eg5kE09XvjmrX6hWZNoDsII/EdzZqugboqLlRZACtT DxS7vrv6gVEzQC7gC51Mk0uNdiHIQZw6fI6bRi4z+VLT6JhhDNkWT/Y6I9gJqoxL9KsVQ/e3 bGBJ15wZaw6K6cqGyKI7f3zU2VSrSXFJ0XG5InL4OO3wXSPmcYCOWqujQ2iqGrq2w96fTlAK 80mnbgKWx2gFhENkCBHxqphSxF7YIOkHTvjogmC654iSkWn83vcjTBLXMVbolzZPvukhxHBo dM90ppMzqQvIqh+OAvOAiIWK9MI0A0vVIxUp/vjiEd2g8RBVOxhCboK2ZO9VffWWsrdgH9Rm 07gEcI2d+tbHY9pKRN01un/K2jWGiVYtmqZXS8uHqjeilOeYiQZRspLaqllVQxDrviJRNNKI kuTEcKLDmn9SopDFqWsYVKfG3hizRqsmgnVvBMtYYHdaC3QtOJZwSuL72znNNJ5CueFmKA/o UA6m5wqBizWmaLXJJOzFZ/prt6FC2JgEddS6XzctxqSe3ZoD6P3AHdCv7QuA5LFMXRYqU4Mj QQ8XA31x3i1mDioXww1/N+TFDj5JNylgpRWdi3ZC09iWUUOrEiJ43A67KSkO0akl45Tk9YRm TAKErmP0J0A9TfTVZkP1cwAOPXY2TLgGOLjhXNA7bSFH0HQPpr1e7lszkiijz7rzTkNvfsMU dXCieDROETAUnoWiM2gI6Nt9CaYatEKU6sTC8QsdMRLhnb6GhnKnjRef7i/PjIVZhlF5aDWa evM0+OHcTXI4EeYTd6dtGFg2YkOciIbFGLtKPR/AwMjFS/W2ft3T1vfagzTWYvGsB/M7K95B JKzK/Hx5xhZNv7ZeJDwfcXYOUPAcc519OT0NPOsMZR95YwqkWzdJrgd/QI+Rg4FDFBN68eKE DuXO5fdP6ITqbgmTdH+LPwob9AFjsFm6Zz34gIX7zjCr6r7xWOCC3CHve2w7gVSisAyT+EQ6 zGCX05Pj6OfRG8mLblOJC11RgNuVn9Uu6QJp5aMeqwaG3tC90AH0YgE9JSlaMWWb0jB0RPm6 21SlfsMZW7XOlPqMJ8NEebFt6kfIVqMFEDDhk00AGfB8mA3MDIhZFT0sykz7ZKc+ysYZJosN cDnt921doHKBXe0eU+opm41Ze3dL6I1R+JUM0o1i3+wmjx5wqth1NKpA422DSKe4nTuq6Xrr rlVHQ34ejOJ3/ATlQoVev28L0wNinggcZNASnXv72nlZIelRQcu1U6c7I+9I/LFBMENMaoeY 4bUkzBMeYUSYycTUJYHu2vhw5sT6oB8HEiuYu54KidPIcS4a3ZvZ5UPuvZtO9wJKIlx9OX7+ AKVE/jwyriY9WW0915M8FKpq/axBMCt6o3LtSrHpGt0bTAT+jJpH/ZORN0nvUMmQJd0wfoZx ynNCyIR91aCLMYM1jwOnRIchK99MgYbI5EmQHs1pBlpJFPdR9Q94BlaMYyLwH7f/CleXjuPD PUjiP0wLaH04jmJHtoMcGD2E96xvnhOvh5fBI1vlIOGaH2/YP2qd97+f3jRX9ao5PWOnl1/1 I8npf+wjB/IpSrnU7igaUc8/IJU2ys71MnCtyNP5h2azaJvm87nW7wQyMzzeNPsvhvKBfqY3 4hS6MV1hNPK7sWEUxaI4tUG31P/n7TiM0uP2AA96ViH/RT9eztlPJz+d/A+GkjajZW5kc3Ry ZWFtCmVuZG9iago0NiAwIG9iagoyNjA0CmVuZG9iago0NCAwIG9iago8PAovVHlwZSAvUGFn ZQovTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQovUGFyZW50IDIgMCBSCi9SZXNvdXJjZXMgPDwg L1Byb2NTZXQgWy9QREYgL1RleHRdCi9Gb250IDw8Ci9SMjMgMjMgMCBSCi9SOSA5IDAgUgov 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 k23dmKEQZt5p4hzt1AtXnshPgxqUG1T+C1AdfP0OIHp+/8AM6QnMP5myst8VzWUBsnmIZjaj tXqZYP2WgyPKDBxQMJXrjvd7eCSxjWoUh0fxjJZwo59GceXfNqN4ARpaTrdRMsdiH3gn981B 10iy2DUovld2wR1RidC5qCxcspzwRTTPSq972HVtgwRrbBrR+FQEmipeWvaZUzfjrm6hvPRk AblzdIiBD1WZeDoQqI91yHaYvIuysl5/bfRMNzG9Cm4Yh5hsE+a6O9xnyqIMvB84OMIP6giL sIzyfR3R7usZzlOWRbEWCEtZEvLTRVlCUtJqn/TSdLjrBYTMrVxEEKzrDZcGOIt6gdPVJEKD aKBF7O4U1/P3C+rqlDwn+wXv+aCzADVRfwYnnkmAwcB0SB+pz1SGPEnDGMx8e0CitQkjn/Yt 67lLf1d/DpmZJfjBoL9FTtSEm5pr+lDFSg8e9R3ItR8fsFf3dd9w+uzWNM9zuD/jp19mxjqA 0Xen14vbk+/tx03eyd9hCFDTuolDr79qCQvgdTu4env8D/iJtzfR29ubW5jDzxZGlU/m/mkX vn3szXTsNPVBvtPS5Psd7yHhZz9Ckoxuw4Ui9p+bPZ39KNu7QcrPZ//Si9jr3bgpdw9+hoBy R/3JcdmmogVBvDHzV1irOIRlhS0ZO9P+ugirtcwdvWFOJyz5DRfPl+Tno5+P/g8i2XDgZW5k c3RyZWFtCmVuZG9iago0OSAwIG9iagoyMjc2CmVuZG9iago0NyAwIG9iago8PAovVHlwZSAv UGFnZQovTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQovUGFyZW50IDIgMCBSCi9SZXNvdXJjZXMg PDwgL1Byb2NTZXQgWy9QREYgL1RleHRdCi9Gb250IDw8Ci9SMjMgMjMgMCBSCi9SOSA5IDAg UgovUjcgNyAwIFIKPj4KPj4KL0NvbnRlbnRzIDQ4IDAgUgo+PgplbmRvYmoKNTEgMCBvYmoK PDwvTGVuZ3RoIDUyIDAgUi9GaWx0ZXIgL0ZsYXRlRGVjb2RlPj4Kc3RyZWFtCnic7VjbbttG EH3XVwzypLjSmsvlNUAeXNhxnDauIwnoQ10YFLW21uFFIakoRtE/yEd39sIVKctW2qZvRQAL 4M7O5czMmdk4hIIj/5nfNB98GnwCqr61P2kOP84Gx5MYKIXZ7YDCWJ1C6ELoMZjlw4vL2dnk 8mz2cnY/CHxCgwhmm4HvktAPUHS2GI5PJydvZnD2ZSUqXr+Sgo6UoV5IHN/VQlO+ang+5xW4 jkOlDA0jEjJz/D6p0qU9Op64zHg0ZmiKejBmgZS7L0VRXw+no/Prl3A9/AH/rkR+I4o0Wy/4 9mCMf7Oybm6SuuZVYw6k7rEbEFTnKnWiWPJKNHxxU2ai1mKjatXg7dcqYIJiqYw2gjFl8sr1 8N5EmA5ojN+V/9qto9HRaHJ1PURT1r379mjr2KpaF7zuGjOueQFxt3Z+UBf68fXU4AH/0g1c q3G2KsZaRQ+Jow52uxD13TmEVIuSltM2n0FUmxR5zhciaXhPkc56W4bGMlXwL4azJYc8Sauy 3gdGUiz21YAoFiJFM9DgbVE0vLqVRhhlJPBM1SUpr6EpYbMUWH1NlSiRMCQB9U1iv6aQi7tl owBhMSWub0thzuG2rDZKLSNh3GqtFnwBc54m65pDeQtLRBntLJMGkooj6GmSQa66oYay0Cdb F2Vryf5xA0pYRK2rBC7Lhtv2kt3F/FgfKxVFWeVJlj2gzuxBO+y5xHXi1mEJxekEUvSihmRe rpu+M0uxGsFcN2eAvetr5Si2WfICkQZdK7BMVite1CMFrvm2EUWB7d0kH1UQ1CGxwRCNlcod 5KLAV40TEtcLje+f+bahHOJS87nSLUE94ju0jQAdX5VFLeYiE82DhN+mII5IFEaRzYEo7mxK PZ9E1h6mFHPez4LCb5n0vXQIY4rIXEqCyG29hcr6q3kOy7TlMf5pzWusfmvZx5ZmdGsZ053A XVWuV1DqCBmLiRvavq/LdZXyYy2ySoQSwmwEkWO0kF2KbE/HbqwbZk+XdOlM0ZYx90eyh82y zJSjapALqNeyPRCiVx0t44D4cRx3iPF6eGGVIXJK1U2S35xOkIMukFXg5PL0ERmNLqR7r+HN yc/Ts5Z6ui7+MoETJf6rqrDepZybG8qpDV5kWwrV1jDNNxVPufjMqx4qUoftJkySdvhPQ32W +fZwSxfMLvl9XzD36Lo4AOf0CTi1dvYkotNnEMVfx3G+CdTpAVCRWd0urP3p9T+sfVi76DwD a3dsGoDj7dxMMzWFXnR071Cx4xIfq/1ZKn6U4hcgkDSrNY7WWzUELs7fX0FeLtYZjrwKSvxW PRouurUpDrjIgpbzdJkUos6RfmtYcExpLgrJoJKSpRq+f2p2BmYUEuZvZzpmUV1e8Bo3Ukn2 e+K25O54xIvsKILmEbk7bmhg0JROKYmZ3zK6mVJYS46NqeZFA/WKp+Jrqgby/AGm0o9zxd3U ZcRrd5CnM4Nbpxe0M/RwZo7+RmZ0IqKAUGZH626y4DtkhgURCR4lRo89fWSMf1OqcB/yXGYB gWQnVSGJfGbZoZ3ACHbkR9sJrJJjc4E6Q9eJ/lUuIpsMdYAjKGq3hZ0W7uRGM6InQwp7Kdhn Hne9OKIHze/WgjWndzonJt52pSvKQm2nskb6Kfy2vonxXdZup/+gb+C2KnNdCdi+4ZZFp6R9 xHTW/5o38OK+98oylW4OMZDEjgRlLcadr91g1YzAyjSLPt7B9QolVWXvI0UP36ZR0MVbb+X9 7lt0pwlGR031tR7CO+nxq0dP2iAgodr4TIQ7gX2nQdgZUXYAnpabom4qnuTvrqYNPo9aq225 cKGYWzqOna5X1K4LV/LtesULtV7vzp8g2MZ0WppeoIEpgycs69IMid8+uWzlytRKybZKvxb4 sDSf8D24RBcxdEx/2ghMLvI4oURTm+tgW/vP1dD5wQKKXOLE3n9TQNHBCjrvlc+Y+Yw4CPM4 cDDxKPGGyx3j+C0+fzNu/nPGddo3zsPx2zKbV2X58fgnQ3PMPhbL9WcVIKqKQ2q6lbWtyTMM aaox7T1HUcgPTUgS6YDAb1d2KcFXTBQwYyG540C93+Xh2Qw+DD4M/gIJiiFKZW5kc3RyZWFt CmVuZG9iago1MiAwIG9iagoxNTY1CmVuZG9iago1MCAwIG9iago8PAovVHlwZSAvUGFnZQov TWVkaWFCb3ggWzAgMCA2MTIgNzkyXQovUGFyZW50IDIgMCBSCi9SZXNvdXJjZXMgPDwgL1By b2NTZXQgWy9QREYgL1RleHRdCi9Gb250IDw8Ci9SMjMgMjMgMCBSCi9SOSA5IDAgUgo+Pgo+ PgovQ29udGVudHMgNTEgMCBSCj4+CmVuZG9iago1NCAwIG9iago8PC9MZW5ndGggNTUgMCBS L0ZpbHRlciAvRmxhdGVEZWNvZGU+PgpzdHJlYW0KeJzFV9tu20YQfddXDPJSpbDW3F1eC/jB RuxEaR0oEos+1IVAk2uLqcRVeIliBPkDf3RnL6QU2YriGrHBB0qc4VzOnJlZOoSCoy57Txe9 j72PQPWz9pYu4CTuHY4joBTiqx6FgZZCwCBwOcSL/vBdfDp+dxq/jD/0fI9QP4R41fMYCTwf VeOsP3g1Pj6L4fTzMi9F9ZtSdJQOdQPieMwoTcSyFotLUQJzHKp0aBCSgFvxeVKms050OGbc RjTgqOa5MOC+0vsg86K66P968PriJRzpmAgK0h7zCSpRrpS+JDaGtEcjEhoP8znkRS3KqyQV FQyhatBhPUtqpTvwiRdFUdhaeCVXRVWXIlm8HU3qpBba5cEQneYViLyeYSJvMRaRgSxhVDaF GIkiy4tr+GoyiLoEIoxwQHWcyrLOnSOQgQnse57QD1TqKcgr/ee2yOv20SJJZxgBpgWVSOtc FuASlzCiM7IuOsexMiVqeGEhnCgIX3ROUIIukg4lHWWIVaYmSo0aeljNco2bgFI2qAizpIJS pCLXXpFtvqeBd7G6oWXIJ6GEijJa5BBGw8iIsov+uliURIi/4YuusILYMOobSnic+Gwjt82U npYVkydjxeRxrOB7WLFUwRoMD8plvY8azPGIT9nzcMN0vy66NswDLBSL2jIlRQYbiYBJjWyx yFmDcCf3Z+OQpsyaPPFiuYc4Xf3msqqnSVWJsrbjcV8BA0Ldn1O/B5YPX2FKR496x+ugumy2 LAcW8Hq2aZc79jEGq1CABNoFYfDQlY8CtbCspkIN+6SUsA1bW4hM3KpCYBNNuiby8NoeRVTR wPXWBblbh59IpnujPzqCePzn6f8izo92P8OqsOAZu9/0fYR7QIPPuy0Al9pgRFzmWkNNrUMx 3Cig3RMb5KDMIX5Iv0sOC82DCeJh4o6/gyBPMXF2ZvFIovzIhOnOiM9zfNgxY/zAffSMuZ9H DidhwPfy6KEcYh6JfLqbQ0/Ln/3ccdmaO1dyPtenG9ch3GvrtlJnomUlmkymMmuBUoDkCogK klIgnyoJTWUgWiTFZqkYEsRjFuqb5TpJrhRMljo7fFVTdCnS/DZNlHVzFOIORslpm+ZJUuUp MvgGxqOzX1pm428oRH49u8SdXMuWpFS78kPi2qGx2oBZHZotc8usUlQZj9RKr2RTpgKaYi4q fAyj4fngWOOqu0B+2wEMueTTzQZw7rC/LPMsE4Udhi6JvK7uKvhClotkDulM5qk+K7aZmMMm tkvL9nv2GvZfoDgQKXkHgcKm3WtfdD02uJZfYVPAcHq8mJq8pn9IvJnVhG9OO9Jd9Mejiz4a URe0tjhvLZWibsoCjJW/8qIwVuD1AeyyA2Yp2BYYrG19Ffd1QCWMT+SL+urccnw+Hp6QQnyu pzO5xJysF2gXz9q4/r8JwnZHKAcowyHClPhMqGQO3+AhdS7sNzVOSlvQm8M3cn5ZSvnv4e9a iKOHe1Yom086Yt/BwlH9he0rsZGKOXLIzpF1o6x6DJW8wPLRJZT4BP4edR/p2LChz62H5FoA 9f5RwtMY3vfe9/4DXA98sWVuZHN0cmVhbQplbmRvYmoKNTUgMCBvYmoKMTE3NAplbmRvYmoK NTMgMCBvYmoKPDwKL1R5cGUgL1BhZ2UKL01lZGlhQm94IFswIDAgNjEyIDc5Ml0KL1BhcmVu dCAyIDAgUgovUmVzb3VyY2VzIDw8IC9Qcm9jU2V0IFsvUERGIC9UZXh0XQovRm9udCA8PAov UjIzIDIzIDAgUgovUjkgOSAwIFIKPj4KPj4KL0NvbnRlbnRzIDU0IDAgUgo+PgplbmRvYmoK NTcgMCBvYmoKPDwvTGVuZ3RoIDU4IDAgUi9GaWx0ZXIgL0ZsYXRlRGVjb2RlPj4Kc3RyZWFt CnicxVhbj9vGGX3Xrxj4JWtDmuUM731zEHuj1jYUSUEeusWCS45WtCVS4cWyW+Qf5Ef3zJUU dzcN4BaF7RUsDr/r+c53Zj3KiCf/mM/8OPt19ith6jv7kR/J99vZ9ToljJHtbsbIQj0lMSdx 4JPt8Wr5Yftm/eHN9uX24ywKKYsSsj3PQk7jMMLRbXG1+GH9+u2WvPlyKhvR/kUe9OQZFsTU C7k+tBGnThzvRUO45zF5hsUJjX3z+H3W5Hv36HrNfRPRwodTPyD4lOcqUT7s7+uGrFdvv7u9 2sxv5s2pu31J/iXf4xHFSebLk+Xu9oos714f7163rWi6u3c1PuQr5GYuX78rq040uywXt1fr 1e3Vze1L2NF/lTXft7Ya0fVNRbShX8qq+lOGVMUows6RhbP1mzAFymcspYlO/9AK7ZP5VBZh 4lgn+2p+o42Oran/j/P+TZtf8PDpej1dKzIp1uEPirVR2X1LlTb/5fq8Xy+/p5X40t3t6xMy 2ZA/W6gB+gtpGmXjVAFtVHKSVcVF/cqqKPOsE6TbC+IqvGvqIznvS+C4yLqMnLL8kyqQl1I/ DnUiomtJu6/7Q0HuBcnrY1k9SPs6WnPSBNjVxtzHuqzGr7Wi6khdKffrFekaIVSMm9WWYAJP Iu9KZRCzH4Wykjz2aOCbGD6PKuxRzpLUFPmr/D6mScBT8xXVVUsSGqQR4orGxRmGr2zJfdai JofD1zFYybEuyt8Fgv6qgkVw/QGh7xCuwYmtaV0Z3OrcB8AorIJsJKMEYIwkMLFdzhsly8ox D7JNImaw0/YoYUbyrBVz15Q4pJEfpkNTVPc25FweDrLEdVM+lFXWyfaoRxkpyp2mrZDGLNBv 7kQje9HUPULVPYTvVNVK93CfXYyvKmiMMqbMOF/uyBn+KlRun112zaPAryTbhDLup7Z7JHP9 0zyLloW+fvqo89YGOh1zBwCM+8QGQvJtSLp3fwXqSNsB53MZYSXQR0Ayy3NQuSskixnl00Lq SoR4kgSjjo4xM1eIzQr8I6umr8QYT3Aj4XISTQkA5SoUBynRttmDaHEi62RgmAYZ2BQ+DoMw jPnYyKHAzAQ0oInpgzcgegt3u75SZyYbKEwpj2KT4XNMM1qhnNHQFFrTU2t4Qp6Dsdizxr50 C1ghq+X7gUV0IrJ/TA+oT1MW6/PnofEMI8HM/m0K5WBftx0B3WatKX9MGRpjKd5wlpvFvG8U dlVGqpMBCDCJHCo3cqwLrPS8Azaz4iMGrurm8uVpiRhHjXjyDSUaT/nCTwPqRY66P/z87h0l rzs33gCW7zBnSHCH2t3MJ3FFjAaI7em4FHWoRTaJDrIlnTRQhWA2iEejJB2Q8+zWXGpi7Jpe ECxYGac+JocKP49Zvi8rOYpyzhw8IbHwokznGWpcDrQYoA7eQIdkKR3C2oslyY7Wm9I9L/Qk mxzMe3+Uw6tvy4G7HF79T3K4Xsd2b7tsuMoloHw44csT3GjMH+RWXqmVHNM4jp1TTWTYvVHq iIy8VdGBzCO7H+vmnDWF3Ajr/iDaqXzw5MzGl5SC0V5s3juyTDj2ezL4QIXOKh4AOrC+jY9G +iBZI0ghfq/k3IpDPYyJpICApjEz1FAadWSFRnUauGL4thV9Ued1YYs4yGweMMrSESZKve6G DKGM7NCWmtLKygiYYVNjcn3PMoFsZ61RYysQRVhMgavAozBY4lMPm9vgZHMZQqrKlFwE0dZ9 Az/YJFAX7dQfCzhFas/7A5eEqdOTN//ZXyHaTikDIP05p+CdxPnEDDxAIJzsabN8LqLAEmXR sLwmhBQ6PjIxTPyusQHFPz8r1zyhfmoAX/ctWWF1KqDhJN5WkTz2H6BtAX8svqxanwTkwckU ChYBQQr9M9Jo6rHkXiebW6JAz1hAwbU2VC1t+1arDKWohoKiBFEcOZGhFxxUKYvikVreTBN7 Qk5a1ThNCcGk//+UMD7xRUoaC3bkuU9Dozznz4j4L0qdQRmZvXjGtiZlRxx68+wEEa7xO1LY DC31RyneqsX64nPZdH12eDE6yjxsVT6a8MroDQTHXOz65tKoKP0EM2339UPZwpKrQyDvG+lI P0rGg+YQEx0byjm2ozi9wZjXCzNamCcf2YQDmb0tm7ZTMhZzozbXLehcLzGpN5Hq3zSBRpTb xSDEKTs8I6c5ZjLlgyTvXEBWTnvc4KA8Il2zPA1ZoRmSPQZ1lde4LedSnbX9fWV4aiF/Q8LT ZEgDIrauCpVHvhf5JwmrVrjVLO9/9+j1+KbY4SPPgEG89N0zuSQhOCNwuVTmGI/NsVDJMiAk GHbhmbSXKWNVstQ2+Vx2CLDQVyeNRA0S7CxvEKXq5mrEPoJXCwLy3K1mXQb7lSvDB6GpjkYR s0r6UU0AfJhtLokZN6nAygExLpS+1cgtm8lxRXe2GG+lN9RF5ZIQeAARaO+AmAEVZsAYrnXj m1934TwEJtKRwMiaZnpLByW4663GuFv2Y5jXT632ymDGw/UUJLEIEwV8IX8Nc/0jcjgI8ys8 7i4gX69/rA/3TV1/ulbwx97y3a247vVGiaS2ZwbVvuV9cchae6kai3eODifc8JrUYuTvKyfc oXMi5ljmQRAW/UM+fLMlP81+mv0b29+m0WVuZHN0cmVhbQplbmRvYmoKNTggMCBvYmoKMTk2 OAplbmRvYmoKNTYgMCBvYmoKPDwKL1R5cGUgL1BhZ2UKL01lZGlhQm94IFswIDAgNjEyIDc5 Ml0KL1BhcmVudCAyIDAgUgovUmVzb3VyY2VzIDw8IC9Qcm9jU2V0IFsvUERGIC9UZXh0XQov Rm9udCA8PAovUjIzIDIzIDAgUgovUjkgOSAwIFIKL1I3IDcgMCBSCj4+Cj4+Ci9Db250ZW50 cyA1NyAwIFIKPj4KZW5kb2JqCjYwIDAgb2JqCjw8L0xlbmd0aCA2MSAwIFIvRmlsdGVyIC9G bGF0ZURlY29kZT4+CnN0cmVhbQp4nK1Y2XLbNhR911eg6UPtjAQT4IrM+MFp7Kx1HYl+qjse moQsxhSpkFRcTyZ/0I/uxcrFUhLPdPwgmQAuzz333AVyMEGO+NOf6XryefIZEfnMfKRr9DKe HM0ZIgTFywlBM7mKQopCz0Xx+uDteXw6Pz+ND+NPk8DHJIhQfD/xKQ79ALbG2cHs1fzkLEan /2zymjcvxEZH7CFeiB2fqk0Lvmn5+obXiDoOEXtIGOHQ1ct/JHW6skszF9Z8D83cQCy+XaJ2 xdEmSe/EqhdgRn2mDvIWNatqW2TohqNlVd+LHWGA/dDRO5I64xnaNnl5i64OFtPXV4eoaZOW T9E9F4ZLdCPxeBGOAlcd2uZgMSlRtW1vK3EyL1teL8U+BtAiEmnjKUdF3rTi1Rq5g5kHPBJX rPdxC8oEL26AI9+gx+jt0jJGA0yDUONuV3mjbMNnWbWIrzftQ2conUSAhIYaybTVZuA59v2Q 6efCP/Cz5ksIzkoSOWABSWzEBedDg4pvkiKX7oB6AvkuB7uuhOhjxqiG+AX4s29VMQ+wQ0O1 mq+55IQwwKPRYEVS4OAA5DOD7f97hJ9Pn0/nF+BeVcv/evFuNRmftsCqDDol4Lfr7Q66wupR 4bqOZycD6uKQGIx9GQw8iYAP14lstKVJ4jAcemHn/lleJkXxoOK0rnYzHxLMXPZTzAOAvEyr 9VC4EcHED3vCXdbVWqLdoXIC/rlk5N09/203Ng9C7LmRxZaOsIWgeJ1ZNYdQZFPgOUP5UlHs MwjCIGdAq9uiFZD2YHOoNwK3N0tCTCPPZMm9Ujv2PF15+NJiJQRTpinUOgNWGfOtzAax9V0c eEGnUkCKKiHkquF92hl2GOtob3QOMA+HEQOnmVj4swSfU55vwEaJEpQlbaICtEBthV6Lpz0G IlAf64kvz5ey8B7Nqatr+YyEISawaUalyPLl1QF6BSU6bYuH36uyhC88g1oA+XF8jOL55SmC r1+FmU7wDTj2XhWELzwWKW2qB6CyC9cXvM6rTDGpT/6q8NjW4mLN+HnV8hfgrXyRD3nsakdu IYzQIFRZauukbPI2B7/XyQNaJZsNJG/SADdKHGN3oXyHwtSPXg8hAgNtUkt5vZd9zYXiZyO5 o/qNqp5edCO5SBxMiV6Lc6smht0uX3UpNJoUiR94em2adAoURrWwIT/Wsk5xlPGkgOzL2xVa 8ZrjR5GOqGyl2vVvOg4q7pcb0BK/XlzEN3krgzcFtVwdDjZJccBjoYT5xdm1khooS+nj5PwV utw0LSTv+t3FQgTIyAAOvIP8hAJsxAP1PjJQqnwpk/MYxAvQc1DcdSWe6OMDxUgQ5sQvx+j8 8sMHaxV6o2c26vjtFqYMTn+3pENW2hSo6oH7xjvixWNJeyGSdz8bsrMIOnp8KhbOTj4sTg3a GfQnxpj7czxM602rgFuYQq4/gvn1KfkGfqB0xdM7ZJqBF5iunOQFz8aigvoUiB02ONBNH3st y4bgQ9AFJTgv90R6pzwaDio/aRpe222izqm+8MSQ7YQngyLwyYLNOlF8H64KiA5l/9gA8PMR 4CHS3U9sxnWKMN+uDmZgTtuyYRUTj+g8outw1RyKAllFShe0haEAtAQj02FiMU9uGr7NqrTK uGiUhRw1iONh10ydDw1q+Kj4gVRIMCh+zrju1UmBnq2TtK6eQbX6t5SFu3nckmD2dYjfTT6Z 7kfX6aAhjaTsEezqJgw+xHMzfzn6IUgwVxNkU21raIcLEVtBVTmoujCHeEbzD03nCIU5Wjuy vSmB5XaVyIHCwFM1hfnY8WxaWsSiE8phvYYJgIuhE4ZAMQiaQYH4ESbUjvyArM5vYeRT803Z P3x1+Li469OWs/2VtJ/9HjbjPExaI5sw9AZm6P1+PepZDMT4aCYhLqMMvoP6FsCCaNMeJnq0 IR72wT4wphC/TJo8FRPuCIcHExQzEnqqW8DZntmVEbjIOTtuaDYigRg4o6iLiLlXwDwS0MG1 oir1vc6H8cLEfniDapM7DaBCSZpW27Lt30P05WN0F0lkEWmmiLfpOObO94P9o/A8gZk+KWKe dbtb14iUaMRKz0N7T6JhYBve6PK1h6Su1m7qbcktOVBlHxHUY2XfTCNz1gqzscKkWpoDEzvH Gc2dwlypoiLKmXkENW4F087QPIjSmIdkpfJKx6E61EdvwJOC699OqGOr7NGbqripq+ruSA2g UOAs9dX2i7p6MEwp0Xc71xRAXsAMrFOu/6sCpR6OqP5JRniM/rqwPyy4BAfEjNnJLUck/Fss nsbo4+Tj5D/PDAhQZW5kc3RyZWFtCmVuZG9iago2MSAwIG9iagoxNzIwCmVuZG9iago1OSAw IG9iago8PAovVHlwZSAvUGFnZQovTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQovUGFyZW50IDIg MCBSCi9SZXNvdXJjZXMgPDwgL1Byb2NTZXQgWy9QREYgL1RleHRdCi9Gb250IDw8Ci9SMjMg MjMgMCBSCi9SOSA5IDAgUgo+Pgo+PgovQ29udGVudHMgNjAgMCBSCj4+CmVuZG9iago2MyAw IG9iago8PC9MZW5ndGggNjQgMCBSL0ZpbHRlciAvRmxhdGVEZWNvZGU+PgpzdHJlYW0KeJyV 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 K9AuXSQYMhMvM9ZwiUITD6igL33ZiDwehaNcsnLq48mA0DczwjgeyULdi9T9SwOHbuKxmw30 rbrOH9CpBrqp5c3UT4oJxan6w/3ZtM9nFqLTyzKxU3/XeYoPvNujHctGcyqjW52C8OQLhZuc IDH0nUPPktOblQOTdljn9A2BXmM0ng+dCpKymd0KnrncIDttDbi+1SiI0N4M0i8+3F1xA1T9 eJUEuCvg1VtJX3nO34GPlTRf9nzPquTD+bu22nRt++v5j4aLQWC52B5/1yz3VCPVhQzsDC0r wNMcY6wEhkUsihIjJuYr0b9vnIjjkpXGtpXknyUT6X/o5dWa/bz4efF/rWS2J2VuZHN0cmVh bQplbmRvYmoKNjQgMCBvYmoKMjEwMQplbmRvYmoKNjIgMCBvYmoKPDwKL1R5cGUgL1BhZ2UK L01lZGlhQm94IFswIDAgNjEyIDc5Ml0KL1BhcmVudCAyIDAgUgovUmVzb3VyY2VzIDw8IC9Q cm9jU2V0IFsvUERGIC9UZXh0XQovRm9udCA8PAovUjIzIDIzIDAgUgovUjkgOSAwIFIKL1I3 IDcgMCBSCj4+Cj4+Ci9Db250ZW50cyA2MyAwIFIKPj4KZW5kb2JqCjY2IDAgb2JqCjw8L0xl bmd0aCA2NyAwIFIvRmlsdGVyIC9GbGF0ZURlY29kZT4+CnN0cmVhbQp4nJVX23LbNhB911dg 8lKnY8IEwAuYt3TsNE5r15E104e6DzQF2UwokuElrv+h/9pf6MGN1MXpNKPRiCKBxe7Zs2eX IWUk1B/3W2wXXxZfCDP3/E+xJT+tFmfLjDBGVpsFI4F5SlJO0kiQ1fbk8np1sby+WL1efVok MWWJJKunRcxpGidYulqfBOfLt+9W5OKvtuxU/0YvDPUaFqU0jLlddKvaQW3vVUd4GDK9hqWS psI9vsq74nF6dLZMnUOBwKo4IoFI9LKICjotEHoBdwZuLq/IUj2U/YAjrlTf5w+qP7CFtQE3 dn77ajwQNIuk3a86fSejSZxmLq6vpXqyFrLJgqBJmJCAJdTYWT0qcq768qHOB7Umy2bUx9+d nC/vXpOmJjn59e01aTrSNmU9BEMTmAtSlfVnouoib/uxwtaebMdqKIu8H0ibF5/1sSKLaIIg rXtDTzZds9UPAv8k0BCsT6qmyCvSN2NXwNDQkAFeLW/IBufqy05VyuwLKU9jsioWLGY0jl3k X3OXMdwHWcLM3oaXD10ztmSsK8BJygGGClUP1bO5KJ1JlliTQlLGPHLmPE0RZ5UzZ3WdL/f3 AVHOmQvyYdeTaY/N6e3QtGRrE2tRiASNIuZRsNHmA9C/Pf1Zw68T8aO51Mg5VPTWmDoUOAy4 Q+jv89mSJiKytx9VbTaeL18KOgWBYp59M2jpHvVHUfPvjPgwBCZSyjJn5dQYjzhYAfMOD+Sr H/IOvMlRGCbsiMY8cVl/2DljKLe4BHG2OciJLw4qe719UNSWakzT0FHxwwiS3ivgraxDxjjK NIvTbxo3a2RIZehpZ9XCui5kRrNsIrQDvFf1Wnt/PVZVYE9hIRSAR3unuGLfIT6u8qpq9tIh UNpJajc+DTPqQi9wqXZ7O7WBZ487wbGQU5ZmR8FZ52M4j8x53Gsgs82HUpf/4MhjUQwhn6E7 7XKzYx+1I7g4tu/Ay4thREDPFkUGfgrJ91D0HH0qqwr+9+NWWeUCjyH1RicZNU5yve2fA12L pAbfMHISpbJ+mLRICiqzJJu1aALbESsNfRnM+mxM2wQ8LQItEFBOROl0nFFyiwzjmKljpCHN wtgZOlJz1IDR6IRmgjkWuaI4Xx4ExJKUSiFnpb6wis/RkRKv+M8EXSO4vSKd1e3HvDfWgEB+ X1bl8KzjvFfgoEshh1yF3KVQi7+pEdRN8VjWCksPWBcyGsWubp5K13M84fpxpiGnk470aCRD Y6mVcCqRMU+tbVupLSTY0SZhVCZiv+Y2Y11o7uXa/R2xk5wmma9P+m4+OaI8dPrr+kU7dm3T A+9mQ/pWFeXfhaHzKXnSzaQFv7QPeulWFY95Xfa2L7EYHT2Zy7jZbXEzlxIailC+wCWSz2KV 6Wa1L1YG2Ui3C4dUsLI9W0rpe/ZY16oiUDHVbUz0mlG+cvNCIYbHEpMG5C1frw3SulF0atsc 9jOopR9erLQfyfTa6m6IgLJ06kNeqKc+VMF7wx607YhxObNnOHQXDUXycHZXG4Ia5wY43a64 rw6kp4W6k9L2p1prTjVhzEAzKaZ61aOAGWUEo8KxL+906ZFurOycBLLFVEbSx2EzD4Rwwq0y nCIAn1okprqCjnVWliSofqCRtjqAtW8san2qB4m9O5iTIG26fa+hZYWeL4oGuBR6onJTzSnJ a3hiHfUnOUdbxwwnNDpy7oQ+cDmgBGh3atKZBImIfHPO0cc2OMZ623tEz5c/7JWyTrx0LOvb FyvXOqK1PMnkvgeO1RGqcFLKXZACJyFvDkbWiY8BR/pDzmbkPzS7pJQ+r3D/7uTD3et9QUSZ s3k2WJmp0IQnKRfpnj+elD159anRCXoFgxoR/c8Ujm9HWo/KohxOyb2xhR7LnBej73x6da8L u9z4KofMmjxyaLSQU+HYw/y2xmbhqEJYBHx3ChrJPYCMoYiEoYcD6qYba12ON4eg8O8GpNWm HCD43xTF2PWQFFVPwoXyRTKS416O9S+MkBIVGYbpf+vMcZAzL4Qe6zL+f3hx4+vUdzDbfjVf jrAJUOtxliXfiZAFyPKBQRjxPSQEVqG+8TLYuiEDQqx/oAv3kK+jdGK8wqg/x3fdkMt6s1ub HAOYb6rN3ckcPsNg5rrv9eVRhDAo5awjsLszuxk30gQE9TK60hkv7YRQ1uVQ6pcuXbtWnIZp GnjyLw1urMCeutmbBAM9GAgZ7chobWCwbdZTCURmSbinFjtT4d3J8nYFZYF5p/kZDRM3G+Nt 21fc/ogCGmhnnMhZLJudUT/AWwVaLCqDY6Q3w+I7hex2Z+8RpX2RRKPgU1N9PnvfVPdd03w+ +8UNJUL4LtWMduxK0IZTZuQ50Y+dkxV0wfWWXQnnWBSnjjhuVPzjZlJvyAzGHi8BmPxZ9qd+ eLEiHxcfF/8Ccnin72VuZHN0cmVhbQplbmRvYmoKNjcgMCBvYmoKMTgwOAplbmRvYmoKNjUg MCBvYmoKPDwKL1R5cGUgL1BhZ2UKL01lZGlhQm94IFswIDAgNjEyIDc5Ml0KL1BhcmVudCAy IDAgUgovUmVzb3VyY2VzIDw8IC9Qcm9jU2V0IFsvUERGIC9UZXh0XQovRm9udCA8PAovUjM0 IDM0IDAgUgovUjkgOSAwIFIKL1I3IDcgMCBSCj4+Cj4+Ci9Db250ZW50cyA2NiAwIFIKPj4K ZW5kb2JqCjY5IDAgb2JqCjw8L0xlbmd0aCA3MCAwIFIvRmlsdGVyIC9GbGF0ZURlY29kZT4+ CnN0cmVhbQp4nLVaS3MbuRFOcuSvwC3eVDjG++FDqpy1nfUmcTmSUjl4fZClsaxEIr0yZSf5 9fm6GwDJoVak7ErpoEEP0Gj04+tuDPVglKa/+v/sevbz7GdlmNb+nV2rP57MHh8VZYw6eT8z as5vVbIqeadOrh+9fHXy/OjV85PvTv45i2EwMauTL7NghxQipp6cP5o/O3r64kQ9//fHy5vx 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 q1e3V+xp8MjqZPvwfpcTzrEtJnQ8/aEUir/BFiAv/5DCk3pfXF7cMjf+TcoJXUOjD0Fo8S+d RvnxE6p61OhMeVLVjJkGJbqpZJGIfjKkS107r8Gl+BX9GsHnxlZOqtgf5tenZx8uF6M6XalT 9exIZG8/8prTV7DonJq7HETo80cvRkTxzeMfYLersWZTq1Pl/p/HPyyv3t0sl/96/Gd+aYDy ob5c3n6Wqkuj2jX8y69Ir6tgV6ef1PEIkF8u1kr5glYV9XaqPyFD0hjMoN40TXyZ0a8xoqs7 nF6MaMHfbkTd/wBpfijMZW5kc3RyZWFtCmVuZG9iago3MCAwIG9iagozMTM5CmVuZG9iago2 OCAwIG9iago8PAovVHlwZSAvUGFnZQovTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQovUGFyZW50 IDIgMCBSCi9SZXNvdXJjZXMgPDwgL1Byb2NTZXQgWy9QREYgL0ltYWdlQiAvVGV4dF0KL0Zv bnQgPDwKL0EgNzMgMCBSCi9SNzEgNzEgMCBSCi9SMjQgMjQgMCBSCi9SOSA5IDAgUgovUjcg NyAwIFIKPj4KPj4KL0NvbnRlbnRzIDY5IDAgUgo+PgplbmRvYmoKNzkgMCBvYmoKPDwvTGVu Z3RoIDgwIDAgUi9GaWx0ZXIgL0ZsYXRlRGVjb2RlPj4Kc3RyZWFtCnic1VhtbxvHEf7OXzHI l8qGbnX7erc1YiCJ5UQKKjAU+6kqhCO5ki4heczd0a5Q9B/kr/Q/dvbtXkjZst0URRAHtHfn dmdnnueZnU0JhdT+F36Xm8mvk1+BurH4s9zAt/PJ2UwDpTC/m1BI3CxkDDLBYb45ubian8+u zucv5j9PlCRU5TB/P5GMZFKh6Xx1kryZffN2Duf/2JW1af5sDVNrQ0VGUsm80bXZtWazMDWw NKXWhmY5yXiY/ktRLx+6qYTjnBSQcGUnL7bQFgs7wdABLv0n+3VRw11Vb06hfTDQtEVrkk2x fCi3Bkrvx/kcfsJDlRNBBKBHcIn//zzJWEqYBKUVs7+biUzFaGQ9uf5grLLDWHGKMcaDqFzZ gJ2/c6fDALHMe2q2be+MSLXbKaeHe4eRz9o7k0TyHBRmRtrNp7WLHzqk8N/LSUo4d7mgRKTR nXdwHZK0DJnSJM1DWG0Y7ayghCIK3Lqrk5m5L5vWuNV5TvCoOiTf5ysMJZS7ZLfVDhxiOCUs 58G23PgFkjgazI1FjkuvIExEa9MEN1jOKDCHhO+q/Xo19CWNa/z7tdvPnkRxv0C9dweRmvAs o+DtPrbCW7dCTnQekF2sm7iEQDh6u88PRUyJzn3Ew1RtuixoIpXWIT9LU8YvqJ20UKIybPKu /whhxzLhh1fBG6p0jNVsCsuHYntvVh34Iu5Feoi9MGKxF414fmgURj4G0CgkipIc82C9jFC1 csBSpAnLLVITFy4rI9ZKaULzcMTXl013Ri5JnlOLUeuVoroHKbgFFGqMUj2SOSNaBij7Ldw6 CZUKV4qhL1YraPfbrVlbi55XOJ1hnkB51F9VcLG9G/rJNNGZCF5UNyd9MijRNADv6uLmxVHM 6VHMafoF4UwkJQgVd9ajyKapjyyMYtuJsWIxwlcO6RgRHXF10cecofZiCO1HKe7FhiF/fbQw ciNPZe6NpoNVFEqP1x5OqJDPrJIR2enEIP8YVp7mY2VKaMZJqnnPo031tOoxRoSIvIH2QPQU SaNCPwWFbrWESYH7Zbif9ri4rIYkzGNFKrdwc3Lpc9/nDpWOMDSJHx+7a93k+pjgSZwIB/WI fQWNaUfKNTOh4qSxJPcKZSWVRdoknRpxhdqRdXxorTTfnLz0vmcp1i4NmA7n7grL+nK8o/cE 2gq2XiARlCrq4Hu3QxyKPk7R77D77+34IdckP+RaHPkUrh3RSjJPq9dw6W8ZLkaCZFnmpAtL JIsEGKsa6iVN+RdwbqxzHyKdfo504rllPod1nNrrnH5aQqngRKuQxP+GkBFEn8pI/nE+TkNJ F0zGu9iq3N4775i9iPXsQupOj7ircZ8sFFSkHXjEsmzg6YcgG1nARF933MXoSbJFKfvDkU3I Q7LFkS8imxAd2ab/H7b1/QsCXtO41Yj9CRXa3rX+xyXoqPBM6z02NzcnR0DNLABEV2N+J6iO YRhgi7h9NZpokFOw3a/Xo1F/u80Jz6k+xluOCZUcpfUPinqeHaI+jljUCy4PrOLIsMnjCkVz ZBVHhlYsl/nYKo6MrFKkyNgqjAytYvPZW3Xt6KDxpYIdWbEjq8NzP91EH4XroPX+LI3AdpRL 5JMViKuqDW8NZzPGg6XNuiLKq/nLIzFnJHYG8wcT+MHtvZ0OkWFx4HpJzJiWdNC7QtnYu5fF ZAF1sV1VG/DNfooVRvPYNO4Ndl4V0gL229K+UKwf4a5GY/tOUW5xD/+VQnniWfwKaQ0p0vel B6GUJBPsORjfXu93u9o0TVltb53XGgVSqrzz+hSoXTQcF5HTXxw+dYmbF7Apt/vGV03sRTQK 7nOOTetqYfx62KOhrPfrvfISmgoMWtan7Hq/aOti2WJ9hmrUdSFWuIzt4d3BEwdKeJqFvc39 qDvukuc82jmPLJ1tIgtYlC1YkVni2Yv6ERZmWewbnGztfG2KNeat2eAPLKvNrkCZwtS7zbHU KPvu8oTW5cMoQNPH1tX9at+ewsKHDGUmGO9beB9eL2goFkWDSHGAqdYraHZmCQg469gvzhIj 3rVzZtfahzDvZVsuynXZPjqPNN4tYiJJwJUiVGYjoiBToGcEMkzn44rxSZTwQcBcK5WOgjAI PAn9Gwp374HdelMs6wq+Cq8zDoScSM5GC30VQ+LqMPRvfbAyv20xO8WRIiS5LcQYqIS7UvNt Va1h9AZ0c3J9+j0G4J8hAYOktvvadnRwcVtsbt/M8G+z6dtbR+C7YmnwS/wO/3xz9cYFR6M0 hY9/NGZXrMt3Zu6rpt/DwgoRZwEevunq1BtXAdeP31UWka1Z+dW//hrms7+eg9eyJEMZjl/8 a6xuOGrnUOSUf7rACLUPRQuIPFwaMWIxWN0h8HfF0oNIULwcBAy1gLY2uG9mXqwKWAWfEFjB KWiqfb00p4dRDit97PBjbylewWgQ460xq8YiaGEclhaPzo/OS7yG5bTzEoH+Pgh3vOcXtb3T Y2jX/s0QPRNhH7xA6Twqx8Lgx05XGK4YiGYOLlJEca7DnCXUvg39wvC8HBUpE13/8RSgDs9L u+ITQOz54h+49Fg0hvA+BWS2tf+tbto+KKjCcpC7kDGfHi8mOUX1jNfXavunoaBSlF4Vn2QW T/Z9/p4rUKWEfF7ozMpTO04lWW7r9OrkrUHo1Gc/oHitvUBIvOdn4cCPZz9U60VdVb+c/egm 0QEey1O1D2USRSej4b7MY9LNGiXyGlGJsO6PhhduNJKxHgiCbTCBv027Sz3X9iUt7FDcG2D0 793l7qfJfwBHgEEGZW5kc3RyZWFtCmVuZG9iago4MCAwIG9iagoyMDc4CmVuZG9iago3OCAw IG9iago8PAovVHlwZSAvUGFnZQovTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQovUGFyZW50IDIg MCBSCi9SZXNvdXJjZXMgPDwgL1Byb2NTZXQgWy9QREYgL1RleHRdCi9Gb250IDw8Ci9SMjQg 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 GKrVrr8d5pHE0fTZppe6VPTzaF93axQeclvoeVeDQ2qY+KFtky0r0x2+2yElJEit9jftA9B7 hhgqwPdd69cfB14qJK7u0+p+dovfvqeAv/pqhM233zJaoXI6hQVg6tO2Zz9KuUlL5GBeVLI1 svXMEiwU9Vq2BXTyvilBKitwMHPz84cPZOPvM3Z3O18Udu2UWdP8nksq6KZ979pM4UM1A9Uf H/5jVOEJN8pQgsq/2xNjcL4gFvGbbVlae98Vp1kF8tu3BOqTHjadfvkXoGNr2WIemnpsPECI 3uqprhp047VqD6PPzIN90N1WSvNgHMd2+pP/CQbH2T/vPxvwv+b/DfEfUWh+jJmKKTX8i0D2 F8IQGp16YL2TBPC5epXoP2fQn0HsE213/r4pF23TPJz/aErG8+zo0mwf9QTl8CQSqgGFtGzE sETDuJNK3sY91sWmIDJFaRT/n7eD3CMOPODtywFTvev+ixYv5+ynyU+T/wCJbZ+GZW5kc3Ry ZWFtCmVuZG9iago4MyAwIG9iagoyMDgxCmVuZG9iago4MSAwIG9iago8PAovVHlwZSAvUGFn ZQovTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQovUGFyZW50IDIgMCBSCi9SZXNvdXJjZXMgPDwg L1Byb2NTZXQgWy9QREYgL1RleHRdCi9Gb250IDw8Ci9SMzQgMzQgMCBSCi9SMjMgMjMgMCBS Ci9SOSA5IDAgUgovUjcgNyAwIFIKPj4KPj4KL0NvbnRlbnRzIDgyIDAgUgo+PgplbmRvYmoK ODUgMCBvYmoKPDwvTGVuZ3RoIDg2IDAgUi9GaWx0ZXIgL0ZsYXRlRGVjb2RlPj4Kc3RyZWFt CnicrVnbcttGEn3XV8xbZC8JYTC4Zp+yZceWY7sUiltx1XLLBQIjEjYIMAAoWvkG/+v+wp6e G0BK3nJqUy5fBAxm+nL69Omx73Hm0y/zd7G7+P3id8bVM/tXsWP/WF5cLTLGOVveXXA2V29Z ErAkFGy5u7x+v3y5eP9y+Wz56SKOPB6nbHm8iAIviWIsXZaX8xeLn35espdf9lUn+x9poU9r eJh4fhToRbdyP8jdWnYs8H1Oa3iSeokwr9/lXbF1r64WgTAWzQWWRSGbi5jWtYdBdl7ZD3qZ tTsOPB7pnaqeDVvJrm9YKfuhavKhahuWlyVs61l7p97Kpsj3/aHGy2bDtjIvZUc7BmHkxUJv 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 3TRNOMTw64B7otD1zVICAPlW/Ss6+kuQq0Fr9jan540So+wxeGOkwdk/O7mU8K0eb8G+ZIxj LGsPwq+EjMEK+kAS80nsFdu5YeUkBPZuLbQ3rJHA/GgOXF16nodW/IMRj75veUt7F4JvfOEE zr4Fha9rNSHI5mCUZRpA1brhSk0boFBsDBh9+PDhtE86vrFfmSs+6pncQ5s3rUGP/pGXZI5g tZAf61vJKVJNyXf20TkHgwQn6hUjo3YCAiK2DDkfB8cggeAa7wekju3cDoDUSFw345BW9tbj kbGPbaM+sznvKFQgQnyzDVpLmvW0LuwNqNRsj+0SHj2qmaPnvkHN0B1XNk6+6E4Yzyl1nTRO 6ov0Seai6a3ndXN3Qs1QlXaia08n0owbf95fn9/ezgF+LpKpHZOhHRNUlPiT2NNY1rTnYTVw J6rCSzXvYHqDBqT7pDORNs5Acao3H+V2O22yqbC3yg3Oe3NuONkdR3/C7KdtBgWjbtUNnL5z OKhWfmd0eRD67v4EutzpayjZMLI5H3rz/wz6bkw3odDZpqROc9ZFE6v2HzZP4UipoC0CWkOy rB/UDaLW4YDs6CjRUCaS0VGNVyArsO5/Ubdt+lIE6KKbOLoinTaaPRWFngPA/LEvxhs12L7T xLu67AHLW2os+Im4IsSn5u7V3ODXxJ7UT8HNHd1fnturLnbtzDxeAsX66Tw2QPhZYnzorl4r /xXHgDR8yzEPV6/bet217ecrNdKC1oWwU257uNdyy/eyhKtmFtNrW54AgvFhKr0CLIoSMzEa HvyXFfbHC0EK1apQ6k2B+De9fLlkv178evFfwxWJlmVuZHN0cmVhbQplbmRvYmoKODYgMCBv YmoKMjczMAplbmRvYmoKODQgMCBvYmoKPDwKL1R5cGUgL1BhZ2UKL01lZGlhQm94IFswIDAg NjEyIDc5Ml0KL1BhcmVudCAyIDAgUgovUmVzb3VyY2VzIDw8IC9Qcm9jU2V0IFsvUERGIC9U ZXh0XQovRm9udCA8PAovUjM0IDM0IDAgUgovUjI0IDI0IDAgUgovUjIzIDIzIDAgUgovUjkg OSAwIFIKL1I3IDcgMCBSCj4+Cj4+Ci9Db250ZW50cyA4NSAwIFIKPj4KZW5kb2JqCjg4IDAg b2JqCjw8L0xlbmd0aCA4OSAwIFIvRmlsdGVyIC9GbGF0ZURlY29kZT4+CnN0cmVhbQp4nN1Z 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 nOrbE+sa18PbZ6esSM5UqBzcN85a06hVKgeHplyCyuPjzPX9u8HF8eAAg0gqX5x2qYlLnNae NQZXbViLnHW7BFNBL+tD9i9fDNJTbOryCSUcI4GaWyr9mn1KdcroJxIcOcC3JNZZDkC9DyU/ S9fb6AA/V/v/Mvo8+veI8iPEwnGb+reglKGpKBz/3eDv5ah7jokfWBwDlWcBmnUQB3RJQ5cO 2n87ok3+F4cX5Wp46MrqF+iU8qwJLt7tSv0uXVqt3wqgPIgDRGkQygl1nWgM+mGBmzTdf8sJ uYpWGnlNE5LMRYGoV9p8wokc0RO/XeHO8Uf0RmiEYmuCG7Ihn5hM8nxSMDQl1qJDjvNhMCzA sUAv0zhP07DBZJAGv2liNk5IcZD561V707e7JbucfowTRoOWAsE6xo1fCSNPDokzvjiUQ3FU Ojg2tvSYgE6UJrr12SmCeOrRvWbUUuknR30ZP2XXxM1/zLp5u2aTSdocO8S5V45Ba2DGZh6e njrgCqZyjdS03eDWL17gKtG9ptF6YWksDVrFYIroz6kIDYVB98jo4Q13rufATuRPpKqEwnDn iRZumEKFaFRsDvV8wmrb5anw5Xy5/Xj6CtHQIBJWg22skRHl7er2vh++cSDLNr4pI22Z3hFA PT8jfP9jmcqK/Cyk0Bin4fDDYSZL7yR5Uk2PT/EUXO90eeegx7SBPu7SE5SDWUR5NhunIXGd CZeHmZMROvI++gHPxjRcjXp+23Zd21/8NOsW62IL3N3zsY8XP23Xn/rt9reLf8ZNmqWZMt++ T5N2S5NbEYfjlrYz0+vZjl238fHqoLKHEd11jcsvsOhzueDs1/Ii+UAPPN4WwWe3LVL8x0Fe /y/SeZqOZW5kc3RyZWFtCmVuZG9iago4OSAwIG9iagoyNDk0CmVuZG9iago4NyAwIG9iago8 PAovVHlwZSAvUGFnZQovTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQovUGFyZW50IDIgMCBSCi9S ZXNvdXJjZXMgPDwgL1Byb2NTZXQgWy9QREYgL0ltYWdlQiAvVGV4dF0KL0ZvbnQgPDwKL0Eg NzMgMCBSCi9SNzEgNzEgMCBSCi9SOSA5IDAgUgovUjcgNyAwIFIKPj4KPj4KL0NvbnRlbnRz IDg4IDAgUgo+PgplbmRvYmoKOTIgMCBvYmoKPDwvTGVuZ3RoIDkzIDAgUi9GaWx0ZXIgL0Zs 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 SRVPMs/SRSK/ljAsdkGcppGWQ7cnGAG6Zc2YPmaEMQZzPgAOSVP2Ah+8RAfdp/MBN2n8fzr4 H6GDtqjy0km7GIK5LdLFKTqIqQCUCAnfD2ZU4NtyQwbeHVX+e1kdKtTcWZ+BtG2NYrLfrxlU vQDyfH8oggEjc0DLBovGu2YskTJMoHQ+zxJ/ShnMUsYJLkIv0wj7omQ57tZScbJbeyZbTAOs 1fCd5M14nvmwFrA7PeqZfMmAkhX5L8kXjSkw9X9YAbX4iL4TBaE+Tx1XY9F6F2j60Xy9Z0Ml ic9BvU2osaj+YHoM88/RWVcXq19/dvljqgD1SrRo23Jb/Lo0r7CzMjXfGkMo9qi8G5Ib2kZI PMCRtHnzY1HXRXvxFtJvbxcoINOh13i6gHR83zbNh4u/2UkI+8jxB/c/UYpYujagVmba27SH xusWmmHw26T7Nh5KveECC0wx+sdqcA8QjB76J0g+xOQ/h+9jvyz+AMBJVutlbmRzdHJlYW0K ZW5kb2JqCjkzIDAgb2JqCjIxODUKZW5kb2JqCjkxIDAgb2JqCjw8Ci9UeXBlIC9QYWdlCi9N ZWRpYUJveCBbMCAwIDYxMiA3OTJdCi9QYXJlbnQgMiAwIFIKL1Jlc291cmNlcyA8PCAvUHJv Y1NldCBbL1BERiAvVGV4dF0KL0ZvbnQgPDwKL1IzNCAzNCAwIFIKL1I5IDkgMCBSCi9SNyA3 IDAgUgo+Pgo+PgovQ29udGVudHMgOTIgMCBSCj4+CmVuZG9iago5NSAwIG9iago8PC9MZW5n dGggOTYgMCBSL0ZpbHRlciAvRmxhdGVEZWNvZGU+PgpzdHJlYW0KeJztWNty20YSfedXTPkl ckocYWZwzT7JtYotZ6NSJKb2YZUHCByKWIMAA4Chtd+Qf91f2NNzAUCKKleSqt08bLlsWZjB TPfp06e7EXDBAvrjfhab2c+zn5kwz/yPYsPeLWYXdxkTgi1WM8HmZpUlkiWhYovN2fXN4uru 5mrxdvHPWRxxEadssZ9FkidRjK2L5dn8r3eX3y7Y1edt2eruG9oY0B4RJjyIpN10r7e93jzq lskgELRHJClPlFv+Pm+L9bA0VzLlUcjmKqbFttn1eHGdd2zTtJr167xmTa1Zrcun9WPT4hd6 2LOyxsYVHSFFwONU2dPzQv+FNf1at/uy06zExo51umd9w/6l24YV+a4r6ydzt39zLhS9W5pd 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 PVw1/fKRLJHK32vT7rsmIzOfu+ZhaqPwrcY40V58QDQrcyvmCBl42j5ffGiqx7ZpPl18ZxYF +qjhS9/OfAgRcWA+2lFGxLTs0wZRmFzti7EZiBLXqrhK/A/fyu9nKsPQ4PsGEhkZ/0SLVwv2 w+yH2X8AO6XrV2VuZHN0cmVhbQplbmRvYmoKOTYgMCBvYmoKMjIzOQplbmRvYmoKOTQgMCBv YmoKPDwKL1R5cGUgL1BhZ2UKL01lZGlhQm94IFswIDAgNjEyIDc5Ml0KL1BhcmVudCAyIDAg UgovUmVzb3VyY2VzIDw8IC9Qcm9jU2V0IFsvUERGIC9UZXh0XQovRm9udCA8PAovUjM0IDM0 IDAgUgovUjkgOSAwIFIKL1I3IDcgMCBSCj4+Cj4+Ci9Db250ZW50cyA5NSAwIFIKPj4KZW5k b2JqCjk4IDAgb2JqCjw8L0xlbmd0aCA5OSAwIFIvRmlsdGVyIC9GbGF0ZURlY29kZT4+CnN0 cmVhbQp4nN1ZTXMbNxI97J74K3C0UyE8+AZyy27kjZNaF2Oxag92DjQ5krghOfKQiqJ/v6/x xSEpWza9J5cOIgZoAN39+nUDaLhgDf3l//P16MPoAxPxW/k3X7N/TEcv3gQmBJtejQQbx17m JHNasen62avX04s3ry+mz6f/HVnDhfVsej8ykjtjMXS6eDb+6c2PL6fs4q/bZd9uf6CBDY0R 2vHGyDTosr3dtev3bc9k0wgaI5znTuXuf8/6+U3tGivpudFsrCx1ao6/d89Z17PdTcv67m6H eVbddsdmGzbbbtt+x7oNOpdbttyg84pmkY3gUqq0wGzecvr44o3Luo6ltLF/LCyP60z6u007 oVHKoEeEJNpuFsvNNXv3bDJ59zzNUew1Fk0aOBaKhk7327uZbVnfzttlVAhesIZN5yPvuPLK p5n/bOM+YUrqornKmovZJNtxPpLZRrS7d8+++/5fZIoTbQW0DdJWbdlV363ZjC066jWB+6Dz 5Peb7a5vZ2u2aZfXN++7Pm5ResG11EWV2WbBsMB9NIflxsgsPVvuyBy7jm3blt3ftPBJcswt 7ZDdL1cr9r5l3aHiwlmuxYHizbHWfb9cLNoNe/8Ax3Zx3rT9oAEVcbT9hBThoLYou07Gjxrz uKw03NqMAf5yv6rmgEf6DFhddX1SVHLj8udZH91+e9ffdtt2+31UMUEkI2K7m+1g57vNfLfs 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 IfL+OdvM21W13ZgC3Qu6s6ezUngKd5puOQIAt66/RWRyJ49/N+ewOt3beS6/2ixITEIRDVFa jXSQQXNR9EbpIgNAY4l15KOoGzxt0HyCMAa6Exk/L5fXd/3wyQtn+sY35ZFDpWcl7CO/Kv3w U7mqF/mVEAVUfjG431/U07NZfrugt8g4C4o1XZ696G21PGXcpnchCyQZl/vH6dmgvhKUR7qj FxWJc7kGc4/JVjGsXrabTdu/+Hm2Waza/CIvmzLtw4ufu9X7vuv+ePFr7MTxVJny4nGXHl7A mQQCei6x1J13vJpt2WUbHzL39rofEc0Yl59c6B1ecva2PE3f02Oft0Xr2XXLpPt9gIn/AXX9 GyllbmRzdHJlYW0KZW5kb2JqCjk5IDAgb2JqCjI2NDMKZW5kb2JqCjk3IDAgb2JqCjw8Ci9U eXBlIC9QYWdlCi9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCi9QYXJlbnQgMiAwIFIKL1Jlc291 cmNlcyA8PCAvUHJvY1NldCBbL1BERiAvSW1hZ2VCIC9UZXh0XQovRm9udCA8PAovQSA3MyAw IFIKL1I3MSA3MSAwIFIKL1I5IDkgMCBSCi9SNyA3IDAgUgo+Pgo+PgovQ29udGVudHMgOTgg MCBSCj4+CmVuZG9iagoxMDIgMCBvYmoKPDwvTGVuZ3RoIDEwMyAwIFIvRmlsdGVyIC9GbGF0 ZURlY29kZT4+CnN0cmVhbQp4nO1ZXW/cxhV9318x8EuVwhzN95AJYMBFlXpVRNlIC/ShDgJ6 l5JYL0mF5FrRr+5f6J0vcshdWZL9kAApDEMy55P3nnPuuTTBFBHzx//cVItfF78iap+FH5sK /W29OL3MEKVofb2gKLGjSDOkBUfr6mR5sT67vDhbf7P+z0JJTFWK1vcLybCWCqautyfJ3y/f fr9GZ7/dlW3RfWsmEjOHCo2JZG7SVXHXF9WHokWMEGrmUJ1izf3wD3m7uR2GEg5jUqCEKzO4 rFGffzADDC7ApVuy3+Utum7a6jXqbwt0V7RmhlZwMZ35m5V1X7TXdqXGsKl/nm8K9P7kr6// 8f4b1PV5XyRVvrkt6wKV7v5na/QTBKNcCCwQvAk6h7+wOSOYSaQyxczPaiGJmDzZLa4ejbGe x5jTDGuWIpUqE+izTzYqEFim3TWLuh8vI1NuT0rp/Gz/5EVn6wwTjhSkGU5e2cglgBQl0Xqz IJhzm0CKBQl3+YSufGY3Pr2wRepzYWJoAQJLFYFTqHl6WWyKMmxNzULInxTUZ+FTMT02CaMJ 5Wb8vBkOpASnIe9l7VNn0y0gXAq5Bc86jxw7atXu6yLaNlWYZxpFg2hlnnONMx32K+ptWd+E 87LUbhxm+I3XZfwONFN+bQVEsIQxwyIFbAbMFp09CFKqNfU3sDMfkOWggJGU+8ll5VCfhKdJ tMDCXmE1HOq2tnAKSJZ8jib/xKBpmHQAOfk05A4khaoMpylDSlADuuQNOnfkswGHfCiSetq+ QRfLaExjCsyFENq0qDArMYMjtn1igYgpDXG4aJa1oz+oggWExowJH4/m/cmYHYozyvzAxdLB YHwLSbGmgrphuFnbu/Q9+PTz1DHnSN4zuDPPxrwf5ICSeXj9ky8LLyFPh3e1emZ4Q9wygSX1 BHxzYYVK4TST/rWWXQxzlQWKhDPGLEV056mAmPMn6Q5SfT7PR0owoV6aoOh8dUKgbFAVCO+2 s7R3i4JKOMZ7HkIpEmJKwzitUmWztIYnX5RWCaF+WVonyZwyKoP4Snp8LEoVlxwrZciUYflM JZzp3/uT1WqeO3s6Q2HTr03fd3D35s6uC0PJRLgnOv1CXFCQE6kEAmm1JqbeOlwkE2CcbW6b qHpMYEDYHAb+iYGBYIxOZ4UncVXnnPLprPAknsWEyKazwpN4VvAR46zBWUQehioyn+WfxLPm b3TcDx0EYuaiXkQHMCwiNaYMuLAG19e3ed2VfdnUaOYmFLhLHTAelX7QFhZwW/cdejVxDVMD JAROhRrsAzqfOSAoJsKf0Ay25BXKASWf2xZkQBM9XM0R6rixinzJK1RWd7sH1IaNM1CG4fxP RphydA73QI3zBNyYdMKnbACqWfrCWhqwflP0xRb1DfjoskNtswfT/JdY/UFnUhlO6vJp0eTu 8XYLRO4QJMK48fbw7VMKBUNMEhL2tzkJ5nxbxvvzIG+jk7eL7heAIiXTwdBjtLweWg/wMNng qMx9tiAyZZ1boOT+qvCudWMddsKgvikhQ6g2TQsv0NvGoiucNkZQg6W1i5UbCc1Dte96syVq Npt9O7EdoHkDGF/nMRihCrrHu/622d/coq4oTC67PTREObrLNx+tENEUC+Y7rsLdWhgJhQbC 37rKH9Am3z924QZepp3euMNBxsAmmi1+rNG+rvemTwNEjN1TpiE8auyebJ7vAGt90jeJ/QXt yvpj53qxIxCi2jio5yCogzDstuhDYbfq8qpAeWd+d5kCGEF/5F+5a/Yt9HJDRnsESgwBgLbQ rr4tdrtmjCGsJTwNMTTTO+ixUDMFKlR2rnj2KFD9SNtHlUNoknk7cpv3UeQCWoFwGdFZBNd3 zQhXhYkK+L+fCRlot5Tk6es0DiZjPOu7MczcrAhCNSbNl2yCJRk8s80juoeo7rrGELmpKlP3 evNiq+UPqIJQ5zeAgfuyNxAFK2b+HOVY3vp98s3GfAHY4gM7mFLhKzKzGFy3MTqGBnTE8rWd AOKmVAhoU6EDqw/irfgwYWxeqYD0qrk/DZUmoYxjk6iBE/+6LWrDH3tA4wjkYH7dALps1MH1 MOLDfm/YO8shA28h08M+dFqMkGFw35Y3N0DUPOLvt7OgUdOO2C7H3/Gw84WNmVXJaQd8UMKg 9Qwmvpl01mNIQkATmJyNOHl7Hoc0C+QedzECe6QOgBBISh6vA6EM+MgOwK2fqgvTeoCWDp8l 1PjlagLODrhvq91xpTK1gPHjUhU6RAdvRx9o3zPwsz4ssP9yLqvGqYSguPeS0D2JAM77uuvb Iq9m5aSpIx2hoEpZ6MDc68X67l/Hln+7C3aLQJmI/8S29gpqbAEFS5scflsAkSIsHXsauPTZ 2iXSevRi+9qamyiA75rddu3EFUpcsC2wGGgKrOytR7OINrQw9zsdGqvTSy6M4zMYg0TT1Og6 M+v/6wJIyfCPiKGCG09DnUu3UvSoqCTya2XFghycq46MHro6ohvQb6XMFuOZbow5masGKI3W 7AnVeEo0uuerBjdk/79o/KlFoy2qvHSGMAZmbgu8t1gE3krxFwqEb+ONRPhQVflvZbWvUHNt 4wmWuDVuy37mZlAxA/Tz3b4IFxj1BLo8mDSeNRMMzTCBsvu4YHxWPZhVj88rFHpEXNgXUeiw x9PisMd7hEOmYU7V8F3j7biZ+QoXQB3t8xiL9B+OQFPieG4YhzY0Y/nYWf5+hdUiIvqSFGz9 nCyu9iJfa22qgelsqCjxPqi3FBqL63emIzH/HCN1frr65UfHGFMNaGgA27bcFr8szVvYUanN 18iQhx0qrwc6m8+sGiQokZYp3xd1XbSn74BwO/d/NhK8a7jfwykQ8EPbNB9P/2kHIeej1u/d f1EpYpXbwFiZYX+nHbRpV9A2Q9wmfTpMktpfXGCgNUb/Xg3hMV8ihm4L6IZY+vPwEe2nxf8A Nf1bmmVuZHN0cmVhbQplbmRvYmoKMTAzIDAgb2JqCjIyMDEKZW5kb2JqCjEwMSAwIG9iago8 PAovVHlwZSAvUGFnZQovTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQovUGFyZW50IDIgMCBSCi9S ZXNvdXJjZXMgPDwgL1Byb2NTZXQgWy9QREYgL1RleHRdCi9Gb250IDw8Ci9SMzQgMzQgMCBS Ci9SOSA5IDAgUgovUjcgNyAwIFIKPj4KPj4KL0NvbnRlbnRzIDEwMiAwIFIKPj4KZW5kb2Jq CjEwNSAwIG9iago8PC9MZW5ndGggMTA2IDAgUi9GaWx0ZXIgL0ZsYXRlRGVjb2RlPj4Kc3Ry ZWFtCnic7VjLcuPGFd3zK7pmY01KbKFfeDgruaLxaBKrZImuLKIsmmBTRAYEaAAcSv4G/2t+ Iff2Aw+S43HsqpQXKZc9Hnaj+z7OPffcjigjEf7j/8y3sx9nPxJmfwt/5FvyzWJ29ZARxshi PWNkbldJwkkiBVlsL27vFjcPdzeLt4t/zWJFWZySxWGmOE1UDFsXq4v5Xx6u3y3IzcuuaEz7 NW6McA+TCY0Ud5seza4z26VpCI8ihntYktJE+OXvdJNv+qW54ClVksxFjItNve/gw41uybZu DOk2uiJ1ZUhliufNsm7gL/hjR4oKNq7xCM4iGqfCna5z82dSdxvTHIrWkAI2tqQ1Helq8pNp apLrfVtUz/bu8OWcCfy2sLuMPVPSNOOZO9N6S4rt1qwK3ZnyFXckGY1FlrodFH+5ekh8bOeM Z1QJPDim1i8bsVdiQys55anwZxdbcNeu4pJiVArll0zrTg0Zm8cQRQZXenMXG0PG56qUpiEM 9tg1hAsiQZ4u/nT57dNbsqpxW8ZonITrD1XbNUZvSduBZ2Sr800B0YYgD/FlUtGMqT6+5NbH KEUfxzFqqU+polGkBu8XJ0aomKYy+X1GdI2u2qIr6qrFvKGnd/Vtta7dOcc5iWjKJFnkkHaE dAzZ4c66xuM4nzGIf5T4S/rD1y43nMZxMLnekvtmX5n7sCJkyFq1AniRRzThKH8M4pGwISx/ 3xh00Z/kP7S2X1pv1nVZ2mixOKEs1OABd9mjwSUWK7Qb4CZU6i34ZAZ/IspZ+L3qoKj0K8St eH4GeOhRBL8+BnDKoGLlYOuDyU0RLmV4NhzNsfYh2Uqy/m7yob/dUUNKe0TXReVhMI0MMozN DGzOIhYAfj0cxSTNEnZ8CtZ2MzbMRSNhVLEoHUcj3GAD4q1xSGQCl1yAijEQRDhhIBpgC5WO IXgoug1wTEtu78nKtF1RaYxmIBxMomO0ryZGZJLG3Fdqq8eXZiyQzmoF9dS6epIQFmBXHxY4 /5a6j/73FfYBoj+qLyYzqBjP7GCEsxcKgsUy2DuBd2eZCfKW6yo3pVmB2RhFiFIAJm4D1vc8 rGiSiIFjXo+hLyKq0hPgu1Afjgvg6S0l3koLThlRwX1dOSr1h4vUARJWoREkPeUOCIGKy0Tm ucL7BBnrdNOZ1WVAwFa/FNv9ltRrC5N83zSm6sgn17cYZVL6gJd7A16vbJDf1+XKUnoqKRfJ 0CqAioB5uo1nFihQ6O7YzIGLOceIc9z5b2cli87/ZURJEpsUZ7g0ij4m+cqmjWwBhPr5hEy5 +n9v+wP1Ns4T19GCVUNzEgqQwabNyaUKY5X+hlSxSFAhknGqJiVuT8+AK2OW/cqMpb8nWFM+ sILSwtNaZ16mzdBbNMqo//kPkFAWc5oKj/JrBzfQ4SpTEyq9yTf1qAG2SCh15Q9t98sKqCev q8rkwER42Ugqq4RKIUaGuRiE3ydB0LntZW8eIa/k+OY3eLWnDLjlgFJmaHfgVL1rMeUHi0FI Cet1VWNRUle9/Mcl76Aeh1Fg3LNssBamAo0kuy87ZFRNdmgVnfRW8CBLfeiv74fkw1mhoZ8L YrHdla9wovUzLHjyczBJANGynxVs1Jev1uf9zkPCO48h71pTrhEVmvzt+o6GOSWNPN9/80re 9PvekAMyrfajjef3efjAX/lDuOYuzELXTiSQn025woCgMabKy7o9z+KjWei0h7j8//b+ob0x 3o7Ws4GLiS0j6jIELVUmYXC6naofD01olbt9s6tbazKYC4fjv7aAdAkYKAu9LMqieyVt7QdC AITLlADJmbFJzbgtLcgMiNRGTykD2r1ANZBmaMGgZJcnSlbGgRQB7vWRBgdWVOK8BPdfNU2x WsGXgBtd2SE1QAa8hKx18J9clwDE2lUTQOfS+QRsnameB7pQbn1ZWmW/NOfkMGgMmgaV8wty eCREBWXCAxVqH0dmY687chn4SqrkM2PHyGeDKdzo3c5UthISMEiGQHuiY4rGWfZZoqsMsAzE DH30jIf1DxDv5l09t//zC0R31DCDPJyLyBOfGwUllVRQ0g87Nu8KJGjWDziI6aeLR2uUnU9w uZ+9hpL7zpXcSfMEmCvFpky7cwUiBI1Tr6XnI18SKvpGjTQ47TzYV/usM5aAPEnO2XrCBi2i 7vkYLDHDMfdLYKmWY7CEAcqUASAJc59QaSsLARWH2jlcEn1UWQmNWZT1gCv83ANzkkz7Qtbl FksE4FR1BZSJozEoa4zAEWW73o6DVjYMJw10EPum1BgfxPZk7o0z/KLPju3R4yBAMjj37gI4 z7LX3e3xgAv1CxWVZGPNNCRYCqqSaJRgfP6q6knqfNJxQhit2GkK5o59VUGuT188giYCdW1v 6P36UI+LNRXeI7jn6eLDsfVofKz+C9vPGH7YFPkG5uWy9HSyt7weFALHOSvACBQC2en8o60J qE8V4NW1bgB6dPCA2u0j6qZv4AgEw7dhTgKAj1SZgLE0iQdTi7UXpM5aZyh8gsLnfIdg0APU MG6SEQAckCG84Z0Tj368Xyz7J0i4wtZTyoHKgxZ5yc2u81Mz3MLi/jFyPdZTtjmAPtBta5rO tYepcyBPRJx+jvDmLFN2/VdOCE8X9/enII7cxhEQRu+1ZzpPCsyVii8/xOhBp3E+aLSQmDPe RpwqyYdU2nzroNczmNnlsV4PL8hOWkESBmWlLeeQgxedSoVHGA2CAx8tQKUbxLCxPRvzYpWn w/PypC8Cyqhkp68SX9ACfiKSNBHsyHrfIwHwvOfDE2UFo2kcew6i74ZbJeVReDtrRqIcKpdN NLnXXO3loC0mz5Jkva9yN8O4ZAIbSumbxQuUDSiXsvg4zjPoFpBUAVzdOBRx31T7dyMGjaOX 2EdPTXMVkblMHXrfGZhvmqv3kLnSfgxzEo+CFHm9el+Xy6auP1791S4yqN/+EXL/yQ1bkX1S dFUrRN/CAMqPxno5+HEA8Q64COThZcI/AmwPMwGQi4OiQaXNs3/i4s2CfD/7fvYfXFwMAmVu ZHN0cmVhbQplbmRvYmoKMTA2IDAgb2JqCjIyNjIKZW5kb2JqCjEwNCAwIG9iago8PAovVHlw ZSAvUGFnZQovTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQovUGFyZW50IDIgMCBSCi9SZXNvdXJj ZXMgPDwgL1Byb2NTZXQgWy9QREYgL1RleHRdCi9Gb250IDw8Ci9SMzQgMzQgMCBSCi9SOSA5 IDAgUgovUjcgNyAwIFIKPj4KPj4KL0NvbnRlbnRzIDEwNSAwIFIKPj4KZW5kb2JqCjEwOCAw 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 BNuIsWBzz1GCFUG8WrADcQ6tKoDDRjz9rScsZZCNWDIoBCa/Eg9HKEiPIMbSi6vTmdKkv1WA f8PeNw9xXPk0HcD3AK1fqRkCkGKsZgDY+MaopDvTgWpQ8jMONLMiwEmPFKH0kCJoxGtDqtLT 9+6KHgwMqEpPn0pqZJ4DqtLTpyrxREdVI4xeNCNsM6bKPX2q8YmejowOGDGKp15lEEhkRXqU s3ozQxy3387Xu/RwaxRTIKGAG33+/ch6v2OfXB4+oSlhEHbsta1BBDsbxUFwKOWFSpdqfMLm 0JLnpg2IjKWqW0sG9XR41YtOPmHL1cP9x+7JT0oEs196T9A0j0+92CZFBmS+AUA6sAaYWn5a 5UXR9dt2317TS5r4fGa7eUT8/Zc+/gNnEBzkDe/mQ8eZX3ZdX8OQdyy9oHvqXZIXBw96urd1 kEl5PHW97M9f39bVJ0TlHZOk8m/+iGSBs9Ob+ooJfjDUuIr2cw2QWa7nUVHmeas46zo95JtK eDirK6sWmy0OsI+pwq6+UaqqhqHrxKthGrF63O1pSrZZLEYJFd1SF2X8bN5XRvjB1H2/v9s8 3t6xXduSLHePizsI9GG++Ck9BfNcy/wgsk271gShsr4lW80/pkdXT294Qy8bhzve8QxjiPxi 7vR1u16327ffQoPvU1iP5Ko+wfv49tvN/Y/bzeant/+MHyEeVYKAzWPKYyy9ghJRjy19zju+ n+/YFXiK3QyECCLj8rGQdnHF2fcXnRyhpraEvPPbFpnLD71k+n/gAmmBZW5kc3RyZWFtCmVu ZG9iagoxMDkgMCBvYmoKMzI4NAplbmRvYmoKMTA3IDAgb2JqCjw8Ci9UeXBlIC9QYWdlCi9N ZWRpYUJveCBbMCAwIDYxMiA3OTJdCi9QYXJlbnQgMiAwIFIKL1Jlc291cmNlcyA8PCAvUHJv Y1NldCBbL1BERiAvVGV4dF0KL0ZvbnQgPDwKL0EgNzMgMCBSCi9SNzEgNzEgMCBSCi9SOSA5 IDAgUgovUjcgNyAwIFIKPj4KPj4KL0NvbnRlbnRzIDEwOCAwIFIKPj4KZW5kb2JqCjExMSAw IG9iago8PC9MZW5ndGggMTEyIDAgUi9GaWx0ZXIgL0ZsYXRlRGVjb2RlPj4Kc3RyZWFtCnic 7VjJcttGEL3zK/oWucoczYJlYJ+cihxLKdu0hKocopQLAociYgJQAFC08tP5hfRsAAhLViQn 5YNdOkjibD2v33vdQ0oYUP3jfufl7M/Zn8DMZ/5XXsKP6ezwNAHGIF3NGMzNKMQc4kBAWh4c v0mPTt8cpU/SP2ZRSFgkId3NQk7iMMKp6fJg/tPpi5cpHH28KhrVPtMTqZ7DgpjQkNtJZ+qq U+WFaoBTyvQcFksSCzf8OmvydT80FzgWBjAXkR58W8G2qrZ6tVpCUXWqWelpSUyiIErsDlmu WqgruKpxwryr5+YP2BTVh/YpdGsFTb3FlT/olTp6SHOMgZGY2Q3azEWOHzOSMGE/Xi7xUi20 63q7WcKFMlu1Wakga/XfJl4uGeExzHGR3qneNjmOu6VFB/m6bhWs6sasXqvNpoarLP9gcMC1 VEh7mur09FZh5LXZGdMXmVCDkIhIuMteq71bUMKZG2m6/hYJCWKaxPbzddaNkLMrdzORkITG A4IEXtV9/kREaCTd4E7th8M4CUN6fzhmuzGe1dUAs9ArzKd7SXMUoCSkzGNq8gg7RHXT1tCo vC5LVS0RT7zY4vg1lAh1dokc2BXdGjLkvfmBpWq7osq6ArnhM5I1bp8szzUvl0QfeXgaOxng NSULdIgU5txwMG3G7AiogzWr2kJv3cLKTEBdRJEHtC7hTX1crcbgBAGJRD/hbNg0wPQ6QXVZ p2xAXpdzxgXRiZqziJh4fl2rChNqD6ih1WsszVc1ssugLmLCqYN9V1SXMMkhT4gI5V4O6TSB SMQyu4GuKS4vUbwZ/uXv/GwCGgtRTJINMZ6qXBX+SGbgJJxravEQ5c36k+GkP9s6h8TAkp4Z 5wdnT38+f7IPiQd0jpOTgScvTsaQJl7cwy5QtJo+Q2AWi5gTxiN5H5+XDtmeuFUx5oWg0sPm lUZJFMpeYHBs+Vl0LRwv9sjZova7+k6nSpA4XNxuVTwZe5WVT5CQEO/jYMH9j4ld1KcnxZM8 KPZeYUyC3mN2Vds1Kistt5AF+bqolLbYwUcYulLCwvH1Bn60/joniL7dhdhF6EzUGX/qHFTo itKHa2rJDZiigx5FuUOwKJGD5wdHqc0j7tmgep9Chk4wwu9VvVmm1lsp7hr2i1GlKEo9xRFa q0KHd7hotpUTnQh0edQUwzwzqW2d6/V/W/wY7f8ZCTQQAucxPeSc6E5PmYdf6iqG4xwBC2RP bzi7xTZkRCTn8lPbGFIyNQ00mjjm95jGfZ7R/nvTEFrr3z3jm/aMRpVZgWyfEDMz9d11WFQQ YQrgQwwCr+YtwkFVZh+LcltCvTJ45tum0c3WtcENC6anfrbZKh/A4CcyIDhpOGtiGEgIilX3 bsP4rHtw4x6fdyi4w1z4oyS0mEgoQUdxidGHfV5DyFIuoz4jL4bNMBDpST3a5y4VYRfPwv9J RaPe9sEy2pePUwj6g+yNw/eTX7W6Gl4ssBdGpox7+6lkbAEGV3BNwgNJeF9XxvtAZ4Q0lNjn +lmi/x2QOjlcvH9rdaNrAnPNq2qaYqneH+tbXLtrs8AXqmwDxaoXtRABCq6P0GIPa3xYlXWj X1pZhYgoqFRxub7A1xPC001eMsiRSIoeo+dQ4+7NrsD31l7If6mmhjzbtg6muV/pDi/MLEu/ gMjE+6N51UKBr41lgQBubvSMOMEuPnF3mmoRrZWEph1wVBibVcBRNZ4EBmQzaoDCDqAvYaqd WESEr2WW9Oas6TXeN5REehjMtv6xuc/BRB/vA38kBy1GUt9xjFFLbE7RZCLOvoIQxk+hu5sv HjpVfFEHZsXiR7BwuqxZ9dzWijHEI2afdmJ7sru1I4tQQP67lgc/4+RjejKJDzksat+bsm+5 KftPHnK3F5U8q3K1UUuMWoOIII27HTR9Z8MhPkXEYDE3U+YLSvYbB4OkL4AT/p8/mRQ/SgR3 srJO6jYX0vIRR7EO9N/qpQNBUHCJ8N+suTs9sNXEdGNVvL/XHCpF/3adNJ0MrZjz4Iuazkf3 mt9L29cpbUMZi00CX6qqUs3hK2TRxlwiCgnvv9m9OURWXTR1/eHwFzOIBjf48vbalhlqXFYL J9LDLlkb7MbOVK7DGXeXHCeFsZNPQAIiCPy26MWFbzLZ44AcAsF+14NHKbybvZv9A2nWr5Rl bmRzdHJlYW0KZW5kb2JqCjExMiAwIG9iagoxNjIxCmVuZG9iagoxMTAgMCBvYmoKPDwKL1R5 cGUgL1BhZ2UKL01lZGlhQm94IFswIDAgNjEyIDc5Ml0KL1BhcmVudCAyIDAgUgovUmVzb3Vy Y2VzIDw8IC9Qcm9jU2V0IFsvUERGIC9UZXh0XQovRm9udCA8PAovUjM0IDM0IDAgUgovUjkg OSAwIFIKL1I3IDcgMCBSCj4+Cj4+Ci9Db250ZW50cyAxMTEgMCBSCj4+CmVuZG9iagoxMTQg MCBvYmoKPDwvTGVuZ3RoIDExNSAwIFIvRmlsdGVyIC9GbGF0ZURlY29kZT4+CnN0cmVhbQp4 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 HszponHTk9nCHRr7b3kGrO8kKFFrZyjO+BoDCC3zOf3YWrsgSa44j5MeTaD4+ds9ujPZBlCB SnE7rW1pREixHORTS/1CCbLYDcd+TrbUC7opB3KcRPhYK2j9aoiNYZ0D7CHQSUAMQTUhsN3E O5akeBgeJvzry7Az0smSTJiGYIwNlw0WE3EX91Ife4w4Bro2wlKrRTPs76UZi0bt3z0HNQlA d+yZQGDdwGeuJ09IjqV6wfe1bUeApwx42rq/hwd1u4X2pGoYjXWc7n9wRsPRgY6+VHKv3EWA Mrv1fVvVQl+B6XzafLs3hika3d+7szrhGqpwk3WE6AisXGPbVdiHdnzzBMLWsY+VBj7RiVeo nswzXJb8lXYHYTtD6ARQno1vF84VyZTPi3N0PqZxi7ec4ZINbD1ynkfwum3CNYyOkhvO1HFs EFQ0813+vLQ2+JsOZwWMwawohtPMjfSLuVAGVuJB2JoL5aeLm8W5McwsiwFmwO6vvsxFpUCf rXQDk3OXTLGtV9Htnyvx+qyg1JqvPHPX468VRsW9wvZm/SVcKIBCTlN3rLstizzNgM8KGnk6 CJIsMIIZu/ozfGD5eWIu6KuMZN/PQXH2tfIoQOjPdUM3qJdNI7urj6BUt2YvmMFo4pXDy9XH drvs2vbT1d/NQ0h6+FtCe7BxzxKYDYmbfxgLtwTQ3B+lUXUDno4zCou4LyF3Q/PHfYgmIKMI t/Oavhn9p354s0C/zX6b/Qew/hi0ZW5kc3RyZWFtCmVuZG9iagoxMTUgMCBvYmoKMjM5OApl bmRvYmoKMTEzIDAgb2JqCjw8Ci9UeXBlIC9QYWdlCi9NZWRpYUJveCBbMCAwIDYxMiA3OTJd Ci9QYXJlbnQgMiAwIFIKL1Jlc291cmNlcyA8PCAvUHJvY1NldCBbL1BERiAvVGV4dF0KL0Zv bnQgPDwKL1IzNCAzNCAwIFIKL1IyMyAyMyAwIFIKL1I5IDkgMCBSCi9SNyA3IDAgUgo+Pgo+ PgovQ29udGVudHMgMTE0IDAgUgo+PgplbmRvYmoKMTE3IDAgb2JqCjw8L0xlbmd0aCAxMTgg MCBSL0ZpbHRlciAvRmxhdGVEZWNvZGU+PgpzdHJlYW0KeJzdWklzXLcRvuQ0vwI30y4NhH3x zSnLS1JR0eJU5WD5QA+HIhPOUCZHVvzv83VjeW/eWJrwKScVDxzgoQH09nU3ACW1UPRX/6+3 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 xO80/T2DY5ASx8AG86kc81SJA58MfspxfTCVYoqCjlytsfOMqEltBOAf9lG6FkFqGlWBHv6t C9zE6W81D3rosDz9H6RnA11bBnqWAPud5aX4qpHzxTAKNgfkY7uygW7vAl/elt8sAfxOk99h RrQhdgLdBT4p2kyfR2q6rzeRHpTRLN/dvnn3MH4eh9CqkmqvEz0/jaMo7UrP19+2F3e6PY/z 9aHd/fvh1Rwgrb2P3D3ueQGdoAzbJr7circl2ANDY6yzL293+83D9eV6I6qYG1LCIMoQdnV+ hLesDwEnzyMNqiaDQLO0mUHxu81ut3l4/sPl7upuU5+C4nvdyB/Pf7i/+/Xh/v7fz//OHxF/ kfRXjt6VN5RBSbJrflhInysPd5eP4mKz3t/e7wYJvl/Qwxsf65tBJ+lP/NxeFL5f0BOE0OSA xAp6/WWkyv8C0r7R62VuZHN0cmVhbQplbmRvYmoKMTE4IDAgb2JqCjMxNjYKZW5kb2JqCjEx NiAwIG9iago8PAovVHlwZSAvUGFnZQovTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQovUGFyZW50 IDIgMCBSCi9SZXNvdXJjZXMgPDwgL1Byb2NTZXQgWy9QREYgL1RleHRdCi9Gb250IDw8Ci9B IDczIDAgUgovUjcxIDcxIDAgUgovUjkgOSAwIFIKL1I3IDcgMCBSCj4+Cj4+Ci9Db250ZW50 cyAxMTcgMCBSCj4+CmVuZG9iagoxMjAgMCBvYmoKPDwvTGVuZ3RoIDEyMSAwIFIvRmlsdGVy IC9GbGF0ZURlY29kZT4+CnN0cmVhbQp4nLVZW2/bxhJ+169Y5CVuYa73vmQDFOjBcRuliKva BPpwfFDQEm2xkUiHpOz6V/cvdPbGm2RHaRMYvu3O7s7ON/PNzIpgioj58r+X29nH2UdE7Vj4 tdyi/6Szs8sEUYrS2xlFkZ1FmiEtOEq3J/OL9Pzy4jz9Jv1jpiSmKkbp40wyrKUC0XR1Ev33 8ocfU3T+531R5813RpAYGSo0JpI5oav8vs23N3mNGCHUyFAdY8399PusXq67qYjDnBQo4spM zkvUZjdmgoECXLolu01Wo9uq3p6idp2jps3aHG2z5booc1Q4Pc5T9CtcqpgJLBBohN7B9x8z zQhmEqlEMfN7O5NEjEY2s6tnbaWntuJEYk4oUrEyBjt/sLcDAzHtNM3LtleGU25Piun0bD/y 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 Fqv897lB7MG/eFERIM42qLgdOBZaQ3rbVrXJdxlkbtC7zIu79Q3kMFthjfOJ+UyM9y78xjlh rKA+BieUVq8f87LM67O3AMbGtbTQ+3TZ5+kMULmpq+rD2c++3+XgxZ4od+7TJ+i8E8jXhhqU mfY324CuV1AtgaeNijEQktqTqsDmC/1v0XkUOE7cZVQABHHx/66F/HX2N8gDDRhlbmRzdHJl YW0KZW5kb2JqCjEyMSAwIG9iagoyMjkyCmVuZG9iagoxMTkgMCBvYmoKPDwKL1R5cGUgL1Bh Z2UKL01lZGlhQm94IFswIDAgNjEyIDc5Ml0KL1BhcmVudCAyIDAgUgovUmVzb3VyY2VzIDw8 IC9Qcm9jU2V0IFsvUERGIC9UZXh0XQovRm9udCA8PAovUjM0IDM0IDAgUgovUjkgOSAwIFIK L1I3IDcgMCBSCj4+Cj4+Ci9Db250ZW50cyAxMjAgMCBSCj4+CmVuZG9iagoxMjMgMCBvYmoK PDwvTGVuZ3RoIDEyNCAwIFIvRmlsdGVyIC9GbGF0ZURlY29kZT4+CnN0cmVhbQp4nO1YzXLb NhC+6ylwq52xYPwRIHNLp07idOJRbM70UPXAkJDNViQdkorsvnRfobsAIVGO7bpJa09mPDrI Ihb7++3uZzLKCcPP8J1Xk0+TT4S7Z+Err8iP6eTwNCGck3Qx4WTqTokRxChJ0mrv+CQ9Oj05 SvfT3yc6olzHJF1PIkFNpEE0LfamP52+ep2So6vLsrXdSxRkKMOVoSwSXujMXva2+mhbIhjj KMNNTI0cjt9nbX6xOZpKEdNIkanUeNj0F7Zdl50lZU/KjnS2J31D/rRtQ/Js1ZX1OZ7AI+sV S6pN4hU7p0hZVbYos94ur1HCJFTLJPYSFJ8cnpohBVNGY65ImoMXTFLJYzIVzo20HULLJ5xT xYy/n9Vd2ZdN3ZGFE4DU6I35piKzdlXbWTiRajixdYF+n/XglfcgFGHKuaYGSgFfzvAvF7Ym ZT1oGi7O92az+T7p8P4BgQyRRbNcNi4BcUKVVt7OGoWdBYiM6wjdFwmVUTw48tluw2JU8PC8 7jtSZdekb8vzc6hbBn+FWF/eyJlgijIlti6f2tyWwShH3aBaICpEBJXlG9vk3ca6B00MroXk lfV878XBGwizab2gZpQJvXv+4uB0Nt8Dqfn+biIRo66QgLREQEmmXOK9V1ubXNHE8LvUObMj LwB77Tgwn00eIc7jcTaD5Z2EFr44Es98hssxoCSLQ+Jtu3BaGNVBb5ZbckzWZX8BUO/I8YwU tuvLOsNyDB3h3BLC0ASKP8SKwGibFaj8YeyYgirwANIuG/uRwEXvbwHt3BFQf+x6ZApxKsmS bZVTUD7fOzt4c9Be9pAfH6ERIBZgvq67vrVZ5YEKgMovytqi0nITJwdvEh6NA91CrcO+dtMH UK116DpbXXqnIG2U8RDuTot4k+uLctn1rkNaW2VlXQCYm4V7kDfVZbOqC1flQ3eZVBB0dj40 xaA2b+oebqJSvPbuQVC5bJscdNni5oQR0f/RKK4MKKMkFXHIP9bljq7QgvI4elBXbEt8ewvE 0AGJubsFHqsDyA2480RRLQY8dx4vOIVhoA9RZzdRzp4A3ifNcb1ovA7qr4ALaqiA372wC6Eq m2plANrZLCUZbLc8q3O7vB9n2y0kIwAY391CzoLisDbDsCor6BK30t3mgn23QZvtbu4r3JPS BNcwbTt96LQnUErNx9oX0DL9rSnmzFCh+bekeBefUwlNEW9dtFe7Oy80CxIYP1aGx4+PhT5k rxjh4VZ6IjSOgP+CnRS30hDAGzMquYOHFMhA7iIgSA9DVv4t//gK+sG1oRKI6TP9eKYfj0c/ hj64hYV8E/Egu2Rjh4c8E49n4vGdEY+H42x2A2cJNWpwHvtjBLQIqsPZPwPNwLJMRoN3awG8 i0PRR8rvQVoiaBTr7wRpCU0i8bRI8yOvG/GFEcqAgzIxiKd+xoHXwCLNZnM47nntR69MQDwe Ucc5YDNUCtS2vS0OQn6q7KqsVhVOWkxivmpbW/fks0u2NNQMr5yy5coSRDMm9G2zLPyUVxSE trY8sqTCN2YALcgM445HChT4y6eTs9t/jMiUkhKYGsejRQu8C40O1AYH/Zdr4L6eGudGCRi6 8itYO7BHw5N4zNrHeqOYxrF8LLruGSK+9ZMhlqsRG5eK0SgRT0THv5iSUEhPvQeopuTOqTiN oNtiRhUKvrZ1bdvDtyC9dAFr+F+MBR50fQgo/Ng2zR+HP7tDGBfbTbtyAObAQHFD4nzUeDwU d5l15Mzm6PZ2MsGIBaHIDO9pFcUP+TVMwTX2VaxDvpF6yOg3PISAPkw+TP4GjKcFh2VuZHN0 cmVhbQplbmRvYmoKMTI0IDAgb2JqCjEzNTIKZW5kb2JqCjEyMiAwIG9iago8PAovVHlwZSAv UGFnZQovTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQovUGFyZW50IDIgMCBSCi9SZXNvdXJjZXMg PDwgL1Byb2NTZXQgWy9QREYgL1RleHRdCi9Gb250IDw8Ci9SMzQgMzQgMCBSCi9SOSA5IDAg UgovUjcgNyAwIFIKPj4KPj4KL0NvbnRlbnRzIDEyMyAwIFIKPj4KZW5kb2JqCjEyNiAwIG9i ago8PC9MZW5ndGggMTI3IDAgUi9GaWx0ZXIgL0ZsYXRlRGVjb2RlPj4Kc3RyZWFtCnic7VjL cts2FN3rK7Cr3ZFgvEiQ2bVTJ1U6yaiKZrqou6BIyGQjEipJRfFX9xd68SIp2U3zaKebTBaO SRC495xzz70wwRQR88//zOvZH7M/ELXPwo+8Rt9vZjfrFFGKNrsZRQv7FkmGpOBoU18tX29u 169vN9eb32dxhGmcoM1pFjEsoxiWboqrxQ/r755v0O37Q9Wq7plZSMwaKiQmEXOL3qhDr+qt ahEjhJo1VCZYcv/6Vdbm5fDqZi19QAuCEyrQJp8tOKyPBFrw2Hywaf05+YxSLIh0+2RNV/WV bjq0swsgzjiWqXupa2TTYBwOTtwzVR8wWrXHRq1shnBeIvx61RRVc4/e9FmvXFgBpwUVCY7T BC1ojG08v5SqQVXjDhAxZlI+OsDvd3e1Wn1zd406sy/KmgIdWp2rrjMvM5Tr+qCP8PSlrpob +yWq4W12r+aoL20kC3/CgnJzxk7v99pmRnBEuA//ZPZzy0EEcWSwYinmUeIXvFMjhgQz6h83 fYfq7AH1bXV/D4Rl8L+A67MLeniESUInOKxVrqpwJjVbw87MyIFFQB8djkar4XCnlhRLEbm3 Jue7qzfzF3NHIsExJf7LQ393fUGGBNJSINmjsSnVh0CEd02fVSCRzPHiTzIbYxfTkI3ZavIa FRZlybDgQSSnputbldWezjrLywoO00YNvWp3Vuoiwin1yWW5QssJpB3aZvlb1OuBXEYTYCmk c6Yde4iNMmWg1KBiE6etvwcnwCgxL927qgYO765uNxB/1SEo0T5re1XMUad6c2ydva/qY430 DlVAfX5sW9X0DmMujFUAyCyhmHEOQTGz6Z8OKEqe/mVCDtAvrfQWwnzOqKU/mypv4HZ/dPUA QKAf9b6wuUgj2aBpSAYqGwrZLPECNbg8phlfKJVSgUXMR25v4SBI+ZVbfh41i6ZiUm5l/w+6 suAC/ar4f2TkFIRe62Wz0xOlXOjpdmMxXq3gZwsZZU2u9j7mJ403gkzYf2S6xZPumkg4nH2a uxbGV7/AVtFgojyKcBzR0US9nQUdM8yNmZ5A0YTi1MZpkVXvkLowNYETlnyyrZqagA781VT/ HVP1ArEqxNJRd14TrljQpgz8nWbQ4Nkg4qm38hSTwOlneit65ypCYunnn2xifRfOS4nEaSI+ 3XknfjuYKYOsefylXhpxu8tXK/04Kx0N9LXu/YQ8AkSeqHMmsJRDWTsD82X17fzb+Xp1d/Xi 7hrS1+34/IWFQ3Wo0T3KbJqMgeBD79ypvLdpPcYvSTChJHkKP5s2hzkvAin5vD2kF3mG2hqy hYaLI4zeuNllqCxwlpREPqghoWv00pt7JIVvHYMuvLK6yymcSiySc3EclLU3znGc+OJajLwz ieEekY682xwXPiFoYNrU8xBSCXWDfoc4vJZsuTjImKCYyPgCstXyFWr1EY7rLDqUQGiMhymt 6tz0TuDqE6Vn7mOYaVCh4NPahnIqFTwyfcJtiBqlCitN6GuH7N4FQeCK5be3bc9W0ySD48FH 1uuzBkI5wyn3BXCajGPAIg3ktOY8P5TyJMKS8BDz2nYaWM3CFc4ViH8yULLcjQmcqq5UFxlQ Rk0r++cE5mCgqD52IO19p9HJfgy6lTQOX8MN0vDnTaSzFd87xDlJbbo++gGVURlxjGVKk1EZ lmttKfCMmg37MutRd9w2qp8Hw+6Ubey1Lqrdg/X5rSotpBwGBE5pqGPtOi+2cwRol4bY8XJs Tna2SqkndWf9IMVCktSz5VIKwzNJ4nBddfURdlkIw8EgsuzldHYb9j8H2/terqFNgVkMMDWq ui+3LvwhyhS2p75U5zZMuKBHMk2eDtNPbKU+Qk11x8MBumVn0XIWFMPMRwcLupCBFVdixB5a 8tJ0VGizF0nzVGAiBqfKxoGIcrNmMgp9VtaMMLiv8MdZxx8mx6W9BX9q1QGaRWFOHUrSXc7T xI29H7qct21VKKfCg7XG7YMTuODg0KOl+Pvio3LK9rWGGqrqWhUVFNz+YSrJBO5awieHn48B CDPyhitYk+3dVwMm8Fqw9DEmn6Vhy8UL1ag2M80YLX8ARwaeoY/k9oHAsZtWFyyKAbvhzyDD YPE3PKK8zBoz7oNw3jb+DybQ+eJgg50D1mzy+OMy69DeYGft2hV/1bs4/C4B/CfJbtUOFF/a 3Z3jbx/QJ/LEJcdMTP3WPxn9tkFZUdgxBlUOj1fr5fc+dWu+FRyZu47jk22Um0fBI0NHe99D 8ztcdg0OChXh0nDZNeKzpoHWKwuZO7gY/3TFUooj2yIsWL43eMycpvVuKq8UxuQkuMpudyac EG4YY02/dtnEZgBI02k2jjPbzi/yMs6SfmReHiwfnIDJM2XD5Hle0EAKTX1zU+/PzHNS0n05 dWYexjB98AwLYUeisylnkOdEMmejDPSq/cN4K+tPZwULTIsw/epumm4UcjGbuVEVygwahoAI pL1MPFcNFOfNjwDm3kEdYUaCLz/cwGVj22r99uYn+xJS4sE79NHefGgMI6DZ7GQg4mEMUXvQ i6/y6WWNUTMUehr8UPlrMPaTuZAlcRhyze2Bx7+ZlzCd/zz7efYXKG5pcWVuZHN0cmVhbQpl bmRvYmoKMTI3IDAgb2JqCjE5MzgKZW5kb2JqCjEyNSAwIG9iago8PAovVHlwZSAvUGFnZQov TWVkaWFCb3ggWzAgMCA2MTIgNzkyXQovUGFyZW50IDIgMCBSCi9SZXNvdXJjZXMgPDwgL1By b2NTZXQgWy9QREYgL1RleHRdCi9Gb250IDw8Ci9SMzQgMzQgMCBSCi9SOSA5IDAgUgovUjcg NyAwIFIKPj4KPj4KL0NvbnRlbnRzIDEyNiAwIFIKPj4KZW5kb2JqCjEyOSAwIG9iago8PC9M ZW5ndGggMTMwIDAgUi9GaWx0ZXIgL0ZsYXRlRGVjb2RlPj4Kc3RyZWFtCnictVltbxvHEf7U FuCv2I+KYZ72/SUfCjiI3diJDVdm0A+2UTDkWaJD8RSSspL++j4zu3skj1akqrYESLd3M7uz 88zbzspGCUm/5f/scvTb6Deh+F39N7sU301Gp2dJKCUmH0ZKjPmrCFoEa8Tk8uT5q8nTs1dP J99MPo68a5SPYnIzcroJzoN0Mj8Zf3/25NlEPP39arFuN98SoSQaZUMjnc5Eb9qrbXv5S7sW WkpFNCrEJpjy+eV0PbvoP52ehSLQ2IDKWTE2nshedVvxgig0JEmZtVus2nnmqtsYY9MxpSTG yhDJ5KIV845ojGxczHw3q8123U4vxWY73bbjy+nsAjNtxGI1X8zwRmwvplv8acW6u95C8HmH rytIsGrbudh24iOWZoKz1wJTteJDt6ZFxnmVsvj2YrER55jjqhnsDVJ6Jyaz0Vg7UPuG9/ii KxqcjZRsonFZ3ONdKsv8X3SPN6xcbRonyxTd9XIulotf+QNAJ7mMaaKy+Xu7ZTBl41PBsvu4 24BqTD/RrcpKTZL6FnUdqOb5Skzn88V20a0ei24F8ReXEPrF5N3Jo8ePHp+9fveNADfLqryF GopIMD5xc7GAieHz9SbDt10vzs/BTkJtWmhkdS66D2IqXkDUvRm3rNVxnbCXsxXXV0W9q5bd IzU2+mKWv2/FRXdVmQG1Ys3FJlpZSG6mO0VBtar403q+KYra17m1jVeucD5+ueN0jQ7l9dnz 75osiiHFu16Uf0OUdye0G1bq04n4J3x9gXgQGi8DCyTLc6jhwvgAA0vCY+MGhnb85nNjA0/1 wcM9o5gxh5NG+BgbCWencQRFgGV4UJhg+XvQir+ThhTPGWDGPGeyeQyXz2PfaAcOGIVSjjhS 5FWD9E0kipjymslkjugaGSFV9KRCXgPmSnKHVDj+fDwbvYHCdLIK6Amn4XkmQh86JtdA+U4F 1YQolqCBWPjmNBCQFm8+PLpDy5AqaNKQa6y3pOXB6ku8wU4C7QDMjmYleb40eC6UZXVVrI2Z oqpFpzxOBQrtm4QwHGSsHNryHEHLzGFSDyaPbTYQAjNEhtu5YgAyG4QrFBJRjAzGRYbbJ9lY yyblihSxGMgd4wJeIPAYGFhkIPCQfBooHuBBhETgkVXiG2hsA+nuAZ6HVCaweTvEhcsj6QCe 84112QWUU18JvGDyGIk5ZTWFIgj2zYpM2a+8ilnRsDdWrAzFxomDVO9SyL5aoHHwL/JmAs8C buIocJvM4WH0zEEZnzwPms1gSvZ2kqF4t8sG4m0qYP35uIDnYQUIgzbCCiL5iKbpbcL6IRBy 5NsmgQDlgroXcpaCBC0EhZmM3OHShByUiiqIxNf+ayEHQ+FoBSssOkLcYq0BId6mzhRYhims caxlcrusI2tToUiZw6k8Q8p6t7RJQg6xNVuHhYUzUnB2Qt+qsmbIMdNKA4UbHpeYCalyeDDZ le8YZ+SQhFCpIWYqiGY1IZcQ0FFEOoXooSiWMU2kKAo4431ippXIHgpuh7DrPTnzcPUl01BK Jb16778WeEXRqIx1jmdITwynzynQItJliljAK27pshsCCrgscxS7IzCZQ8cMjSnpTNeEZ2sc 1gUsVVzbxAKeLq7vqmunGh5KSrxjXMHTgYCxsJ3GuQweHDDgTZCNZuwootMLMrF7OV4iRTgI h7wnK3b7ixN2sPjkWCWcVr8GdFXNCNjF70wBAnIQNDqFEr0MUyA99BE1Q6etLdDlYK8r2DYD oVUxBkCc1aplkQJJgSnuGGcglMfEhAMcRXpsTjlYdfJ4A91JUrvyyGuRYmIkae8BhIbLBwIC wcIERnewOOIqqkuj8MLxSe4eQFAyPQRi+OZoXBOTT1WtVY4SEnX1mRIQkQ5KgAwFOp10X2Yy uDWc1ZpAF6BCVasxRYqQoblrXBKRJevVCFXIbIYTkYMdIbw4haIwkN41khB9Q4BDcHD3cQl4 OiIJ1sJ+LLvEYHU4GtVaIeQALWsuUuK8twUnYbcx7FkHS4AllfXE3Fc6ii19V/nQOY32lXYU EjW02k1QhmUFOpjyC2gDJTUgLOxIyBR5+gXqGAxFhJ6iN+Ayw2ATs7vNVw49fmc2ptEAScEo InJONYLe8PrCEKs2Nu3MBMn+cIY6LmvQPmqsgp50Ev0MxeP7NWzNzb0UNSb0TpZnGO6jhl6D 0KH3QO3fFExg8mEfRBwCzT6Es1w1YcaeojfVMkMd9zqvbyoqdYaKWl1jh2uVor6pUtYZhvu4 G1eT0jCS1zcFFRPtAa59ZO9xpdi+j+vOncoMxg103r8pqPQzFNT6NXpceykqRZWyzjDYR8ZV wmFva8IF1euFW3G5e5foJwqqlqQmsALqVU+duVXHrZexRU1nvRj3zPOTj31TjI/6iNmjf40A uyQgJIWI8kyBBM9q+CzxfDFa3SbrE8EdqNpbpPYGJETSJt4mknR/OVj9QXvWgfp4JA8dfzXN +tmNgY6IouRTXX5WfJ6jUH34/ICNaUpMxIsUfLSxO7soDsE9BMsdjmzPwzdHYxyWVemJZMtx RuGYqfYoUL3HtDd2OJkFEZCDpPPMgerK5p5IQMVfxx7RSCFlOhO5YedRLWhPfulQw3g6ygbb WNIV1TY6co2t6eCMes3qwGk62MwBy9eOS1uNsoTG1MigISYiBo1ynirhCJyJAa5gElfLsBNB SzpyIa8xZZbJgsHRLvY2QXUsnUvrEPoJ1va7pjIYZyJmyHqh86iCrFVvu3HWbB3Peix6ijvG s1IBPcCajeUCwULjLnFr/WXu1+2353Jbb9+V/9Gunn8vZhfT1Xm7oc9UFKEOEaR9qAkkb3/q bqiPyc3QbXc8x3q6mneXi/9kz+m/MfPV+nrVjrtP7Xq9mLdisdq260/T5fvcfKWuo4cpQsMy 5j4zr1Ka/cdLvX3TruaDDur741VBtu0FFi9OX4urdr3o5ovZ+9xOhrGlJBBCYUIxXyC0x41Z cS8Vvj2bLjbt4XKb66srbGDTznlBskCHYo1a93K34GtSzm7F46lvF2GscEozWokxAPchZuqr btmd/1HgFDfr7W3s++ENxSaO9Jjqsn/WuThXw2f1gPCGoGGJt+Gs8tcvELcVmWjik2t0HLc/ ZxYExaq9EbR56pV/3kzANkCB+Lrl/Ba+dA/zGjvqaCHyOOpfOZOvXRar79sNrHq+W2r892dP fnrzdJhIncdBK8Z8EsvP1IXCcxo++wckUhy/NPW6kE6hur/9/4DQjHSRZPn443eADDSblYMS z2r4gqPrO+SK25UzOfv5WDcU+g3n4vrMhYWjrvjh80OKDJSROXulL6YbHIORCR2d3dWtxvo/ xLD3h9d8/Z2qRmlkInVedaM1r/RscX693r/loSov1vuh1nMsxInDlMu2b3/e3fsgl7pyN0jX UEyKZAWnK9zTS7HnNAc3gIPrUpKM6qMxda9ZtPnJs3a1atenPyB1LNty+YuzSpn8j9MfuuUv 66779fRH/qjIkeqN7PWnfAMHJUP3dBXs6XORazndiDftjG7xdlu/GXGzJJQ7MISkxjXi7ev+ Npliia97myJ4mvB+D/3/AjpjwKxlbmRzdHJlYW0KZW5kb2JqCjEzMCAwIG9iagoyNjc3CmVu ZG9iagoxMjggMCBvYmoKPDwKL1R5cGUgL1BhZ2UKL01lZGlhQm94IFswIDAgNjEyIDc5Ml0K L1BhcmVudCAyIDAgUgovUmVzb3VyY2VzIDw8IC9Qcm9jU2V0IFsvUERGIC9JbWFnZUIgL1Rl eHRdCi9Gb250IDw8Ci9BIDczIDAgUgovUjcxIDcxIDAgUgovUjkgOSAwIFIKL1I3IDcgMCBS Cj4+Cj4+Ci9Db250ZW50cyAxMjkgMCBSCj4+CmVuZG9iagoxMzUgMCBvYmoKPDwvTGVuZ3Ro IDEzNiAwIFIvRmlsdGVyIC9GbGF0ZURlY29kZT4+CnN0cmVhbQp4nK1YW2/bNhR+96/gnpYO MSteRFEdNmBF061ZF3SJhz2sQ6HYdKzOFj1JrhsM++87vEmU5HZNNwSBAfKI5/adj+cwwQQl 5s//LnezP2d/ImLXws9yh54uZo+vc0QIWqxnBM3tLsooyjhDi93Zi6vFxfXVxeLR4u1MpJgI iRbHWUpxlgoQXazO5s+uv3u+QBfv92WtmidGMDEyhGc4SakTulH7Vu1uVY1okhAjQzKJM+a3 fyrq5abbmjPYSzmaM2E2X1SoLW7NBgUDWOo+OWyLGq11vTtH7Uahpi1ahXbFclNWCpXOjosF +hmcKmcccwQWoUv4fzvLaIJpikQuqPndzdKED1a2s5sPxiobx4pxgmnCkJDCBOzinfUOAkQz Z6mq2t6YnHOrSZKxbr/yIN25UQOqIV+g+lVtowcpFylaLGcJZsxmgmCeBGPeoRufoqXPU44T 6YNqgjg8gyQMsyRHc2L2L3X3LUmwDLkoq2eqKa12xnFCae6VrV6ffXX+1fn1q9eP7LHgvEwz cxqz0PnW4ooIzAOa6sPYAJ7inKfIffG/G/DcGwCQ898U20Z1+QpQSdk4XX7FpKsTmuQ0/fec TmqPSYlz8zEnJqlzazcBYPKE+Ir7Fl06wJu9HhbgFMMSpLx3V7q9tGUD33L3qYbqWKHXZ1eX LiCRfkAJEySUa7VClyDch+9rdKNanxomHb6CokXZZSXHLGe5B9sO6r3VqH2zV3WpV+VyEleS jEPmVx4UMkoFTilHIkm6kI0jdhWFrDPc+vmqPlRqiJMoph0Q5zQXUOgUga6PQtEG2Mc3djaV dORsWDHOshRIbyAVVmJmCPzRS3WMEnEXycVESkykxlac5sGJ8SP2fFCigKdSYcjY3CwVKlar si11dY6OCm2K0+yV5ZiSxBfnO4XaEX0JqHePN7gH1nq7tYmBUhAs858dy+oOtXVRNVZfg46b Ei4cvVweanQsW7g07C1y6erDAuXJJH8pE6P8+ZUHcTY1HASElnLWBcKWKZGYy2GZAorQTUDt wBYmx7b4lThnTEyExCcbbDKRSwvvYLoEesnhFCg3a3lU98RIi7yve9sPmG0ugVxDIlRjG4kE p4x3rYFy/lOGuxMG1GNx4Xd94bZ6UMc/Xb94iiv1vn2z0fvXZ+Ejw4cZcBoVQdGJWk8edmac BZ6nowCHlSgLPB/DJqw8qHR87Ln0qDlF0SNua9HCx5UE/i8dJYeImvXg/YCkCXQFpuio78CW tSoa5c6DCzmjIVHxgWGjO7E57PfQEzZqFWfD7T5TgzPh3pD5qTP9RnemHrUHJiwskEMMR0r8 cXVdriYFxA2Ih1nxK5aMicyHUmElriAiUzKUCiux1Pj80/QxMWtEOrEMT8am+5XP4CGBOEs+ n4c4nVQAnVYAnVQA/QziNK2o6VQ58SXQ6r3e6rt7tNwU1Z1Cx7r9lAqmLMMUuuYPCqHvVfXi 2eAop6EZu88mBMCmBMAmBMA+hwCC++wjDGC6rcomyQxorhA4cK0vkGM1Kh4BpO1pWL0/WTyu 5SOAkbznCoiUaQenvZPRr7erQeicPfGZ71tkT2gCQ6UcOl46rP5R10gyCt4HKv938kATpoB7 iBCWP5wq2KRwWUQVNDdwiqXCSgzy8Zena3eicFTxD+21GAxD0l7Um7IZjciHRjW25+k6JgIN iQitlO2YQLbWT1xDbAomTBlAGCA3h6iB5K3WWwtDO4LFExf6yx6bgw0eC+UalbudWpVgyRu9 LZs2kv7iG3T1y8uXFr2mwfDf1Ko91BVaXP9y4a6taE/5We2E/PPvXt64DzjELmz+PRx6YNXu 5a6hP+UDBK6FoRQ6RuV6xFofWoDYpmhQrZaqHKKMwlgoSRqjrC/FHmigoQcgwTnxFdqpNcY0 aF3rHSqq+BQYQhIZ+Pl+5bXTLNyGmdetj70CuOiFz2vVtFA5O//MkkFV98mpwK91r+toOoeM pGEuXiqMYKQMlXOcmQceFrbbTdGiYttu9OFuE+MhRPA8it6Xg7jkMLKH94mmiePCkq5xrFYG kXqNijHn7aDDKO7cswHNIDxCBJd2xT26VajvQ9DtPcRTgyV1SGTjj56cqytDI2DzYe+ChvoI MaAjEZJmIjOZGiXhdmoMknPHXIs69q97luknk7UVSOEjEXwHDIRRnkExpSy+nG/6d4Ae1XBV 5NQkVmCr9dcA3s6VyE/LC/P+6QzctPqiWeh8yBQMgCEli5hi9GhDgZFT+XGurVpk0tPW5d2d qmNAzJmAK0507xhFc7JWLJ31Q92TDw3uxNybWR+M//CGBGBaasCbu3dIAs0epYOHqzgLlIDi 7o0EArhy0YPpR4YL2afDcfNa13FiDMW4xgPSYKBoKqxFW7j5WkCnivBIpYRDeYdHl0ZX5aaV Fx09fpB/zyEdf5hcnuZB57mfKGSKaZ52jmNXe361C/TiY4DrLqJ4LIeCi2GHgzIRxo3TPU+n XkTTBygvoOz1vjbe9oZUqrzb3OoB4kia4CzztXg+YE4e5lT7YgBh9Q1jzJNQ4lIwGbqbvpPE 4dHM8iVwE8t5x5fuucG3MHD1Eh61MO7mSoBhoUGbp/bF6bmqKlU//qGoVlvlH+Rpx5D3j3/Q 29ta6z8e/2g3gT47dtYH9ywNk3eeEf9uwgL01RaQdqOWJgkD/gehNPMvsxxDJ4nRb686fwwZ idBRAQNDa/p71zz9PPsHHRYEk2VuZHN0cmVhbQplbmRvYmoKMTM2IDAgb2JqCjIwMzMKZW5k b2JqCjEzNCAwIG9iago8PAovVHlwZSAvUGFnZQovTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQov UGFyZW50IDIgMCBSCi9SZXNvdXJjZXMgPDwgL1Byb2NTZXQgWy9QREYgL1RleHRdCi9Gb250 IDw8Ci9SMjMgMjMgMCBSCi9SOSA5IDAgUgovUjcgNyAwIFIKPj4KPj4KL0NvbnRlbnRzIDEz NSAwIFIKPj4KZW5kb2JqCjEzOCAwIG9iago8PC9MZW5ndGggMTM5IDAgUi9GaWx0ZXIgL0Zs YXRlRGVjb2RlPj4Kc3RyZWFtCnic7Vhbb9vGEn7Xr9hHt7DWeyfZt7RJWqdI4CoCzsPJQUBL K4styVVJKqr/fWdv5EqW7aQ4LVC0yIMD7mou38x8M7MEU0Tsv/B31cx+nf2KqPsW/6wa9O1y drUoEKVouZlRNHenKGMoExwtm4vrd8tXi3evll8tf54pianK0fIwkwxnUsHV5fpi/nLx4vUS vfptV3W6/8ZeJPYOFRkmkvlL7/Vu0M2t7hAjhNo7NMtxxsPx27JbbcejOWc5lgLNubKHHy7e LD98hQaDtD3lGaaEFf6HTikqNwNIHj7udFeZdbVCvV6Zdt1je/9qkQX35gTnVKDlajbPg5A5 cyqWXTB7NaMUC5J56WXbV0Nl2h5t3AVwW6ksqDYNemM/MsBC5OFb1eo1ej+Ug/aqI7LzXOGc sRzNqcJO5X+2ukXDVqP9rh86XTbow8XXl19fLm7A195KmDflagsCUdWjqkVvvHB3dOl+uTF1 bRwkJMM8596GQ9XeeaTAX6qkdYoVmMs8GP5JT84SzGj83g49asp7NHTV3Z3ufCSEwoWCvKDc XnHK4cIIzDcPEI4a5eTqG5MqzLn0+qr2pe4rp4cLTFiMqV4nSNxCJBvdo9cuZwjFVISfl3V/ CjJlFBPCo7VLwGgdAMIyhOjQBri9LxvTpcBvyx6ttmV7Z5E2qDWAPOTWxgUapOQiZH25CnFx MDEFWQOpFBRXTaPXFYj/aOqqHyb5lwDwLzY+NpjO+zPOel9ZLnBBJ1exV+S/jtAun0ogFBMo CZgto3dmSJMJe4QYhK6I1dquffjD1+DXTbdvdaIFZNk8LHe7zuw66/BkTKuru+2tceG1bOGS gmU4y0JxXR6mrOBYCBqUbyugAoD27eL6W9y6EGcM54rHkh8+bs3uw4W1wIPCKaRPzqKV35Xt StfOMusmctyVQR5TGnKgarSNuqWVhxQREnhuk62g7DPS2GugBSYq5rDT4CjR8QZkB5cxvfuT rJUKc87zNGsnu4FEWZYVD+z2FS6AQ0mWcmF/CTkJFFgONs0G+IWNUg8BRaUTO4XPYVdIXOQy 4SUb+5OLXx5nITEj9Hyc2VGYfVbLHCsx1m0SeS/xMBNQ2Lk4lwFooSGLu2HsOwUoKYoQ6eMk EBwrKs6AGXuLIphQ+Yd6C1McuFSlQOrQIDhQaCTZB8AGZ1OfjvMDPOeUyCk9oDZO6d0mt3qE 3kd2t0Vl2voedbqOApgPmCxSAWUqgJJEwAYtbl5/nChRFViOhQmU6O23ikrUb0tgN2SZcN84 tCinWIXqd250Zm/B7bWvCaCbHPNidLVsDcSvi9dMe6KdAp2wgp1qP5vsCdR++iiwyLNHGYUo IKr8CPNVue+hEQ2J4bay9lAUuodOAN3TeNEU2+EpdBtnh5caT76QvTvdlFX7YAZwMlkmsIqt 7XpzQnoS8r0gab6D7b0exiGLi5HbYwmAbYRlaQWAtNp6OEBfhEKIHls7fClcgokgFSCwPROu uf/6+pXABDDKJQQ1VtQkKK30OQOUWD6NHKHc0PVmLHHwi8qY2M+VuHd5KnGoxiLLTxxsDPx9 wsFal8clR4Cz3ZRbKDtCxdJD1Vg7fghO0AywZxxmlBH2fRvGjQd8Io+p5EzvfZY62L+s8aWs 8TjM7rd2jKf8qUGEEhEteXHMFufGeKiTZt8Pnjmm0Fh6kuTp0HRdtdau4J3NoawsgqYbEEx8 a9N42skLnLGRzBwSn3xxwtYQp4eyDhNm+Pj3I6m0hk/wLDKsxp3xSTyfpzQKs4iM+XNCaSdq lYKt4Lm1y+k9YkAuGEw7+V/LgCnFn6IH4+v4g89D71G+hDlciOJpvoyUElJAwsoj82cJE+Yk mNbt5J5S5zIZ2ims4GFo35na3N2j75wodICCeZ5Mw3ALQyzNRrZ5kbwcCFiyg3xb8eMiWflF 39KAHcpvyx6QGkw3HVnlY6LZD2H6BeQVGadeBJZBFCOw1CrlOeyk8coh4WAwd5xku3VgSplh ycbWahUtbjzvritPzZB5KsZ0ozsN/B0nfLTpTAM7KqzMYRuNt/8srnC7yENG9jwVLia+mHr9 9F5CIUSZeGQvOd0/o0RHlRmxDwsjVe7haIPO7ClgFMnObqooLtUkTDkMTw8G5/etVDRUIWxq 40PTYT8ZrzAtovGn3qND6s6xQApbmpBxUP00CZRJWw++Bsg5llz9sTXtvZ5WNCABXojPZK+z K9oRe332iiYAKpq8npypefS9bq9fhtI92dTTcUrbi7or7aMKgh+YzVjj1hbXMI7eMBgkGR9Z N9UYdDlroVFlKt5y005ruqas6/swYPgHsGBGo8u2j6Rh78ao22es2sBcEcYMGAY8vehYinbo uLWluIH+tQ1sSv5flYwedHkOc4UsHu3y/vCf0OUf6+7uTEIEFGxM9uC1biHBrn6A2PnB2x6M jz33Vz+Y+rYz5perH90hhQYb+d7sP3n8CFAGDX2VxwcrXUN2vNcrm7pp8TK4JLPwvimwwBKj /96MRcuL5BGuhK7Ji//Zw1dL9NPsp9nvauW9ZmVuZHN0cmVhbQplbmRvYmoKMTM5IDAgb2Jq CjE4OTkKZW5kb2JqCjEzNyAwIG9iago8PAovVHlwZSAvUGFnZQovTWVkaWFCb3ggWzAgMCA2 MTIgNzkyXQovUGFyZW50IDIgMCBSCi9SZXNvdXJjZXMgPDwgL1Byb2NTZXQgWy9QREYgL1Rl eHRdCi9Gb250IDw8Ci9SOSA5IDAgUgovUjcgNyAwIFIKPj4KPj4KL0NvbnRlbnRzIDEzOCAw IFIKPj4KZW5kb2JqCjE0MSAwIG9iago8PC9MZW5ndGggMTQyIDAgUi9GaWx0ZXIgL0ZsYXRl RGVjb2RlPj4Kc3RyZWFtCnictVpLcxvHET4lqeKvmFtkF7Ga9+z6kCq7JNlULJVCwZWDrUqB wJJYGdilAVAU8+vzdc/MYrGkRIaWpAMxr57u/vo1MysLJST9T3/n66M/jv4Qivvyn/la/DA9 enpaCaXE9PxIiQmPiqBFsEZM109OXk+fn75+Pv1m+v7Iu0L5Ukyvj5wugvOYOl08mTw7/f7F VDz/eNls6u13NFHSHGVDIZ2Ok97Wl7t6fVZvhJZS0RwVyiKYNPxqtpkv+6GnpyExRNsQrYnB bGfFxHiabgtb+EK8rdtF0170OwZZVNJVkeRvT749/vG3b8RLGja60CoNdE379M3mqq3Fq3q7 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 UsW6Of4OrDSq5Q9/+8co0JMCKRN8MQV6vtfXqLKQe/YKHL4Ps1oUKk2nnPB0QwOn4o9d6oN5 B4pmvUG7p/sLYR6HC0sDN53wlanlK+zBHHr7PHl2m1J6wosX4BQoYYX0gYiteHjKYKZvc26v /jNG0czf5a9RaDNkW1hHL//ojn4s7SEXp7NmWx/ukZ/562h8E3ql9/QCgWhmTHyG6C67VXdx k14TxfVmx8+aRVt/3P1n2V3+BgXG/YbJSjlJhRXXq+m3jscsNf6tHpGslC0sn464RvjrF8jC OP9JTdVj/GriLl8mrbX1tSDJ6WXjbhhH5stfGvDT6F2LqgdgryXOW0gUyA6echWt+Lm7ptlp zW2Sm1m76NbNf2MVccgjP/ROug91/JiBv6/5MFu9O3yU679S0/Q6iXJZ0d2m5ij3orm4Ovgs g8q2Mj/i1oEt1vAHEdzz3S8HnzPkz4Ho6Sg6N9Kdyas/9bI6etkktkp6Www6srV48qJu23rz 9CfIvqrTp3Q4diTCN09/6lZnm677/ek/eZBMPD8ndVcfmBMqJGAn9GGdp+HE02q2zZ9A7MW+ PuJbj/wOnj6X+/VN/6UcHeJ9lmsG37Hy3cBS/wfiRlEhZW5kc3RyZWFtCmVuZG9iagoxNDIg MCBvYmoKMzQ3MwplbmRvYmoKMTQwIDAgb2JqCjw8Ci9UeXBlIC9QYWdlCi9NZWRpYUJveCBb MCAwIDYxMiA3OTJdCi9QYXJlbnQgMiAwIFIKL1Jlc291cmNlcyA8PCAvUHJvY1NldCBbL1BE RiAvVGV4dF0KL0ZvbnQgPDwKL0EgNzMgMCBSCi9SNzEgNzEgMCBSCi9SOSA5IDAgUgovUjcg NyAwIFIKPj4KPj4KL0NvbnRlbnRzIDE0MSAwIFIKPj4KZW5kb2JqCjE0NCAwIG9iago8PC9M ZW5ndGggMTQ1IDAgUi9GaWx0ZXIgL0ZsYXRlRGVjb2RlPj4Kc3RyZWFtCnicvVhtb9tGEv6u XzH91LSwNtxXchNcgRax07ipkdoq7sPlENDS2mIrkSpJRQmK/oP+6M6+UXyRL3XucAgCGbvD 3dl5nnl2ZhNCIbH/wu9yO/tt9htQNxZ/llv4bjF7eq2BUljczSjM3SykDFLBYbF98upqcX59 db74avHLTElCVQaLw0wykkqFpovVk/mL628vFnD+YVfUpnlmDRNrQ0VKEsm80Y3ZtWZ7a2pg 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 We39kzVupFMa3ld4ZLnZILNuzNJG/xiSA4qsIjINBZQggigC/3oTInNwkqJiKWPVU9B/d0XL T7O/AJylDq5lbmRzdHJlYW0KZW5kb2JqCjE0NSAwIG9iagoyMDcxCmVuZG9iagoxNDMgMCBv YmoKPDwKL1R5cGUgL1BhZ2UKL01lZGlhQm94IFswIDAgNjEyIDc5Ml0KL1BhcmVudCAyIDAg UgovUmVzb3VyY2VzIDw8IC9Qcm9jU2V0IFsvUERGIC9UZXh0XQovRm9udCA8PAovUjIzIDIz IDAgUgovUjkgOSAwIFIKL1I3IDcgMCBSCj4+Cj4+Ci9Db250ZW50cyAxNDQgMCBSCj4+CmVu ZG9iagoxNDcgMCBvYmoKPDwvTGVuZ3RoIDE0OCAwIFIvRmlsdGVyIC9GbGF0ZURlY29kZT4+ CnN0cmVhbQp4nO1YS4/TSBC+51f0bYfVpMfd7X6YG88FVqAhRNrDskKepDPxEruD7RD491v9 sjuZzABCi4SE5pCR+1FVX1V9VV0ZJiizf+F3UU8+TD4g4r7Fn0WNHs4nF7MCEYLmqwlBU7eK JEUyZ2henz1/NX8ye/Vkfm/+70RwTIRC8/2EUyy5gK3z5dn08ezB0zl68mlbtbq7bzdmdg/J Jc449Zve6G2v6yvdIpplxO4hUmHJwvLLsl2sh6UpowrzHE2ZsIvlqodz/butbiuzrBao0wvT LDts917MZFB+mmFFcjRfTKY8Q1Pqzs7boM9iQgjOM+nllU1X9ZVpOrRyG8AeIWThF02NXtiP FIzMVfhWNXqJ3vRlr73UCNlUCawoVWhKBHYi/1rrBvVrjXbbrm91WaO3Z7+f//H2Hurs8Wld LtZwG6o6VDXohb/ZLZ27Yyuz2Rgnv2BY0IDQvmqukZMNdhLBrUW0wIyroPVHPVqaYUri96bv UF1+Rn1bXV8Djl20YcoYwxT0ZnZb3w6Y3L+Ba5THRytfmFScYtxLq5rHuqscpizHGaVBC72M IFyB82rdoad2D4AnVREwLjfdMbgkA3G5ikrOAZ6lE8wyzMOxfRNgdpYBfO0A+Lrs0GJdNtcW YYMaA4hDLK0cugTCUwW1y0XwhwOGQuQKwaPUqq71soK735lN1fXh8nNA9b11ivWgM/rYRm8i 5RIzlZiIvYzweQB0fmvEoBgxiY9Qb9Ar06fR4+6lSkGUq5h0zRJdtrtGx/t644WHXdH3ILrc bluzba2ZoxqNrq7XV8a502a88zbPsJQhj873YxQwnOchWNcVZDPgObt8+lsQjaO7ZcTiUdks 9MaFvDUDOYqRAheEhKCpam19+WIejp+KySmD3C2y4isi00sgBc4ETSU45nIsAAzBeIzY7igW ucCQMQexOOoNEUOlvKm3T9kcqC6Lq54nzyHYgMvK3oZQDyesRzvrsNJdG2Bz7io4LhRPYsU5 Ntllz36TEykDU/Pv8GGwZaYh9NreCg+UQiBzIkQjPFTinNIT8IDi7qTIcEZiRjuE0NfSPiEU 3Fak6OhA4AwXIqp6iFZi1aGbCc4YyfjoZYDgmHZtjIpbaHdgXYudaTafUas38QLq0edFekGZ XkCy5IKVVfPdSFmiwFywYqCst2ezy7dnYALYBNJK1K1LYCFk6WpXO5xIDsqygKszpjU7uC+U WSgwgkVbOw20XDYGnNmGbWDBkQ4EYpkJdVKHm+F7BLVXqchdwg4qeV1yKEZyCJ1FuetAm37U 2OXHDgJcd0DUUNSMV6ewORsrgZPtCTaufAvBtrouq+ZGXfbMCiGqisB7z1dHvMUBycEoF+Cg eKf7yLgJX5EcStdAI/rTyfhxGQCXb6y1PZQwSIRovVXLp8I5aGyFVL0tb7DN/euijYL5kucp 5QwZNV40csLeliSIS5mEg0839Hw19HRgJuFRx0MEwH8CMD+FQEhxyMZCHqQ4nK0N/N5h4EaX hwBmwMKuvSyE7XJiFqJqwNF3nwK6j+Ct3keYZDhzhcKZt2tCZ3DMJ2mXY6nkqIDeTh30F2t8 B2vcAbPPv4xiGjP9gacGrw80JCIbGtmgwqnuGnKj3nU9OkpJknPIbHZ3G9221VK7pHeKhlyy 4Bmof9CYLeHZ4Az+6AxW8FaKj59ygwPHEUwdcj8zJaUZe3RTQSEUqbozxj2QXyYwAmDxgp4k sCOxQkB38aV3kJN7wHcMHhFS/Vi6S/n8GDxoyYYDXwfereQIbXSeF3eTY6SSwI4cqjJX38SO SYqGZ9ZRz5wyokaLXdtqYKgGUFqbbRKHxNkPPaKKhu4TfgOHkTBraJedi/LZZRSIljtIxgY9 gLLRxreZJaDYkhLLj8Vg2CEv2cZc5Se50ads3PArZX+l7M+asvCkIdRFTZq88+SZTLCiobJu zcZcf0aP3FVoD7Xt5ez5Q9zoT/07SFqXIMd9T5wMAPRyyPgHyeQtx4yH+211HmYylR+U2ZJt n8FXZQdI9aYdl6zwIc7sh8YHBCAvYqJ8OkknTGGVZ7fQSXzkA58EKCXmlKQDEaAY1x0tK99F UZyJ6NOVDkTmX9Zo1ULxv9Ir0NzTRtz9v9DGqbGOw8Zsln68E3bHwLhrEqAIlgNMXxgFBBnI dTgSXuzZ0FZugIXN6uawQOJCqXQcdWJq4V1qR32FCA+WvfcK2EFYcasdaJ9q1ujULjumKnho 6vYfR7s4dNHyhtZRaTtU02O0OfK4NvYl6qOLAHEpmRSTaAs0gAia4BSB4xcAYXycBH481PZg YutSH5KSxUHeqh/0h0etzIqQTDeshtac5nHOsm9GqwXUwODNCJ57aTgru7LWyWSUUI5znkxG y+5gwEPHJLfRYCB2r7R7sB9ks09yN3seF0tXpkPkg/+vrOCFgcZg0WP0Rg+jpOwHDJFAgvSj Iw5vC3voqW4a3V48A2/655fgmA6Tu88Xz8zmqjXm/cWfbhFcNMwLzc43/qBEIUmgbBYfLHoD IL4BIyvTpBWNwiYuQ3eT4xwLjP6+HKoZK7Aa326AZk7/sYtP5uj15PXkP+n3FGVlbmRzdHJl YW0KZW5kb2JqCjE0OCAwIG9iagoxOTI5CmVuZG9iagoxNDYgMCBvYmoKPDwKL1R5cGUgL1Bh Z2UKL01lZGlhQm94IFswIDAgNjEyIDc5Ml0KL1BhcmVudCAyIDAgUgovUmVzb3VyY2VzIDw8 IC9Qcm9jU2V0IFsvUERGIC9UZXh0XQovRm9udCA8PAovUjkgOSAwIFIKL1I3IDcgMCBSCj4+ Cj4+Ci9Db250ZW50cyAxNDcgMCBSCj4+CmVuZG9iagoxNTAgMCBvYmoKPDwvTGVuZ3RoIDE1 MSAwIFIvRmlsdGVyIC9GbGF0ZURlY29kZT4+CnN0cmVhbQp4nK1XTXPbNhC961fgVidjwgT4 AbK3ZuIkcscZx9at6XQoEjKZiARDQpH977tYACIl20k608lBMQgsdt++fbsIKSOh+ed+y3bx bfGNMFzzP2VL3qwWF7c5YYysNgtGAvxKBCcijsiqPVt+XF3efrxcvVp9WaQJZWlGVvtFwqlI Uti6qs6Ct7d/vFuRy4e+GeT4u9kYmj0sFjRMuN10J3st27UcCA9DZvYwkVERuc/XxVDWh08X t8I5FERJRJOYBFFqtt3evPvt89nr8/efX5H3slu+JWVddPdytKd8GDwhAYvMgVUtzUY5FLpR HYEDakM0LA5qp8EZXReaNCOZG3YmqbHJIeRYxNbJVQ07OzW0xXb7SFpZdCMaMBsDv9NdrHGv bO7rtRpIXYxkq0ZNRl1oeU6KriKjQkdwhbQ7+LgGt+QGMKxlRS2MAUtp6gPZ9aMeZNES76k7 W5R105mzbdGAS01HrhQsVPY7JUsbslkkmMeIMZpFmY2qaQEHcHaUmmiFsQBn0oSsSoDf7XRR yQeX3XLBQspZbk2YxJtrWwW/gEhH9D8nlnJOWcjdld/ls2aGoakAEFmqrhrPIR7jUqMtUgX+ Fw+ymNEkd8yxrCPFBtN5em2a0phn+fPXZvN78VwUhVQconWe0GNKGuYbegcJpIdjcmIaU0HJ neyqprs/FIAIaR4m7pLPZ3eYsytMAAdUY/cF0nJxM+wgg9dyHIsnbA5YGFERs2My9HJASxFN MwdF0HQAwgZ5K2gkfHxF6WgWOKqMZAOk9B7ValuRL4Yclk+bQbWkQiA52MkjZs3sO0e/m+W1 qx+LDQvBLx5NRWKxzBOaskNBWNvAw45UEo626Me+lrA0kMIXZCdlBVWlSD+ovkAseRyCjjjz xkiBVPbuH6piIi/DFLOcCofAvpgyD/ljPimDuat2uRecJsmUfLUbSnlahlBKB1f3DRTqia+M M8r5z1w9N1TGki+2QO69lcOEJoL5o6CGJketYwQB8Wq0BZbnqQnM+XkIf0p+ar6zbEo+ZlQh 0C5vxh7W1Lhbd1JbRYINo5ET0DZVNZtHcyOIUo3gRSGjoAaukhqF7AOXEVMBmLtuQJeYMywS kwSaM5e6TWO+5KCSYZ7YJRuRr8gwS11epK0BbyWIDf6HkIur6dTM/gxobbW1VMMgSz1RxAvy kYtZRGN/8Tn6mAERRJ4976Owy7XaQdmMu74H+RkRKuRfltKMefD33Tz/1CUnZ9xdB3Qy+iaN gFkSpgLcYj5SlAV3+pxMf50PvTYrwBC3+PqX4j6tkSiG2MPs+SJJpxq5Q8aOGLP1M0kp44fi hs4FMPTFAE0HfDgRYcFoGMYviPCR9iMle9TC9SMZS2iEuy1I6kkdwRVr0yg6DSJWbFvorLDa tK2sGqi67aPVWHAxd9xA6IM4FDRmwnv9rulMJ5+TAfQ/TrKXyTDnsPghP0xO9XPTh2HK08TY oQNh/tpZ7YX2keZewOykgRb9YZsInlMuIh/SDyeOQwr9mDEbQH4Nbq+Gke1oL0GfQ1PKRTaH 3i9NStqRoqoaBKbZkOvb5Rs/eZGy2I3YKwAf1MbM9EunPQ8aOlb/hMkZzeLw1+SeWG03cXnY ZyPhjOU8immUiWkeABALx09XaqZ3OifhqkwcOWlhL2xzdQfs5kkfzYx8aLDHdcMMgV0zsZPX 4discnQ9V8PIV7PqqZtLBU1Ph4fZJHk3TZJ+PIDmAPMtzD4a50m9n1/Noay447ga5zgnXtWM LfsOmA3yHDIk8nzy46PSdhji8KqYRiFZnUw/AEeW5/l8orfDCdRqctBZF8/RRDwi/Mv31zfQ HDdmbke2VQqGeJgmYVgr7UziCms+gtjiwhv8RK9cHg2BajVAjDroCw1VNEiJ3RqH/rnYz+Kf Zmp8nTgQrtRcPLLI9cWnMLAYz/9vILwYvVMIE+ozGPyH2I/inFU7dC1TPvjsuFp5AsLhr1hF CaNx5DW01zAhNjALwWeQBGwuemju7/HphppkJm4jq08ky8913uLpvGQLEZ6XPPe96QfSwn7S I02LtI/IGQIsjGkGL+CAw1uXY8uRHbSDiw+Qk610T2oe+jH18eKD2q4Hpb5e/IkfoZ4jL15q 9x0BSuFVATJjHtip+eyg2oLg30HTB4Snct0vOGxKhHPTvVP+ujk8UaKcZmnk3wn3ksTR3+bj 5Yp8Wnxa/As015ZMZW5kc3RyZWFtCmVuZG9iagoxNTEgMCBvYmoKMTY1MQplbmRvYmoKMTQ5 IDAgb2JqCjw8Ci9UeXBlIC9QYWdlCi9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCi9QYXJlbnQg MiAwIFIKL1Jlc291cmNlcyA8PCAvUHJvY1NldCBbL1BERiAvVGV4dF0KL0ZvbnQgPDwKL1I5 IDkgMCBSCi9SNyA3IDAgUgo+Pgo+PgovQ29udGVudHMgMTUwIDAgUgo+PgplbmRvYmoKMTUz IDAgb2JqCjw8L0xlbmd0aCAxNTQgMCBSL0ZpbHRlciAvRmxhdGVEZWNvZGU+PgpzdHJlYW0K eJy1WltvGzcWft3V7o/g26ZFNeGdnC5QoN3GbbxtkNoq9qEpCkWexOpakisrcbu/fr9zeDiS Rk7lGEmMQEMOyXP5zo3k6MYoTX/yO1uMfhv9pgz31Z/ZQn01GT0+a5UxavJqZNSY36pkVfJO TRaPnj6bPDl79mTyyeTXUQyNiVlNbkfBNilEDJ1cPBp/ffblyUQ9+f16vu5uPqeBmsYYnxod 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 gkkbDlfY97K2IpeOPH79ZkidjqhQo5UZH5b6iVB3VFbyhOnVTdejVY1FhyFY0kNg9YMOENXH ET34lgucNz5nvpsTSMdfqNNi48wtYp5Pwu14373HNiMQIDBqqURO2XNQyYrP8nkKPPHZaY0M PQNwbTqeENUMo+k/FcKe4OJysaw6djLvIUGJ36JkLcQkRG5+qQFyqFcX7UBltedeKvPic7M7 tAclVe2Nd2MalZrGy3dsXzwT+HMrxnd6s7UubF903neJHU335jl2hi7CZf67rJO1fqB0m2IT sWHZVfpuOuq13uv6sDal1wkmH60wu1e/V01bM9S09JCmnaer5N1RtWc3KNXQtR3VB7Od0Gna fDAqH4wacnF3GD5gfhC838uxkFUsnwCcdMtlt378LUrKq04+lLS6etQfj79dXb1cr1b/ffxv fgkzcEFert6U4B5RiaBAocAZ6bXEmqvpDQCbURW8tblbvk8LSSwM2ahJjfrpef/lJfZ8OdZE OUXN5v325OuH0f8BAA3ssWVuZHN0cmVhbQplbmRvYmoKMTU0IDAgb2JqCjMzMTAKZW5kb2Jq CjE1MiAwIG9iago8PAovVHlwZSAvUGFnZQovTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQovUGFy ZW50IDIgMCBSCi9SZXNvdXJjZXMgPDwgL1Byb2NTZXQgWy9QREYgL0ltYWdlQiAvVGV4dF0K L0ZvbnQgPDwKL0EgNzMgMCBSCi9SNzEgNzEgMCBSCi9SMjQgMjQgMCBSCi9SOSA5IDAgUgov UjcgNyAwIFIKPj4KPj4KL0NvbnRlbnRzIDE1MyAwIFIKPj4KZW5kb2JqCjE2MSAwIG9iago8 PC9MZW5ndGggMTYyIDAgUi9GaWx0ZXIgL0ZsYXRlRGVjb2RlPj4Kc3RyZWFtCnicxVjbctw2 En2fr8A+RdmagYgrwaT2ISnZjpVE60hM7cM65aI4kIb2DDEhOZZdqfzBfnQaNw4vIydxUt6y XFIBjUZfTh90M8EEJfZf+F3uFj8vfkbErcVf5Q59nS/OrzNECMrvFgSt3C5KKUo5Q/nu7PlV /uT66kn+ef56IQUmUqH8YSEoToUE0Xx9trq4/uppjp6821eNbr+wgomVITzFiaBe6EbvO727 1Q2iSUKsDEkVTlnY/r5oyk2/tWKwJzhaMWk3n9eoWK+rrjL1Ej1otCmcEHgmBcrLRYIZsxem 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 Ci9UeXBlIC9QYWdlCi9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCi9QYXJlbnQgMiAwIFIKL1Jl c291cmNlcyA8PCAvUHJvY1NldCBbL1BERiAvVGV4dF0KL0ZvbnQgPDwKL1IyMyAyMyAwIFIK L1I5IDkgMCBSCi9SNyA3IDAgUgo+Pgo+PgovQ29udGVudHMgMTYxIDAgUgo+PgplbmRvYmoK MTY0IDAgb2JqCjw8L0xlbmd0aCAxNjUgMCBSL0ZpbHRlciAvRmxhdGVEZWNvZGU+PgpzdHJl YW0KeJztWU1z2zYQvetX4FanI8EEQBBAb2lqN04nGUfhrelkaAqy2IikQlJR8u+7+KJI2rHj pplOZjw+yCMssbsPbx92qQgTFJk//5mXsw+zD4jY78JHXqJf09npUiFCULqeEbSwq0hQJGKG 0vLk4lV6tnx1lj5J/54lHJNEovQw4xQLnoBpujpZ/LZ8ep6is0+7otHtL8YwMjYkFjji1Bm9 0btOl1e6QTSKiLEhQmLB/PLLrMk3/dKCUYl5jBYsMYvpRqP9ru0anZXo7cmb+e9vn6C2yzqN yizfFJVGXZNVbdEVddWirkav6u5FDd+vnBk2m1KpcETjEE61QpfNvtJhv662noPVgjBj14Hr bLdr6l1TGH99GJUurjdXdWN3BixQms8Ij7AQwnmYHzwQ8D3DcewT3RSQZ9Gi5eX5T961jU4K zFQsndGzrMr1FhnnJg1kwRcJVoR4i6IEJN+evEj946dL4Y9wAQee2HAWjDPMKYdcEmyBfFEf Y4qwZNxv5j0QSD2hauDBnqlZ4gTHjPsl3TqXgTULnmDGmAygpaO4gQVUCHUjbqTtKpAgCquO QXNUVKsiz7qiukYdPGFOtDUHltltPWz2uBTHSnJ5TNEe7MDKPPugQ6SMAmuTbz/EpQbuNZ3x 7jgNG0tFA0hHgKjAMaW3AASh20eTCEeEywFGKFt3YNe92+mmqAEswCevq1U7JQMhFA5ODfGB s7FeGVaJ9F7HeA3SGh80wREjET+eM2DgkutJRw1LE7/tRz3kGyX+66oz4NXV9jNq9DZsQB3+ XA03yIYbkGiwwdqE+a6oAIe1BUlhnjBvkOWmriEb8JOhdpM1IAWlXhX70iJEaGwY64xtGk29 N4i22pF7wSJIlveUzqoazrEJZnU18U7gEKmiE+83STuB1wUjoExZMggmz/atBiGD/30wUK1U hGB8EKYq9kBr3bao6ABQY6sUZlR5rhwq6xu7UvErPRW+QlYbXWYFSGrhNhrraUIwJx7Di/VE rUB6EhUNSQ15tboLOjtQKcIxjXrF1Z9u5YxlPWy+Ndl2m6wC8ofsTViO/nOI2DgpOtSaus/s v5ZhNFZQ4fFQaPoqOm50VIID3AWGi4KFyEKJoYt1f8dBmoSHGMcIxIAAiW9FwJc1VKASo7KG Z8saPu9IcKuzMYARMNletyoBuGSoPFT0OLrbOIF7zd9NnWMV8C6KVEhvX+Xg9VqvphoyvEGM fEyuzS/LBX1UigcqxR3QumgkCEHiH37qFCJ46rVCAiV70k4qd27qody3HZqUIYkSLKS88zSa plhpW+c2Tl8+BrUa7jnowFZ1iWymH12w0C6G/i/bYh8exYT/6Co0LNLJTgryi+jXAHm/ZpEY kgtcmWjWxG2SQBMhv1BNcujXNyPQqsqpsn114c9tyySg+UpCX7Lr7lGDBXTH1vxRE/6lJsyb W0B2EUEfLNmoCvwcBffTcZrp66yXDAQUXp4/Q5SBquR1udsWGeBzefHS24xbY4ljRXxr3PXg wqzGhfINzEZXR4kYhn0otls3Ypm5MO7vHdvsGMqbfqard2hdN4fhPWwmMhVamqxZwViA0Xl/ BccUs8g7rxt0leXv7eNxdBQGeKq16cFQcVVsi+7zMC8BDlho22/kJUPPfzzmTb3frqYKKmFu oPdwd1CAMFEJLoZz5s6KatCAgIIyhR0mL5c9ZFLBcLTXre/svMmjpv6wmvrzYzP1vYTzNmj7 ZorGyYjmoWp8MAIGMzkZux4omkaaY8LvEZexaLqQjWCiqTo6BY3YcDCZCiaNcH8tP1Avqfp2 wWT/tWCiG+roUJAMg8TcQOFG9lO99BaPcvljyeWgfpEbVSfvIYcSqVG+bxoNZVlBYhtoK454 EwuSwLEMaBwGggckJ748TBGY01xeBodotdem/J/CUN50IZq66jsuYgRT9WmN5cq87JTxRCwd J8PSIyn/T1L2r35uJ+f3ffMzfLU1BY9A4y0eBN4X3xMJQCRWd78nCqrsXxTxGKvjpTx+UQRj HVpwGD/M0rmuKt2cPs+qlWswEsOe8Hr/8+nzenvV1PX70z/sIoGQQmtb791LgwSmREF8JCz8 RKG3WYve6Nz8wjO66sCIC1+uMY6xwOjPy/6QmMLy2J1caxQnf5nFsxS9nr2e/QNQKmshZW5k c3RyZWFtCmVuZG9iagoxNjUgMCBvYmoKMTYxNAplbmRvYmoKMTYzIDAgb2JqCjw8Ci9UeXBl IC9QYWdlCi9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCi9QYXJlbnQgMiAwIFIKL1Jlc291cmNl cyA8PCAvUHJvY1NldCBbL1BERiAvVGV4dF0KL0ZvbnQgPDwKL1I5IDkgMCBSCi9SNyA3IDAg Ugo+Pgo+PgovQ29udGVudHMgMTY0IDAgUgo+PgplbmRvYmoKMTY3IDAgb2JqCjw8L0xlbmd0 aCAxNjggMCBSL0ZpbHRlciAvRmxhdGVEZWNvZGU+PgpzdHJlYW0KeJylWF1v2zYUffev4LCH pYXNiNR3gT50W7p2a4PM0bCHZShkiYq12aIryXWCYf99l+S9kmw3WLEhDzFEivfr3HMP5XHB PPOH/4vt7OPsIxP2Gf0rtuzbbHa5TJkQLKtmgi3sKosliwOfZduLt9fZ1fL6KnuW/TGLQi6i hGWHWSh5HEawNSsvFt8vX73O2NXDrm5V98Js9MweEcTcC6XbdKt2vdquVMuk5wmzR8QJj31c fp+3xXpYulzG6NBCcE9IlhWzhR/6PAzYwo/MC5lGO8VMCJ7I0J2z0xt9/8i+W+fNvWKHtmfv l2+/5Y166D+s9e7u4vbumbNAIZtA7Ck+F/BrIXxzzqt2PD7gfojH632vWGEPL1ndsH6tWAsP 6+aerfJOsa7X7bhkbLNOw++8tw8aZY6VqeCRl7ojH3oGjrHexrOAaglj1E94EtCWQz46A+6K EJ+3Zcdu7Wt+GPNQCvK+7ljOyrpyxngURfhGpVrV9OBGfb9e6ZZVrd6ylarAaW4Pot0LEXGX Z/B6v+v6VuVbBumb/3D3DKLMIQ/bvFjXDSRAbfO66UzQP2p4ULp1e6CMBA/BKcRAU7Kbdt8o OqjXNi16UzrruBvDGOySv/ZErFcieDxkaH4YM+TzIEBUrWsAFSQDbbBPZlfscc/z8cV8s4el ii1vXn+DTlm/kwQqFCQTv01oJ267agoPco87D64aEIYfiyfDYIepY4gJgmHo8TTEhB0+jWGF PBXxmdPkM7vWUJEBZ8ZZdq9VR7gSUcSTmDwaX2Q5hNbofpoApgiKEXYGYAEz+unYWY9LkWAq m9pmA0L3MBtVP7if8iD2UvT/LGjpcxlIQnszBh1xkaJlyh1kTbvu6vKtAtD1qrVAFzLkATVq XiiW2/y6iviSh94Qv8GCBuSuVJHvO3XUxq67AdyPbFzMu04BlzjcQ/VXxnCh21YVPWe3qidL HpmwFbCkKWMeSAqu3gID3l38mDkU2XciAKQgBFkSZXkFUbH+w061tS7rgnWq0E3Z8VN2BD4I /Em7Tsv4g2refo/xdCekNxCd6W/YqNq8ryGv8AIAi/JhfDCQgpxPD8YjscEjTl2YrWFjo9tt vtk8sq3Km86+j71tN6LZ3m6lmq6hVBvdYYLnFpSd6zGkmj0srgzVVDBi1qrklOz/T1PsbTX2 jK2Yb7IKo2asGDjbmSLr485Y0E6MSj2M0DWtgXmxJYXDt0CzJiEA3w8nJ6WSC08m0yY7O6Zt 61IREuYQj3Gp7ocBAz8dIQXAotQ2bigPgDoxCzUJJDXwqdlkahfbyONxQtF+HpOupw+zRQjl kbY4AQ94wl1Z5jRYQUPAjIsEpqiHet1YQEkepch/hP73quvyMxAvYASE4RT9aMEeZsrZWSTZ iQM/IfmEDLcIyMO1zkxFpJXlDQMYgXio+zU+yNjK5Fn186MeV7DDZFVDZWHaPrq+Ud1+03em je4uno/W5sYcbD2pgDQcF35BAezhK7XOkTJkGFPdajgZzGnrzdAF715djxwL9ZCJofGInN8p 1XacZcRbpiDA3SIgOsfhNuLvwaSgsDRRqq5o65VyE6zdb+AXiAiTx9KQaN/W9/fKKKEtls6R RRxwzxcTtsADEV0hD6OBmZ6yAcS72Vsr0EijmsCyoz1XvRyn9vNhrk8o49e1amAH8hz4cq+t 69pGcfzu3PbZWu9hcNBMqPRmY4spk5gnPorhgzlj16l9qQtdApcZlxVQkCNB3IohEhyrURP0 lgyRB8GXUhWm+Ie1Iqy5+GFGnAePsrPQ253eN+XZQLq0b1COXrh2kj6Jf5jCsDu1rFfdXbDb mwxwT06+fMmy5S9XDH7+5ZifD8T39XFn2pNsOowseWEYFialsgIBut6PaNp9MtkiA9h/YHWq DdKYy1ge6bypxFOTewAoeB9Zu4EBtLPB6mp6GtwhgpROO9MnIemTk8wspPF6ZL4nw+3WuQG9 5Y8a5+iuGgZdR6LcqDxPkExSLSqnyEMP+KkDcO3iUg7K2JbHjWRHMV+9PJrQn6tRXpbniAE8 EVoIFjitxxf/toxjmsZMvMGHvydslfI4TTGrm87GDg7WDUC27lX5QW/qrp/aBTBd//Lu3eDo IoKRlaZPJRjEbzgFFAiMgV3t2VMdCDM5ohKDDkR2B7sOEY5FpmL/KNEy4YZZ/0PSKEXYR1+Y pKeqiLa+JDsn3XZQ7A8ncKyAGiE5ZyunD2Ke0gVob6UrjEbbWYEPtwQaO7kZn0N3ogTOHa0c NYcXWjD/m3fWG71vQZrbBoFQRwlYT3rDB6E49gYU7zPtEHGZJv8J2kflOVEUbs1IEEqnk1bD 5Y+ItrOXpkHrWoSZfLFBsaNJzLlMU554wZBzbQjKvjCMSrx/u33oHx7yhMQCbvdTElgp3EPM 1BineWQ+i6T0fcWJYJth810mJiRSLzhhFphbNUkAG2qGoiwelIFz2E0+uK6TPACQPaHTRGou n8mxWj8W59XohivemYAwOW/Vx31tHu7QfgryhOC6IKQezGB3oIZ3BppoMcHulWECP58/ny9v YIPpGfQKKk7C4Oi6C6yY0k14Pvko43E/ocFTTm9PEFXenHy18FLK2KPGaRYjuVX15wcSyMmp rGNWu4HEgZuQueHjpHOfgiSU0MxXuuoejT9Q3EmcRk+MP/pqMmhg901IwOwLTcoiwROz4bVq 4MJ4+Qa4YKPwu6D0SI4+Xr7Rm1Wr9Z+XP9lFUJU+4VDv7ScNAQI2jYX9ShiZZYTQBlridpSE BHQjksMY3Uaw/3YzIN2HnomGLzog/oL4d7N4lbGfZz/P/gHmQ9UDZW5kc3RyZWFtCmVuZG9i agoxNjggMCBvYmoKMjEwNgplbmRvYmoKMTY2IDAgb2JqCjw8Ci9UeXBlIC9QYWdlCi9NZWRp YUJveCBbMCAwIDYxMiA3OTJdCi9QYXJlbnQgMiAwIFIKL1Jlc291cmNlcyA8PCAvUHJvY1Nl dCBbL1BERiAvVGV4dF0KL0ZvbnQgPDwKL1IyMyAyMyAwIFIKL1I5IDkgMCBSCi9SNyA3IDAg Ugo+Pgo+PgovQ29udGVudHMgMTY3IDAgUgo+PgplbmRvYmoKMTcwIDAgb2JqCjw8L0xlbmd0 aCAxNzEgMCBSL0ZpbHRlciAvRmxhdGVEZWNvZGU+PgpzdHJlYW0KeJydWlmT28YRfuevmLfI qiU09+GHVDmx5CPOSt6lnyyXiyIhLR0eaxIrxfn1+bpnBiSwh2iXSsVtzNXz9d2AbJSQ9K/8 LjaT3ye/C8XP6s9iI/4xm7y4SkIpMXs/UWLKoyJoEawRs82z7y5nL68uX86+mP028a5RPorZ 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 2w9FRMEzL9UDPE4VEVH3FK41NymzLUEfFTcyFY2QLQXqOlIGg0ucZ0sKRVvKbUrHjczB2WRL ZGWek0CtzF9IWHpHDD2IKZAjfsCj9i7Xkstd3My35R3du/ZkWKXUv+qeb1oxPzzmrp9f9K9J Hyu0JL38sIlqj5S5mj2YT38/fu/6YFpGZkGejV7xeFX2o6UlMevXj/Mm8eqrH645BVOUFrOu oFyS9UXwOXsct0AIoYQG2oworfMHHa14MnWrkU+cFfqmikof6N0UdqFlNP0W52SgJ6wORfrz dbtditHL2l/4lTzcBcqqgUjoTqO594/tbsXjilaP/ed8u2jXYvexvLbu6C01nzul5n5wQUBD jEVh8OfuWfPq4ZR8Td5mfM/RxMcZ01QXJUrommov1233Yr37lN+vj5la7rZ/68R+vjq0D8F0 +nL8/ujw/AGArKBQm/18u9xtVv8bQcLD/KXDr3WT+8tX267df5yvs2YZenGbBJVm/FHTkDna pedEvKJvmB4D+CE9Gs1bt/OP7Qhecbc9tN0vww8z+k+tFKI5JciaFEJxRvlq9eFu+AEPFfyy fCnQpvyhSqNM+YLjy5+OnxTAr7ry9dDtoeNdkMsHepGXV8834uTLFCok5elnNMPvqcR7thUA KHX9jmdfP03g+g4pmKyf8px8qzD+GgdRPtKnVNqHfMvls1ftdtvuX3wLOa/b8nmZ7nn548W3 u/W7/W73nxf/4kEKj64M7u7yByJwtglukz42o7K13Ltdzw/iul3QJyZHFD9NNCa5+jEWMp0m NeLnN/33atD/6CtMuAMc5i99Vv7j5P8olZuTZW5kc3RyZWFtCmVuZG9iagoxNzEgMCBvYmoK MzQ5OAplbmRvYmoKMTY5IDAgb2JqCjw8Ci9UeXBlIC9QYWdlCi9NZWRpYUJveCBbMCAwIDYx MiA3OTJdCi9QYXJlbnQgMiAwIFIKL1Jlc291cmNlcyA8PCAvUHJvY1NldCBbL1BERiAvVGV4 dF0KL0ZvbnQgPDwKL1I3MSA3MSAwIFIKL1I5IDkgMCBSCi9SNyA3IDAgUgo+Pgo+PgovQ29u dGVudHMgMTcwIDAgUgo+PgplbmRvYmoKMTczIDAgb2JqCjw8L0xlbmd0aCAxNzQgMCBSL0Zp bHRlciAvRmxhdGVEZWNvZGU+PgpzdHJlYW0KeJzFWdty3DYSfZ+vQPKyckqEiSvBbMlV3rLs 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 Cldr5sojz/uLyHeXRgddzG/K1qurk5P55fenNlSyXxKcAUOjgAJOX5wg96t9y3TnQxo9kkWH gFoUFaqr9QdoZhylytu9GHnG2aAwaIVk7g/q20P21r9g2rFkp+1tfXUwcoHa4Ifni/lH236u qhHw/H1tyFRWQPhbF2ZoSLvr04XNBUDwK0dx6LMl7YS2ofiNdq7lxHRowbXu2IDDouc6ULKu jg1XwaHopBVQJ/YnapN/DFVDpr4+ilI1cC18+XBKOywPL6qsS8vDU2u/fwA5066o7Fp0mCc+ fSoQG4QN02f8pQSqUVuUVZxBoaaqkMWjRtx184OOGZKtDM1Z3DGHvVRtyL5dM0g5KEjV+3aw ORo0EAZYxQctTehRBjYKMoWkUdszPBnQIKYkC5G3FSXaEpzInMiPXwJUrSGrPTyNXocJqL83 yYcTFMMJSDqYwKXvL0G5uBOx/HKQ/czxth8/Em4yBLzyWleVbp5/U1RLtyKUR9q1eB+ef1Ov b5q6/vn5P+1DYj5PdNx336WgFc6h/XMs7L5e6DUQ+kpb5dNreyM5II9l/nBxDNkdox8u/HYe jIpQMrTaxXuNeP7vTsp+N/sTlgr3e2VuZHN0cmVhbQplbmRvYmoKMTc0IDAgb2JqCjIzMTcK ZW5kb2JqCjE3MiAwIG9iago8PAovVHlwZSAvUGFnZQovTWVkaWFCb3ggWzAgMCA2MTIgNzky XQovUGFyZW50IDIgMCBSCi9SZXNvdXJjZXMgPDwgL1Byb2NTZXQgWy9QREYgL1RleHRdCi9G b250IDw8Ci9SMjMgMjMgMCBSCi9SOSA5IDAgUgovUjcgNyAwIFIKPj4KPj4KL0NvbnRlbnRz IDE3MyAwIFIKPj4KZW5kb2JqCjE3NiAwIG9iago8PC9MZW5ndGggMTc3IDAgUi9GaWx0ZXIg L0ZsYXRlRGVjb2RlPj4Kc3RyZWFtCnic3VnbcuO4EX3XV6D2Zb1TEkyAAC95SNUkO7dNZcpr a2sf1nmgJMhiIpEakhrP5Bv2o9PduJDUxXYq+zKpubhMgECj+/Tp02DEBYvwj/u53E0+TT4x Qc/8j+WO/WU+ub7NmRBsvp4INqNRlkqWqpjNd1cfPs7f3H58M/9h/s9JorlIMjZ/nGjJU53A 1Pnqavbj7eu3c/bmy75sTPsnnBjhHKFSHmlpJ92ZfWd2C9MwGUUC54g042nshv9eNMtNGJrF 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 nz7m+vB880e03CmEKFdPtdwxXsvL/8uWm4jhR9OWvmboxB/KrAbVBIpRErgYwTr78/yWBkC0 +MT45c1xcxAlXEcBIdjf74plU592r1DMdC6eriEWdXjjjZacuzl9LNuNpY4n7gXp7j0NMHyq Bx1eC+qese0t4MIlRhS6qkPXd8BoynOGgHfyRP0PhlDpcO24ggwNzDu+seSuqojMR5DKOPFe O1RDyCCDjrpyjGKr7bDY+sVCED6sR6qKqD7Gm00P3xbIyKY89BFZaK/K+tBCjkJpD1V9dDXc nfIm9VInBe3oMw7iPJLZBSXGmZXN5Ocs4kn4pnB8CMiISIkXH+L2Zg7nwGzE7Hnn+/n+MHgZ jgCh2mUVg8bvNIOSGUpXFU7uvpzZb3eQQRtYP3xEQ48goZ1xSokipVpt7QX08deA5rCF8CNC /BK+o7rvWxv/K7U3/tIaMjoRNvBvTVWZ5vo9beP0jQwV/uv1+3q7aOr6X9d/o0EB2PfMVx+I 5kQSUT5ayMce32YL7r4z5IERtcKk0P0AzfKcs99uQjRJNQfmhY5XR//AwTdz9vPk58l/ACk2 XaFlbmRzdHJlYW0KZW5kb2JqCjE3NyAwIG9iagoyNDY0CmVuZG9iagoxNzUgMCBvYmoKPDwK L1R5cGUgL1BhZ2UKL01lZGlhQm94IFswIDAgNjEyIDc5Ml0KL1BhcmVudCAyIDAgUgovUmVz b3VyY2VzIDw8IC9Qcm9jU2V0IFsvUERGIC9UZXh0XQovRm9udCA8PAovUjkgOSAwIFIKL1I3 IDcgMCBSCj4+Cj4+Ci9Db250ZW50cyAxNzYgMCBSCj4+CmVuZG9iagoxNzkgMCBvYmoKPDwv TGVuZ3RoIDE4MCAwIFIvRmlsdGVyIC9GbGF0ZURlY29kZT4+CnN0cmVhbQp4nJ1YW2/bNhR+ 968g8rJ0sBmREilpQAdkaJJ6S4LUUdGHZRgYm47U2pIr0fXyH/qjd3jTxXGSbmiLpLyey/d9 51ABJijQf9zP+Xr0dfQVETPmf8zX6LdsdDJLESEoW44ImphZFFMURyHK1sfT6+xsdn2Wvck+ jzjDhCco240YxTHjsDRbHE/ezU7PM3T2z6aoZfOLXhjoNSSKccCoXXQrN0qu72WNaBAQvYbE CY5DN30l6nneTp3MYmfQJIRVLEKTkOtlN/W2lO9kU9R6GQsx42liT5CLu+Pb8cXYzIQp5iRI 7cxG3b2Z/Hqux2mKSeDMPr28PbOXee8naYxpwmM0IaG1WaK1mNcVEveVXjqBYHKGsvmIR5il xF3wTRprsJkhAaZ+AmcuGDAc4TQmdjgvGqRqUTaFKqoSwf+qcvWIarmS7hYau7PA+SByt4ju MLDDe1cqVJRI5RIdmegsjlCjhJLYHEXhhDBl4BHHJoLTpVlbV1sFuYCr3Wa714VQR8yeMkai XKAu7MMl81yUDxKcqZAJb8g5jvvxHRsj/LALq9L+z6vtaoHuJfydi20j+1aVFVpVcHCNctGg 2U32e1WU7fUXcLGqt2BaBQ4oWG0yi23IwiiB1LtA73ZdyGA4dJEsmtwY7YyDpEfMG1fLuSyG uQ5wGGo8U4KDNG5zjlR7uIU7xwHlbroWS4NxgtMwcmPf52hZV2t0i8RDZzJwCWgSJ26RKEqM psuWRCHBMfeXgrcaOhCpZVWvZd13HBDJQ+bIMO5sAwSx2JMklzrbQ/g1uUlFWSkI92YjyzG6 t/wMcRDafVtlY5VEGMLkQlWUjZJiYbF3IEuOcwT8ixnpQHF04HZ7M0ZZvm32LTRX+1Pc3W4b 4KcoATKbWiq5QICWo2ew6gWAckzinjHo9PqdZYqbcRcc8Oft22xmkxrhgDB7xsezI2ufG2yJ lkFUxNwTHBjSSGCSQPrUPodgZnZz/lNvCO9JIO2dqs0yfsQASmeCN9MJH6M07SSxy0NEQUg9 kg6IH+Q2CgBALgDZIT7uPHXQCzwhDDAX85YnwqIJJ8yhqXw8wB0ehU+pw1rmLGSjClAojXx0 AYJpYDe7QVmfSgTokhJXU2opNaCKpiXTJAw5zLc+GuVpICk9QIJv9uTsulI6WV5zOlWlFO6j sYtk2WchCUG73cxjT7BD4I1TH4MJuLSWgPpysQKf7h/1nRaGEZSosLUQaFFXm7qAq9F206ha irW1RFemHKwzAbk7/nmsbXS//jye3byMo6LMZV0AZ/6uVkWjeqUz5TiK4qQrnVqhqzWEqazK yfXHy8s93MTEbmhx88PVjTBMKfvB6vZSQiaEMgBfNGSfQ6+uIZ/NNg8ZiKKEOA2jfziGzwTd 2upzBMns0nT3xtZMU3qgoehEWZTqNepAW5XE/L+XGLZXYUxU4DBAk1tt0rKoTBoVRKB40HwW Q/AGEQ6pg+mjHJpIwDSWDDqeoO13kjZdrqGwpJuA75jQtvIPYujKTBzglAeJrzPoBU5C/p9p U/ahnjJ76IQaNECz1q0I9QrqNOJmeoVOm0bWCl3JphHQzQyP8soC9aF/GsHIGHH3phUXU6Cc JgxORLfG7asOOj322F0D3LqDvV1P2W5Knk1+nOKEOL0Rc4mmmm9QHI3gJzgNmMvMrtSJOS8e tqA7kDMQRgm/aRVSueaDucZ2733NoNCka9e9gdfVtFz2QQOVqCVxdXfc4UIrsZP066mNU89v ojsJqEZ91egRFkqOD4Poh0ELSuc90Iv57sp4jw8lb67doGZl1wbbogSjvliuTzvTIajMuWQv /2RqK3T4kRemoiylFopPTzyDOpvSKHnOM6MLMYcK6Y8Cn0S57+7QUbAoCMm+o/CaCYn3f2p6 w71mGLiZeAd3df8xEnoHZbOBclTcryy24J+xMGE4oq1y1YuifHCMhodM65zyIgSDKX3S5+4X baB3tez7BU1rwpOX/arhUbmRUDUPS2ZEMOVBJ5mDAFjVTHDEvUItdwejkEsQGPOccA32u5kx empfMDSBut7K2C4vIFqi94jSO1zidgYZA1kFIga+XRgbNwZNuXJDCWepW9WIgzxaNbp6HE6Y Fm/uuy6bMOTTEzGctK0fpKcqQVGnyLXWIVA4SdpX773MxWqpE7Wq5mKF8qpRuobDBpUL/Uh4 pu3TmaBdItbD2gWvJ9bWLrGAefM5oMmLDfj0dSv1LeYCne3iO1xtuoYlRBisvbV1ntvvDs7U u2NdaS+etDod79n/pvxl1RiCXz4hOLTeSZiS5wi+gni9SuiUYs7Za4Rebxtl6rVPMvRaQeK/ LkCS0UbMvxhtinHUMhoCaQlo0wsqwEgbsyeNNAS3rzTw3gxeMWw55ImGxtgNdU+FPZza9AFE Auot8U7RAPOh0rwGXP2aEqpolo8DjO4Klf8QrIwxHDS4997pkGbatwv3/aQPINDpxcJ1JKZ6 gsNCc1L4JKtibUBzaosz8Mp/vcn0U0+bAXugwVmYngZWG1G0uxv/qnGHrTQCG22NDZ47zkuv kQLzpjy4u9MhTRrmSzRuecSsb7EePZd68cl70xG7L3008IF/PHlfre7rqvpy8oeZJPrx6avX 9pu9JDAfuGyX2r5N5QoYcSvn/h3v2ylKePdGdA3VnzfdVw+gIw89zqGFYuQvPXmWoQ+jD6N/ AVk+vfhlbmRzdHJlYW0KZW5kb2JqCjE4MCAwIG9iagoyMDEzCmVuZG9iagoxNzggMCBvYmoK PDwKL1R5cGUgL1BhZ2UKL01lZGlhQm94IFswIDAgNjEyIDc5Ml0KL1BhcmVudCAyIDAgUgov UmVzb3VyY2VzIDw8IC9Qcm9jU2V0IFsvUERGIC9UZXh0XQovRm9udCA8PAovUjkgOSAwIFIK L1I3IDcgMCBSCj4+Cj4+Ci9Db250ZW50cyAxNzkgMCBSCj4+CmVuZG9iagoxODIgMCBvYmoK PDwvTGVuZ3RoIDE4MyAwIFIvRmlsdGVyIC9GbGF0ZURlY29kZT4+CnN0cmVhbQp4nK1aS3Mb xxG+85DfMEcpZazm/XCVU8VYUqzEVikkUj5YLhcELkXEJCCDkBT/+3zdPbvELkhoZUs6ED07 O9PTj68fs7oxStP/+nd5c/LbyW/K8Fj3Z3mj/j4/eXJWlDFqfnli1IyfqmRV8k7Nbx69eDl/ dvby2fzx/L8nMTQmZjX/eBJsk0LE1PnFo9nTs9Pnc/Xsf+9W2/b2a5qoaY7xqdHByqTz9t2u vXnTbpXV2tAck3KTXH38w2K7vOofPZurf4OXFfjlJcAJsSW/bXccVwoGVPS2cSWqg4ExGTOT rjC5PHEuyUDkAZuCkBpkUtbhiCapaAvYxHRT8CB7HtDRKROTTHCOJhhfmkC7xcbydGdkesj8 2NTZqb5tIj9OOjYh8guG90/OywQbmYzyOi2L11OJlXsTZYFs6/wSeIPsPb1gjXCbQ+DHyxNr ef0MJfJxj5LLk3NSQYAQilFRZ9uYDBGbkFNjcEyjXWO8usYIDk4jOuCvxcjlX4/rDedoXMjY yzbeeqw62DxhCWtKE6MF97Q2bUPsfMIakshfN7law2BgTCY4hiP1ONCJzMFXhUOwNMPipDk7 FYsVOhpRARTDBmGhqUAa0qxB61hhWVsyAKJwROs66TvePnsnix0lq/QjnT6rkKHaSHKCyUFC RoUSTBNI1nBHCDPRHN9gownSd6GxWC3jb0ks/eHmkD5cBKflKdlNFT67muldcTAwJiFKInEK lqQT/UPjLC0LnRAJoyNLxkMSMxymZPZD9uOEl0nO1WuKuJWFwOks1spk8mJSio+s5eNkJ3bt G+cgZHiWFbFDmRB3KMk2MbHYgRKFFGHgbWWK2G1qfCb31I22mcU+2JzEjhMBVLPLTcxlmtwr xOkxBOohBFYyipwBEYxRzokefBbhRZE7IKPKvURCLAfrI+mYnOER8Jli2OJNFo9JhiGSHlfF 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 NPYLqZBWRIbqEwmSVXhqvlbTwlqnxYegUM2OKf+BkHbf9IrJt+31JdYfRQjgvdG+sFICWH8g D5jRHbnDPCT3SNfDsTB1j8l8XO2u1NmruXqz2qnldbvYqtOXTw8YvtfNe6e4R4LffDM/+8+h k3yJyDxMQV5cqhdqdasYxkjgl4tlC86GXFWp767aNcS9U+ev5jhwNYQqRxgfsn5lqAoy98L5 Hd+7q0NRnvGaVYifTrEgZnVfungoOTnoqRFMATI5Y1BnNtqxdXTmfLHYLdQ7aAjnW8ACPwAq Nmv14p5yYvLWfn/rGSp5q1HbUrQp2eV7cpEHRcMGRqKnzQ+2+AOCAACMv86my4mMipu+YE6O i4Tnq7fvWfZ8RzantmWjM4IYf17dmvpVNn2XzN+98rD+Wr1iWefGmzomoZju4OhiUj7w7u1t BCnqfLfYtbObxfJqtW6F2e5T8pmhViOOMnNUXDs+/vOWHOHJd4v1xXVbvyi3OtV9fn/y3eb6 zXaz+fXJv/ghMn8X6sPN+w/MKnelDX9fHulx5foauHLeMqjfSeHjiaVrlVQ/VPdNaEyjfnrV f6JOn9pFV3dYvG2Ra/28h8n/B7ZTONFlbmRzdHJlYW0KZW5kb2JqCjE4MyAwIG9iagozOTE4 CmVuZG9iagoxODEgMCBvYmoKPDwKL1R5cGUgL1BhZ2UKL01lZGlhQm94IFswIDAgNjEyIDc5 Ml0KL1BhcmVudCAyIDAgUgovUmVzb3VyY2VzIDw8IC9Qcm9jU2V0IFsvUERGIC9JbWFnZUIg L1RleHRdCi9Gb250IDw8Ci9BIDczIDAgUgovUjcxIDcxIDAgUgovUjkgOSAwIFIKL1I3IDcg MCBSCj4+Cj4+Ci9Db250ZW50cyAxODIgMCBSCj4+CmVuZG9iagoxODcgMCBvYmoKPDwvTGVu Z3RoIDE4OCAwIFIvRmlsdGVyIC9GbGF0ZURlY29kZT4+CnN0cmVhbQp4nL2Z32/bNhDH3/1X EHlZCtSM+JvqQwFvTdp0WZAmBvLQBIPiyI1aS8okpVn/qP2PO0qkTIkOaifYULQG7k7il8fj h0c1wgRF5o/9XeSTvyZ/IdLa3M8iR7/OJwfnMSIEzZcTgqatFymKFGdonu8fn84Pz08P56/m XydSYCI1mj9OBMVKSAid3+5P353Pjubo8O/7rErrNyYwMjGEKxwJ2gVdpPdNmt+kFaJRREwM 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 dCA8PAovUjIzIDIzIDAgUgovUjkgOSAwIFIKL1I3IDcgMCBSCj4+Cj4+Ci9Db250ZW50cyAx ODcgMCBSCj4+CmVuZG9iagoxOTAgMCBvYmoKPDwvTGVuZ3RoIDE5MSAwIFIvRmlsdGVyIC9G bGF0ZURlY29kZT4+CnN0cmVhbQp4nNVYW3Pbxhl956/Y5KVyKq6wF9wyowc1lhOmretQ7Pgh 7HggcCkiJgEGAM34P/RH9+wNXFJknPohmYw9loy9fZdzzvftRpSRSP9xP8vN6OfRz4SZb/5H uSF/m41upjlhjMyWI0bGZpSknKRSkNnmavJ6dj99fT97MftplMSUJRmZ7Ucxp2mcYOpscTV+ Ob17NSP3v2yrVnVf64mRnsNkSqOY20kPaturzaNqCY8ipuewNKOpcMP/LNpyNQyNRSxoLMlY JHpwtlKk64tekU1RrqpakV2nOtLj87JZrxuzm2SUpdLutq/qJz23baw5N1MunIdjliRmIn6h Zvdvmt16cdd1qu3nVw/X315P5i/IrV4mBGYJY/2b2WNlh+cvbm9n03/fWzfd+N3rl2R+NX3z 6l1V96pdFqXCZOzzxS3BdmfmTkhV44f++1NT1d386iu9N/4/xr/bdlerzprTbnv93WyS5pT7 feZXfzXzybba4NhyvVuok10woH5xAw924NgWO2/ddP27wkXAbHAySR/krHTbmE9HB/v93REH TI0Z48bqX4t3hXS2O53PlixcQqWGgM1n3fWtKjbERtdAEZEQIrPjCHdH9qsKENrrwTinTCa5 HdTHkUel460RU9Ur1Va9Wrxr1lXnc2pQx1NO8yG+1ZJ4r2xssBTmbYq+amp7DuPwKXU0KDpS Nz3pi/d6SHKNfWeCqrXlDSnKstnVPX2OSVABk4cY2fDM2qJ8Dyi/VB2YtbiIzs9FE0ic/TnQ NA5N/df0LNdubydEc+t7bB1GzBP2xI5zu0zfXNjmq2PeI+0ypPOJPLy6+8fD/TMaAJTyWYZN IiWVMnJQuZRyTxBAr6iNDRBgMitHLMbyKLWrP1ZOffGdURGlbteBNjyiSXxgjYaN5U1Rn6J9 Uz2telKYZSxB/OPYrluqsifNrrVKnQmaJENuHtWqcOfE0p/+oWpaq/iUMccWalenWCwC4Gup /2/bgUarVimyhth3pFmSIFwM8RKoTWfC5QlmZMSjV0PtiLqtKpWJ0xi1MTFB5FIH0cXlgzqK b0Q5y5wnTpqEHrOBnQwBH8sIawb56FeFj2FZoF4Z8WmbHTJBIAVGkPC76iBFOg026p1O8IR6 pAZRkf3KhMP72DknH367kyKmPPksJ/sDrFL4yOz3T3noRDWheZwOqvp/Ob0uTqAQJtjUf2Nq nFEphEe1XgHLCm/LZodNjCiziNGIuYlKbUEp4Efj64zCN7W1X/NWxt7+3fZ5KUpomrOwFMGz pl3YMHSqXli5A8cWTov1gDZ/2zZbTKsVovhoScLRZMksDlhyM029hkQ0Y9KATQgUVZSeMbfB akPiD3pQ1F2lnQFYWqf4SeJp2WzI62ZSL0MggAeJGCY8HDYF5xJHXd2JnZZ4LqgWmyF5b1em 5tkDGtu9XZ90bCA/j0TQsakTvOZUxB6UFq/RANZB2Do0eh+RyOrpSQe8HVz++iR2LGY0zdjB xmlIEaZ3xsZcd648hnqx4WRyILltbFNIqzO8XqKbABitQJF9BZpOTTkg5VoVVvcQ9lg6gKjF aezSiIp8KOZ39QDG7hyLU/TgqbjMYk/iZQiI3IM+kAxjqs4IzCWDveClYU+lUex8A1gh98Rk jcvsIOJ7SxEhAVnOvAe+figkpaRkduaIql5UJSDR2cO0FZonSCC4qP/n9lgVCxJ0aEPxBkv3 z8pZu9AgsheFRjd7xoeh8pkgIXlRTjOPcLCVkokP1X4EUuWpHwzsOBMN657BNGqoMipjosES 3F3YIBjFumuILYqHJCLjwpwH+4U8AG1+dYI0QFX4lNq0edelCNwIXUcfelzJO0gxguzroft4 beQItsH2bqWbZGNijmuUjIN6HqYDLK2VFRJq/Mhww0s8sunbIzCiUPj+XfUheZOcDc2OI6vX wy8nBNLquPTWqgRCIN0t0Rz/pVcTI6fILhTbKTWnoNpApNIq3x2D64/Kig7YI3PuDN7PX5wK LIsiTBCfIxJ3x6kDNHOvmM+1oVO96TLPXYZ0n2mpFtPcM902noFs8CQN69LvJhu6VD/XDu3P /Krq/3K0MbrG2NOzKwJws4wK7oITotIlBE0DVCbLvXOXrow2Tvp+GUXcxwkWrj8S3N4A7Eu8 SyUiyz7BO36Rdtk53j2XnFOpuXZvGygffND7kIHkE3TTLyo8Tv8QulnbEWohh7tPwEBylm4M giqiX6GbjkWUBdeiwzVkUfQF2aI/02tyZE4O12k0d217zEo0CzHj+SV8+5ehzpoFXPq59dGV KecyuDHpG9Lk+pNEZTnyw+QFogoIRZQnAVHPephJmkX5eQ9dPxTTJJMXXWQX2/fCfWBCeKcX bmvu1h9mN/tDPLAkcWg78wLDKA/bXneRrGz7u2vJ0dMK7h5ZNNwC0Jg/NZo6wXaIYcYOZCH6 dYY6M7PM2EPR8OqqmVMW+UC8VbYxCZQXTa5Xum1fbbAPmo01RAG82m2U7TlAun21Xp+lnGa7 reVcczU+3OmqobiG9bP/DcziuLamPlwXC5mnkQuaXeKREzJLZICwD9det3P2+Uu7VNWwRUtS 4FitbCfKqEjd9e2p0bO00cFN0ukvQpzpMmgeLTD3ldIW33wHU9fKpYsPzwsfb75r1o9t07y/ +buDhhDx8P72wT4hoCDiaKuuGHZIxxWPPCjjddimcUyK/dOapKhelPz45tCowb7Eo7l4UiSW /9GD9zPyw+iH0f8Ai8pRx2VuZHN0cmVhbQplbmRvYmoKMTkxIDAgb2JqCjIwNDgKZW5kb2Jq CjE4OSAwIG9iago8PAovVHlwZSAvUGFnZQovTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQovUGFy ZW50IDIgMCBSCi9SZXNvdXJjZXMgPDwgL1Byb2NTZXQgWy9QREYgL1RleHRdCi9Gb250IDw8 Ci9SMjMgMjMgMCBSCi9SOSA5IDAgUgovUjcgNyAwIFIKPj4KPj4KL0NvbnRlbnRzIDE5MCAw IFIKPj4KZW5kb2JqCjE5MyAwIG9iago8PC9MZW5ndGggMTk0IDAgUi9GaWx0ZXIgL0ZsYXRl RGVjb2RlPj4Kc3RyZWFtCnic7Vldc+O2FX33r8Dsy3o7FkyAAEi2k8y4WW/iNnEdWxk/1H2g KchilyIdklrV/6H5z70XXyQl2d6dTGb2obMP8oogcD/OPfdcKKKMRPjPfRbro1+PfiXMfOc/ ijX56/zo9DojjJH58oiRmXlKEk4SEZP5+vjicn5+fXk+fzf/95GSlKmUzLdHktNEKlg6XxzP 3l+ffZiT8/88lq3u/owLI1zDREIjye2iG/3Y6/W9bgmPIoZrWJLSJHaPf8rbYhUenV4nzqBZ LGMqBZnFCpdd60KXuGIGbsGC4iiinONhXMIyltndPmly5VdlqVlmDMpoIqRd0mpnZ3GUUamy zH2/1G1rrEvhAOX20wty1nW67cm27Ffk+mpO7sueFJXOW3J2+d6cBd5mSZySGYvxHfuCCVus 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 xrf+5RrXVuTq4icjl06v2k3tWr5b77WORrlQdmujFBqoQn/BC4KIRsoB9pduYyK+xYBX1e7V XJLQiLPJSDWM8cPVnN0Dph3nk7m5hj6yxX6yyHt7DQWiFwpvuCJ10zjAXUn/00bfWTTePHvt LVOE74D7bq+4uUgCTbX4e8RvJqCQVxZPApo/mO8ldEHvS17W+63YXyki9rlMv84rxX0gC5An weEvADJ5HbU2nwp/OVKD/glAfklh/96fvGbfGi0OMBChSg9ocYa3DlFoS+NTBbwZHTh1dIgT x53V/SHu+Fulv9LEMykBjR8EoZQo/53ecHp/DO6J3MeJchD0br6DzisYQckHyz9oJMDTH6CY Ku2olUc+n0+nPzTVfds0H0//bh7CDBB73m02n0ylYwwT5n4NgscumBWcfaNNP57oXVgkEwcr QSVllPzzKrgH9ZMqn638QRMp/4UPz+fk56Ofj/4H7IoOEWVuZHN0cmVhbQplbmRvYmoKMTk0 IDAgb2JqCjI1MDIKZW5kb2JqCjE5MiAwIG9iago8PAovVHlwZSAvUGFnZQovTWVkaWFCb3gg WzAgMCA2MTIgNzkyXQovUGFyZW50IDIgMCBSCi9SZXNvdXJjZXMgPDwgL1Byb2NTZXQgWy9Q REYgL1RleHRdCi9Gb250IDw8Ci9SOSA5IDAgUgovUjcgNyAwIFIKPj4KPj4KL0NvbnRlbnRz IDE5MyAwIFIKPj4KZW5kb2JqCjE5NiAwIG9iago8PC9MZW5ndGggMTk3IDAgUi9GaWx0ZXIg L0ZsYXRlRGVjb2RlPj4Kc3RyZWFtCnic1VjLctw2Ft3rK1DZjJJSQwRIkIRnpcRy3EnkUdSd 8mI8paLYaDVjNtkm2W7rHzLfOr8wBy8+WpKj2UzNlKssiQQv7uPccw8QUEYC/c/9zLcnn04+ EWae+R/5lny/PDm/kYQxslyfMDIzb0nCSRKFZLk9nb9bXt68u1x+u/z9JBaUxSlZHk4Ep4mI sXS5Op29vrl4sySXX3ZFo9pXemGg17AooYHgdtFC7Tq1vVMN4UHA9BqWpDQJ3eurrMk3/atZ yFMqIjILY/2y22Qd+XC6OPvxw7fkom1V07WkrkhRdapZG1tM24qsrSxXZE6yRpGqJmVd3WPT em1Xq7YjXU32LTX7BDRFOPkJo0lsXI4DKlNh7bxXpHPB5DYijmRKF3WTVW3RFXAD9rqNMva4 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 XVhQ6qvSS7ituQtvN8UOn37aoyCtq4a5xSnrHCp/U7f2otsiyoyXGMcabe2N0hg/f6uN2qqA +/r7jofzt3V519T1x/Of/dFkOPHuP1sxGJibSHPtrV87yJUo0EIZMTckDAqOxcMMcUz79+ue ZHHWSGNPsppZRfwP/fJySX49+fXk36hEoNtlbmRzdHJlYW0KZW5kb2JqCjE5NyAwIG9iagoy MjcyCmVuZG9iagoxOTUgMCBvYmoKPDwKL1R5cGUgL1BhZ2UKL01lZGlhQm94IFswIDAgNjEy IDc5Ml0KL1BhcmVudCAyIDAgUgovUmVzb3VyY2VzIDw8IC9Qcm9jU2V0IFsvUERGIC9UZXh0 XQovRm9udCA8PAovUjM0IDM0IDAgUgovUjkgOSAwIFIKL1I3IDcgMCBSCj4+Cj4+Ci9Db250 ZW50cyAxOTYgMCBSCj4+CmVuZG9iagoxOTkgMCBvYmoKPDwvTGVuZ3RoIDIwMCAwIFIvRmls dGVyIC9GbGF0ZURlY29kZT4+CnN0cmVhbQp4nK1b25IbtxF935fkE1B+kl3mCHdgUpVUbSLJ UeKoEu2m8mC5XBR3VsuElzXJleJ/yEfndDcwJIfcJS1bLhcJDAbd6MvpC7G6MUrTf+VzMr/4 8eJHZXiufkzm6o/XF8/ftsoYdX17YdSIn6pkVfJOXc+fvX5z/fLtm5fXX17/+yKGxsSsrj9d BNukELH0+ubZ6MXby1fX6uV/76erbv07WqhpjfGp0cHKoqvuftPN33crZbU2tMak3CRXHv9t vJrc9Y+ev02FISKjricXI4fVwauRi7T89Zh3sE2wrWwwvyx0JxembXIIMr1ed6uN+naJD/Xu 2bfvvpTt63lHqXHZtTi2cbT8+m66VqvlwwbL78ZrNVuuN2q8wKtfff3Nuy/VWPZbLtR0gTW3 zEVrG+0LG+NJp143NG3bxpk6/Xqj5g/YarHcqNvl6hMtSKbR2dT3Vjfqfjz5Dz1wqfGV/26z phfUN6C5WdLTkcPObWV4y4Z1TTJhlw31abq5U5u7TnWsPGjDubLgvxPoY4pzLG/VZjW+LQuC a7Ms+N9E3a6Wc7VePqwmnTDx6W4KJUFCJJp3z65YJF+8VuO5umTBMH+68Z5VZkJubM/pv6Zb BblG66L4xaJbfaHWm/GmY7EFmFibqthu1XRDBOkQL95+XUaLJRSz+AAdwd7ul4v19P2sYw7v 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 ud5Avkf3srjseNWRnJ7/mS68d+VvM/C0UP3p+Z+Xs/er5fI/z//KD6m5Xe99Lx8+cgyOsBVY EP2lBl1Aqn9xMIMWrjp2gu2pPvFlMcp/eRFstbGN+u7v/R970O2ZWP+6gC5qh/T9jg3/HwgG Py1lbmRzdHJlYW0KZW5kb2JqCjIwMCAwIG9iago0Mjk2CmVuZG9iagoxOTggMCBvYmoKPDwK L1R5cGUgL1BhZ2UKL01lZGlhQm94IFswIDAgNjEyIDc5Ml0KL1BhcmVudCAyIDAgUgovUmVz b3VyY2VzIDw8IC9Qcm9jU2V0IFsvUERGIC9JbWFnZUIgL1RleHRdCi9Gb250IDw8Ci9BIDcz IDAgUgovUjcxIDcxIDAgUgovUjkgOSAwIFIKL1I3IDcgMCBSCj4+Cj4+Ci9Db250ZW50cyAx OTkgMCBSCj4+CmVuZG9iagoyMDQgMCBvYmoKPDwvTGVuZ3RoIDIwNSAwIFIvRmlsdGVyIC9G bGF0ZURlY29kZT4+CnN0cmVhbQp4nL2Z227cyBGG7+cpOr7J7EbTYp94WMALKPFhx3EUrTTA XqwMg+JwLHqHpExSVvQOeZW8Y6qPbLJHXkmLBIYloKvYrK7+6+tqKsIERfKf+V3Uiy+LL4io MfurqNFfN4vj8wwRgja7BUErZUUJRQlnaFMv16eb1+enrzffbT4vYoFJnKLN3UJQnIgYXDfb 5erV+cmbDXr9r5uqK/sfpGMkfQhPcCSodroob4ayvio7RKOISB+SpDhhxvyPvCuunWnFwCY4 WrFYGtcNGvIraaAQABP6kdt93qFd29VouC5RP+RDieq8uK6aElU6jNcb9DOsqVpwzBEEhN7B /8+LhEaYChRnMZW/64WI+GRkv7h4MFXJPFUUno3lw2ms8tWg03bd7FS4kCS0KRbgweIs03G3 l0uTomJBCM4I0+On68vv0IVchgvdBpqSeaBmRAZqnZJs7mRGnrSaNMYRy1AcZ3Ix52VRVmpH QEZERgwzU7m5sBOCE7OkryVauzXpvU8wi8zCml3ZVW2npuEUp5xnaAWrBtNJ35fdgO6q4Rqd n22uqgH15aDUwUEdHGm3V/mQo7zrpqFwhkUSuRD8hBMIE55Wln43pjvCnMR2Hzr0FuXNVs0Z c0xjktq4/tbe7rcmuMvl90dvj2BzbFhCMBPX49NzZr2ydMxRBis0Yu5KF2SGBWgl0eOQOpU4 ksILbOSljjmhOEvYI3IZWRdYLQI3VcsyexE3M3avyn660In+WDqXlhnx9ceCamK/X00BeKz+ qCqm1Y/oF7WvFJJit7pqGsBIbyuF0BiTxNge94DAWUbdA+/b3jevaJZgmjGbtF9PiqFqmx6d kA+eMqOHbFIeMyP9EKQ0ClIajSmFxNGplxvxapoSlky93IjnNZ//MO2CsGaM9HxEgE3xLGxG GU5TeNhhc41OamRUrDYxBYkSKEpvEy+XvzxESRFQUoSUFAElxRMoORbwqFcowhQJjctN5aOG 2CKuIXB1Oqq6SzFLrFzLXg1RTCJG9ND/B7lKrBEI2TH2f8gy+liWpQeCJDEckTZIj8sTsDl0 of/8iN5Ik+A4Y8y85OT9xetALiKQiwjlwgO58N+XSwg1LRKWWaZ5MIqge0jSkV6+Se+P45Rn MlmxptO1xy8GQGRxHPKLfQjeGBq9d84BNnnraOQB3QQNckvH3LKMZlMvN+LTLREzLzfieZE4 oVMvN3KAgQfiOsA35zQDnu8TBbqIntFsUUgojTjiWXaAgfpculy+f4h4POOzKOyIFyroNXCi z+gLGWaw9TylT+sLnwwL8YdgkYBA4ycT7Q81rzuNdYIj6lr8WvubMdtU3uolUQb3BVN/ZWPO OppiSoR31E3zJjJE1V3ouUcMgyNGmCPGtoAQSETpgy3gytpN/BatVC7LTnWArDwgKw/JygOy 8meR1cjSoXUCSa2GQ5AkkLyUs8O2iOA4PWhaMQZXiLHnDgnpvXI0ig/BOwOj99K5bZLcAGF8 gtY4nXq5Ea/oaSbI1MuNeF4k1SwZvdyI5zWP4jARg+BnHPV9ArTy56M1Qex5aGUBWlmIVhag lT0LrbIR5ohptNb3H+ty6KoCgfauymHQKHCtznCdNxoZDFocHvt3nD/7d2AgCiO2A+rrERtw XbItmXqRtCQCalpQS86zN6hq4M27vJCfVtqbfhLDVVk1nzQ1CYfLFFy0norcdzPkQrDC0rNq FIdgb1qHwVitaQUcyyJi43jX+jBMmeOnfP77o/OzyyXMIudp1DzGyTy9ditcB9sfIIyFCGMB wtizEGa23yFswiLoY3lyGEY29Z7tYgQVdHksTUJQGdz48wZGf+JvwYgFRc98GMWg0ImXG/Fh REB7Ey83cgAz4Rt5iBA2x8xjCHLoEyjNgPbqYhd8Ybzt4biUHx537X7f6qwRTGzrfCcLBHy7 Vn+JPD6nzF4ireMKKjGe3WrGi8xL9cFVOkApx5iPV521qjBmG5TL5WdXBXYQSqi3NXS5/Av8 /GyHvLLQX76wyLJUjNNL75uq/lg1xf52W5pp5ET6AWjCXTAnp68QwOKjg8Xlciy6P73UhTXm dmUW8q11V5DW7raEkkVbk1eKo8xI9a7ph67Ma4MnlSO4FDBm7BBCLz8Ko7vrqrhGdyW6zqcI gbJgkjigiJhFqQOS91VWEwmCtF+nLYzQJIEqp+bGFUEWXVaUUo6k/74t8j2q1YdvKZd8QF35 5bbsh3KL8mbyyTLJMBGmnbsf/E/ELswu3+lGAu629tPdvwu0hflAk1u18Ld4rjcaUcxUG2ry rlO+6fLiN5Ap9H1VV25nyvMlN98n8PnnuSdP7xp+PsYNWNMRPqSPly/lmawUtHkHqXSBvHVi 86TD4TwPlmCOQc4trR5ak6eqWdoFw0lmutn76mDandRgm2MxKk3OpnUGR7LNTK47jLr6dD0g s18xh96O2ItNMaD2Vh9sLOU4TdLxXNVqlXLitoH/aq4f0FoS21pi/XSC45h5G3vaAqGUyqQS oE56Ce52h4q2vsmLoSn7/gi9sP0/yQSOeTz2/y5fL2TCAHFbqLPxzysrC78hv9rDz1YfqmYW s4auhBsT2JC3RbJEhUi/uUXYlGmSqIPePuLWthkviv5Z39VV0+7bT/c/THaVq3K3lHoxPiqw /aB4oyLtZCGqSNWaW1id+oKem94LmWZMtV0yEwXc4uSt7c7d0mjG4aglk50BUYoYjhIBocrh N6X0Pv4pb7Z7tZBYyPbUbPH98U/t/qpr29+O/66MIL6xHbr9qkUUwa2XGDQxu/5yn/foolRn 9JgB6LfASSRmbyEYTDH69czk4Q6uBTiNbXOYfyqRSMfT/efFfwHYs8P0ZW5kc3RyZWFtCmVu ZG9iagoyMDUgMCBvYmoKMjEyOAplbmRvYmoKMjAzIDAgb2JqCjw8Ci9UeXBlIC9QYWdlCi9N ZWRpYUJveCBbMCAwIDYxMiA3OTJdCi9QYXJlbnQgMiAwIFIKL1Jlc291cmNlcyA8PCAvUHJv Y1NldCBbL1BERiAvVGV4dF0KL0ZvbnQgPDwKL1IyMyAyMyAwIFIKL1I5IDkgMCBSCi9SNyA3 IDAgUgo+Pgo+PgovQ29udGVudHMgMjA0IDAgUgo+PgplbmRvYmoKMjA3IDAgb2JqCjw8L0xl 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 q+DSC/0YJZ6ddoQEqBIqAiE8B1MIYzQFGppkMKUd7Fc+sjDmdF23JbG5uIkGZt1rSaiofcxL JyX7p8ZVl2K3O+rVoJ+lOlVHgYYxHKbUtB9yJi2aoqZ7WRo9D3lSuKYZADYZu8FOJrKPvqJC ubyz7rCH2AiCVmLoH6F5203O5GBHpx3hTHxDGiKFLkeiLWlisEo8Dof2bCRZ/TWA6qxDx7MP wOQJgr+yTZPXHwJzNHSyrOvF2m2dN1vnXbUZTbtAB5nKPpqQwcjVolqDnvxSVev42frpcVes XKDx+cPJipYKNQM6kUHxwLLDDQhewqbp/OSKQvoZl1PGJxIxIBsHXWZ8IBYnX0oXfyVvsAHF /J5/fz0dCDWAXvfD/T/7p5EudApmPp2cAqIfXd4MhhsGrWqG3a6bblYg0/fW11sQcRDTff6A GwW+KeNbvCvbHC056RQMWNXeks2I6dDtMhOHoHzX2JOqL4GCCFW76tEF3QxD5YGKUlbQJJRO 7VDF/SNqVPKIqbx/5WRZOnzc7J9Z8XbhhCaiep4PUS00vu+dfk8ZtqWn64oc1hUtKUvZs6Dp 5wyRgTJK/plzhq96J8cKBdQPcv2xWjasmtP/VwRcNV/IECH8e8cfGSKgOQQFl+6zN9ah4tW3 kMSdtxaqPU8wmB9efVvt7uqqenj1nV8EZgjU/erpZ2+ue/UBmIWZHpYjkHdAqmvr8TCkBAgi oDKyS1K4jZJ/v++KnwCiKax0+b0lqfmPW7xYkh9mP8x+Bbtc3K1lbmRzdHJlYW0KZW5kb2Jq CjIwOCAwIG9iagoyMzcyCmVuZG9iagoyMDYgMCBvYmoKPDwKL1R5cGUgL1BhZ2UKL01lZGlh Qm94IFswIDAgNjEyIDc5Ml0KL1BhcmVudCAyIDAgUgovUmVzb3VyY2VzIDw8IC9Qcm9jU2V0 IFsvUERGIC9UZXh0XQovRm9udCA8PAovUjkgOSAwIFIKL1I3IDcgMCBSCj4+Cj4+Ci9Db250 ZW50cyAyMDcgMCBSCj4+CmVuZG9iagoyMTAgMCBvYmoKPDwvTGVuZ3RoIDIxMSAwIFIvRmls dGVyIC9GbGF0ZURlY29kZT4+CnN0cmVhbQp4nNVYy3LcNhbd91egshk7JUIEQAKEF1OlxFLc TuwoUk95MZpS0Wy0xLib7JBsdfQR863zC3Px5EOthytezJQXcpMgcB/nnnMvYkxQrP+5v8Vm 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 uSzV0pYKdJaQFm2Mgl+7LaiJVkKDiZGLFMbfxCV9vzoYMDelALWG21yYUmwbB02m9Jo65WMG vZ2QQHbUUPJ4SkGXuq6jTV7cllCWJ/aycsyfqcPJaDIkb9Al+BRwksgQRbvzcPgEHuwxeKn8 hAyVf+VWX5txTwrIaOxSBEtQ5My8/vVOvxcAuCTxc2bTlEt1bUT8zo2ZJLzN1/5sKnB/ZX2p e2LUqvUKUuk2N0IqEyAuLgbXmQMHfAQiQvRtuhjEgUIc9J79ZAm8IDyOqymOiX+zP+mTnGkc +Wu9YJEeimOvcVOLogzqUs8Bh4LqJh79e2T9KIHs/ySBA+upTaT3IHnOgx/zqlDrR/14a9Vu MOE+Hq30DbLL+zzrCxHpWXO8R5QR+zLi0NXpBWdKJ/D4HZDC2uzBUz3Guc/vj9/V689NXX85 /tlLUt/+7O5s3WtgEXsHoF+7IK4Bx5fK1O2Q1CksSoVjFMA2phj987yndQki4zGX3yjE43/p l6cL9Nvst9l/AdIrTjNlbmRzdHJlYW0KZW5kb2JqCjIxMSAwIG9iagoyMzEwCmVuZG9iagoy MDkgMCBvYmoKPDwKL1R5cGUgL1BhZ2UKL01lZGlhQm94IFswIDAgNjEyIDc5Ml0KL1BhcmVu dCAyIDAgUgovUmVzb3VyY2VzIDw8IC9Qcm9jU2V0IFsvUERGIC9UZXh0XQovRm9udCA8PAov UjM0IDM0IDAgUgovUjkgOSAwIFIKL1I3IDcgMCBSCj4+Cj4+Ci9Db250ZW50cyAyMTAgMCBS Cj4+CmVuZG9iagoyMTMgMCBvYmoKPDwvTGVuZ3RoIDIxNCAwIFIvRmlsdGVyIC9GbGF0ZURl Y29kZT4+CnN0cmVhbQp4nN1X227bRhB911fMW+xCWnN5Z4M8JK3TCEUCR1HRAFVhrMiVxIYi 5eXSqmHkD9x/7uyFFEVbTlGgL4VhyN6ZnT1z5iqHUHDUj/1Mt6Ob0Q1QfdZ+pFt4Mx9dzBKg FOarEYWJlkLkQuR7MN+eTT/ML2cfLufn8z9GYUBoGMN8PwpcEgUhqs6zs8mPs9dv53D55y4X vP5eKTpKh/oRcQLXKH3iO8m3Sy7AdRyqdGgUk8iz4vdMpJtOdDGLLCD1jLI18VA78GHihUrd JwHxCLyuay5k92DoksRzEmuRS5GntTHX+jdpVSY0JNqSMQFbow1McMj4Q8kzYMaVi5nrtex4 xMWbibpXS9GkEpXU9WtzHe61X0bLU1piJ6+XubxeFWz90uC0EnPjeif4igtepvxYLKpGcmv2 WJLvrlmWIdG1Pp/0n/v6cuCuESLJKPx1w0tIq+2OibxcHyOvxyA3HFq4f7H1GB4hHAMrM+gj gwdeZIqzI4TmDWQwL6ESGRdKagKZjmKHYJRtjMZ7G7tUseb7Nhk2+J7G8yBqCUWlUy8kjkvt vT2m0a226hM/9OwpKxoO+7ysiRIFmPiOb0XTFbCi0HBNjPlNwwrj9PQKLKFQrdSJptX1fIK/ R/EQKGUS6qoRKbqnLnfpU9dszSGvoal17gADmfPJUnD2RSMNPRJjJmk4A0oQaJjEz1KSy41+ b5OvNxxJOYA2aGOsh6jLAyShxBiTNixtrpc26ja2sKoELM4+jX9anIOsMF5p0WRcxW1xhiIb SGBrwzUlQWzxMKRZ4i1WDimoeSmhKtEIErbSBREmhHq2WbAUGdeYfeqQiEYt5npTNZhMS66f RbYzpFIlqnJ7VRUmDWjgk9CzXO2VeFfzJqvSKuPDcp1QROyjsi2Ao4w/Lsa76yOh5mQ8Rf/u TexIlwj5anEGPyioxu+D6qtXMJ/9cglP3RJcNqKEGuvr6Yd0iqsopRjM3sWv/JAOCbF+FzXG 6BGO707gQLOO40QDKOIxlH8H5Jk38nKVlzl2i8FD5pVj8ydOTANzXZPAT/JnQfeGGM6dJDAI 17k2g70gtLXmxm5ba7e8X4aYjl2DqeXBW4c4cdQ2pkEB7bmqdwwG/vXCNH98KraPC10Nme62 XektGTYIDcpzQhK5ncNYMyyVA7wO8Tw12tyEeEGctLixPjuAZtZiBNpZauoZa1u3Eh/7TtTe ZEKjqSWTj8slQhuqD9kJd7pcToXBzj+VHseJcO+M38+mb4iaJai7ODf/dpfxAEvwMNkWZ2jN JkDP2lMp8Vwe/w9SorhTvVQXdy+mMW4xsfdPYoqtN1Ka34zpKR5P9rJ72o/p7Ar1F+fDyB6O T8X3WyXfe+PzMKox7YKKm8lwWYuxIny7C/YxPTKT4FbbmrGLhxr3erh0y0+3+6jj7WG3RGID XGM7H5DDKs2ZGl/7dmjr5UENWAY4T2WeNgVTg7cp85TpMZrhTM9LJnMM9uexWh8yjuNzm6tF dHmnrWgnBk72J9iA3kEBODE2ELtL1FDn211xdwAnXhwtJKjrRLYiaj2tMeXDxPaXK9ZfUSI/ sYlolyi9I+EbTzFRVCkr+qtBgpu8Q7vVwC4GAY4T2ro2fcppu9E8P2F67oe0i/F/X/8lV9th pSu9X+bGY0o8aplsJGRVqbn3KHEjux5KS4NLPHS6jTCT+A2JI5P8sLTp/e24N1Bs+LglnegN k1Y8CQIsPFR5y8uSi4t3mN8Ft1/yXCeyXt9dvKuKpaiqLxc/ayGi9wIrrJpbs985JImoHUNe m2a8wDT+xFOV1AdScZShUhDZddB+kfvtqvsS52HDP6z0uFCG9HclvJzDx9HH0d+xvSviZW5k c3RyZWFtCmVuZG9iagoyMTQgMCBvYmoKMTM4NwplbmRvYmoKMjEyIDAgb2JqCjw8Ci9UeXBl IC9QYWdlCi9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCi9QYXJlbnQgMiAwIFIKL1Jlc291cmNl cyA8PCAvUHJvY1NldCBbL1BERiAvVGV4dF0KL0ZvbnQgPDwKL1IyMyAyMyAwIFIKL1I5IDkg MCBSCi9SNyA3IDAgUgo+Pgo+PgovQ29udGVudHMgMjEzIDAgUgo+PgplbmRvYmoKMjE2IDAg b2JqCjw8L0xlbmd0aCAyMTcgMCBSL0ZpbHRlciAvRmxhdGVEZWNvZGU+PgpzdHJlYW0KeJzF V8ly20YQvfMrOjdJRY4wgz0pH5RYilWOZZlEKocwpQLBoYgYxNDA0Izi0h/4X/ML6dlAQEtV okNSPJDE9PTyuvt1wyMUPPWx38Vm9Gn0Cah+5r6KDXyfjU6nKVAK2WpEYaJPIWYQBz5km6PL q+x8enWeHWe/j6KQ0CiBbD8KGYnDCEWz5dHk9fTsIoPzP7Zlw9tvlaCnZGgQEy9kRmjGt5Jv FrwB5nlUydA4IbFvj9/lTbHujk6nzLceTXw06geA30oub1veyJsNl01ZGEsT6quTsl6VdSn5 zUBkfjQ/hi9K0PedZMPlrqnhCx3bO3ePf9yrK5PDnXvjVmy9UtGrEPGUMPSNKZmAhCQgcKbt /5DXBa86LFIMggaJDZa3bX7LW6PTYT9xMhMaER3sWT1QBhtzD8oW2nKzre4gr2F6nVmp7nyh FLOYkYhaeHcS9qVcQ1l/VRiBAYfoNHg+SdLQyF1KrZzXEhZ3BoI4IqEXOxzkmoMBGBXWNaZz v+Y1lBKWvOKSt6AkVqLZa90JI0lsdefNsqxvoZU5OiDXuYR1voQi37V8CT29UoAoil2jFIQE YS5GDH0MXLmR9xbVYoRA0dSGiBr0lUngMRIy1mVb7CRvWnS3qjAyZRpDNACMEcClcl4falfw iUZPJ1hZjkjqIrgTB8s+cU+VYTBWXFjtAQFPuRg8hYBQOCvrug4mHmHGJFYT2qSpC0Ds+w6h YRrFRl+d9/2hvjWjYTShoRGZf+zfjxKS+pEtRC6saRoZ5YykUWrOPvOBWXSP2pNmdTDrES+2 eXERo/PpIOW6zCY0wO5I42ere340G/+IzYrJwaoeFuqh5LCGVamool9g3louDeZ1jsUPMxTU 563YNQUnjiCes3jyIosW2rttWeQVNqEuHuXAgI+m1/MjpX3gkfqHSoq8roVxWpnOt9tGbJtS lcXskdNPMAA63PAeB4itLDfln7ksRa3vM5+SMLGdkaF50ZS3ZZ1XjipQnmPJosJinddlu9FR 6ES5uzYODFEMKiEijNn87vO2KwWGdOPZ57tFzXUj82F9BVilXjIoMO9hddVyp1Fd8EIgPIWo 27KVyEjfaRwfwOG8t1joFsbu04RPE8Jc56EGyw5oy08TFx2qf9ACWKVB0PdQneEF56Zzv7k9 hG6nAbZWFKT2nKOHBK4cZexHAc6H1Len7ZYXJaYDE19gThUtYBk2/NMOZ+hS0YfK61O5H2Os +F+VUTcHtJtxiok50EZ3vRsLq0ZsNIZIro2ieMPghqgTQmNLK+S5WWeFJixy4y50466LMkIK 8T0b5Uwz3bu8MGTOiMccPOLh9KM0QPjoofBV2W7wqpPsVoIwIH7MrJ5KtNKOfM0g42Yrx5fz 46F2RT62G8YPtZHwGU2PtHQtgJVlGXSc94vYT2zl1MtHa4wfEBZ2c3Rg7OQpY5RhG3Y8ykGP ybLWCRQVtgS2xma7k7rpWxArmPFC/YaAUENR6tqSf63xYm72sr5H2InED9GhVJlYCFHBc2Ca DcrsOnbbWsH8CEnx4qassbVWecHnivKO4dUruNTSKSUWjfdTvTyqtOJ4o2GCB1YPXjoAmDpU h2pnViucXb2G2XWGNOyGBT7Opj+fA/50Xp5OcQ7ieoshBmq1QUt6O/vL2KHe03/6yAR+pO4x 2tsWL85+mp0PwkhJxyL3/IkgKlwmvgxGglWFwJmm+UX3X1ds8M0r7FUwhTDUb5708L+3ipGJ n03eP09ch3B3o2f8vwbAzK+Y2LUCk26ix9cFdiibvoJ3dtV3apAXF1xaxu+7iatCDe1WPnxH cBct9Gn6cuBP/hXwXcf8X8ifvLD0+sStz8JEnV1wpfb0DbJPxe0bI/Niy9V3p29EtWiE+Hj6 Vh9S4vuhGwi7z2Z99HDhpvr9MVLHdppWuDlZgjtsI/sRQ6HQbaB2Iv163U0jHyOJ3MxVMzBi v6nD8ww+jD6M/gbHtTWZZW5kc3RyZWFtCmVuZG9iagoyMTcgMCBvYmoKMTQ3NgplbmRvYmoK MjE1IDAgb2JqCjw8Ci9UeXBlIC9QYWdlCi9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCi9QYXJl bnQgMiAwIFIKL1Jlc291cmNlcyA8PCAvUHJvY1NldCBbL1BERiAvVGV4dF0KL0ZvbnQgPDwK L1IzNCAzNCAwIFIKL1IyMyAyMyAwIFIKL1I5IDkgMCBSCi9SNyA3IDAgUgo+Pgo+PgovQ29u dGVudHMgMjE2IDAgUgo+PgplbmRvYmoKMjE5IDAgb2JqCjw8L0xlbmd0aCAyMjAgMCBSL0Zp bHRlciAvRmxhdGVEZWNvZGU+PgpzdHJlYW0KeJzNWMly20gSvesravrSskMsYV8mYg6e8NLq DqvVEiN8GM2hCJZItEGAxmIO/8Hzz/2yNoAUaXluE3aEgkChKpeXL1+Wx33m0T/zt9hcfLn4 wnz1zP4pNuyf84vr+5z5Pps/Xfhspt6yNGBpFLL55vLmdv7u/vbd/NX8z4sk5n6SsfnuIg54 GidYOl9ezt7ev3k/Z+/+sy1b2f2dFnq0xo9S7sWBXvQgt73cLGTLAs/zaY2fZjwNzeuPoi3W 7tX1fRAai2YhlsURm4UJrXvTdbLtP5V1LdvHy4erD1c3j6/0J86HION+rLddyid1VMjzMNWP xFD1HesbdjtUFRP18ujANOZpmmV68fS4j7Jvy+LcoUmKgLx4KD2fhXnO4zhkMz+kdzf1t7rs 92y3ljUra9avJbttbuqnhnW96CXXJ6XmJI/NAhWKe9GXTS0qydRxsc/DOMv1eU3LtOnsfqhk d2jrzC6d+QlXW81x5FNTVcq+yJtstCvrFSs7Jlg3bDai3bPmSVnY0r74qGWdrJe0CqFkrRRF Tz8QX6EM6JT5QY6TIhOMm552rBv8qXt8LJcuMiEQ4yU2MgvJlpKCU6q3QHISs3lxAQNDAlgU cS8MjKVfJXu8NNgrDABxaOib92S0iifbiGJd1rCeLN52clg2RbOUbNs2Gpc+DyyAvpZ4QZ9+ 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 YmoKMjIwIDAgb2JqCjIzMzUKZW5kb2JqCjIxOCAwIG9iago8PAovVHlwZSAvUGFnZQovTWVk aWFCb3ggWzAgMCA2MTIgNzkyXQovUGFyZW50IDIgMCBSCi9SZXNvdXJjZXMgPDwgL1Byb2NT ZXQgWy9QREYgL1RleHRdCi9Gb250IDw8Ci9SMjMgMjMgMCBSCi9SOSA5IDAgUgovUjcgNyAw IFIKPj4KPj4KL0NvbnRlbnRzIDIxOSAwIFIKPj4KZW5kb2JqCjIyMiAwIG9iago8PC9MZW5n dGggMjIzIDAgUi9GaWx0ZXIgL0ZsYXRlRGVjb2RlPj4Kc3RyZWFtCnicrVnLcttIErzrK/ro iRAhdOM9N29IYynWHntkTuxhveEAgSaJNQnQAGha/gb/6/7CZvULAB+WD445eAQ0uquzqrKy ir7HmU//mX+L7dXnq8+Mq2f2n2LL/jG/unnMGOdsvrzibKbeskSwJAzYfPvi4c/53eOfd/Pf 5v+9iiOPxymbH64i4SVRjKXz8sXs9vHlH3N293VXtbL7nRb6tIaHiedHQi96L3e93C5ky4Tv c1rDk9RLAvP6Td4Wa/fq5jExBs0CrIpCNgtiWhZ6secWBLRAmA1uZVet6ryXJXts9r1sO/bh xe3jh99YXpfsXm42DXsjuy5fyW56BN2EzJ1hq5nIPHcQ99h7WZdVvXJXSnwv86NMH3luUwvk zK6c8Vjv+O7hzUx/sTVfsLyVrJN1z3ayrZqyKvLN5ok1NZM5wKAPZJ0vNrhSVeNGSzoi8BNP +Im2IC+kgmNmn84IlPLFfC3psb5ZcQUTslB/8ZSbu+Bp4PHAPIZZkw+4F4RcvzrkrftEcC9L ze0VyKxv2Ebmbc3yBR6wfi1ZLavVetG0wI3uwFrjDnuv4S4WeZEAo0QMd9L+cqhHvudnQarf b0d4z4IM4R1n9t4EaL7pGmXHVhbrvK66Ldt3gBCWyo0sepazk1gxoeKNMRBp7KWRAfrlgAEP vSCKxhhs913PWlk0bakOdsbDLdwTXFjzqnrZtNu8rwAF1stKLaIbqBOTyEvSzFzzy9SDPvYx wJfLwRb4A1urx22zdXHjfKDyzA89nhpv6nARvvC4HwzB+QsC0zkzDRAk8TPOzKbOpBM1YkHo +akFbLvf9Dgc8MJ7eVmCXjomBJbgPyz58ILwfvn69YxselRmwD9xZML67d/grvdshRDcGffC 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 0gP1MEMZt5DT+ekwNmEPytPLxlTwGITHXeVWangkj4ZfLbrhl54ZhWEykJDzib5YQ9Lr9yMC EqN5iV3v6QyCUVMk1Vr7O80ozSCBI9fmqqlrDdVdFevhVwWHcd62J/hmw5j/Uktfekd2z0SQ KL47Y/3uowm6H5k/SilNfqe/P0Q0uoonATqcT5M2ent6Ppqf6ngCODn61bQTu3A6+TIcnz6j HxDo0QzKNqTHf8gaO93co0BtpCE84VvCe7oBQS3apvl080/1ElHoJnHNXg9REWaEos7owA6Y UXo69n7IJjfqw6LI0o1Jxn+/c8kYZOBbW5vJ23H4H3p5N2d/Xf119X+QOkWIZW5kc3RyZWFt CmVuZG9iagoyMjMgMCBvYmoKMjc1OQplbmRvYmoKMjIxIDAgb2JqCjw8Ci9UeXBlIC9QYWdl Ci9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCi9QYXJlbnQgMiAwIFIKL1Jlc291cmNlcyA8PCAv UHJvY1NldCBbL1BERiAvVGV4dF0KL0ZvbnQgPDwKL1IzNCAzNCAwIFIKL1IyMyAyMyAwIFIK L1I5IDkgMCBSCi9SNyA3IDAgUgo+Pgo+PgovQ29udGVudHMgMjIyIDAgUgo+PgplbmRvYmoK MjI1IDAgb2JqCjw8L0xlbmd0aCAyMjYgMCBSL0ZpbHRlciAvRmxhdGVEZWNvZGU+PgpzdHJl YW0KeJyVWOluGzcQ/q+nIPqnDiDRS3LPACngwA7iFkldRf1VFwG1S0nb7qHsEcUo+gbps/YV OsNjd3UkQREHssjhzPCbbw7ao4x4+M9+puXsw+wDYXrNfaQlebmaXS8TwhhZbWaMLPQuiTiJ fEFW5dX929Xd8u3d6tnqj1kYUBbGZHWYBZxGQQiiq+xqcbu8ebUid5/2eaPa5yjooQzzI+oF 3Ai9U/tOlWvVEO55DGVYFNNI2O03skl3w9b1kgvr0UIEggY+WYgQ5SqVb3fruqFZ837f5HWT d0/mhLsCD8iCCZRd7RS5XZIHK0Y+qyIj9YZ0sP5w/4Y4XSTfkLwjeUv24L+q4NdKC71WRVGT UrWt3Cp66pg2FNIvuvXeajtxD3Ajq3Ti5s0/FrF0BupiLzaIyC24keWp7PJqiy52l65zMEh6 1IstkvL/XoMxGicXrtLlpar7b7vfje4L3NVewNmGdDVBJQS0aEcGwNtOdoocdqpC4NcqrcE7 XC2MfwujaYgjhAZ+8FagqD65QRhRzh1q5q6v6yJDy8e+J8Be6x6a1rsLSI/Q3CimvvATs/9R b7rLMo9yZnca+Xq4L2c0iWO7MQXZeJuq/NhE4lE/4NHUhDfod3qyOakNdDvnITduLAQXNIwH XD7KqQbmWQVFr0i7V2n+WWWOAtavuePRDgCysdl3eV2hw32rMoN+aLQNlHh7HDeQzVShOlCv Q3gUWssaYgAUEQ0gUNovUx6MBbex4KHL1E1fpdqVDWgBQux7TXzLenSx6lSz0XxPQiqEva5M FbkHn56fEpvFgjKB10hQble3lqkWvtvl49X94zPyl/Y0pL7byBrygpTqSBidUhJK1HDRwSPj wJkWQPrxikA9yNv3a9WBJHx1p+ewMYdTYP7FC7Ja/npHvuiJO2OAm+z+fXll8LlRXd9UYOmy 3JgYmG4cYsHpeTSQFUNIZIMhgXB8V6quydP2u+PAcKj4LPhWYLgQNAmGwKzrujjy+xgzOV/P L4Yp3wCgQI9GM1KOkanQqXvt9GGXY8y+VJahi8WDupZsZNGqIRBHiFksJc3372WWgYqW/EDW k6+6PyKA6QnWkzxPqC1TaOcve8LzvOjEDFxMTn3WpqbfwceflxOL3KOJ0wGQXbB4dBw4d6zv 5u2tTizoyE7NV64K5jVAcTDC9wUyfpVkQCSoI4Zngys6loIv1tAZ+qrNtxUQsOr16CCrzFSb HtoLtMaieCKF1PwWIqbClfctyB4pLFwhZogKtEs/DCwwhwlaUPAH+j61Yws4zBY+FHs/GdAB Em1U00DFJDfDwBMklPvufANVUDXfT/sIT6jgbr/Np9Xbi21byJR0M0ragwFo46b8yaMK6Mc0 hKloSLQUttOdrLa2rUqccBa6G5rAQGYKcN26//U+FTHKPR5f7lNjm7KGjkp/i81edzC7ewkG D513MNRT+HngyvqhwnsPQTR3M92DAZNCN1febwzNhI8zrRkHPCYwUBz3/zXqmTd8mVDSjxER hlsIuPF1mEdc64Hap2SLCzXs2eU5fAJ6h7woSFU3peZiKqFcunNLDZyIgBSRvdQ2b9GAbqML jbnbdnGBFpNXCi3ZaGrZ8do+s+N0v27Vhx7pIXUCAcmhEGbQlZsyx5RZP4EjsrPGrGI7/UVD TlqdC6FLsU+jUULoec/CjPPyy7ru2q6Re52Hywdym7dp7agjzADLQB8/Zw6nzC03JwP7yDto CAGNYn+cPF7VR3MYpGBgAWjSUTnQNQktxDXkTNrBWKMaibjMycmcF0OyBdHXyd086QeC5cMh h1DblCJZXUr4UvYtDq5ErgsdrRJRIdAguzztbUnS6HrjpFz2BexKOLgFzSBvq6mZ9UgrYRxb Pui+RM19Iw4Fw76y6P0JFAnj1t3NOIIn1I+8xJZBOzdXtRm/wbQmZ0XWhUz/xCEQSF3KJyL3 e2V8HnMUn3oW6/lhOuL7voMJe6++qA/xFZBv9qItpM+luoLvwTBOLkPv1pvWDa0WaihteIML +jyYAvVDk8PYwUKnl7SDZvMOhQeC71IQXdPwm1ri7gulO45d7bnJpi8ylnB3FN3RzgGqaQ3V GOVgzIxDYQn1Sb8jpcltSIYgYQ4VPJBv+7qHlw68Y6DIG361Jk+hgJC83BeqxKRGqmGWYVLD wc/bHnoNMsUQW42khFpV1tXRALWu+yqTQOJMfbalAPW9Gfj3sm4yIPbS2n+8enjzctk+PqNE /4IWK8wiPfGOrEcjdyvyy4yRfOYTQJb8CP+Br0EAIQxICPMGfJTDQmQWitm706VRJj6XiU9l knOZ5FSGeedCbm0ixS5IsTMpfkGKn0mJS1LxmVQ8SP2fv79w/eeXVwpC0Vy/BjIUyv4NhnuO zU/X8NRdN3X95/VPepNBSrjWWvcfdd8IwTxnOhPw3RS496psyTszfU0nHc59Gruigw2B/PYw TDgCyjsbXl7QnsLg94EVv8z+A4V9EC9lbmRzdHJlYW0KZW5kb2JqCjIyNiAwIG9iagoxODU2 CmVuZG9iagoyMjQgMCBvYmoKPDwKL1R5cGUgL1BhZ2UKL01lZGlhQm94IFswIDAgNjEyIDc5 Ml0KL1BhcmVudCAyIDAgUgovUmVzb3VyY2VzIDw8IC9Qcm9jU2V0IFsvUERGIC9UZXh0XQov Rm9udCA8PAovUjM0IDM0IDAgUgovUjIzIDIzIDAgUgovUjkgOSAwIFIKL1I3IDcgMCBSCj4+ Cj4+Ci9Db250ZW50cyAyMjUgMCBSCj4+CmVuZG9iagoyMjggMCBvYmoKPDwvTGVuZ3RoIDIy OSAwIFIvRmlsdGVyIC9GbGF0ZURlY29kZT4+CnN0cmVhbQp4nO1Z23LcxhF951fMW6Qq7ggz uOeNkqmYSVFFk+u8RHnAYkEuIgCzBrCi6G+QvzW/kNNzwWUBxsm7y1LRBBozPae7T58eeVww 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 CjI4MDEKZW5kb2JqCjIyNyAwIG9iago8PAovVHlwZSAvUGFnZQovTWVkaWFCb3ggWzAgMCA2 MTIgNzkyXQovUGFyZW50IDIgMCBSCi9SZXNvdXJjZXMgPDwgL1Byb2NTZXQgWy9QREYgL1Rl eHRdCi9Gb250IDw8Ci9SMzQgMzQgMCBSCi9SOSA5IDAgUgovUjcgNyAwIFIKPj4KPj4KL0Nv bnRlbnRzIDIyOCAwIFIKPj4KZW5kb2JqCjIzMSAwIG9iago8PC9MZW5ndGggMjMyIDAgUi9G aWx0ZXIgL0ZsYXRlRGVjb2RlPj4Kc3RyZWFtCnic3VnbcuS2EX3XV+AppbWHFME7VZUHO3ux nJIjS1OpVFneKoqDmaGXJMa8aFb/4H/NL+Q0LiSHWu26kn2K9CANAQKN7tOnT2M8lzOPfs3f oj77/ex3xtUz+6eo2ffrs4vbjHHO1tszzhw1yhKfJWHA1vX51U/rN7c/vVm/Wv92Fkcuj1O2 Pp5FvptEMaauN+fO69vv3q7Zm4+HshXdJU30aA4PE9eLfD3pThx6UT+Ilvmex2kOT1I3Cczw dd4W+3HICTAWhcwJYhpc74eOlVvWH2mQdmbr4iyEMdzL9PtSqiUDGlMP2trYUcAON0vGia1g u1YOB6fNm51weunc3rA6PxzKZtexQq3jwGmx2oRHqRuk5t1HMd+fe67P7VCbH6b9Mtie6Od5 25fFUOWt3nTF+r1gshHsWPZ7+qC282PuZmnCHB7QS5WEZV0Pq7oPrOzUO8ZC1ks2dMJVp419 1zfHvdrOZ3Vsn5+ew3ODgGKSYqPYG8/D+tFqHbLY9XxjOpbr8lpoKyrR7Pq9Mr+xZzCmww1B ak23x2L7crenMxzaUrZl/0TnKPayE422PUrcOA7mxiMwmFNTgPp93igv1Xlf7OnYounbp9Fp yjC1vV3nU57Lm42abEwoRcdy2mSDxcoir8xpcjir27Pt0BR9KRt2f94Jwe6E/hS6ievfvyLT 4NuqFFhTaqeZPXEqHEvtdHujsoS7iW99rE7r2EcOHGwgTQtWOzJsX9PqZWMi5vsUjhSRCHlq AjWikhvkJWbkwzNIJqEe2TwsMuIpf63mBm7qm8y9PU6gTRH5zEa+YWXPGiE2HQFuI3rR1iXi gbAgW7ayhdd25SJVktDldvfPpEqzmzad5avKDuHuXDYcpPZFAGyl4RjcVhQgEQqK3GL/Q158 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 K53tRXcRXS9bIGe0Vl+ZF63IeyOoZ94KiD79F52FwASpcZcibaVqytmlRJAF9lICxeVB9Ech GtVS6K5Nf9Ewvykai+Z0jgyTMn95kIdWqtYKjWvgjZs0JL7yzaOR3F5keS5veqgwm58mRtq3 qQcOSBcpumi6kcjzFjudhgMFK/v9lRxaTYtumFmgFsK5O4ii/KNg14SIItc7n3Rfev5J+02L fepdum68u6ZbUtE+loUgHSsq9gvnv1rVUxIxETfaUEMy9m1Z9KwbHtA4n7TfxieoTM7d9dQ7 1YIuzsquNmUx8V3PitDvwa3m9iOgfs3SsfoO6+pmZitBEtbC1jqnL1Q6ZWIhdfXw4MrQsmlp AhJ6AM7EmZI6Mqp7KELm8o4WfSATPnHcsUQuD+TO2T0I+XTh+d10R03XsZHtYhoNmHoeNAfD YO1sAReq1MXQtrrmQ8S6Hv1epIRHraTUdTWFTBPB7FtPWE3ZDjdN1RV8QKHF9pPn7PWvedcJ EzdUhUs0jWgvfsC7lfJrHLn+KO2eLn6QFbJFfrj4uxqkim1Vuhw0VcSZbtTUvQiGjWEV+Mh8 xzV5D2rZD6evhygb2C8342UTSDLmFvuUc3HyKw2+WbOfz34++w9mvXWCZW5kc3RyZWFtCmVu ZG9iagoyMzIgMCBvYmoKMjk4NAplbmRvYmoKMjMwIDAgb2JqCjw8Ci9UeXBlIC9QYWdlCi9N ZWRpYUJveCBbMCAwIDYxMiA3OTJdCi9QYXJlbnQgMiAwIFIKL1Jlc291cmNlcyA8PCAvUHJv Y1NldCBbL1BERiAvVGV4dF0KL0ZvbnQgPDwKL1IzNCAzNCAwIFIKL1I5IDkgMCBSCi9SNyA3 IDAgUgo+Pgo+PgovQ29udGVudHMgMjMxIDAgUgo+PgplbmRvYmoKMjM0IDAgb2JqCjw8L0xl bmd0aCAyMzUgMCBSL0ZpbHRlciAvRmxhdGVEZWNvZGU+PgpzdHJlYW0KeJy9WMty28YS3fMr prKyU8QIM4NndvKVYju2HIWkFrfiLEBgRCEBMAgAimG22eajb88LGNCUI7tupVwu2sA8+nHO 6W74mCBf/jG/eb34ffE7IuqZ/clr9GqzuFiliBC0uV8Q5Km3KKYoDhja1C/efthcrz5cb15u fl1EISZRgjaHRUhxHEawdFO88K5Wl99v0PUfbdnx/ju50JdrSBBjP6R60Zq3A6+3vEPU94lc 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 pyZOoI5KZSEnfvLZD0KuuIdnpF1ObxMczFcIOBVmQy804vk9bxreXbyB2OuhNAJ6jZ9Cjxdv RLXthPjtQgE/gpuYnQ/F/lHPRDBuxkRBOZKvbd0EPJjrpxgAG2BRGJuQmibzZ1tWDguQxSSy iZAjQpT8Il9eb9BPi58W/wOq7IWgZW5kc3RyZWFtCmVuZG9iagoyMzUgMCBvYmoKMjEzOQpl bmRvYmoKMjMzIDAgb2JqCjw8Ci9UeXBlIC9QYWdlCi9NZWRpYUJveCBbMCAwIDYxMiA3OTJd Ci9QYXJlbnQgMiAwIFIKL1Jlc291cmNlcyA8PCAvUHJvY1NldCBbL1BERiAvVGV4dF0KL0Zv bnQgPDwKL1IyMyAyMyAwIFIKL1I5IDkgMCBSCi9SNyA3IDAgUgo+Pgo+PgovQ29udGVudHMg MjM0IDAgUgo+PgplbmRvYmoKMjM3IDAgb2JqCjw8L0xlbmd0aCAyMzggMCBSL0ZpbHRlciAv RmxhdGVEZWNvZGU+PgpzdHJlYW0KeJytV9tW20YUffdXzFugRYNmdKfLD04CCRSoYzt5KV2J kMZYRbdIMpSW/kH+tb/Qc+Yi2S5JV5ouL5bxzLnPOXvP2JQRGz/6OylGH0cfCZNr5ispyPPF 6HAWEcbIYjlixJK7JOAkcB2yKPZOLxfHs8vjxf7i15HvUeaHZHE/8jgNPB9EF+me9XI2OVmQ 49/qrBHtEQraKMPcgNoeV0JzUXeiuBYN4bbNUIYFIQ0cvX0RN8mq37Ic2PNcYjk+biZxSa4F abOizrNPIiVZSWIyPb2w5vMLqyrzB9JU60400vfhjDs6He5TMMIiNJItr/ZIli3JeExm05P3 WQkKyzgRV3vzq30yuXxJ3tZt14i4OJvOu7jDjYNXsAUKZ1VWgl/48Qe60HYdtFtlyzxrOzKG qFaiyTqRvq9wRavLulHIIxlZm3p/Cl2oZMQiGqoy5K0gfaBZi4k+bbUPBUzbtu0Zq60oUzJp W9H0klWJ1mRZt/wr97C2nYX572rPAmWtaRutZdXcx01K6ji5FR3ajvOc9LWUEWsL6ixMZ2nf cN5gZbHC3FpSVt0qK29IUTWCdCs45m4lSCPSddJlYLtayoWyaoo4Vwd+QTAEtO3YNg2dSBUO YkJDzToXB+Q+61YyLlmCg6bu1DFYRkUnE0Otrva+k1VK8njdQvyNqHNIJFVGLt+en1OVSKAT 6Uvm0mjYcmS76WaGQMlUhuhTx3FNiMmtbPuIOn6k16CEJ7KhbBr5oV7EbLt2p3xRSP3ACSF0 2Uy6hq1QhUpFmzTZNcSP9UpFF2d5a8pX954hHB72npfKEX5jbUlSlV1T5aQQbRvfiFZmZxmt 3vEkz58UJ6tYKgDg+B62tQ3JSxzgATVFuBPkVCYM8CFlpABYNkAwrYexcKFSnlZsqq5KwFu5 liDCbEeH54XUDTfCw9D6kGLoKwEHCRrrMkti2deC3khd5kcAMo6yP5PjyDggloa1G+hh0YAN 6BK163NIzY42t2UuLuWc6WVr3lX11f4BgaIW67xTTmUzLRbngKxdpUcxoFHITCviOX2QEYQ0 gtJIW5PzcwubfoYbHmKvKeNPbwGU58/IDeBerVOSIHU4bdYljICCgPaAiC6hV/syX84C6H6d 7wIcttW6SQSJ0xRwuyXQ/yk2g4ovYhAIN/GZ6vWVheaLSVoVcVZa91mKUxsnq/g67+39IJvv Mz6G2qg+d1ykJGh0N3TAp0SJv1QnMPubfmzMkLTtMdzazAPDzLPy1sqrBGDGhKqnR2GbGlKH 2sM0C0S/+1UGvIVy2iIavBaIRQDFnepRo7gxuzAG0ztXHbnrw8kGX3fk4OUDh8az4cOcZ6qf PfjFwuF8wYW/4cKPvsrHzsEwB+aZhZ8/nN1CM1loDHSp6B4CDbSjpc2PjtJndIevGfeAJJAp mU09iXaSu23GnQ0e7dkI113PD8Lo6f96KLF86kVRFBrF761v/GyR4iNizjvRPJLFQy00yIcS wmyPajh5nG3zPeCemUUBs3oHc/GIEgHHJAEUPWZuBS9WIrlt14USkJAJ82kPXP6/pLNNcXxA 03eKbRGXDG01OwfuyU3HxNNr8YjavFdqkao0gENf8B1mBeYImTp+z5V6w8A8DMUDiOa6cKrY G3GAhVALRUFgwtnUZtRxmdFW3NfWIsk+JWSTOdRAuYy6ZjZwV16CeUiZWXyoFckcbXIadH5E I3nNUN07ft37hwZnbl/GPK+2FM2ujpuNZ9uMCgPvmejFzZCUTXv+GVjJGHVcGvjGJP8Wk8BN wTbRbTnyHGBi1kfvjM+GtKGQoWmEnqa2c9ciWtsdPx+0N2Ksqg4u6fG2Zy2gVb3x5Ol6S078 UsH98aunNZt4iTcHyV5ww0X0fHlB8OWhbpafMxh8yaA1SW7/i9Fw/OLJ0sBFJUvh3WLNptYk vZNg4tOQO/0AdlkrCqClnbljYYA3rWHqZ4hIpk+Y9ONDE/H+ErfVJ4GrltOdYcRJhauuCXsO V86uIr+LpkLmhEMs2yJrERTUtOE1kenJPr2BSz/UZV2DaCMSkdXdLlwweISiAmChCtvg5L9c KY4X5A28dLORSwBmyRn8IQ8Ce3KPAHPgV9Ev+GohH813lwaZ4J8ygb0jE9q9zNe8wrl8hJ+I shTN4Ws44lzolzi3DZs+HL6u8uumqm4Pf5SbAHKO6bRqfWcuu3BL1ddt2DYQFLdkrl4RQ8/d j/BuEXJNXfjSIT9Pe/JxGPVZ//KCO48f/dIX9s3ob4+kRVBlbmRzdHJlYW0KZW5kb2JqCjIz OCAwIG9iagoxNjg4CmVuZG9iagoyMzYgMCBvYmoKPDwKL1R5cGUgL1BhZ2UKL01lZGlhQm94 IFswIDAgNjEyIDc5Ml0KL1BhcmVudCAyIDAgUgovUmVzb3VyY2VzIDw8IC9Qcm9jU2V0IFsv UERGIC9UZXh0XQovRm9udCA8PAovUjM0IDM0IDAgUgovUjIzIDIzIDAgUgovUjkgOSAwIFIK L1I3IDcgMCBSCj4+Cj4+Ci9Db250ZW50cyAyMzcgMCBSCj4+CmVuZG9iagoyNDAgMCBvYmoK PDwvTGVuZ3RoIDI0MSAwIFIvRmlsdGVyIC9GbGF0ZURlY29kZT4+CnN0cmVhbQp4nO1YzXLb RhK+8ymmfHG2VhjNP4DclKwUq2K7FJnJxZWqgOCIwpoEGAC0rJQeIe+6r7Dd8weQ1m52N1s5 pXSgiJnp6f66++sPZJQThn/hs94tfl78TLh7Fj/qHflquTi/LQnnZHm34CRzqyQXJFeSLHdf XL9dXt6+vVz+Zfn3hdGUm4IsHxZa0Fwb2Lpcf5H97fbiakkuP+2b3g5f4kaGe7jKKdPCb3pn 96PdrWxPBGMc9/C8oLkMy2+qvr5PS5nUkmpFMmlwcXlvSX1v6w/DYUeagVRkGKt2XfVrcn2T Vs5IQy3F44JpKkrpLY9wmJts1Yyka+1Ltw6+k2W9MArCEaXfN9TB8XrBOS15fN7t9lu7sy0c vyNoLFopS7jExNPe7YJRYzTJuMSH9XQWPQ/n4SvgRG6u35CdHYZqY8+I9W5LuLfwBj/V28O6 aTfuyLoaK7Lv+rHpWtK07tmtO8MhEYaFUDfNMNp+ivABgTQUUhAcCvdRcpWSpDlVpoix9gR9 Pozx4gnb+Tfyq92uMRG/2L6za4d5BnVmHKpZNJlxQ13+rro56oCu0txf2F9PoDPK8lBRNx/N yY3VduggcgTFDm7pGjaRF/vBHtZddm+rte1fnJFqIMPe1s2vdo1A3V59TYQy7My5KDhgkUcw Bls7PAtokPfFj5Qs7yGkE4sY5b63e9uuweLYuasxdX6d3AFk+Gh/6PfdAK51dz6iWALVtj5s q88AdZhxXlKlAvZY5C++3+99AgFDA8uhwV5Xj3DXDS7IgjKuw0JVf/BFQLnOwzM7kte23Yz3 L2KlHEWEAQ2wZ+w8JEJRIVPF4vatOx2rdVam3mclqMzl5PNbV4dSUJ3c+jSSV/6yjyEWJsvo 8vZgyWHw6XnWOw5t4PlBUsFzf+z6zjcYNB1XR+7uAwjS0EKVCYSXxyUXunR7VG5FMO4Dhqvb biQVdtjogiqAhLQODbnpqy1pD47CAJtAKQ/OU6ZoWajYQ+vBF2/0zHAgitjXAD2WVLXGenpo 4N4K95zfSoWkjBysGaQEe1bggX94lzn7I75MkyBTEHhWcFxaPY4WY8Z2JysLNQ/B2R4+d8/W 9fltHqwkHhKQM1miMYCKckou27oDCBIPQbJLHTn3XXfwNCaoisDVFlKzJt+4BWWoUDKy1mFP LtZrv6CpVGGmQNV6ogMzRuaJ43bVOAQ+YFSX4JkoPVEFp7Lv26auBqiFYJXjQBEmmT2BKi4n wrtoyXOm0KGx8i2rJM1j+XlCu+u2W9eUqgBKj5T8gAjfOae/9NcKGYe10FQ5xuWFBmvIuA5i xoV0hYfe1BMZ4XOlTV6Uz/+XmiODoVGWZREP/jX7nX8uZGjnI3eeLtKFwtDQPgATuap2zfZx FkEOo9YvP11OHVzSUBoINcK0fNxb8uTuctC4xZiAC58An3hosf89OEpPqhwiwhJzmXf+Oz4C YtWxRFNAsz5XkOdcmaM+P+0/HlkWaTiWkKPCAqeompuPjP3TScQv/bh2qyie/FM/tIGZBHcZ j/ZSDf9QzfWQYdpfBfSNQ44wcDsnFTABjNxqGJpNC4S2evSz+eLtEf2C0ks66+Jusquo1DpJ j2ug3b61yXGPYynhLCumQBtwAGbHew0j+wfckUMyC1lM8yWIMVNSBiowpJmLAvPuXAbrtnez qYBpxuKc9RN+ZX8zHpFTydVvxQM5y7wYqY9D4oCxkPlRSKf5kAqmAEti5d9lQ4CaGu+7wwYE NFyPAYJIggCqEUJAhbLvm6DRRIggEIYz8nFmG1QcC49HN6edXxJywGKxXTi6gkvcwAxYOZFb HcCNvhkffZMpmPsTh3ilhOoD5iJI3hrorhlAgMETcB4qFIAPmhYSxwPbfgIAx6Axp44DxlNu TyrXy0QCTnJIWpRRDAArnPSWKPxycA0bbETugLq20Y7TKDigodYq8mwehSynF5zU4po6iEFY wSQKLtDlvEjKPOgRuNdVIS+gcOYC6Sf2EuGd6hTGowJRneoU0PRFDsXPwVwSRHAK2/3MDUsQ rmiiHf2EgYKIdRC0OqNS+lc14XLl6yHkgXm2xuWcFloek21gm5PChpQrfQLIMRIniZQCfSim GTxnLzcCJGCcOvSz2Yt6GJdnqTycjNxqmICYenpzAgUHomGlihAc9Tv0TfSgnYYWlB4vRRpb CQVUokwfUTMm47hCyxwO66lCP8MFOFMzE1VTlBNe/mjMRzmTP1GoQBr/JVKcMZqfdowzGS3A GZsUSgpeAikpHtXrnCpMjH6uXpArktj6z9SLKVxL/KleonrBNWw7LuLJW8cEUL1PSTHH/L+p hg/4yufGmY5W3b5MoYL+/+IAWvc4L0/fzEZTEe93RbU7bMfP1Zff9d849fsUV+qA0q0nRQBD su6bFYBarbpjMjAMRUc5JwN2ygR+YpeAOL7cZlqHHzts29r+/BW0/NYdNBoHeez081fddtV3 3Yfzb8O7oUzU3x38NIDbsR+wAgwuh97bApG98z9azH/jEbBJx19OwtvV+5tUJjCjCpNQ2ViS sx9x8XJJvlt8t/gnsrRJN2VuZHN0cmVhbQplbmRvYmoKMjQxIDAgb2JqCjE5MTMKZW5kb2Jq CjIzOSAwIG9iago8PAovVHlwZSAvUGFnZQovTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQovUGFy ZW50IDIgMCBSCi9SZXNvdXJjZXMgPDwgL1Byb2NTZXQgWy9QREYgL1RleHRdCi9Gb250IDw8 Ci9SMzQgMzQgMCBSCi9SMjMgMjMgMCBSCi9SOSA5IDAgUgovUjcgNyAwIFIKPj4KPj4KL0Nv bnRlbnRzIDI0MCAwIFIKPj4KZW5kb2JqCjI0MyAwIG9iago8PC9MZW5ndGggMjQ0IDAgUi9G aWx0ZXIgL0ZsYXRlRGVjb2RlPj4Kc3RyZWFtCnic7VdLcttGEN3zFL20K8IIMwMMAO8UR0qU RC6ZREqLOAsQGFGwQYDGR4pdPILvmiuk50uaoip2xZVViguS6J6e16+/CAmFUH3sd7mevZ+9 B6qfua9yDd/ns9N5BpRCfjujEGgpJAySiEO+fnb5Kj+fvzrPn+dvZyImVKSQP8xiRpJYoGpe PQt+mJ9d5HD+56bu5fBCKYZKh0YJCWNmlBZyM8r1UvbAwpAqHZqkJOFWfFX05Z0Xnc4TCyjg qBVHEHCh1M7bsqvqdgUaTsxJmmWZsfBhI81R50vAUiMOKFcKlRzKvl7KCoplp1QDpEbEkJcz ERLBQmvoXloPyhkNCaP2MTkAlsUk5co6y4jGNpeD7J1dqo4zQRLBjptNIvO4OgAdEp5qTAFl JOTCw897fz4j3uuiHdb1OCqnBvgo+47A5artenwwbboWelnKejMegueRNuGxXxXDO/hVtp+D YbG//E6C1mlkuxrv4JNsKqgHSGFZjwMBJb/XQRURiWhiwTWTVFojSttJB7+7hbJrx3o1ddMA XSu1ATR7O8LbaRjrT1IzEjhDFsA0GBcLWCsYD3d1eXeCptbLukXJQ42g1DWrvps2UFQVZuJw Ai7m6mBftCupAGgdBH05IjhDqr2lwUNopmih60G+n4oGxk7btRad/3VrcN+inr62/jyhWMRI xqL9yKuC8TmV2vC1Z7ukEIRmthrsZRdKyAVJw9iFe103H6BoK3CVYO9NU50zPEQrkY/ah511 SnhEjZGNRN9vNe41XlOsdJAG2Y7anwIGtNs4LlGt1br78V9jqBxBO3ZM4MxNntEv4ouGyEr8 NF/fjC7TOIzth1mWoJE49Q2EwJtnkqyIb2GRIBF3jQF7lcJ/eX0fQVuMBy6IjIRJ9rjYsYMh 1MRnsnRIFCzKUmdTHLGJzYDrTope7foI7IybPpuQNOaWIWP8zfPDiqdJhpnBdyX/o+4nlBMW Wd5VtNdTM9ZlgdE9Q1aVRkZJlDiObJD3+hWaTWiWOu9eYnEXdTs8LsZDQKq58Mw3dVkFi27S NwocG5xbd0uTXTq02LS4C+1jJDSkJFM0CyIOzZa7Ch6Ld9pxFhE3m6SBe9s1jR4MUUpE6Er0 QcUKY7QuxhfmRsbdtGQxiUyvFgKtqV6tPQop49oThaTc9Rf1PIpFkmbHf+2SBs1hg/a0fhf8 y88xNNu9aspI6msJLnTd7B1JYyfenh8542sLSwi2MB/6+8qfxvyMqT++2N5s51vdS3QhCkUg FiIj3M80nEOw9SWIk19l7LckgsapiduOisXOrYQS4QpCJc7ZfnPTwq/AQshB3uOVjJkEPdNc 28xmMd9vWge5nWk5/69Wmf/XrH9as06gtmvWly9Zi0fbVeh2q8Wm6Ae9C6lRXOACrn6ajQoH auoHGm5UJziqR7WXUD06ri+vgsUVMT2N4piwy5febkDvTVbN2MNaFmnm+nk/1OiAbjwBpxjJ yO98uFxtcCIt66YedT7GCcFh+UScUmaE3tubp729eYlzFjHd2HcKvNRarZvqZdFXb54fpSLL cLUI073lUnmGLpr9T7n4c1e3p9f91PrdZsC7BmmTlkfqzUfBwY6TUlVQTBn7ywSdhv7PXq5E serDVIkGWY6KMIwswXcheDxn1Vjzqfo0BfPr3HAwl20lPxr3sF8y1wXUenyNzoy2BjFhI2Fl vZRPMKSmcUK/kKFDSjhmT5x8LSWf0wxHGHLLJobdYqYn+oEiQT25+m2BPyRQTaamEPcltH0h 21b2pz/hqtRImywMtyzbik5/6ppl33XvTn/RQtw8/X7QTfZ9JMSlgOoxJJTY5n2DdbwwUPcX QoZKcWLbv3KBEvj92s8ijiNP+D6Ne3NC/1DC8xxez17P/gYhewBQZW5kc3RyZWFtCmVuZG9i agoyNDQgMCBvYmoKMTQxNQplbmRvYmoKMjQyIDAgb2JqCjw8Ci9UeXBlIC9QYWdlCi9NZWRp YUJveCBbMCAwIDYxMiA3OTJdCi9QYXJlbnQgMiAwIFIKL1Jlc291cmNlcyA8PCAvUHJvY1Nl dCBbL1BERiAvVGV4dF0KL0ZvbnQgPDwKL1IzNCAzNCAwIFIKL1IyMyAyMyAwIFIKL1I5IDkg MCBSCi9SNyA3IDAgUgo+Pgo+PgovQ29udGVudHMgMjQzIDAgUgo+PgplbmRvYmoKMjQ2IDAg b2JqCjw8L0xlbmd0aCAyNDcgMCBSL0ZpbHRlciAvRmxhdGVEZWNvZGU+PgpzdHJlYW0KeJzt V0tv20YQvutXzDFFrfU+SC7Zm9s4iNE4cRwil6IHilrZjCnSISk7AvQT8qM7sw+KkmsURXwq CgO2pZndmfnmm8dyJoDTj/9brmdfZ19B2O/Cn3INv+az0+sMhIB8NRMwt1LQEnSkIF+/unif n1+/P89/yr/MkpiJJIX8cRZLpuMEVfPlq/nr67M3OZx/u6860/9Cipx0RKQZj6VT+mTuB7Ne mA4k54J0hE6ZVl58WXTl7Sg6vdbeoblCrTiCuUqcWn8H70zjlILXMoa5UCTPbw2sSac2zc1w C99NvYSqhxQW1dAzIPmDNZ4oJjIfQFFvDGkNKG021sl2BWXbDNXNpt300DbGXoDXrgb4sumH 6rtZ0j3zcJF3YNObJRQ9FM6Nx9uqvD3Bq9aLqkHJY4VOkZlP7aYrDZwtlwhZfwJL05ddtTB0 sneyfrNozGB9dpB6E9P41ugKLAx+7Mn9ooG2A/N1U9QwtNZQ4SyEA1XjAlmhHolvKhsFkiSJ IS9nSiUsksrh8mANU6ZJJDiTInOS5sxnGb9OMH6fRWfr8EbMnGSpioL7b4r9UY6C2B1dV/UW imYJ503ZLqvmBizjMsmUCFa394bBxco6vkZDxY1NW2+awQaE0OHB2gQEUa+xypd7yFzSOCYt 0iOihKJH7d9DJrlkGU9+CDJ4Q0LEPuWx1y+eQ0Tj4fgAkeYJ4gpRS0N4D2aK+OhQ11dtA5Ko fnVxeQLVYMEcuhYx3EJnkLVr0yyRtsisAX+h2BYUEq43AzEMy5dgubh6iKAphmMyJYJFIdCJ F1jUgmmsXe+g8QGyo9qnupYZs5VPBWOhlSzC0OyVvoAsdJoprX1knoP7BjFXEdME2qRNeI74 ZB+Zdgl8dC6ojM5ELGOSwVtT1+3Y4uIUO1wwe+kpaXMZpUiKkKa2WxfDkUuCJyxLqCwSF+HF MJL53nQVIlIWNSZigbloN4PpqA8BfoWMxE8r28YyxeI0MKY0IQ6sYN/QZcwii7lI0V5KENhw uJDKtnQyXu67C30fxYlOs7//b5/EhMVZlo0s+3n+gz8HTW6HlITPpttBjhx3obLUUThmvth2 13tiW+kj9q9AAdM9IHN3pKElBYkDKRbMU+e3W1Pe9Zu1U+Au1xln0YuGkxxiu/sw+ptYhzRS yvlzP2AxUqjOoTijrKHHmff3g1V45zrS1Get8YqX9FlgbT7rti1sdCuNApDWr892gu5cmlJ3 mLxzeuEaNsmWcPFJIQICjB3EZQUvGZfk0XFcbHfIuec+Tw/9z4v/GC/2TR8Dk9L1Ytt97Fzh LNOhjRs7Mk/cHI44ww15P4dP4JqaTpiAguLBIaATmT0ZgDSGdeQXgBMIzejJhIhxDI1bymu/ IuJ+uWgPBy3Oe/6cnTDuj4drljKZ0pIQJqyjko1NZSxWk9iOHYuceDJNB6Jo61az1l70ZE8S PMX1RvzjnmSPYZoV91Rqhn1Ak6/R0qr1w1gplqgwhx9pV3LR2Bzi/snlOCSJkbTFPFk2UE1x dYzHu3FrfO694ddEH/zErhA4e5/YtfvkdjDHKweiyq36kQOffUKyiE+uOnLI40iZsXrevbOH PXIxy4T2F3RVsajN9JGEb5Si67aE3DC+kSJKWDrx/yDBzL9/cLWygPg1Jh9BsBf3+BDa2rdU UbllfEya0ArLQE6SZs1i+Fhye6vuRYmliYSlnT2hIU4PCdM0pjt9iytybfzrVPJAgu3p27Ze dG17d/q7FSJz1LiPbfwjkKpb2M6VkNiXeY0PuE+mpBj2LKWmhCuP9ruHXwf/uBp7E+YoTULR 0B6o5Z8kPM/h4+zj7C/z5vHJZW5kc3RyZWFtCmVuZG9iagoyNDcgMCBvYmoKMTM3MQplbmRv YmoKMjQ1IDAgb2JqCjw8Ci9UeXBlIC9QYWdlCi9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCi9Q YXJlbnQgMiAwIFIKL1Jlc291cmNlcyA8PCAvUHJvY1NldCBbL1BERiAvVGV4dF0KL0ZvbnQg PDwKL1IyMyAyMyAwIFIKL1I5IDkgMCBSCi9SNyA3IDAgUgo+Pgo+PgovQ29udGVudHMgMjQ2 IDAgUgo+PgplbmRvYmoKMjQ5IDAgb2JqCjw8L0xlbmd0aCAyNTAgMCBSL0ZpbHRlciAvRmxh dGVEZWNvZGU+PgpzdHJlYW0KeJzlWEtv20YQvutXDHxJikbr3SWX5LroIYGT2m2cOLJ8CgKU FlcSG5FU+LBjILde+6M7+yIp2U3SJi2KFoYhaXe48/pm5ltSwoDqP/e5KCbvJu+AmTX/sSjg yXxyOJPAGMyXEwZTswsxhzgMYF48PH0xfzp78XT+zfyXSSQIixKY30wEJ7GIUHSePZwezx4/ m8PT99u8Vs2RFqRahoUxoYJboQu1bVVxpWrglDItw+KExIHbPkvrxbrfigkTMF9MpoEIiAhh GkRa6NeX7uzFhCVEhu7ZbZtXpbGPJyQUsV293SpgR3BSbTKwxjNCeSztbl4ovXY444F3nQsS GqWSkoRHEqZMalHKeGCeJ5Heprge+PVQRHEi7//W2zqNiJBSJv7Bb6df+Ges2TXmw7xXF0vC hxB8D8YQIa1zzAf8w/PhAU5cJlW5atf4CDf5CRK//kH/noac4yFf0wlv1eDGyT1WmQy6hN0x ijOG7n6uUTbnHu3Up3gASYAgSaIeI5A30K4VpEXVlS1US2j1agq1WqjcGID1FRmwsjAk3If3 2liri8RsUcKZQ15dDCAOiYypW++aFt6ahyiuRm5Vqa0xoFT5an1V1ag4XazTq416BHkJjVpU ZdYQGwrOSJj0GTpdmie1b61zpVEttBX8TN8vne3cGjhlCFFhipajUTKw2pfLJTwYO+LqmsTU G/io7d1JiBCxdMFDzffEKNAh8pH4SIwqk2tGJONuaTnoQdBg1ITTg24VqmnSlQ7SrjZsVzEC 5pPa9o+O+/w3UHWtDqMNsMR9dNAF2OdkfC7C0xlGhopknGBuRvamt3CloGtUBjc5VlyWp5tp VU4zVaRlBpu8fNs80plKfZq4Poej1ZK63FxXw/mUxM7LPLMgYtitZNJjKC9XBgz6ZOi2Rqt1 KZGE0b6AtqrOqyxfwInabCofWIsvxjCcvjaedTWeVxdVrYH4EaQ9eGT28nJZ1UWqOzVuG9X+ PKdaP5mZcOcFfsvTVm1utaDEVk+p84XsjAdGJe7h0GKmOf+FCcG1lSw6QrA2qr7WIglDePt4 okkogMnK1G8l/sCaW3ZtVyu4tjFJSBC71Kq6QTWN6RI6zVm16ApVtrs2c5yKYZx8gc0sOUJz tlheGKMMNGKaddVhCyur1gNrVynqDKT8Ep3yCI5ncI7wqPP29g9nJ5cklv+d0Sk/Y3ZqA3fH Z/gPjU/X5gZPjkfB1vTK2Ts7H7IdM72NTVwSB3GXUvjQEzfM3teN+D0jdwQm3S9SCPj0Km+h K5t8pSut7AxbHKEbkY3TrskzVdtK1I0Fz1EbtTCNJW2sC870TDWLOr+yso2TCUlE+F4X+aIG Qo/gB1Wq2va20+P/SWlw+u8uDcEQ3zu+/DBkNhLeqt28cYG9+e817J5S2IGPLYYaYV8Vvibs qBEhCfwYTDedApyobra2qjaELkZMCD/204UCPPJmnePNyszn8Ux3U9jyFix5HuCtJ4q9r42e WzC3xMc0hVDgrUi4dN4xuTaCSUjCMHL6V1ZGc5y12qdmcYDFxT5NzUadC+GEbMWun55p728M Y49I4tKZ1pkmOpp+tGmtNRvC7H5YvhMFJGE936nKvQjifTMS/pKIEbTMOgrtat8mXg4NAfUH HuVYGg2wGM+sO4gEpRRSpApp43ra1a1Rd/r4xTj2TAaYWUfrHhMYHU7dXVtINtKgT2ZaSdWt 1vhLBMKROSSayN2dc1r1QGtCTpLExw9t0ejBDrx7DwjxMhX3/DwdM0zmLyqtgssGWV/ajEjR 6+iNDZVEhh8NXemyfFsaoordL4pc37wpoTI+9lQYw4NM0pIWhi2WemggAuFguJ4JbKZ8uMIf uHPg7PJibs4pthulOZfKvhtoOwsIY30ZH4xGz4GZLwc7cD7ojbs4eXn5/HjvXGKrOHZVPBSQ gGlg6hkvUCQgMFOrvEFc9XnEhkhl4Kw/c2X4zORGU1xfW4Yn77YKXxpTxkez6vFs7wKKcfPB Uatx7jjziTcWjXoA6EL3uMTAIChSOD97MtO0V6/Nzk354mrRbdp8keI1dZsuzCUjwOtcHLnO j4S/VCprLF82lgVYbIadW4KPTa0p8tbUZekOn7a1Ui7tIaFhPKT99Byaqquxi6VZhjhuRvcK cyd3q9XSGW9vGjj127w0ydTHPp3DqwmDfBICVhr8iP8aRgKDIiBCVOJH0S/EdmEzudhfGmSS uzLJvoy8KyPpngyjtBf6M+/luHkt90yViNnDE8TvRrl3c5z6znV7iDVzVVfV28Of3LuvIOgB 1tmBEukXDcx0oEhvuzxusLAvLFsadymOQiJ2Y9tB/PV5D+4A+WTkwa2xFQdv+vi/mvwOLaIh sWVuZHN0cmVhbQplbmRvYmoKMjUwIDAgb2JqCjE3NjUKZW5kb2JqCjI0OCAwIG9iago8PAov VHlwZSAvUGFnZQovTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQovUGFyZW50IDIgMCBSCi9SZXNv dXJjZXMgPDwgL1Byb2NTZXQgWy9QREYgL1RleHRdCi9Gb250IDw8Ci9SMjMgMjMgMCBSCi9S OSA5IDAgUgovUjcgNyAwIFIKPj4KPj4KL0NvbnRlbnRzIDI0OSAwIFIKPj4KZW5kb2JqCjI1 MiAwIG9iago8PC9MZW5ndGggMjUzIDAgUi9GaWx0ZXIgL0ZsYXRlRGVjb2RlPj4Kc3RyZWFt CnicrVjbcuO4EX3XV+AtsxUJxoUgyLytMzO7rsQur6zal2weKBK2uEORWpIaj1L+hPxrfmG7 caNEe7JVyZSqbBUBok93nz7dEKOcMPz4/+V+8dviN8Lts/Cv3JPrzeJqnRPOyeZxwcnKrhIt iE4k2ezf3dxtPqzvPmy+2/y6SBXlaUY2zwslqFYpbN1U71bv199/3JAPXw51b4a/4EaGe3ii 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 agoxOTcyCmVuZG9iagoyNTEgMCBvYmoKPDwKL1R5cGUgL1BhZ2UKL01lZGlhQm94IFswIDAg NjEyIDc5Ml0KL1BhcmVudCAyIDAgUgovUmVzb3VyY2VzIDw8IC9Qcm9jU2V0IFsvUERGIC9U ZXh0XQovRm9udCA8PAovUjM0IDM0IDAgUgovUjIzIDIzIDAgUgovUjkgOSAwIFIKL1I3IDcg MCBSCj4+Cj4+Ci9Db250ZW50cyAyNTIgMCBSCj4+CmVuZG9iagoyNTUgMCBvYmoKPDwvTGVu Z3RoIDI1NiAwIFIvRmlsdGVyIC9GbGF0ZURlY29kZT4+CnN0cmVhbQp4nLVX227jNhB991cM 9mWTNqJFUhSlvqXd7LW78DpqEaDpgywxthpZ8kpy3AD5hH50hzf50ixQoFv4wY444pyZOeeQ CQmFUH/cd7GefJl8AWqe+a9iDT9mk+k8BUohu5tQCMwqSAYy4pCtz959yq7mn66y8+yPSSwI jRPIdhPBiBQxhmblWfBqfvk6g6s/N1Wn+h90YKhjaCRJKJgNulabQa0XqgMWhlTHUJkQyd3y x7wrVuPSdM64R8QEiSArJgGXlKQRBDzWL4SUcQOJxHo1hIBy/zwSsUzS5385dLhfTESapol/ 8fvgP37szm63p9m7j/Cr6p4ge9woU25KEp2XhoK4xj3NRzR2dTfh3C6pXnUPqoQnHSGZLhIb KihGmfWfVqq477drG2DaHbA0xFZ9y3ISYTHvy3ozIk5Ti6Rrtxu4LEscfQ+3Z1dN0ZaqDN6Y 53dtt86H23P9Fmcc4dnC9d9BxNg3xitTwo7xXu/xMp+93XaFegbyL01V5P1wDJqH/y/k6Vw6 piNoZgZdnhnymPQhSaVwnVZdX7XNBRgpRiFBgboVpNgFzDVnDEqUPNUlRyiwmLmYB7UnW0iY dM0oL8BzycLxVhBookohfbWvVF901QI5mS9anyYWer+Yk/Breah7TI6LDdKEsISi+lhqa35j sFNOWDTOyRLLlCsIj/xeOLYTrJwTkWCfHNZspWBpCJi7Kd917RoGfLze1oMdc5kPOWzy4l7v xcKUUOESqwGqxkTPTTEC64ikS76s+sH2WRBTPdI64bEv8/W++oiwkLpSNKOgHFtYNaaDLJVE D9HB7lUx4IQhIgiGwKd2UIgiN4x0UChHArJ/QGGYa2x1cD20m97g/5j39/CzauAvVZdQtM2Q V41dutvWtW+PAUMFeqmgHkytmuWwgu8gQYkosiSAXq2BvJs9RNDkQ3VMgpCgd2mT4gmhTHoy wJ4O9lCQJBHO5LTuqmZ5e34B1Z2dDoLJlwqqHnrV2MJz6DGodhM95RFNUCIHNLpGdZuOYJ+o M0undiMoSbiUX+dRRGS659HbFnniKdTeQW+tw5Dpa0SiFM+V+JBInXJS5gn9dyTKDkmUSkci PTRLJN2WYYVN8tgqO0KGzZCJ8PCXJyPSkmNpcqhTfYyPUk1c/sa8h4Xw0AU3wx7RwWNEdGqe I6IGTuh8Cf1GFVVew67SZMy7Eh4MhpTjlo4Teb1VSLjwpXVfwlLflV7zpMitcngsiaTj4b1Q sO1RV0OLiUtEgsqxkb7AFK8uka/9sR/LsevIS0aE15WZMoGbm5vxcBV4sghH6mbU5QsPVEiU TrgH+gLKVvXNy0MEUYRVeuoN3f5gIpEMU+EYk9f142gUsNNZtDCwp4MdMd6aeDyOuLW6MfLG lis3ja2dRuCn0a/aLUYs1LF6fPEBww3Rh3BDPSxB4P1YORfaWl1jqmY667YNGosTqrE79HIa JsmB1R3LyncAMXMS6zscja1aL98fM923cJ/o1BEWj4A2gOJBFxuPIXPaUbwfRtwh3eX7jTE9 dYLsyh62m37oVL52akYRNSXMZz2x/oo+whwX37faLPNO2dRjPsbshRSdTkbjdWCxPTz4pGuH pnq/wj2QnJ1S+r4xn9mft+eAOnae4hevZ9ntOQFT/FFu2Jh+HIXvVsrKwSZ0QNbmnt1DrfLn LVrgDXS0IrTo5YlFJySKD253CANTKX1c9GPTDP/LFlAMWnqGhQd1mmYGMsJDFWcacOpuNq9V 06hu+hZ7Xiv3LwUbVfE4fdvWi65t76cfzCJ6DRejKo1b0Dg0lqiBxnrZCadGcNfWcfaq26Ef 4z1fuvE7cv8227Mb792xv0Zpnknxu168yuDz5PPkb89zcSRlbmRzdHJlYW0KZW5kb2JqCjI1 NiAwIG9iagoxMzk4CmVuZG9iagoyNTQgMCBvYmoKPDwKL1R5cGUgL1BhZ2UKL01lZGlhQm94 IFswIDAgNjEyIDc5Ml0KL1BhcmVudCAyIDAgUgovUmVzb3VyY2VzIDw8IC9Qcm9jU2V0IFsv UERGIC9UZXh0XQovRm9udCA8PAovUjIzIDIzIDAgUgovUjkgOSAwIFIKL1I3IDcgMCBSCj4+ Cj4+Ci9Db250ZW50cyAyNTUgMCBSCj4+CmVuZG9iagoyNTggMCBvYmoKPDwvTGVuZ3RoIDI1 OSAwIFIvRmlsdGVyIC9GbGF0ZURlY29kZT4+CnN0cmVhbQp4nO1XTVPbMBC9+1fsEaZjxZJs KeqNtqFAhwwE00vpwdgCUmI7+IPATH58JVl2EsIwneGrnWZ8cOK3Wr19u1rNegiDpx/7jlPn xrkBbL61rziFT6HTGwnAGMILB4NrUOAEuE8hTLf2h+FgNByE2+EvhwUIsz6EMycgiAdMmYbJ lvtltLMbwuBuOi5k+VEbetoG+xx5AWmMTuS0kum5LIB4HtY2mPcRpxY+jIr4qoN6I0JbRiRA PoSx41KOkfDBpUwv8DChhhJiGvXAxbT97geM98Xjvyw75Y+hQAjRbxd+cJ/5NJ6tt/nR/iF8 l8UcwvupNOEK1Nf7Yi9AVrj5qGPToDOH0gaSpSxuZQJzbcGJDlIJGmBlZfDPVzK+Luu0MTBy u0R4SqqXDEdlub+i7vy0Y8xsENOyKmSUwlCOL6/O8wJ2kkSVQQlnW4MszhOZuKfZOI7KCi7y Io2qs23tgwZMkW1k0P9dn5AXZo8pIqvsF3oTvbsSjXQsVhQ3ggrSYkMl9GWR19PSlJypuAU6 3+vccqG3nDVvA+aTpBqn8pXzJJozsoj0cEGJtOVWT6omD191KF2e8FKmGmQlT75oa+7V8iQe VtmwY9+eh9q0jvwCDvJxprJ0ktdFLMuVg6X6iRX9KQdHRf3QwdLCVwpx/SAdrB2k5cAeTY6F 3voUCWwbMFYN2PShRRSoreu1DybYZdv31TF7dx3XqR+tUV8uzU0JvLCO718CTaMxOlLypyq+ lazPuULSzRWyuUKeys5f3T82V8h/XwL/zBWyGNUVeWa22pVZJoveXpQlE2mndOJx0RC57+3l k/Miz6973wyIEaWBBfP61iSHeUhwbEZMpmE7EU2iEk5kXI3zTJvpkd/MTMoo4FYnHwkUIPjR KqhGWNVMGbU7RJcSOPupwUEIx86x8xun2NUuZW5kc3RyZWFtCmVuZG9iagoyNTkgMCBvYmoK Njk0CmVuZG9iagoyNTcgMCBvYmoKPDwKL1R5cGUgL1BhZ2UKL01lZGlhQm94IFswIDAgNjEy IDc5Ml0KL1BhcmVudCAyIDAgUgovUmVzb3VyY2VzIDw8IC9Qcm9jU2V0IFsvUERGIC9UZXh0 XQovRm9udCA8PAovUjIzIDIzIDAgUgovUjkgOSAwIFIKPj4KPj4KL0NvbnRlbnRzIDI1OCAw IFIKPj4KZW5kb2JqCjI2MSAwIG9iago8PC9MZW5ndGggMjYyIDAgUi9GaWx0ZXIgL0ZsYXRl RGVjb2RlPj4Kc3RyZWFtCnictVhdk+M0Fn3Pr9DbslWx2pJsy+ZtWHpgepmm6Q68UBS4bSUx bVvBduhp/jR/gXv1YTtOmmGXoqam0rGupftx7rlHCSkjIf5zn0Wz+mX1C2Hmmf8oGvLZZnV1 nxHGyGa7YiQwq0RyIiNBNs0n72431/e315t/b35eJTFlSUo2z6uYUxknYLopPwk+v3/zdkOu PxyqTvWfomGINiySNIy5NXpQh0E1j6ojPAwZ2jCZUinc8vu8K/bj0tW9dA4FAqziiAQiQbO7 d+/Jd2ghQprJOLMvq66vdLsmxscopOC5W3k5qDW5V73qcCmAXMCuxSqCkxPubH5VzuNixULK ZWQfl2vyn70qnvpjY13yOQpYGEPwkgRMoOHnqi+66lGVJH/U/pgkxv0SQcPXzmHuMV0EnKWU pywlAc+oifnbtiryfiDfHvrBhJFENJUydbHnDblV1W7/qDvypiyNRSZoFiY+O32/DEAIKtPY B7DZK5LDm2BI9JYM8PX+7i2B/Y54JJ7QuhNwo5ia2FiW0TiULojNFFsElQnd2bDVVndNPuAH 7Fz140nw5646TRf6FUfzbCHKxoSlbtPWvMYYFaFLQjtMx88e780egUhDmgIOXbjXbaFLVQY+ r6NDLelVMQCSCIRAGSWbub/9Xh/rkjwqk6C6ap+CWhd5PUudTbOIsLsgz1EMVWQcz/zd+sfC 8cusHNaO4RJufTHpPhGZpJngLr51bhIRUpG6rPV6SgSnsYfe45BXLQB02+lmrG+t9dPxsIQf i2KaRskEv/Pu4clf6J5FjOijCQASQkMB2PTg68b3M5plbte87ZtqGLCnevKb6vSaVLtWd/AA ytOpQlWHYem6iMwGo+df6rocqkadusJPcd/oYzsY2IMlye3eC1gyoKA4fRWXzueuudwDR8DY k3kJOcs1jFIHU4gbXbVXd92xVaQf8gE8qM9OlzTxVPv66WvzGjoqM2fc9qND9o3nE1CoQrdl T8m77cjYwIup9OuDb58EXorHgvmsYgP3aiCDJj+FH7bOaS5dlWmcmROBziSPXPK22y351zwC NyeoHNlqPbXySTCQqwulgZJzwbKPUkanHWVkEIR1ZZjhLoJixe4cCKuBds53yrf8HiI2xbIV ArxUNSnytlC1MjgPWCppyiOfoscXY54fDp0+dBW+ZM2BNXbzkruD1si1mFNA9xEIqSh0V6Ip 5NZyzEHXVeFCl8yGngrKndMvdAwmcM9HjGM8+Qvy1rGHA56rYU/KKq8D3QalavK2NGTWr/G0 3JeRG9Qg9LgnZD1vdD9+qtJimyU0ydIR28Z5R5NAaPbUg+oqXbo4OPAMC0dSPk9KTy/RKUR2 kU7/9pclHyeGj2/1gHwP8wujQeibQQflzoAVXAqgFxpsckhxndsJjSztGWOncPLlre33q7sf v/7V7JHAHuGoYLqqVD++awfVmdVYUhb5tsnrM6rjwDChmLju9mi0FfDYF96DkPnG0DBSljFy uz6jwnbcojnWg52Nuw7exTbvCbCFmyKVDcXVaekaYs979X62kYsqjvx0xp1zJ1jAnVfVytjs gYxphK87p9/qk35nNIqZa/ftHKuhdBxilUhp9NrBDPpeKfJwMvQX0UQJECZKvWSZ5xsTUIYg 9mk22XnQRxsriI7IV6BQy6hSOA4L7GKZ9v1ZoxCBTYpRlakeGqnHaYgqKj/TTRwEacg+OqDa 3ZQVgeuOGs9FwJRyHoOUTOVU0psTGkiF2wV89oEDJ4tZ4KMoFZIKKacywy2DUtIu8oIQiae8 GP7C4D3+esvEJj/91Jq9ag1jQjTQQsA3dY3Jeja5kIymvtPyrpzhu8yHfNflTW8yW9kp5u2d CxfGDmc0zOTHx05px86U7FeFKjQV+G3OFwkAZxRChbKy2c8kM3VRsbSmaAFIfY7zNeCJvWYp 4gXug0lS8MbpUyfEz2Tuhf49R7uh5gncDGOS4lVww9CX/AK4D1bp/Dm6LyFyzip2TIx9Jmia pv8v3JKE8iT5u3ArNSy2eiAObyCjhOfu1kgkj0VQWMwPhhMoLoYdEwCxMDq5P5xdGQzEThD8 vFftZQnLAJYfI4h/Hq5TRb0iDXiYUiGAYWITKWIyxsvXF/5i8LyKGVzpo2lqPIDs9OVP4GbB +FT+r7B498f6DJMMLx7xjMrf9G4UXLy6w6yJsz9Rll6u3sxkJFzKvQZCEr8ip4KG5B0IQd0c NAoxEIkaFqFoDdxrZpOWkuu82OOftsHBEdzWIXTC5fPcJ5g2YhpEk/A3gj8ddQC2HcIb1Z67 fZAHB25Ugvhwai946i7BnjF8wkxbGPfgcpAKNrpXWg5FpR35n2e2qkMIDC8HZX5gmIkKPLOf 3CJg11W+0UAzE5v4OJrA9wHtwO3cer9IskHZ9YZ8s2KkWkUEbhfkBv4DT8SQI6CRJJL40YwP pH1Qrx6Wjyab9NwmXdpk5zbZ0oaF50b+2cyKXbBiZ1b8ghU/sxIXrMSZVXTBKoIxd2oV2ydo 9b/8ksjND4lvVduq7upLqHltyprElIeeoV+uQF0/dlo/Xf3XLALfiHgErhHFDH91BBrDO2OC y47c67z3Km7qieeVYRbutN/IK9/fza+7MMg8dQFbSfnDiJ9vVn8A/BOn/mVuZHN0cmVhbQpl bmRvYmoKMjYyIDAgb2JqCjE5NzEKZW5kb2JqCjI2MCAwIG9iago8PAovVHlwZSAvUGFnZQov TWVkaWFCb3ggWzAgMCA2MTIgNzkyXQovUGFyZW50IDIgMCBSCi9SZXNvdXJjZXMgPDwgL1By b2NTZXQgWy9QREYgL1RleHRdCi9Gb250IDw8Ci9SMzQgMzQgMCBSCi9SOSA5IDAgUgovUjcg NyAwIFIKPj4KPj4KL0NvbnRlbnRzIDI2MSAwIFIKPj4KZW5kb2JqCjI2NCAwIG9iago8PC9M ZW5ndGggMjY1IDAgUi9GaWx0ZXIgL0ZsYXRlRGVjb2RlPj4Kc3RyZWFtCniczZlbU+PIFYDf /Sv6kdmyG/VVUt4mG4Zlk9liwVU8hDwIuQHv2JJXEsOQ3zA/Oqcvutin8exsqFSKoozVR31O f+cqlFBGEvsTPsvt7PfZ74S5a/1HuSV/Xc5Or3LCGFnezxhZuFWScpJKQZbbk4tflmdXv5wt 3y1/m2lFmc7I8nmmOE2VBtHl6mTxt6v3H5bk7Mtu3Zj2L1YwsTJMpjRR3Atdm11ntnemITxJ mJVhaUZTEZY/Fk35OCwtBKwpSRZC28Xlo2kMKeC3e7bLVjdZljOlqEx57neoPwfF5YwJuK78 5WKzXpGHpn7akdZ0pHvZBRNPr9Jw6AUgyjN740JnNJdpThY8p071zXq6axZOvFmVRbMi541d lJoqxXorQM+16byCnupCgKEMRBZMhPOQ53XYZLRt3ZLG7AChqTqzIncvpANB+AJYyfZp063L ou1IU1QPhizc4p2xmgTPaCalt+BhXVXr6oHU91bC0wzrQf24VbFagbo2bLmu3J7eoH7pq9ms SFGt3BIY9/UL2ZjqoXsMCkbDPKigI7rztmg/9Xe7fcMWHweDzp3u9/7mOTH0gRLOJU3sz6kk 93UzBsDzqO7i8rOk5KwoH4foU4KmOg1uidDeFi+krKuuAOPqypC6IdsaQN+e/DD/YX51efuO tPVTUxqyWYNl4IZmbVo4ikPa7x70mzWco3GH+bm2Gzbksnmq/L0tnQYt2MxdaL2/PRljS1Kh QsS+qv7F2VxXmxfi/MpURlki/F1frBRoLiKR5fQzntKUeeGbR1NZD0OUdTXcYm32kZJALui0 P9bEgjkcDgLU5o91W1jxZnlrtIQ0SoM1NoxbwGWJgBmdaSw6+DDezMaUZu0PAUVChts+28Dt muLeRXVKwZzgwK+l9T0pNhtvp7L1YYhod9IW8Ox2bofa6W13plx/hTNeXU4dwKBsqL5q0JvR B4pmWUiiAz7el1N/FNM4cRScXZaeU7JgKYOcF0OAfBn1JJT35eIoJlDddvVuwirlVAs5YdU+ QdXsgWm7sRiAOa8vuBQ00boPum9E92Oxf4yECuFKOdTDvK/Vn6EOD6fxlV7ThKc9OnLtdl6E NPZ117ukLwsh8fcdwxNJdZb5beajCnC1SnN9uH0IhJzCfT3mXuVHqDSLf4ATJ7rvnzabg9p1 cTlYZEvcXQ1L9vrNj+771eWS3K07a+5ecetePSOjB62Fq7GX+HYBbYT3tdp1CxelZaRrDF5g zDXboP1DvRfNEGYqpHVzMQ2yJA3IoDbOIWB9bZ2oizScgrguyhNN+bSBAijcNab9wseaLTFp etgD9lrIcS/80Uax5469puG7QF/7wmEP673NgvPbd3P443p+Pm92HeSDtdB938+NPVVjFzha 68cAsHdqOqQe7L3vZBsf41AQRCKVH1z11IKPQJ9Tehp0buHIxYOxAVjZCOzTl7mEyhnNkpCX z8UYHBA8LARHs2pDKvbNFZqAhAIpptE+lFLHlZKLLhT9BEatg5I/1K/bE0CzKcpP4D441H7V z2naT1NHq3441zjLQIeSmd6r/LAIHw8+d69MtTL/dmEMIxfMParPtXZxCeg60j7CKAnR2BhD iZ8th8Z6Z9ww4OpqIO87Y79X0DuUCucNGzqTGLDhWuAQpCGU+DQcvq8MQyyxvom/ZRkefM8E d8PwHt7zOYmUvD9VY/ey6dVj2ityOOXdwSkzKnU/br9asN3ls6qsoYkvMInDOg3znAblQ60O hcEVw4xqFpjbQnE428Nqkuv9NB6ryhulskggL3L53anM3Qb/F5k8SdJYJk+y0hMIzz+DwYGk izRgGOx/PX9R4X5xI6Sx7SHsNWk7b5HQr3v9aFIL296zt07qYML13Oc1PIunmToywfy5kem1 QwkBY2f/9PXNQ9386CNC5vBAM0QEZDIpN6ZohuEh5Ld/Wq6OpPixMSz0+ON9GI0B/10f5lRy 8YeStw/3kCKK2ol+73FszFmZQU3I8/9V1kLjrJvO7rwrusfwdKGmOYyTd5KzuPZ8s/eGMjZm 8Rvn7tmS/DpjZD2TBGKS/Ay/v82UUomdfrVQ9mM7XEj9hc3s+vDSKJNhmexQJscy+aEMlGMk 1F+bSLGIFENSPCLFkZSISAkkJSNSEkmpiJRCUjoihaizCHaGuLMIeIbIswh6htjzCHuO2PMI e47Y8wh7jtjzCHuO2PMIe47Y8wh7jtjzCHuO2PMIe47Y8wh7jtjzCHuO2IsIe4HYiwh7gdiL CHuB2IsIe4HYiwh7gdiLCHuB2IsIe4HYiwh7gdiLCHuB2IsIe4HYywh7idjLCHuJ2MsIe4nY ywh7idjLCHuJ2MsIe4nYywh7idjLCHuJ2MsIe4nYywh7idirCHuF2KsIe4XYqwh7hdirCHuF 2KsIe4XYqwh7hdirCHuF2KsIe4XYqwh7hdirCHuF2OsIe43Y6wh7jdjrCHuN2OsIe43Y6wh7 jdjrCHuN2OsIe43Y6wh7jdjrCHuN2OsIe43YpxH2KWKfRtinSYqk0kHqe150cvee84OpKtOc /gTj48aEl518eIR5Of2p3tw1df3p9O9ukcGDjhpe+vl/N9mXopyF5xtY9qtmU7Tk2pTduq6m L694AuM7DzO4pDmFWZ+Sf14Ob7BgvGfD//Ph4YKk2b+GqfXX2X8A1sfGC2VuZHN0cmVhbQpl bmRvYmoKMjY1IDAgb2JqCjE5OTgKZW5kb2JqCjI2MyAwIG9iago8PAovVHlwZSAvUGFnZQov TWVkaWFCb3ggWzAgMCA2MTIgNzkyXQovUGFyZW50IDIgMCBSCi9SZXNvdXJjZXMgPDwgL1By b2NTZXQgWy9QREYgL1RleHRdCi9Gb250IDw8Ci9SOSA5IDAgUgovUjcgNyAwIFIKPj4KPj4K L0NvbnRlbnRzIDI2NCAwIFIKPj4KZW5kb2JqCjI2NyAwIG9iago8PC9MZW5ndGggMjY4IDAg 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 XQovUGFyZW50IDIgMCBSCi9SZXNvdXJjZXMgPDwgL1Byb2NTZXQgWy9QREYgL1RleHRdCi9G b250IDw8Ci9SMzQgMzQgMCBSCi9SOSA5IDAgUgovUjcgNyAwIFIKPj4KPj4KL0NvbnRlbnRz IDI2NyAwIFIKPj4KZW5kb2JqCjI3MCAwIG9iago8PC9MZW5ndGggMjcxIDAgUi9GaWx0ZXIg L0ZsYXRlRGVjb2RlPj4Kc3RyZWFtCnic7VjLduO4Ed3rK7B0JyJMAHwmq07G7fHkuOORNcki zoKmYItpkdSQVLud40/of80v5BYeJKWxT06Szi7HC1oEWKi6VXWrCiEXLKQ/9yzrxc+Ln5kw 7/yjrNnv1ovzVc6EYOuHhWCBWWWpZGmk2Lo+u/q4vlh9vFi/W/9tkcRcJBlbPy1iydM4wdb1 5iz4bvX+w5pdfNlXne5/QxtD2iOilIextJtu9X7Q9b3umAxDQXtEmvFUueXroiu349L5KnUK 0TEkK1DYHUcsUAltj3jOYy45u+zG42LB0yiy4trDnt3qgX3oisdaN0MxVG1jJXtTA7c/EAk3 Mv+81Q27p00q4jJPcyvqUO02VfPICvZDWzXsnN10h0azh7bDq303VOVhV3Ss0dXj9r49GH2s 1uVChpAUO0HLwutaLnBmmie5V3YALP22Pew2bOieWdFsWNWUu8NG48mGraYPAxnHXBEGQtFn te774lGzomf1AeC1D7QTH0C12hjMqgF66U3PhpaVFoAA8ZAY5UKuFOEmJcSq2OryWT+zYW6C gVYKrhLnqXaYrMDrMLOvcfIIAam0b/u+ut9pblxN9gq7cb2telbV+12le6OQSiMsjmYVGwN3 C4wfO/JjDz8S2rqAkfVhB8SLfnCLw7YY2Bbnzc3e68bIGLqi6esKiuAlQLWKu3OeqmELcI1U OsICbjy927FO77SDS1ogRKR4KJwRn4sJBAAaOk82A+thf6nZroKKCLwOVhoIAhErLuQUbn+E Sqyzvidd8GtnIySPuMilw5UcXLcHSIZ/J+t7hLQ2/m4OJquw6o6zmNQH7LrXPo6M7YGX7COo eIahPYRSmO2L8hPtykKeRbmzSA9OXtFpr18ieBZmo36di1FWF1+q+lCzq5tRlpARz2IvivXV 3zVnVw2rW7KBohbWGJVdiCcpj8NRwblTSVnY0yNwSF1EtEFjv8PBNhMs0OEE8XqroTXCrYCf aS1OuIqEM+1LCUoiyQb9MdacvUiXoajIR3dnv1pe3r2z6X/q3uejdM/ASspK5+spQiSXUoxp Mp50nI6BijMe5srbrr/MQ0x6rfdwmEPMRQ/FPh66N17sdKkrAz34LY5SF68+rpESDwYJAWr2 ufu1NAlGIvu9LquveuO0bK1n+y3cT9yktc+jQMKsTCSjqwZ2/dPteuQtQH53dru8XHb7AeBZ 0vwFejaxj4GQSJRcKM9HxyhkDgZ86oQZb01osE0LdBrLUognRLwSU873W+LCEaTpVHBrrqJ8 fqp36xz+t9yKIDNWIQ3fMjuYc4IFC2rOY3qMaKMaCh6oMTuh+zHIpQnxqwf4aPfMPr5yrD/q q8uXwmdoQHm4Oa5nTvzSVUDKceV8cJjjaynbLTvViH/rtjO+aF5TxRQgEPuSBDVzbxkYym3b 9pr2+OihHV87wPXxiLPvzsB2ugMF7mBzX+OBsMcpoByIt6nBbZ1XETU5KPRRBkVlTN//w0oT 4f9//Ps/XmnKHLSRb8kSzt7DBZ1vEZ4WiURa+fJ47TqWD7QcZTwPfW9kWP6kPxOCgiw9onMn 3kcrcXuPMGdPFFbFrD5uiqEYq5CM0OuIZCxD+OoVBohwXJq8zQCeejatoVdFa7bqF+6FUMo3 Au1EE9PGw/DYEhEbvjY0nIQ8zDy3FKVNfJVTpzAmftl2COx963qa1iSHSTEEPujT16ei79uy QluwsRXNELdhHpcRUvkuHx1fRLolPM7znE7K6aRQSGW0IrzLKe3ofRQnaZa//t9oazAJNB/+ Ovgv/46y/+Xm6pr9SXcvbP28N1CJnGfWPzF37n1ZTcib1aeF5zGN0PkMdF5oRyrJyCdTJl0Z /P1Wl596NDAvY/gGMg959E3NyaXFfjLrclbiRjtM+X1vOQ0uvmjKFl1ccGne267o7p2haqSH M8DoHURSfmOV05zLY5VvR5WNOW6MoXL8S5V/amxKHimtwv+tykJl1r+TzqsXdq1REUuT2SAX N9DcdPoB7VMD5eeONxu+qUq5OPX89eR5VHtpRi2MjCNTQdkjnczat9Rp4nTqKKTlWZNmxksh z1NP0Wg00SwvmWmAQKhp5MkOybhkK8ouT6jC8CnG+0Tmr/ZxqYsZdAQ+607ZH6mQxqm39jvd l111j+wt7ttj3k4wl711zti2HRsb5EA7E+ApmVub7T0CuFrOrxAomI258WxuQHSf6KoUjzPg 5HRdj02+60mItJ+2VWk5+ag0iQxddDpNSE/2JY+lRxe9lW9tgBZdDThRXfWI4Yva8rEu2klT hpjL85k6NHCbIeiYRZzYJY3rY9+PlpAquThFDA3UWIhv/TUHslY47nGpb8ImReOavo0Wxv18 QuvW8oaH6qFr65M6/tgVtWvzX7F5hBJtBlf+uglQAnTqrdEecLZ286Xf4862lOSGn2oEmtB6 POkOhEQhCJN/NR80dvaaXYw0F1NEAll/DXJMjoGnTRoxdWnG0lfdIDKBtml2a7U6Rle6UFrd rF2BFP7iJrivTOtTMMHo38+m1CN0c9+fFbsDjef2Huk/8oFMEiT3cadFjb4dGTFf8VCOnneN FKjEa/1kZ4PVjRk1Z9OCN0emPJEn9ojfsupNlUcFmD1NhjDYT23uuFsr3LszDrHD88myGr2H pIyz0H1qx8soBENGo0E4LHQpiGwBaUh6+0E3je7Ov0fq2skuwULo8+P5/Pt2d9+17afzP7jL FaXGtvhgnCSS0AQOtSvJdFend0jcWxstkwF0W4c2zDvBteV/uRnLiEJblIzsgiY6C/9Kixdr 9uPix8U/AXE2CGJlbmRzdHJlYW0KZW5kb2JqCjI3MSAwIG9iagoyMDk1CmVuZG9iagoyNjkg MCBvYmoKPDwKL1R5cGUgL1BhZ2UKL01lZGlhQm94IFswIDAgNjEyIDc5Ml0KL1BhcmVudCAy IDAgUgovUmVzb3VyY2VzIDw8IC9Qcm9jU2V0IFsvUERGIC9UZXh0XQovRm9udCA8PAovUjM0 IDM0IDAgUgovUjIzIDIzIDAgUgovUjkgOSAwIFIKL1I3IDcgMCBSCj4+Cj4+Ci9Db250ZW50 cyAyNzAgMCBSCj4+CmVuZG9iagoyNzMgMCBvYmoKPDwvTGVuZ3RoIDI3NCAwIFIvRmlsdGVy IC9GbGF0ZURlY29kZT4+CnN0cmVhbQp4nM1X23LbNhB911fg0cmYMHEhSOTNnTpy0tpVLPap 7gNFwTITimR4seJ+Qz+6CxDgRfLkMnnpeDySiMXu2bNnF6CPCfL1n/1M94vPi8+ImGfuI92j X+LFxZ1EhKD4YUGQZ1ZRSFHIGYr3Z+9u46u726v4VfxxIQJMRITiwyKgOAwEmMbbM+/Xu8u3 Mbr6UmW1at5oQ1/bEB5iP6C90VpVrdpvVI2o7xNtQ8IIh8wu3yR1+jgsXdyFFpDHwCrgyGPC mKm2zlK0qrUVD7AkTPYO1IMyD0mECRHuYZGq3p8c/EnsMz9CHmHaYlXrjdoOPWnLIOh3Jnmn UNI02a5QW9SWqH1UqCuyNGlaVJddmxU7VNVlW6ZlDotJq39pD5T5OALnxs1TttXbYa/eo7Sj 67JptZ1HowAMqUOSbLfAXoOP8qcB8qjEk+znCdEQCuF8xC+AbJNNrtDebMVIW/TfUdagrNDm bYOSqsphm7Z8Odce8STUkHvXqO1LoKHwYMYx8cdVZhFbklfvbpDRFRNYBrZm2V7VzVHRBMcc 1j0ieiJgo7e+QfskK1r4bwzihzLPTQUI5diXpHd3MBwYp+dQULTNmrRrALNOvlFpm5UFApQY Xea5NURJrVBadkW77UsahhDfKvVQGC64T0CXzNFhN3oaidmiqYrTBZdYMmlTe05sb6QLwjBh TrsQrVGtZj6xKvQxZ1xOpVhse0SohwSIBHUyPxR67z+qLiHFFh0eM+ilqgRyjuEQEKcD045g CNYt0T+uoO55/oxAI7sdtGtSjA4O0D+MYTbmnRgCMfrjYWh7SJlHkY0CmOtGnbDCofMd+ud0 zgq3aRfoYwcChJqppMkA0UahbF/laq+KFuoHC4YRr6uGAh8eoZmNGpJNU+bQcqZYMAOFCewR P8QwSix69WUM7WNKLCKYY8/Gpe6Rpi1rHc0UYF8l5ofpBxKAkiM7BLUMASyqVZJ7Zm+al+mn c7Qxpn6EKbXuO1MWlCfFrkt2SguxfdSRKpVm/6aJZrTvt1DAsBq5bppur5p+2hwxGhKts+ir jE7kA0XUjq16DsYTwTR03NfbxknKdC8gkJhFZJxFy7zcJLltX5ipNDpp32EcEG7Wh/a9VtCp divHkotJ679B1/FR9weytxnbH2QJ4la1ER0nmFCntwQG+f3Zu/tXb3rYol+bbS1UtnvclDUY 3lrDEaweXc741hnmmZMR0aSaw8/Nqyc105CjsIBZ3qcIjPGjFG9/N8ApFsIBjwHMOeA+yp0I CMrFPAHddHNd+xiqCb2n6zrI+Emhu6lGTHdSMPWtZlf3ZyN2igMn0LvVCS0w73AUiEkR789e n78+16bovclG4MAlD6Onvw489xRABUM/nFFwFTsHZpwJDCPDGjgaPBKBekP6YsxV3RXK7eXC H078rR74sRWGCKNZ1NVqFjaiWEp+FHbCPqWgHxbM2V/CkViBdpZf1Y4Os3TcMArDxSH5bnKW AxESupsek7+csSAonLTBD7Ew+ic+w2H0AvpLOCnrtnckBOBkM0eXJrkAUzmR8cTxVMg+xb7P 5lSu4XQwDbv+BpfrGZcRC36IyvWUStA5p/LU+YzKcGii76FyPaMS7io+OfU/oxIOISKjb1I5 dwzjghwDPzeXXhrBkr3wVK1LZkZNJE8GraPGuIADREQicj7GsBKGGj8uxtfCGg4Dgvl4N/9O Dmt7swklOQEy7coQKJb/85n4Z9W0ta21pG7GqGTfqxguwcK9+2gV9ycFx4GgM27ex6PP446C 9x9Cf2Y2DRgDBoHlz2FcngKEy2YodFwYLybwW1UUqr64hstUruwLJR0a9vniusw3dVl+uvjN LMK1lLmRVnbmZkwE081pXi+FXraYc7gNrvvb/PS6CnXHjNrSmncR9NdquKmyEA50J1J9E4vI 33rxKkYfFh8W/wFgWvU8ZW5kc3RyZWFtCmVuZG9iagoyNzQgMCBvYmoKMTQ1MAplbmRvYmoK MjcyIDAgb2JqCjw8Ci9UeXBlIC9QYWdlCi9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCi9QYXJl bnQgMiAwIFIKL1Jlc291cmNlcyA8PCAvUHJvY1NldCBbL1BERiAvVGV4dF0KL0ZvbnQgPDwK L1I5IDkgMCBSCi9SNyA3IDAgUgo+Pgo+PgovQ29udGVudHMgMjczIDAgUgo+PgplbmRvYmoK Mjc2IDAgb2JqCjw8L0xlbmd0aCAyNzcgMCBSL0ZpbHRlciAvRmxhdGVEZWNvZGU+PgpzdHJl YW0KeJylWNty4zYSfddX4NGekmDcAfpttsYZx0kcx9YmD+utFC3BFnclUiEpe52f3l/Yxo0i KWXGnq3UxCWwAfTl9OluEEwRcf/Fv4vN5I/JH4j6tfRnsUF/m0/ObjNEKZo/Tiia+a9IM6QF R/PNyffX84vb64v56fxfEyUxVQbNXyaSYS0ViM6XJ7NPtx+/m6OL/2yL2jbnTpA4GSo0JpIF oTu7be3mwdaIEUKdDNUGax4//5TXi1X3acYlx1KgGVfu4w3suqt29cKi+5O7+1N/xdmtjkoz iWZUYS8K36ef70/R37dNWzsxKTA1Mgu32HyDrtwq01ilq6uiRN46JrBULIoWG1ufo6t5PNBr RYnC3NDD235wn7nE2qTt1m7zdeF3QQBAzcWEYMacW+BubrIo92zD3cRL+M8gr3hfiR8+OgnB sZEqbhuqBSfSjI/UmnrzmcGK0rBp2/YdIxg2Wvcc8/Ozt0JhJkRarutiGTXkBsvMDLzzc9wg aTbQK1wN/shEusDdHaKWoDZjymBDet782KJ2ZdGn2wZVNart2kb/MS2dewzBXAP8guPyzm0U PEbiPWWLPjaNrVv0m48+g0/JaUVZ2hrOLtev58FxVINNPcftgTb9XFe7LdrmRY2ir7+Aulv7 VDSt29xW2+AuzTHExfTddXs3CpsTMQgc4WQApxR3V3DvIjCdC2ciRFhGDxd7uxmkV4wtXIB+ 9V4HmNCEwny9s83I7aAYVzzbK//bypaodSo2KK8tatq8bu0yxCD+mLrIeDzhEAuqFSYmmvfa iwXYxHm83h1mIagVWtpHHw4KWOmU261b9Lw/9MUloNCirztG81XRdIwCrEAVi7c2dtEWVYma 3WaT18WftgElqyaAhlMDYGFgJXey8X7QLuP64PrDa4ehdimcGWfeDLJAUJqloPWj4YT0PhrX +caeo0u7XlcBERnBkmU9RACwLucBDBdz9AuQbzEBVRAwJ7qCfwAiIAPAmaRUuL+biSRisLKe 3P0lp3faU0wo8yomdjcZJDlHklDMHMf/mvdBJSL7gCe8FQGt3SFARFkytLcRYqshtI73h0dA XVjnZe5i1ZkaDROZGhmWVpxhnZA4EBJftT7hPZOguPBqjawXRgTrfYx+h9wvqiXixAOVYOHJ mmoIq9Yd4lAQKxb7KgdFoePrEkggYEoCyesOU+gRsmnlsbCxTZM/RYwNnKGzsZ1x5S12Aka5 kceiLFQW7JzXXbCEwZn2wcogmIkfn55sbZe/B398suv8Fcm9nVBJld7nnic5yFyqYx29zctl tYE8XKK9HwzHWqSMjX4oyqIt8rWHVfoe8/Sy7yJgavRQVS3wcBVVj2JtHXVFww3ANPlAsLbu gKJ8QqUtnlYP4Ry4VHQ0FHMdeBY861ogwFbmuJ25r/8Nx1Hyf/0YhJnJcZjjigszJ0QPpdJK P+UZ0NFQKq30pcbnH6ePA7VGpPMW8PXbRgHqqi6tOriH0mKhPkNUU2GnKiCWqVTenm2fUMGq WEleUQ5sP9wGiOexoZKdJDRUe04OwIVKxXRqD2ztKwHYqGSC5cJBDf43UktIONdkX1NsQB+Q GFW5DMlN4WZBYnZAc9O8Qo+wGcONQAayL+Ctl+LCuF6F+n6q8jcQ4NzouRfrsQ13QmMVtZvt tr5yh/KOiiblns9SyJYacvb+hEznYStASEVP1UfYANpH2LOtD8KXQWv65QCWzvxysaqrsvjT 1wIc6jR0iRycEfPV9yI5JGu/1xAKa5UavJcqWkmz6Nm67t9IdJxKDjLfmb+0LXQNrp/JXXOz hVg5kQBV+O4B+lK0q6IcxUm4OGn6Rl4YB435oA28zTXWWRpMjnv7C21I3PzWNuQ6+eDH4UxC oVYrao6GTosYOsjgOCBlWAjVGwGgg7n+MQ4TqkMddLnX0+/vT3utTeQUzgwbMlFa+cZGJoPN sATd3rvbGIBQlibY3kY40byvieGUj42KKz165c7TIyH6VcsTiMigf0lGw+zU0exltV66JPfJ AXHiJpr2WFebRMLhI0wNPEbc7YrTHTgmbYFjkN8Wjv5pv7lvNsvUyKK04usYTAFDqbTSjzjN 6EgqrfSlxucfR8+BWiPMvbeOwfAGvbhrm4A/k3uBP4E5Bn5BzaragRsfumHn/oRDOfswKAz3 p1P05HOPu3IlY4Y+O/bJ03jkRnxtDscjN5/I/XiCqsfAndDbZpQm7qREDsrPMeIgb2SM5jw8 57wGdFACc7RQg8S/gDT/MP0wvb3xnaDCpnvUcMk/RUHg8/7H3fhHLFjA86nqbNvjxMGYJCOw xZVvJQ5oHmDkY9DjvJ86CIfm4ZA6DPRp7sL3kAejZGxYXOljmpixUFz5BvIIhkPEg+FXZzce 3fP4XMIACiAPTbDkvdceTwh+ipVYmVSMU9/tDoh1JQ4h4VKqMVGHDxdATxnfQy6QzVVVlGc3 9a60f8U4NOMjN6QV3xNnkg+l0kofKlS7qagvlVb6UuPzj8PuQK0RWN/LOFTLMKjdWes6lbxY N5Dr/hHyg39ndNNTG+koZqZymbkPU7vK29DnLda7pR/Fjng2EMQsbp5RF3d3wnfWPZGdXUKf Eh7fFGhE0hj7egb3PtRV9e8z/+CpKLRuqYOpds9BHxjoGI19N3yOzdg6b9BdeLAZvPhQwAKL qeRfwNA/brqRE7ocStNjksOZYf/sQPHL5H+Emp7JZW5kc3RyZWFtCmVuZG9iagoyNzcgMCBv YmoKMjAyNQplbmRvYmoKMjc1IDAgb2JqCjw8Ci9UeXBlIC9QYWdlCi9NZWRpYUJveCBbMCAw IDYxMiA3OTJdCi9QYXJlbnQgMiAwIFIKL1Jlc291cmNlcyA8PCAvUHJvY1NldCBbL1BERiAv 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 7MfQ667L1lvoWAHCjWIxp9JVSd08YMgmRV49oIErek8tPfLYZ9uBpMxPjnVfWCvCABjA2J6a kqKu7qGSvtc+KsQJTcPEPyZYbs9AKmNfBct2p6FP3w5aVttv/TNCbp8R1krjhDZU/zbYwNEV fCPWRhjCp9zzm0h9AI3fdfS32ewlggozJgFJg0HHr4pkU78vBeZmXbXOzCKzVqCXBA7OtM37 aDjv3xxTcmZV3nfMpeulIHMlEvSHBrO+0QBTw9+GRBjvA4gMybStdekucxq0Wx0CnddlBghp gIZdPrVNYkTk/k3oGRwsvsPBd4360kNj/KLTVmtrvU/cLUjwLq96A3ONgniLBMc82LUefbnm jEPbyOve6qwHZCkGtx36QEcaJxVKJ+5o2xPwE2KefzbQ5YlnKi4FlX6+f+z2FhpCZFZhS695 raaxzih90CbbddSqaEidbsIxNUR56F9u0kZb4lw+O2mbprWfhBFU3FUYV+qaU+XOJJ5qYU7W 2Uetruk1929zjRll9s3TfSRzzEd0v76zKmoV0iH0727ZJ2hnOdArt7C1N5EhtwDgr+vLpEQq 2BOKWg9Uvhg1E5MiGYpx0rfANAHsL/Stepfdu6lCDuBrCsK2e6MNNeeB16exP4+eTa6CGsy5 426fFBIwG8ghLSx6MZ22bM/AHKyglyXhOwxJX2uJjkG27nqTKQ9VbaMQIWDu2keLATYz0DVF lI4HwZujaYIOjOLF6C1Rsl47ODEaXvWG6QVtCJ1XDlVrFL459n20B/FGVbadyuz0CUZkH/o3 R78q/Xhz+jtgpDAejmFS4HH1+ynK+rap64fTv5pNQLSIpO8oNhVj1C43byqIDbadWQV67TVA 3OnI3cSDBKeCu/8sAt4xSv51Ocw3evBmwwMX2mUq/j3woT8X/wN9zs+8ZW5kc3RyZWFtCmVu ZG9iagoyODAgMCBvYmoKMjM4OAplbmRvYmoKMjc4IDAgb2JqCjw8Ci9UeXBlIC9QYWdlCi9N ZWRpYUJveCBbMCAwIDYxMiA3OTJdCi9QYXJlbnQgMiAwIFIKL1Jlc291cmNlcyA8PCAvUHJv Y1NldCBbL1BERiAvVGV4dF0KL0ZvbnQgPDwKL1I5IDkgMCBSCi9SNyA3IDAgUgo+Pgo+Pgov Q29udGVudHMgMjc5IDAgUgo+PgplbmRvYmoKMjgyIDAgb2JqCjw8L0xlbmd0aCAyODMgMCBS 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 //8cyaH396IDTWIiZo8q/mEE+VeQbCYFrzbQbdZNNyXsr96eQ0HSAe5rU+2ypjsU0LfGGrIS pmfvNlAJoRl2rzyzpVqzMw7q1LJybF0+221noQPncE8fvowX1WXOiaaLdMaRp72T+EwSRb+S yelLgn0dVjZNyzeF+bMYQJlJOc2hmKYQyIBpzzTTZE6oIAV+YhEF5XBVgCJfqGY0DFE2X+5l K/cIHh4KECACSDVIpLMJky1C4Pvk1iEF1pTNbx1BuOOnyKE+74CAXQZcjfJ+2ZPADrx/79rq zYDzebLX8Vu8Tzwg2iQ5AkIyAoHJhMyt4siU/Cj1Qj5axZGp1dL//UR6tK0F/T5VtKn7v46f TFWZ9uwNiFcRk0KTWCZ/nr2pi+u2rj+dvQ1vXYzFe3h98N0m3GOopx4i7efQeBZZhy7MLvJq 1FRqG3wa0Cswweif5+MtkWBJIiJsH6f5v4a8/L76L6qaTo9lbmRzdHJlYW0KZW5kb2JqCjI4 MyAwIG9iagoyMTY1CmVuZG9iagoyODEgMCBvYmoKPDwKL1R5cGUgL1BhZ2UKL01lZGlhQm94 IFswIDAgNjEyIDc5Ml0KL1BhcmVudCAyIDAgUgovUmVzb3VyY2VzIDw8IC9Qcm9jU2V0IFsv UERGIC9UZXh0XQovRm9udCA8PAovUjkgOSAwIFIKL1I3IDcgMCBSCj4+Cj4+Ci9Db250ZW50 cyAyODIgMCBSCj4+CmVuZG9iagoyODUgMCBvYmoKPDwvTGVuZ3RoIDI4NiAwIFIvRmlsdGVy IC9GbGF0ZURlY29kZT4+CnN0cmVhbQp4nI1Y23LbRhJ951d05WHjVImjuQAYIC8xrUgRN2tH EbmJU4ofQHAkIiYBGQOay3/wR2/PlYCspFR+kIy5dZ8+3X1alDCg5p//We0mnyafgNlv4Ue1 gzfLyfltAYzB8n7CYGpXQXKQiYDl7tX83fLy9t3l8rvlX5MsJSzLYXmYpJzINMOty/Wr6Y+3 s6slXP7vse6U/t5spGYPSyShKXebFuqxV7uV6oBTysweJnMihV9+W3bVJi6d30pv0FTgrjSB qcjMtpTE5cTaK9AMd8N89s6sCZLCsprwlIjc3z278CbhZ9zP0sJ9bxtdr1VX9jX+9uTZjJM8 kQVMuX+XnV4WZgf3l9/M38Jsve7MaipJQZm/XWkNV+Yrz9BG4b+Wu3p7dDcFzKeMZiRDMKcM f5pNy42CcG+8Js9IwWg+uAa+qO0aDuFlY65b1FBtWq0a6FtYKchhVfca8HMJfVeuVXtv7TLQ ISYswZslc2fvVxErxvBB4Z3pD0o1ZmkqKGKYcLRWmJXHsvpob6PoQx52w33b7coeymYNe62g vYcenfIxii8jNDRGqTy9nJJUenJpXT80ag3N3pBH2yjkjOS58I8t6qZScNgYdz1uwSbGOCl4 9tQohxglaVFExKxrCZVE8jS4tlb+7bZBsFkKn+3jgjARod7ulYaD6hTC63fjK+PIMXwrEdkp crXSZxaabWl5k0kiWOH9eVDBV4Nao4aAyZTIPBh9mJ0Ay0kmAsXc09YhzP3MHpyKAhOCyeDa 1QBsSnLhc8iyynrJc8KS/Gsvm7YHRwSZEc6D0Z9rjUmk1meBbFqpnYoOMmR2iDP6p5p2/7Cx oUyRTJm/5Lq1exHfTHoX1dgNjGeaUm/V57CYJGYN3bCVCf3hIQe7M+ijo64mMUTQc/1rQgpO eJE9z8dQNWyYHbwCiSgKFkAdBT1JMEtkMQo61A2mIMumCJFNXuLAoUSExMbU7xQySJ1FNo+5 hCYyNiwCNab1dttWZY94Y47ft/i/wH4pPeoHV5enDIPGHCNkQgohT1Xnt3KY+hn1nLCxp2hN Z4IGjEsokQguOeyjWGU25ThQ6JGwcEuOCPEQsK+igfnPZYyGLncKdqps6ubBuOKjYwCK6TGb xkSbPc90QwDOXsL0dz7P7tIP5Ak6fu+LwGE8j/DwlD4Dz2pQHlbH50ohx3TyYZ0NSjB+DOiV Gg/vH9sG5peLn2IpzouY1LPHx671aPBwLfYFj/4ICBayaHtmkF6rL8Y25Odd9oHA+/fvTaar 7w27rLX4JPzyMxzqfoMfav3DUzblhCbFy/DiKRvglT7Fy9TPm64eO8IKiloi/0dXegX/1eoZ f570di4ymxixt/N/6O3XCtMJfnkciIRT447uc/5CqsjoeZZS6rjyAoIcULlg06O+Hc8I2LYX pVYiUO6EBmBOa+yBykQvtJiE5FkWW4ytLiP+FZhAAcjjbsjAPIqOI9rpiFdIkvFIvGg6In9V d7qHixYz2f26UJ3tKEYNJgFZt/cJ6xZ7lIDurp1qjGJBcNzZAgt/6EW1owi2Gzgq551EqRL7 wpnr5Yh9LqNMMd12Zx2ATg2b6mEiTUUN1f2g1gRuFOqEBk2I+GJ2CskDDgMTO/VpX5vuj4ir qv5SWTUJf77CBgjfLAbfXMIkOTFt1Vt1606vvwkY/PndmKs0kDT7e+G7UNW+q/sjgv61oD1x 1R6IJJ1tt7a5VG3Td+0Wq67W5QMy9O1spNCEqTA+aH/sny1MKO/mN1pVcCc/GC6Xvl/pYBe+ UamucdqNoY6lQfUboVvukYpNXw9QEpigGJKA0k71m3bt6OAvd6wp8erdI7YLRHzdVnsTErgr kEo/j5sCT1J8NAjB48hDIxeC0NED4mPPz+WA+LCudd/VtjinCd4c0m3fBzbrCtetac4NHEIo jW7cMepKET2FwRTaJZZTwMq9KlfYkxql0NUdKgDyN1SQT6iAbkoXq0iJ2SBS8hQphLHT38Zx RVIcV4rTuKKecgbHvTxlhq2F2fKmRtJcqaZR3bj609iBlqd3Beoy/+6/lvCfcqVhCrdKKzPp ufNuiz+Ltv9uAyNIFnpW7aXMaVRBNREy9XYofykPQ125tpenSCHOYqa9VQ2W8Rs7IZo6FBRi 2X08g4sZFAnlqYuaX/YH762/rztvOCn7niDrfBxxWHDD60e4xhKztYUlRe0sA6WOI5E6DWsB sNNoir7FCj6/nZ/PLxZzXzPsgj/BcM6DCyQ6TtKL/gyLZo19L6M0MMvueqM6N5VhjKQHU22D YMYR2L5IEifSOMlOtR/hGELudJop92FOK8ZVICCZSJrb+3GakQlq8ZC9f21el1Xd1aTtPDop Deg8uFj5Tx7Oa9Mer9vtqmvbjyO3LmpdtbA46l7t9GiFSerpExpafjKZDGiJij0J+lljlYcf o9TwxQJrBU/4aMiwR6c5LtA0RmKBh//dGsFh+JMykYws2ngHXlfG6MAZ83eMKc5iudWmllvn J+Zk5oUwNBzPAwbntpxlaLqIf7vYu8Yoka04uzstLYK6VVusR9gXQkU9iQhBaJisJYG7m9jh MO1ELGnYCSBPP5jFyyX8Ovl18n/Ww810ZW5kc3RyZWFtCmVuZG9iagoyODYgMCBvYmoKMTk0 NQplbmRvYmoKMjg0IDAgb2JqCjw8Ci9UeXBlIC9QYWdlCi9NZWRpYUJveCBbMCAwIDYxMiA3 OTJdCi9QYXJlbnQgMiAwIFIKL1Jlc291cmNlcyA8PCAvUHJvY1NldCBbL1BERiAvVGV4dF0K L0ZvbnQgPDwKL1I5IDkgMCBSCi9SNyA3IDAgUgo+Pgo+PgovQ29udGVudHMgMjg1IDAgUgo+ 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 3tmzWiVczKKJONCqEDy7uXsNQbTFXhceHUBZTOR2786B5IG+MCNiXoQL5jD85gqxPeKqlMTr aimGGt6rBuxGh2pJJcANeW3fM/dVOClMOUjDjqnoRSwZ+r9hqslRgMqJeKjcAXkPK8fdY8Si x4+I/UA2m9UfdVVj5EMTT3Nd1bzE1cgg4P2FgUPSrUm5pfnRdQEn+yOL3zUXDQ1k7X1GjADq u9Q4cLXaj5dyc5gndHARBN9RNEfdJURwMNtguAEnZ6OI70Vb900mHYsSmg8t3Pb00dW13eu0 0N1DiXWVLCXvCxe7+vnHhYutzl7pHng6G3tYqP6bMORxezr4faprEqqxNDj6B4nq1xj7VYGO mtAgCDtgqI7oMXe4hiaMvt7ZOupm6YXeUEJcmePwQS1eLunXk19P/gv47OBQZW5kc3RyZWFt CmVuZG9iagoyODkgMCBvYmoKMjA4NQplbmRvYmoKMjg3IDAgb2JqCjw8Ci9UeXBlIC9QYWdl Ci9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCi9QYXJlbnQgMiAwIFIKL1Jlc291cmNlcyA8PCAv UHJvY1NldCBbL1BERiAvVGV4dF0KL0ZvbnQgPDwKL1IzNCAzNCAwIFIKL1I5IDkgMCBSCi9S NyA3IDAgUgo+Pgo+PgovQ29udGVudHMgMjg4IDAgUgo+PgplbmRvYmoKMjkxIDAgb2JqCjw8 L0xlbmd0aCAyOTIgMCBSL0ZpbHRlciAvRmxhdGVEZWNvZGU+PgpzdHJlYW0KeJy9Wdty2zYQ fddX8NHJUBAWFwLsWxrbtZ1p6sic6UPd0dASmzCRKIeic/mHfnRBEKREiQAlWa49Y814Qe7B 4uzZXQgj8HD5az6ni8HXwVcP9P/qj+nC+zUajMahB+BF/wzAG2qrJ4gnGPWixdn1++hi/P4i ehV9HgQcQSC96PuAEyR4oJZGs7Ph+fjNZeRd/HhM82T1S7kQl2uACYQ5qRbdJY9FsnhIco9g DOUaEBIJasy/x/n0U2MajYUBNKRqFWfekAblMsCosTMNOESEV6+4zmbJj8oalvsrn67MQyDl gjerVZIXb+Nsmszvz177v92/apZXu1d/pwPJEQtDWb0UWX7afnD5HKUBMlACXNqHjJC2bx1E CojiMKxWposk11j86240nCGQR6AhtQcAH7jPhS+pBkUlQ3w/WHcvCYv4EPgcDoKVx9Mvafbx PFkpps2ccQvVKVInwE50vKETl/ue4TYqR9gqVKIXlbCiYlsM38H3p8angimbw8yyPpJhFDbb OYTyhJnTZIpkVbxwuH2OVkQufmlERyQhQJ2EJabAD0hFLxV0AyrWoCaLpMjTaafvHrfdjgMT igC6eTP541tpYAQFUMchyfN0lkyusyLJtZUDClm97XjehQ6kopALYBevpQHHVUBwk3LrmBiI FbeDthB0gSCAAtlHGItKhh1QAFXvbWGKTCVReyaImELh5DElCJN+WJ24GG6SbFsy1+haImXB 52D1qfC5tPPt8mk+q87TGasDypywlLlKIrvFqAXDEZKjYdTSw2kbhO5s1P/9SiqHDMKt4Iw1 paly3ND8Y7oqjCJZ9QjvWe9s0SJgj9a5qhzTYv7z7VIp47TQVcRSQVRHw3qAdFY2oRo2Qx/h g/QrOJsJd77UbZmSIFOgvmerIk/ixc3tXREXSUmn1/74tlxVvk7UMGxnC/2Fzlp+gW3L6D7w rDQDDAgfKptKBg0YfjgYB+dPDmZ8f2ZTHFymV7/idHI3bGppwO3cneWTdDV5SAqdQbH/8IKK 48JxEW0SlKkKFdQbtx6EKnV76LGrjAH2CfPlTpdRobFSgLEyjY+rBHr2WnsXFu8OAp7KO/gU O7znj4W1vzuqx2qCTn1KOhxfxatPk8unbFqky6zLrQAk+jfeue11+Q3EdgJeJfP5cnK1nM8K S8NUOe7bdI9js+Edx7dJni5np29lO/xFljSqKeEgU6cvhrlje+likcxSJaeT5VxV6Dq/XZXR VXIsE8NGY6V4JXfHmA4YljZhfwzCjsHSzzDY7Wd2kFkbmCORtfoGZkPG/XrqwU0uptm/WaqA tcat+7PTxo2sxaga9LpLQ5p9Uimi2qreMFU1yg2kM04yQH1hUn0XIWWwTGdKpRNgKZ+nPUu2 x1lWzSETPgvLCcOcK+XNuV5P4sXE0XEcJzl8c2wnsJuD2q1K/TNbg/4spSM70nMzutWCHpmh PZQ9IzFwhHvvUA7V2xJFdW9AQkSfc2lw8MAg1qlFAp+EPlXVnjcjp1hjXKaZQxKf02vIjfQ2 oWl4+Fm7tSbyc9yKdZ5U02XrSJTfjQtIez06+h65nmypysNwNxO2AFj2f3zDQde7Z9CPwHoC xyMgG2Og3BTMsHX6K3f891UEYRUi28WC3C3EDZ6T0FFYO25uw8QaWHg7SCfKEWHLkW1QrWyJ 3Id0ujmIio57zcr9C0hEewpiXXeqN9ELydOmb9VP0A7f797o6wmKqCkaLiwUoxCOxAK8dSup OhwwTY6sclY3tvrulG+kyztdQvUrABADU9ke43lqngL9lEoxaArvt8TYqLapJkg2rVqUNi+U iNPmymPRd6sn4YjLtAD/37vGOzt2TH0UkOTPnXIla7+6ymomS9tlUn6BM7qKs9lcwwsUDbAw Hn+OVOP0kC+XX0bvtBEUDbkxLp90zwKivDoD/TVxUJpNLObxyrtLmvldM12tIUQgLoI62ZH3 162JirJJJIP6ZiD+mHhS/F0aLyLvw+DD4D91tfDpZW5kc3RyZWFtCmVuZG9iagoyOTIgMCBv YmoKMTQ5NwplbmRvYmoKMjkwIDAgb2JqCjw8Ci9UeXBlIC9QYWdlCi9NZWRpYUJveCBbMCAw IDYxMiA3OTJdCi9QYXJlbnQgMiAwIFIKL1Jlc291cmNlcyA8PCAvUHJvY1NldCBbL1BERiAv VGV4dF0KL0ZvbnQgPDwKL1I5IDkgMCBSCi9SNyA3IDAgUgo+Pgo+PgovQ29udGVudHMgMjkx IDAgUgo+PgplbmRvYmoKMjk0IDAgb2JqCjw8L0xlbmd0aCAyOTUgMCBSL0ZpbHRlciAvRmxh dGVEZWNvZGU+PgpzdHJlYW0KeJzNmVtzm0YUx9/1KXirkkFr9g59ayZO7LR2FUGeqg4jo41D IwkCOE2+fXe5CeFdUGSlif2gGe1K58fZc/mflQOg5aj/+jXaTj5NPlmwfK95ibbWi2BysfAs CK3g/QRas3LV4sjiBFvBdnp9G1wubi+DZ8E/E0YBZK4V/DuhCHDK5NZgPZ29XPz2KrAuv6Rx JvJf1UZH7YGEA4eiapMv0kJs70RmIceBag/kLuC4Xr5ZZdGHdqkEchTQDMtdlFgzTNW2TRKt NmEmIhGrfTP5cPL9aEIwYNDzqu/6LGqEaOIB5HrN+1lYLkAEWG31S7R5WIvl1Ldf29fLZ63p yhdQfQODAEHPrfYD3d8hcGkWeRQgWn0GkpKUIGTNIDrDQ8S7mvq5mZpj4OKfk3rA19+FOi/C VZ6LrCgdZjAMASeDhvfGedc4ps7eOO2F7gCG0QPfAHLgBQxVQjZesCG1KbEPgTEH9QaGjyT1 fw6HDYXMyQ5D3bBRDjukbdYY+gbILC30mC4FxBvD1LkLM3CKtySIyWMVCj8Gpecw0oD0XCVD 7whn3bx4PdfxYKf5tPH4DEBe6xtapz1vjS2uXxiMkbYondke2JXFT6YZrrd9KcIPSbqcfpDH Y+wu7hiP9iw62U77NW/7tY6FcCuKLI4GE8iTdZqMhIMuMDsErN+zOyy3f9Qtl8Bqc7Cc3ppY MFT1f/x0dB5hnXR2bBfVPYqoxRlxPHl0NdKfQdujJJeHqw+NJDChwGHjaDoyCtsUxrZbd6gu ULqKPpZeknqoLhFCpnOWHTZaWbBcMtZo8zDZhVkaFg+7ndgsp+lHU0WSwcyHHkhz6MhtHwUN ZHoabyulhQhwm1TYd39DJjiAkTEHj1RIcjKTUf0dT+UZqOgjTaJYuiLu3C1WViBucEkp++X7 NnUrKtiNwx7XcAc5qpmd6BRjlJzcR9vmZXQIfuyQ+TxQjnhuL8rORRhgbcqYnAMhwPC0QoG9 tn4hYrsVEPZ4D8d4LnQsWEatcpPVgRR5olVoY2fI6oCSOY/2wzbGOoDsYSdeilyOtOuR3lC1 0GEOrWTfS2Hi2dTRdAYFkY+Yr9wwFnFjhYKa8oI8zotFNUc7wKtvAO7jvBCZXySptndy4AyP dUYXsfqxeF9wDSAM1VQC6CjJcOWqGl+3cg2imCeo/xklLOKtyL4TCfSOJAnnWXInwuoySVZK p4lbCadjQwx4gypFj4a8fWQjaKNWd3US3EToP6RpJvI8lkKq5JRKyWWNfwycUF2MDXPqMPle T9WULahLOvk2X04NYfSkgYZ1hkupCBpR0HXS/NUvA/lEiKp8xwr23kVAf4TRFB/o2qROfafH ZEysczGxk5jMZfrYPsn1fdKEQ7hNPA2OFFMymt+XuoUA3HpkFekDGAM2OoZrY6gWVo2g7JSA QYihqZhAAE9R3YjBTkBDrs5KJhYlKriru4kZJh0vBW+SeNc2+adrzl5/b2lUe4ea9JLB0h/V f9SgvvCDsyWVeTL3tAOwPw/u4qHrxtM0Jmw0fxUISOVK5YIZ5u2D54/PwP9BZ+D7N4Yaf+oN WRuBjNd3CZhWNyJ7q0HWuUpw3PZuML6/FzIvwiux2SThS7FZfdX6RN1PnKB+Oz5xHwmZIkwO 7j7UbzZ45CeGLF7rNQQCGJ0Yu52GgGXdh5pBoQhTkcXJOo7OnTjHGU/OGzLca0uWLlWLMK/1 kViffxo0Pea7dL0qRNipE3Ycv3/qNGbMUeiac/RdmheZWG3fzP1CMg0UreOLhflulx9+cQXC sVp7JXY7kV1crXbrTRn3qs46zfF9vbhKNndZkny8+L0R25jWi8nD51L7SvnpcVj+VMvUcn33 uFnlli+iQipgta3EkXsQ4oBy1twWAOuveZ2Jcs2VGrk5xdW9sFz3b7V4GVhvJ28n/wFC2uJm ZW5kc3RyZWFtCmVuZG9iagoyOTUgMCBvYmoKMTQ0MAplbmRvYmoKMjkzIDAgb2JqCjw8Ci9U eXBlIC9QYWdlCi9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCi9QYXJlbnQgMiAwIFIKL1Jlc291 cmNlcyA8PCAvUHJvY1NldCBbL1BERiAvVGV4dF0KL0ZvbnQgPDwKL1I5IDkgMCBSCi9SNyA3 IDAgUgo+Pgo+PgovQ29udGVudHMgMjk0IDAgUgo+PgplbmRvYmoKNzMgMCBvYmoKPDwvVHlw ZS9Gb250L05hbWUvQS9TdWJ0eXBlL1R5cGUzL0VuY29kaW5nIDcyIDAgUi9GaXJzdENoYXIg MC9MYXN0Q2hhciAxNi9DaGFyUHJvY3M8PC9hMTYKMjAyIDAgUi9hMTUKMjAxIDAgUi9hMTQK MTg1IDAgUi9hMTMKMTg0IDAgUi9hMTIKMTU5IDAgUi9hMTEKMTU4IDAgUi9hMTAKMTU3IDAg Ui9hOQoxNTYgMCBSL2E4CjE1NSAwIFIvYTcKMTMzIDAgUi9hNgoxMzIgMCBSL2E1CjEzMSAw IFIvYTQKMTAwIDAgUi9hMwo5MCAwIFIvYTIKNzcgMCBSL2ExCjc1IDAgUi9hMAo3NCAwIFI+ Pi9Gb250QkJveFswIDAgNTYgODddL0ZvbnRNYXRyaXhbMSAwIDAgMSAwIDBdL1dpZHRoc1sK MCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMAowXT4+CmVuZG9iago3MSAwIG9iago8 PC9UeXBlL0ZvbnQvTmFtZS9SNzEvU3VidHlwZS9UeXBlMS9CYXNlRm9udC9IZWx2ZXRpY2Ev RW5jb2RpbmcgNzYgMCBSPj4KZW5kb2JqCjc2IDAgb2JqCjw8L1R5cGUvRW5jb2RpbmcvRGlm ZmVyZW5jZXNbCjQ1L21pbnVzXT4+CmVuZG9iagozNCAwIG9iago8PC9UeXBlL0ZvbnQvTmFt ZS9SMzQvU3VidHlwZS9UeXBlMS9CYXNlRm9udC9TeW1ib2w+PgplbmRvYmoKMjQgMCBvYmoK PDwvVHlwZS9Gb250L05hbWUvUjI0L1N1YnR5cGUvVHlwZTEvQmFzZUZvbnQvVGltZXMtSXRh bGljPj4KZW5kb2JqCjIzIDAgb2JqCjw8L1R5cGUvRm9udC9OYW1lL1IyMy9TdWJ0eXBlL1R5 cGUxL0Jhc2VGb250L0NvdXJpZXI+PgplbmRvYmoKOSAwIG9iago8PC9UeXBlL0ZvbnQvTmFt ZS9SOS9TdWJ0eXBlL1R5cGUxL0Jhc2VGb250L1RpbWVzLVJvbWFuL0VuY29kaW5nIDEwIDAg Uj4+CmVuZG9iagoxMCAwIG9iago8PC9UeXBlL0VuY29kaW5nL0RpZmZlcmVuY2VzWwo5NC9j aXJjdW1mbGV4CjEzMS9idWxsZXQKMTQwL2ZpL2ZsXT4+CmVuZG9iago3IDAgb2JqCjw8L1R5 cGUvRm9udC9OYW1lL1I3L1N1YnR5cGUvVHlwZTEvQmFzZUZvbnQvVGltZXMtQm9sZC9FbmNv ZGluZyA4IDAgUj4+CmVuZG9iago4IDAgb2JqCjw8L1R5cGUvRW5jb2RpbmcvRGlmZmVyZW5j ZXNbCjE0MC9maQoxNzMvbWludXNdPj4KZW5kb2JqCjYgMCBvYmoKPDwvVHlwZS9Gb250L05h bWUvUjYvU3VidHlwZS9UeXBlMS9CYXNlRm9udC9Db3VyaWVyLUJvbGQ+PgplbmRvYmoKMiAw IG9iago8PCAvVHlwZSAvUGFnZXMgL0tpZHMgWwozIDAgUgoxMSAwIFIKMTQgMCBSCjE3IDAg UgoyMCAwIFIKMjUgMCBSCjI4IDAgUgozMSAwIFIKMzUgMCBSCjM4IDAgUgo0MSAwIFIKNDQg MCBSCjQ3IDAgUgo1MCAwIFIKNTMgMCBSCjU2IDAgUgo1OSAwIFIKNjIgMCBSCjY1IDAgUgo2 OCAwIFIKNzggMCBSCjgxIDAgUgo4NCAwIFIKODcgMCBSCjkxIDAgUgo5NCAwIFIKOTcgMCBS CjEwMSAwIFIKMTA0IDAgUgoxMDcgMCBSCjExMCAwIFIKMTEzIDAgUgoxMTYgMCBSCjExOSAw IFIKMTIyIDAgUgoxMjUgMCBSCjEyOCAwIFIKMTM0IDAgUgoxMzcgMCBSCjE0MCAwIFIKMTQz IDAgUgoxNDYgMCBSCjE0OSAwIFIKMTUyIDAgUgoxNjAgMCBSCjE2MyAwIFIKMTY2IDAgUgox NjkgMCBSCjE3MiAwIFIKMTc1IDAgUgoxNzggMCBSCjE4MSAwIFIKMTg2IDAgUgoxODkgMCBS CjE5MiAwIFIKMTk1IDAgUgoxOTggMCBSCjIwMyAwIFIKMjA2IDAgUgoyMDkgMCBSCjIxMiAw IFIKMjE1IDAgUgoyMTggMCBSCjIyMSAwIFIKMjI0IDAgUgoyMjcgMCBSCjIzMCAwIFIKMjMz IDAgUgoyMzYgMCBSCjIzOSAwIFIKMjQyIDAgUgoyNDUgMCBSCjI0OCAwIFIKMjUxIDAgUgoy NTQgMCBSCjI1NyAwIFIKMjYwIDAgUgoyNjMgMCBSCjI2NiAwIFIKMjY5IDAgUgoyNzIgMCBS CjI3NSAwIFIKMjc4IDAgUgoyODEgMCBSCjI4NCAwIFIKMjg3IDAgUgoyOTAgMCBSCjI5MyAw IFIKXSAvQ291bnQgODgKPj4KZW5kb2JqCjEgMCBvYmoKPDwgL1R5cGUgL0NhdGFsb2cgL1Bh Z2VzIDIgMCBSCj4+CmVuZG9iagoyOTYgMCBvYmoKPDwgL0NyZWF0aW9uRGF0ZSAoRDoyMDAx MDYyNjA5NDEyMSkKL1Byb2R1Y2VyIChHTlUgR2hvc3RzY3JpcHQgNS41MCkKPj4KZW5kb2Jq CjcyIDAgb2JqCjw8L1R5cGUvRW5jb2RpbmcvRGlmZmVyZW5jZXNbMAovYTAvYTEvYTIvYTMv YTQvYTUvYTYvYTcvYTgvYTkvYTEwL2ExMS9hMTIvYTEzL2ExNC9hMTUKL2ExNi9hMTcvYTE4 L2ExOS9hMjAvYTIxL2EyMi9hMjMvYTI0L2EyNS9hMjYvYTI3L2EyOC9hMjkvYTMwL2EzMQov YTMyL2EzMy9hMzQvYTM1L2EzNi9hMzcvYTM4L2EzOS9hNDAvYTQxL2E0Mi9hNDMvYTQ0L2E0 NS9hNDYvYTQ3Ci9hNDgvYTQ5L2E1MC9hNTEvYTUyL2E1My9hNTQvYTU1L2E1Ni9hNTcvYTU4 L2E1OS9hNjAvYTYxL2E2Mi9hNjMKL2E2NC9hNjUvYTY2L2E2Ny9hNjgvYTY5L2E3MC9hNzEv YTcyL2E3My9hNzQvYTc1L2E3Ni9hNzcvYTc4L2E3OQovYTgwL2E4MS9hODIvYTgzL2E4NC9h ODUvYTg2L2E4Ny9hODgvYTg5L2E5MC9hOTEvYTkyL2E5My9hOTQvYTk1Ci9hOTYvYTk3L2E5 OC9hOTkvYTEwMC9hMTAxL2ExMDIvYTEwMy9hMTA0L2ExMDUvYTEwNi9hMTA3L2ExMDgvYTEw OS9hMTEwL2ExMTEKL2ExMTIvYTExMy9hMTE0L2ExMTUvYTExNi9hMTE3L2ExMTgvYTExOS9h MTIwL2ExMjEvYTEyMi9hMTIzL2ExMjQvYTEyNS9hMTI2L2ExMjcKL2ExMjgvYTEyOS9hMTMw L2ExMzEvYTEzMi9hMTMzL2ExMzQvYTEzNS9hMTM2L2ExMzcvYTEzOC9hMTM5L2ExNDAvYTE0 MS9hMTQyL2ExNDMKL2ExNDQvYTE0NS9hMTQ2L2ExNDcvYTE0OC9hMTQ5L2ExNTAvYTE1MS9h MTUyL2ExNTMvYTE1NC9hMTU1L2ExNTYvYTE1Ny9hMTU4L2ExNTkKL2ExNjAvYTE2MS9hMTYy L2ExNjMvYTE2NC9hMTY1L2ExNjYvYTE2Ny9hMTY4L2ExNjkvYTE3MC9hMTcxL2ExNzIvYTE3 My9hMTc0L2ExNzUKL2ExNzYvYTE3Ny9hMTc4L2ExNzkvYTE4MC9hMTgxL2ExODIvYTE4My9h MTg0L2ExODUvYTE4Ni9hMTg3L2ExODgvYTE4OS9hMTkwL2ExOTEKL2ExOTIvYTE5My9hMTk0 L2ExOTUvYTE5Ni9hMTk3L2ExOTgvYTE5OS9hMjAwL2EyMDEvYTIwMi9hMjAzL2EyMDQvYTIw NS9hMjA2L2EyMDcKL2EyMDgvYTIwOS9hMjEwL2EyMTEvYTIxMi9hMjEzL2EyMTQvYTIxNS9h MjE2L2EyMTcvYTIxOC9hMjE5L2EyMjAvYTIyMS9hMjIyL2EyMjMKL2EyMjQvYTIyNS9hMjI2 L2EyMjcvYTIyOC9hMjI5L2EyMzAvYTIzMS9hMjMyL2EyMzMvYTIzNC9hMjM1L2EyMzYvYTIz Ny9hMjM4L2EyMzkKL2EyNDAvYTI0MS9hMjQyL2EyNDMvYTI0NC9hMjQ1L2EyNDYvYTI0Ny9h MjQ4L2EyNDkvYTI1MC9hMjUxL2EyNTIvYTI1My9hMjU0L2EyNTUKXSA+PgplbmRvYmoKNzQg MCBvYmoKPDwvTGVuZ3RoIDE2NiA+PgpzdHJlYW0KMCAwIDAgMCAzOSA2OSBkMQozOSAwIDAg NjkgMCAwIGNtCkJJCi9JTSB0cnVlL1cgMzkvSCA2OS9CUEMgMS9GL0NDRi9EUDw8L0sgLTEK L0NvbHVtbnMgMzkKL0JsYWNrSXMxIHRydWUKPj4KSUQgJqDkgEggeEHp4T09PkgV6CDfT6Tf v16/t6//////x//////////////////////+ACACCkVJCmVuZHN0cmVhbQplbmRvYmoKNzUg MCBvYmoKPDwvTGVuZ3RoIDE4MSA+PgpzdHJlYW0KMCAwIDAgMCA1NiA1NiBkMQo1NiAwIDAg NTYgMCAwIGNtCkJJCi9JTSB0cnVlL1cgNTYvSCA1Ni9CUEMgMS9GL0NDRi9EUDw8L0sgLTEK L0NvbHVtbnMgNTYKL0JsYWNrSXMxIHRydWUKPj4KSUQgJqMzBr3S79/0u/f9Lv3/S79/tL/e u12Pr9+v2fBj9eu3/Xa7/12u/9ba/X+2v137r9d+6/Xfuv1x79b/1v1ABABACkVJCmVuZHN0 cmVhbQplbmRvYmoKNzcgMCBvYmoKPDwvTGVuZ3RoIDE4MyA+PgpzdHJlYW0KMCAwIDAgMCA0 NyA0MSBkMQo0NyAwIDAgNDEgMCAwIGNtCkJJCi9JTSB0cnVlL1cgNDcvSCA0MS9CUEMgMS9G L0NDRi9EUDw8L0sgLTEKL0NvbHVtbnMgNDcKL0JsYWNrSXMxIHRydWUKPj4KSUQgJqDSRwxO ReGCXa90/91/+9tf/QIqP/br9X/vdL739K//br9X/vdL7/6b9ff+0v9vdL7/6b4/f6/b69U8 Kg8JAmACACAKRUkKZW5kc3RyZWFtCmVuZG9iago5MCAwIG9iago8PC9MZW5ndGggMTgxID4+ CnN0cmVhbQowIDAgMCAwIDUzIDg3IGQxCjUzIDAgMCA4NyAwIDAgY20KQkkKL0lNIHRydWUv VyA1My9IIDg3L0JQQyAxL0YvQ0NGL0RQPDwvSyAtMQovQ29sdW1ucyA1MwovQmxhY2tJczEg dHJ1ZQo+PgpJRCAmoZR4NkhsrwQeEHoPCenp6fNbegRC66CD9N9PpP99Pr/evv///////4// //////////////////////////4AIAIKRUkKZW5kc3RyZWFtCmVuZG9iagoxMDAgMCBvYmoK PDwvTGVuZ3RoIDE2OSA+PgpzdHJlYW0KMCAwIDAgMCA0MiA3MiBkMQo0MiAwIDAgNzIgMCAw IGNtCkJJCi9JTSB0cnVlL1cgNDIvSCA3Mi9CUEMgMS9GL0NDRi9EUDw8L0sgLTEKL0NvbHVt bnMgNDIKL0JsYWNrSXMxIHRydWUKPj4KSUQgJqC5IB4IHhB6Dwnp96JAr0EH6b0n9vr1f719 //////x///////////////////////+ACACACkVJCmVuZHN0cmVhbQplbmRvYmoKMTMxIDAg b2JqCjw8L0xlbmd0aCAxNTUgPj4Kc3RyZWFtCjAgMCAwIDAgMTcgNzIgZDEKMTcgMCAwIDcy IDAgMCBjbQpCSQovSU0gdHJ1ZS9XIDE3L0ggNzIvQlBDIDEvRi9DQ0YvRFA8PC9LIC0xCi9D b2x1bW5zIDE3Ci9CbGFja0lzMSB0cnVlCj4+CklEICameLB99/3Ik73///////////////// ///////kGDX/+Qvf//8AEAEKRUkKZW5kc3RyZWFtCmVuZG9iagoxMzIgMCBvYmoKPDwvTGVu Z3RoIDE1MiA+PgpzdHJlYW0KMCAwIDAgMCAyNSA1MyBkMQoyNSAwIDAgNTMgMCAwIGNtCkJJ Ci9JTSB0cnVlL1cgMjUvSCA1My9CUEMgMS9GL0NDRi9EUDw8L0sgLTEKL0NvbHVtbnMgMjUK L0JsYWNrSXMxIHRydWUKPj4KSUQgJqBCwTr6/Pnr///////////////////yNP//IJ3///// /wAQAQpFSQplbmRzdHJlYW0KZW5kb2JqCjEzMyAwIG9iago8PC9MZW5ndGggMTYxID4+CnN0 cmVhbQowIDAgMCAwIDM4IDU3IGQxCjM4IDAgMCA1NyAwIDAgY20KQkkKL0lNIHRydWUvVyAz OC9IIDU3L0JQQyAxL0YvQ0NGL0RQPDwvSyAtMQovQ29sdW1ucyAzOAovQmxhY2tJczEgdHJ1 ZQo+PgpJRCAmoZz4eCOgsIPCenp6KDfCD6Qb6fr1vT//////j//////////////////gAgAg CkVJCmVuZHN0cmVhbQplbmRvYmoKMTU1IDAgb2JqCjw8L0xlbmd0aCAxNTUgPj4Kc3RyZWFt CjAgMCAwIDAgMTcgNzIgZDEKMTcgMCAwIDcyIDAgMCBjbQpCSQovSU0gdHJ1ZS9XIDE3L0gg NzIvQlBDIDEvRi9DQ0YvRFA8PC9LIC0xCi9Db2x1bW5zIDE3Ci9CbGFja0lzMSB0cnVlCj4+ CklEICameLB99/3Ik73///////////////////////8gwa//8he///4AIAIKRUkKZW5kc3Ry ZWFtCmVuZG9iagoxNTYgMCBvYmoKPDwvTGVuZ3RoIDE2MCA+PgpzdHJlYW0KMCAwIDAgMCAz OCA1NyBkMQozOCAwIDAgNTcgMCAwIGNtCkJJCi9JTSB0cnVlL1cgMzgvSCA1Ny9CUEMgMS9G L0NDRi9EUDw8L0sgLTEKL0NvbHVtbnMgMzgKL0JsYWNrSXMxIHRydWUKPj4KSUQgJqGc+Hgg eCD0Hp6eig3wg+kG+vp9b0//////4//////////////////4AIAICkVJCmVuZHN0cmVhbQpl bmRvYmoKMTU3IDAgb2JqCjw8L0xlbmd0aCAxNTYgPj4Kc3RyZWFtCjAgMCAwIDAgMjIgNTEg ZDEKMjIgMCAwIDUxIDAgMCBjbQpCSQovSU0gdHJ1ZS9XIDIyL0ggNTEvQlBDIDEvRi9DQ0Yv RFA8PC9LIC0xCi9Db2x1bW5zIDIyCi9CbGFja0lzMSB0cnVlCj4+CklEICahS4mtf0v1/rX/ /9f/////+///73/9+/3732/32+99vb329vbABABACkVJCmVuZHN0cmVhbQplbmRvYmoKMTU4 IDAgb2JqCjw8L0xlbmd0aCAxODEgPj4Kc3RyZWFtCjAgMCAwIDAgNDcgNDAgZDEKNDcgMCAw IDQwIDAgMCBjbQpCSQovSU0gdHJ1ZS9XIDQ3L0ggNDAvQlBDIDEvRi9DQ0YvRFA8PC9LIC0x Ci9Db2x1bW5zIDQ3Ci9CbGFja0lzMSB0cnVlCj4+CklEICag0kcMTkLhgr2l3/Xe//Xbv1+C Kf69tb+v1ffvtL//p91vuv1ffvuv1/p91vv/S99v6+P692/+r19JPBQQMAEAEApFSQplbmRz dHJlYW0KZW5kb2JqCjE1OSAwIG9iago8PC9MZW5ndGggMTUzID4+CnN0cmVhbQowIDAgMCAw IDI1IDUyIGQxCjI1IDAgMCA1MiAwIDAgY20KQkkKL0lNIHRydWUvVyAyNS9IIDUyL0JQQyAx L0YvQ0NGL0RQPDwvSyAtMQovQ29sdW1ucyAyNQovQmxhY2tJczEgdHJ1ZQo+PgpJRCAmoEBY IOvr8+ev//////////////////yNP//IJ3//////wAQAQApFSQplbmRzdHJlYW0KZW5kb2Jq CjE4NCAwIG9iago8PC9MZW5ndGggMTQ5ID4+CnN0cmVhbQowIDAgMCAwIDQ3IDUxIGQxCjQ3 IDAgMCA1MSAwIDAgY20KQkkKL0lNIHRydWUvVyA0Ny9IIDUxL0JQQyAxL0YvQ0NGL0RQPDwv SyAtMQovQ29sdW1ucyA0NwovQmxhY2tJczEgdHJ1ZQo+PgpJRCAmoKD4Mf////////////// //////////////8kVf/8AEAECkVJCmVuZHN0cmVhbQplbmRvYmoKMTg1IDAgb2JqCjw8L0xl bmd0aCAxNzUgPj4Kc3RyZWFtCjAgMCAwIDAgNTEgNTEgZDEKNTEgMCAwIDUxIDAgMCBjbQpC SQovSU0gdHJ1ZS9XIDUxL0ggNTEvQlBDIDEvRi9DQ0YvRFA8PC9LIC0xCi9Db2x1bW5zIDUx Ci9CbGFja0lzMSB0cnVlCj4+CklEICakfBp219eu3X+2v1/tr9f7a/X+x9fv1vzwLrv3+0v9 /tL/f7S3/+0t/67Xf7r13+69d/it/63/qACACApFSQplbmRzdHJlYW0KZW5kb2JqCjIwMSAw IG9iago8PC9MZW5ndGggMTUwID4+CnN0cmVhbQowIDAgMCAwIDQ3IDUyIGQxCjQ3IDAgMCA1 MiAwIDAgY20KQkkKL0lNIHRydWUvVyA0Ny9IIDUyL0JQQyAxL0YvQ0NGL0RQPDwvSyAtMQov Q29sdW1ucyA0NwovQmxhY2tJczEgdHJ1ZQo+PgpJRCAmoKD4Mf////////////////////// ///////yRV//wAQAQApFSQplbmRzdHJlYW0KZW5kb2JqCjIwMiAwIG9iago8PC9MZW5ndGgg MTc2ID4+CnN0cmVhbQowIDAgMCAwIDUxIDUyIGQxCjUxIDAgMCA1MiAwIDAgY20KQkkKL0lN IHRydWUvVyA1MS9IIDUyL0JQQyAxL0YvQ0NGL0RQPDwvSyAtMQovQ29sdW1ucyA1MQovQmxh Y2tJczEgdHJ1ZQo+PgpJRCAmpHwadtfXfuv1t/r9bf6/W3+vdbH/W/9bPgv9d67/S3+/0t/v 9Lf7/S2//dLv/3S7/90uPrf+t/6gAgAgCkVJCmVuZHN0cmVhbQplbmRvYmoKeHJlZgowIDI5 NwowMDAwMDAwMDAwIDY1NTM1IGYgCjAwMDAyMTc5MTUgMDAwMDAgbiAKMDAwMDIxNzE4NSAw MDAwMCBuIAowMDAwMDAyMDcxIDAwMDAwIG4gCjAwMDAwMDAwMTUgMDAwMDAgbiAKMDAwMDAw MjA1MSAwMDAwMCBuIAowMDAwMjE3MTExIDAwMDAwIG4gCjAwMDAyMTY5NTkgMDAwMDAgbiAK MDAwMDIxNzA0NiAwMDAwMCBuIAowMDAwMjE2Nzg2IDAwMDAwIG4gCjAwMDAyMTY4NzUgMDAw MDAgbiAKMDAwMDAwMzk4MCAwMDAwMCBuIAowMDAwMDAyMjM5IDAwMDAwIG4gCjAwMDAwMDM5 NTkgMDAwMDAgbiAKMDAwMDAwNDgzNyAwMDAwMCBuIAowMDAwMDA0MTQwIDAwMDAwIG4gCjAw MDAwMDQ4MTcgMDAwMDAgbiAKMDAwMDAwNzcyNiAwMDAwMCBuIAowMDAwMDA0OTg3IDAwMDAw IG4gCjAwMDAwMDc3MDUgMDAwMDAgbiAKMDAwMDAxMDU4MCAwMDAwMCBuIAowMDAwMDA3ODg2 IDAwMDAwIG4gCjAwMDAwMTA1NTkgMDAwMDAgbiAKMDAwMDIxNjcxNSAwMDAwMCBuIAowMDAw MjE2NjM5IDAwMDAwIG4gCjAwMDAwMTQyNjEgMDAwMDAgbiAKMDAwMDAxMDc2NCAwMDAwMCBu IAowMDAwMDE0MjQwIDAwMDAwIG4gCjAwMDAwMTc1NzUgMDAwMDAgbiAKMDAwMDAxNDQyMSAw MDAwMCBuIAowMDAwMDE3NTU0IDAwMDAwIG4gCjAwMDAwMjA0NDQgMDAwMDAgbiAKMDAwMDAx Nzc0NyAwMDAwMCBuIAowMDAwMDIwNDIzIDAwMDAwIG4gCjAwMDAyMTY1NjkgMDAwMDAgbiAK MDAwMDAyMzA2MiAwMDAwMCBuIAowMDAwMDIwNjE2IDAwMDAwIG4gCjAwMDAwMjMwNDEgMDAw MDAgbiAKMDAwMDAyNDk4NSAwMDAwMCBuIAowMDAwMDIzMjQ2IDAwMDAwIG4gCjAwMDAwMjQ5 NjQgMDAwMDAgbiAKMDAwMDAyNzI5NSAwMDAwMCBuIAowMDAwMDI1MTU3IDAwMDAwIG4gCjAw MDAwMjcyNzQgMDAwMDAgbiAKMDAwMDAzMDE2NCAwMDAwMCBuIAowMDAwMDI3NDY3IDAwMDAw IG4gCjAwMDAwMzAxNDMgMDAwMDAgbiAKMDAwMDAzMjcwNSAwMDAwMCBuIAowMDAwMDMwMzM2 IDAwMDAwIG4gCjAwMDAwMzI2ODQgMDAwMDAgbiAKMDAwMDAzNDUzNSAwMDAwMCBuIAowMDAw MDMyODc3IDAwMDAwIG4gCjAwMDAwMzQ1MTQgMDAwMDAgbiAKMDAwMDAzNTk2NCAwMDAwMCBu IAowMDAwMDM0Njk3IDAwMDAwIG4gCjAwMDAwMzU5NDMgMDAwMDAgbiAKMDAwMDAzODE4NyAw MDAwMCBuIAowMDAwMDM2MTI2IDAwMDAwIG4gCjAwMDAwMzgxNjYgMDAwMDAgbiAKMDAwMDA0 MDE3MiAwMDAwMCBuIAowMDAwMDM4MzU5IDAwMDAwIG4gCjAwMDAwNDAxNTEgMDAwMDAgbiAK MDAwMDA0MjUyOCAwMDAwMCBuIAowMDAwMDQwMzM0IDAwMDAwIG4gCjAwMDAwNDI1MDcgMDAw MDAgbiAKMDAwMDA0NDYwMSAwMDAwMCBuIAowMDAwMDQyNzAwIDAwMDAwIG4gCjAwMDAwNDQ1 ODAgMDAwMDAgbiAKMDAwMDA0ODAwNSAwMDAwMCBuIAowMDAwMDQ0NzczIDAwMDAwIG4gCjAw MDAwNDc5ODQgMDAwMDAgbiAKMDAwMDIxNjQyMiAwMDAwMCBuIAowMDAwMjE4MDUzIDAwMDAw IG4gCjAwMDAyMTYwMzkgMDAwMDAgbiAKMDAwMDIxOTI5MSAwMDAwMCBuIAowMDAwMjE5NTA3 IDAwMDAwIG4gCjAwMDAyMTY1MTEgMDAwMDAgbiAKMDAwMDIxOTczOCAwMDAwMCBuIAowMDAw MDUwMzc4IDAwMDAwIG4gCjAwMDAwNDgyMDcgMDAwMDAgbiAKMDAwMDA1MDM1NyAwMDAwMCBu IAowMDAwMDUyNzM2IDAwMDAwIG4gCjAwMDAwNTA1NjIgMDAwMDAgbiAKMDAwMDA1MjcxNSAw MDAwMCBuIAowMDAwMDU1NzQzIDAwMDAwIG4gCjAwMDAwNTI5MjAgMDAwMDAgbiAKMDAwMDA1 NTcyMiAwMDAwMCBuIAowMDAwMDU4NTI2IDAwMDAwIG4gCjAwMDAwNTU5MzkgMDAwMDAgbiAK MDAwMDA1ODUwNSAwMDAwMCBuIAowMDAwMjE5OTcxIDAwMDAwIG4gCjAwMDAwNjA5OTQgMDAw MDAgbiAKMDAwMDA1ODcxNiAwMDAwMCBuIAowMDAwMDYwOTczIDAwMDAwIG4gCjAwMDAwNjM0 OTggMDAwMDAgbiAKMDAwMDA2MTE2NiAwMDAwMCBuIAowMDAwMDYzNDc3IDAwMDAwIG4gCjAw MDAwNjY0MDYgMDAwMDAgbiAKMDAwMDA2MzY3MCAwMDAwMCBuIAowMDAwMDY2Mzg1IDAwMDAw IG4gCjAwMDAyMjAyMDIgMDAwMDAgbiAKMDAwMDA2ODg5MyAwMDAwMCBuIAowMDAwMDY2NTk2 IDAwMDAwIG4gCjAwMDAwNjg4NzEgMDAwMDAgbiAKMDAwMDA3MTQyNSAwMDAwMCBuIAowMDAw MDY5MDY3IDAwMDAwIG4gCjAwMDAwNzE0MDMgMDAwMDAgbiAKMDAwMDA3NDk3OSAwMDAwMCBu IAowMDAwMDcxNTk5IDAwMDAwIG4gCjAwMDAwNzQ5NTcgMDAwMDAgbiAKMDAwMDA3Njg4MCAw MDAwMCBuIAowMDAwMDc1MTYzIDAwMDAwIG4gCjAwMDAwNzY4NTggMDAwMDAgbiAKMDAwMDA3 OTU0OCAwMDAwMCBuIAowMDAwMDc3MDU0IDAwMDAwIG4gCjAwMDAwNzk1MjYgMDAwMDAgbiAK MDAwMDA4Mjk5NiAwMDAwMCBuIAowMDAwMDc5NzM0IDAwMDAwIG4gCjAwMDAwODI5NzQgMDAw MDAgbiAKMDAwMDA4NTU2OCAwMDAwMCBuIAowMDAwMDgzMTgwIDAwMDAwIG4gCjAwMDAwODU1 NDYgMDAwMDAgbiAKMDAwMDA4NzE5MCAwMDAwMCBuIAowMDAwMDg1NzQyIDAwMDAwIG4gCjAw MDAwODcxNjggMDAwMDAgbiAKMDAwMDA4OTM5OCAwMDAwMCBuIAowMDAwMDg3MzY0IDAwMDAw IG4gCjAwMDAwODkzNzYgMDAwMDAgbiAKMDAwMDA5MjM0NSAwMDAwMCBuIAowMDAwMDg5NTcy IDAwMDAwIG4gCjAwMDAwOTIzMjMgMDAwMDAgbiAKMDAwMDIyMDQyMiAwMDAwMCBuIAowMDAw MjIwNjI4IDAwMDAwIG4gCjAwMDAyMjA4MzEgMDAwMDAgbiAKMDAwMDA5NDY2NiAwMDAwMCBu IAowMDAwMDkyNTM3IDAwMDAwIG4gCjAwMDAwOTQ2NDQgMDAwMDAgbiAKMDAwMDA5NjgzNSAw MDAwMCBuIAowMDAwMDk0ODQwIDAwMDAwIG4gCjAwMDAwOTY4MTMgMDAwMDAgbiAKMDAwMDEw MDU2NiAwMDAwMCBuIAowMDAwMDk2OTk3IDAwMDAwIG4gCjAwMDAxMDA1NDQgMDAwMDAgbiAK MDAwMDEwMjkxNyAwMDAwMCBuIAowMDAwMTAwNzUwIDAwMDAwIG4gCjAwMDAxMDI4OTUgMDAw MDAgbiAKMDAwMDEwNTExNiAwMDAwMCBuIAowMDAwMTAzMDkxIDAwMDAwIG4gCjAwMDAxMDUw OTQgMDAwMDAgbiAKMDAwMDEwNzAyNSAwMDAwMCBuIAowMDAwMTA1Mjc4IDAwMDAwIG4gCjAw MDAxMDcwMDMgMDAwMDAgbiAKMDAwMDExMDU5MyAwMDAwMCBuIAowMDAwMTA3MTg3IDAwMDAw IG4gCjAwMDAxMTA1NzEgMDAwMDAgbiAKMDAwMDIyMTA0MyAwMDAwMCBuIAowMDAwMjIxMjQ5 IDAwMDAwIG4gCjAwMDAyMjE0NjAgMDAwMDAgbiAKMDAwMDIyMTY2NyAwMDAwMCBuIAowMDAw MjIxODk5IDAwMDAwIG4gCjAwMDAxMTI5MDIgMDAwMDAgbiAKMDAwMDExMDc5NyAwMDAwMCBu IAowMDAwMTEyODgwIDAwMDAwIG4gCjAwMDAxMTQ3ODYgMDAwMDAgbiAKMDAwMDExMzA3NiAw MDAwMCBuIAowMDAwMTE0NzY0IDAwMDAwIG4gCjAwMDAxMTcxNTAgMDAwMDAgbiAKMDAwMDEx NDk0OCAwMDAwMCBuIAowMDAwMTE3MTI4IDAwMDAwIG4gCjAwMDAxMjA5MTggMDAwMDAgbiAK MDAwMDExNzMyNCAwMDAwMCBuIAowMDAwMTIwODk2IDAwMDAwIG4gCjAwMDAxMjM1MDUgMDAw MDAgbiAKMDAwMDEyMTA5MiAwMDAwMCBuIAowMDAwMTIzNDgzIDAwMDAwIG4gCjAwMDAxMjYy MzkgMDAwMDAgbiAKMDAwMDEyMzY3OSAwMDAwMCBuIAowMDAwMTI2MjE3IDAwMDAwIG4gCjAw MDAxMjg1MTAgMDAwMDAgbiAKMDAwMDEyNjQwMSAwMDAwMCBuIAowMDAwMTI4NDg4IDAwMDAw IG4gCjAwMDAxMzI2ODYgMDAwMDAgbiAKMDAwMDEyODY3MiAwMDAwMCBuIAowMDAwMTMyNjY0 IDAwMDAwIG4gCjAwMDAyMjIxMDMgMDAwMDAgbiAKMDAwMDIyMjMwMyAwMDAwMCBuIAowMDAw MTM0ODQzIDAwMDAwIG4gCjAwMDAxMzI4NzggMDAwMDAgbiAKMDAwMDEzNDgyMSAwMDAwMCBu IAowMDAwMTM3MTYxIDAwMDAwIG4gCjAwMDAxMzUwMTcgMDAwMDAgbiAKMDAwMDEzNzEzOSAw MDAwMCBuIAowMDAwMTM5OTMzIDAwMDAwIG4gCjAwMDAxMzczMzUgMDAwMDAgbiAKMDAwMDEz OTkxMSAwMDAwMCBuIAowMDAwMTQyNDYzIDAwMDAwIG4gCjAwMDAxNDAwOTUgMDAwMDAgbiAK MDAwMDE0MjQ0MSAwMDAwMCBuIAowMDAwMTQ3MDI5IDAwMDAwIG4gCjAwMDAxNDI2MzcgMDAw MDAgbiAKMDAwMDE0NzAwNyAwMDAwMCBuIAowMDAwMjIyNTI5IDAwMDAwIG4gCjAwMDAyMjI3 MzAgMDAwMDAgbiAKMDAwMDE0OTQ0NSAwMDAwMCBuIAowMDAwMTQ3MjIxIDAwMDAwIG4gCjAw MDAxNDk0MjMgMDAwMDAgbiAKMDAwMDE1MjA4NyAwMDAwMCBuIAowMDAwMTQ5NjE5IDAwMDAw IG4gCjAwMDAxNTIwNjUgMDAwMDAgbiAKMDAwMDE1NDY1NSAwMDAwMCBuIAowMDAwMTUyMjQ5 IDAwMDAwIG4gCjAwMDAxNTQ2MzMgMDAwMDAgbiAKMDAwMDE1NjMxMiAwMDAwMCBuIAowMDAw MTU0ODI5IDAwMDAwIG4gCjAwMDAxNTYyOTAgMDAwMDAgbiAKMDAwMDE1ODA1OCAwMDAwMCBu IAowMDAwMTU2NDg2IDAwMDAwIG4gCjAwMDAxNTgwMzYgMDAwMDAgbiAKMDAwMDE2MDY3NSAw MDAwMCBuIAowMDAwMTU4MjQ0IDAwMDAwIG4gCjAwMDAxNjA2NTMgMDAwMDAgbiAKMDAwMDE2 MzcwNCAwMDAwMCBuIAowMDAwMTYwODQ5IDAwMDAwIG4gCjAwMDAxNjM2ODIgMDAwMDAgbiAK MDAwMDE2NTg0MiAwMDAwMCBuIAowMDAwMTYzODkwIDAwMDAwIG4gCjAwMDAxNjU4MjAgMDAw MDAgbiAKMDAwMDE2ODkyNSAwMDAwMCBuIAowMDAwMTY2MDI4IDAwMDAwIG4gCjAwMDAxNjg5 MDMgMDAwMDAgbiAKMDAwMDE3MjE3OSAwMDAwMCBuIAowMDAwMTY5MDk5IDAwMDAwIG4gCjAw MDAxNzIxNTcgMDAwMDAgbiAKMDAwMDE3NDU4OCAwMDAwMCBuIAowMDAwMTcyMzUzIDAwMDAw IG4gCjAwMDAxNzQ1NjYgMDAwMDAgbiAKMDAwMDE3NjU0NiAwMDAwMCBuIAowMDAwMTc0NzYy IDAwMDAwIG4gCjAwMDAxNzY1MjQgMDAwMDAgbiAKMDAwMDE3ODc0MSAwMDAwMCBuIAowMDAw MTc2NzMyIDAwMDAwIG4gCjAwMDAxNzg3MTkgMDAwMDAgbiAKMDAwMDE4MDQzOCAwMDAwMCBu IAowMDAwMTc4OTI3IDAwMDAwIG4gCjAwMDAxODA0MTYgMDAwMDAgbiAKMDAwMDE4MjA5MSAw MDAwMCBuIAowMDAwMTgwNjI0IDAwMDAwIG4gCjAwMDAxODIwNjkgMDAwMDAgbiAKMDAwMDE4 NDEyNiAwMDAwMCBuIAowMDAwMTgyMjY1IDAwMDAwIG4gCjAwMDAxODQxMDQgMDAwMDAgbiAK MDAwMDE4NjM2OCAwMDAwMCBuIAowMDAwMTg0MzAwIDAwMDAwIG4gCjAwMDAxODYzNDYgMDAw MDAgbiAKMDAwMDE4ODA0OCAwMDAwMCBuIAowMDAwMTg2NTU0IDAwMDAwIG4gCjAwMDAxODgw MjYgMDAwMDAgbiAKMDAwMDE4OTAxMSAwMDAwMCBuIAowMDAwMTg4MjIyIDAwMDAwIG4gCjAw MDAxODg5OTAgMDAwMDAgbiAKMDAwMDE5MTI0MiAwMDAwMCBuIAowMDAwMTg5MTc1IDAwMDAw IG4gCjAwMDAxOTEyMjAgMDAwMDAgbiAKMDAwMDE5MzUxMCAwMDAwMCBuIAowMDAwMTkxNDE2 IDAwMDAwIG4gCjAwMDAxOTM0ODggMDAwMDAgbiAKMDAwMDE5NjQwNSAwMDAwMCBuIAowMDAw MTkzNjcyIDAwMDAwIG4gCjAwMDAxOTYzODMgMDAwMDAgbiAKMDAwMDE5ODc3MCAwMDAwMCBu IAowMDAwMTk2NTc5IDAwMDAwIG4gCjAwMDAxOTg3NDggMDAwMDAgbiAKMDAwMDIwMDUwMiAw MDAwMCBuIAowMDAwMTk4OTU2IDAwMDAwIG4gCjAwMDAyMDA0ODAgMDAwMDAgbiAKMDAwMDIw Mjc4NSAwMDAwMCBuIAowMDAwMjAwNjY0IDAwMDAwIG4gCjAwMDAyMDI3NjMgMDAwMDAgbiAK MDAwMDIwNTQ0MyAwMDAwMCBuIAowMDAwMjAyOTU5IDAwMDAwIG4gCjAwMDAyMDU0MjEgMDAw MDAgbiAKMDAwMDIwNzg2NiAwMDAwMCBuIAowMDAwMjA1NjA1IDAwMDAwIG4gCjAwMDAyMDc4 NDQgMDAwMDAgbiAKMDAwMDIxMDA2OSAwMDAwMCBuIAowMDAwMjA4MDI4IDAwMDAwIG4gCjAw MDAyMTAwNDcgMDAwMDAgbiAKMDAwMDIxMjQxMiAwMDAwMCBuIAowMDAwMjEwMjMxIDAwMDAw IG4gCjAwMDAyMTIzOTAgMDAwMDAgbiAKMDAwMDIxNDE3OSAwMDAwMCBuIAowMDAwMjEyNTg2 IDAwMDAwIG4gCjAwMDAyMTQxNTcgMDAwMDAgbiAKMDAwMDIxNTg3NyAwMDAwMCBuIAowMDAw MjE0MzQxIDAwMDAwIG4gCjAwMDAyMTU4NTUgMDAwMDAgbiAKMDAwMDIxNzk2NCAwMDAwMCBu IAp0cmFpbGVyCjw8IC9TaXplIDI5NyAvUm9vdCAxIDAgUiAvSW5mbyAyOTYgMCBSCj4+CnN0 YXJ0eHJlZgoyMjI5NTcKJSVFT0YK --------------4D61E8C670E524B443A881B7-- From owner-pim@catarina.usc.edu Tue Jun 26 15:38:45 2001 Received: from catarina.usc.edu (catarina.usc.edu [128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id PAA07000 for ; Tue, 26 Jun 2001 15:38:43 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id MAA29354 for pim-list; Tue, 26 Jun 2001 12:17:58 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136]) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id MAA29349 for ; Tue, 26 Jun 2001 12:17:57 -0700 (PDT) Received: from zsc3s002.nortelnetworks.com (h86s136a81n47.user.nortelnetworks.com [47.81.136.86]) by usc.edu (8.9.3.1/8.9.3/usc) with SMTP id MAA03332 for ; Tue, 26 Jun 2001 12:17:57 -0700 (PDT) Received: from zsc4s001.baynetworks.com by zsc3s002.nortelnetworks.com (SMI-8.6/SMI-SVR4) id LAA11459; Tue, 26 Jun 2001 11:43:17 -0700 Received: from zsc4c000.us.nortel.com by zsc4s001.baynetworks.com; Tue, 26 Jun 2001 12:05:32 -0700 Received: by zsc4c000.us.nortel.com with Internet Mail Service (5.5.2653.19) id ; Tue, 26 Jun 2001 12:12:41 -0700 Message-ID: <5546C40EAD51D311BD7A0008C791547607030C07@zsc4c012.us.nortel.com> From: "Sridhar Vallepalli" To: "'pim@catarina.usc.edu'" Subject: Pim packet length. Date: Tue, 26 Jun 2001 12:12:40 -0700 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2653.19) Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C0FE73.F860C700" X-Orig: Sender: owner-pim@catarina.usc.edu Precedence: bulk This message is in MIME format. Since your mail reader does not understand this format, some or all of this message may not be legible. ------_=_NextPart_001_01C0FE73.F860C700 Content-Type: text/plain; charset="iso-8859-1" Hi all, In the existing pim packet formats there is no field in pim header which tells how big the packet is. I would suggest to use the reserved byte in the pim header for this purpose. Please comment.. Thanks Sridhar ------_=_NextPart_001_01C0FE73.F860C700 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Pim packet length.

Hi all,
        In the existing pim packet formats there is no field in = pim header which tells how big the packet is.
I would suggest to use the reserved = byte in the pim header for this purpose. Please comment..

Thanks
Sridhar

------_=_NextPart_001_01C0FE73.F860C700-- From owner-pim@catarina.usc.edu Tue Jun 26 17:41:38 2001 Received: from catarina.usc.edu (catarina.usc.edu [128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id RAA23022 for ; Tue, 26 Jun 2001 17:41:34 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id OAA30241 for pim-list; Tue, 26 Jun 2001 14:28:44 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136] (may be forged)) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id OAA30236 for ; Tue, 26 Jun 2001 14:28:40 -0700 (PDT) Received: from cisco.com (cypher.cisco.com [171.69.11.18]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id OAA07571 for ; Tue, 26 Jun 2001 14:28:40 -0700 (PDT) Received: (from ycai@localhost) by cisco.com (8.8.8/2.6/Cisco List Logging/8.8.8) id OAA01181; Tue, 26 Jun 2001 14:04:31 -0700 (PDT) Date: Tue, 26 Jun 2001 14:04:31 -0700 (PDT) Message-Id: <200106262104.OAA01181@cisco.com> From: Yiqun Cai To: sridharv@nortelnetworks.com CC: pim@catarina.usc.edu In-reply-to: <5546C40EAD51D311BD7A0008C791547607030C07@zsc4c012.us.nortel.com> (sridharv@nortelnetworks.com) Subject: Re: Pim packet length. Reply-to: ycai@cisco.com Sender: owner-pim@catarina.usc.edu Precedence: bulk It can be computed from the length field in the IP header. > > Hi all, > In the existing pim packet formats there is no field in pim header > which tells how big the packet is. > I would suggest to use the reserved byte in the pim header for this purpose. > Please comment.. > > Thanks > Sridhar > -- Yiqun From owner-pim@catarina.usc.edu Tue Jun 26 19:29:01 2001 Received: from catarina.usc.edu (catarina.usc.edu [128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id TAA11521 for ; Tue, 26 Jun 2001 19:28:59 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id QAA30851 for pim-list; Tue, 26 Jun 2001 16:16:21 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136]) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id QAA30846 for ; Tue, 26 Jun 2001 16:16:20 -0700 (PDT) Received: from zsc3s002.nortelnetworks.com (h86s136a81n47.user.nortelnetworks.com [47.81.136.86]) by usc.edu (8.9.3.1/8.9.3/usc) with SMTP id QAA24037 for ; Tue, 26 Jun 2001 16:16:20 -0700 (PDT) Received: from zsc4s001.baynetworks.com by zsc3s002.nortelnetworks.com (SMI-8.6/SMI-SVR4) id PAA26164; Tue, 26 Jun 2001 15:42:03 -0700 Received: from zsc4c000.us.nortel.com by zsc4s001.baynetworks.com; Tue, 26 Jun 2001 16:04:17 -0700 Received: by zsc4c000.us.nortel.com with Internet Mail Service (5.5.2653.19) id ; Tue, 26 Jun 2001 16:11:28 -0700 Message-ID: <5546C40EAD51D311BD7A0008C791547607030C0A@zsc4c012.us.nortel.com> From: "Sridhar Vallepalli" To: "'ycai@cisco.com'" Cc: pim@catarina.usc.edu Subject: RE: Pim packet length. Date: Tue, 26 Jun 2001 16:11:27 -0700 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2653.19) Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C0FE95.538967B0" X-Orig: Sender: owner-pim@catarina.usc.edu Precedence: bulk This message is in MIME format. Since your mail reader does not understand this format, some or all of this message may not be legible. ------_=_NextPart_001_01C0FE95.538967B0 Content-Type: text/plain; charset="iso-8859-1" That is true, but I have seen one of the leading router vendors having incorrect value in the total length field of the IP header. By having the length in pim header the dependency on finding it of the IP header is eliminated. ( The way it is done in OSPF) Thanks Sridhar -----Original Message----- From: Yiqun Cai [mailto:ycai@cisco.com] Sent: Tuesday, June 26, 2001 2:05 PM To: Vallepalli, Sridhar [SC9:T337:EXCH] Cc: pim@catarina.usc.edu Subject: Re: Pim packet length. It can be computed from the length field in the IP header. > > Hi all, > In the existing pim packet formats there is no field in pim header > which tells how big the packet is. > I would suggest to use the reserved byte in the pim header for this purpose. > Please comment.. > > Thanks > Sridhar > -- Yiqun ------_=_NextPart_001_01C0FE95.538967B0 Content-Type: text/html; charset="iso-8859-1" RE: Pim packet length.

That is true, but I have seen one of the leading router vendors having
incorrect value in the total length field of the IP header.
By having the length in pim header the dependency on finding it of the
IP header is eliminated. ( The way it is done in OSPF)

Thanks
Sridhar

-----Original Message-----
From: Yiqun Cai [mailto:ycai@cisco.com]
Sent: Tuesday, June 26, 2001 2:05 PM
To: Vallepalli, Sridhar [SC9:T337:EXCH]
Cc: pim@catarina.usc.edu
Subject: Re: Pim packet length.



It can be computed from the length field in the IP header.

>
> Hi all,
>       In the existing pim packet formats there is no field in pim header
> which tells how big the packet is.
> I would suggest to use the reserved byte in the pim header for this purpose.
> Please comment..
>
> Thanks
> Sridhar
>


--
Yiqun

------_=_NextPart_001_01C0FE95.538967B0-- From owner-pim@catarina.usc.edu Tue Jun 26 22:32:26 2001 Received: from catarina.usc.edu (catarina.usc.edu [128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id WAA02836 for ; Tue, 26 Jun 2001 22:32:25 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id TAA31473 for pim-list; Tue, 26 Jun 2001 19:14:29 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136] (may be forged)) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id TAA31468 for ; Tue, 26 Jun 2001 19:14:28 -0700 (PDT) Received: from cisco.com (cypher.cisco.com [171.69.11.18]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id TAA28173 for ; Tue, 26 Jun 2001 19:14:28 -0700 (PDT) Received: (from ycai@localhost) by cisco.com (8.8.8/2.6/Cisco List Logging/8.8.8) id TAA27249; Tue, 26 Jun 2001 19:10:15 -0700 (PDT) Date: Tue, 26 Jun 2001 19:10:15 -0700 (PDT) Message-Id: <200106270210.TAA27249@cisco.com> From: Yiqun Cai To: sridharv@nortelnetworks.com CC: pim@catarina.usc.edu In-reply-to: <5546C40EAD51D311BD7A0008C791547607030C0A@zsc4c012.us.nortel.com> (sridharv@nortelnetworks.com) Subject: Re: Pim packet length. Reply-to: ycai@cisco.com Sender: owner-pim@catarina.usc.edu Precedence: bulk Well, if the total length field in the IP header is not trust worthy, why should the length field of PIM header be? They are built by the same router running the same software. I assume you are proposing this to ensure the integrity of PIM messages. If so, the checksum field should serve the purpose. If an implementation believes that the checksum field is not strong enough to protect against a wrong total length value in the IP header, it can always determine the exact number of bytes received from the driver. > > That is true, but I have seen one of the leading router vendors having > incorrect value in the total length field of the IP header. > By having the length in pim header the dependency on finding it of the > IP header is eliminated. ( The way it is done in OSPF) > > Thanks > Sridhar > -- Yiqun From owner-pim@catarina.usc.edu Thu Jun 28 02:38:45 2001 Received: from catarina.usc.edu (catarina.usc.edu [128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id CAA05673 for ; Thu, 28 Jun 2001 02:38:44 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id XAA36923 for pim-list; Wed, 27 Jun 2001 23:16:14 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136] (may be forged)) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id XAA36918 for ; Wed, 27 Jun 2001 23:16:13 -0700 (PDT) Received: from mailweb29.rediffmail.com (IDENT:qmailr@[203.199.83.149]) by usc.edu (8.9.3.1/8.9.3/usc) with SMTP id XAA29667 for ; Wed, 27 Jun 2001 23:16:11 -0700 (PDT) Received: (qmail 28001 invoked by uid 510); 28 Jun 2001 06:18:48 -0000 Date: 28 Jun 2001 06:18:48 -0000 Message-ID: <20010628061848.28000.qmail@mailweb29.rediffmail.com> Received: from unknown (164.164.94.178) by rediffmail.com via HTTP; 28 Jun 2001 06:18:48 -0000 MIME-Version: 1.0 To: "pim@catarina.usc.edu" Subject: Few questions From: "pnh" Content-ID: Content-type: text/plain Content-Description: Body Content-Transfer-Encoding: 7bit Sender: owner-pim@catarina.usc.edu Precedence: bulk Content-Transfer-Encoding: 7bit Hello, I have few doubts in latest PIM-SM draft (draft-ietf-pim-sm-v2-new-02.ps). 1. join and join on same interface is allowed? Spec doesn't seems to be talking about how to handle this? If there is a downstream state why do we need to maintain downstream state? I guess one should ignore prune on a interface if is already present. 2. Why is JoinDesired(S,G) dependent on KeepAlive timer and not just on immediate_olist(S,G)? Thanks for your time. pnh ____________________________________________________ Buy Feng Shui Package for Rs. 151/- only, at http://shopping.rediff.com/shopping/fengshui_mailer.htm From owner-pim@catarina.usc.edu Thu Jun 28 03:34:35 2001 Received: from catarina.usc.edu (catarina.usc.edu [128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id DAA08934 for ; Thu, 28 Jun 2001 03:34:34 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id AAA37279 for pim-list; Thu, 28 Jun 2001 00:27:40 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136]) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id AAA37274 for ; Thu, 28 Jun 2001 00:27:39 -0700 (PDT) Received: from wiprom2mx1.wipro.com (wiprom2mx1.wipro.com [203.197.164.41]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id AAA03716 for ; Thu, 28 Jun 2001 00:27:37 -0700 (PDT) Received: from m2vwall2.wipro.com (m2vwall2.wipro.com [164.164.27.52]) by wiprom2mx1.wipro.com (8.11.3/8.11.3) with SMTP id f5SD27c05099 for ; Thu, 28 Jun 2001 13:02:07 GMT Received: from wipro.com ([127.0.0.1]) by sarovar.mail.wipro.com (Netscape Messaging Server 4.15) with ESMTP id GFMQ4W00.OD4; Thu, 28 Jun 2001 12:59:20 +0530 From: "Jyotheeswara Rao Kurma" To: "pnh" Cc: "pim@catarina.usc.edu" Message-ID: <252751e961.1e96125275@wipro.com> Date: Thu, 28 Jun 2001 12:29:20 +0500 X-Mailer: Netscape Webmail MIME-Version: 1.0 Content-Language: en Subject: Re: Few questions X-Accept-Language: en Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: 7bit Sender: owner-pim@catarina.usc.edu Precedence: bulk Content-Transfer-Encoding: 7bit > 2. Why is JoinDesired(S,G) dependent on KeepAlive timer and not > just on immediate_olist(S,G)? Just for your info . Keep Alive timer will come into picture only when immediate_olist(S,G) is NULL. { This means nobody (down stream) explicitly send (S,G) joins , or no local receivers for (S,G) (IGMP3 requests , or we lost assert etc, i.e immediate_olist(S,G) is null). So we check for inherited_olist(S,G,rpt), which inturn include joins(*,G) etc... (These are not not source specific joins) So, JoinDesiredSG() will be true only when keep alive timer is running, meaning this source is active.(keep alive timer is refreshed by receipt of data packet) i.e If this source has sent some data to this group, in the last ( keep alive expiry timer), we consider that source as active and we consider joindesiredSG as true . There is no point in sending (S,G) Joins if that source is inactive, when none explicitly asked for (S,G) traffic. Whereas Joindesired(*,G) will be based on only immediateolist(*,G) , because we don't who are the potential senders ? > ____________________________________________________ > Buy Feng Shui Package for Rs. 151/- only, at > http://shopping.rediff.com/shopping/fengshui_mailer.htm > > > From owner-pim@catarina.usc.edu Thu Jun 28 05:26:37 2001 Received: from catarina.usc.edu (catarina.usc.edu [128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id FAA09813 for ; Thu, 28 Jun 2001 05:26:36 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id CAA38208 for pim-list; Thu, 28 Jun 2001 02:09:34 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136]) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id CAA38190 for ; Thu, 28 Jun 2001 02:09:29 -0700 (PDT) Received: from ws1-5.us4.outblaze.com (205-158-62-51.outblaze.com [205.158.62.51]) by usc.edu (8.9.3.1/8.9.3/usc) with SMTP id CAA08340 for ; Thu, 28 Jun 2001 02:09:27 -0700 (PDT) Received: (qmail 22492 invoked by uid 1001); 28 Jun 2001 09:08:36 -0000 Message-ID: <20010628090836.22488.qmail@iname.com> Content-Type: text/plain; charset="iso-8859-1" Content-Disposition: inline Content-Transfer-Encoding: 7bit MIME-Version: 1.0 X-Mailer: MIME-tools 5.41 (Entity 5.404) Received: from ws1-5.us4.outblaze.com for [164.164.94.178] via web-mailer on Thu, 28 Jun 2001 17:08:35 +0800 From: "Pawan H" To: pim@catarina.usc.edu Date: Thu, 28 Jun 2001 17:08:35 +0800 Subject: Re: Few questions Sender: owner-pim@catarina.usc.edu Precedence: bulk Content-Transfer-Encoding: 7bit I'll put my question this way. If no downstream router is interested exclicit in (S,G) state, why should one continue to send (S,G) join upstream as long as keep alive timer is active? As I understand this behaviour is needed only if source is *directly connected* so that we can maintain Upstream (s,g) state. If we taken into consideration KeepAlive timer even otherwise, we will maintain (S,G) state indefinitely even if nobody downstream is explicitly interested in (S,G), as long as there is some data flow and inherited_olist(S,G) is non-null. Isn't this is wastage of resources at all upstream routers. pnh -----Original Message----- From: Jyotheeswara Rao Kurma [mailto:jyotheeswara.rao@wipro.com] Sent: Thursday, June 28, 2001 12:59 PM To: pnh Cc: pim@catarina.usc.edu Subject: Re: Few questions > 2. Why is JoinDesired(S,G) dependent on KeepAlive timer and not > just on immediate_olist(S,G)? Just for your info . Keep Alive timer will come into picture only when immediate_olist(S,G) is NULL. { This means nobody (down stream) explicitly send (S,G) joins , or no local receivers for (S,G) (IGMP3 requests , or we lost assert etc, i.e immediate_olist(S,G) is null). So we check for inherited_olist(S,G,rpt), which inturn include joins(*,G) etc... (These are not not source specific joins) So, JoinDesiredSG() will be true only when keep alive timer is running, meaning this source is active.(keep alive timer is refreshed by receipt of data packet) i.e If this source has sent some data to this group, in the last ( keep alive expiry timer), we consider that source as active and we consider joindesiredSG as true . There is no point in sending (S,G) Joins if that source is inactive, when none explicitly asked for (S,G) traffic. Whereas Joindesired(*,G) will be based on only immediateolist(*,G) , because we don't who are the potential senders ? -- _______________________________________________ Make PC-to-Phone calls with Net2Phone. Sign-up today at: http://www.net2phone.com/cgi-bin/link.cgi?121 From owner-pim@catarina.usc.edu Thu Jun 28 14:21:17 2001 Received: from catarina.usc.edu (catarina.usc.edu [128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id OAA25144 for ; Thu, 28 Jun 2001 14:21:13 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id KAA40034 for pim-list; Thu, 28 Jun 2001 10:57:57 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136] (may be forged)) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id KAA40029 for ; Thu, 28 Jun 2001 10:57:56 -0700 (PDT) Received: from redd2202.procket.com (flowpoint.procket.com [209.140.237.1]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id KAA27910 for ; Thu, 28 Jun 2001 10:57:56 -0700 (PDT) Received: from Procket.com (IDENT:jzwiebel@localhost.localdomain [127.0.0.1]) by redd2202.procket.com (8.11.0/8.9.3) with ESMTP id f5SHn7403107; Thu, 28 Jun 2001 10:49:07 -0700 X-Confidential: Procket Confidential/Need to know Message-ID: <3B3B6E13.CD408E28@Procket.com> Date: Thu, 28 Jun 2001 10:49:07 -0700 From: John Zwiebel Organization: Procket Networks X-Mailer: Mozilla 4.76 [en] (X11; U; Linux 2.2.16-22 i686) X-Accept-Language: en MIME-Version: 1.0 To: pnh CC: "pim@catarina.usc.edu" Subject: Re: Few questions References: <20010628061848.28000.qmail@mailweb29.rediffmail.com> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sender: owner-pim@catarina.usc.edu Precedence: bulk Content-Transfer-Encoding: 7bit pnh wrote: > > Hello, > I have few doubts in latest PIM-SM draft (draft-ietf-pim-sm-v2-new-02.ps). > 1. join and join on same interface is allowed? Spec doesn't seems >to be talking about how to handle this? If there is a downstream state why do >we need to maintain downstream state? I guess one should ignore >prune on a interface if is already present. I can read your question many ways, but I'm going to assume that you are asking why a router might need to receive an (S,G)JOIN _and_ and (S,G,RPT)PRUNE on the same interface and how you are suppose to handle this. In a steady state situation you are correct that you can ignore the (S,G,RPT)PRUNE. But remember that what you have here is a situation where the shared-tree and the source-tree overlap so you must maintain information for both trees. What happens if the receiver on the source-tree goes away and you don't separately track the receipt of (S,G,RPT)PRUNEs? (S,G) state is deleted and now you have only (*,G) state which is propagated up the share-tree to the RP which may then have to trigger an (S,G) join toward the source to rebuild the "X-line" (what I call the shortest-path from the source to the RP -- which is just part of the source tree but which has some special requirements and isn't identified by any other term so I call it the "X-line" so I don't have to say "the shortest path from the source to the RP"). Now data flows up the X-line to the RP and down the shared-tree for up to 60 seconds when the router we are talking about receives a (S,G,RPT)PRUNE and creates (S,G,RPT) state to then prune off all the traffic that we just asked for. If you think of the three separate ways traffic can be delivered: -- shared-tree -- source-tree -- X-line (which is required to deliver traffic down the shared-tree) and remember that you have to keep information for each of these because they may arbitrarily overlap or intersect with one another at almost any point in your network. And remember that any of these can change at any time as new receivers come up, the source goes away and/or the RP changes. Then you have a better possibility of meeting all your requirements for sparse-mode. > 2. Why is JoinDesired(S,G) dependent on KeepAlive timer and not just on immediate_olist(S,G)? > I'm assuming you are referring to this macro: bool JoinDesired(S,G) { return( immediate_olist(S,G) != NULL OR ( KeepaliveTimer(S,G) is running AND inherited_olist(S,G) != NULL ) ) } The immediate_olist can be non-NULL if you receive either an (S,G) JOIN _or_ an IGMPv3 host report that specifically lists "S". The second applies to a "last-hop" router. If that router is serving hosts that only run IGMPv2 then the "inherited_olist" is non-NULL because the receiver can only ask for (*,G). If the source stops sending, but the receiver keeps sending (*,G) IGMP host reports, the keepaliveTimer is required to know when to delete the (S,G) from the last-hop so you can tear down that shortest-path. Otherwise that path will be up as long as the receiver continues to send (*,G) IGMP host reports. NOTE that with SSM and IGMPv3 the receiver sends (S,G)host reports so the last-hop router doesn't have to track the keepAliveTimer because now we "assume" that the host knows more about what sources are sending than the router knows. In this case, the (S,G) will stay alive "forever" (or until the host stops asking for it) but this is what we want to have happen. > Thanks for your time. > > pnh > > ____________________________________________________ > Buy Feng Shui Package for Rs. 151/- only, at http://shopping.rediff.com/shopping/fengshui_mailer.htm > > _______________________________________________ > Pim-external mailing list > Pim-external@mailist.procket.com > http://mailist.procket.com/mailman/listinfo/pim-external From owner-pim@catarina.usc.edu Thu Jun 28 19:28:10 2001 Received: from catarina.usc.edu (catarina.usc.edu [128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id TAA15390 for ; Thu, 28 Jun 2001 19:28:10 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id QAA41203 for pim-list; Thu, 28 Jun 2001 16:13:34 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136] (may be forged)) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id QAA41198 for ; Thu, 28 Jun 2001 16:13:33 -0700 (PDT) Received: from web3406.mail.yahoo.com (web3406.mail.yahoo.com [216.115.111.60]) by usc.edu (8.9.3.1/8.9.3/usc) with SMTP id QAA18014 for ; Thu, 28 Jun 2001 16:13:33 -0700 (PDT) Message-ID: <20010628231138.15178.qmail@web3406.mail.yahoo.com> Received: from [129.192.63.220] by web3406.mail.yahoo.com; Thu, 28 Jun 2001 16:11:38 PDT Date: Thu, 28 Jun 2001 16:11:38 -0700 (PDT) From: shyamkumar chindalur Subject: Need Information regarding Test tools for PIM-SM To: pim@catarina.usc.edu MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Sender: owner-pim@catarina.usc.edu Precedence: bulk Hi, I want to know if any testing tools are available for doing protocol conformance, stress testing and/or protocol analysis of PIM-SM. Any information regarding the test tools whether it is free shareware or a commercial software is appreciated. Thanks for the information in advance. Shyam __________________________________________________ Do You Yahoo!? Get personalized email addresses from Yahoo! Mail http://personal.mail.yahoo.com/ From owner-pim@catarina.usc.edu Fri Jun 29 05:38:10 2001 Received: from catarina.usc.edu (catarina.usc.edu [128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id FAA27185 for ; Fri, 29 Jun 2001 05:38:09 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id CAA43228 for pim-list; Fri, 29 Jun 2001 02:15:40 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136]) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id CAA43223 for ; Fri, 29 Jun 2001 02:15:39 -0700 (PDT) Received: from myrealbox.com (mail.myrealbox.com [192.108.102.201]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id CAA07550 for ; Fri, 29 Jun 2001 02:15:39 -0700 (PDT) Received: from ladakh.myrealbox.com [164.164.94.178] by myrealbox.com with Novonyx SMTP Server $Revision: 2.75.1.6 $; Fri, 29 Jun 2001 03:04:17 -0600 (MDT) Message-Id: <5.1.0.14.0.20010629124329.00a838d0@imap.myrealbox.com> X-Sender: pnh@imap.myrealbox.com X-Mailer: QUALCOMM Windows Eudora Version 5.1 Date: Fri, 29 Jun 2001 14:42:29 +0530 To: John Zwiebel From: Pawan Subject: Re: Few questions Cc: "pim@catarina.usc.edu" In-Reply-To: <3B3B6E13.CD408E28@Procket.com> References: <20010628061848.28000.qmail@mailweb29.rediffmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; format=flowed Sender: owner-pim@catarina.usc.edu Precedence: bulk John, Thanks for explaining things in detail. Please see my inline comments. At 10:49 AM 6/28/01 -0700, John Zwiebel wrote: >In a steady state situation you are correct that you can ignore the >(S,G,RPT)PRUNE. >But remember that what you have here is a situation where the >shared-tree and >the source-tree overlap so you must maintain information for both trees. > >What happens if the receiver on the source-tree goes away and you don't >separately track the receipt of (S,G,RPT)PRUNEs? (S,G) state is deleted >and now you have only (*,G) state which is propagated up the share-tree >to >the RP which may then have to trigger an (S,G) join toward the source to >rebuild the "X-line" (what I call the shortest-path from the source to >the >RP -- which is just part of the source tree but which has some special >requirements and isn't identified by any other term so I call it the >"X-line" >so I don't have to say "the shortest path from the source to the RP"). > >Now data flows up the X-line to the RP and down the shared-tree for up >to >60 seconds when the router we are talking about receives a >(S,G,RPT)PRUNE >and creates (S,G,RPT) state to then prune off all the traffic that we >just >asked for. Thanks for in-depth info. Now I understand that why one needs to maintain both states with current spec as (S,G,rpt) prune is not triggered while already in pruned state. >If you think of the three separate ways traffic can be delivered: > -- shared-tree > -- source-tree > -- X-line (which is required to deliver traffic down the shared-tree) > >and remember that you have to keep information for each of these because >they may arbitrarily overlap or intersect with one another at almost >any point in your network. And remember that any of these can change at >any time as new receivers come up, the source goes away and/or the RP >changes. Then you have a better possibility of meeting all your >requirements >for sparse-mode. > > > 2. Why is JoinDesired(S,G) dependent on KeepAlive timer and not just on > immediate_olist(S,G)? > > > >I'm assuming you are referring to this macro: > > bool JoinDesired(S,G) { > return( immediate_olist(S,G) != NULL > OR ( KeepaliveTimer(S,G) is running > AND inherited_olist(S,G) != NULL ) ) > } > >The immediate_olist can be non-NULL if you receive either an (S,G) JOIN >_or_ an IGMPv3 host report that specifically lists "S". > >The second applies to a "last-hop" router. If that router is serving >hosts >that only run IGMPv2 then the "inherited_olist" is non-NULL because the >receiver can only ask for (*,G). As KeepaliveTimer(S,G) will be running even at in-between routers, JoinDesired(S,G) will maintain state even at those upstream routers, even if no downstream router is interested in (S,G) explicitly, i.e. even if all downstream (S,G) states are timed out, we will continue to maintain (S,G) state! Shouldn't we be doing this only at last hop router? Thanks pnh From owner-pim@catarina.usc.edu Fri Jun 29 13:09:06 2001 Received: from catarina.usc.edu (catarina.usc.edu [128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id NAA19202 for ; Fri, 29 Jun 2001 13:09:02 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id JAA44502 for pim-list; Fri, 29 Jun 2001 09:46:30 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136] (may be forged)) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id JAA44497 for ; Fri, 29 Jun 2001 09:46:29 -0700 (PDT) Received: from redd2202.procket.com (flowpoint.procket.com [209.140.237.1]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id JAA25553 for ; Fri, 29 Jun 2001 09:46:19 -0700 (PDT) Received: from Procket.com (IDENT:jzwiebel@localhost.localdomain [127.0.0.1]) by redd2202.procket.com (8.11.0/8.9.3) with ESMTP id f5TGio404224; Fri, 29 Jun 2001 09:44:50 -0700 X-Confidential: Procket Confidential/Need to know Message-ID: <3B3CB082.92CC2A55@Procket.com> Date: Fri, 29 Jun 2001 09:44:50 -0700 From: John Zwiebel Organization: Procket Networks X-Mailer: Mozilla 4.76 [en] (X11; U; Linux 2.2.16-22 i686) X-Accept-Language: en MIME-Version: 1.0 To: Pawan CC: "pim@catarina.usc.edu" Subject: Re: Few questions References: <20010628061848.28000.qmail@mailweb29.rediffmail.com> <5.1.0.14.0.20010629124329.00a838d0@imap.myrealbox.com> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sender: owner-pim@catarina.usc.edu Precedence: bulk Content-Transfer-Encoding: 7bit Pawan wrote: > > John, > > Thanks for explaining things in detail. Please see my inline comments. > > As KeepaliveTimer(S,G) will be running even at in-between routers, > JoinDesired(S,G) > will maintain state even at those upstream routers, even if no > downstream router is interested > in (S,G) explicitly, i.e. even if all downstream (S,G) states are timed > out, we will continue to maintain > (S,G) state! Shouldn't we be doing this only at last hop router? > > Thanks > There is a difference of opinion here. IHNO (I have no opinion). I'll try to outline both sides of the issue. One point is that if the last hop deletes all its outgoing interfaces, then it will trigger a PRUNE toward the source removing the interfaces from the Olist of the upstream routers. If its the last interface in the olist then those routers won't forward traffic and so the KeepaliveTimer won't be updated. (ie JoinDesired(S,G) will go to false). Since this part of the protocol seems to be working, (S,G) state is removed from the SPT, perhaps it doesn't pay to change it. OTOH, the intermediate routers do have to update (S,G)KeepaliveTimer and this may be an expensive process. ("expensive" is in the eye of the beholder -- IHNO). And for the intermediate routers the KeepaliveTimer(S,G) doesn't "do" anything. [And if you are talking about an SSM session that timer doesn't "do" anything anywhere along the SPT] OTOOH, when you are trying to debug a network problem and you want to know if the traffic is flowing or not, being able to look at the mroute and see that the (S,G) expire time is never less than 2:59 tells you that this router is forwarding a steady stream of multicast traffic. So, for a human, this timer is very useful. (Of course, in this case, the timer is just telling you when the last packet went by and isn't doing anything WRT the protocol). From owner-pim@catarina.usc.edu Fri Jun 29 13:13:36 2001 Received: from catarina.usc.edu (catarina.usc.edu [128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id NAA19381 for ; Fri, 29 Jun 2001 13:13:35 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id JAA44438 for pim-list; Fri, 29 Jun 2001 09:35:58 -0700 (PDT) Received: from usc.edu (root@usc.edu [128.125.253.136]) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id JAA44433 for ; Fri, 29 Jun 2001 09:35:53 -0700 (PDT) Received: from sj-msg-core-2.cisco.com (sj-msg-core-2.cisco.com [171.69.24.11]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id JAA18493 for ; Fri, 29 Jun 2001 09:35:51 -0700 (PDT) Received: from kouvelas-u10.cisco.com (kouvelas-u10.cisco.com [128.107.162.231]) by sj-msg-core-2.cisco.com (8.11.3/8.9.1) with ESMTP id f5TGUZx17495; Fri, 29 Jun 2001 09:30:36 -0700 (PDT) Received: from localhost (kouvelas@localhost) by kouvelas-u10.cisco.com (8.8.8-Cisco List Logging/CISCO.WS.1.2) with ESMTP id JAA04679; Fri, 29 Jun 2001 09:30:27 -0700 (PDT) Message-Id: <200106291630.JAA04679@kouvelas-u10.cisco.com> X-Authentication-Warning: kouvelas-u10.cisco.com: kouvelas owned process doing -bs To: Pawan cc: John Zwiebel , "pim@catarina.usc.edu" Subject: Re: Few questions In-reply-to: Your message of "Fri, 29 Jun 2001 14:42:29 +0530." <5.1.0.14.0.20010629124329.00a838d0@imap.myrealbox.com> Date: Fri, 29 Jun 2001 09:30:27 -0700 From: Isidor Kouvelas Sender: owner-pim@catarina.usc.edu Precedence: bulk Pawan writes: >As KeepaliveTimer(S,G) will be running even at in-between routers, >JoinDesired(S,G) >will maintain state even at those upstream routers, even if no >downstream router is interested >in (S,G) explicitly, i.e. even if all downstream (S,G) states are timed >out, we will continue to maintain >(S,G) state! Shouldn't we be doing this only at last hop router? The issue is that it is impossible to distinguish a turnaround router from one where the shared and shortest path trees just cross. Hence, once the SPT has been set up in an intermediate router you may create intermediate outages for downstream receivers whose DR is configured with "spt-threshold infinity" if you stop joining the (S,G) while the source is still active. thanks I From owner-pim@catarina.usc.edu Fri Jun 29 14:01:59 2001 Received: from catarina.usc.edu (catarina.usc.edu [128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id OAA21173 for ; Fri, 29 Jun 2001 14:01:57 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id KAA44831 for pim-list; Fri, 29 Jun 2001 10:37:53 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136]) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id KAA44826 for ; Fri, 29 Jun 2001 10:37:52 -0700 (PDT) Received: from myrealbox.com (mail.myrealbox.com [192.108.102.201]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id KAA04687 for ; Fri, 29 Jun 2001 10:37:49 -0700 (PDT) Received: from ladakh.myrealbox.com [164.164.94.178] by myrealbox.com with Novonyx SMTP Server $Revision: 2.75.1.6 $; Fri, 29 Jun 2001 11:31:58 -0600 (MDT) Message-Id: <5.1.0.14.0.20010629224934.00a89aa0@imap.myrealbox.com> X-Sender: pnh@imap.myrealbox.com X-Mailer: QUALCOMM Windows Eudora Version 5.1 Date: Fri, 29 Jun 2001 23:04:55 +0530 To: Isidor Kouvelas From: Pawan Subject: Re: Few questions Cc: John Zwiebel , "pim@catarina.usc.edu" In-Reply-To: <200106291630.JAA04679@kouvelas-u10.cisco.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; format=flowed Sender: owner-pim@catarina.usc.edu Precedence: bulk Thanks Isidor, But I'm not clear why should there be any outages in downstream, provided router switching from RPT to SPT takes care of sending (S,G,rpt) Join towards RP and when first data packet is received on RPT, send prune towards SPT. But yes, it will be very difficult to achieve so if both SPT and RPT is through same LAN! My main concern is regarding the unnecessary (S,G) states at all upstream router even when nobody downstream is actually interested in (S,G) specifically. Thanks Pawan At 09:30 AM 6/29/01 -0700, Isidor Kouvelas wrote: >Pawan writes: > >As KeepaliveTimer(S,G) will be running even at in-between routers, > >JoinDesired(S,G) > >will maintain state even at those upstream routers, even if no > >downstream router is interested > >in (S,G) explicitly, i.e. even if all downstream (S,G) states are timed > >out, we will continue to maintain > >(S,G) state! Shouldn't we be doing this only at last hop router? > >The issue is that it is impossible to distinguish a turnaround router >from one where the shared and shortest path trees just cross. Hence, >once the SPT has been set up in an intermediate router you may create >intermediate outages for downstream receivers whose DR is configured >with "spt-threshold infinity" if you stop joining the (S,G) while the >source is still active. > >thanks >I From owner-pim@catarina.usc.edu Fri Jun 29 14:11:15 2001 Received: from catarina.usc.edu (catarina.usc.edu [128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id OAA21603 for ; Fri, 29 Jun 2001 14:11:14 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id KAA44816 for pim-list; Fri, 29 Jun 2001 10:36:40 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136]) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id KAA44811 for ; Fri, 29 Jun 2001 10:36:39 -0700 (PDT) Received: from redd2202.procket.com (flowpoint.procket.com [209.140.237.1]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id KAA03687 for ; Fri, 29 Jun 2001 10:36:36 -0700 (PDT) Received: from Procket.com (IDENT:jzwiebel@localhost.localdomain [127.0.0.1]) by redd2202.procket.com (8.11.0/8.9.3) with ESMTP id f5THYq404347; Fri, 29 Jun 2001 10:34:52 -0700 X-Confidential: Procket Confidential/Need to know Message-ID: <3B3CBC3C.1E1B5958@Procket.com> Date: Fri, 29 Jun 2001 10:34:52 -0700 From: John Zwiebel Organization: Procket Networks X-Mailer: Mozilla 4.76 [en] (X11; U; Linux 2.2.16-22 i686) X-Accept-Language: en MIME-Version: 1.0 To: Isidor Kouvelas CC: Pawan , "pim@catarina.usc.edu" Subject: Re: Few questions References: <200106291630.JAA04679@kouvelas-u10.cisco.com> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sender: owner-pim@catarina.usc.edu Precedence: bulk Content-Transfer-Encoding: 7bit Isidor Kouvelas wrote: > > Pawan writes: > >As KeepaliveTimer(S,G) will be running even at in-between routers, > >JoinDesired(S,G) > >will maintain state even at those upstream routers, even if no > >downstream router is interested > >in (S,G) explicitly, i.e. even if all downstream (S,G) states are timed > >out, we will continue to maintain > >(S,G) state! Shouldn't we be doing this only at last hop router? > > The issue is that it is impossible to distinguish a turnaround router > from one where the shared and shortest path trees just cross. I don't believe this statement is true otherwise you'd have to always have a turnaround router when these two paths cross. You know its a "turnaround router" when you receive a JOIN/PRUNE message that has only a (*,G) part and no (S,G) part (prune or join). So, I think what you mean is that unless you specifically record this information and mark the router as being in this state, you won't know that its a turnaround router. So, I'm assuming that what you (Isidor) mean here is that unless you mark the (S,G) entry as a "turnaround" entry, then it is indeed impossible to know this from just looking at the information in the mroute. Let me expand on what Isidor is saying... FWIW: A "turnaround" router prevents data flowing all the way to the RP when a member (last-hop router) wants to remain on the shared-tree. The new spec doesn't address this completely. Whether or not you want to implement this capability is debatable. On the plus side, you save network bandwidth as data isn't constantly forwarded to the RP. On the negitive side, well, it isn't necessarily "easy" to implement. Also, it isn't clear yet how often a network will be configured so that some receivers will stay on the shared-tree and some will switch to the shortest path. But the advantages are also dependent on the physical layout of your network. If your RP is on the edge, it will initially join toward the source (one branch in the SPT which I've called the X-line) so now you have a shortest tree branch. Even if _all_ your receivers are configured to remain on the shared-tree you may still have the X-line intercept a shared-tree branch a long way (in hops) from the RP. Now, if your source is spewing out tons of traffic and your RP is at the end of a fairly skinny pipe, you have problems. (One of them being you've designed your network poorly, but that's another problem.)  > Hence, > once the SPT has been set up in an intermediate router you may create > intermediate outages for downstream receivers whose DR is configured > with "spt-threshold infinity" if you stop joining the (S,G) while the > source is still active. > (FWIW, turnaround routers only exist where the shortest-path from the source to the RP intersects with a shared-tree branch. Cisco uses a X to mark such routers. Hence, I call it the X-line.) The spec (S,G) keepalive timer is only updated when traffic is forwarded by the router. The "classic" turnaround router has an (S,G) with a NULL olist and therefore must update the Keepalive timer when it "sees" traffic on the RPF interface toward the source. Note that as long as the RP _knows_ there are receivers on the shared-tree only (ie it is receiving (*,G) joins without an (S,G) part) it is responsible for pulling source traffic all the way to the RP. The turnaround router moves this functionality to the first point (points since there can be many share-tree branches) where the shared-tree-branch and X-line overlap. Now, isn't this a lot more than you wanted to know? The spec only mentions the turnaround router in passing. Here I do have an opinion that a turnaround router is a "good thing". I admit though that the changes in the way multicast traffic is forwarded may make it obsolete. (or perhaps in the way PIM-SM is used in a given network make it unnecessary.) From owner-pim@catarina.usc.edu Fri Jun 29 14:16:20 2001 Received: from catarina.usc.edu (catarina.usc.edu [128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id OAA21757 for ; Fri, 29 Jun 2001 14:16:17 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id KAA44929 for pim-list; Fri, 29 Jun 2001 10:45:04 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136]) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id KAA44924 for ; Fri, 29 Jun 2001 10:45:03 -0700 (PDT) Received: from redd2202.procket.com (flowpoint.procket.com [209.140.237.1]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id KAA10839 for ; Fri, 29 Jun 2001 10:45:01 -0700 (PDT) Received: from Procket.com (IDENT:jzwiebel@localhost.localdomain [127.0.0.1]) by redd2202.procket.com (8.11.0/8.9.3) with ESMTP id f5THhE404368; Fri, 29 Jun 2001 10:43:14 -0700 X-Confidential: Procket Confidential/Need to know Message-ID: <3B3CBE32.3DD5E49D@Procket.com> Date: Fri, 29 Jun 2001 10:43:14 -0700 From: John Zwiebel Organization: Procket Networks X-Mailer: Mozilla 4.76 [en] (X11; U; Linux 2.2.16-22 i686) X-Accept-Language: en MIME-Version: 1.0 To: Pawan CC: "pim@catarina.usc.edu" Subject: Re: Few questions References: <5.1.0.14.0.20010629224934.00a89aa0@imap.myrealbox.com> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sender: owner-pim@catarina.usc.edu Precedence: bulk Content-Transfer-Encoding: 7bit Pawan wrote: > > Thanks Isidor, > > But I'm not clear why should there be any outages in downstream, provided > router switching from RPT to SPT takes care of sending (S,G,rpt) Join towards Did you mean "Prune"? (S,G,R)JOINs are very rare and only used to override a prune when you've had a "strange" topology that causes the upstream routers assert for who the forwarder is. > RP and when first data packet is received on RPT, send prune towards SPT. > But yes, it will be very difficult to achieve so if both SPT and RPT is > through same > LAN! > My main concern is regarding the unnecessary (S,G) states at all upstream > router > even when nobody downstream is actually interested in (S,G) specifically. > This doesn't happen. From owner-pim@catarina.usc.edu Fri Jun 29 14:40:06 2001 Received: from catarina.usc.edu (catarina.usc.edu [128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id OAA22507 for ; Fri, 29 Jun 2001 14:40:06 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id LAA45285 for pim-list; Fri, 29 Jun 2001 11:16:14 -0700 (PDT) Received: from usc.edu (root@usc.edu [128.125.253.136]) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id LAA45280 for ; Fri, 29 Jun 2001 11:16:13 -0700 (PDT) Received: from sj-msg-core-2.cisco.com (sj-msg-core-2.cisco.com [171.69.24.11]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id LAA06842 for ; Fri, 29 Jun 2001 11:16:10 -0700 (PDT) Received: from kouvelas-u10.cisco.com (kouvelas-u10.cisco.com [128.107.162.231]) by sj-msg-core-2.cisco.com (8.11.3/8.9.1) with ESMTP id f5TIC5x07574; Fri, 29 Jun 2001 11:12:05 -0700 (PDT) Received: from localhost (kouvelas@localhost) by kouvelas-u10.cisco.com (8.8.8-Cisco List Logging/CISCO.WS.1.2) with ESMTP id LAA04742; Fri, 29 Jun 2001 11:11:57 -0700 (PDT) Message-Id: <200106291811.LAA04742@kouvelas-u10.cisco.com> X-Authentication-Warning: kouvelas-u10.cisco.com: kouvelas owned process doing -bs To: Pawan cc: Isidor Kouvelas , John Zwiebel , "pim@catarina.usc.edu" Subject: Re: Few questions In-reply-to: Your message of "Fri, 29 Jun 2001 23:04:55 +0530." <5.1.0.14.0.20010629224934.00a89aa0@imap.myrealbox.com> Date: Fri, 29 Jun 2001 11:11:57 -0700 From: Isidor Kouvelas Sender: owner-pim@catarina.usc.edu Precedence: bulk Pawan writes: >Thanks Isidor, > >But I'm not clear why should there be any outages in downstream, provided >router switching from RPT to SPT takes care of sending (S,G,rpt) Join towards >RP and when first data packet is received on RPT, send prune towards SPT. >But yes, it will be very difficult to achieve so if both SPT and RPT is >through same LAN! You are right. But this behaviour is not defined in the spec... >My main concern is regarding the unnecessary (S,G) states at all upstream router >even when nobody downstream is actually interested in (S,G) specifically. The main point is that intermediate routers should not *create* (S,G) state. If soneone initially requests (S,G) state I do not think it is a real problem keeping it around till the source stops sending or the receivers leave. thanks I From owner-pim@catarina.usc.edu Fri Jun 29 14:57:56 2001 Received: from catarina.usc.edu (catarina.usc.edu [128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id OAA22924 for ; Fri, 29 Jun 2001 14:57:54 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id LAA45457 for pim-list; Fri, 29 Jun 2001 11:29:24 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136] (may be forged)) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id LAA45452 for ; Fri, 29 Jun 2001 11:29:23 -0700 (PDT) Received: from myrealbox.com (mail.myrealbox.com [192.108.102.201]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id LAA16978 for ; Fri, 29 Jun 2001 11:29:20 -0700 (PDT) Received: from ladakh.myrealbox.com [164.164.94.178] by myrealbox.com with Novonyx SMTP Server $Revision: 2.75.1.6 $; Fri, 29 Jun 2001 12:22:50 -0600 (MDT) Message-Id: <5.1.0.14.0.20010629232805.00ac9020@imap.myrealbox.com> X-Sender: pnh@imap.myrealbox.com X-Mailer: QUALCOMM Windows Eudora Version 5.1 Date: Fri, 29 Jun 2001 23:56:16 +0530 To: John Zwiebel From: Pawan Subject: Re: Few questions Cc: "pim@catarina.usc.edu" In-Reply-To: <3B3CBE32.3DD5E49D@Procket.com> References: <5.1.0.14.0.20010629224934.00a89aa0@imap.myrealbox.com> Mime-Version: 1.0 Content-Type: multipart/alternative; boundary="=====================_549638127==_.ALT" Sender: owner-pim@catarina.usc.edu Precedence: bulk --=====================_549638127==_.ALT Content-Type: text/plain; charset="us-ascii"; format=flowed John, No I meant (S,G,rpt) Join towards RPT, since it had previously sent (S,G,rpt) Prune towards RPT when (S,G) state was established. Consider following scenario. RPT SPT | | | | +----+ +----+ | T4 | | T5 | +----+ +----+ \ / \ / \ / +----+ +---| T1 |---+ / +----+ \ / \ / \ +----+ +----+ | T2 | | T3 | +----+ +----+ | | R1 R2 R1 sends (S,G) Join and R2 send (*,G) Join. There will be (*,G) state at T1, T3 and T4 and (S,G) state at T1, T2 and T5. Besides T4 hold (S,G,rpt) Prune state. Now at some later point of time, R1 disappears which will make T2 to send (S,G) prune towards T1. Now no (S,G) state at T2. and nobody downstream of T1 is specifically interested in (S,G) (R2 is interested in *,G ). But because of keepalive timer T1 can never switch back! and everyone holds what ever state they are holding as long as Keepalive timer keeps ticking at T1. To correct this (I mean to release the resources), T1 could have sent (S,G,rpt) Join towards T4 and once packet is received on (*,G) send (S,G) prune towards T5. I understand the issue if both T4 and T5 are no same LAN. I guess one can either go for duplicate packets for some time or a data flow break for some time. Thanks Pawan At 10:43 AM 6/29/01 -0700, John Zwiebel wrote: >Pawan wrote: > > > > Thanks Isidor, > > > > But I'm not clear why should there be any outages in downstream, provided > > router switching from RPT to SPT takes care of sending (S,G,rpt) Join > towards > >Did you mean "Prune"? (S,G,R)JOINs are very rare and only used to >override >a prune when you've had a "strange" topology that causes the upstream >routers >assert for who the forwarder is. > > > RP and when first data packet is received on RPT, send prune towards SPT. > > But yes, it will be very difficult to achieve so if both SPT and RPT is > > through same > > LAN! > > My main concern is regarding the unnecessary (S,G) states at all upstream > > router > > even when nobody downstream is actually interested in (S,G) specifically. > > > >This doesn't happen. --=====================_549638127==_.ALT Content-Type: text/html; charset="us-ascii" John,
   No I meant (S,G,rpt) Join towards RPT, since it had previously sent (S,G,rpt) Prune towards RPT when (S,G) state was established.

Consider following scenario.


      RPT           SPT
       |             |
       |             |
     +----+        +----+
     | T4 |        | T5 |
     +----+        +----+
         \          / 
          \        / 
           \      /   
            +----+   
        +---| T1 |---+
       /    +----+    \
      /                \   
     /                  \  
  +----+              +----+
  | T2 |              | T3 |
  +----+              +----+
    |                   |
    R1                 R2

R1 sends (S,G) Join and R2 send  (*,G) Join.

There will be (*,G) state at T1, T3 and T4 and (S,G) state at T1, T2 and T5.
Besides T4 hold (S,G,rpt) Prune state.

Now at some later point of time, R1 disappears which will make T2 to send (S,G) prune towards T1. Now no (S,G) state at T2.
and nobody downstream of T1 is specifically interested in (S,G)  (R2 is interested in *,G ).
But because of keepalive timer T1 can never switch back! and everyone holds what ever state they are holding as long as Keepalive timer keeps ticking at T1.

To correct this (I mean to release the resources), T1 could have sent (S,G,rpt) Join towards T4 and once packet is received on (*,G) send (S,G) prune towards T5. I understand the issue if both T4 and T5 are no same LAN. I guess one can either go for duplicate packets for some time or a data flow break for some time.


Thanks
Pawan

At 10:43 AM 6/29/01 -0700, John Zwiebel wrote:
Pawan wrote:
>
> Thanks Isidor,
>
> But I'm not clear why should there be any outages in downstream, provided
> router switching from RPT to SPT takes care of sending (S,G,rpt) Join towards

Did you mean "Prune"?  (S,G,R)JOINs are very rare and only used to
override
a prune when you've had a "strange" topology that causes the upstream
routers
assert for who the forwarder is.

> RP and when first data packet is received on RPT, send prune towards SPT.
> But yes, it will be very difficult to achieve so if both SPT and RPT is
> through same
> LAN!
> My main concern is regarding the unnecessary (S,G) states at all upstream
> router
> even when nobody downstream is actually interested in (S,G) specifically.
>

This doesn't happen.
--=====================_549638127==_.ALT-- From owner-pim@catarina.usc.edu Fri Jun 29 15:03:01 2001 Received: from catarina.usc.edu (catarina.usc.edu [128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id PAA23119 for ; Fri, 29 Jun 2001 15:03:00 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id LAA45483 for pim-list; Fri, 29 Jun 2001 11:31:00 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136] (may be forged)) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id LAA45478 for ; Fri, 29 Jun 2001 11:30:59 -0700 (PDT) Received: from motgate4.mot.com (motgate4.mot.com [144.189.100.102]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id LAA18087 for ; Fri, 29 Jun 2001 11:30:57 -0700 (PDT) Received: [from pobox.mot.com (pobox.mot.com [129.188.137.100]) by motgate4.mot.com (motgate4 2.1) with ESMTP id LAA21381 for ; Fri, 29 Jun 2001 11:29:54 -0700 (MST)] Received: [from il06exb01.corp.mot.com (il06exb01.corp.mot.com [199.5.78.83]) by pobox.mot.com (MOT-pobox 2.0) with ESMTP id LAA13106 for ; Fri, 29 Jun 2001 11:29:54 -0700 (MST)] Received: by il06exb01.corp.mot.com with Internet Mail Service (5.5.2653.19) id ; Fri, 29 Jun 2001 13:29:53 -0500 Message-ID: <1B1F9F30D74AD51188C8009027E33B3F0B080F@il06exm03.corp.mot.com> From: Mathur Sonum-CSM109 To: "'John Zwiebel'" , Pawan Cc: pim@catarina.usc.edu Subject: RE: Few questions Date: Fri, 29 Jun 2001 13:29:50 -0500 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2653.19) Content-Type: text/plain Sender: owner-pim@catarina.usc.edu Precedence: bulk > > Did you mean "Prune"? (S,G,R)JOINs are very rare and only used to > override > a prune when you've had a "strange" topology that causes the upstream > routers > assert for who the forwarder is. (S,G,R) Joins are possible even without asserts - when a router sends (S,G,R) Prune on the shared X-line and some other router (who is just on a shared tree) wants to override this (S,G,R) Prune. This other router will send (S,G,R) Join towards RP or the turnaround router (when RP is away case). -- Sonum From owner-pim@catarina.usc.edu Fri Jun 29 15:34:09 2001 Received: from catarina.usc.edu (catarina.usc.edu [128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id PAA23864 for ; Fri, 29 Jun 2001 15:34:06 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id MAA46148 for pim-list; Fri, 29 Jun 2001 12:09:51 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136]) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id MAA46143 for ; Fri, 29 Jun 2001 12:09:49 -0700 (PDT) Received: from redd2202.procket.com (flowpoint.procket.com [209.140.237.1]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id MAA17581 for ; Fri, 29 Jun 2001 12:09:46 -0700 (PDT) Received: from Procket.com (IDENT:jzwiebel@localhost.localdomain [127.0.0.1]) by redd2202.procket.com (8.11.0/8.9.3) with ESMTP id f5TJ8G404468; Fri, 29 Jun 2001 12:08:16 -0700 X-Confidential: Procket Confidential/Need to know Message-ID: <3B3CD220.C722EE18@Procket.com> Date: Fri, 29 Jun 2001 12:08:16 -0700 From: John Zwiebel Organization: Procket Networks X-Mailer: Mozilla 4.76 [en] (X11; U; Linux 2.2.16-22 i686) X-Accept-Language: en MIME-Version: 1.0 To: Mathur Sonum-CSM109 CC: pim@catarina.usc.edu Subject: Re: Few questions References: <1B1F9F30D74AD51188C8009027E33B3F0B080F@il06exm03.corp.mot.com> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sender: owner-pim@catarina.usc.edu Precedence: bulk Content-Transfer-Encoding: 7bit Mathur Sonum-CSM109 wrote: > > > > > Did you mean "Prune"? (S,G,R)JOINs are very rare and only used to > > override > > a prune when you've had a "strange" topology that causes the upstream > > routers > > assert for who the forwarder is. > > (S,G,R) Joins are possible even without asserts - when a router sends (S,G,R) Prune on the shared X-line and some other router (who is just on a shared tree) wants to override this (S,G,R) Prune. This other router will send (S,G,R) Join towards RP or the turnaround router (when RP is away case). > I didn't say they weren't possible. I was trying to understand the question being posed since it talked about switching from the RPT to the SPT and sending an (S,G,R) JOIN. I think Pawan meant to say that when you switch back from the shortest-path to the shared-path. IMHO, not a good thing to plan on doing since it ends up with data paths coming and going and will result in duplicate packets that may then cause you to exceed your spt-threshold so you switch back to the shortest-path again, only to then flip-flop back to the shared-tree again. If you get lots of receivers doing this your network gets hosed. Your mileage may very. Depending on your implementation, the only time you should need to send an (s,g,r)join override is when you have a LAN with two upstream routers, one the RPF to the RP the other the RPF to the source, and two downstream routers, one staying on the shared tree, one trying to prune the shared-tree (so sending the (s,g,r) prunes that have to be overridden). If the (s,g,r) prunes are being sent to the upstream router that is the RPF to the RP, there's no reason to send an (s,g,r) join to override this since the upstream "should have known" that there was a downstream router that wanted to stay on the shared-tree and it wouldn't prune this interface. So, its the "other" upstream router that would be receiving the (s,g,r) prune that would have to be overridden. The only way the "other" router can become the RPF is through some kind of assert process so that both downstream routers now use RPF' for the (s,g,r). (s,g,r)JOINs should be a very, very rare occurance. From owner-pim@catarina.usc.edu Fri Jun 29 16:20:52 2001 Received: from catarina.usc.edu (catarina.usc.edu [128.125.51.47]) by ietf.org (8.9.1a/8.9.1a) with SMTP id QAA24736 for ; Fri, 29 Jun 2001 16:20:51 -0400 (EDT) Received: (from majordom@localhost) by catarina.usc.edu (8.9.3/8.9.3) id MAA46885 for pim-list; Fri, 29 Jun 2001 12:49:17 -0700 (PDT) X-Authentication-Warning: catarina.usc.edu: majordom set sender to owner-pim@catarina.usc.edu using -f Received: from usc.edu (root@usc.edu [128.125.253.136]) by catarina.usc.edu (8.9.3/8.9.3) with ESMTP id MAA46880 for ; Fri, 29 Jun 2001 12:49:16 -0700 (PDT) Received: from motgate.mot.com (motgate.mot.com [129.188.136.100]) by usc.edu (8.9.3.1/8.9.3/usc) with ESMTP id MAA15164 for ; Fri, 29 Jun 2001 12:49:15 -0700 (PDT) Received: [from pobox.mot.com (pobox.mot.com [129.188.137.100]) by motgate.mot.com (motgate 2.1) with ESMTP id MAA01773 for ; Fri, 29 Jun 2001 12:48:15 -0700 (MST)] Received: [from il06exw10.corp.mot.com (il06exw10.corp.mot.com [199.5.78.81]) by pobox.mot.com (MOT-pobox 2.0) with ESMTP id MAA13097 for ; Fri, 29 Jun 2001 12:48:15 -0700 (MST)] Received: by il06exw10.corp.mot.com with Internet Mail Service (5.5.2653.19) id ; Fri, 29 Jun 2001 14:48:15 -0500 Message-ID: <1B1F9F30D74AD51188C8009027E33B3F0B0810@il06exm03.corp.mot.com> From: Mathur Sonum-CSM109 To: "'John Zwiebel'" Cc: pim@catarina.usc.edu Subject: RE: Few questions Date: Fri, 29 Jun 2001 14:48:14 -0500 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2653.19) Content-Type: text/plain Sender: owner-pim@catarina.usc.edu Precedence: bulk > Depending on your implementation, the only time you should > need to send > an (s,g,r)join override is when you have a LAN with two upstream > routers, > one the RPF to the RP the other the RPF to the source, and two > downstream > routers, one staying on the shared tree, one trying to prune the > shared-tree > (so sending the (s,g,r) prunes that have to be overridden). > > If the (s,g,r) prunes are being sent to the upstream router > that is the > RPF > to the RP, there's no reason to send an (s,g,r) join to override this > since > the upstream "should have known" that there was a downstream > router that > wanted > to stay on the shared-tree and it wouldn't prune this interface. > But when this upstream router received (*,G) Joins (without (S,G,R) Prune) from two downstreams on the same X-line, it doesn't keep track of the number of downstreams. So, when the upstream router receives triggered (S,G,R) Prune from one downstream, the upstream router cannot know that other downstream exists. Its the other downstream's responsibility to tell upstream that he wants to override - typical Prune override case on shared links. And this is done by (S,G,R) Join -- Sonum