Content from https://inside.mines.edu/~tcamp/baci/baci_index.html;
This commit is contained in:
commit
df55bf6c97
BIN
balnxxe/baar
Executable file
BIN
balnxxe/baar
Executable file
Binary file not shown.
BIN
balnxxe/bacc
Executable file
BIN
balnxxe/bacc
Executable file
Binary file not shown.
BIN
balnxxe/badis
Executable file
BIN
balnxxe/badis
Executable file
Binary file not shown.
16
balnxxe/bagui
Executable file
16
balnxxe/bagui
Executable file
@ -0,0 +1,16 @@
|
||||
#!/bin/sh
|
||||
# Let the BACI user know that bagui is no longer supported
|
||||
echo "In 2012, We decided to stop supporting the BACI graphical user"
|
||||
echo "interface PCODE interpreter, bagui, because of its dependence"
|
||||
echo "on Tcl and Tk. For the functionality of bagui, we strongly"
|
||||
echo "recommend that you use the bagui built into the JavaBACI"
|
||||
echo "system. This application is easier to install and use"
|
||||
echo "because it is Java based."
|
||||
echo ""
|
||||
echo " Bill Bynum bynum@cs.wm.edu"
|
||||
echo " Tracy Camp tcamp@mines.edu"
|
||||
echo " September, 2012"
|
||||
#
|
||||
#
|
||||
# $Id: bagui,v 1.1 2012/09/29 20:44:36 bynum Exp $
|
||||
#
|
BIN
balnxxe/bainterp
Executable file
BIN
balnxxe/bainterp
Executable file
Binary file not shown.
BIN
balnxxe/bald
Executable file
BIN
balnxxe/bald
Executable file
Binary file not shown.
BIN
balnxxe/bapas
Executable file
BIN
balnxxe/bapas
Executable file
Binary file not shown.
21
projects/README
Normal file
21
projects/README
Normal file
@ -0,0 +1,21 @@
|
||||
|
||||
BACI PROJECTS
|
||||
July 15, 2001
|
||||
|
||||
This directory contains sample course projects for an
|
||||
undergraduate operating system course that uses BACI.
|
||||
These projects are briefly described in:
|
||||
|
||||
B. Bynum and T. Camp, After you Alfonse: A Mutual
|
||||
Exclusion Toolkit, Proceedings of the 27th SIGCSE
|
||||
Conference, February 1996.
|
||||
|
||||
B. Bynum and T. Camp, BACI: The Ben-Ari Concurrent
|
||||
Programming System, in Operating Systems: Fourth
|
||||
Edition by W. Stallings, 2001.
|
||||
|
||||
If you are a professor teaching an OS course, we are happy to
|
||||
share our solutions to these projects with you. Please contact
|
||||
either of us at:
|
||||
Tracy Camp tcamp@mines.edu
|
||||
Bill Bynum bynum@cs.wm.edu
|
1352
projects/a-b-sem.ps
Normal file
1352
projects/a-b-sem.ps
Normal file
File diff suppressed because it is too large
Load Diff
78
projects/a-b-sem.tex
Normal file
78
projects/a-b-sem.tex
Normal file
@ -0,0 +1,78 @@
|
||||
% HOMEWORK #2
|
||||
% re: processes
|
||||
%
|
||||
\documentstyle[11pt,fullpage]{article}
|
||||
\pagestyle{empty}
|
||||
\begin{document}
|
||||
|
||||
\begin{center}
|
||||
{\large\bf BACI Projects for an OS Course}
|
||||
|
||||
\end{center}
|
||||
|
||||
\begin{enumerate}
|
||||
\item {\bf A's and B's:} For the following
|
||||
program outline in Ben-Ari Concurrent Pascal,
|
||||
\begin{tabbing}
|
||||
xxxxxx \= xxx \= \kill
|
||||
\> PROGRAM As\_and\_Bs; \\
|
||||
\\
|
||||
\> VAR \\
|
||||
\>\> \{ semaphore declarations \} \\
|
||||
\\
|
||||
\> PROCEDURE A; \\
|
||||
\> BEGIN (P's and V's only) END; \\
|
||||
\\
|
||||
\> PROCEDURE B; \\
|
||||
\> BEGIN (P's and V's only) END; \\
|
||||
\\
|
||||
\> BEGIN \\
|
||||
\>\> \{ semaphore initializations \} \\
|
||||
\>\> COBEGIN A;A;A;B;B; COEND; \\
|
||||
\> END.
|
||||
\end{tabbing}
|
||||
complete the program using {\it general} semaphores so that the
|
||||
processes ALWAYS terminate in the order A (any copy), B (any copy), A
|
||||
(any copy), A, B. In addition to the program,
|
||||
hand in the results of FIVE executions of the
|
||||
program using the -apt option.
|
||||
Include an explanation (or proof, if you prefer) of why the
|
||||
program works like it should.
|
||||
|
||||
\item {\bf Binary Semaphores:}
|
||||
Repeat problem 1 using only BINARY semaphores. In addition, you
|
||||
can use assignment, incrementing, and decrementing auxiliary INTEGER
|
||||
variables, along with IF-(testing INTEGER expressions)-THEN-ELSE.
|
||||
Consider why this problem can not be solved without counting
|
||||
variables.
|
||||
|
||||
\item {\bf More A's and B's:}
|
||||
Repeat the A and B problem using four concurrent processes
|
||||
(A, A, A, and B) such that they terminate in the order A (any copy),
|
||||
B, A, A.
|
||||
|
||||
\item {\bf Even More A's and B's:}
|
||||
Repeat the A and B problem using eight concurrent processes (A, A, A, A,
|
||||
B, B, B, B) such that they terminate in the order AABABABB. {\bf
|
||||
Tough one!}
|
||||
|
||||
\item {\small\bf Busy Waiting versus Semaphores:}
|
||||
Using the program developed in the
|
||||
general semaphore project above (ABAAB), consider
|
||||
the performance effect of its execution with your fair and
|
||||
your unfair (random) semaphore implementations.
|
||||
That is, calculate the total number of
|
||||
busy waiting loops that occur in each implementation.
|
||||
Compare the performance of these two semaphore implementations
|
||||
with a busy waiting implementation, i.e., an implementation that
|
||||
uses the exchange operation for synchronization. In each case,
|
||||
use a large number of executions (say,
|
||||
1000) to obtain better statistics.
|
||||
Discuss your results, explaining why one implementation is preferred
|
||||
over another.
|
||||
|
||||
|
||||
\end{enumerate}
|
||||
|
||||
|
||||
\end{document}
|
56
projects/add.cm
Normal file
56
projects/add.cm
Normal file
@ -0,0 +1,56 @@
|
||||
//**************************************************************//
|
||||
// //
|
||||
// Program: Concurrent Add Exercise //
|
||||
// Filename: add.cm //
|
||||
// Original author: Neil Bergmann //
|
||||
// Modification: Tracy Camp //
|
||||
// //
|
||||
// This program is a concurrent add example for use with //
|
||||
// the BACI system. In its current version, it gives //
|
||||
// indeterminate, incorrect answers. //
|
||||
// //
|
||||
// You need to add additional code to this file; do NOT //
|
||||
// delete, replace, or modify existing code. //
|
||||
// //
|
||||
//**************************************************************//
|
||||
|
||||
//Global Variable Declarations //
|
||||
|
||||
int total; //Global variable to hold accumulating total//
|
||||
|
||||
//**************************************************************//
|
||||
void add(int lower, int upper)
|
||||
//Adds numbers in the range lower to upper inclusive to total//
|
||||
|
||||
{
|
||||
int i;
|
||||
for (i=lower;i<=upper;i++)
|
||||
{
|
||||
total = total + i;
|
||||
}
|
||||
}
|
||||
|
||||
//**************************************************************//
|
||||
void initialize()
|
||||
//Initializes all global variables and data structures//
|
||||
|
||||
{
|
||||
total = 0;
|
||||
}
|
||||
|
||||
//**************************************************************//
|
||||
//main program//
|
||||
|
||||
main() {
|
||||
|
||||
cobegin {
|
||||
add(1,10); add(11,20); add(21,30); add(31,40); add(41,50);
|
||||
add(51,60); add(61,70); add(71,80); add(81,90); add(91,100);
|
||||
}
|
||||
|
||||
cout << "Sum [1..100] = " << total << endl;
|
||||
|
||||
} //main program//
|
||||
|
||||
//**************************************************************//
|
||||
|
897
projects/bakery.ps
Normal file
897
projects/bakery.ps
Normal file
@ -0,0 +1,897 @@
|
||||
%!PS-Adobe-2.0
|
||||
%%Creator: dvipsk 5.58f Copyright 1986, 1994 Radical Eye Software
|
||||
%%Title: bakery.dvi
|
||||
%%Pages: 1
|
||||
%%PageOrder: Ascend
|
||||
%%BoundingBox: 0 0 612 792
|
||||
%%DocumentPaperSizes: Letter
|
||||
%%EndComments
|
||||
%DVIPSCommandLine: dvips -o bakery.ps bakery.dvi
|
||||
%DVIPSParameters: dpi=600, comments removed
|
||||
%DVIPSSource: TeX output 1998.02.05:0953
|
||||
%%BeginProcSet: tex.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]{ch-image}imagemask restore}B /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
|
||||
TeXDict begin 40258431 52099146 1000 600 600 (bakery.dvi)
|
||||
@start /Fa 38 122 df<1E007F80FFC0FFC0FFC0FFC0FFC0FFC0FFC0FFC0FFC07F807F
|
||||
807F807F807F807F807F807F807F807F807F807F803F003F003F003F003F003F003F003F
|
||||
003F003F003F001E001E001E001E001E001E001E001E001E001E001E001E000C000C000C
|
||||
000C000C0000000000000000000000000000000000000000001E007F807F80FFC0FFC0FF
|
||||
C0FFC07F807F801E000A4778C61B>33 D<1E007F80FF80FFC0FFC0FFE0FFE0FFE07FE01E
|
||||
60006000600060006000E000C000C000C001C0018003800300070006000E001C00380070
|
||||
0060000B1D78891B>44 D<FFFFFFC0FFFFFFC0FFFFFFC0FFFFFFC0FFFFFFC0FFFFFFC01A
|
||||
067F9721>I<1E007F807F80FFC0FFC0FFC0FFC07F807F801E000A0A78891B>I<000FFC00
|
||||
00007FFFC00001F007F000078001FC000E0000FE001C00007F003800003F807000003FC0
|
||||
6000001FC0FE00001FE0FF00001FE0FF80001FE0FF80001FE0FF80001FE0FF80001FE0FF
|
||||
80001FE07F00001FE01C00003FC00000003FC00000007F800000007F80000000FF000000
|
||||
01FE00000003F800000007F000000007E00000000FC00000001F800000001F000000003E
|
||||
000000003C00000000780000000078000000007000000000F000000000E000000000E000
|
||||
000000C000000001C000000001C000000001C00000000180000000018000000001800000
|
||||
000180000000018000000001800000000180000000018000000001800000000000000000
|
||||
000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
00000000000000000003C00000000FF00000000FF00000001FF80000001FF80000001FF8
|
||||
0000001FF80000000FF00000000FF000000003C0000023467BC52E>63
|
||||
D<00000000C00000000000000001E00000000000000001E00000000000000001E0000000
|
||||
0000000003F00000000000000003F00000000000000003F00000000000000007F8000000
|
||||
0000000007F80000000000000007F8000000000000000FFC000000000000000FFC000000
|
||||
000000000FFC0000000000000019FE0000000000000019FE0000000000000019FE000000
|
||||
0000000030FF0000000000000030FF0000000000000070FF80000000000000607F800000
|
||||
00000000607F80000000000000E07FC0000000000000C03FC0000000000000C03FC00000
|
||||
00000001C03FE0000000000001801FE0000000000001801FE0000000000003001FF00000
|
||||
00000003000FF0000000000003000FF0000000000006000FF80000000000060007F80000
|
||||
000000060007F800000000000C0003FC00000000000C0003FC00000000000C0003FC0000
|
||||
000000180001FE0000000000180001FE0000000000180001FE0000000000300000FF0000
|
||||
000000300000FF0000000000700000FF80000000006000007F80000000006000007F8000
|
||||
000000E000007FC000000000FFFFFFFFC000000000FFFFFFFFC000000001FFFFFFFFE000
|
||||
0000018000001FE0000000018000001FE0000000030000001FF0000000030000000FF000
|
||||
0000030000000FF0000000060000000FF80000000600000007F80000000600000007F800
|
||||
00000C00000003FC0000000C00000003FC0000000C00000003FC0000001800000001FE00
|
||||
00001800000001FE0000001800000001FE0000003000000000FF0000003000000000FF00
|
||||
00007800000000FF800000F800000000FF800001FC00000000FFC0000FFF00000003FFE0
|
||||
00FFFFE000007FFFFFC0FFFFE000007FFFFFC0FFFFE000007FFFFFC042477DC649>65
|
||||
D<FFFFFFFFFF000000FFFFFFFFFFE00000FFFFFFFFFFFC000001FFC00003FF0000007F80
|
||||
0000FF8000007F8000003FC000007F8000001FE000007F8000000FF000007F80000007F8
|
||||
00007F80000007FC00007F80000003FC00007F80000003FE00007F80000001FE00007F80
|
||||
000001FF00007F80000001FF00007F80000001FF00007F80000001FF00007F80000001FF
|
||||
00007F80000001FF00007F80000001FF00007F80000001FE00007F80000001FE00007F80
|
||||
000003FE00007F80000003FC00007F80000007FC00007F80000007F800007F8000000FF0
|
||||
00007F8000001FE000007F8000007FC000007F800000FF0000007F800003FE0000007F80
|
||||
003FF00000007FFFFFFFE00000007FFFFFFFFC0000007F800000FF8000007F8000001FC0
|
||||
00007F8000000FF000007F80000007F800007F80000003FC00007F80000001FE00007F80
|
||||
000000FF00007F80000000FF80007F800000007F80007F800000007FC0007F800000007F
|
||||
C0007F800000003FC0007F800000003FE0007F800000003FE0007F800000003FE0007F80
|
||||
0000003FE0007F800000003FE0007F800000003FE0007F800000003FE0007F800000003F
|
||||
E0007F800000007FC0007F800000007FC0007F800000007F80007F80000000FF80007F80
|
||||
000001FF00007F80000001FF00007F80000003FE00007F8000000FFC00007F8000001FF8
|
||||
00007F8000007FE00001FFC00003FFC000FFFFFFFFFFFF0000FFFFFFFFFFFC0000FFFFFF
|
||||
FFFFC000003B447CC345>I<0000000FFE000060000000FFFFC000E0000003FFFFF000E0
|
||||
00000FFC01FC01E000003FC0003E01E00000FF00000F83E00003FC000003C7E00007F800
|
||||
0001E7E0000FF0000000FFE0001FE00000007FE0003FC00000003FE0007F800000001FE0
|
||||
00FF000000000FE001FE000000000FE001FC0000000007E003FC0000000007E007F80000
|
||||
000003E007F80000000003E00FF00000000001E00FF00000000001E01FE00000000000E0
|
||||
1FE00000000000E03FE00000000000E03FE00000000000E03FC00000000000607FC00000
|
||||
000000607FC00000000000607FC00000000000607FC0000000000000FF80000000000000
|
||||
FF80000000000000FF80000000000000FF80000000000000FF80000000000000FF800000
|
||||
00000000FF80000000000000FF80000000000000FF80000000000000FF80000000000000
|
||||
FF80000000000000FF80000000000000FF80000000000000FF800000000000007FC00000
|
||||
000000007FC00000000000007FC00000000000607FC00000000000603FC0000000000060
|
||||
3FE00000000000603FE00000000000601FE00000000000E01FF00000000000E00FF00000
|
||||
000000C00FF00000000000C007F80000000001C007F800000000018003FC000000000380
|
||||
01FC00000000038001FE00000000070000FF000000000600007F800000000E00003FC000
|
||||
00001C00001FE00000003800000FF000000078000007F8000000F0000003FC000001E000
|
||||
0000FF000007800000003FC0001F000000000FFC00FC0000000003FFFFF00000000000FF
|
||||
FFC000000000000FFE0000003B487BC546>I<FFFFFFF0FFFFFFF0FFFFFFF000FFF00000
|
||||
7FE000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC00000
|
||||
3FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC00000
|
||||
3FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC00000
|
||||
3FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC00000
|
||||
3FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC00000
|
||||
3FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC00000
|
||||
3FC000003FC000003FC000003FC000003FC000007FE00000FFF000FFFFFFF0FFFFFFF0FF
|
||||
FFFFF01C447DC323>73 D<FFFF800000000007FFFCFFFFC0000000000FFFFCFFFFC00000
|
||||
00000FFFFC01FFC0000000000FFE00006FE0000000001BF800006FE0000000001BF80000
|
||||
6FE0000000001BF8000067F00000000033F8000067F00000000033F8000063F800000000
|
||||
63F8000063F80000000063F8000063F80000000063F8000061FC00000000C3F8000061FC
|
||||
00000000C3F8000061FC00000000C3F8000060FE0000000183F8000060FE0000000183F8
|
||||
0000607F0000000303F80000607F0000000303F80000607F0000000303F80000603F8000
|
||||
000603F80000603F8000000603F80000603F8000000603F80000601FC000000C03F80000
|
||||
601FC000000C03F80000600FE000001803F80000600FE000001803F80000600FE0000018
|
||||
03F800006007F000003003F800006007F000003003F800006007F000003003F800006003
|
||||
F800006003F800006003F800006003F800006001FC0000C003F800006001FC0000C003F8
|
||||
00006001FC0000C003F800006000FE00018003F800006000FE00018003F800006000FE00
|
||||
018003F8000060007F00030003F8000060007F00030003F8000060003F80060003F80000
|
||||
60003F80060003F8000060003F80060003F8000060001FC00C0003F8000060001FC00C00
|
||||
03F8000060001FC00C0003F8000060000FE0180003F8000060000FE0180003F800006000
|
||||
07F0300003F80000600007F0300003F80000600007F0300003F80000600003F8600003F8
|
||||
0000600003F8600003F80000600003F8600003F80000600001FCC00003F80000600001FC
|
||||
C00003F80000600000FF800003F80000600000FF800003F80000600000FF800003F80000
|
||||
6000007F000003F80000F000007F000003F80000F000007F000003F80001F800003E0000
|
||||
03F8000FFF00003E00000FFE00FFFFF0001C0007FFFFFCFFFFF0001C0007FFFFFCFFFFF0
|
||||
001C0007FFFFFC4E447BC359>77 D<FFFF8000000FFFFFFFFFC000000FFFFFFFFFE00000
|
||||
0FFFFF00FFE0000000FFF0007FF00000001F80006FF80000000F00006FF80000000F0000
|
||||
67FC00000006000063FE00000006000063FE00000006000061FF00000006000060FF8000
|
||||
0006000060FF800000060000607FC00000060000603FE00000060000603FE00000060000
|
||||
601FF00000060000600FF80000060000600FF800000600006007FC00000600006003FE00
|
||||
000600006003FE00000600006001FF00000600006000FF80000600006000FF8000060000
|
||||
60007FC00006000060003FE00006000060003FE00006000060001FF00006000060000FF8
|
||||
0006000060000FF800060000600007FC00060000600003FE00060000600003FE00060000
|
||||
600001FF00060000600000FF80060000600000FF800600006000007FC00600006000003F
|
||||
E00600006000003FE00600006000001FF00600006000000FF80600006000000FF8060000
|
||||
60000007FC06000060000003FE06000060000003FE06000060000001FF06000060000000
|
||||
FF86000060000000FF860000600000007FC60000600000003FE60000600000003FE60000
|
||||
600000001FF60000600000000FFE0000600000000FFE00006000000007FE000060000000
|
||||
03FE00006000000003FE00006000000001FE00006000000000FE00006000000000FE0000
|
||||
F0000000007E0000F0000000003E0001F8000000003E000FFF000000001E00FFFFF00000
|
||||
000E00FFFFF00000000E00FFFFF0000000060040447CC349>I<0000001FFC0000000000
|
||||
0001FFFFC0000000000007F007F000000000001F8000FC00000000007E00003F00000000
|
||||
01F800000FC000000003F0000007E000000007E0000003F00000000FC0000001F8000000
|
||||
1F80000000FC0000003F000000007E0000007E000000003F000000FE000000003F800001
|
||||
FC000000001FC00003F8000000000FE00003F8000000000FE00007F00000000007F00007
|
||||
F00000000007F0000FF00000000007F8000FE00000000003F8001FE00000000003FC001F
|
||||
E00000000003FC003FC00000000001FE003FC00000000001FE003FC00000000001FE007F
|
||||
C00000000001FF007FC00000000001FF007F800000000000FF007F800000000000FF007F
|
||||
800000000000FF00FF800000000000FF80FF800000000000FF80FF800000000000FF80FF
|
||||
800000000000FF80FF800000000000FF80FF800000000000FF80FF800000000000FF80FF
|
||||
800000000000FF80FF800000000000FF80FF800000000000FF80FF800000000000FF80FF
|
||||
800000000000FF80FF800000000000FF807FC00000000001FF007FC00000000001FF007F
|
||||
C00000000001FF007FC00000000001FF003FC00000000001FE003FE00000000003FE003F
|
||||
E00000000003FE001FE00000000003FC001FE00000000003FC000FF00000000007F8000F
|
||||
F00000000007F80007F8000000000FF00007F8000000000FF00003F8000000000FE00003
|
||||
FC000000001FE00001FE000000003FC00000FE000000003F8000007F000000007F000000
|
||||
7F80000000FF0000003F80000000FE0000001FC0000001FC00000007E0000003F0000000
|
||||
03F0000007E000000001FC00001FC0000000007E00003F00000000001F8000FC00000000
|
||||
0007F007F0000000000001FFFFC00000000000001FFC0000000041487BC54C>I<0001FF
|
||||
000300000FFFE00700003FFFF8070000FE00FE0F0001F8001F0F0007E000079F0007C000
|
||||
03DF000F800001FF001F000000FF003F0000007F003E0000003F007E0000003F007E0000
|
||||
001F007C0000001F00FC0000000F00FC0000000F00FC0000000700FC0000000700FC0000
|
||||
000700FE0000000700FE0000000300FE0000000300FF0000000300FF00000003007F8000
|
||||
0000007FC0000000007FE0000000003FF8000000003FFE000000001FFFE00000000FFFFE
|
||||
00000007FFFFE0000003FFFFFC000001FFFFFF000000FFFFFFC000003FFFFFF000000FFF
|
||||
FFF8000001FFFFFC0000001FFFFE00000001FFFE000000001FFF0000000003FF80000000
|
||||
01FF8000000000FFC0000000007FC0000000003FC0000000001FC0000000001FE0C00000
|
||||
000FE0C00000000FE0C00000000FE0C000000007E0C000000007E0C000000007E0E00000
|
||||
0007E0E000000007E0E000000007E0F000000007C0F00000000FC0F80000000FC0F80000
|
||||
000F80FC0000001F80FE0000001F00FF0000003F00FF8000007E00FBC00000FC00F9F000
|
||||
01F800F07C0003F000F03FC00FE000E00FFFFF8000E001FFFE0000C0003FF000002B487B
|
||||
C536>83 D<FFFFFF8000000FFFFCFFFFFF8000000FFFFCFFFFFF8000000FFFFC01FFF800
|
||||
000003FFC0007FE000000000FE00007FE000000000FC00003FE000000000F000001FF000
|
||||
000000E000001FF800000000E000000FF800000000C0000007FC0000000180000007FC00
|
||||
00000380000003FE0000000300000003FF0000000600000001FF0000000E00000000FF80
|
||||
00000C00000000FF8000001C000000007FC0000018000000003FE0000030000000003FE0
|
||||
000070000000001FF0000060000000001FF00000E0000000000FF80000C00000000007FC
|
||||
0001800000000007FC0003800000000003FE0003000000000003FE0007000000000001FF
|
||||
0006000000000000FF800C000000000000FF801C0000000000007FC0180000000000007F
|
||||
C0300000000000003FE0300000000000001FF0600000000000001FF0E00000000000000F
|
||||
F8C00000000000000FF98000000000000007FF8000000000000003FF0000000000000003
|
||||
FF0000000000000001FE0000000000000001FE0000000000000001FE0000000000000001
|
||||
FE0000000000000001FE0000000000000001FE0000000000000001FE0000000000000001
|
||||
FE0000000000000001FE0000000000000001FE0000000000000001FE0000000000000001
|
||||
FE0000000000000001FE0000000000000001FE0000000000000001FE0000000000000001
|
||||
FE0000000000000001FE0000000000000001FE0000000000000001FE0000000000000001
|
||||
FE0000000000000001FE0000000000000001FE0000000000000001FE0000000000000001
|
||||
FE0000000000000007FF80000000000003FFFFFF000000000003FFFFFF000000000003FF
|
||||
FFFF00000046447FC349>89 D<0007FC000000003FFF80000000F80FE0000003C003F000
|
||||
00070001F800000E0000FC00000FC0007E00001FE0007F00001FF0003F80001FF0003F80
|
||||
001FF0003F80001FF0001FC0001FF0001FC0000FE0001FC0000380001FC0000000001FC0
|
||||
000000001FC0000000001FC0000000001FC00000000FFFC0000001FFFFC000000FFE1FC0
|
||||
00003FC01FC00000FF001FC00003FC001FC00007F8001FC0000FF0001FC0001FE0001FC0
|
||||
003FC0001FC0007FC0001FC0007F80001FC0007F80001FC060FF00001FC060FF00001FC0
|
||||
60FF00001FC060FF00003FC060FF00003FC060FF00003FC060FF80007FC0607F8000EFC0
|
||||
607FC000C7E0C03FC001C7E0C01FE00783F1C007F81E03FF8001FFFC01FF00001FE0007C
|
||||
002B2E7CAC31>97 D<01FC00000000FFFC00000000FFFC00000000FFFC0000000007FC00
|
||||
00000003FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC00
|
||||
00000001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC00
|
||||
00000001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC00
|
||||
00000001FC0000000001FC0000000001FC03FC000001FC0FFF800001FC3C07E00001FC70
|
||||
01F80001FDE0007E0001FD80003F0001FF80001F8001FF00001FC001FE00000FE001FC00
|
||||
0007E001FC000007F001FC000007F001FC000003F801FC000003F801FC000003FC01FC00
|
||||
0003FC01FC000001FC01FC000001FE01FC000001FE01FC000001FE01FC000001FE01FC00
|
||||
0001FE01FC000001FE01FC000001FE01FC000001FE01FC000001FE01FC000001FE01FC00
|
||||
0001FE01FC000001FC01FC000003FC01FC000003FC01FC000003F801FC000003F801FC00
|
||||
0007F001FC000007F001FE00000FE001FE00000FC001FF00001FC001FB00003F8001F380
|
||||
007E0001E1C000FC0001E0F001F80001C03C07E00001801FFF8000000003FC00002F467D
|
||||
C436>I<00007F80000003FFF000000FC07C00003F000F0000FC00038001F80001C003F8
|
||||
000FC007F0001FE007E0003FE00FE0003FE01FC0003FE01FC0003FE03F80003FE03F8000
|
||||
1FC07F800007007F800000007F800000007F00000000FF00000000FF00000000FF000000
|
||||
00FF00000000FF00000000FF00000000FF00000000FF00000000FF00000000FF00000000
|
||||
FF000000007F000000007F800000007F800000003F800000003F800000303FC00000301F
|
||||
C00000700FE00000600FE00000E007F00000C003F80001C001F800038000FC000700003F
|
||||
001E00001FC078000007FFF0000000FF8000242E7DAC2B>I<000000007F000000003FFF
|
||||
000000003FFF000000003FFF0000000001FF0000000000FF00000000007F00000000007F
|
||||
00000000007F00000000007F00000000007F00000000007F00000000007F00000000007F
|
||||
00000000007F00000000007F00000000007F00000000007F00000000007F00000000007F
|
||||
00000000007F00000000007F00000000007F00000000007F00000000007F0000007F807F
|
||||
000003FFF07F00000FC07C7F00003F000E7F00007E00077F0000FC0003FF0003F80001FF
|
||||
0007F00000FF0007E00000FF000FE000007F001FC000007F001FC000007F003F8000007F
|
||||
003F8000007F007F8000007F007F8000007F007F0000007F00FF0000007F00FF0000007F
|
||||
00FF0000007F00FF0000007F00FF0000007F00FF0000007F00FF0000007F00FF0000007F
|
||||
00FF0000007F00FF0000007F00FF0000007F007F0000007F007F8000007F007F8000007F
|
||||
003F8000007F003F8000007F001FC000007F001FC000007F000FC00000FF000FE00000FF
|
||||
0007F00001FF0003F00003FF0001F800077F8000FC000E7FC0003F001C7FFE000FC0F87F
|
||||
FE0003FFE07FFE00007F007F002F467DC436>I<0001FE00000007FFC000001F03F00000
|
||||
7E00FC0000FC007E0001F8003F0003F0003F0007E0001F800FE0001FC00FC0000FC01FC0
|
||||
000FC03F80000FE03F800007E03F800007E07F800007F07F000007F07F000007F0FF0000
|
||||
07F0FF000007F0FF000007F0FFFFFFFFF0FFFFFFFFF0FF00000000FF00000000FF000000
|
||||
00FF00000000FF00000000FF000000007F000000007F000000007F800000007F80000000
|
||||
3F800000003F800000301FC00000301FC00000700FC00000600FE00000E007F00000C003
|
||||
F00001C001F800038000FC000700003E001E00001F80F8000003FFE0000000FF0000242E
|
||||
7DAC2B>I<00000FE00000007FF8000001F81E000003F03F00000FE07F80001FC0FF8000
|
||||
1F80FF80003F80FF80007F00FF80007F00FF80007F007F0000FE001C0000FE00000000FE
|
||||
00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00
|
||||
000000FE00000000FE00000000FE00000000FE00000000FE00000000FE000000FFFFFF80
|
||||
00FFFFFF8000FFFFFF800000FE00000000FE00000000FE00000000FE00000000FE000000
|
||||
00FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000
|
||||
FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE
|
||||
00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00
|
||||
000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE0000
|
||||
0000FE00000000FE00000001FF8000007FFFFF00007FFFFF00007FFFFF000021467EC51E
|
||||
>I<000000000F800001FC007FE0000FFF81F0F0003F07E381F000FC01FF03F001F800FE
|
||||
01F003F0007E01E007F0007F000007E0003F00000FE0003F80000FC0001F80001FC0001F
|
||||
C0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001F
|
||||
C0001FC0001FC0001FC0001FC0000FC0001F80000FE0003F800007E0003F000007F0007F
|
||||
000003F0007E000001F800FC000001FC01F8000003BF07E00000030FFF8000000701FC00
|
||||
00000700000000000700000000000F00000000000F00000000000F00000000000F800000
|
||||
000007C00000000007E00000000007FFFFF8000003FFFFFF000003FFFFFFE00001FFFFFF
|
||||
F800007FFFFFFC0001FFFFFFFE0007C0000FFF000F800000FF003F0000003F803E000000
|
||||
1F807C0000000FC07C0000000FC0F800000007C0F800000007C0F800000007C0F8000000
|
||||
07C0F800000007C0FC0000000FC07C0000000F807E0000001F803E0000001F001F000000
|
||||
3E000F8000007C0007E00001F80001F80007E000007F003F8000001FFFFE00000001FFE0
|
||||
00002C427DAC31>I<01FC00000000FFFC00000000FFFC00000000FFFC0000000007FC00
|
||||
00000003FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC00
|
||||
00000001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC00
|
||||
00000001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC00
|
||||
00000001FC0000000001FC0000000001FC01FE000001FC07FFC00001FC1E07F00001FC38
|
||||
01F80001FC7001FC0001FCE000FC0001FDC000FE0001FD8000FE0001FF80007F0001FF00
|
||||
007F0001FF00007F0001FE00007F0001FE00007F0001FE00007F0001FC00007F0001FC00
|
||||
007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00
|
||||
007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00
|
||||
007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00
|
||||
007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00
|
||||
007F0003FE0000FF80FFFFF83FFFFEFFFFF83FFFFEFFFFF83FFFFE2F457DC436>I<01E0
|
||||
0007F80007F8000FFC000FFC000FFC000FFC0007F80007F80001E0000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000001FC00FFFC
|
||||
00FFFC00FFFC0007FC0003FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC
|
||||
0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC
|
||||
0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC
|
||||
0001FC0001FC0003FE00FFFFF8FFFFF8FFFFF815437DC21C>I<00003C000000FF000000
|
||||
FF000001FF800001FF800001FF800001FF800000FF000000FF0000003C00000000000000
|
||||
000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000007F80003FFF80003FFF80003FFF800000FF8000007F800000
|
||||
3F8000003F8000003F8000003F8000003F8000003F8000003F8000003F8000003F800000
|
||||
3F8000003F8000003F8000003F8000003F8000003F8000003F8000003F8000003F800000
|
||||
3F8000003F8000003F8000003F8000003F8000003F8000003F8000003F8000003F800000
|
||||
3F8000003F8000003F8000003F8000003F8000003F8000003F8000003F8000003F800000
|
||||
3F8000003F8000003F8000003F8000003F8000003F8000003F8000003F8000003F800000
|
||||
3F803E003F807F003F80FF807F00FF807F00FF807E00FF807E00FF80FC007F00F8003C01
|
||||
F0001E03E00007FF800001FE0000195785C21E>I<01FC00000000FFFC00000000FFFC00
|
||||
000000FFFC0000000007FC0000000003FC0000000001FC0000000001FC0000000001FC00
|
||||
00000001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC00
|
||||
00000001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC00
|
||||
00000001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC00
|
||||
1FFFE001FC001FFFE001FC001FFFE001FC000FFF0001FC0007F80001FC0007E00001FC00
|
||||
07C00001FC0007800001FC000E000001FC001C000001FC0038000001FC0070000001FC00
|
||||
E0000001FC01C0000001FC0380000001FC0700000001FC0F00000001FC3F80000001FC7F
|
||||
C0000001FCFFC0000001FDCFE0000001FF8FF0000001FF07F0000001FE03F8000001FC03
|
||||
FC000001FC01FC000001FC00FE000001FC00FF000001FC007F000001FC003F800001FC00
|
||||
3FC00001FC001FC00001FC000FE00001FC000FF00001FC0007F00001FC0007F80001FC00
|
||||
03FC0001FC0003FE0001FC0003FF0003FE0007FF80FFFFF81FFFF8FFFFF81FFFF8FFFFF8
|
||||
1FFFF82D457DC433>I<01FC00FFFC00FFFC00FFFC0007FC0003FC0001FC0001FC0001FC
|
||||
0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC
|
||||
0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC
|
||||
0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC
|
||||
0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC
|
||||
0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0003FE00FFFFF8FFFFF8FFFF
|
||||
F815457DC41C>I<01FC00FF00001FE00000FFFC07FFE000FFFC0000FFFC0F03F801E07F
|
||||
0000FFFC3C01FC07803F800007FC7000FE0E001FC00003FCE0007E1C000FC00001FDC000
|
||||
7F38000FE00001FD80007F30000FE00001FF80003FF00007F00001FF00003FE00007F000
|
||||
01FF00003FE00007F00001FE00003FC00007F00001FE00003FC00007F00001FE00003FC0
|
||||
0007F00001FC00003F800007F00001FC00003F800007F00001FC00003F800007F00001FC
|
||||
00003F800007F00001FC00003F800007F00001FC00003F800007F00001FC00003F800007
|
||||
F00001FC00003F800007F00001FC00003F800007F00001FC00003F800007F00001FC0000
|
||||
3F800007F00001FC00003F800007F00001FC00003F800007F00001FC00003F800007F000
|
||||
01FC00003F800007F00001FC00003F800007F00001FC00003F800007F00001FC00003F80
|
||||
0007F00001FC00003F800007F00001FC00003F800007F00001FC00003F800007F00001FC
|
||||
00003F800007F00001FC00003F800007F00001FC00003F800007F00001FC00003F800007
|
||||
F00001FC00003F800007F00003FE00007FC0000FF800FFFFF81FFFFF03FFFFE0FFFFF81F
|
||||
FFFF03FFFFE0FFFFF81FFFFF03FFFFE04B2C7DAB52>I<01FC01FE0000FFFC07FFC000FF
|
||||
FC1E07F000FFFC3801F80007FC7001FC0003FCE000FC0001FDC000FE0001FD8000FE0001
|
||||
FF80007F0001FF00007F0001FF00007F0001FE00007F0001FE00007F0001FE00007F0001
|
||||
FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001
|
||||
FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001
|
||||
FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001
|
||||
FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001
|
||||
FC00007F0001FC00007F0003FE0000FF80FFFFF83FFFFEFFFFF83FFFFEFFFFF83FFFFE2F
|
||||
2C7DAB36>I<00007F8000000003FFF00000000FC0FC0000003E001F0000007C000F8000
|
||||
00F80007C00001F00003E00003E00001F00007C00000F8000FC00000FC000FC00000FC00
|
||||
1F8000007E003F8000007F003F8000007F003F0000003F007F0000003F807F0000003F80
|
||||
7F0000003F807F0000003F80FF0000003FC0FF0000003FC0FF0000003FC0FF0000003FC0
|
||||
FF0000003FC0FF0000003FC0FF0000003FC0FF0000003FC0FF0000003FC0FF0000003FC0
|
||||
7F0000003F807F0000003F807F8000007F803F8000007F003F8000007F001F8000007E00
|
||||
1FC00000FE000FC00000FC000FE00001FC0007E00001F80003F00003F00001F80007E000
|
||||
00FC000FC000003E001F0000001FC0FE00000007FFF8000000007F8000002A2E7DAC31>
|
||||
I<01FC03FC0000FFFC0FFF8000FFFC3C07E000FFFC7001F80007FDE000FE0001FD80007F
|
||||
0001FF80003F8001FF00001FC001FE00001FE001FC00000FE001FC00000FF001FC000007
|
||||
F001FC000007F801FC000003F801FC000003FC01FC000003FC01FC000003FC01FC000001
|
||||
FE01FC000001FE01FC000001FE01FC000001FE01FC000001FE01FC000001FE01FC000001
|
||||
FE01FC000001FE01FC000001FE01FC000001FE01FC000001FE01FC000003FC01FC000003
|
||||
FC01FC000003FC01FC000007F801FC000007F801FC000007F001FC00000FF001FE00000F
|
||||
E001FE00001FC001FF00003FC001FF00003F8001FF80007E0001FDC000FC0001FCF003F8
|
||||
0001FC3C0FE00001FC1FFF800001FC03FC000001FC0000000001FC0000000001FC000000
|
||||
0001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC000000
|
||||
0001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000003FE000000
|
||||
00FFFFF8000000FFFFF8000000FFFFF80000002F3F7DAB36>I<03F803F0FFF81FFCFFF8
|
||||
3C3EFFF8707F07F8E0FF03F9C0FF01F980FF01FB80FF01FB007E01FB003C01FF000001FE
|
||||
000001FE000001FE000001FE000001FC000001FC000001FC000001FC000001FC000001FC
|
||||
000001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC
|
||||
000001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC
|
||||
000001FC000003FF0000FFFFFE00FFFFFE00FFFFFE00202C7DAB26>114
|
||||
D<003FE01801FFFC3807E01F780F0003F81E0001F83C0000F87C00007878000078F80000
|
||||
38F8000038F8000018F8000018FC000018FC000018FE000018FF8000007FC000007FFC00
|
||||
003FFFE0001FFFFC000FFFFF0007FFFFC003FFFFE000FFFFF0001FFFF80000FFF800000F
|
||||
FC000003FCC00001FEC00000FEC000007EE000007EE000003EE000003EF000003EF00000
|
||||
3EF000003EF800003CFC00007CFC000078FE0000F8FF0001F0F38003E0F1F00F80E07FFE
|
||||
00C00FF0001F2E7DAC26>I<0006000000060000000600000006000000060000000E0000
|
||||
000E0000000E0000000E0000001E0000001E0000001E0000003E0000007E0000007E0000
|
||||
00FE000001FE000007FE00001FFFFFF0FFFFFFF0FFFFFFF000FE000000FE000000FE0000
|
||||
00FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE0000
|
||||
00FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE0000
|
||||
00FE000000FE000C00FE000C00FE000C00FE000C00FE000C00FE000C00FE000C00FE000C
|
||||
00FE000C00FE000C007E001C007F0018007F0018003F0038001F8030001FC0700007E0E0
|
||||
0001FFC000007F001E3E7EBC26>I<01FC00007F00FFFC003FFF00FFFC003FFF00FFFC00
|
||||
3FFF0007FC0001FF0003FC0000FF0001FC00007F0001FC00007F0001FC00007F0001FC00
|
||||
007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00
|
||||
007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00
|
||||
007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00
|
||||
007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC0000FF0001FC00
|
||||
00FF0001FC0000FF0001FC0001FF0001FC0001FF0000FC0001FF0000FE0003FF00007E00
|
||||
077F80007F000E7FC0003F001C7FFE000FC0787FFE0003FFF07FFE00007F807F002F2D7D
|
||||
AB36>I<FFFFF001FFFCFFFFF001FFFCFFFFF001FFFC07FF00007FE003FE00001F8001FE
|
||||
00001F0001FE00000E0000FE00000E0000FE00000C00007F00001800007F00001800007F
|
||||
80001800003F80003000003F80003000003FC0007000001FC0006000001FE0006000000F
|
||||
E000C000000FE000C000000FF001C0000007F00180000007F00180000003F80300000003
|
||||
F80300000003FC0700000001FC0600000001FC0600000000FE0C00000000FE0C00000000
|
||||
FF0C000000007F18000000007F18000000007FB8000000003FB0000000003FF000000000
|
||||
1FE0000000001FE0000000001FE0000000000FC0000000000FC000000000078000000000
|
||||
078000000000078000000000030000002E2C7EAA33>I<FFFFE0FFFFE03FFF80FFFFE0FF
|
||||
FFE03FFF80FFFFE0FFFFE03FFF8007FF000FFE000FFC0003FC0003F80003F80003FC0003
|
||||
F80001E00001FC0003F80001E00001FC0001F80001C00001FE0001FC0001C00000FE0001
|
||||
FC0001800000FE0001FC0001800000FF0001FE00038000007F00037E00030000007F0003
|
||||
7E00030000007F80037F00070000003F80063F00060000003F80063F00060000001FC006
|
||||
3F800C0000001FC00C1F800C0000001FC00C1F800C0000000FE00C1FC0180000000FE018
|
||||
0FC0180000000FE0180FC01800000007F0180FE03000000007F03007E03000000007F030
|
||||
07E03000000003F83007F06000000003F86003F06000000003F86003F06000000001FCE0
|
||||
03F8C000000001FCC001F8C000000001FCC001FCC000000000FFC001FD8000000000FF80
|
||||
00FD8000000000FF8000FF80000000007F8000FF00000000007F00007F00000000007F00
|
||||
007F00000000003F00007E00000000003E00003E00000000003E00003E00000000001E00
|
||||
003C00000000001C00001C00000000001C00001C000000412C7EAA46>I<FFFFF007FFFC
|
||||
FFFFF007FFFCFFFFF007FFFC03FFC001FFC000FF8000FF00007F8000FC00003F8000F800
|
||||
003FC000E000001FE000E000000FE001C0000007F00380000007F80300000003FC060000
|
||||
0001FC0E00000001FE1C00000000FF18000000007F30000000003FF0000000003FE00000
|
||||
00001FE0000000000FE00000000007F00000000007F8000000000FF8000000000DFC0000
|
||||
000019FE0000000038FF00000000707F00000000603F80000000C03FC0000001C01FC000
|
||||
0003800FE0000003000FF00000060007F800000E0003F800001C0001FC00003C0001FE00
|
||||
007C0001FF0001FC0001FF800FFE0003FFC0FFFF800FFFFFFFFF800FFFFFFFFF800FFFFF
|
||||
302B7FAA33>I<FFFFF001FFFCFFFFF001FFFCFFFFF001FFFC07FF00007FE003FE00001F
|
||||
8001FE00001F0001FE00000E0000FE00000C0000FF00001C00007F00001800007F000018
|
||||
00007F80003800003F80003000003F80003000001FC0006000001FC0006000001FE000E0
|
||||
00000FE000C000000FE000C0000007F00180000007F00180000007F80380000003F80300
|
||||
000003F80300000001FC0600000001FC0600000001FE0E00000000FE0C00000000FE0C00
|
||||
0000007F18000000007F18000000007FB8000000003FB0000000003FB0000000001FE000
|
||||
0000001FE0000000001FE0000000000FC0000000000FC000000000078000000000078000
|
||||
000000078000000000030000000000030000000000060000000000060000000000060000
|
||||
0000000C00000000000C0000000000180000000000180000003C00180000007E00300000
|
||||
00FF0030000000FF0060000000FF0060000000FF00C0000000FE01C00000007C03800000
|
||||
007007000000003C1E000000000FFC0000000003F0000000002E3F7EAA33>I
|
||||
E /Fb 15 116 df<0FC01FE03FF07FF8FFFCFFFCFFFCFFFEFFFEFFFE7FFE3FFE1FFE0FDE
|
||||
001E001E003E003C003C007C0078007800F801F001F003E007C00F801F803F001E000C00
|
||||
0F2079BE1D>39 D<0FC01FE03FF07FF8FFFCFFFCFFFCFFFCFFFCFFFC7FF83FF01FE00FC0
|
||||
0000000000000000000000000000000000000000000000000FC01FE03FF07FF8FFFCFFFC
|
||||
FFFCFFFCFFFCFFFC7FF83FF01FE00FC00E2879A71D>58 D<FFFFFFFFFFF80000FFFFFFFF
|
||||
FFFF8000FFFFFFFFFFFFF000FFFFFFFFFFFFFC00FFFFFFFFFFFFFE00003FFC00003FFF00
|
||||
003FFC00000FFF80003FFC000007FFC0003FFC000003FFE0003FFC000001FFE0003FFC00
|
||||
0001FFF0003FFC000001FFF0003FFC000000FFF8003FFC000000FFF8003FFC000000FFF8
|
||||
003FFC000000FFF8003FFC000000FFF8003FFC000000FFF8003FFC000000FFF8003FFC00
|
||||
0000FFF0003FFC000001FFF0003FFC000001FFF0003FFC000003FFE0003FFC000003FFC0
|
||||
003FFC000007FF80003FFC00000FFF00003FFC00003FFE00003FFC0001FFF800003FFFFF
|
||||
FFFFE000003FFFFFFFFF8000003FFFFFFFFFF800003FFFFFFFFFFE00003FFC00000FFF80
|
||||
003FFC000003FFC0003FFC000001FFE0003FFC000000FFF0003FFC000000FFF8003FFC00
|
||||
00007FFC003FFC0000007FFC003FFC0000003FFE003FFC0000003FFE003FFC0000003FFF
|
||||
003FFC0000003FFF003FFC0000003FFF003FFC0000001FFF003FFC0000003FFF003FFC00
|
||||
00003FFF003FFC0000003FFF003FFC0000003FFF003FFC0000003FFE003FFC0000007FFE
|
||||
003FFC0000007FFE003FFC000000FFFC003FFC000001FFF8003FFC000003FFF8003FFC00
|
||||
0007FFF0003FFC00003FFFE0FFFFFFFFFFFFFFC0FFFFFFFFFFFFFF00FFFFFFFFFFFFFC00
|
||||
FFFFFFFFFFFFF000FFFFFFFFFFFF0000403E7DBD4A>66 D<FFFFFFFFFFF00000FFFFFFFF
|
||||
FFFF0000FFFFFFFFFFFFC000FFFFFFFFFFFFF000FFFFFFFFFFFFFC00003FFC0000FFFE00
|
||||
003FFC00001FFF00003FFC00000FFF80003FFC000007FFC0003FFC000003FFE0003FFC00
|
||||
0003FFE0003FFC000001FFF0003FFC000001FFF0003FFC000001FFF0003FFC000001FFF8
|
||||
003FFC000001FFF8003FFC000001FFF8003FFC000001FFF8003FFC000001FFF8003FFC00
|
||||
0001FFF8003FFC000001FFF8003FFC000001FFF8003FFC000001FFF0003FFC000001FFF0
|
||||
003FFC000001FFF0003FFC000003FFE0003FFC000003FFC0003FFC000007FFC0003FFC00
|
||||
000FFF80003FFC00003FFF00003FFC0000FFFE00003FFFFFFFFFF800003FFFFFFFFFF000
|
||||
003FFFFFFFFF8000003FFFFFFFFC0000003FFE0000000000003FFE0000000000003FFE00
|
||||
00000000003FFE0000000000003FFE0000000000003FFE0000000000003FFE0000000000
|
||||
003FFE0000000000003FFE0000000000003FFE0000000000003FFE0000000000003FFE00
|
||||
00000000003FFE0000000000003FFE0000000000003FFE0000000000003FFE0000000000
|
||||
003FFE0000000000003FFE0000000000003FFE0000000000003FFE0000000000003FFE00
|
||||
00000000003FFE0000000000FFFFFFFF80000000FFFFFFFF80000000FFFFFFFF80000000
|
||||
FFFFFFFF80000000FFFFFFFF800000003D3E7DBD47>80 D<3FFFFFFFFFFFFFFC3FFFFFFF
|
||||
FFFFFFFC3FFFFFFFFFFFFFFC3FFFFFFFFFFFFFFC3FFFFFFFFFFFFFFC3FFE003FFE003FFC
|
||||
7FF0003FFE000FFE7FC0003FFE0003FE7F80003FFE0001FE7F00003FFE0000FE7F00003F
|
||||
FE00007E7E00003FFE00007E7E00003FFE00007E7C00003FFE00003E7C00003FFE00003E
|
||||
7C00003FFE00003E7C00003FFE00003EFC00003FFE00003FF800003FFE00001FF800003F
|
||||
FE00001FF800003FFE00001FF800003FFE00001FF800003FFE00001F0000003FFE000000
|
||||
0000003FFE0000000000003FFE0000000000003FFE0000000000003FFE0000000000003F
|
||||
FE0000000000003FFE0000000000003FFE0000000000003FFE0000000000003FFE000000
|
||||
0000003FFE0000000000003FFE0000000000003FFE0000000000003FFE0000000000003F
|
||||
FE0000000000003FFE0000000000003FFE0000000000003FFE0000000000003FFE000000
|
||||
0000003FFE0000000000003FFE0000000000003FFE0000000000003FFE0000000000003F
|
||||
FE0000000000003FFE0000000000003FFE0000000000003FFE0000000000003FFE000000
|
||||
0000003FFE0000000000003FFE0000000000003FFE0000000000003FFE0000000000003F
|
||||
FE000000000FFFFFFFFFF800000FFFFFFFFFF800000FFFFFFFFFF800000FFFFFFFFFF800
|
||||
000FFFFFFFFFF800403D7CBC49>84 D<0007FFC00000003FFFF8000001FFFFFF000003FF
|
||||
FFFF800007FE03FFC0000FF800FFE0000FFC003FF0001FFE003FF8001FFE001FFC001FFE
|
||||
001FFC001FFE001FFC001FFE000FFE001FFE000FFE000FFC000FFE0007F8000FFE0001E0
|
||||
000FFE000000000FFE000000003FFE000000FFFFFE00000FFFFFFE00007FFFFFFE0001FF
|
||||
FE0FFE0003FFE00FFE000FFF800FFE001FFE000FFE003FFC000FFE003FF8000FFE007FF0
|
||||
000FFE00FFF0000FFE00FFE0000FFE00FFE0000FFE00FFE0000FFE00FFE0000FFE00FFE0
|
||||
001FFE00FFF0001FFE007FF0003FFE007FF8007BFF803FFC00FBFFFE1FFF07F3FFFE0FFF
|
||||
FFE1FFFE03FFFF80FFFE00FFFF003FFE001FF80000002F2B7DA933>97
|
||||
D<00FF0000000000FFFF0000000000FFFF0000000000FFFF0000000000FFFF0000000000
|
||||
FFFF000000000007FF000000000003FF000000000003FF000000000003FF000000000003
|
||||
FF000000000003FF000000000003FF000000000003FF000000000003FF000000000003FF
|
||||
000000000003FF000000000003FF000000000003FF000000000003FF000000000003FF00
|
||||
0000000003FF000000000003FF00FFE0000003FF07FFFC000003FF1FFFFF800003FF7FFF
|
||||
FFC00003FFFF81FFF00003FFFC003FF80003FFF0001FFC0003FFE0000FFE0003FFC00007
|
||||
FE0003FF800007FF0003FF800003FF8003FF800003FF8003FF800003FFC003FF800001FF
|
||||
C003FF800001FFC003FF800001FFC003FF800001FFE003FF800001FFE003FF800001FFE0
|
||||
03FF800001FFE003FF800001FFE003FF800001FFE003FF800001FFE003FF800001FFE003
|
||||
FF800001FFE003FF800001FFE003FF800001FFC003FF800001FFC003FF800003FFC003FF
|
||||
800003FF8003FF800003FF8003FF800003FF0003FF800007FF0003FFC00007FE0003FFE0
|
||||
000FFC0003FFF0001FF80003FFFC007FF00003FCFF01FFE00003F87FFFFFC00003F01FFF
|
||||
FF000003E007FFFC0000000001FFC0000033407DBE3A>I<0000FFF000000007FFFE0000
|
||||
001FFFFF8000007FFFFFC00000FFE07FE00001FF801FF00003FF000FF80007FE0007FC00
|
||||
0FFC0003FE001FFC0003FE001FF80001FE003FF80001FF003FF80001FF007FF00001FF00
|
||||
7FF00000FF807FF00000FF80FFF00000FF80FFF00000FF80FFFFFFFFFF80FFFFFFFFFF80
|
||||
FFFFFFFFFF80FFFFFFFFFF80FFF000000000FFF000000000FFF000000000FFF000000000
|
||||
FFF0000000007FF0000000007FF0000000007FF8000000003FF8000000003FF800000F80
|
||||
1FFC00000F801FFC00001F800FFE00001F0007FF00003F0003FF80007E0001FFE001FC00
|
||||
00FFF80FF800003FFFFFF000001FFFFFC0000003FFFF000000007FF80000292B7DA930>
|
||||
101 D<00FF0000000000FFFF0000000000FFFF0000000000FFFF0000000000FFFF000000
|
||||
0000FFFF000000000007FF000000000003FF000000000003FF000000000003FF00000000
|
||||
0003FF000000000003FF000000000003FF000000000003FF000000000003FF0000000000
|
||||
03FF000000000003FF000000000003FF000000000003FF000000000003FF000000000003
|
||||
FF000000000003FF000000000003FF001FF8000003FF00FFFE000003FF03FFFF800003FF
|
||||
07FFFFC00003FF0FE0FFE00003FF1F007FE00003FF3C007FF00003FF78007FF00003FFF0
|
||||
003FF80003FFE0003FF80003FFE0003FF80003FFC0003FF80003FFC0003FF80003FFC000
|
||||
3FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003F
|
||||
F80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF8
|
||||
0003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF800
|
||||
03FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003
|
||||
FF80003FF80003FF80003FF800FFFFFE0FFFFFE0FFFFFE0FFFFFE0FFFFFE0FFFFFE0FFFF
|
||||
FE0FFFFFE0FFFFFE0FFFFFE0333F7CBE3A>104 D<00FF0000000000FFFF0000000000FF
|
||||
FF0000000000FFFF0000000000FFFF0000000000FFFF000000000007FF000000000003FF
|
||||
000000000003FF000000000003FF000000000003FF000000000003FF000000000003FF00
|
||||
0000000003FF000000000003FF000000000003FF000000000003FF000000000003FF0000
|
||||
00000003FF000000000003FF000000000003FF000000000003FF000000000003FF000000
|
||||
000003FF000FFFFE0003FF000FFFFE0003FF000FFFFE0003FF000FFFFE0003FF000FFFFE
|
||||
0003FF0001FE000003FF0003FC000003FF0007F0000003FF001FE0000003FF003FC00000
|
||||
03FF007F80000003FF00FF00000003FF03FC00000003FF07F800000003FF0FF000000003
|
||||
FF1FF000000003FF7FF800000003FFFFFC00000003FFFFFC00000003FFFFFE00000003FF
|
||||
FFFF00000003FFE7FF80000003FFC3FFC0000003FF81FFC0000003FF00FFE0000003FF00
|
||||
FFF0000003FF007FF8000003FF003FFC000003FF001FFC000003FF000FFE000003FF000F
|
||||
FF000003FF0007FF800003FF0003FFC00003FF0001FFC00003FF0000FFE000FFFFFC07FF
|
||||
FFC0FFFFFC07FFFFC0FFFFFC07FFFFC0FFFFFC07FFFFC0FFFFFC07FFFFC0323F7DBE37>
|
||||
107 D<00FF00FFFF00FFFF00FFFF00FFFF00FFFF0007FF0003FF0003FF0003FF0003FF00
|
||||
03FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF00
|
||||
03FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF00
|
||||
03FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF00
|
||||
03FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF00FFFFFC
|
||||
FFFFFCFFFFFCFFFFFCFFFFFC163F7CBE1D>I<00FF001FF80000FFC00000FFFF00FFFF00
|
||||
07FFF80000FFFF03FFFFC01FFFFE0000FFFF07FFFFE03FFFFF0000FFFF0FE0FFF07F07FF
|
||||
8000FFFF1F003FF0F801FF800007FF3E003FF9F001FFC00003FF78003FFBC001FFC00003
|
||||
FFF0001FFF8000FFE00003FFF0001FFF8000FFE00003FFE0001FFF0000FFE00003FFC000
|
||||
1FFE0000FFE00003FFC0001FFE0000FFE00003FFC0001FFE0000FFE00003FF80001FFC00
|
||||
00FFE00003FF80001FFC0000FFE00003FF80001FFC0000FFE00003FF80001FFC0000FFE0
|
||||
0003FF80001FFC0000FFE00003FF80001FFC0000FFE00003FF80001FFC0000FFE00003FF
|
||||
80001FFC0000FFE00003FF80001FFC0000FFE00003FF80001FFC0000FFE00003FF80001F
|
||||
FC0000FFE00003FF80001FFC0000FFE00003FF80001FFC0000FFE00003FF80001FFC0000
|
||||
FFE00003FF80001FFC0000FFE00003FF80001FFC0000FFE00003FF80001FFC0000FFE000
|
||||
03FF80001FFC0000FFE00003FF80001FFC0000FFE00003FF80001FFC0000FFE00003FF80
|
||||
001FFC0000FFE00003FF80001FFC0000FFE000FFFFFE07FFFFF03FFFFF80FFFFFE07FFFF
|
||||
F03FFFFF80FFFFFE07FFFFF03FFFFF80FFFFFE07FFFFF03FFFFF80FFFFFE07FFFFF03FFF
|
||||
FF8051297CA858>I<00007FF000000003FFFE0000001FFFFFC000007FFFFFF00000FFE0
|
||||
3FF80001FF800FFC0003FE0003FE0007FC0001FF000FFC0001FF801FF80000FFC01FF800
|
||||
00FFC03FF80000FFE03FF000007FE07FF000007FF07FF000007FF07FF000007FF07FF000
|
||||
007FF0FFF000007FF8FFF000007FF8FFF000007FF8FFF000007FF8FFF000007FF8FFF000
|
||||
007FF8FFF000007FF8FFF000007FF8FFF000007FF8FFF000007FF87FF000007FF07FF000
|
||||
007FF07FF000007FF07FF000007FF03FF80000FFE03FF80000FFE01FF80000FFC00FFC00
|
||||
01FF800FFC0001FF8007FE0003FF0003FF800FFE0001FFE03FFC00007FFFFFF000001FFF
|
||||
FFC0000007FFFF000000007FF000002D2B7DA934>111 D<01FE01FE00FFFE07FF80FFFE
|
||||
0FFFE0FFFE1FFFF0FFFE3F1FF0FFFE7C3FF807FEF83FF803FEF03FF803FFE03FF803FFE0
|
||||
3FF803FFC01FF003FFC00FE003FF8007C003FF80000003FF80000003FF80000003FF0000
|
||||
0003FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF000000
|
||||
03FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003
|
||||
FF00000003FF00000003FF00000003FF00000003FF000000FFFFFF0000FFFFFF0000FFFF
|
||||
FF0000FFFFFF0000FFFFFF000025297DA82B>114 D<003FFC1E0001FFFFBE0007FFFFFE
|
||||
000FFFFFFE001FF00FFE003F8001FE007F0000FE007E00007E007E00007E00FE00003E00
|
||||
FE00003E00FF00003E00FF80003E00FFC0000000FFF8000000FFFFE000007FFFFF00007F
|
||||
FFFFC0003FFFFFF0001FFFFFF8000FFFFFFC0007FFFFFE0003FFFFFF0000FFFFFF80001F
|
||||
FFFF800000FFFF80000007FFC0000000FFC07800007FC0F800003FC0F800001FC0FC0000
|
||||
1FC0FC00001FC0FE00001FC0FE00001F80FF00003F80FF80003F00FFE000FF00FFF803FE
|
||||
00FFFFFFFC00FFFFFFF000F87FFFC000E00FFE0000222B7DA929>I
|
||||
E /Fc 18 118 df<00000000001F00000000000000000000003F80000000000000000000
|
||||
007FC0000000000000000000007FC000000000000000000000FFE0000000000000000000
|
||||
00FFE000000000000000000000FFE000000000000000000001FFF0000000000000000000
|
||||
01FFF000000000000000000003FFF800000000000000000003FFF8000000000000000000
|
||||
03FFF800000000000000000007FFFC00000000000000000007FFFC000000000000000000
|
||||
07FFFC0000000000000000000FFFFE0000000000000000000FFFFE000000000000000000
|
||||
1FFFFF0000000000000000001FFFFF0000000000000000001FFFFF000000000000000000
|
||||
3FFFFF8000000000000000003F7FFF8000000000000000007F7FFFC00000000000000000
|
||||
7E7FFFC000000000000000007E3FFFC00000000000000000FE3FFFE00000000000000000
|
||||
FC1FFFE00000000000000001FC1FFFF00000000000000001F81FFFF00000000000000001
|
||||
F80FFFF00000000000000003F80FFFF80000000000000003F007FFF80000000000000007
|
||||
F007FFFC0000000000000007E007FFFC0000000000000007E003FFFC000000000000000F
|
||||
E003FFFE000000000000000FC001FFFE000000000000001FC001FFFF000000000000001F
|
||||
8001FFFF000000000000001F8000FFFF000000000000003F8000FFFF800000000000003F
|
||||
00007FFF800000000000007F00007FFFC00000000000007E00007FFFC00000000000007E
|
||||
00003FFFC0000000000000FE00003FFFE0000000000000FC00001FFFE0000000000001FC
|
||||
00001FFFF0000000000001F800001FFFF0000000000001F800000FFFF0000000000003F8
|
||||
00000FFFF8000000000003F0000007FFF8000000000007F0000007FFFC000000000007E0
|
||||
000007FFFC000000000007E0000003FFFC00000000000FFFFFFFFFFFFE00000000000FFF
|
||||
FFFFFFFFFE00000000001FFFFFFFFFFFFF00000000001FFFFFFFFFFFFF00000000001FFF
|
||||
FFFFFFFFFF00000000003F80000000FFFF80000000003F000000007FFF80000000007F00
|
||||
0000007FFFC0000000007F000000007FFFC0000000007E000000003FFFC000000000FE00
|
||||
0000003FFFE000000000FC000000001FFFE000000001FC000000001FFFF000000001FC00
|
||||
0000001FFFF000000001F8000000000FFFF000000003F8000000000FFFF800000003F000
|
||||
00000007FFF800000007F00000000007FFFC00000007F00000000007FFFC00000007E000
|
||||
00000003FFFC0000000FE00000000003FFFE0000000FC00000000003FFFE0000001FC000
|
||||
00000001FFFF000000FFFC0000000001FFFF0000FFFFFFF800000FFFFFFFFFE0FFFFFFF8
|
||||
00000FFFFFFFFFE0FFFFFFF800000FFFFFFFFFE0FFFFFFF800000FFFFFFFFFE0FFFFFFF8
|
||||
00000FFFFFFFFFE05B547BD366>65 D<FFFFFFFFFFFFFFC0000000FFFFFFFFFFFFFFFE00
|
||||
0000FFFFFFFFFFFFFFFFC00000FFFFFFFFFFFFFFFFF00000FFFFFFFFFFFFFFFFFC000000
|
||||
07FFF0000003FFFF00000007FFF00000007FFF80000007FFF00000003FFFC0000007FFF0
|
||||
0000000FFFE0000007FFF000000007FFF0000007FFF000000007FFF8000007FFF0000000
|
||||
03FFF8000007FFF000000003FFFC000007FFF000000001FFFC000007FFF000000001FFFE
|
||||
000007FFF000000000FFFE000007FFF000000000FFFE000007FFF000000000FFFF000007
|
||||
FFF000000000FFFF000007FFF000000000FFFF000007FFF000000000FFFF000007FFF000
|
||||
000000FFFF000007FFF000000000FFFF000007FFF000000000FFFF000007FFF000000000
|
||||
FFFF000007FFF000000001FFFE000007FFF000000001FFFE000007FFF000000001FFFC00
|
||||
0007FFF000000003FFFC000007FFF000000003FFF8000007FFF000000007FFF8000007FF
|
||||
F000000007FFF0000007FFF00000000FFFE0000007FFF00000001FFFC0000007FFF00000
|
||||
007FFF00000007FFF0000001FFFE00000007FFF0000007FFF800000007FFFFFFFFFFFFE0
|
||||
00000007FFFFFFFFFFFF0000000007FFFFFFFFFFFF8000000007FFFFFFFFFFFFF0000000
|
||||
07FFF0000003FFFE00000007FFF00000003FFF80000007FFF00000000FFFE0000007FFF0
|
||||
00000007FFF0000007FFF000000001FFF8000007FFF000000001FFFC000007FFF0000000
|
||||
00FFFE000007FFF0000000007FFF000007FFF0000000007FFF800007FFF0000000003FFF
|
||||
C00007FFF0000000003FFFC00007FFF0000000001FFFE00007FFF0000000001FFFE00007
|
||||
FFF0000000001FFFE00007FFF0000000001FFFF00007FFF0000000001FFFF00007FFF000
|
||||
0000001FFFF00007FFF0000000000FFFF00007FFF0000000000FFFF00007FFF000000000
|
||||
0FFFF00007FFF0000000001FFFF00007FFF0000000001FFFF00007FFF0000000001FFFF0
|
||||
0007FFF0000000001FFFE00007FFF0000000001FFFE00007FFF0000000003FFFE00007FF
|
||||
F0000000003FFFC00007FFF0000000003FFFC00007FFF0000000007FFF800007FFF00000
|
||||
0000FFFF800007FFF000000000FFFF000007FFF000000001FFFE000007FFF000000007FF
|
||||
FE000007FFF00000000FFFFC000007FFF00000003FFFF0000007FFF0000001FFFFE000FF
|
||||
FFFFFFFFFFFFFFFF8000FFFFFFFFFFFFFFFFFF0000FFFFFFFFFFFFFFFFF80000FFFFFFFF
|
||||
FFFFFFFFC00000FFFFFFFFFFFFFFF800000054527CD160>I<0000000001FFFC000001C0
|
||||
000000007FFFFFC00003C000000007FFFFFFF80007C00000003FFFFFFFFE001FC0000000
|
||||
FFFFFFFFFF803FC0000003FFFFE003FFC07FC000000FFFFC00003FF0FFC000003FFFE000
|
||||
000FF9FFC000007FFF80000003FFFFC00001FFFE00000000FFFFC00003FFF8000000007F
|
||||
FFC00007FFF0000000003FFFC0000FFFE0000000001FFFC0001FFFC0000000000FFFC000
|
||||
3FFF800000000007FFC0007FFF000000000003FFC000FFFE000000000001FFC000FFFE00
|
||||
0000000001FFC001FFFC000000000000FFC003FFF8000000000000FFC003FFF800000000
|
||||
00007FC007FFF00000000000007FC00FFFF00000000000003FC00FFFF00000000000003F
|
||||
C01FFFE00000000000001FC01FFFE00000000000001FC01FFFE00000000000001FC03FFF
|
||||
C00000000000001FC03FFFC00000000000000FC03FFFC00000000000000FC07FFFC00000
|
||||
000000000FC07FFFC00000000000000FC07FFFC000000000000000007FFF800000000000
|
||||
0000007FFF800000000000000000FFFF800000000000000000FFFF800000000000000000
|
||||
FFFF800000000000000000FFFF800000000000000000FFFF800000000000000000FFFF80
|
||||
0000000000000000FFFF800000000000000000FFFF800000000000000000FFFF80000000
|
||||
0000000000FFFF800000000000000000FFFF800000000000000000FFFF80000000000000
|
||||
0000FFFF800000000000000000FFFF8000000000000000007FFF8000000000000000007F
|
||||
FF8000000000000000007FFFC000000000000000007FFFC000000000000000007FFFC000
|
||||
000000000007C03FFFC000000000000007C03FFFC000000000000007C03FFFC000000000
|
||||
000007C01FFFE000000000000007C01FFFE000000000000007C01FFFE00000000000000F
|
||||
C00FFFF00000000000000F800FFFF00000000000000F8007FFF00000000000001F8003FF
|
||||
F80000000000001F8003FFF80000000000001F0001FFFC0000000000003F0000FFFE0000
|
||||
000000007E0000FFFE0000000000007E00007FFF000000000000FC00003FFF8000000000
|
||||
01F800001FFFC00000000003F800000FFFE00000000007F0000007FFF0000000000FE000
|
||||
0003FFFC000000001FC0000001FFFE000000007F800000007FFF80000000FF000000003F
|
||||
FFE0000007FE000000000FFFFE00001FF80000000003FFFFE001FFF00000000000FFFFFF
|
||||
FFFFC000000000003FFFFFFFFF00000000000007FFFFFFFC000000000000007FFFFFE000
|
||||
00000000000001FFFC00000000525479D261>I<FFFFFFFFFFC0FFFFFFFFFFC0FFFFFFFF
|
||||
FFC0FFFFFFFFFFC0FFFFFFFFFFC00007FFF800000007FFF800000007FFF800000007FFF8
|
||||
00000007FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007FFF8
|
||||
00000007FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007FFF8
|
||||
00000007FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007FFF8
|
||||
00000007FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007FFF8
|
||||
00000007FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007FFF8
|
||||
00000007FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007FFF8
|
||||
00000007FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007FFF8
|
||||
00000007FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007FFF8
|
||||
00000007FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007FFF8
|
||||
00000007FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007FFF8
|
||||
00000007FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007FFF8
|
||||
00000007FFF800000007FFF80000FFFFFFFFFFC0FFFFFFFFFFC0FFFFFFFFFFC0FFFFFFFF
|
||||
FFC0FFFFFFFFFFC02A527CD132>73 D<000000000FFFC00000000000000003FFFFFF0000
|
||||
00000000001FFFFFFFE0000000000000FFFFFFFFFC000000000003FFFC00FFFF00000000
|
||||
000FFFC0000FFFC0000000003FFF000003FFF0000000007FFC000000FFF800000001FFF8
|
||||
0000007FFE00000003FFE00000001FFF00000007FFC00000000FFF8000000FFF80000000
|
||||
07FFC000001FFF0000000003FFE000003FFF0000000003FFF000007FFE0000000001FFF8
|
||||
0000FFFC0000000000FFFC0000FFFC0000000000FFFC0001FFF800000000007FFE0003FF
|
||||
F800000000007FFF0003FFF000000000003FFF0007FFF000000000003FFF8007FFE00000
|
||||
0000001FFF800FFFE000000000001FFFC00FFFE000000000001FFFC01FFFE00000000000
|
||||
1FFFE01FFFC000000000000FFFE01FFFC000000000000FFFE03FFFC000000000000FFFF0
|
||||
3FFFC000000000000FFFF03FFFC000000000000FFFF07FFF80000000000007FFF87FFF80
|
||||
000000000007FFF87FFF80000000000007FFF87FFF80000000000007FFF87FFF80000000
|
||||
000007FFF8FFFF80000000000007FFFCFFFF80000000000007FFFCFFFF80000000000007
|
||||
FFFCFFFF80000000000007FFFCFFFF80000000000007FFFCFFFF80000000000007FFFCFF
|
||||
FF80000000000007FFFCFFFF80000000000007FFFCFFFF80000000000007FFFCFFFF8000
|
||||
0000000007FFFCFFFF80000000000007FFFCFFFF80000000000007FFFCFFFF8000000000
|
||||
0007FFFCFFFF80000000000007FFFCFFFF80000000000007FFFC7FFF80000000000007FF
|
||||
F87FFFC000000000000FFFF87FFFC000000000000FFFF87FFFC000000000000FFFF87FFF
|
||||
C000000000000FFFF83FFFC000000000000FFFF03FFFC000000000000FFFF03FFFE00000
|
||||
0000001FFFF01FFFE000000000001FFFE01FFFE000000000001FFFE01FFFE00000000000
|
||||
1FFFE00FFFF000000000003FFFC00FFFF000000000003FFFC007FFF800000000007FFF80
|
||||
07FFF800000000007FFF8003FFF800000000007FFF0001FFFC0000000000FFFE0001FFFE
|
||||
0000000001FFFE0000FFFE0000000001FFFC00007FFF0000000003FFF800003FFF800000
|
||||
0007FFF000001FFFC00000000FFFE000000FFFE00000001FFFC0000007FFF00000003FFF
|
||||
80000003FFF80000007FFF00000001FFFC000000FFFE00000000FFFF000003FFFC000000
|
||||
003FFFE0001FFFF0000000000FFFFC00FFFFC00000000003FFFFFFFFFF000000000000FF
|
||||
FFFFFFFC0000000000001FFFFFFFE000000000000003FFFFFF00000000000000001FFFE0
|
||||
00000000565479D265>79 D<FFFFFFFFFFFFFF000000FFFFFFFFFFFFFFF80000FFFFFFFF
|
||||
FFFFFFFF0000FFFFFFFFFFFFFFFFE000FFFFFFFFFFFFFFFFF0000007FFF000001FFFFC00
|
||||
0007FFF0000001FFFF000007FFF00000007FFF800007FFF00000003FFFC00007FFF00000
|
||||
000FFFE00007FFF00000000FFFF00007FFF000000007FFF00007FFF000000003FFF80007
|
||||
FFF000000003FFFC0007FFF000000003FFFC0007FFF000000001FFFE0007FFF000000001
|
||||
FFFE0007FFF000000001FFFE0007FFF000000001FFFE0007FFF000000001FFFF0007FFF0
|
||||
00000001FFFF0007FFF000000001FFFF0007FFF000000001FFFF0007FFF000000001FFFF
|
||||
0007FFF000000001FFFF0007FFF000000001FFFF0007FFF000000001FFFF0007FFF00000
|
||||
0001FFFE0007FFF000000001FFFE0007FFF000000001FFFE0007FFF000000001FFFC0007
|
||||
FFF000000003FFFC0007FFF000000003FFFC0007FFF000000003FFF80007FFF000000007
|
||||
FFF00007FFF00000000FFFE00007FFF00000001FFFE00007FFF00000003FFFC00007FFF0
|
||||
0000007FFF000007FFF0000001FFFE000007FFF000001FFFFC000007FFFFFFFFFFFFF000
|
||||
0007FFFFFFFFFFFFC0000007FFFFFFFFFFFE00000007FFFFFFFFFFE000000007FFF80000
|
||||
000000000007FFF80000000000000007FFF80000000000000007FFF80000000000000007
|
||||
FFF80000000000000007FFF80000000000000007FFF80000000000000007FFF800000000
|
||||
00000007FFF80000000000000007FFF80000000000000007FFF80000000000000007FFF8
|
||||
0000000000000007FFF80000000000000007FFF80000000000000007FFF8000000000000
|
||||
0007FFF80000000000000007FFF80000000000000007FFF80000000000000007FFF80000
|
||||
000000000007FFF80000000000000007FFF80000000000000007FFF80000000000000007
|
||||
FFF80000000000000007FFF80000000000000007FFF80000000000000007FFF800000000
|
||||
00000007FFF80000000000000007FFF80000000000000007FFF80000000000000007FFF8
|
||||
0000000000000007FFF80000000000000007FFF8000000000000FFFFFFFFFFC000000000
|
||||
FFFFFFFFFFC000000000FFFFFFFFFFC000000000FFFFFFFFFFC000000000FFFFFFFFFFC0
|
||||
0000000050527CD15C>I<00000FFF800007000000FFFFF8000F000007FFFFFF001F0000
|
||||
1FFFFFFFC03F00003FFFFFFFF07F0000FFFC00FFF8FF0001FFE0000FFDFF0003FF800001
|
||||
FFFF0007FE0000007FFF000FFC0000003FFF000FF80000000FFF001FF800000007FF001F
|
||||
F000000003FF003FF000000003FF003FE000000001FF007FE000000000FF007FE0000000
|
||||
00FF007FE0000000007F00FFE0000000007F00FFE0000000003F00FFE0000000003F00FF
|
||||
F0000000003F00FFF0000000003F00FFF8000000001F00FFF8000000001F00FFFC000000
|
||||
001F00FFFE000000001F00FFFF000000000000FFFFC000000000007FFFF000000000007F
|
||||
FFFF00000000007FFFFFF8000000003FFFFFFF800000003FFFFFFFFC0000001FFFFFFFFF
|
||||
C000001FFFFFFFFFF000000FFFFFFFFFFC000007FFFFFFFFFF000003FFFFFFFFFFC00001
|
||||
FFFFFFFFFFE00000FFFFFFFFFFF000007FFFFFFFFFF800003FFFFFFFFFFC00000FFFFFFF
|
||||
FFFE000003FFFFFFFFFE000000FFFFFFFFFF0000001FFFFFFFFF80000000FFFFFFFF8000
|
||||
00000FFFFFFFC0000000007FFFFFC00000000007FFFFE00000000000FFFFE00000000000
|
||||
3FFFE000000000000FFFF0000000000007FFF0000000000003FFF0000000000003FFF078
|
||||
0000000001FFF0F80000000000FFF0F80000000000FFF0F80000000000FFF0F800000000
|
||||
007FF0F800000000007FF0FC00000000007FF0FC00000000007FF0FC00000000007FE0FE
|
||||
00000000007FE0FE00000000007FE0FF0000000000FFC0FF0000000000FFC0FF80000000
|
||||
00FFC0FFC000000001FF80FFE000000001FF00FFF000000003FF00FFFC00000007FE00FF
|
||||
FF0000000FFC00FFFFC000001FF800FFFFF800007FF000FF1FFFC003FFE000FE0FFFFFFF
|
||||
FFC000FC03FFFFFFFF0000F8007FFFFFFC0000F0000FFFFFF00000E000007FFF0000003C
|
||||
5479D24B>83 D<00007FFF000000000007FFFFF0000000003FFFFFFE00000000FFFFFFFF
|
||||
80000001FFE00FFFC0000003FE0001FFF0000007FF0000FFF8000007FF80003FFC00000F
|
||||
FF80003FFE00000FFFC0001FFE00000FFFC0001FFF00000FFFC0000FFF80000FFFC0000F
|
||||
FF80000FFFC0000FFF800007FF800007FFC00007FF800007FFC00003FF000007FFC00001
|
||||
FE000007FFC0000000000007FFC0000000000007FFC0000000000007FFC0000000000007
|
||||
FFC0000000000007FFC0000000000007FFC0000000007FFFFFC00000000FFFFFFFC00000
|
||||
00FFFFFFFFC0000007FFFF87FFC000003FFFF007FFC000007FFF8007FFC00001FFFC0007
|
||||
FFC00003FFF00007FFC00007FFE00007FFC0000FFFC00007FFC0001FFF800007FFC0003F
|
||||
FF000007FFC0007FFF000007FFC0007FFE000007FFC0007FFE000007FFC000FFFC000007
|
||||
FFC000FFFC000007FFC000FFFC000007FFC000FFFC000007FFC000FFFC00000FFFC000FF
|
||||
FC00000FFFC000FFFE00001FFFC0007FFE00001DFFC0007FFE00003DFFC0003FFF000079
|
||||
FFE0001FFF8000F1FFF8000FFFC003E1FFFFE007FFF81FC0FFFFF003FFFFFF807FFFF000
|
||||
FFFFFF001FFFF0001FFFFC0007FFE00001FFE0000000003C387CB641>97
|
||||
D<000001FFF8000000001FFFFF80000000FFFFFFF0000003FFFFFFFC00000FFFC00FFE00
|
||||
001FFE0001FF00007FFC0003FF8000FFF00007FF8001FFF00007FFC003FFE0000FFFC003
|
||||
FFC0000FFFC007FFC0000FFFC00FFF80000FFFC00FFF80000FFFC01FFF800007FF801FFF
|
||||
000007FF803FFF000003FF003FFF000001FE007FFF00000000007FFE00000000007FFE00
|
||||
000000007FFE0000000000FFFE0000000000FFFE0000000000FFFE0000000000FFFE0000
|
||||
000000FFFE0000000000FFFE0000000000FFFE0000000000FFFE0000000000FFFE000000
|
||||
0000FFFE0000000000FFFE0000000000FFFE0000000000FFFE00000000007FFE00000000
|
||||
007FFF00000000007FFF00000000003FFF00000000003FFF00000000003FFF00000003E0
|
||||
1FFF80000003E01FFF80000007E00FFFC0000007C007FFC0000007C007FFE000000FC003
|
||||
FFE000001F8001FFF000003F0000FFF800007E00007FFE0000FC00003FFF0003F800000F
|
||||
FFE01FF0000003FFFFFFE0000000FFFFFF800000003FFFFE0000000001FFE0000033387C
|
||||
B63C>99 D<000003FFC0000000003FFFFC00000001FFFFFF00000007FFFFFFC000000FFF
|
||||
81FFE000003FFC007FF800007FF8003FFC0000FFF0001FFE0001FFE0000FFE0003FFC000
|
||||
07FF0007FFC00007FF800FFF800003FF800FFF800003FFC01FFF800001FFC01FFF000001
|
||||
FFC03FFF000001FFE03FFF000001FFE07FFF000000FFE07FFE000000FFE07FFE000000FF
|
||||
F07FFE000000FFF0FFFE000000FFF0FFFE000000FFF0FFFE000000FFF0FFFE000000FFF0
|
||||
FFFFFFFFFFFFF0FFFFFFFFFFFFF0FFFFFFFFFFFFF0FFFFFFFFFFFFE0FFFE0000000000FF
|
||||
FE0000000000FFFE0000000000FFFE0000000000FFFE0000000000FFFE00000000007FFE
|
||||
00000000007FFE00000000007FFF00000000003FFF00000000003FFF00000000003FFF00
|
||||
000000E01FFF00000001F01FFF80000003F00FFF80000003F007FFC0000007E007FFC000
|
||||
0007E003FFE000000FC001FFF000001FC000FFF800003F80007FFC0000FF00001FFE0003
|
||||
FE00000FFFC03FF8000003FFFFFFF0000000FFFFFFC00000001FFFFE0000000001FFF000
|
||||
0034387CB63D>101 D<0000003FFC00000003FFFF0000000FFFFFC000003FFFFFE00000
|
||||
FFF81FF00001FFC03FF80003FF807FF80007FF00FFFC000FFE00FFFC001FFC00FFFC001F
|
||||
FC00FFFC003FF800FFFC003FF800FFFC003FF8007FF8007FF0007FF8007FF0003FF0007F
|
||||
F0000FC0007FF0000000007FF0000000007FF0000000007FF0000000007FF0000000007F
|
||||
F0000000007FF0000000007FF0000000007FF0000000007FF0000000007FF0000000007F
|
||||
F0000000007FF0000000007FF0000000FFFFFFFFE000FFFFFFFFE000FFFFFFFFE000FFFF
|
||||
FFFFE000FFFFFFFFE000007FF8000000007FF8000000007FF8000000007FF8000000007F
|
||||
F8000000007FF8000000007FF8000000007FF8000000007FF8000000007FF8000000007F
|
||||
F8000000007FF8000000007FF8000000007FF8000000007FF8000000007FF8000000007F
|
||||
F8000000007FF8000000007FF8000000007FF8000000007FF8000000007FF8000000007F
|
||||
F8000000007FF8000000007FF8000000007FF8000000007FF8000000007FF8000000007F
|
||||
F8000000007FF8000000007FF8000000007FF8000000007FF8000000007FF8000000007F
|
||||
F8000000007FF8000000007FF8000000007FF8000000007FF8000000007FF8000000007F
|
||||
F8000000007FF8000000007FF80000007FFFFFFE00007FFFFFFE00007FFFFFFE00007FFF
|
||||
FFFE00007FFFFFFE00002E547CD329>I<0000007F00000000FF80000003FFE0000007FF
|
||||
F0000007FFF000000FFFF800000FFFF800000FFFF800000FFFF800000FFFF800000FFFF8
|
||||
00000FFFF8000007FFF0000007FFF0000003FFE0000000FF800000007F00000000000000
|
||||
000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
00000000000000000000000000000000000000000000000000001FF80000FFFFF80000FF
|
||||
FFF80000FFFFF80000FFFFF80000FFFFF8000001FFF80000007FF80000007FF80000007F
|
||||
F80000007FF80000007FF80000007FF80000007FF80000007FF80000007FF80000007FF8
|
||||
0000007FF80000007FF80000007FF80000007FF80000007FF80000007FF80000007FF800
|
||||
00007FF80000007FF80000007FF80000007FF80000007FF80000007FF80000007FF80000
|
||||
007FF80000007FF80000007FF80000007FF80000007FF80000007FF80000007FF8000000
|
||||
7FF80000007FF80000007FF80000007FF80000007FF80000007FF80000007FF80000007F
|
||||
F80000007FF80000007FF80000007FF80000007FF80000007FF80000007FF80000007FF8
|
||||
0000007FF80000007FF80000007FF80000007FF80000007FF80000007FF80000007FF807
|
||||
80007FF81FE0007FF83FF0007FF87FF8007FF8FFFC00FFF8FFFC00FFF0FFFC00FFF0FFFC
|
||||
00FFE0FFFC01FFE0FFFC01FFC0FFFC03FF807FF807FF007FF00FFE003FF01FFC000FFFFF
|
||||
F00007FFFFE00001FFFF8000001FFC0000256C87D329>106 D<003FF0001FFC000000FF
|
||||
FFF000FFFFC00000FFFFF003FFFFF00000FFFFF00FFFFFF80000FFFFF01FE07FFC0000FF
|
||||
FFF03F001FFE000003FFF07C001FFF000000FFF0F0000FFF000000FFF1E0000FFF800000
|
||||
FFF3C0000FFF800000FFF7800007FF800000FFF7800007FFC00000FFFF000007FFC00000
|
||||
FFFE000007FFC00000FFFE000007FFC00000FFFC000007FFC00000FFFC000007FFC00000
|
||||
FFFC000007FFC00000FFFC000007FFC00000FFF8000007FFC00000FFF8000007FFC00000
|
||||
FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000
|
||||
FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000
|
||||
FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000
|
||||
FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000
|
||||
FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000
|
||||
FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000
|
||||
FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC000FF
|
||||
FFFFF807FFFFFFC0FFFFFFF807FFFFFFC0FFFFFFF807FFFFFFC0FFFFFFF807FFFFFFC0FF
|
||||
FFFFF807FFFFFFC042367BB54B>110 D<000001FFE000000000001FFFFE0000000000FF
|
||||
FFFFC000000003FFFFFFF00000000FFF807FFC0000001FFC000FFE0000007FF80007FF80
|
||||
0000FFF00003FFC00001FFE00001FFE00003FFC00000FFF00003FF8000007FF00007FF80
|
||||
00007FF8000FFF0000003FFC000FFF0000003FFC001FFF0000003FFE001FFF0000003FFE
|
||||
003FFE0000001FFF003FFE0000001FFF003FFE0000001FFF007FFE0000001FFF807FFE00
|
||||
00001FFF807FFE0000001FFF807FFE0000001FFF80FFFE0000001FFFC0FFFE0000001FFF
|
||||
C0FFFE0000001FFFC0FFFE0000001FFFC0FFFE0000001FFFC0FFFE0000001FFFC0FFFE00
|
||||
00001FFFC0FFFE0000001FFFC0FFFE0000001FFFC0FFFE0000001FFFC0FFFE0000001FFF
|
||||
C0FFFE0000001FFFC07FFE0000001FFF807FFE0000001FFF807FFE0000001FFF803FFE00
|
||||
00001FFF003FFF0000003FFF003FFF0000003FFF001FFF0000003FFE001FFF0000003FFE
|
||||
000FFF0000003FFC000FFF8000007FFC0007FF8000007FF80003FFC00000FFF00001FFE0
|
||||
0001FFE00000FFF00003FFC000007FF80007FF8000003FFE001FFF0000000FFF807FFC00
|
||||
000007FFFFFFF800000000FFFFFFC0000000003FFFFF000000000001FFE00000003A387C
|
||||
B643>I<007FE003FE00FFFFE00FFF80FFFFE03FFFE0FFFFE07FFFF0FFFFE0FE1FF8FFFF
|
||||
E1F83FFC03FFE3E03FFE00FFE3C07FFE00FFE7807FFE00FFEF807FFE00FFEF007FFE00FF
|
||||
EE007FFE00FFFE003FFC00FFFC003FFC00FFFC001FF800FFFC000FF000FFF800000000FF
|
||||
F800000000FFF800000000FFF800000000FFF800000000FFF000000000FFF000000000FF
|
||||
F000000000FFF000000000FFF000000000FFF000000000FFF000000000FFF000000000FF
|
||||
F000000000FFF000000000FFF000000000FFF000000000FFF000000000FFF000000000FF
|
||||
F000000000FFF000000000FFF000000000FFF000000000FFF000000000FFF000000000FF
|
||||
F000000000FFF000000000FFF000000000FFF000000000FFF000000000FFF000000000FF
|
||||
F000000000FFF0000000FFFFFFFC0000FFFFFFFC0000FFFFFFFC0000FFFFFFFC0000FFFF
|
||||
FFFC00002F367CB537>114 D<0003FFF00F00003FFFFE1F0000FFFFFFFF0003FFFFFFFF
|
||||
0007FF003FFF000FF80007FF001FE00001FF003FC00000FF003F8000007F007F8000007F
|
||||
007F0000003F007F0000003F00FF0000001F00FF0000001F00FF8000001F00FF8000001F
|
||||
00FFC000001F00FFF000000000FFFC00000000FFFFC00000007FFFFF0000007FFFFFF800
|
||||
003FFFFFFF00003FFFFFFFC0001FFFFFFFF0000FFFFFFFF80007FFFFFFFC0003FFFFFFFE
|
||||
0000FFFFFFFF00003FFFFFFF80000FFFFFFFC00000FFFFFFC0000007FFFFE00000003FFF
|
||||
E000000007FFF000000001FFF0780000007FF0F80000003FF0F80000001FF0FC0000001F
|
||||
F0FC0000000FF0FC0000000FF0FE0000000FF0FE0000000FE0FF0000000FE0FF8000001F
|
||||
E0FF8000001FC0FFC000001FC0FFE000003F80FFF800007F00FFFE0001FE00FFFFC00FFC
|
||||
00FF7FFFFFF800FC1FFFFFE000F807FFFF8000F000FFF800002C387CB635>I<00003E00
|
||||
000000003E00000000003E00000000003E00000000003E00000000003E00000000007E00
|
||||
000000007E00000000007E00000000007E0000000000FE0000000000FE0000000001FE00
|
||||
00000001FE0000000001FE0000000003FE0000000007FE0000000007FE000000000FFE00
|
||||
0000001FFE000000003FFE00000000FFFE00000001FFFE0000000FFFFFFFFF00FFFFFFFF
|
||||
FF00FFFFFFFFFF00FFFFFFFFFF00FFFFFFFFFF00003FFE000000003FFE000000003FFE00
|
||||
0000003FFE000000003FFE000000003FFE000000003FFE000000003FFE000000003FFE00
|
||||
0000003FFE000000003FFE000000003FFE000000003FFE000000003FFE000000003FFE00
|
||||
0000003FFE000000003FFE000000003FFE000000003FFE000000003FFE000000003FFE00
|
||||
0000003FFE000000003FFE000000003FFE000000003FFE000000003FFE000000003FFE00
|
||||
0000003FFE0007C0003FFE0007C0003FFE0007C0003FFE0007C0003FFE0007C0003FFE00
|
||||
07C0003FFE0007C0003FFE0007C0003FFE0007C0003FFE0007C0003FFE0007C0001FFE00
|
||||
0F80001FFF000F80001FFF000F80000FFF001F00000FFF801F000007FFC03E000003FFF0
|
||||
FC000001FFFFF80000007FFFF00000001FFFE000000003FF80002A4D7ECB34>I<003FF8
|
||||
000001FFC000FFFFF80007FFFFC000FFFFF80007FFFFC000FFFFF80007FFFFC000FFFFF8
|
||||
0007FFFFC000FFFFF80007FFFFC00003FFF800001FFFC00000FFF8000007FFC00000FFF8
|
||||
000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8
|
||||
000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8
|
||||
000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8
|
||||
000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8
|
||||
000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8
|
||||
000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8
|
||||
000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8
|
||||
000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF800000FFFC00000FFF8
|
||||
00000FFFC00000FFF800000FFFC00000FFF800001FFFC00000FFF800001FFFC000007FF8
|
||||
00003FFFC000007FF800003BFFC000007FF800007BFFC000003FFC0000F3FFC000003FFC
|
||||
0001E3FFF000001FFE0007C3FFFFC0000FFFC03F83FFFFC00007FFFFFF03FFFFC00001FF
|
||||
FFFE03FFFFC000007FFFF803FFFFC0000007FFE003FF000042377BB54B>I
|
||||
E end
|
||||
%%EndProlog
|
||||
%%BeginSetup
|
||||
%%Feature: *Resolution 600dpi
|
||||
TeXDict begin
|
||||
%%PaperSize: Letter
|
||||
|
||||
%%EndSetup
|
||||
%%Page: 1 1
|
||||
1 0 bop 1006 100 a Fc(BA)l(CI)44 b(Pro)7 b(ject)46 b(for)f(an)g(OS)g
|
||||
(Course)146 628 y Fb(The)f(Bak)m(er's)h(Problem:)61 b
|
||||
Fa(Supp)s(ose)42 b(y)m(ou)g(are)g(the)g(o)m(wner)g(of)f(a)g(bak)m(ery)i
|
||||
(that)e(just)g(b)s(ecame)h(ex-)0 748 y(tremely)28 b(p)s(opular.)41
|
||||
b(In)29 b(the)h(past,)g(y)m(ou)f(w)m(aited)g(on)g(customers)g(as)g(so)s
|
||||
(on)g(as)g(they)g(came)g(in)m(to)f(y)m(our)h(store.)0
|
||||
869 y(No)m(w,)43 b(ho)m(w)m(ev)m(er,)i(almost)39 b(ev)m(ery)j(customer)
|
||||
f(has)g(to)f(w)m(ait)g(for)g(service!)69 b(Y)-8 b(ou)40
|
||||
b(are)h(thrilled)d(with)i(y)m(our)0 989 y(success,)35
|
||||
b(but)e(are)g(w)m(orried)f(ab)s(out)g(fairness.)146 1230
|
||||
y(One)37 b(da)m(y)-8 b(,)38 b(after)d(the)i(store)g(has)f(closed,)h(y)m
|
||||
(ou)g(decide)g(to)f(install)d(a)j(tic)m(k)m(et)h(system)g(in)f(order)g
|
||||
(to)g(b)s(e)0 1350 y(sure)41 b(to)e(serv)m(e)i(customers)g(in)d(turn.)
|
||||
65 b(Since)40 b(y)m(ou)g(are)g(a)f(computer)h(exp)s(ert,)i(in)d
|
||||
(addition)f(to)h(b)s(eing)g(a)0 1471 y(great)34 b(bak)m(er,)h(y)m(ou)f
|
||||
(decide)h(to)e(use)i(y)m(our)f(new)h(computer)f(to)f(implemen)m(t)f
|
||||
(this)i(tic)m(k)m(et)g(system.)48 b(Should)0 1591 y(y)m(ou)34
|
||||
b(use)h(semaphores)f(or)f(monitors)f(in)h(y)m(our)h(implemen)m(tation?)
|
||||
43 b(Mak)m(e)34 b(a)g(decision)e(and)i(then)g(do)g(the)0
|
||||
1711 y(implemen)m(tation)29 b(in)j(BA)m(CI.)p eop
|
||||
%%Trailer
|
||||
end
|
||||
userdict /end-hook known{end-hook}if
|
||||
%%EOF
|
29
projects/bakery.tex
Normal file
29
projects/bakery.tex
Normal file
@ -0,0 +1,29 @@
|
||||
% HOMEWORK #2
|
||||
% re: processes
|
||||
%
|
||||
\documentstyle[12pt,fullpage]{article}
|
||||
\pagestyle{empty}
|
||||
\begin{document}
|
||||
|
||||
\begin{center}
|
||||
{\large\bf BACI Project for an OS Course}
|
||||
\end{center}
|
||||
|
||||
\vspace*{0.5in}
|
||||
|
||||
{\small\bf The Baker's Problem:} Suppose you are the owner of a bakery
|
||||
that just became extremely popular. In the past, you waited on
|
||||
customers as soon as they came into your store. Now, however,
|
||||
almost every customer
|
||||
has to wait for service! You are thrilled with your success, but are
|
||||
worried about fairness. \\
|
||||
|
||||
One day, after the store has closed,
|
||||
you decide to install a ticket system in order to be sure to serve
|
||||
customers in turn. Since you are a computer expert, in
|
||||
addition to being a great baker, you decide to use your new computer to
|
||||
implement this ticket system. Should you use semaphores or monitors in
|
||||
your implementation? Make a decision and then do the implementation in
|
||||
BACI.
|
||||
|
||||
\end{document}
|
167
projects/dine.cm
Normal file
167
projects/dine.cm
Normal file
@ -0,0 +1,167 @@
|
||||
//**************************************************************//
|
||||
// //
|
||||
// Program: Dining Philosopher Problem //
|
||||
// Filename: dine.cm //
|
||||
// Original author: Neil Bergmann //
|
||||
// Modification: Tracy Camp //
|
||||
// //
|
||||
// This program implements the dining philosopher problem. //
|
||||
// This version occasionally results in deadlock. //
|
||||
// //
|
||||
//**************************************************************//
|
||||
|
||||
|
||||
//**************************************************************//
|
||||
// GLOBAL DECLARATIONS //
|
||||
|
||||
const int number= 5; //number of diners//
|
||||
|
||||
const int true = 1; // logical true
|
||||
const int false= 0; // logical false
|
||||
const int none = -1; // indicates nobody has a fork
|
||||
|
||||
semaphore fork[number];
|
||||
//fork provides mutual exclusion on forks - only one diner can //
|
||||
//grab a fork at a time//
|
||||
|
||||
int hasfork[number];
|
||||
//hasfork keeps a record of which diner currently has a particular fork//
|
||||
|
||||
int dinerseaten[number];
|
||||
//records which diners have eaten so far//
|
||||
|
||||
//YOU CAN ADD DECLARATIONS HERE//
|
||||
|
||||
//**************************************************************//
|
||||
int left (int diner)
|
||||
//returns index of fork to the left of 'diner'//
|
||||
//DO NOT CHANGE THIS FUNCTION//
|
||||
{
|
||||
return diner;
|
||||
} //left//
|
||||
|
||||
int right (int diner)
|
||||
//returns index of fork to the right of 'diner'//
|
||||
//DO NOT CHANGE THIS FUNCTION//
|
||||
{
|
||||
if (diner < number-1 )
|
||||
return (diner+1);
|
||||
else return 0; //fork to right of last diner is #0//
|
||||
} //right//
|
||||
|
||||
|
||||
//**************************************************************//
|
||||
void initialize ()
|
||||
|
||||
//YOU CAN ADD ANY INITIALIZATIONS HERE//
|
||||
{
|
||||
int count;
|
||||
for (count=0; count<number; count++)
|
||||
{
|
||||
dinerseaten[count] = false; //no diners have eaten yet//
|
||||
hasfork[count] = none; //nobody has forks yet//
|
||||
initialsem(fork[count],1); //only one diner per fork at once//
|
||||
|
||||
}
|
||||
} //initialize//
|
||||
|
||||
|
||||
|
||||
//**************************************************************//
|
||||
void takefork(int forknum, int diner)
|
||||
//diner tries to take a fork, blocking until it is available//
|
||||
//mark which diner has the fork//
|
||||
//DO NOT CHANGE THIS PROCEDURE//
|
||||
|
||||
{
|
||||
p(fork[forknum]);
|
||||
hasfork[forknum] = diner;
|
||||
} //takefork//
|
||||
|
||||
//**************************************************************//
|
||||
void replacefork(int forknum, int diner)
|
||||
//diner replaces a fork after eating//
|
||||
//DO NOT CHANGE THIS PROCEDURE//
|
||||
|
||||
{
|
||||
//check if this diner really had this fork, if not complain//
|
||||
if (hasfork[forknum] == diner)
|
||||
{
|
||||
hasfork[forknum] = none; //nobody has this fork now//
|
||||
v(fork[forknum]); //signal that fork is available//
|
||||
} else
|
||||
cout << "ERROR: Diner # " << diner <<
|
||||
" did not have fork number" << forknum << endl;
|
||||
} //replacefork//
|
||||
|
||||
//**************************************************************//
|
||||
void eat(int diner)
|
||||
// Checks that diner has correct forks to left and right //
|
||||
// Prints out message and sets 'dinerseaten' flag //
|
||||
// DO NOT CHANGE THIS PROGRAM EXCEPT TO CHANGE OUTPUT //
|
||||
|
||||
{
|
||||
//now check diner has correct forks, and let him or her eat//
|
||||
if ((hasfork[left(diner)] == diner) &&
|
||||
(hasfork[right(diner)] == diner) )
|
||||
{
|
||||
cout << "Diner # " << diner << "has eaten "<< endl;
|
||||
dinerseaten[diner] = true;
|
||||
} else
|
||||
cout << "Diner # " << diner << " did not have correct forks" << endl;
|
||||
} //eat//
|
||||
|
||||
//**************************************************************//
|
||||
void success ()
|
||||
//This procedure checks that all diners have eaten//
|
||||
// DO NOT CHANGE THIS PROGRAM EXCEPT TO CHANGE OUTPUT //
|
||||
{
|
||||
int alldone;
|
||||
int count;
|
||||
|
||||
alldone = true;
|
||||
for (count=0; count<number; count++)
|
||||
alldone = alldone && dinerseaten[count];
|
||||
if (alldone)
|
||||
cout << "SUCCESS" << endl;
|
||||
else
|
||||
cout << "FAILURE" << endl;
|
||||
|
||||
} //success//
|
||||
|
||||
|
||||
//**************************************************************//
|
||||
void dine(int diner)
|
||||
//This procedure is started concurrently for each diner //
|
||||
//This version of program occaisionally deadlocks //
|
||||
|
||||
{
|
||||
|
||||
takefork (left(diner), diner);
|
||||
takefork(right(diner), diner);
|
||||
eat(diner);
|
||||
replacefork(left(diner), diner);
|
||||
replacefork(right(diner), diner);
|
||||
} //dine//
|
||||
|
||||
|
||||
//**************************************************************//
|
||||
// main program //
|
||||
// DO NOT CHANGE THIS PROGRAM EXCEPT TO CHANGE NUMBER OF DINERS //
|
||||
|
||||
main ()
|
||||
{
|
||||
initialize();
|
||||
cobegin
|
||||
{ dine(0);
|
||||
dine(1);
|
||||
dine(2);
|
||||
dine(3);
|
||||
dine(number-1);
|
||||
//add/delete more lines if number of diners changes...//
|
||||
//note baci can only handle about 10 threads at a time//
|
||||
}
|
||||
success();
|
||||
|
||||
}
|
||||
|
70
projects/diners.html
Normal file
70
projects/diners.html
Normal file
@ -0,0 +1,70 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
|
||||
<BR>
|
||||
|
||||
Neil Bergmann at Queensland University of Technology, Australia
|
||||
created this project. Thanks Neil!
|
||||
|
||||
<BR>
|
||||
<BR>
|
||||
<BR>
|
||||
|
||||
<B>The Dining Philosophers </B>
|
||||
<p>
|
||||
This assignment deals with one of the famous problems in
|
||||
resource allocation, deadlock and synchronization.
|
||||
Copy a proposed solution to the Dining Philosopher's
|
||||
problem, <tt>dine.cm</tt> (BACI C-- syntax)
|
||||
from the common directory of larkspur.
|
||||
Execute the program 50 times and record how often the
|
||||
philosophers eat and how often they deadlock.
|
||||
(BACI prints out system diagnostics when it detects deadlock,
|
||||
i.e. when all threads in the system are blocked.)
|
||||
Identify the problem that exists in this solution to the
|
||||
Dining Philosophers, and fix the problem such
|
||||
that your solution is independent
|
||||
of the number of philosophers. Execute the program at least
|
||||
50 times and confirm that deadlock doesn't occur in
|
||||
your solution.
|
||||
<p>
|
||||
Written deliverables:
|
||||
<OL>
|
||||
<LI> A listing of your revised code; highlight the parts of
|
||||
your revised code that are different from the original.
|
||||
<LI> A brief explanation of why the original program deadlocks, and also an
|
||||
explanation of how the diners sometime do manage to
|
||||
eat in this program.
|
||||
|
||||
<LI> A brief explanation of how your solution corrects the
|
||||
problem discussed in 2., emphasizing why
|
||||
your solution <i>never</i> deadlocks.
|
||||
|
||||
<LI> An illustration of the results from 50 executions (in a compact
|
||||
format!),
|
||||
which shows that your solution never deadlocks. (You can add a
|
||||
for-loop to the main program outside the cobegin to help make this data
|
||||
collection easier.)
|
||||
|
||||
<LI> Show the results from your compact 50-executions
|
||||
when you change your program to four
|
||||
dining philosophers and then to three dining philosophers.
|
||||
The only parts of the code that should change for these different
|
||||
executions is the number of calls to <tt>dine()</tt> in the cobegin/coend
|
||||
block.
|
||||
|
||||
<LI> A brief explanation to the following three questions:
|
||||
<OL type=a>
|
||||
<LI> Is your algorithm robust against deadlock when the number of diners
|
||||
change? Explain.
|
||||
<LI> Is your algorithm fair in the sense that every diner has a chance
|
||||
to be the first to eat? Explain.
|
||||
<LI> If diners took an hour to eat their spaghetti, what is
|
||||
the longest and shortest time that five diners would take to
|
||||
eat using your algorithm? Explain.
|
||||
</OL>
|
||||
</OL>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
102
projects/reader-writer.html
Normal file
102
projects/reader-writer.html
Normal file
@ -0,0 +1,102 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
|
||||
<B>Reader/Writer Problem with Writer Priority: </B>
|
||||
<p>
|
||||
Using <I>general</I> semaphores, create a solution to the
|
||||
reader/writer problem such that writers have priority over
|
||||
readers. When writers have priority, the following rules
|
||||
exist:
|
||||
<UL>
|
||||
<LI> A reader can read the shared file (e.g., database)
|
||||
only when there are NO active or waiting writers.
|
||||
<LI> A writer can only write to the shared file when the
|
||||
writer is given mutually exclusive access to the file.
|
||||
<LI> Multiple readers can read the shared file concurrently,
|
||||
if the above rules are followed.
|
||||
</UL>
|
||||
|
||||
<p>
|
||||
Your BACI program should consist of the following three procedures:
|
||||
<OL>
|
||||
<LI> Coordinator: This procedure should be executed before any readers or
|
||||
writers are executed, and should be used to initialize the semaphores
|
||||
and any other global variables that require initialization.
|
||||
<LI> Reader(int reader): Multiple copies of this procedure may be executed
|
||||
from the cobegin/coend block; reader is the id of this particular reader.
|
||||
<LI> Writer(int writer): Multiple copies of this
|
||||
procedure may also be executed from the cobegin/coend block; writer
|
||||
is the id of this particular writer.
|
||||
</OL>
|
||||
|
||||
<P>
|
||||
Use two global declarations to declare the number of readers/writers
|
||||
in the system:
|
||||
<center>
|
||||
const int Rnumber= 5; //number of readers// <BR>
|
||||
const int Wnumber= 3; //number of writers//
|
||||
</center>
|
||||
If the above number of readers/writers are defined, then main() will
|
||||
be: <BR>
|
||||
|
||||
main() { <BR>
|
||||
|
||||
Coordinator; <BR>
|
||||
|
||||
cobegin { <BR>
|
||||
|
||||
Reader(0); <BR>
|
||||
|
||||
Reader(1); <BR>
|
||||
|
||||
Reader(2); <BR>
|
||||
|
||||
Reader(3); <BR>
|
||||
|
||||
Reader(Rnumber-1); <BR>
|
||||
|
||||
Writer(0); <BR>
|
||||
|
||||
Writer(1); <BR>
|
||||
|
||||
Writer(Wnumber-1); <BR>
|
||||
|
||||
//add-delete lines when the number of readers or writers change. <BR>
|
||||
|
||||
//NOTE: BACI can only handle about 10 threads at a time <BR>
|
||||
|
||||
} <BR>
|
||||
|
||||
} <BR>
|
||||
|
||||
<p>
|
||||
In both the Reader and Writer procedures, during the actual
|
||||
reading/writing phase of the shared file, have a for loop of length
|
||||
three that prints to stdout "... reading is performed by process I ..." (or
|
||||
"... writing is performed by process J ..."), where I/J is the id value
|
||||
of the reader/writer.
|
||||
In addition, both the Reader and Writer procedures should print a
|
||||
message to stdout just before they perform a P() or V() operation on
|
||||
any of the semaphores. In the message, each thread must identify itself
|
||||
as a reader or a writer, the id of the reader/writer, the name of
|
||||
the semaphore variable upon which it is operating, and the value
|
||||
of the semaphore variable at that time.
|
||||
|
||||
<P>
|
||||
Written deliverables:
|
||||
<OL>
|
||||
<LI> A listing of your code (*.lst).
|
||||
<LI> The results from executing your program with the following
|
||||
number of readers/writers:
|
||||
<OL type=a>
|
||||
<LI> Rnumber= 5 and Wnumber= 3
|
||||
<LI> Rnumber= 6 and Wnumber= 1
|
||||
<LI> Rnumber= 1 and Wnumber= 6
|
||||
</OL>
|
||||
<LI> A brief explanation of how your solution gives writer
|
||||
priority.
|
||||
</OL>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
1451
projects/synch-prims.ps
Normal file
1451
projects/synch-prims.ps
Normal file
File diff suppressed because it is too large
Load Diff
76
projects/synch-prims.tex
Normal file
76
projects/synch-prims.tex
Normal file
@ -0,0 +1,76 @@
|
||||
% HOMEWORK #2
|
||||
% re: processes
|
||||
%
|
||||
\documentstyle[11pt,fullpage]{article}
|
||||
\pagestyle{empty}
|
||||
\begin{document}
|
||||
|
||||
\begin{center}
|
||||
{\large\bf BACI Projects for an OS Course}
|
||||
\end{center}
|
||||
|
||||
\begin{enumerate}
|
||||
\item {\small\bf Implementation of Machine Instructions:}
|
||||
Implement the exchange instruction in the text.
|
||||
The implementation of this instruction should be
|
||||
based on an ATOMIC function which returns a BOOLEAN value. You
|
||||
should test your implementation of the machine instruction by building
|
||||
a mutual exclusion protocol on top of your low-level operation.
|
||||
|
||||
\item {\small\bf Implementation of Fair Semaphores (FIFO):}
|
||||
The default semaphore in BACI is implemented with
|
||||
a random wake up order. For non-terminating processes,
|
||||
this random behavior allows the possibility of starvation.
|
||||
A fair semaphore implementation, on the other hand,
|
||||
has a FIFO wake up order. Implement semaphores with this FIFO wake up
|
||||
order. Allow users to define a semaphore as a CONST value in the range
|
||||
[1..13]. This CONST value should be used as a tag for access to a
|
||||
semaphore and its corresponding variables.
|
||||
At least four procedures will be required in your
|
||||
implementation:
|
||||
\begin{itemize}
|
||||
\item PROCEDURE {\tt Create\_Semaphores}(); \\
|
||||
You should place your initialization code here.
|
||||
\item PROCEDURE {\tt Init\_Semaphore}({\it sem\_index} : INTEGER;
|
||||
{\it val} : INTEGER); \\
|
||||
In this procedure, you should initialize the semaphore represented by {\it
|
||||
sem\_index}. As in the given
|
||||
BACI semaphore implementation,
|
||||
your FIFO semaphore implementation should not allow the use of a
|
||||
semaphore unless it has been initialized.
|
||||
\item PROCEDURE {\tt FIFO\_P}({\it sem\_index} : INTEGER); \\
|
||||
This procedure should include the ATOMIC compare-and-swap
|
||||
operation implemented above. If a calling process needs to be put to
|
||||
sleep, use the SUSPEND operation. The WHICH\_PROC command
|
||||
helps keep track of sleeping processes.
|
||||
\item PROCEDURE {\tt FIFO\_V}({\it sem\_index} : INTEGER); \\
|
||||
This procedure should REVIVE a process waiting on the
|
||||
semaphore represented by {\it sem\_index}
|
||||
in a FIFO basis. If no such semaphore exists, this procedure should
|
||||
increment the value associated with the semaphore. Again, use the
|
||||
ATOMIC compare-and-swap operation to obtain mutual exclusive access to
|
||||
variables associated with this semaphore.
|
||||
\end{itemize}
|
||||
Bear in mind that this code should be written as a system
|
||||
implementation
|
||||
and, as such, should handle all possible errors. You are
|
||||
responsible for producing code which is robust in the presence of
|
||||
ignorant, stupid, or even malicious use by the user community.
|
||||
Lastly, full credit will not be received if your solution has
|
||||
non-required waiting.
|
||||
|
||||
\item {\small\bf Implementation of Unfair Semaphores:}
|
||||
Assume that the semaphore operation given in BACI does not exist.
|
||||
Implement semaphores based on Dijkstra's original proposal by
|
||||
randomly choosing which process to wake up when a signal occurs
|
||||
(E. Dijkstra, ``Hierarchical ordering of sequential
|
||||
processes,'' {\em
|
||||
Acta Informatica}, vol. 1, no. 2, pp. 115--138, 1971.)
|
||||
The RANDOM(INTEGER) command returns a random
|
||||
number in the range [0..(INTEGER-1)].
|
||||
Follow the information in the fair semaphores implementation project on the
|
||||
minimal number of
|
||||
procedures required for this implementation.
|
||||
\end{enumerate}
|
||||
|
||||
\end{document}
|
37
projects/threads.html
Normal file
37
projects/threads.html
Normal file
@ -0,0 +1,37 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
|
||||
<BR>
|
||||
|
||||
Neil Bergmann at Queensland University of Technology, Australia
|
||||
created this project. Thanks Neil!
|
||||
|
||||
<BR>
|
||||
<BR>
|
||||
<BR>
|
||||
|
||||
<B>Concurrent threads:</B>
|
||||
<p>
|
||||
See the program <tt>add.cm</tt> (BACI C-- syntax).
|
||||
This program
|
||||
is a concurrent BACI program to add the first 100
|
||||
integers using 10 concurrent threads. Using BACI, execute
|
||||
this program 20 times and record the results. Identify the
|
||||
problem(s) that exists in this example BACI program, and
|
||||
correct the problem by adding appropriate additional code.
|
||||
(You are not allowed to delete, replace, or modify existing
|
||||
code in the example program.)
|
||||
<p>
|
||||
Written deliverables:
|
||||
<OL>
|
||||
<LI> A listing of your revised code; highlight the parts of
|
||||
your revised code that are different from the original.
|
||||
<LI> A brief explanation of why the original program
|
||||
gives incorrect results.
|
||||
<LI> A brief explanation of how your solution corrects this. (What is the
|
||||
correct answer?)
|
||||
</OL>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
1303
projects/timeticks.ps
Normal file
1303
projects/timeticks.ps
Normal file
File diff suppressed because it is too large
Load Diff
54
projects/timeticks.tex
Normal file
54
projects/timeticks.tex
Normal file
@ -0,0 +1,54 @@
|
||||
% HOMEWORK #2
|
||||
% re: processes
|
||||
%
|
||||
\documentstyle[12pt,fullpage]{article}
|
||||
\pagestyle{empty}
|
||||
\begin{document}
|
||||
|
||||
\begin{center}
|
||||
{\large\bf BACI Project for an OS Course}
|
||||
\end{center}
|
||||
|
||||
\vspace*{0.3in}
|
||||
|
||||
This is problem 6.16 on page 213 of the textbook, made specific
|
||||
to Ben-Ari Concurrent Pascal. Write a program containing a monitor
|
||||
{\bf AlarmClock}. The monitor must have an integer variable {\bf
|
||||
theClock} (initialization to zero) and two procedures:
|
||||
\begin{itemize}
|
||||
\item PROCEDURE {\bf Tick}; \\
|
||||
increments {\bf theClock} each time that it is called. It can do other
|
||||
things, like SIGNALC, if needed, but no WAITCs.
|
||||
\item PROCEDURE {\bf Alarm}({\bf id} : INTEGER; {\bf delta} : INTEGER); \\
|
||||
blocks caller having identifier {\bf id} for at least {\bf delta}
|
||||
ticks of {\bf theClock}.
|
||||
\end{itemize}
|
||||
You may endow the monitor with any other variables that it needs. The
|
||||
monitor should be able to accommodate up to 5 simultaneous alarms.
|
||||
|
||||
The main program should have two procedures outside of the monitor:
|
||||
\begin{itemize}
|
||||
\item PROCEDURE {\bf Ticker}; \\
|
||||
calls {\bf Tick} in a repeat-forever loop.
|
||||
\item PROCEDURE {\bf Thread}({\bf id} : INTEGER; {\bf myDelta} : INTEGER); \\
|
||||
calls {\bf Alarm} in a repeat-forever loop.
|
||||
\end{itemize}
|
||||
|
||||
The main program cannot have any variables. The main program should
|
||||
start 4 concurrent threads: {\bf Thread(100,3)},
|
||||
{\bf Thread(200,7)},
|
||||
{\bf Thread(300,10)}, and
|
||||
{\bf Ticker}. Output should occur for each of the following events:
|
||||
\begin{enumerate}
|
||||
\item At each clock tick, show the values of {\bf theClock}.
|
||||
\item When any thread either waits or reawakens from a wait, show the
|
||||
id of the thread, the name of the condition on which it is waiting,
|
||||
and the time ({\bf theClock}) at which the wait occurs.
|
||||
\item When a condition is signalled, show the name of the condition
|
||||
being signalled and the time at which the signal occurs.
|
||||
\end{enumerate}
|
||||
Hand in a listing of the program and output showing each
|
||||
{\bf Thread} copy enduring at least one alarm cycle. You may find the
|
||||
{\bf tee} command helpful in this regard.
|
||||
|
||||
\end{document}
|
Loading…
Reference in New Issue
Block a user