From root  Wed May 24 16:28:51 2006
Return-Path: <meini@dm.unipi.it>
Received: from tonelli.dm.unipi.it (ltonelli.private [192.168.1.6])
	by gauss.dm.unipi.it (8.12.8/8.12.8) with ESMTP id k4OESmAj028925
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK)
	for <steffe@dm.unipi.it>; Wed, 24 May 2006 16:28:48 +0200
Received: from tonelli.dm.unipi.it (localhost.localdomain [127.0.0.1])
	by tonelli.dm.unipi.it (8.12.8/8.12.8) with ESMTP id k4OESlBC007720
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO)
	for <steffe@dm.unipi.it>; Wed, 24 May 2006 16:28:47 +0200
Received: from localhost (meini@localhost)
	by tonelli.dm.unipi.it (8.12.8/8.12.8/Submit) with ESMTP id k4OESlsZ007716
	for <steffe@dm.unipi.it>; Wed, 24 May 2006 16:28:47 +0200
X-Authentication-Warning: tonelli.dm.unipi.it: meini owned process doing -bs
Date: Wed, 24 May 2006 16:28:47 +0200 (CEST)
From: Beatrice Meini <meini@dm.unipi.it>
To: "Sergio Steffe'" <steffe@dm.unipi.it>
Subject: esempi
Message-ID: <Pine.LNX.4.44.0605241626580.1790-300000@tonelli.dm.unipi.it>
MIME-Version: 1.0
Content-Type: MULTIPART/Mixed; BOUNDARY=Trip_of_Goats_078_000
Content-ID: <Pine.LNX.4.44.0605241626581.1790@tonelli.dm.unipi.it>
X-Virus-Scanned: by AMaViS 0.3.12
X-Spam-Checker-Version: SpamAssassin 3.0.2 (2004-11-16) on gauss.dm.unipi.it
X-Spam-Level: 
X-Spam-Status: No, score=-5.4 required=2.2 tests=ALL_TRUSTED,BAYES_00,
	MIME_BASE64_TEXT,TW_IJ,TW_JF autolearn=ham version=3.0.2
Status: R

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
  Send mail to mime@docserver.cac.washington.edu for more info.

--Trip_of_Goats_078_000
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Content-ID: <Pine.LNX.4.44.0605241626582.1790@tonelli.dm.unipi.it>

Benny ha inviato 2 function che generano gli esempi: examples.m (che 
avevamo gia') genera dei QBD, mentre MG1_examples genera gli esempi per 
l'MG1.
Ciao
Beatrice

--Trip_of_Goats_078_000
Content-Type: TEXT/PLAIN; NAME="MG1_examples.m"; CHARSET=us-ascii; X-UNIX-MODE=0744
Content-ID: <Pine.LNX.4.44.0605241626583.1790@tonelli.dm.unipi.it>
Content-Description: MG1_examples.m

function A=MG1_examples(examp)

if (examp==1)
    M=20; % number of on/off sources
    a=0.01; % 1/a = mean on time
    b=a; % 1/b = mean off time
    d=10.5; % probability of generating a packet when on is 1/d
    % system is pos. recurrent (for a=b) if M/(2d) < 1

    temp=zeros(M+1,M+1);
    temp(1,1)=1-M*b;
    temp(1,2)=M*b;
    for i=2:M
        temp(i,i-1)=(i-1)*a;
        temp(i,i+1)=(M-i+1)*b;
        temp(i,i)=1-temp(i,i-1)-temp(i,i+1);
    end;
    temp(M+1,M)=a*M;
    temp(M+1,M+1)=1-a*M;
    for j=0:M
        C=zeros(M+1,M+1);
        for i=0:M
            if (i >= j)
                C(i+1,i+1)=nchoosek(i,j)*(1/d)^j*((d-1)/d)^(i-j);
            end
        end
        if (sum(sum(C*temp))> 10^(-100))
            D(1:M+1,(M+1)*j+1:(M+1)*(j+1))=C*temp;
        end
    end
    A=D;
end
if (examp==2)
    % % Script dat de oplossing van een D-BMAP/D/1/K queueing systeem berekent als
    % % . de input D-BMAP een circulante D-BMAP is (onderliggende tijdseenheid is lengte
    % %   MPEG frame, wordt omgezet naar slot als onderliggende tijdseenheid) waarbij
    % %   het aantal arrivals in een slot bepaald wordt door een Poisson distributie
    % %   met gemiddelde rate ./ (# slots in een frame tijd),
    % % . de deterministische service tijd de tijd is om een pakket op de uitgaande link
    % %   te plaatsen (= slot)
    %
    % % Input
    % % -----
    % % Inlezen data circulant.  Pas evt. de naam van de files waaruit de data moet
    % % gelezen worden aan.
    % load bond circ per
    % load bond43 rate
    %
    % % File waarin output moet geschreven worden -> outfile
    % outfile = 'clrbond43';
    %

    % Size queueing systeem -> K  (K-1 bufferplaatsen, 1 server plaats)
    K = 101;

    %
    % % Definieer de rate van de uitgaande link (in Mbps) -> linkrate
    % linkrate = 37.44;
    %
    % % Definieer de pakketlengte (= payload + header) (in bytes) -> pakket
    % pakket = 53;
    %
    % % Definieer de lengte van een MPEG frame (in ms) -> frame
    % frame = 45;
    %

    % Om te bepalen welke matrices Q_i van de circulant relevante data bevatten
    % wordt die M bepaald waarvoor (Q_0 + Q_1 + ... + Q_M)e op alle posities
    % strikt groter is dan 1-grens.
    grens = 10^-15;


    rate = [0.14 0.2 0.5 1 1.4 2.7];
    circ = [0.2 0.5 0.3];
    per = 2;

    % ---------------------------------------------------------------------------

    % Bepaal dimensie circulant -> N
    N = length(rate);

    % Construeer transitiematrix circulant -> Q
    if per > 1
        first = zeros(1,N);
        i = 2 : per : N - per + 2;
        first(i) = circ;
    else
        first = circ;
    end;
    Q = zeros(N,N);
    for i = 1 : N
        Q(i,:) = [first(N-i+2:N) first(1:N-i+1)];
    end;

    % % Bereken de lengte van een slot (in microsec) -> slot.
    % slot = pakket * 8 / linkrate;
    %
    % % Bereken het aantal slots in een frame lengte -> x
    % x = frame * 1000 / slot;
    %
    % % Transformeer circulante D-BMAP naar D-BMAP met 1 slot als onderliggende
    % % tijdseenheid.  Veronderstel dat het aantal slots dat je in een toestand
    % % blijft geometrisch verdeeld is met gemiddelde x.
    % p = 1 - inv(x);
    % Q = (1-p) * Q;
    % Q = Q + p * eye(N);
    % rate = rate ./ x;

    % Construeer de matrices Q_i (i = 0, ...,M, waarbij M door grens bepaald
    % wordt) en plaats ze in een array fstrow = [Q_0 ... Q_M] als M <= K, en
    % fstrow = [Q_0 ... Q_K-1 Q*_K] waarbij Q*_K = sum_{k=k}^M Q_k als M > K.
    Qi = diag(exp(-rate)) * Q;
    Qsum = sum(Qi,2);
    i = 0;
    fstrow(1:N,1:N) = Qi;
    while sum(Qsum > 1-grens) < N
        i = i+1;
        Qi = diag(rate ./ i) * Qi;
        if i < K
            fstrow(:,i*N+1:(i+1)*N) = Qi;
        else
            fstrow(:,K*N+1:(K+1)*N) = fstrow(:,K*N+1:(K+1)*N) + Qi;
        end;
        Qsum = Qsum + sum(Qi,2);
    end;

    t = find(fstrow < 0);
    fstrow(t) = 0;

    % Normaliseer rijen van fstrow
    Qsum = sum(fstrow,2);
    fstrow = diag(1./Qsum) * fstrow;

    % % Bereken systeembezetting -> sysoccup
    % sysoccup = grassmann(N,K+1,fstrow,fstrow);
    %
    % % Bereken ook de matrix Ql met K kolommen waar kolom i (i=0,...,K-1) de
    % % vector Qi*e bevat.
    % Ql = zeros(N,K);
    % for i = 0 : (size(fstrow,2)/N)-1;
    %    Ql(:,i+1) = sum(fstrow(:,i*N+1:(i+1)*N),2);
    % end;
    %
    % % Bereken de gemiddelde arrivalrate
    % lambda = sum(rate) / N;
    %
    % % Bereken de pakket loss ratio
    % loss = clr(Ql,lambda,K,sysoccup);
    %
    % % Bewaar sysoccup en loss in outputfile
    % eval(['save ' outfile ' sysoccup loss K linkrate pakket frame']);
    %
    %
    A=fstrow;
end
    



--Trip_of_Goats_078_000
Content-Type: TEXT/PLAIN; NAME="examples.m"; CHARSET=US-ASCII; X-UNIX-MODE=0744
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.44.0605241626584.1790@tonelli.dm.unipi.it>
Content-Description: examples.m

ZnVuY3Rpb24gW0EwLEExLEEyXT1leGFtcGxlcyhleGFtcCkNCg0KaWYgKGV4
YW1wPT0xKQ0KICAgIHA9MTBeKC04KTsNCiAgICBBMD1bMS1wIDA7IDAgMF07
DQogICAgQTE9WzAgcDsgMipwIDBdOw0KICAgIEEyPVswIDA7IDAgMS0yKnBd
Ow0KZW5kDQppZiAoZXhhbXA9PTIpDQogICAgSz0zOw0KDQogICAgbWtzPVsy
IDMgMV07DQogICAgc3VtbWtzPVsyIDUgNl07DQoNCiAgICBUezF9PVswIDE7
IDAgMF07DQogICAgVHsyfT1bMS8yIDEvMiAwOyAwIDIvMyAxLzM7IDAgMCAx
LzJdOw0KICAgIFR7M309WzQvNV07DQogICAgVHNlcj16ZXJvcyhzdW0obWtz
KSxzdW0obWtzKSk7DQogICAgVHNlcigxOm1rcygxKSwxOm1rcygxKSk9VHsx
fTsNCiAgICBUc2VyKG1rcygxKSsxOnN1bW1rcygyKSxta3MoMSkrMTpzdW1t
a3MoMikpPVR7Mn07DQogICAgVHNlcihzdW1ta3MoMikrMTpzdW0obWtzKSxz
dW1ta3MoMikrMTpzdW0obWtzKSk9VHszfTsNCiAgICANCiAgICBhbHBoYXsx
fT1bMSAwXTsNCiAgICBhbHBoYXsyfT1bMSAwIDBdOw0KICAgIGFscGhhezN9
PVsxXTsNCg0KICAgIGFscGhhdG90PVthbHBoYXsxfSBhbHBoYXsyfSBhbHBo
YXszfV07DQogIA0KICAgIFRzZXIwPW9uZXMoc3VtKG1rcyksMSktc3VtKFRz
ZXInKSc7DQoNCiAgICBtPTM7DQogICAgRHVuZD1bOTk5LzEwMDAgMS8xMDAw
IDA7IDAgOTk5LzEwMDAgMS8xMDAwOyAxLzEwMDAgMCA5OTkvMTAwMF07DQoN
CiAgICBEMD1kaWFnKFs0LzUqOTkvMTAwIDk5LzEwMCoyNy8yOCo5OS8xMDAg
OTkvMTAwKjE5LzIwXSkqRHVuZDsNCiAgICBEezF9PWRpYWcoWzEvNSo5OS8x
MDAgMS8xMDAqMjcvMjgqOTkvMTAwIDBdKSpEdW5kOw0KICAgIER7Mn09ZGlh
ZyhbMCA5OS8xMDAqMS8yOCo5OS8xMDAgMS8xMDAqMTkvMjBdKSpEdW5kOw0K
ICAgIER7M309ZGlhZyhbMS8xMDAqNC81IDk5LzEwMCoyNy8yOCoxLzEwMCA5
OS8xMDAqMS8yMF0pKkR1bmQ7DQogICAgRHsxMn09ZGlhZyhbMCAxLzEwMCox
LzI4Kjk5LzEwMCAwXSkqRHVuZDsNCiAgICBEezEzfT1kaWFnKFsxLzUqMS8x
MDAgMS8xMDAqMjcvMjgqMS8xMDAgMF0pKkR1bmQ7DQogICAgRHsyM309ZGlh
ZyhbMCA5OS8xMDAqMS8yOCoxLzEwMCAxLzEwMCoxLzIwXSkqRHVuZDsNCiAg
ICBEezEyM309ZGlhZyhbMCAxLzEwMCoxLzI4KjEvMTAwIDBdKSpEdW5kOw0K
DQogICAgYT00Ow0KICAgIER0aWxkZTA9emVyb3MoYSptLGEqbSk7DQogICAg
RHRpbGRlMCgxOm0sMTptKT1EMDsNCiAgICBEdGlsZGV7MX09W0R7MX0gRHsx
Mn0gRHsxM30gRHsxMjN9OyB6ZXJvcygoYS0xKSptLGEqbSldOw0KICAgIER0
aWxkZXsyfT1bRHsyfSB6ZXJvcyhtLG0pIER7MjN9IHplcm9zKG0sbSk7IGV5
ZShtKSB6ZXJvcyhtLChhLTEpKm0pOyAuLi4NCiAgICAgICAgICAgemVyb3Mo
bSxhKm0pOyB6ZXJvcyhtLDIqbSkgZXllKG0pIHplcm9zKG0sbSldOw0KICAg
IER0aWxkZXszfT1bRHszfSB6ZXJvcyhtLChhLTEpKm0pOyB6ZXJvcyhtLGEq
bSk7IGV5ZShtKSB6ZXJvcyhtLChhLTEpKm0pOyANCiAgICAgICAgemVyb3Mo
bSxhKm0pXTsNCg0KICAgIHRlbXA9a3JvbihhbHBoYXsxfSxEdGlsZGV7MX0o
bSsxOmVuZCw6KSk7DQogICAgZm9yIGs9MjpLDQogICAgICAgIHRlbXA9W3Rl
bXAga3JvbihhbHBoYXtrfSxEdGlsZGV7a30obSsxOmVuZCw6KSldOw0KICAg
IGVuZCAgDQogICAgbXRvdD1zaXplKFRzZXIsMSkqbTsNCiAgICBBMj1rcm9u
KFRzZXIsZXllKGEqbSkpK2tyb24oVHNlcjAsW3plcm9zKG0sYSptdG90KTsg
dGVtcF0pOw0KICAgIEEyPVt6ZXJvcyhtLGEqbXRvdCttKTsgemVyb3MoYSpt
dG90LG0pIEEyXTsNCg0KICAgIHRlbXA9a3JvbihhbHBoYXsxfSxEdGlsZGV7
MX0oMTptLDopKTsNCiAgICBmb3Igaz0yOksNCiAgICAgICAgdGVtcD1bdGVt
cCBrcm9uKGFscGhhe2t9LER0aWxkZXtrfSgxOm0sOikpXTsNCiAgICBlbmQg
IA0KICAgIEExPWtyb24oVHNlcjAsW3RlbXA7IHplcm9zKChhLTEpKm0sYSpt
dG90KV0pOw0KICAgIEExPVt6ZXJvcyhhKm10b3QrbSxtKSBbdGVtcDsgQTFd
XTsNCg0KICAgIEEwPVtEMCB6ZXJvcyhtLGEqbXRvdCk7IGtyb24oVHNlcjAs
W0QwOyB6ZXJvcyhtKihhLTEpLG0pXSkgemVyb3MoYSptdG90LGEqbXRvdCld
Ow0KZW5kDQppZiAoZXhhbXA9PTMpDQogICAgaz0zMjsNCiAgICBkZWx0YT0x
MF4oLTMpOw0KICAgIFI9b25lcyhrLGspKigxLWRlbHRhKS8oMyprLTMpOw0K
ICAgIFI9Ui1kaWFnKGRpYWcoUikpOw0KICAgIEEwPVIrZGlhZyhvbmVzKDEs
aykqZGVsdGEpOw0KICAgIEExPVI7DQogICAgQTI9UjsNCmVuZCAgICANCmlm
IChleGFtcD09NCkNCiAgICAlIEZTLUFMT0hBIHByb3RvY29sIGFzIFFCRCwg
YXJyaXZhbCByYXRlIGxhbWJkYSANCiAgICAlIFQgPSBTK04gc2xvdHMsIFMg
Zm9yIHNldHMsIE4gZm9yIHJlc29sdXRpb24NCiAgICANCiAgICBsYW1iZGE9
MzsNCiAgICBEPWV4cCgtbGFtYmRhKTsNCiAgICBzb209RDsNCiAgICBpPTE7
DQogICAgd2hpbGUgKHNvbSA8IDEgLSAxMF4oLTE1KSkNCiAgICAgICAgRCgx
LGkrMSk9RCgxLGkpKmxhbWJkYS9pOw0KICAgICAgICBzb209c29tK0QoMSxp
KzEpOw0KICAgICAgICBpID0gaSsxOw0KICAgIGVuZA0KDQogICAgbG9hZD1s
YW1iZGE7DQoNCiAgICBxbT1zaXplKEQsMiktMjsNCg0KICAgIE5zbG90cz01
Ow0KICAgIFNzbG90cz01Ow0KICAgIE5wbHVzU3Nsb3RzPU5zbG90cytTc2xv
dHM7DQoNCg0KICAgIFBOPXplcm9zKHFtLHFtKTsNCiAgICBmb3IgcT0yOnFt
KzENCiAgICAgICAgZm9yIHFhYz0yOnENCiAgICAgICAgICAgIHRlbXA9MDsN
CiAgICAgICAgICAgIGZvciB2PXEtcWFjOm1pbihbcSBOc2xvdHNdKQ0KICAg
ICAgICAgICAgICAgIHRlbXA9dGVtcCsoLTEpXih2K3EtcWFjKSpuY2hvb3Nl
ayh2LHEtcWFjKS9Oc2xvdHNecSpuY2hvb3NlayhOc2xvdHMsdikvZmFjdG9y
aWFsKHEtdikqLi4uDQogICAgICAgICAgICAgICAgICAgIGZhY3RvcmlhbChx
KSooTnNsb3RzLXYpXihxLXYpOw0KICAgICAgICAgICAgZW5kDQogICAgICAg
ICAgICBQTihxLTEscWFjLTEpPXRlbXA7DQogICAgICAgIGVuZA0KICAgIGVu
ZA0KICAgIFBOc29sdmVkPXplcm9zKHFtLDEpOw0KICAgIGZvciBxPTI6cW0r
MQ0KICAgICAgICB0ZW1wPTA7DQogICAgICAgIGZvciB2PXE6bWluKFtxIE5z
bG90c10pDQogICAgICAgICAgICB0ZW1wPXRlbXArKC0xKV4oditxKSpuY2hv
b3Nlayh2LHEpL05zbG90c15xKm5jaG9vc2VrKE5zbG90cyx2KS9mYWN0b3Jp
YWwocS12KSouLi4NCiAgICAgICAgICAgICAgICBmYWN0b3JpYWwocSkqKE5z
bG90cy12KV4ocS12KTsNCiAgICAgICAgZW5kDQogICAgICAgIFBOc29sdmVk
KHEtMSwxKT10ZW1wOw0KICAgIGVuZA0KDQogICAgUFM9emVyb3MocW0scW0p
Ow0KICAgIGZvciBxPTI6cW0rMQ0KICAgICAgICBmb3IgcWFjPTI6cQ0KICAg
ICAgICAgICAgdGVtcD0wOw0KICAgICAgICAgICAgZm9yIHY9cS1xYWM6bWlu
KFtxIFNzbG90c10pDQogICAgICAgICAgICAgICAgdGVtcD10ZW1wKygtMSle
KHYrcS1xYWMpKm5jaG9vc2VrKHYscS1xYWMpL1NzbG90c15xKm5jaG9vc2Vr
KFNzbG90cyx2KS9mYWN0b3JpYWwocS12KSouLi4NCiAgICAgICAgICAgICAg
ICAgICAgZmFjdG9yaWFsKHEpKihTc2xvdHMtdileKHEtdik7DQogICAgICAg
ICAgICBlbmQNCiAgICAgICAgICAgIFBTKHEtMSxxYWMtMSk9dGVtcDsNCiAg
ICAgICAgZW5kDQogICAgZW5kDQogICAgUFNzb2x2ZWQ9emVyb3MocW0sMSk7
DQogICAgZm9yIHE9MjpxbSsxDQogICAgICAgIHRlbXA9MDsNCiAgICAgICAg
Zm9yIHY9cTptaW4oW3EgU3Nsb3RzXSkNCiAgICAgICAgICAgIHRlbXA9dGVt
cCsoLTEpXih2K3EpKm5jaG9vc2VrKHYscSkvU3Nsb3RzXnEqbmNob29zZWso
U3Nsb3RzLHYpL2ZhY3RvcmlhbChxLXYpKi4uLg0KICAgICAgICAgICAgICAg
IGZhY3RvcmlhbChxKSooU3Nsb3RzLXYpXihxLXYpOw0KICAgICAgICBlbmQN
CiAgICAgICAgUFNzb2x2ZWQocS0xLDEpPXRlbXA7DQogICAgZW5kDQoNCiAg
ICBQTnBsdXNTPXplcm9zKHFtLHFtKTsNCiAgICBmb3IgcT0yOnFtKzENCiAg
ICAgICAgZm9yIHFhYz0yOnENCiAgICAgICAgICAgIHRlbXA9MDsNCiAgICAg
ICAgICAgIGZvciB2PXEtcWFjOm1pbihbcSBOcGx1c1NzbG90c10pDQogICAg
ICAgICAgICAgICAgdGVtcD10ZW1wKygtMSleKHYrcS1xYWMpKm5jaG9vc2Vr
KHYscS1xYWMpL05wbHVzU3Nsb3RzXnEqbmNob29zZWsoTnBsdXNTc2xvdHMs
dikvZmFjdG9yaWFsKHEtdikqLi4uDQogICAgICAgICAgICAgICAgICAgIGZh
Y3RvcmlhbChxKSooTnBsdXNTc2xvdHMtdileKHEtdik7DQogICAgICAgICAg
ICBlbmQNCiAgICAgICAgICAgIFBOcGx1c1MocS0xLHFhYy0xKT10ZW1wOw0K
ICAgICAgICBlbmQNCiAgICBlbmQNCiAgICBQTnBsdXNTc29sdmVkPXplcm9z
KHFtLDEpOw0KICAgIGZvciBxPTI6cW0rMQ0KICAgICAgICB0ZW1wPTA7DQog
ICAgICAgIGZvciB2PXE6bWluKFtxIE5wbHVzU3Nsb3RzXSkNCiAgICAgICAg
ICAgIHRlbXA9dGVtcCsoLTEpXih2K3EpKm5jaG9vc2VrKHYscSkvTnBsdXNT
c2xvdHNecSpuY2hvb3NlayhOcGx1c1NzbG90cyx2KS9mYWN0b3JpYWwocS12
KSouLi4NCiAgICAgICAgICAgICAgICBmYWN0b3JpYWwocSkqKE5wbHVzU3Ns
b3RzLXYpXihxLXYpOw0KICAgICAgICBlbmQNCiAgICAgICAgUE5wbHVzU3Nv
bHZlZChxLTEsMSk9dGVtcDsNCiAgICBlbmQNCg0KICAgIHBUU2dlbj0xLUQo
MSktRCgyKS1EKDM6ZW5kKSpQU3NvbHZlZDsNCiAgICBUU2dlbl9zaXplPUQo
MzplbmQpKlBTOw0KICAgIHBUU2dlbl9lbXB0eT0xLUQoMSktRCgyKS1EKDM6
ZW5kKSpQTnBsdXNTc29sdmVkOw0KICAgIFRTZ2VuX3NpemVfZW1wdHk9RCgz
OmVuZCkqUE5wbHVzUzsNCiAgICBUU2dlbl9zaXplPVRTZ2VuX3NpemUvc3Vt
KFRTZ2VuX3NpemUpOw0KICAgIFRTZ2VuX3NpemVfZW1wdHk9VFNnZW5fc2l6
ZV9lbXB0eS9zdW0oVFNnZW5fc2l6ZV9lbXB0eSk7DQoNCiAgICAlIGFwcHJv
eGltYXRlIHN5c3RlbSBzdGF0ZSBhdCB0aW1lIHQNCg0KICAgIGFscGhhX2lu
aT0xOw0KDQogICAgQTI9cFRTZ2VuKlBOOw0KICAgIEExPXBUU2dlbipQTnNv
bHZlZCpUU2dlbl9zaXplKygxLXBUU2dlbikqUE47DQogICAgQTA9KDEtcFRT
Z2VuKSpQTnNvbHZlZCpUU2dlbl9zaXplOw0KZW5kDQppZiAoZXhhbXA9PTUp
DQogICAgJWlucHV0IHBhcmFtZXRlcnMNCg0KICAgICVELU1BUCBkZXNjcmlw
dGlvbg0KICAgIHBhcl9jID0gMTBeLTM7DQogICAgDQogICAgbGFtYmRhMSA9
IDAuNjsNCiAgICBsYW1iZGEyID0gbGFtYmRhMTsNCiAgICBwYXJfYSA9IDEv
NTA7DQogICAgcGFyX2IgPSAxLzk1MC1wYXJfYzsNCiAgICBwYXJfZCA9IDYv
MTAwOw0KICAgIHBhcl9mID0gMTkqcGFyX2MvNTk7DQogICAgcGFyX2UgPSA2
LzU5MDAtcGFyX2Y7DQogICAgDQogICAgRCA9IFsgICAxLXBhcl9hICAgICAg
ICAgcGFyX2EgICAgICAgMCAgICAgICAgICAgMDsNCiAgICAgICAgICAgcGFy
X2IgICAgICAgMS1wYXJfYi1wYXJfYyAgIHBhcl9jICAgICAgIDA7DQogICAg
ICAgICAgIDAgICAgICAgICAgICAgICAwICAgICAgICAgICAxLXBhcl9kICAg
ICBwYXJfZDsNCiAgICAgICAgICAgcGFyX2YgICAgICAgICAgIDAgICAgICAg
ICAgIHBhcl9lICAgICAgIDEtcGFyX2UtcGFyX2YNCiAgICAgICBdOw0KICAg
IEQxID0gZGlhZyhbbGFtYmRhMSAwIGxhbWJkYTIgMF0pICogRDsNCiAgICBE
MCA9IEQtRDE7DQoNCiAgICAlRCA9IFsxLTEvNTAwIDEvNTAwOyAxLzEwMDAg
MS0xLzEwMDBdOw0KICAgICVEMCA9IGRpYWcoWzkvMTAgMy80XSkqRDsNCiAg
ICAlRDEgPSBkaWFnKFsxLzEwIDEvNF0pKkQ7DQoNCiAgICAlcF9pbnB1dD0w
LjkqMC4zOw0KICAgICVEMD0xLXBfaW5wdXQ7DQogICAgJUQxPXBfaW5wdXQ7
DQoNCiAgICBsPXNpemUoRCwxKTsNCg0KICAgICVzZXJ2aWNlIGRlc2NyaXB0
aW9uDQogICAgJVQ9MS0wLjM7DQogICAgJVQgPSBbNC81IDAgMDsgMCAxLzIg
MDsgMCAwIDEvNF07DQogICAgVCA9IGRpYWcob25lcygxLDkpLC0xKTsNCiAg
ICBtPXNpemUoVCwxKTsNCiAgICBtbD1tKmw7DQogICAgJWFscGhhPTE7DQog
ICAgJWFscGhhID0gWzMvNCAxLzggMS84XTsNCiAgICBhbHBoYSA9IFsyLjYw
MTIyOTUqMTBeKC0yKSAgMS4xNzA1NTMzKjEwXigtMSkgIDIuMzQxMTA2NSox
MF4oLTEpICAyLjczMTI5MTAqMTBeKC0xKSAgMi4wNDg0NjgyKjEwXigtMSkg
IDEuMDI0MjM0MSoxMF4oLTEpICAzLjQxNDExMzcqMTBeKC0yKSA3LjMxNTk1
NzkqMTBeKC0zKSAgOS4xNDQ5NDc0KjEwXigtNCkgIDUuMDgwNTI2MyoxMF4o
LTUpXTsNCiAgICBhbHBoYT1hbHBoYS9zdW0oYWxwaGEpOyAlIHRoaXMgaW5w
dXQgYWxmYSB3YXMgbm90IDEwMCUgZXhhY3QsIGhlbmNlIHRoZSBub3JtYWxp
emF0aW9uDQogICAgVDAgPSBvbmVzKG0sMSktVCpvbmVzKG0sMSk7DQoNCiAg
ICAlIGFwcHJveGltYXRlIHF1ZXVlbGVuZ3RoIHRoZSB0aW1lIHQNCg0KICAg
IEEyPWtyb24oRDEsVCk7DQogICAgQTE9a3JvbihEMCxUKStrcm9uKEQxLFQw
KmFscGhhKTsNCiAgICBBMD1rcm9uKEQwLFQwKmFscGhhKTsNCmVuZA0KaWYg
KGV4YW1wID09IDYpDQogICAgJSBUYW5kZW0gUXVldWUgd2l0aCBibG9ja2lu
ZywgTUFQIGFycml2YWxzIGFuZCBQSCBzZXJ2aWNlcywgYnVmZmVyIHNpemUg
Qg0KICAgIEI9MjA7DQogICAgJSBhcnJpdmFsIHByb2Nlc3MNCiAgICBEMD1b
Mzk5LzQwMCAxLzQwMDsgMTUvMTYqMS80MDAgMTUvMTYqMzk5LzQwMF07DQog
ICAgRDE9WzAgMDsgMS8xNioxLzQwMCAxLzE2KjM5OS80MDBdOw0KICAgIA0K
ICAgIERzdW09RDArRDE7DQogICAgbD1zaXplKEQwLDEpOw0KICAgIGdhbW1h
PXN0YXQoRHN1bSk7DQogICAgbGFtYmRhPWdhbW1hKkQxKm9uZXMobCwxKTsN
Cg0KICAgICUgc2VydmljZSBwcm9jZXNzZXMNCiAgICBUMT1bNC81IDA7IDAg
MTkvMjBdOw0KICAgIGFscGhhMT1bMS8zIDIvM107DQogICAgJVQxPVs5LzEw
IDU5LzYwXQ0KICAgICVhbHBoYTE9WzkvMTAgMS8xMF0NCiAgICAlVDE9MTQv
MTU7DQogICAgJVQxPVsyLzMgMS8zIDAgMCAwOyAwIDIvMyAxLzMgMCAwOyAw
IDAgMi8zIDEvMyAwOyAwIDAgMCAyLzMgMS8zOyAwIDAgMCAwIDIvM107DQog
ICAgJWFscGhhMT0xOw0KICAgICVhbHBoYTE9WzEgMCAwIDAgMF07DQogICAg
bTE9c2l6ZShUMSwxKTsNCg0KICAgIGFscGhhMj1bMS8xNiAxLzggMTMvMTZd
Ow0KICAgIFQyPVszLzQgMS84IDA7IDEvMTAgNC81IDA7IDAgMCAxLTEvKCgx
NS1hbHBoYTIoMToyKSppbnYoZXllKDIpLVszLzQgMS84OyAxLzEwIDQvNV0p
Km9uZXMoMiwxKSkqMTYvMTMpXTsNCiAgICAlVDI9WzIvMyAxLzMgMCAwIDA7
IDAgMi8zIDEvMyAwIDA7IDAgMCAyLzMgMS8zIDA7IDAgMCAwIDIvMyAxLzM7
IDAgMCAwIDAgMi8zXTsNCiAgICAlVDI9MTQvMTU7DQogICAgJWFscGhhMj0x
Ow0KICAgICVhbHBoYTI9WzEgMCAwIDAgMF07DQogICAgbTI9c2l6ZShUMiwx
KTsNCg0KICAgIG0xMj1tMSptMjsNCg0KICAgIG11MWludj1hbHBoYTEqaW52
KGV5ZShtMSktVDEpKm9uZXMobTEsMSk7DQogICAgbXUyaW52PWFscGhhMipp
bnYoZXllKG0yKS1UMikqb25lcyhtMiwxKTsNCg0KICAgIHQxPW9uZXMobTEs
MSktVDEqb25lcyhtMSwxKTsNCiAgICB0Mj1vbmVzKG0yLDEpLVQyKm9uZXMo
bTIsMSk7DQoNCiAgICB0MWExPXQxKmFscGhhMTsNCiAgICB0MmEyPXQyKmFs
cGhhMjsNCg0KICAgICUgVGhlIFFCRCBtYXRyaWNlczoNCg0KICAgIGR0PShC
KzEpKm0xMipsKyhtMSttMikqbDsNCg0KICAgICUgdGhlIEswLCBBMCBtYXRy
aXgNCiAgICBLMD1UMTsNCiAgICBLMChtMSsxOm0xK20xMiwxOm0xKT1rcm9u
KFQxLHQyKTsNCiAgICBLMChtMSsxOm0xK20xMixtMSsxOm0xK20xMik9a3Jv
bihUMSxUMik7DQogICAgSzAobTErbTEyKkIrMTptMSttMTIqKEIrMSksbTEr
bTEyKihCKzEpKzE6ZHQvbCk9a3Jvbih0MSxUMik7DQogICAgSzAobTErbTEy
KihCKzEpKzE6ZHQvbCxtMSttMTIqKEIrMSkrMTpkdC9sKT1UMjsNCiAgICBm
b3IgaW5kZXg9MTpCDQogICAgICAgIEswKG0xK20xMippbmRleCsxOm0xK20x
MiooaW5kZXgrMSksbTErbTEyKihpbmRleC0xKSsxOm0xK20xMippbmRleCk9
a3JvbihUMSx0MmEyKTsNCiAgICAgICAgSzAobTErbTEyKmluZGV4KzE6bTEr
bTEyKihpbmRleCsxKSxtMSttMTIqaW5kZXgrMTptMSttMTIqKGluZGV4KzEp
KT1rcm9uKFQxLFQyKTsNCiAgICBlbmQNCiAgICBBMD1rcm9uKEswLGV5ZShs
KSk7DQoNCiAgICAlIHRoZSBBMHN0YXIgbWF0cml4DQogICAgZHRhcnQ9KEIr
MSkqbTIqbDsNCiAgICBkdHN0YXI9ZHQrZHRhcnQ7DQoNCiAgICBBMHN0YXI9
W3plcm9zKGR0YXJ0LGR0c3Rhcik7IHplcm9zKGR0LGR0YXJ0KSBBMF07DQoN
CiAgICAlIHRoZSBLMSwgQTEgbWF0cml4DQoNCiAgICBLMT16ZXJvcyhkdC9s
LGR0L2wpOw0KICAgIEsxKDE6bTEsbTErMTptMSttMTIpPWtyb24odDFhMSxh
bHBoYTIpOw0KICAgIEsxKG0xK20xMipCKzE6bTErbTEyKihCKzEpLG0xK20x
MipCKzE6bTErbTEyKihCKzEpKT1rcm9uKHQxYTEsdDJhMik7DQogICAgSzEo
bTErbTEyKihCKzEpKzE6ZHQvbCxtMSttMTIqQisxOm0xK20xMiooQisxKSk9
a3JvbihhbHBoYTEsdDJhMik7DQogICAgZm9yIGluZGV4PTE6Qg0KICAgICAg
ICBLMShtMSttMTIqKGluZGV4LTEpKzE6bTErbTEyKmluZGV4LG0xK20xMioo
aW5kZXgtMSkrMTptMSttMTIqaW5kZXgpPWtyb24odDFhMSx0MmEyKTsNCiAg
ICAgICAgSzEobTErbTEyKihpbmRleC0xKSsxOm0xK20xMippbmRleCxtMStt
MTIqaW5kZXgrMTptMSttMTIqKGluZGV4KzEpKT1rcm9uKHQxYTEsVDIpOw0K
ICAgIGVuZA0KICAgIEExPWtyb24oSzEsRDEpOw0KDQogICAgJSB0aGUgQTFz
dGFyIG1hdHJpeA0KICAgIEExc3Rhcj1bemVyb3MoZHRhcnQsZHRzdGFyKTsg
emVyb3MoZHQsZHRhcnQpIEExXTsNCiAgICBBMXN0YXIoMTpkdGFydCxkdGFy
dCttMSpsKzE6ZHRhcnQrbTEqbCttMTIqKEIrMSkqbCk9a3JvbihleWUoQisx
KSxrcm9uKGFscGhhMSxrcm9uKGV5ZShtMiksRDEpKSk7DQoNCiAgICAlIHRo
ZSBCMnBsdXMgbWF0cml4DQogICAgQjJwbHVzKDE6bTEsMTptMik9dDEqYWxw
aGEyOw0KICAgIEIycGx1cyhtMSttMTIqQisxOm0xK20xMiooQisxKSxtMipC
KzE6bTIqKEIrMSkpPWtyb24odDEsdDJhMik7DQogICAgQjJwbHVzKG0xK20x
MiooQisxKSsxOmR0L2wsbTIqQisxOm0yKihCKzEpKT10MmEyOw0KICAgIGZv
ciBpbmRleD0xOkINCiAgICAgICAgQjJwbHVzKG0xK20xMiooaW5kZXgtMSkr
MTptMSttMTIqaW5kZXgsbTIqKGluZGV4LTEpKzE6bTIqaW5kZXgpPWtyb24o
dDEsdDJhMik7DQogICAgICAgIEIycGx1cyhtMSttMTIqKGluZGV4LTEpKzE6
bTErbTEyKmluZGV4LG0yKmluZGV4KzE6bTIqKGluZGV4KzEpKT1rcm9uKHQx
LFQyKTsNCiAgICBlbmQNCiAgICBCMnBsdXM9a3JvbihCMnBsdXMsRDApOw0K
DQogICAgJSB0aGUgQTJzdGFyIG1hdHJpeA0KICAgIEEyc3Rhcj1ba3Jvbihl
eWUoKEIrMSkqbTIpLEQwKSB6ZXJvcyhkdGFydCxkdCk7IEIycGx1cyB6ZXJv
cyhkdCxkdCldOw0KICAgIEEwPUEyc3RhcjsNCiAgICBBMT1BMXN0YXI7DQog
ICAgQTI9QTBzdGFyOw0KZW5k

--Trip_of_Goats_078_000--

