/design/trunk/src/ch_memory_management.xml |
---|
0,0 → 1,838 |
<?xml version="1.0" encoding="UTF-8"?> |
<chapter id="mm"> |
<?dbhtml filename="mm.html"?> |
<title>Memory management</title> |
<para>In previous chapters, this book described the scheduling subsystem as |
the creator of the impression that threads execute in parallel. The memory |
management subsystem, on the other hand, creates the impression that there |
is enough physical memory for the kernel and that userspace tasks have the |
entire address space only for themselves.</para> |
<section> |
<title>Physical memory management</title> |
<section id="zones_and_frames"> |
<title>Zones and frames</title> |
<para>HelenOS represents continuous areas of physical memory in |
structures called frame zones (abbreviated as zones). Each zone contains |
information about the number of allocated and unallocated physical |
memory frames as well as the physical base address of the zone and |
number of frames contained in it. A zone also contains an array of frame |
structures describing each frame of the zone and, in the last, but not |
the least important, front, each zone is equipped with a buddy system |
that faciliates effective allocation of power-of-two sized block of |
frames.</para> |
<para>This organization of physical memory provides good preconditions |
for hot-plugging of more zones. There is also one currently unused zone |
attribute: <code>flags</code>. The attribute could be used to give a |
special meaning to some zones in the future.</para> |
<para>The zones are linked in a doubly-linked list. This might seem a |
bit ineffective because the zone list is walked everytime a frame is |
allocated or deallocated. However, this does not represent a significant |
performance problem as it is expected that the number of zones will be |
rather low. Moreover, most architectures merge all zones into |
one.</para> |
<para>Every physical memory frame in a zone, is described by a structure |
that contains number of references and other data used by buddy |
system.</para> |
</section> |
<section id="frame_allocator"> |
<indexterm> |
<primary>frame allocator</primary> |
</indexterm> |
<title>Frame allocator</title> |
<para>The frame allocator satisfies kernel requests to allocate |
power-of-two sized blocks of physical memory. Because of zonal |
organization of physical memory, the frame allocator is always working |
within a context of a particular frame zone. In order to carry out the |
allocation requests, the frame allocator is tightly integrated with the |
buddy system belonging to the zone. The frame allocator is also |
responsible for updating information about the number of free and busy |
frames in the zone. <figure float="1"> |
<mediaobject id="frame_alloc"> |
<imageobject role="pdf"> |
<imagedata fileref="images/frame_alloc.pdf" format="PDF" /> |
</imageobject> |
<imageobject role="html"> |
<imagedata fileref="images/frame_alloc.png" format="PNG" /> |
</imageobject> |
<imageobject role="fop"> |
<imagedata fileref="images/frame_alloc.svg" format="SVG" /> |
</imageobject> |
</mediaobject> |
<title>Frame allocator scheme.</title> |
</figure></para> |
<formalpara> |
<title>Allocation / deallocation</title> |
<para>Upon allocation request via function <code>frame_alloc()</code>, |
the frame allocator first tries to find a zone that can satisfy the |
request (i.e. has the required amount of free frames). Once a suitable |
zone is found, the frame allocator uses the buddy allocator on the |
zone's buddy system to perform the allocation. If no free zone is |
found, the frame allocator tries to reclaim slab memory.</para> |
<para>During deallocation, which is triggered by a call to |
<code>frame_free()</code>, the frame allocator looks up the respective |
zone that contains the frame being deallocated. Afterwards, it calls |
the buddy allocator again, this time to take care of deallocation |
within the zone's buddy system.</para> |
</formalpara> |
</section> |
<section id="buddy_allocator"> |
<indexterm> |
<primary>buddy system</primary> |
</indexterm> |
<title>Buddy allocator</title> |
<para>In the buddy system, the memory is broken down into power-of-two |
sized naturally aligned blocks. These blocks are organized in an array |
of lists, in which the list with index <emphasis>i</emphasis> contains |
all unallocated blocks of size |
<emphasis>2<superscript>i</superscript></emphasis>. The index |
<emphasis>i</emphasis> is called the order of block. Should there be two |
adjacent equally sized blocks in the list <emphasis>i</emphasis> (i.e. |
buddies), the buddy allocator would coalesce them and put the resulting |
block in list <emphasis>i + 1</emphasis>, provided that the resulting |
block would be naturally aligned. Similarily, when the allocator is |
asked to allocate a block of size |
<emphasis>2<superscript>i</superscript></emphasis>, it first tries to |
satisfy the request from the list with index <emphasis>i</emphasis>. If |
the request cannot be satisfied (i.e. the list <emphasis>i</emphasis> is |
empty), the buddy allocator will try to allocate and split a larger |
block from the list with index <emphasis>i + 1</emphasis>. Both of these |
algorithms are recursive. The recursion ends either when there are no |
blocks to coalesce in the former case or when there are no blocks that |
can be split in the latter case.</para> |
<para>This approach greatly reduces external fragmentation of memory and |
helps in allocating bigger continuous blocks of memory aligned to their |
size. On the other hand, the buddy allocator suffers increased internal |
fragmentation of memory and is not suitable for general kernel |
allocations. This purpose is better addressed by the <link |
linkend="slab">slab allocator</link>.<figure float="1"> |
<mediaobject id="buddy_alloc"> |
<imageobject role="pdf"> |
<imagedata fileref="images/buddy_alloc.pdf" format="PDF" /> |
</imageobject> |
<imageobject role="html"> |
<imagedata fileref="images/buddy_alloc.png" format="PNG" /> |
</imageobject> |
<imageobject role="fop"> |
<imagedata fileref="images/buddy_alloc.svg" format="SVG" /> |
</imageobject> |
</mediaobject> |
<title>Buddy system scheme.</title> |
</figure></para> |
<section> |
<title>Implementation</title> |
<para>The buddy allocator is, in fact, an abstract framework which can |
be easily specialized to serve one particular task. It knows nothing |
about the nature of memory it helps to allocate. In order to beat the |
lack of this knowledge, the buddy allocator exports an interface that |
each of its clients is required to implement. When supplied with an |
implementation of this interface, the buddy allocator can use |
specialized external functions to find a buddy for a block, split and |
coalesce blocks, manipulate block order and mark blocks busy or |
available.</para> |
<formalpara> |
<title>Data organization</title> |
<para>Each entity allocable by the buddy allocator is required to |
contain space for storing block order number and a link variable |
used to interconnect blocks within the same order.</para> |
<para>Whatever entities are allocated by the buddy allocator, the |
first entity within a block is used to represent the entire block. |
The first entity keeps the order of the whole block. Other entities |
within the block are assigned the magic value |
<constant>BUDDY_SYSTEM_INNER_BLOCK</constant>. This is especially important |
for effective identification of buddies in a one-dimensional array |
because the entity that represents a potential buddy cannot be |
associated with <constant>BUDDY_SYSTEM_INNER_BLOCK</constant> (i.e. if it |
is associated with <constant>BUDDY_SYSTEM_INNER_BLOCK</constant> then it is |
not a buddy).</para> |
</formalpara> |
</section> |
</section> |
<section id="slab"> |
<indexterm> |
<primary>slab allocator</primary> |
</indexterm> |
<title>Slab allocator</title> |
<para>The majority of memory allocation requests in the kernel is for |
small, frequently used data structures. The basic idea behind the slab |
allocator is that commonly used objects are preallocated in continuous |
areas of physical memory called slabs<footnote> |
<para>Slabs are in fact blocks of physical memory frames allocated |
from the frame allocator.</para> |
</footnote>. Whenever an object is to be allocated, the slab allocator |
returns the first available item from a suitable slab corresponding to |
the object type<footnote> |
<para>The mechanism is rather more complicated, see the next |
paragraph.</para> |
</footnote>. Due to the fact that the sizes of the requested and |
allocated object match, the slab allocator significantly reduces |
internal fragmentation.</para> |
<indexterm> |
<primary>slab allocator</primary> |
<secondary>- slab cache</secondary> |
</indexterm> |
<para>Slabs of one object type are organized in a structure called slab |
cache. There are usually more slabs in the slab cache, depending on |
previous allocations. If the the slab cache runs out of available slabs, |
new slabs are allocated. In order to exploit parallelism and to avoid |
locking of shared spinlocks, slab caches can have variants of |
processor-private slabs called magazines. On each processor, there is a |
two-magazine cache. Full magazines that are not part of any |
per-processor magazine cache are stored in a global list of full |
magazines.</para> |
<indexterm> |
<primary>slab allocator</primary> |
<secondary>- magazine</secondary> |
</indexterm> |
<para>Each object begins its life in a slab. When it is allocated from |
there, the slab allocator calls a constructor that is registered in the |
respective slab cache. The constructor initializes and brings the object |
into a known state. The object is then used by the user. When the user |
later frees the object, the slab allocator puts it into a processor |
private <indexterm> |
<primary>slab allocator</primary> |
<secondary>- magazine</secondary> |
</indexterm>magazine cache, from where it can be precedently allocated |
again. Note that allocations satisfied from a magazine are already |
initialized by the constructor. When both of the processor cached |
magazines get full, the allocator will move one of the magazines to the |
list of full magazines. Similarily, when allocating from an empty |
processor magazine cache, the kernel will reload only one magazine from |
the list of full magazines. In other words, the slab allocator tries to |
keep the processor magazine cache only half-full in order to prevent |
thrashing when allocations and deallocations interleave on magazine |
boundaries. The advantage of this setup is that during most of the |
allocations, no global spinlock needs to be held.</para> |
<para>Should HelenOS run short of memory, it would start deallocating |
objects from magazines, calling slab cache destructor on them and |
putting them back into slabs. When a slab contains no allocated object, |
it is immediately freed.</para> |
<para> |
<figure float="1"> |
<mediaobject id="slab_alloc"> |
<imageobject role="pdf"> |
<imagedata fileref="images/slab_alloc.pdf" format="PDF" /> |
</imageobject> |
<imageobject role="html"> |
<imagedata fileref="images/slab_alloc.png" format="PNG" /> |
</imageobject> |
<imageobject role="fop"> |
<imagedata fileref="images/slab_alloc.svg" format="SVG" /> |
</imageobject> |
</mediaobject> |
<title>Slab allocator scheme.</title> |
</figure> |
</para> |
<section> |
<title>Implementation</title> |
<para>The slab allocator is closely modelled after <xref |
linkend="Bonwick01" /> with the following exceptions:<itemizedlist> |
<listitem> |
<para>empty slabs are immediately deallocated and</para> |
</listitem> |
<listitem> |
<para>empty magazines are deallocated when not needed.</para> |
</listitem> |
</itemizedlist>The following features are not currently supported |
but would be easy to do: <itemizedlist> |
<listitem>cache coloring and</listitem> |
<listitem>dynamic magazine grow (different magazine sizes are |
already supported, but the allocation strategy would need to be |
adjusted).</listitem> |
</itemizedlist></para> |
<section> |
<title>Allocation/deallocation</title> |
<para>The following two paragraphs summarize and complete the |
description of the slab allocator operation (i.e. |
<code>slab_alloc()</code> and <code>slab_free()</code> |
functions).</para> |
<formalpara> |
<title>Allocation</title> |
<para><emphasis>Step 1.</emphasis> When an allocation request |
comes, the slab allocator checks availability of memory in the |
current magazine of the local processor magazine cache. If the |
available memory is there, the allocator just pops the object from |
magazine and returns it.</para> |
<para><emphasis>Step 2.</emphasis> If the current magazine in the |
processor magazine cache is empty, the allocator will attempt to |
swap it with the last magazine from the cache and return to the |
first step. If also the last magazine is empty, the algorithm will |
fall through to Step 3.</para> |
<para><emphasis>Step 3.</emphasis> Now the allocator is in the |
situation when both magazines in the processor magazine cache are |
empty. The allocator reloads one magazine from the shared list of |
full magazines. If the reload is successful (i.e. there are full |
magazines in the list), the algorithm continues with Step |
1.</para> |
<para><emphasis>Step 4.</emphasis> In this fail-safe step, an |
object is allocated from the conventional slab layer and a pointer |
to it is returned. If also the last magazine is full, a new slab |
is allocated.</para> |
</formalpara> |
<formalpara> |
<title>Deallocation</title> |
<para><emphasis>Step 1.</emphasis> During a deallocation request, |
the slab allocator checks if the current magazine of the local |
processor magazine cache is not full. If it is, the pointer to the |
objects is just pushed into the magazine and the algorithm |
returns.</para> |
<para><emphasis>Step 2.</emphasis> If the current magazine is |
full, the allocator will attempt to swap it with the last magazine |
from the cache and return to the first step. If also the last |
magazine is empty, the algorithm will fall through to Step |
3.</para> |
<para><emphasis>Step 3.</emphasis> Now the allocator is in the |
situation when both magazines in the processor magazine cache are |
full. The allocator tries to allocate a new empty magazine and |
flush one of the full magazines to the shared list of full |
magazines. If it is successfull, the algoritm continues with Step |
1.</para> |
<para><emphasis>Step 4. </emphasis>In case of low memory condition |
when the allocation of empty magazine fails, the object is moved |
directly into slab. In the worst case object deallocation does not |
need to allocate any additional memory.</para> |
</formalpara> |
</section> |
</section> |
</section> |
</section> |
<section> |
<title>Virtual memory management</title> |
<para>Virtual memory is essential for an operating system because it makes |
several things possible. First, it helps to isolate tasks from each other |
by encapsulating them in their private address spaces. Second, virtual |
memory can give tasks the feeling of more memory available than is |
actually possible. And third, by using virtual memory, there might be |
multiple copies of the same program, linked to the same addresses, running |
in the system. There are at least two known mechanisms for implementing |
virtual memory: segmentation and paging. Even though some processor |
architectures supported by HelenOS<footnote> |
<para>ia32 has full-fledged segmentation.</para> |
</footnote> provide both mechanisms, the kernel makes use solely of |
paging.</para> |
<section id="paging"> |
<title>VAT subsystem</title> |
<para>In a paged virtual memory, the entire virtual address space is |
divided into small power-of-two sized naturally aligned blocks called |
pages. The processor implements a translation mechanism, that allows the |
operating system to manage mappings between set of pages and set of |
identically sized and identically aligned pieces of physical memory |
called frames. In a result, references to continuous virtual memory |
areas don't necessarily need to reference continuos area of physical |
memory. Supported page sizes usually range from several kilobytes to |
several megabytes. Each page that takes part in the mapping is |
associated with certain attributes that further desribe the mapping |
(e.g. access rights, dirty and accessed bits and present bit).</para> |
<para>When the processor accesses a page that is not present (i.e. its |
present bit is not set), the operating system is notified through a |
special exception called page fault. It is then up to the operating |
system to service the page fault. In HelenOS, some page faults are fatal |
and result in either task termination or, in the worse case, kernel |
panic<footnote> |
<para>Such a condition would be either caused by a hardware failure |
or a bug in the kernel.</para> |
</footnote>, while other page faults are used to load memory on demand |
or to notify the kernel about certain events.</para> |
<indexterm> |
<primary>page tables</primary> |
</indexterm> |
<para>The set of all page mappings is stored in a memory structure |
called page tables. Some architectures have no hardware support for page |
tables<footnote> |
<para>On mips32, TLB-only model is used and the operating system is |
responsible for managing software defined page tables.</para> |
</footnote> while other processor architectures<footnote> |
<para>Like amd64 and ia32.</para> |
</footnote> understand the whole memory format thereof. Despite all |
the possible differences in page table formats, the HelenOS VAT |
subsystem<footnote> |
<para>Virtual Address Translation subsystem.</para> |
</footnote> unifies the page table operations under one programming |
interface. For all parts of the kernel, three basic functions are |
provided:</para> |
<itemizedlist> |
<listitem> |
<para><code>page_mapping_insert()</code>,</para> |
</listitem> |
<listitem> |
<para><code>page_mapping_find()</code> and</para> |
</listitem> |
<listitem> |
<para><code>page_mapping_remove()</code>.</para> |
</listitem> |
</itemizedlist> |
<para>The <code>page_mapping_insert()</code> function is used to |
introduce a mapping for one virtual memory page belonging to a |
particular address space into the page tables. Once the mapping is in |
the page tables, it can be searched by <code>page_mapping_find()</code> |
and removed by <code>page_mapping_remove()</code>. All of these |
functions internally select the page table mechanism specific functions |
that carry out the self operation.</para> |
<para>There are currently two supported mechanisms: generic 4-level |
hierarchical page tables and global page hash table. Both of the |
mechanisms are generic as they cover several hardware platforms. For |
instance, the 4-level hierarchical page table mechanism is used by |
amd64, ia32, mips32 and ppc32, respectively. These architectures have |
the following page table format: 4-level, 2-level, TLB-only and hardware |
hash table, respectively. On the other hand, the global page hash table |
is used on ia64 that can be TLB-only or use a hardware hash table. |
Although only two mechanisms are currently implemented, other mechanisms |
(e.g. B+tree) can be easily added.</para> |
<section id="page_tables"> |
<indexterm> |
<primary>page tables</primary> |
<secondary>- hierarchical</secondary> |
</indexterm> |
<title>Hierarchical 4-level page tables</title> |
<para>Hierarchical 4-level page tables are generalization of the |
frequently used hierarchical model of page tables. In this mechanism, |
each address space has its own page tables. To avoid confusion in |
terminology used by hardware vendors, in HelenOS, the root level page |
table is called PTL0, the two middle levels are called PTL1 and PTL2, |
and, finally, the leaf level is called PTL3. All architectures using |
this mechanism are required to use PTL0 and PTL3. However, the middle |
levels can be left out, depending on the hardware hierarchy or |
structure of software-only page tables. The genericity is achieved |
through a set of macros that define transitions from one level to |
another. Unused levels are optimised out by the compiler. |
<figure float="1"> |
<mediaobject id="mm_pt"> |
<imageobject role="pdf"> |
<imagedata fileref="images/mm_pt.pdf" format="PDF" /> |
</imageobject> |
<imageobject role="html"> |
<imagedata fileref="images/mm_pt.png" format="PNG" /> |
</imageobject> |
<imageobject role="fop"> |
<imagedata fileref="images/mm_pt.svg" format="SVG" /> |
</imageobject> |
</mediaobject> |
<title>Hierarchical 4-level page tables.</title> |
</figure> |
</para> |
</section> |
<section> |
<indexterm> |
<primary>page tables</primary> |
<secondary>- hashing</secondary> |
</indexterm> |
<title>Global page hash table</title> |
<para>Implementation of the global page hash table was encouraged by |
64-bit architectures that can have rather sparse address spaces. The |
hash table contains valid mappings only. Each entry of the hash table |
contains an address space pointer, virtual memory page number (VPN), |
physical memory frame number (PFN) and a set of flags. The pair of the |
address space pointer and the virtual memory page number is used as a |
key for the hash table. One of the major differences between the |
global page hash table and hierarchical 4-level page tables is that |
there is only a single global page hash table in the system while |
hierarchical page tables exist per address space. Thus, the global |
page hash table contains information about mappings of all address |
spaces in the system. |
<figure float="1"> |
<mediaobject id="mm_hash"> |
<imageobject role="pdf"> |
<imagedata fileref="images/mm_hash.pdf" format="PDF" /> |
</imageobject> |
<imageobject role="html"> |
<imagedata fileref="images/mm_hash.png" format="PNG" /> |
</imageobject> |
<imageobject role="fop"> |
<imagedata fileref="images/mm_hash.svg" format="SVG" /> |
</imageobject> |
</mediaobject> |
<title>Global page hash table.</title> |
</figure> |
</para> |
<para>The global page hash table mechanism uses the generic hash table |
type as described in the chapter dedicated to <link |
linkend="hashtables">data structures</link> earlier in this |
book.</para> |
</section> |
</section> |
</section> |
<section id="tlb"> |
<indexterm> |
<primary>TLB</primary> |
</indexterm> |
<title>Translation Lookaside buffer</title> |
<para>Due to the extensive overhead of several extra memory accesses |
during page table lookup that are necessary on every instruction, modern |
architectures deploy fast assotiative cache of recelntly used page |
mappings. This cache is called TLB - Translation Lookaside Buffer - and is |
present on every processor in the system. As it has been already pointed |
out, TLB is the only page translation mechanism for some |
architectures.</para> |
<section id="tlb_shootdown"> |
<indexterm> |
<primary>TLB</primary> |
<secondary>- TLB shootdown</secondary> |
</indexterm> |
<title>TLB consistency</title> |
<para>The operating system is responsible for keeping TLB consistent |
with the page tables. Whenever mappings are modified or purged from the |
page tables, or when an address space identifier is reused, the kernel |
needs to invalidate the respective contents of TLB. Some TLB types |
support partial invalidation of their content (e.g. ranges of pages or |
address spaces) while other types can be invalidated only entirely. The |
invalidation must be done on all processors for there is one TLB per |
processor. Maintaining TLB consistency on multiprocessor configurations |
is not as trivial as it might look from the first glance.</para> |
<para>The remote TLB invalidation is called TLB shootdown. HelenOS uses |
a simplified variant of the algorithm described in <xref |
linkend="Black89" />.</para> |
<para>TLB shootdown is performed in three phases.</para> |
<formalpara> |
<title>Phase 1.</title> |
<para>The initiator clears its TLB flag and locks the global TLB |
spinlock. The request is then enqueued into all other processors' TLB |
shootdown message queues. When the TLB shootdown message queue is full |
on any processor, the queue is purged and a single request to |
invalidate the entire TLB is stored there. Once all the TLB shootdown |
messages were dispatched, the initiator sends all other processors an |
interrupt to notify them about the incoming TLB shootdown message. It |
then spins until all processors accept the interrupt and clear their |
TLB flags.</para> |
</formalpara> |
<formalpara> |
<title>Phase 2.</title> |
<para>Except for the initiator, all other processors are spining on |
the TLB spinlock. The initiator is now free to modify the page tables |
and purge its own TLB. The initiator then unlocks the global TLB |
spinlock and sets its TLB flag.</para> |
</formalpara> |
<formalpara> |
<title>Phase 3.</title> |
<para>When the spinlock is unlocked by the initiator, other processors |
are sequentially granted the spinlock. However, once they manage to |
lock it, they immediately release it. Each processor invalidates its |
TLB according to messages found in its TLB shootdown message queue. In |
the end, each processor sets its TLB flag and resumes its previous |
operation.</para> |
</formalpara> |
</section> |
</section> |
<section> |
<title>Address spaces</title> |
<para>In HelenOS, address spaces are objects that encapsulate the |
following items:</para> |
<itemizedlist> |
<listitem> |
<para>address space identifier,</para> |
</listitem> |
<listitem> |
<para>page table PTL0 pointer and</para> |
</listitem> |
<listitem> |
<para>a set of mutually disjunctive address space areas.</para> |
</listitem> |
</itemizedlist> |
<para>Address space identifiers will be discussed later in this section. |
The address space contains a pointer to PTL0, provided that the |
architecture uses per address space page tables such as the hierarchical |
4-level page tables. The most interesting component is the B+tree of |
address space areas belonging to the address space.</para> |
<section> |
<title>Address space areas</title> |
<para>Because an address space can be composed of heterogenous mappings |
such as userspace code, data, read-only data and kernel memory, it is |
further broken down into smaller homogenous units called address space |
areas. An address space area represents a continuous piece of userspace |
virtual memory associated with common flags. Kernel memory mappings do |
not take part in address space areas because they are hardwired either |
into TLBs or page tables and are thus shared by all address spaces. The |
flags are a combination of:</para> |
<itemizedlist> |
<listitem> |
<para><constant>AS_AREA_READ</constant>,</para> |
</listitem> |
<listitem> |
<para><constant>AS_AREA_WRITE</constant>,</para> |
</listitem> |
<listitem> |
<para><constant>AS_AREA_EXEC</constant> and</para> |
</listitem> |
<listitem> |
<para><constant>AS_AREA_CACHEABLE</constant>.</para> |
</listitem> |
</itemizedlist> |
<para>The <constant>AS_AREA_READ</constant> flag is implicit and cannot |
be removed. The <constant>AS_AREA_WRITE</constant> flag denotes a |
writable address space area and the <constant>AS_AREA_EXEC</constant> is |
used for areas containing code. The combination of |
<constant>AS_AREA_WRITE</constant> and <constant>AS_AREA_EXEC</constant> |
is not allowed. Some architectures don't differentiate between |
executable and non-executable mappings. In that case, the |
<constant>AS_AREA_EXEC</constant> has no effect on mappings created for |
the address space area in the page tables. If the flags don't have |
<constant>AS_AREA_CACHEABLE</constant> set, the page tables content of |
the area is created with caching disabled. This is useful for address |
space areas containing memory of some memory mapped device.</para> |
<para>Address space areas can be backed by a backend that provides |
virtual functions for servicing page faults that occur within the |
address space area, releasing memory allocated by the area and sharing |
the area. Currently, there are three backends supported by HelenOS: |
anonymous memory backend, ELF image backend and physical memory |
backend.</para> |
<formalpara> |
<title>Anonymous memory backend</title> |
<para>Anonymous memory is memory that has no predefined contents such |
as userspace stack or heap. Anonymous address space areas are backed |
by memory allocated from the frame allocator. Areas backed by this |
backend can be resized as long as they are not shared.</para> |
</formalpara> |
<formalpara> |
<title>ELF image backend</title> |
<para>Areas backed by the ELF backend are composed of memory that can |
be either initialized, partially initialized or completely anonymous. |
Initialized portions of ELF backend address space areas are those that |
are entirely physically present in the executable image (e.g. code and |
initialized data). Anonymous portions are those pages of the |
<emphasis>bss</emphasis> section that exist entirely outside the |
executable image. Lastly, pages that don't fit into the previous two |
categories are partially initialized as they are both part of the |
image and the <emphasis>bss</emphasis> section. The initialized |
portion does not need any memory from the allocator unless it is |
writable. In that case, pages are duplicated on demand during page |
fault and memory for the copy is allocated from the frame allocator. |
The remaining two parts of the ELF always require memory from the |
frame allocator. Non-shared address space areas backed by the ELF |
image backend can be resized.</para> |
</formalpara> |
<formalpara> |
<title>Physical memory backend</title> |
<para>Physical memory backend is used by the device drivers to access |
physical memory. No additional memory needs to be allocated on a page |
fault in this area and when sharing this area. Areas backed by this |
backend cannot be resized.</para> |
</formalpara> |
<section> |
<title>Memory sharing</title> |
<para>Address space areas can be shared provided that their backend |
supports sharing<footnote> |
<para>Which is the case for all currently supported |
backends.</para> |
</footnote>. When the kernel calls <code>as_area_share()</code>, a |
check is made to see whether the area is already being shared. If the |
area is already shared, it contains a pointer to the share info |
structure. The pointer is then simply copied into the new address |
space area and a reference count in the share info structure is |
incremented. Otherwise a new address space share info structure needs |
to be created. The backend is then called to duplicate the mapping of |
pages for which a frame is allocated. The duplicated mapping is stored |
in the share info structure B+tree called <varname>pagemap</varname>. |
Note that the reference count of the frames put into the |
<varname>pagemap</varname> must be incremented in order to avoid a race condition. |
If the originating address space area had been destroyed before the <varname>pagemap</varname> |
information made it to the page tables of other address spaces that take part in |
the sharing, the reference count of the respective frames |
would have dropped to zero and some of them could have been allocated again.</para> |
</section> |
<section> |
<title>Page faults</title> |
<para>When a page fault is encountered in the address space area, the |
address space page fault handler, <code>as_page_fault()</code>, |
invokes the corresponding backend page fault handler to resolve the |
situation. The backend might either confirm the page fault or perform |
a remedy. In the non-shared case, depending on the backend, the page |
fault can be remedied usually by allocating some memory on demand or |
by looking up the frame for the faulting translation in the ELF |
image.</para> |
<para>Shared address space areas need to consider the |
<varname>pagemap</varname> B+tree. First they need to make sure |
whether the mapping is not present in the <varname>pagemap</varname>. |
If it is there, then the frame reference count is increased and the |
page fault is resolved. Otherwise the handler proceeds similarily to |
the non-shared case. If it allocates a physical memory frame, it must |
increment its reference count and add it to the |
<varname>pagemap</varname>.</para> |
</section> |
</section> |
<section> |
<indexterm> |
<primary>address space</primary> |
<secondary>- ASID</secondary> |
</indexterm> |
<title>Address Space ID (ASID)</title> |
<para>Modern processor architectures optimize TLB utilization by |
associating TLB entries with address spaces through assigning |
identification numbers to them. In HelenOS, the term ASID, originally |
taken from the mips32 terminology, is used to refer to the address space |
identification number. The advantage of having ASIDs is that TLB does |
not have to be invalidated on thread context switch as long as ASIDs are |
unique. Unfortunately, architectures supported by HelenOS use all |
different widths of ASID numbers<footnote> |
<para>amd64 and ia32 don't use similar abstraction at all, mips32 |
has 8-bit ASIDs and ia64 can have ASIDs between 18 to 24 bits |
wide.</para> |
</footnote> out of which none is sufficient. The amd64 and ia32 |
architectures cannot make use of ASIDs as their TLB doesn't recognize |
such an abstraction. Other architectures have support for ASIDs, but for |
instance ppc32 doesn't make use of them in the current version of |
HelenOS. The rest of the architectures does use ASIDs. However, even on |
the ia64 architecture, the minimal supported width of ASID<footnote> |
<para>RID in ia64 terminology.</para> |
</footnote> is insufficient to provide a unique integer identifier to |
all address spaces that might hypothetically coexist in the running |
system. The situation on mips32 is even worse: the architecture has only |
256 unique identifiers.</para> |
<indexterm> |
<primary>address space</primary> |
<secondary>- ASID stealing</secondary> |
</indexterm> |
<para>To mitigate the shortage of ASIDs, HelenOS uses the following |
strategy. When the system initializes, a FIFO queue<footnote> |
<para>Note that architecture-specific measures are taken to avoid |
too large FIFO queue. For instance, seven consecutive ia64 RIDs are |
grouped to form one HelenOS ASID.</para> |
</footnote> is created and filled with all available ASIDs. Moreover, |
every address space remembers the number of processors on which it is |
active. Address spaces that have a valid ASID and that are not active on |
any processor are appended to the list of inactive address spaces with |
valid ASID. When an address space needs to be assigned a valid ASID, it |
first checks the FIFO queue. If it contains at least one ASID, the ASID |
is allocated. If the queue is empty, an ASID is simply stolen from the |
first address space in the list. In that case, the address space that |
loses the ASID in favor of another address space, is removed from the |
list. After the new ASID is purged from all TLBs, it can be used by the |
address space. Note that this approach works due to the fact that the |
number of ASIDs is greater than the maximal number of processors |
supported by HelenOS and that there can be only one active address space |
per processor. In other words, when the FIFO queue is empty, there must |
be address spaces that are not active on any processor.</para> |
</section> |
</section> |
</chapter> |
/design/trunk/src/ch_intro.xml |
---|
0,0 → 1,49 |
<?xml version="1.0" encoding="UTF-8"?> |
<chapter id="intro"> |
<?dbhtml filename="intro.html" ?> |
<title>Introduction</title> |
<para>HelenOS is a portable operating system with support for a variety of |
modern processor architectures<footnote> |
<para>amd64, arm32, ia32, ia64, mips32, ppc32 and sparc64. ia32xen and |
ppc64 are currently broken.</para> |
</footnote>.</para> |
<para>This book describes the design and principles of the HelenOS operating |
system from the perspective of its microkernel as well as from the |
perspective of its userspace drivers and server tasks. Its primary goal is |
to present ideas behind each subsystem and highlight things that are |
specific to HelenOS. Although this text contains references to source code |
(e.g. function names), these are provided only to improve reader's |
orientation when reading the code. This book does not attempt to be a |
substitute for a reference manual and the reader is strongly encouraged to |
look for interface details there.</para> |
<section> |
<title>How to Read This Book</title> |
<para><xref linkend="architecture" /> contains overview of the overall |
HelenOS architecture.</para> |
<para><xref linkend="ds" /> describes essential data structures used both |
in the kernel and in the userspace.</para> |
<para><xref linkend="time" /> focuses on time management in the kernel and |
scheds some light on the userspace source of time.</para> |
<para><xref linkend="scheduling" /> is dedicated to threads and the |
scheduling subsystem.</para> |
<para><xref linkend="mm" /> describes memory management of physical and |
virtual memory.</para> |
<para><xref linkend="ipc" /> deals with the IPC subsystem.</para> |
<para><xref linkend="hardware" /> describes facilities that a userspace |
task can use in order to become a device driver.</para> |
<para><xref linkend="archspecs" /> presents some architecture specific |
issues.</para> |
</section> |
</chapter> |
/design/trunk/src/ch_ipc.xml |
---|
0,0 → 1,335 |
<?xml version="1.0" encoding="UTF-8"?> |
<chapter id="ipc"> |
<?dbhtml filename="ipc.html"?> |
<title>IPC</title> |
<para>Due to the high intertask communication traffic, IPC becomes critical |
subsystem for microkernels, putting high demands on the speed, latency and |
reliability of IPC model and implementation. Although theoretically the use |
of asynchronous messaging system looks promising, it is not often |
implemented because of a problematic implementation of end user |
applications. HelenOS implements fully asynchronous messaging system with a |
special layer providing a user application developer a reasonably |
synchronous multithreaded environment sufficient to develop complex |
protocols.</para> |
<section> |
<title>Kernel Services</title> |
<para>Every message consists of four numeric arguments (32-bit and 64-bit |
on the corresponding platforms), from which the first one is considered a |
method number on message receipt and a return value on answer receipt. The |
received message contains identification of the incoming connection, so |
that the receiving application can distinguish the messages between |
different senders. Internally the message contains pointer to the |
originating task and to the source of the communication channel. If the |
message is forwarded, the originating task identifies the recipient of the |
answer, the source channel identifies the connection in case of a hangup |
response.</para> |
<para>Every message must be eventually answered. The system keeps track of |
all messages, so that it can answer them with appropriate error code |
should one of the connection parties fail unexpectedly. To limit buffering |
of the messages in the kernel, every task has a limit on the amount of |
asynchronous messages it can send simultaneously. If the limit is reached, |
the kernel refuses to send any other message until some active message is |
answered.</para> |
<para>To facilitate kernel-to-user communication, the IPC subsystem |
provides notification messages. The applications can subscribe to a |
notification channel and receive messages directed to this channel. Such |
messages can be freely sent even from interrupt context as they are |
primarily destined to deliver IRQ events to userspace device drivers. |
These messages need not be answered, there is no party that could receive |
such response.</para> |
<section> |
<title>Low Level IPC</title> |
<para>The whole IPC subsystem consists of one-way communication |
channels. Each task has one associated message queue (answerbox). The |
task can call other tasks and connect its phones to their answerboxes, |
send and forward messages through these connections and answer received |
messages. Every sent message is identified by a unique number, so that |
the response can be later matched against it. The message is sent over |
the phone to the target answerbox. The server application periodically |
checks the answerbox and pulls messages from several queues associated |
with it. After completing the requested action, the server sends a reply |
back to the answerbox of the originating task. If a need arises, it is |
possible to <emphasis>forward</emphasis> a received message through any |
of the open phones to another task. This mechanism is used e.g. for |
opening new connections to services via the naming service.</para> |
<para>The answerbox contains four different message queues:</para> |
<itemizedlist> |
<listitem> |
<para>Incoming call queue</para> |
</listitem> |
<listitem> |
<para>Dispatched call queue</para> |
</listitem> |
<listitem> |
<para>Answer queue</para> |
</listitem> |
<listitem> |
<para>Notification queue</para> |
</listitem> |
</itemizedlist> |
<figure float="1"> |
<title>Low level IPC</title> |
<mediaobject id="ipc1"> |
<imageobject role="pdf"> |
<imagedata fileref="images/ipc1.pdf" format="PDF" /> |
</imageobject> |
<imageobject role="html"> |
<imagedata fileref="images/ipc1.png" format="PNG" /> |
</imageobject> |
<imageobject role="fop"> |
<imagedata fileref="images/ipc1.svg" format="SVG" /> |
</imageobject> |
</mediaobject> |
</figure> |
<para>The communication between task A, that is connected to task B |
looks as follows: task A sends a message over its phone to the target |
asnwerbox. The message is saved in task B's incoming call queue. When |
task B fetches the message for processing, it is automatically moved |
into the dispatched call queue. After the server decides to answer the |
message, it is removed from dispatched queue and the result is moved |
into the answer queue of task A.</para> |
<para>The arguments contained in the message are completely arbitrary |
and decided by the user. The low level part of kernel IPC fills in |
appropriate error codes if there is an error during communication. It is |
assured that the applications are correctly notified about communication |
state. If a program closes the outgoing connection, the target answerbox |
receives a hangup message. The connection identification is not reused |
until the hangup message is acknowledged and all other pending messages |
are answered.</para> |
<para>Closing an incoming connection is done by responding to any |
incoming message with an EHANGUP error code. The connection is then |
immediately closed. The client connection identification (phone id) is |
not reused, until the client closes its own side of the connection |
("hangs his phone up").</para> |
<para>When a task dies (whether voluntarily or by being killed), cleanup |
process is started.</para> |
<orderedlist> |
<listitem> |
<para>hangs up all outgoing connections and sends hangup messages to |
all target answerboxes,</para> |
</listitem> |
<listitem> |
<para>disconnects all incoming connections,</para> |
</listitem> |
<listitem> |
<para>disconnects from all notification channels,</para> |
</listitem> |
<listitem> |
<para>answers all unanswered messages from answerbox queues with |
appropriate error code and</para> |
</listitem> |
<listitem> |
<para>waits until all outgoing messages are answered and all |
remaining answerbox queues are empty.</para> |
</listitem> |
</orderedlist> |
</section> |
<section> |
<title>System Call IPC Layer</title> |
<para>On top of this simple protocol the kernel provides special |
services closely related to the inter-process communication. A range of |
method numbers is allocated and protocol is defined for these functions. |
These messages are interpreted by the kernel layer and appropriate |
actions are taken depending on the parameters of the message and the |
answer.</para> |
<para>The kernel provides the following services:</para> |
<itemizedlist> |
<listitem> |
<para>creating new outgoing connection,</para> |
</listitem> |
<listitem> |
<para>creating a callback connection,</para> |
</listitem> |
<listitem> |
<para>sending an address space area and</para> |
</listitem> |
<listitem> |
<para>asking for an address space area.</para> |
</listitem> |
</itemizedlist> |
<para>On startup, every task is automatically connected to a |
<emphasis>naming service task</emphasis>, which provides a switchboard |
functionality. In order to open a new outgoing connection, the client |
sends a <constant>CONNECT_ME_TO</constant> message using any of his |
phones. If the recepient of this message answers with an accepting |
answer, a new connection is created. In itself, this mechanism would |
allow only duplicating existing connection. However, if the message is |
forwarded, the new connection is made to the final recipient.</para> |
<para>In order for a task to be able to forward a message, it must have |
a phone connected to the destination task. The destination task |
establishes such connection by sending the |
<constant>CONNECT_TO_ME</constant> message to the forwarding task. A |
callback connection is opened afterwards. Every service that wants to |
receive connections has to ask the naming service to create the callback |
connection via this mechanism.</para> |
<para>Tasks can share their address space areas using IPC messages. The |
two message types - <constant>AS_AREA_SEND</constant> and |
<constant>AS_AREA_RECV</constant> are used for sending and receiving an |
address space area respectively. The shared area can be accessed as soon |
as the message is acknowledged.</para> |
</section> |
</section> |
<section> |
<title>Userspace View</title> |
<para>The conventional design of the asynchronous API seems to produce |
applications with one event loop and several big switch statements. |
However, by intensive utilization of userspace fibrils, it was possible to |
create an environment that is not necessarily restricted to this type of |
event-driven programming and allows for more fluent expression of |
application programs.</para> |
<section> |
<title>Single Point of Entry</title> |
<para>Each task is associated with only one answerbox. If a |
multithreaded application needs to communicate, it must be not only able |
to send a message, but it should be able to retrieve the answer as well. |
If several fibrils pull messages from task answerbox, it is a matter of |
coincidence, which fibril receives which message. If a particular fibril |
needs to wait for a message answer, an idle <emphasis>manager</emphasis> |
fibril is found or a new one is created and control is transfered to |
this manager fibril. The manager fibrils pop messages from the answerbox |
and put them into appropriate queues of running fibrils. If a fibril |
waiting for a message is not running, the control is transferred to |
it.</para> |
<figure float="1"> |
<title>Single point of entry</title> |
<mediaobject id="ipc2"> |
<imageobject role="pdf"> |
<imagedata fileref="images/ipc2.pdf" format="PDF" /> |
</imageobject> |
<imageobject role="html"> |
<imagedata fileref="images/ipc2.png" format="PNG" /> |
</imageobject> |
<imageobject role="fop"> |
<imagedata fileref="images/ipc2.svg" format="SVG" /> |
</imageobject> |
</mediaobject> |
</figure> |
<para>Very similar situation arises when a task decides to send a lot of |
messages and reaches the kernel limit of asynchronous messages. In such |
situation, two remedies are available - the userspace library can either |
cache the message locally and resend the message when some answers |
arrive, or it can block the fibril and let it go on only after the |
message is finally sent to the kernel layer. With one exception, HelenOS |
uses the second approach - when the kernel responds that the maximum |
limit of asynchronous messages was reached, the control is transferred |
to a manager fibril. The manager fibril then handles incoming replies |
and, when space is available, sends the message to the kernel and |
resumes the application fibril execution.</para> |
<para>If a kernel notification is received, the servicing procedure is |
run in the context of the manager fibril. Although it wouldn't be |
impossible to allow recursive calling, it could potentially lead to an |
explosion of manager fibrils. Thus, the kernel notification procedures |
are not allowed to wait for a message result, they can only answer |
messages and send new ones without waiting for their results. If the |
kernel limit for outgoing messages is reached, the data is automatically |
cached within the application. This behaviour is enforced automatically |
and the decision making is hidden from the developer.</para> |
<figure float="1"> |
<title>Single point of entry solution</title> |
<mediaobject id="ipc3"> |
<imageobject role="pdf"> |
<imagedata fileref="images/ipc3.pdf" format="PDF" /> |
</imageobject> |
<imageobject role="html"> |
<imagedata fileref="images/ipc3.png" format="PNG" /> |
</imageobject> |
<imageobject role="fop"> |
<imagedata fileref="images/ipc3.svg" format="SVG" /> |
</imageobject> |
</mediaobject> |
</figure> |
</section> |
<section> |
<title>Ordering Problem</title> |
<para>Unfortunately, the real world is is never so simple. E.g. if a |
server handles incoming requests and as a part of its response sends |
asynchronous messages, it can be easily preempted and another thread may |
start intervening. This can happen even if the application utilizes only |
one userspace thread. Classical synchronization using semaphores is not |
possible as locking on them would block the thread completely so that |
the answer couldn't be ever processed. The IPC framework allows a |
developer to specify, that part of the code should not be preempted by |
any other fibril (except notification handlers) while still being able |
to queue messages belonging to other fibrils and regain control when the |
answer arrives.</para> |
<para>This mechanism works transparently in multithreaded environment, |
where additional locking mechanism (futexes) should be used. The IPC |
framework ensures that there will always be enough free userspace |
threads to handle incoming answers and allow the application to run more |
fibrils inside the userspace threads without the danger of locking all |
userspace threads in futexes.</para> |
</section> |
<section> |
<title>The Interface</title> |
<para>The interface was developed to be as simple to use as possible. |
Typical applications simply send messages and occasionally wait for an |
answer and check results. If the number of sent messages is higher than |
the kernel limit, the flow of application is stopped until some answers |
arrive. On the other hand, server applications are expected to work in a |
multithreaded environment.</para> |
<para>The server interface requires the developer to specify a |
<function>connection_fibril</function> function. When new connection is |
detected, a new fibril is automatically created and control is |
transferred to this function. The code then decides whether to accept |
the connection and creates a normal event loop. The userspace IPC |
library ensures correct switching between several threads within the |
kernel environment.</para> |
</section> |
</section> |
</chapter> |
/design/trunk/src/images/thread_states.svg |
---|
0,0 → 1,508 |
<?xml version="1.0" encoding="UTF-8" standalone="no"?> |
<!-- Created with Inkscape (http://www.inkscape.org/) --> |
<svg |
xmlns:dc="http://purl.org/dc/elements/1.1/" |
xmlns:cc="http://web.resource.org/cc/" |
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" |
xmlns:svg="http://www.w3.org/2000/svg" |
xmlns="http://www.w3.org/2000/svg" |
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" |
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" |
inkscape:export-ydpi="99.956085" |
inkscape:export-xdpi="99.956085" |
inkscape:export-filename="/afs/ms.mff.cuni.cz/u/j/jermj0bm/BIG/HelenOS-doc/design/src/images/thread_states.png" |
sodipodi:docname="thread_states.svg" |
sodipodi:docbase="/home/jermar/software/HelenOS-doc/design/src/images" |
inkscape:version="0.45" |
sodipodi:version="0.32" |
id="svg2" |
height="841.88977pt" |
width="595.27557pt" |
version="1.0" |
inkscape:output_extension="org.inkscape.output.svg.inkscape" |
sodipodi:modified="true"> |
<defs |
id="defs4"> |
<marker |
inkscape:stockid="Arrow1Mend" |
orient="auto" |
refY="0" |
refX="0" |
id="Arrow1Mend" |
style="overflow:visible"> |
<path |
id="path15932" |
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z " |
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" |
transform="scale(-0.4,-0.4)" /> |
</marker> |
<marker |
inkscape:stockid="Arrow1Lstart" |
orient="auto" |
refY="0" |
refX="0" |
id="Arrow1Lstart" |
style="overflow:visible"> |
<path |
id="path15941" |
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z " |
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" |
transform="scale(0.8,0.8)" /> |
</marker> |
<marker |
inkscape:stockid="Arrow1Mstart" |
orient="auto" |
refY="0" |
refX="0" |
id="Arrow1Mstart" |
style="overflow:visible"> |
<path |
id="path15935" |
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z " |
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" |
transform="scale(0.4,0.4)" /> |
</marker> |
<marker |
inkscape:stockid="Arrow2Sstart" |
orient="auto" |
refY="0" |
refX="0" |
id="Arrow2Sstart" |
style="overflow:visible"> |
<path |
id="path15911" |
style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" |
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " |
transform="matrix(0.3,0,0,0.3,-1.5,0)" /> |
</marker> |
<marker |
inkscape:stockid="TriangleInM" |
orient="auto" |
refY="0" |
refX="0" |
id="TriangleInM" |
style="overflow:visible"> |
<path |
id="path15846" |
d="M 5.77,0 L -2.88,5 L -2.88,-5 L 5.77,0 z " |
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" |
transform="scale(-0.4,-0.4)" /> |
</marker> |
<marker |
inkscape:stockid="Arrow2Send" |
orient="auto" |
refY="0" |
refX="0" |
id="Arrow2Send" |
style="overflow:visible"> |
<path |
id="path15908" |
style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" |
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " |
transform="matrix(-0.3,0,0,-0.3,1.5,0)" /> |
</marker> |
<marker |
inkscape:stockid="Arrow2Mstart" |
orient="auto" |
refY="0" |
refX="0" |
id="Arrow2Mstart" |
style="overflow:visible"> |
<path |
id="path15917" |
style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" |
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " |
transform="matrix(0.6,0,0,0.6,-3,0)" /> |
</marker> |
<marker |
inkscape:stockid="Arrow2Lend" |
orient="auto" |
refY="0" |
refX="0" |
id="Arrow2Lend" |
style="overflow:visible"> |
<path |
id="path15920" |
style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" |
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " |
transform="matrix(-1.1,0,0,-1.1,5.5,0)" /> |
</marker> |
<marker |
inkscape:stockid="Arrow2Mend" |
orient="auto" |
refY="0" |
refX="0" |
id="Arrow2Mend" |
style="overflow:visible"> |
<path |
id="path15914" |
style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" |
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " |
transform="matrix(-0.6,0,0,-0.6,3,0)" /> |
</marker> |
</defs> |
<sodipodi:namedview |
inkscape:window-y="25" |
inkscape:window-x="0" |
inkscape:window-height="940" |
inkscape:window-width="1270" |
showguides="true" |
showgrid="true" |
inkscape:current-layer="layer1" |
inkscape:document-units="px" |
inkscape:cy="740.43765" |
inkscape:cx="648.34305" |
inkscape:zoom="0.865549" |
inkscape:pageshadow="2" |
inkscape:pageopacity="0.0" |
borderopacity="1.0" |
bordercolor="#666666" |
pagecolor="#ffffff" |
id="base" |
showborder="true" |
inkscape:showpageshadow="false" /> |
<metadata |
id="metadata7"> |
<rdf:RDF> |
<cc:Work |
rdf:about=""> |
<dc:format>image/svg+xml</dc:format> |
<dc:type |
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> |
</cc:Work> |
</rdf:RDF> |
</metadata> |
<g |
id="layer1" |
inkscape:groupmode="layer" |
inkscape:label="Layer 1"> |
<g |
id="g2969"> |
<path |
inkscape:export-ydpi="157.50999" |
inkscape:export-xdpi="157.50999" |
inkscape:export-filename="/afs/labts.troja.mff.cuni.cz/homes/jermj0bm/HelenOS-doc/design/src/images/thread_states.png" |
transform="matrix(0.4944732,0,0,0.4944732,32.505079,214.41201)" |
d="M 432 183.61252 A 117.5 54 0 1 1 197,183.61252 A 117.5 54 0 1 1 432 183.61252 z" |
sodipodi:ry="54" |
sodipodi:rx="117.5" |
sodipodi:cy="183.61252" |
sodipodi:cx="314.5" |
id="path4140" |
style="font-size:32.41382599px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#bc4343;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-family:Bitstream Vera Sans" |
sodipodi:type="arc" /> |
<text |
inkscape:export-ydpi="157.50999" |
inkscape:export-xdpi="157.50999" |
inkscape:export-filename="/afs/labts.troja.mff.cuni.cz/homes/jermj0bm/HelenOS-doc/design/src/images/thread_states.png" |
sodipodi:linespacing="125%" |
id="text4142" |
y="310.4581" |
x="153.78911" |
style="font-size:16.02776527px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="310.4581" |
x="153.78911" |
id="tspan4146" |
sodipodi:role="line">Sleeping</tspan></text> |
<path |
inkscape:export-ydpi="157.50999" |
inkscape:export-xdpi="157.50999" |
inkscape:export-filename="/afs/labts.troja.mff.cuni.cz/homes/jermj0bm/HelenOS-doc/design/src/images/thread_states.png" |
transform="matrix(0.4944732,0,0,0.4944732,139.58723,96.396938)" |
d="M 432 183.61252 A 117.5 54 0 1 1 197,183.61252 A 117.5 54 0 1 1 432 183.61252 z" |
sodipodi:ry="54" |
sodipodi:rx="117.5" |
sodipodi:cy="183.61252" |
sodipodi:cx="314.5" |
id="path4148" |
style="fill:#bc4343;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
sodipodi:type="arc" /> |
<text |
inkscape:export-ydpi="157.50999" |
inkscape:export-xdpi="157.50999" |
inkscape:export-filename="/afs/labts.troja.mff.cuni.cz/homes/jermj0bm/HelenOS-doc/design/src/images/thread_states.png" |
sodipodi:linespacing="125%" |
id="text4150" |
y="192.4431" |
x="269.63187" |
style="font-size:16.02776527px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="192.4431" |
x="269.63187" |
id="tspan4154" |
sodipodi:role="line">Ready</tspan></text> |
<path |
inkscape:export-ydpi="157.50999" |
inkscape:export-xdpi="157.50999" |
inkscape:export-filename="/afs/labts.troja.mff.cuni.cz/homes/jermj0bm/HelenOS-doc/design/src/images/thread_states.png" |
transform="matrix(0.4944732,0,0,0.4944732,-38.863714,3.4359211)" |
d="M 432 183.61252 A 117.5 54 0 1 1 197,183.61252 A 117.5 54 0 1 1 432 183.61252 z" |
sodipodi:ry="54" |
sodipodi:rx="117.5" |
sodipodi:cy="183.61252" |
sodipodi:cx="314.5" |
id="path4156" |
style="fill:#bc4343;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:6.03985834;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
sodipodi:type="arc" /> |
<text |
inkscape:export-ydpi="157.50999" |
inkscape:export-xdpi="157.50999" |
inkscape:export-filename="/afs/labts.troja.mff.cuni.cz/homes/jermj0bm/HelenOS-doc/design/src/images/thread_states.png" |
sodipodi:linespacing="125%" |
id="text4158" |
y="99.976555" |
x="84.752838" |
style="font-size:16.02776527px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:6.03985834;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="99.976555" |
x="84.752838" |
id="tspan4162" |
sodipodi:role="line">Entering</tspan></text> |
<path |
inkscape:export-ydpi="157.50999" |
inkscape:export-xdpi="157.50999" |
inkscape:export-filename="/afs/labts.troja.mff.cuni.cz/homes/jermj0bm/HelenOS-doc/design/src/images/thread_states.png" |
transform="matrix(0.4944732,0,0,0.4944732,331.38771,3.435716)" |
d="M 432 183.61252 A 117.5 54 0 1 1 197,183.61252 A 117.5 54 0 1 1 432 183.61252 z" |
sodipodi:ry="54" |
sodipodi:rx="117.5" |
sodipodi:cy="183.61252" |
sodipodi:cx="314.5" |
id="path4164" |
style="fill:#bc4343;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
sodipodi:type="arc" /> |
<text |
inkscape:export-ydpi="157.50999" |
inkscape:export-xdpi="157.50999" |
inkscape:export-filename="/afs/labts.troja.mff.cuni.cz/homes/jermj0bm/HelenOS-doc/design/src/images/thread_states.png" |
sodipodi:linespacing="125%" |
id="text4166" |
y="99.48188" |
x="458.90955" |
style="font-size:16.02776527px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="99.48188" |
x="458.90955" |
id="tspan4170" |
sodipodi:role="line">Exiting</tspan></text> |
<path |
inkscape:export-ydpi="157.50999" |
inkscape:export-xdpi="157.50999" |
inkscape:export-filename="/afs/labts.troja.mff.cuni.cz/homes/jermj0bm/HelenOS-doc/design/src/images/thread_states.png" |
sodipodi:nodetypes="cc" |
id="path4980" |
d="M 119.63407,120.91285 C 158.4109,155.41306 229.036,175.07247 229.036,175.07247" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.51482165;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Lend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<text |
inkscape:export-ydpi="157.50999" |
inkscape:export-xdpi="157.50999" |
inkscape:export-filename="/afs/labts.troja.mff.cuni.cz/homes/jermj0bm/HelenOS-doc/design/src/images/thread_states.png" |
sodipodi:linespacing="125%" |
id="text4984" |
y="177.29214" |
x="72.033386" |
style="font-size:10.54880428px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="177.29214" |
x="72.033386" |
id="tspan5024" |
sodipodi:role="line">thread_create()</tspan></text> |
<text |
inkscape:export-ydpi="157.50999" |
inkscape:export-xdpi="157.50999" |
inkscape:export-filename="/afs/labts.troja.mff.cuni.cz/homes/jermj0bm/HelenOS-doc/design/src/images/thread_states.png" |
sodipodi:linespacing="125%" |
id="text4988" |
y="144.76666" |
x="167.57008" |
style="font-size:10.54880428px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="144.76666" |
x="167.57008" |
id="tspan5022" |
sodipodi:role="line">thread_ready()</tspan></text> |
<text |
inkscape:export-ydpi="157.50999" |
inkscape:export-xdpi="157.50999" |
inkscape:export-filename="/afs/labts.troja.mff.cuni.cz/homes/jermj0bm/HelenOS-doc/design/src/images/thread_states.png" |
sodipodi:linespacing="125%" |
id="text4994" |
y="233.55243" |
x="371.00375" |
style="font-size:10.54880428px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="233.55243" |
x="371.00375" |
id="tspan5026" |
sodipodi:role="line">scheduler()</tspan></text> |
<text |
inkscape:export-ydpi="157.50999" |
inkscape:export-xdpi="157.50999" |
inkscape:export-filename="/afs/labts.troja.mff.cuni.cz/homes/jermj0bm/HelenOS-doc/design/src/images/thread_states.png" |
sodipodi:linespacing="125%" |
id="text4998" |
y="332.00797" |
x="235.8403" |
style="font-size:10.54880428px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="332.00797" |
x="235.8403" |
id="tspan5018" |
sodipodi:role="line">waitq_sleep_timeout()</tspan></text> |
<text |
inkscape:export-ydpi="157.50999" |
inkscape:export-xdpi="157.50999" |
inkscape:export-filename="/afs/labts.troja.mff.cuni.cz/homes/jermj0bm/HelenOS-doc/design/src/images/thread_states.png" |
sodipodi:linespacing="125%" |
id="text5002" |
y="267.83606" |
x="267.08151" |
style="font-size:10.54880428px;font-style:oblique;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="267.83606" |
x="267.08151" |
id="tspan5004" |
sodipodi:role="line">preemption</tspan></text> |
<text |
inkscape:export-ydpi="157.50999" |
inkscape:export-xdpi="157.50999" |
inkscape:export-filename="/afs/labts.troja.mff.cuni.cz/homes/jermj0bm/HelenOS-doc/design/src/images/thread_states.png" |
sodipodi:linespacing="125%" |
id="text5006" |
y="179.05028" |
x="418.84592" |
style="font-size:10.54880428px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="179.05028" |
x="418.84592" |
id="tspan5016" |
sodipodi:role="line">thread_exit()</tspan></text> |
<text |
inkscape:export-ydpi="157.50999" |
inkscape:export-xdpi="157.50999" |
inkscape:export-filename="/afs/labts.troja.mff.cuni.cz/homes/jermj0bm/HelenOS-doc/design/src/images/thread_states.png" |
sodipodi:linespacing="125%" |
id="text5010" |
y="240.63132" |
x="152.32382" |
style="font-size:10.54880428px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="240.63132" |
x="152.32382" |
id="tspan5020" |
sodipodi:role="line">waitq_wakeup()</tspan></text> |
<path |
inkscape:export-ydpi="157.50999" |
inkscape:export-xdpi="157.50999" |
inkscape:export-filename="/afs/labts.troja.mff.cuni.cz/homes/jermj0bm/HelenOS-doc/design/src/images/thread_states.png" |
transform="matrix(0.4944732,0,0,0.4944732,244.67941,215.88328)" |
d="M 432 183.61252 A 117.5 54 0 1 1 197,183.61252 A 117.5 54 0 1 1 432 183.61252 z" |
sodipodi:ry="54" |
sodipodi:rx="117.5" |
sodipodi:cy="183.61252" |
sodipodi:cx="314.5" |
id="path2444" |
style="font-size:32.41382599px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#bc4343;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-family:Bitstream Vera Sans" |
sodipodi:type="arc" /> |
<text |
inkscape:export-ydpi="157.50999" |
inkscape:export-xdpi="157.50999" |
inkscape:export-filename="/afs/labts.troja.mff.cuni.cz/homes/jermj0bm/HelenOS-doc/design/src/images/thread_states.png" |
sodipodi:linespacing="125%" |
id="text2446" |
y="311.52734" |
x="368.48883" |
style="font-size:16.02776527px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="311.52734" |
x="368.48883" |
id="tspan2450" |
sodipodi:role="line">Running</tspan></text> |
<path |
inkscape:export-ydpi="157.50999" |
inkscape:export-xdpi="157.50999" |
inkscape:export-filename="/afs/labts.troja.mff.cuni.cz/homes/jermj0bm/HelenOS-doc/design/src/images/thread_states.png" |
inkscape:connector-type="polyline" |
id="path3325" |
d="M 33.829457,213.66698 L 84.561293,138.77965" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.92965603;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Lend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<path |
inkscape:export-ydpi="157.50999" |
inkscape:export-xdpi="157.50999" |
inkscape:export-filename="/afs/labts.troja.mff.cuni.cz/homes/jermj0bm/HelenOS-doc/design/src/images/thread_states.png" |
sodipodi:nodetypes="cc" |
id="path4202" |
d="M 314.69899,213.04834 C 362.88199,220.57945 386.15206,252.5286 393.34463,268.81194" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.46482801px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Lend);stroke-opacity:1" /> |
<path |
inkscape:export-ydpi="157.50999" |
inkscape:export-xdpi="157.50999" |
inkscape:export-filename="/afs/labts.troja.mff.cuni.cz/homes/jermj0bm/HelenOS-doc/design/src/images/thread_states.png" |
inkscape:connector-type="polyline" |
id="path5077" |
d="M 340.70678,305.19787 L 257.84357,304.77479" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.46482801px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Lend);stroke-opacity:1;display:inline" /> |
<path |
inkscape:export-ydpi="157.50999" |
inkscape:export-xdpi="157.50999" |
inkscape:export-filename="/afs/labts.troja.mff.cuni.cz/homes/jermj0bm/HelenOS-doc/design/src/images/thread_states.png" |
sodipodi:nodetypes="cc" |
id="path5079" |
d="M 387.96877,280.82152 C 347.32732,273.1621 321.64165,254.50261 309.03773,224.86293" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.46482801px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Lend);stroke-opacity:1" /> |
<path |
inkscape:export-ydpi="157.50999" |
inkscape:export-xdpi="157.50999" |
inkscape:export-filename="/afs/labts.troja.mff.cuni.cz/homes/jermj0bm/HelenOS-doc/design/src/images/thread_states.png" |
inkscape:connector-type="polyline" |
id="path5081" |
d="M 190.14883,277.69688 L 285.76766,220.57945" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.46482801px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Lend);stroke-opacity:1;display:inline" /> |
<path |
inkscape:export-ydpi="157.50999" |
inkscape:export-xdpi="157.50999" |
inkscape:export-filename="/afs/labts.troja.mff.cuni.cz/homes/jermj0bm/HelenOS-doc/design/src/images/thread_states.png" |
sodipodi:nodetypes="cc" |
inkscape:connector-type="polyline" |
id="path5083" |
d="M 349.04067,177.84713 L 479.96695,128.34535" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.46482801px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Lend);stroke-opacity:1;display:inline" /> |
<path |
inkscape:export-ydpi="157.50999" |
inkscape:export-xdpi="157.50999" |
inkscape:export-filename="/afs/labts.troja.mff.cuni.cz/homes/jermj0bm/HelenOS-doc/design/src/images/thread_states.png" |
transform="matrix(0.4944732,0,0,0.4944732,139.49524,-54.184333)" |
d="M 432 183.61252 A 117.5 54 0 1 1 197,183.61252 A 117.5 54 0 1 1 432 183.61252 z" |
sodipodi:ry="54" |
sodipodi:rx="117.5" |
sodipodi:cy="183.61252" |
sodipodi:cx="314.5" |
id="path1571" |
style="fill:#bc4343;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
sodipodi:type="arc" /> |
<text |
inkscape:export-ydpi="157.50999" |
inkscape:export-xdpi="157.50999" |
inkscape:export-filename="/afs/labts.troja.mff.cuni.cz/homes/jermj0bm/HelenOS-doc/design/src/images/thread_states.png" |
sodipodi:linespacing="125%" |
id="text1573" |
y="41.48431" |
x="256.48203" |
style="font-size:16.02776527px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="41.48431" |
x="256.48203" |
id="tspan2967" |
sodipodi:role="line">Lingering</tspan></text> |
<path |
inkscape:export-ydpi="157.50999" |
inkscape:export-xdpi="157.50999" |
inkscape:export-filename="/afs/labts.troja.mff.cuni.cz/homes/jermj0bm/HelenOS-doc/design/src/images/thread_states.png" |
inkscape:connector-type="polyline" |
id="path1579" |
d="M 437.58788,77.956963 L 363.20043,46.681251" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.46482801;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Lend);stroke-miterlimit:4;stroke-dasharray:2.929656, 1.464828;stroke-dashoffset:0;stroke-opacity:1;display:inline" /> |
</g> |
</g> |
</svg> |
/design/trunk/src/images/ipc3.svg |
---|
0,0 → 1,342 |
<?xml version="1.0" encoding="UTF-8" standalone="no"?> |
<!-- Created with Inkscape (http://www.inkscape.org/) --> |
<svg |
xmlns:dc="http://purl.org/dc/elements/1.1/" |
xmlns:cc="http://web.resource.org/cc/" |
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" |
xmlns:svg="http://www.w3.org/2000/svg" |
xmlns="http://www.w3.org/2000/svg" |
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" |
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" |
width="744.09448819" |
height="1052.3622047" |
id="svg5804" |
sodipodi:version="0.32" |
inkscape:version="0.45" |
sodipodi:docbase="/home/jermar/software/HelenOS-doc/design/src/images" |
sodipodi:docname="ipc3.svg" |
inkscape:output_extension="org.inkscape.output.svg.inkscape" |
sodipodi:modified="true"> |
<defs |
id="defs5806"> |
<marker |
inkscape:stockid="Arrow1Lend" |
orient="auto" |
refY="0.0" |
refX="0.0" |
id="Arrow1Lend" |
style="overflow:visible;"> |
<path |
id="path4118" |
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " |
style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" |
transform="scale(0.8) rotate(180)" /> |
</marker> |
<marker |
inkscape:stockid="Arrow2Lstart" |
orient="auto" |
refY="0.0" |
refX="0.0" |
id="Arrow2Lstart" |
style="overflow:visible"> |
<path |
id="path4103" |
style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round" |
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " |
transform="scale(1.1) translate(-5,0)" /> |
</marker> |
<marker |
inkscape:stockid="Arrow1Lstart" |
orient="auto" |
refY="0.0" |
refX="0.0" |
id="Arrow1Lstart" |
style="overflow:visible"> |
<path |
id="path4121" |
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " |
style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none" |
transform="scale(0.8)" /> |
</marker> |
</defs> |
<sodipodi:namedview |
id="base" |
pagecolor="#ffffff" |
bordercolor="#666666" |
borderopacity="1.0" |
inkscape:pageopacity="0.0" |
inkscape:pageshadow="2" |
inkscape:zoom="1.8672292" |
inkscape:cx="213.07443" |
inkscape:cy="849.15418" |
inkscape:document-units="px" |
inkscape:current-layer="layer1" |
showgrid="true" |
inkscape:window-width="1270" |
inkscape:window-height="943" |
inkscape:window-x="0" |
inkscape:window-y="25" /> |
<metadata |
id="metadata5809"> |
<rdf:RDF> |
<cc:Work |
rdf:about=""> |
<dc:format>image/svg+xml</dc:format> |
<dc:type |
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> |
</cc:Work> |
</rdf:RDF> |
</metadata> |
<g |
inkscape:label="Layer 1" |
inkscape:groupmode="layer" |
id="layer1"> |
<rect |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:3.82379174;stroke-miterlimit:4;stroke-dasharray:3.8237915, 3.8237915;stroke-dashoffset:0;stroke-opacity:1" |
id="rect4591" |
width="281.32019" |
height="383.9165" |
x="77.538818" |
y="11.249744" /> |
<rect |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2.08290625;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect6800" |
width="112.1237" |
height="301.73367" |
x="216.05653" |
y="61.556484" /> |
<rect |
style="fill:#bc4343;fill-opacity:1;stroke:#000000;stroke-width:2.29881334;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect6802" |
width="112.5148" |
height="31.925303" |
x="215.85529" |
y="36.025669" /> |
<text |
xml:space="preserve" |
style="font-size:10.48421288px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
x="248.93459" |
y="55.27504" |
id="text6804" |
transform="scale(0.9973909,1.0026159)" |
sodipodi:linespacing="125%"><tspan |
sodipodi:role="line" |
id="tspan1492" |
x="248.93459" |
y="55.27504">Thread #2</tspan></text> |
<rect |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2.0828383;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect5858" |
width="112.1237" |
height="301.71402" |
x="103.12389" |
y="61.436604" /> |
<rect |
style="fill:#bc4343;fill-opacity:1;stroke:#000000;stroke-width:2.29881334;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect2799" |
width="112.5148" |
height="31.925303" |
x="102.92266" |
y="36.045433" /> |
<text |
xml:space="preserve" |
style="font-size:10.48421288px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
x="129.40469" |
y="55.27504" |
id="text5861" |
transform="scale(0.9973909,1.0026159)" |
sodipodi:linespacing="125%"><tspan |
sodipodi:role="line" |
id="tspan1490" |
x="129.40469" |
y="55.27504">Thread #1</tspan></text> |
<text |
xml:space="preserve" |
style="font-size:10.10816383px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
x="123.02416" |
y="90.758408" |
id="text6753" |
sodipodi:linespacing="125%"><tspan |
sodipodi:role="line" |
id="tspan2773" |
x="123.02416" |
y="90.758408">fibril #1</tspan></text> |
<rect |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.82489389;stroke-miterlimit:4;stroke-dasharray:0.82489396, 0.82489396;stroke-dashoffset:0;stroke-opacity:1" |
id="rect6838" |
width="108.88601" |
height="76.751122" |
x="162.89091" |
y="193.36983" /> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.64978778px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" |
d="M 142.26857,97.71813 L 142.26857,198.77183" |
id="path6738" |
sodipodi:nodetypes="cc" /> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.2889657px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" |
d="M 178.38349,197.89289 L 178.38349,259.57776" |
id="path6751" |
sodipodi:nodetypes="cc" /> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.64978778px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Lend);stroke-opacity:1" |
d="M 141.44367,169.4839 L 55.654699,179.38263" |
id="path6764" /> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.82489389;stroke-linecap:butt;stroke-linejoin:miter;marker-start:none;marker-end:url(#Arrow1Lend);stroke-miterlimit:4;stroke-dasharray:0.82489396, 0.82489396;stroke-dashoffset:0;stroke-opacity:1" |
d="M 142.17232,198.36946 C 142.17232,198.36946 152.99219,217.45678 169.49007,203.36906" |
id="path6772" /> |
<text |
xml:space="preserve" |
style="font-size:8.28535271px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
x="132.8468" |
y="217.02353" |
id="text6776"><tspan |
sodipodi:role="line" |
id="tspan6778" |
x="132.8468" |
y="217.02353">wait_for()</tspan></text> |
<text |
xml:space="preserve" |
style="font-size:19.79745483px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
x="17.948275" |
y="172.47113" |
id="text6780"><tspan |
sodipodi:role="line" |
id="tspan6782" |
x="17.948275" |
y="172.47113">call</tspan></text> |
<text |
xml:space="preserve" |
style="font-size:8.67462254px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
x="157.09018" |
y="180.7571" |
id="text6784" |
sodipodi:linespacing="125%"><tspan |
sodipodi:role="line" |
id="tspan2777" |
x="157.09018" |
y="180.7571">Manager</tspan><tspan |
sodipodi:role="line" |
id="tspan2779" |
x="157.09018" |
y="191.60037">fibril #1</tspan></text> |
<g |
id="g6814" |
transform="matrix(-1.6497879,0,0,1.6497879,525.48343,-20.839222)"> |
<path |
sodipodi:nodetypes="cc" |
id="path6816" |
d="M 143.5,71.86218 L 143.5,133.11472" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> |
<path |
sodipodi:nodetypes="cc" |
id="path6818" |
d="M 165.39065,132.58196 L 165.39065,169.97154" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.78129178px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> |
<path |
id="path6820" |
d="M 143,115.36218 L 91,121.36218" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Lend);stroke-opacity:1" /> |
<path |
id="path6822" |
d="M 143.44166,132.87083 C 143.44166,132.87083 150,144.44039 160,135.90128" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;marker-start:none;marker-end:url(#Arrow1Lend);stroke-miterlimit:4;stroke-dasharray:0.5, 0.5;stroke-dashoffset:0;stroke-opacity:1" /> |
</g> |
<text |
xml:space="preserve" |
style="font-size:19.79745483px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
x="387.81952" |
y="168.02745" |
id="text6824"><tspan |
sodipodi:role="line" |
id="tspan6826" |
x="387.81952" |
y="168.02745">call</tspan></text> |
<text |
xml:space="preserve" |
style="font-size:8.67462254px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
x="232.76477" |
y="179.68599" |
id="text6828" |
sodipodi:linespacing="125%"><tspan |
sodipodi:role="line" |
id="tspan2781" |
x="232.76477" |
y="179.68599">Manager</tspan><tspan |
sodipodi:role="line" |
id="tspan2783" |
x="232.76477" |
y="190.52927">fibril #2</tspan></text> |
<text |
xml:space="preserve" |
style="font-size:8.28535271px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
x="256.5809" |
y="217.02353" |
id="text6834"><tspan |
sodipodi:role="line" |
id="tspan6836" |
x="256.5809" |
y="217.02353">wait_for()</tspan></text> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.23734093;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Lend);stroke-miterlimit:4;stroke-dasharray:1.23734094, 1.23734094;stroke-dashoffset:0;stroke-opacity:1" |
d="M 10.842432,219.76056 C 1.8209309,256.71902 238.48598,252.18666 238.48598,252.18666" |
id="path6842" |
sodipodi:nodetypes="cs" /> |
<text |
xml:space="preserve" |
style="font-size:16.71392441px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
x="5.1449976" |
y="218.74086" |
id="text6844"><tspan |
sodipodi:role="line" |
id="tspan6846" |
x="5.1449976" |
y="218.74086">answer</tspan></text> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.64978778px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" |
d="M 286.62501,263.52181 L 286.62501,355.90994" |
id="path6848" /> |
<text |
xml:space="preserve" |
style="font-size:10.10816383px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
x="244.62128" |
y="90.758408" |
id="text6850" |
sodipodi:linespacing="125%"><tspan |
sodipodi:role="line" |
id="tspan2775" |
x="244.62128" |
y="90.758408">fibril #2</tspan></text> |
<text |
xml:space="preserve" |
style="font-size:5.84474325px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
x="292.02628" |
y="265.24155" |
id="text6858" |
sodipodi:linespacing="125%"><tspan |
sodipodi:role="line" |
id="tspan2785" |
x="292.02628" |
y="265.24155">fibril #1</tspan></text> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.82489389;stroke-linecap:butt;stroke-linejoin:miter;marker-start:none;marker-end:url(#Arrow1Lend);stroke-miterlimit:4;stroke-dasharray:0.82489396, 0.82489396;stroke-dashoffset:0;stroke-opacity:1" |
d="M 253.28367,261.10255 C 253.28367,261.10255 264.10354,242.01523 280.60142,256.10295" |
id="path6866" /> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.82489389;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Lend);stroke-miterlimit:4;stroke-dasharray:0.82489396, 0.82489396;stroke-dashoffset:0;stroke-opacity:1" |
d="M 142.69356,199.61935 C 126.26059,352.21169 258.47811,254.51093 276.62577,262.53115" |
id="path6868" |
sodipodi:nodetypes="cs" /> |
<text |
xml:space="preserve" |
style="font-size:13.34469986px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
x="139.20274" |
y="297.04135" |
id="text6870"><tspan |
sodipodi:role="line" |
id="tspan6872" |
x="139.20274" |
y="297.04135">migration</tspan></text> |
</g> |
</svg> |
/design/trunk/src/images/arch1.svg |
---|
0,0 → 1,813 |
<?xml version="1.0" encoding="UTF-8" standalone="no"?> |
<!-- Created with Inkscape (http://www.inkscape.org/) --> |
<svg |
xmlns:dc="http://purl.org/dc/elements/1.1/" |
xmlns:cc="http://web.resource.org/cc/" |
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" |
xmlns:svg="http://www.w3.org/2000/svg" |
xmlns="http://www.w3.org/2000/svg" |
xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd" |
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" |
width="595.27557pt" |
height="841.88977pt" |
id="svg1595" |
sodipodi:version="0.32" |
inkscape:version="0.43" |
sodipodi:docbase="/afs/ms/u/j/jermj0bm/BIG/HelenOS-doc/design/src/images" |
sodipodi:docname="arch1.svg" |
version="1.0" |
inkscape:export-filename="/home/segabond/HelenOS-doc/design/src/images.vector/arch1.svg" |
inkscape:export-xdpi="157.50999" |
inkscape:export-ydpi="157.50999"> |
<defs |
id="defs1597"> |
<marker |
inkscape:stockid="Arrow2Mend" |
orient="auto" |
refY="0.0" |
refX="0.0" |
id="Arrow2Mend" |
style="overflow:visible;"> |
<path |
id="path2586" |
style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" |
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " |
transform="scale(0.6) rotate(180) translate(-5,0)" /> |
</marker> |
<marker |
inkscape:stockid="Arrow2Lstart" |
orient="auto" |
refY="0.0" |
refX="0.0" |
id="Arrow2Lstart" |
style="overflow:visible"> |
<path |
id="path2595" |
style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round" |
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " |
transform="scale(1.1) translate(-5,0)" /> |
</marker> |
<marker |
inkscape:stockid="Arrow2Mstart" |
orient="auto" |
refY="0.0" |
refX="0.0" |
id="Arrow2Mstart" |
style="overflow:visible"> |
<path |
id="path2589" |
style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round" |
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " |
transform="scale(0.6) translate(-5,0)" /> |
</marker> |
<marker |
inkscape:stockid="Arrow2Lend" |
orient="auto" |
refY="0" |
refX="0" |
id="Arrow2Lend" |
style="overflow:visible"> |
<path |
id="path3030" |
style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" |
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " |
transform="matrix(-1.1,0,0,-1.1,5.5,0)" /> |
</marker> |
<marker |
inkscape:stockid="TriangleOutL" |
orient="auto" |
refY="0" |
refX="0" |
id="TriangleOutL" |
style="overflow:visible"> |
<path |
id="path2950" |
d="M 5.77,0 L -2.88,5 L -2.88,-5 L 5.77,0 z " |
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" |
transform="scale(0.8,0.8)" /> |
</marker> |
<marker |
inkscape:stockid="Arrow1Lstart" |
orient="auto" |
refY="0" |
refX="0" |
id="Arrow1Lstart" |
style="overflow:visible"> |
<path |
id="path3051" |
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z " |
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" |
transform="scale(0.8,0.8)" /> |
</marker> |
</defs> |
<sodipodi:namedview |
id="base" |
pagecolor="#ffffff" |
bordercolor="#666666" |
borderopacity="1.0" |
inkscape:pageopacity="0.0" |
inkscape:pageshadow="2" |
inkscape:zoom="1.9664338" |
inkscape:cx="317.11077" |
inkscape:cy="830.58799" |
inkscape:document-units="px" |
inkscape:current-layer="layer1" |
inkscape:window-width="1272" |
inkscape:window-height="943" |
inkscape:window-x="2" |
inkscape:window-y="0" |
showguides="false" |
showgrid="true" /> |
<metadata |
id="metadata1600"> |
<rdf:RDF> |
<cc:Work |
rdf:about=""> |
<dc:format>image/svg+xml</dc:format> |
<dc:type |
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> |
</cc:Work> |
</rdf:RDF> |
</metadata> |
<g |
inkscape:label="Layer 1" |
inkscape:groupmode="layer" |
id="layer1"> |
<rect |
style="fill:#a3a3a3;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" |
id="rect1603" |
width="280.96918" |
height="242.50786" |
x="3.31182" |
y="2.842041" |
rx="0" |
ry="0" /> |
<rect |
style="fill:#bc4343;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" |
id="rect2537" |
width="279.31699" |
height="17.0145" |
x="2.977221" |
y="267.7811" /> |
<text |
xml:space="preserve" |
style="font-size:11.03643227px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
x="118.24348" |
y="280.65692" |
id="text2541"><tspan |
sodipodi:role="line" |
id="tspan2543" |
x="118.24348" |
y="280.65692">HARDWARE</tspan></text> |
<rect |
ry="0" |
y="89.370667" |
x="21.705873" |
height="70.357254" |
width="123.24016" |
id="rect2482" |
style="fill:#1e1d70;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" /> |
<text |
sodipodi:linespacing="100%" |
id="text2484" |
y="100.53796" |
x="23.374378" |
style="font-size:11.35551548px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#efff00;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
id="tspan2906" |
sodipodi:role="line" |
y="100.53796" |
x="23.374378">Scheduler</tspan></text> |
<text |
sodipodi:linespacing="100%" |
id="text2488" |
y="115.71053" |
x="26.795998" |
style="font-size:9.97017193px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
id="tspan3018" |
sodipodi:role="line" |
y="115.71053" |
x="26.795998">* threads</tspan><tspan |
id="tspan3020" |
sodipodi:role="line" |
y="125.68071" |
x="26.795998">* per CPU run-queues</tspan><tspan |
id="tspan3022" |
sodipodi:role="line" |
y="135.65088" |
x="26.795998">* load balancing</tspan><tspan |
id="tspan3024" |
sodipodi:role="line" |
y="145.62105" |
x="26.795998" /></text> |
<rect |
ry="0" |
y="8.9375381" |
x="151.31157" |
height="70.357254" |
width="123.24016" |
id="rect2507" |
style="fill:#1e1d70;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" /> |
<text |
sodipodi:linespacing="100%" |
id="text2509" |
y="20.762728" |
x="152.67284" |
style="font-size:10.8898077px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#efff00;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
id="tspan2902" |
sodipodi:role="line" |
y="20.762728" |
x="152.67284">Memory Management</tspan></text> |
<text |
sodipodi:linespacing="100%" |
id="text2513" |
y="38.03651" |
x="157.32141" |
style="font-size:9.97017193px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
id="tspan3063" |
sodipodi:role="line" |
y="38.03651" |
x="157.32141">* physical memory</tspan><tspan |
id="tspan3065" |
sodipodi:role="line" |
y="48.006682" |
x="157.32141">* virtual memory</tspan><tspan |
id="tspan3067" |
sodipodi:role="line" |
y="57.976854" |
x="157.32141">* address spaces</tspan></text> |
<rect |
ry="0" |
y="87.229218" |
x="150.65472" |
height="72.190376" |
width="123.24016" |
id="rect2523" |
style="fill:#1e1d70;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" /> |
<text |
sodipodi:linespacing="100%" |
id="text2525" |
y="97.924149" |
x="152.17294" |
style="font-size:11.03643227px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#efff00;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
id="tspan2893" |
sodipodi:role="line" |
y="97.924149" |
x="152.17294">Syscalls</tspan></text> |
<text |
sodipodi:linespacing="100%" |
id="text2529" |
y="112.63335" |
x="154.90625" |
style="font-size:9.89715004px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
id="tspan2962" |
sodipodi:role="line" |
y="112.63335" |
x="154.90625">* thread/task control</tspan><tspan |
id="tspan2964" |
sodipodi:role="line" |
y="122.5305" |
x="154.90625">* address space control</tspan><tspan |
id="tspan2966" |
sodipodi:role="line" |
y="132.42765" |
x="154.90625">* IPC</tspan><tspan |
id="tspan2968" |
sodipodi:role="line" |
y="142.3248" |
x="154.90625">* DDI</tspan></text> |
<rect |
ry="0" |
y="168.26785" |
x="21.889883" |
height="70.357254" |
width="123.24016" |
id="rect2558" |
style="fill:#1e1d70;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" /> |
<text |
sodipodi:linespacing="100%" |
id="text2560" |
y="179.84303" |
x="22.297922" |
style="font-size:11.03643227px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#efff00;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
id="tspan3008" |
sodipodi:role="line" |
y="179.84303" |
x="22.297922">Kernel Device Drivers</tspan></text> |
<text |
sodipodi:linespacing="100%" |
id="text2564" |
y="195.12282" |
x="26.980019" |
style="font-size:10.64815712px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
id="tspan3010" |
sodipodi:role="line" |
y="195.12282" |
x="26.980019">* system clock</tspan><tspan |
id="tspan3012" |
sodipodi:role="line" |
y="205.77098" |
x="26.980019">* interrupt controllers</tspan><tspan |
id="tspan3014" |
sodipodi:role="line" |
y="216.41913" |
x="26.980019">* basic console</tspan><tspan |
id="tspan3016" |
sodipodi:role="line" |
y="227.06729" |
x="26.980019">* SMP config</tspan></text> |
<path |
transform="matrix(0.304062,0,0,0.265584,-64.59271,206.9366)" |
d="M 461.5,228.36218 L 431.62212,176.61218 L 491.37788,176.61218 L 461.5,228.36218 z " |
inkscape:randomized="0" |
inkscape:rounded="0" |
inkscape:flatsided="true" |
sodipodi:arg2="2.6179939" |
sodipodi:arg1="1.5707963" |
sodipodi:r2="17.25" |
sodipodi:r1="34.5" |
sodipodi:cy="193.86218" |
sodipodi:cx="461.5" |
sodipodi:sides="3" |
id="path2656" |
style="fill:#000000;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" |
sodipodi:type="star" /> |
<rect |
y="239.96512" |
x="72.387032" |
height="17.661306" |
width="6.6893549" |
id="rect2658" |
style="fill:#000000;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" /> |
<path |
transform="matrix(-0.304062,-9.650901e-18,8.429624e-18,-0.265584,237.0773,300.4091)" |
d="M 461.5,228.36218 L 431.62212,176.61218 L 491.37788,176.61218 L 461.5,228.36218 z " |
inkscape:randomized="0" |
inkscape:rounded="0" |
inkscape:flatsided="true" |
sodipodi:arg2="2.6179939" |
sodipodi:arg1="1.5707963" |
sodipodi:r2="17.25" |
sodipodi:r1="34.5" |
sodipodi:cy="193.86218" |
sodipodi:cx="461.5" |
sodipodi:sides="3" |
id="path2662" |
style="fill:#000000;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" |
sodipodi:type="star" /> |
<rect |
y="-267.38062" |
x="-100.09747" |
height="17.661306" |
width="6.6893549" |
id="rect2664" |
style="fill:#000000;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" |
transform="scale(-1,-1)" /> |
<rect |
ry="0" |
y="167.85875" |
x="150.6114" |
height="70.357254" |
width="123.24016" |
id="rect2868" |
style="fill:#1e1d70;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" /> |
<text |
sodipodi:linespacing="100%" |
id="text2870" |
y="179.46368" |
x="153.3054" |
style="font-size:10.56324673px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#efff00;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
id="tspan2889" |
sodipodi:role="line" |
y="179.46368" |
x="153.3054">IPC</tspan><tspan |
id="tspan2891" |
sodipodi:role="line" |
y="190.02693" |
x="153.3054" /></text> |
<text |
sodipodi:linespacing="100%" |
id="text2874" |
y="192.40541" |
x="155.9709" |
style="font-size:9.97017193px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
id="tspan3026" |
sodipodi:role="line" |
y="192.40541" |
x="155.9709">* answerboxes</tspan><tspan |
id="tspan3028" |
sodipodi:role="line" |
y="202.37558" |
x="155.9709">* phones</tspan><tspan |
id="tspan3030" |
sodipodi:role="line" |
y="212.34575" |
x="155.9709">* (a)synchronous</tspan><tspan |
id="tspan3032" |
sodipodi:role="line" |
y="222.31593" |
x="155.9709">* short messages</tspan></text> |
<text |
id="text2478" |
y="58.524769" |
x="27.721554" |
style="font-size:35.00579834px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="58.524769" |
x="27.721554" |
id="tspan2480" |
sodipodi:role="line">kernel</tspan></text> |
<g |
id="g1687" |
transform="translate(8.720631,-35.88566)"> |
<path |
transform="matrix(0.919703,0,0,0.919703,-129.7253,2.865178)" |
d="M 633 277.36218 A 55 27.5 0 1 1 523,277.36218 A 55 27.5 0 1 1 633 277.36218 z" |
sodipodi:ry="27.5" |
sodipodi:rx="55" |
sodipodi:cy="277.36218" |
sodipodi:cx="578" |
id="path2671" |
style="fill:#e03c3c;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none" |
sodipodi:type="arc" /> |
<text |
id="text2675" |
y="261.74728" |
x="363.78198" |
style="font-size:11.03643227px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="261.74728" |
x="363.78198" |
id="tspan2677" |
sodipodi:role="line">Device Driver</tspan><tspan |
id="tspan2679" |
y="275.54282" |
x="363.78198" |
sodipodi:role="line" /></text> |
</g> |
<g |
id="g5397" |
transform="matrix(1.147036,-0.220145,0.200289,1.260747,-91.71614,-9.521322)"> |
<g |
transform="matrix(0.60836,0.10024,-0.125283,0.486756,63.13712,75.01405)" |
id="g2731" |
style="fill:#bc4343;fill-opacity:1"> |
<path |
sodipodi:type="star" |
style="fill:#bc4343;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none" |
id="path2733" |
sodipodi:sides="3" |
sodipodi:cx="461.5" |
sodipodi:cy="193.86218" |
sodipodi:r1="34.5" |
sodipodi:r2="17.25" |
sodipodi:arg1="1.5707963" |
sodipodi:arg2="2.6179939" |
inkscape:flatsided="true" |
inkscape:rounded="0" |
inkscape:randomized="0" |
d="M 461.5,228.36218 L 431.62212,176.61218 L 491.37788,176.61218 L 461.5,228.36218 z " |
transform="matrix(0.253276,-0.424118,0.424118,0.253276,239.4585,458.5603)" /> |
<rect |
style="fill:#bc4343;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none" |
id="rect2735" |
width="8.4741507" |
height="88.587173" |
x="487.99454" |
y="-339.11758" |
transform="matrix(0.455179,0.8904,-0.863773,0.503882,0,0)" /> |
</g> |
<path |
transform="matrix(-0.207217,0.181054,-0.226285,-0.165797,481.2429,206.4879)" |
d="M 461.5,228.36218 L 431.62212,176.61218 L 491.37788,176.61218 L 461.5,228.36218 z " |
inkscape:randomized="0" |
inkscape:rounded="0" |
inkscape:flatsided="true" |
sodipodi:arg2="2.6179939" |
sodipodi:arg1="1.5707963" |
sodipodi:r2="17.25" |
sodipodi:r1="34.5" |
sodipodi:cy="193.86218" |
sodipodi:cx="461.5" |
sodipodi:sides="3" |
id="path2737" |
style="fill:#bc4343;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none" |
sodipodi:type="star" /> |
</g> |
<g |
id="g1677" |
transform="translate(-40.0314,46.68368)"> |
<path |
transform="matrix(0.919703,0,0,0.919703,19.8594,-150.1205)" |
d="M 633 277.36218 A 55 27.5 0 1 1 523,277.36218 A 55 27.5 0 1 1 633 277.36218 z" |
sodipodi:ry="27.5" |
sodipodi:rx="55" |
sodipodi:cy="277.36218" |
sodipodi:cx="578" |
id="path2796" |
style="fill:#a3a3a3;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none" |
sodipodi:type="arc" /> |
<text |
id="text2798" |
y="109.2059" |
x="526.51227" |
style="font-size:11.03643227px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
id="tspan2800" |
y="109.2059" |
x="526.51227" |
sodipodi:role="line">User Task</tspan></text> |
</g> |
<g |
id="g1682"> |
<path |
transform="matrix(0.919703,0,0,0.919703,-19.36262,-206.7702)" |
d="M 633 277.36218 A 55 27.5 0 1 1 523,277.36218 A 55 27.5 0 1 1 633 277.36218 z" |
sodipodi:ry="27.5" |
sodipodi:rx="55" |
sodipodi:cy="277.36218" |
sodipodi:cx="578" |
id="path2804" |
style="fill:#a3a3a3;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none" |
sodipodi:type="arc" /> |
<text |
id="text2806" |
y="52.205906" |
x="486.04077" |
style="font-size:11.03643227px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
id="tspan2808" |
y="52.205906" |
x="486.04077" |
sodipodi:role="line">User Task</tspan></text> |
</g> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.91970271px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" |
d="M 479.60709,67.443927 L 435.54736,81.913721" |
id="path2858" |
inkscape:connector-type="polyline" /> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.91970271px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline" |
d="M 427.18586,102.08508 L 489.49262,129.13018" |
id="path2862" |
inkscape:connector-type="polyline" |
sodipodi:nodetypes="cc" /> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.91970271px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline" |
d="M 492.1259,71.345894 L 419.6075,197.91784" |
id="path2864" |
inkscape:connector-type="polyline" |
sodipodi:nodetypes="cc" /> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.91970271px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline" |
d="M 505.39382,177.1853 L 446.14868,204.57747" |
id="path1541" |
inkscape:connector-type="polyline" |
sodipodi:nodetypes="cc" /> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.91970271px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" |
d="M 513.25469,74.390318 L 522.08923,126.40163" |
id="path1545" |
inkscape:connector-type="polyline" |
sodipodi:nodetypes="cc" /> |
<g |
id="g5393" |
transform="matrix(0.646269,-0.630337,0.368809,1.070218,40.0729,180.2928)"> |
<rect |
transform="matrix(0.766817,0.641865,-0.622443,0.782665,0,0)" |
y="-37.901913" |
x="313.03909" |
height="3.032896" |
width="114.65965" |
id="rect2480" |
style="fill:#1e1d70;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none" /> |
<path |
transform="matrix(0.578442,0.484185,-0.471951,0.593436,94.34901,-247.0761)" |
d="M 679.5,281.86221 L 669.75,287.49138 L 669.75,276.23305 L 679.5,281.86221 z " |
inkscape:randomized="0" |
inkscape:rounded="0" |
inkscape:flatsided="true" |
sodipodi:arg2="1.0471976" |
sodipodi:arg1="0" |
sodipodi:r2="3.25" |
sodipodi:r1="6.5" |
sodipodi:cy="281.86221" |
sodipodi:cx="673" |
sodipodi:sides="3" |
id="path2482" |
style="fill:#1e1d70;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none" |
sodipodi:type="star" /> |
</g> |
<g |
id="g2491" |
transform="matrix(0.919703,0,0,1.074106,-90.37394,-40.72516)"> |
<rect |
y="234.3622" |
x="633.5" |
height="68.5" |
width="109" |
id="rect2456" |
style="opacity:1;fill:#a3a3a3;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none" /> |
<rect |
y="236.3622" |
x="635.5" |
height="64.745003" |
width="104.5" |
id="rect2458" |
style="opacity:1;fill:#ffffff;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none" /> |
</g> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.91970271px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline" |
d="M 498.69562,218.82203 L 544.68076,218.82203" |
id="path2460" |
inkscape:connector-type="polyline" /> |
<text |
xml:space="preserve" |
style="font-size:8.60447502px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
x="559.17487" |
y="222.99515" |
id="text2462"><tspan |
sodipodi:role="line" |
id="tspan2464" |
x="559.17487" |
y="222.99515">IPC</tspan></text> |
<g |
id="g2474" |
transform="matrix(0.919703,0,0,0.919703,-90.37394,10.17627)"> |
<rect |
y="259.86218" |
x="640" |
height="4" |
width="47" |
id="rect2466" |
style="opacity:1;fill:#bc4343;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none" /> |
<path |
transform="translate(14,-20)" |
d="M 679.5,281.86221 L 669.75,287.49138 L 669.75,276.23305 L 679.5,281.86221 z " |
inkscape:randomized="0" |
inkscape:rounded="0" |
inkscape:flatsided="true" |
sodipodi:arg2="1.0471976" |
sodipodi:arg1="0" |
sodipodi:r2="3.25" |
sodipodi:r1="6.5" |
sodipodi:cy="281.86221" |
sodipodi:cx="673" |
sodipodi:sides="3" |
id="path2468" |
style="opacity:1;fill:#bc4343;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none" |
sodipodi:type="star" /> |
</g> |
<text |
xml:space="preserve" |
style="font-size:6.08623266px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
x="552.52423" |
y="252.46127" |
id="text2470"><tspan |
sodipodi:role="line" |
id="tspan2472" |
x="552.52423" |
y="252.46127">HW access</tspan></text> |
<text |
xml:space="preserve" |
style="font-size:7.34500504px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
x="553.98779" |
y="266.25476" |
id="text2485"><tspan |
sodipodi:role="line" |
id="tspan2487" |
x="553.98779" |
y="266.25476">Interrupt</tspan><tspan |
sodipodi:role="line" |
x="553.98779" |
y="275.43602" |
id="tspan2489">via IPC</tspan></text> |
<g |
id="g2589" |
transform="matrix(0.919703,0,0,0.919703,-91.20966,-7.492132)" |
style="fill:#000000;fill-opacity:1"> |
<rect |
y="259.86218" |
x="640" |
height="4" |
width="47" |
id="rect2591" |
style="opacity:1;fill:#000000;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none" /> |
<path |
transform="translate(14,-20)" |
d="M 679.5,281.86221 L 669.75,287.49138 L 669.75,276.23305 L 679.5,281.86221 z " |
inkscape:randomized="0" |
inkscape:rounded="0" |
inkscape:flatsided="true" |
sodipodi:arg2="1.0471976" |
sodipodi:arg1="0" |
sodipodi:r2="3.25" |
sodipodi:r1="6.5" |
sodipodi:cy="281.86221" |
sodipodi:cx="673" |
sodipodi:sides="3" |
id="path2593" |
style="opacity:1;fill:#000000;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none" |
sodipodi:type="star" /> |
</g> |
<text |
xml:space="preserve" |
style="font-size:7.34500504px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
x="555.22137" |
y="234.79085" |
id="text2595"><tspan |
sodipodi:role="line" |
x="555.22137" |
y="234.79085" |
id="tspan2599">Syscall</tspan></text> |
<g |
id="g3100" |
transform="matrix(0.919703,0,0,0.919703,-89.45424,27.5317)" |
style="fill:#1e1d70;fill-opacity:1"> |
<rect |
y="259.86218" |
x="640" |
height="4" |
width="47" |
id="rect3102" |
style="opacity:1;fill:#1e1d70;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none" /> |
<path |
transform="translate(14,-20)" |
d="M 679.5,281.86221 L 669.75,287.49138 L 669.75,276.23305 L 679.5,281.86221 z " |
inkscape:randomized="0" |
inkscape:rounded="0" |
inkscape:flatsided="true" |
sodipodi:arg2="1.0471976" |
sodipodi:arg1="0" |
sodipodi:r2="3.25" |
sodipodi:r1="6.5" |
sodipodi:cy="281.86221" |
sodipodi:cx="673" |
sodipodi:sides="3" |
id="path3104" |
style="opacity:1;fill:#1e1d70;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none" |
sodipodi:type="star" /> |
</g> |
<path |
sodipodi:type="arc" |
style="fill:#1e1d70;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none" |
id="path2743" |
sodipodi:cx="578" |
sodipodi:cy="277.36218" |
sodipodi:rx="55" |
sodipodi:ry="27.5" |
d="M 633 277.36218 A 55 27.5 0 1 1 523,277.36218 A 55 27.5 0 1 1 633 277.36218 z" |
transform="matrix(0.919703,0,0,0.919703,-145.1628,-166.394)" /> |
<text |
xml:space="preserve" |
style="font-size:11.03643227px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
x="342.41681" |
y="93.066521" |
id="text2745" |
inkscape:connector-avoid="true" |
sodipodi:linespacing="125%"><tspan |
sodipodi:role="line" |
id="tspan1673" |
x="342.41681" |
y="93.066521">Naming Service</tspan></text> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;marker-start:none;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
d="M 373.81224,203.86716 L 296.98431,154.28973" |
id="path4011" |
inkscape:connector-type="polyline" |
sodipodi:nodetypes="cc" /> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;marker-start:none;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
d="M 461,48.362183 L 341.86912,36.742048 L 293.93311,104.45334" |
id="path4015" |
inkscape:connector-type="polyline" |
sodipodi:nodetypes="ccc" /> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" |
d="M 385.46937,114.36218 L 398.18274,198.02374" |
id="path1575" |
inkscape:connector-type="polyline" |
sodipodi:nodetypes="cc" /> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;marker-start:none;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
d="M 340.58207,100.32309 L 299.12327,123.35949" |
id="path1675" |
inkscape:connector-type="polyline" |
sodipodi:nodetypes="cc" /> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;marker-start:none;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
d="M 460.36477,150.90797 L 300.13713,138.45358" |
id="path1693" |
inkscape:connector-type="polyline" |
sodipodi:nodetypes="cc" /> |
</g> |
</svg> |
/design/trunk/src/images/hash.svg |
---|
0,0 → 1,879 |
<?xml version="1.0" encoding="UTF-8" standalone="no"?> |
<!-- Created with Inkscape (http://www.inkscape.org/) --> |
<svg |
xmlns:dc="http://purl.org/dc/elements/1.1/" |
xmlns:cc="http://web.resource.org/cc/" |
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" |
xmlns:svg="http://www.w3.org/2000/svg" |
xmlns="http://www.w3.org/2000/svg" |
xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd" |
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" |
width="744.09448819" |
height="1052.3622047" |
id="svg4001" |
sodipodi:version="0.32" |
inkscape:version="0.43" |
sodipodi:docbase="/home/jermar/software/HelenOS-doc/design/src/images" |
sodipodi:docname="hash.svg"> |
<defs |
id="defs4003"> |
<marker |
inkscape:stockid="Arrow2Mstart" |
orient="auto" |
refY="0.0" |
refX="0.0" |
id="Arrow2Mstart" |
style="overflow:visible"> |
<path |
id="path3687" |
style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round" |
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " |
transform="scale(0.6) translate(-5,0)" /> |
</marker> |
<marker |
inkscape:stockid="Arrow1Lstart" |
orient="auto" |
refY="0.0" |
refX="0.0" |
id="Arrow1Lstart" |
style="overflow:visible"> |
<path |
id="path3697" |
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " |
style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none" |
transform="scale(0.8)" /> |
</marker> |
<marker |
inkscape:stockid="Arrow1Mstart" |
orient="auto" |
refY="0" |
refX="0" |
id="Arrow1Mstart" |
style="overflow:visible"> |
<path |
id="path15935" |
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z " |
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" |
transform="scale(0.4,0.4)" /> |
</marker> |
</defs> |
<sodipodi:namedview |
id="base" |
pagecolor="#ffffff" |
bordercolor="#666666" |
borderopacity="1.0" |
inkscape:pageopacity="0.0" |
inkscape:pageshadow="2" |
inkscape:zoom="1.8023945" |
inkscape:cx="231.97217" |
inkscape:cy="782.32851" |
inkscape:document-units="px" |
inkscape:current-layer="layer1" |
showgrid="true" |
inkscape:window-width="1273" |
inkscape:window-height="943" |
inkscape:window-x="0" |
inkscape:window-y="0" /> |
<metadata |
id="metadata4006"> |
<rdf:RDF> |
<cc:Work |
rdf:about=""> |
<dc:format>image/svg+xml</dc:format> |
<dc:type |
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> |
</cc:Work> |
</rdf:RDF> |
</metadata> |
<g |
inkscape:label="Layer 1" |
inkscape:groupmode="layer" |
id="layer1"> |
<g |
id="g4933" |
transform="matrix(0.590686,0,0,0.606171,9.823542,4.305978)"> |
<rect |
y="10.933611" |
x="24" |
height="708.42859" |
width="202" |
id="rect4046" |
style="fill:#000000;fill-opacity:1;stroke-width:1.125;stroke-miterlimit:4;stroke-dasharray:none" /> |
<rect |
y="13.362183" |
x="28" |
height="702" |
width="193" |
id="rect4931" |
style="fill:#ffffff;fill-opacity:1;stroke-width:1.125;stroke-miterlimit:4;stroke-dasharray:none" /> |
</g> |
<g |
id="g3933"> |
<g |
style="fill:#ffffff;fill-opacity:1" |
transform="matrix(0.79177,0,0,0.79177,20.05087,-90.64315)" |
id="g2555"> |
<rect |
ry="0" |
rx="0" |
y="160.36218" |
x="109.88416" |
height="28" |
width="28.539986" |
id="rect3093" |
style="fill:#ffffff;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" /> |
<rect |
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.55297828px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" |
id="rect2859" |
width="20.44702" |
height="21.71043" |
x="113.84792" |
y="163.37526" /> |
</g> |
<g |
transform="matrix(0.79177,0,0,0.79177,19.59493,-89.85138)" |
id="g2571"> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.19784665;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
d="M 157.56087,166.26929 C 147.80813,166.35335 141.09892,166.35335 141.09892,166.35335" |
id="path3130" |
sodipodi:nodetypes="cc" /> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.19784665;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
d="M 152.53829,182.34506 C 162.29103,182.261 169.00024,182.261 169.00024,182.261" |
id="path3984" |
sodipodi:nodetypes="cc" /> |
<g |
id="g2559" |
transform="translate(62.11584,-0.571429)"> |
<rect |
style="fill:#bc4343;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" |
id="rect2561" |
width="28.539986" |
height="28" |
x="109.88416" |
y="160.36218" |
rx="0" |
ry="0" /> |
<rect |
y="163.37526" |
x="113.84792" |
height="21.71043" |
width="20.44702" |
id="rect2563" |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.55297828px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> |
</g> |
</g> |
<g |
transform="matrix(0.79177,0,0,0.79177,0.59245,-175.3625)" |
id="g3721"> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.19784665;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
d="M 243.02088,272.84069 C 233.26814,272.92475 226.55893,272.92475 226.55893,272.92475" |
id="path2580" |
sodipodi:nodetypes="cc" /> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.19784665;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
d="M 237.9983,288.91646 C 247.75104,288.8324 254.46025,288.8324 254.46025,288.8324" |
id="path2582" |
sodipodi:nodetypes="cc" /> |
</g> |
<path |
sodipodi:nodetypes="cc" |
id="path2592" |
d="M 244.10992,40.664557 C 236.38799,40.731113 231.07584,40.731113 231.07584,40.731113" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.74018908;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<path |
sodipodi:nodetypes="cc" |
id="path2594" |
d="M 240.13319,53.392869 C 247.85512,53.326313 253.16727,53.326313 253.16727,53.326313" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.73991454;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<rect |
style="fill:#bc4343;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" |
id="rect2598" |
width="22.597105" |
height="22.169559" |
x="255.54236" |
y="35.535046" |
rx="0" |
ry="0" /> |
<rect |
y="37.920708" |
x="258.68073" |
height="17.189667" |
width="16.189337" |
id="rect2600" |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.0213716px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> |
<g |
transform="matrix(0.79177,0,0,0.79177,168.8119,-92.11358)" |
id="g2602"> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.19784665;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
d="M 157.56087,166.26929 C 147.80813,166.35335 141.09892,166.35335 141.09892,166.35335" |
id="path2604" |
sodipodi:nodetypes="cc" /> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.19784665;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
d="M 152.53829,182.34506 C 162.29103,182.261 169.00024,182.261 169.00024,182.261" |
id="path2606" |
sodipodi:nodetypes="cc" /> |
<g |
id="g2608" |
transform="translate(62.11584,-0.571429)"> |
<rect |
style="fill:#bc4343;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" |
id="rect2610" |
width="28.539986" |
height="28" |
x="109.88416" |
y="160.36218" |
rx="0" |
ry="0" /> |
<rect |
y="163.37526" |
x="113.84792" |
height="21.71043" |
width="20.44702" |
id="rect2612" |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.55297828px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> |
</g> |
</g> |
<g |
id="g3923"> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.69563103;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#Arrow2Mstart)" |
d="M 335.07701,52.095427 L 349.26484,52.095427 L 349.26484,52.095427 L 349.26484,69.514367 L 84.847854,69.514367 L 84.847854,52.887197 L 105.01541,52.887197" |
id="path3508" |
sodipodi:nodetypes="ccccccc" /> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.6934675;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#Arrow2Mstart)" |
d="M 99.014215,43.627873 L 85.410647,43.627873 L 85.410647,43.627873 L 85.410647,26.208933 L 349.1533,26.208933 L 349.1533,42.836103 L 329.0216,42.836103" |
id="path3712" |
sodipodi:nodetypes="ccccccc" /> |
</g> |
<text |
transform="scale(0.955569,1.046497)" |
sodipodi:linespacing="125%" |
id="text3725" |
y="47.574963" |
x="214.09045" |
style="font-size:14.30800819px;font-style:normal;font-weight:normal;line-height:125%;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
style="font-size:23.84668922px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Bitstream Vera Sans" |
y="47.574963" |
x="214.09045" |
id="tspan3727" |
sodipodi:role="line">...</tspan></text> |
</g> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.67557204;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
d="M 80.705862,11.799244 L 80.705862,154.38593" |
id="path4943" |
sodipodi:nodetypes="cc" /> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.45533288;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
d="M 26.826825,82.65977 L 141.56765,82.65977 L 141.56765,82.65977" |
id="path4945" /> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.45003903;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
d="M 26.32322,153.40776 L 140.23081,153.40776 L 140.23081,153.40776" |
id="path4947" /> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.45003903;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
d="M 26.323222,296.03175 L 140.23081,296.03175 L 140.23081,296.03175" |
id="path4951" /> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.45003903;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
d="M 26.497083,367.82677 L 140.40468,367.82677 L 140.40468,367.82677" |
id="path4953" /> |
<text |
xml:space="preserve" |
style="font-size:36.34477615px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
x="64.58226" |
y="225.01509" |
id="text5017"><tspan |
sodipodi:role="line" |
id="tspan5019" |
x="64.58226" |
y="225.01509">...</tspan></text> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.67557204;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
d="M 80.952964,296.60033 L 80.952964,439.18702" |
id="path5021" |
sodipodi:nodetypes="cc" /> |
<text |
xml:space="preserve" |
style="font-size:7.08823204px;font-style:normal;font-weight:normal;line-height:125%;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
x="51.325001" |
y="40.628769" |
id="text5147" |
sodipodi:linespacing="125%"><tspan |
sodipodi:role="line" |
id="tspan5149" |
x="51.325" |
y="40.628769" |
style="font-size:11.81371975px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;font-family:Bitstream Vera Sans">HASH</tspan><tspan |
sodipodi:role="line" |
x="51.325001" |
y="55.395919" |
id="tspan5151" |
style="font-size:11.81371975px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;font-family:Bitstream Vera Sans">KEY</tspan></text> |
<text |
xml:space="preserve" |
style="font-size:7.08823204px;font-style:normal;font-weight:normal;line-height:125%;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
x="51.325001" |
y="112.69246" |
id="text5153" |
sodipodi:linespacing="125%"><tspan |
sodipodi:role="line" |
id="tspan5155" |
x="51.325" |
y="112.69246" |
style="font-size:11.81371975px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;font-family:Bitstream Vera Sans">HASH</tspan><tspan |
sodipodi:role="line" |
x="51.325001" |
y="127.45961" |
id="tspan5157" |
style="font-size:11.81371975px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;font-family:Bitstream Vera Sans">KEY</tspan></text> |
<text |
xml:space="preserve" |
style="font-size:7.08823204px;font-style:normal;font-weight:normal;line-height:125%;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
x="54.562237" |
y="327.79446" |
id="text5159" |
sodipodi:linespacing="125%"><tspan |
sodipodi:role="line" |
id="tspan5161" |
x="54.562236" |
y="327.79446" |
style="font-size:11.81371975px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;font-family:Bitstream Vera Sans">HASH</tspan><tspan |
sodipodi:role="line" |
x="54.562237" |
y="342.56161" |
id="tspan5163" |
style="font-size:11.81371975px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;font-family:Bitstream Vera Sans">KEY</tspan></text> |
<text |
xml:space="preserve" |
style="font-size:7.08823204px;font-style:normal;font-weight:normal;line-height:125%;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
x="53.687744" |
y="398.58447" |
id="text5165" |
sodipodi:linespacing="125%"><tspan |
sodipodi:role="line" |
id="tspan5167" |
x="53.687743" |
y="398.58447" |
style="font-size:11.81371975px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;font-family:Bitstream Vera Sans">HASH</tspan><tspan |
sodipodi:role="line" |
x="53.687745" |
y="413.35162" |
id="tspan5169" |
style="font-size:11.81371975px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;font-family:Bitstream Vera Sans">KEY</tspan></text> |
<text |
xml:space="preserve" |
style="font-size:7.08823204px;font-style:normal;font-weight:normal;line-height:125%;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
x="294.53418" |
y="222.73674" |
id="text5171" |
sodipodi:linespacing="125%"><tspan |
sodipodi:role="line" |
id="tspan5173" |
x="294.53418" |
y="222.73674" |
style="font-size:11.81371975px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Bitstream Vera Sans">Collision chains (lists)</tspan></text> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.59068602px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" |
d="M 352.42142,66.711248 L 377.06147,206.53506" |
id="path5175" |
sodipodi:nodetypes="cc" /> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.59068602px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" |
d="M 303.39448,142.57221 C 368.36994,209.06657 368.36994,209.06657 368.36994,209.06657" |
id="path5177" /> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.59068602px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" |
d="M 369.29817,227.96853 L 289.80871,308.89251 L 289.80871,308.89251 L 289.80871,308.89251 L 289.80871,308.89251" |
id="path5179" /> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.59068602px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" |
d="M 381.11189,228.55921 L 352.42142,380.36551" |
id="path5181" /> |
<g |
id="g3962" |
transform="translate(0.445144,69)"> |
<g |
style="fill:#ffffff;fill-opacity:1" |
transform="matrix(0.79177,0,0,0.79177,20.05087,-90.64315)" |
id="g3964"> |
<rect |
ry="0" |
rx="0" |
y="160.36218" |
x="109.88416" |
height="28" |
width="28.539986" |
id="rect3966" |
style="fill:#ffffff;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" /> |
<rect |
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.55297828px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" |
id="rect3968" |
width="20.44702" |
height="21.71043" |
x="113.84792" |
y="163.37526" /> |
</g> |
<g |
transform="matrix(0.79177,0,0,0.79177,19.59493,-89.85138)" |
id="g3970"> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.19784665;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
d="M 157.56087,166.26929 C 147.80813,166.35335 141.09892,166.35335 141.09892,166.35335" |
id="path3972" |
sodipodi:nodetypes="cc" /> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.19784665;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
d="M 152.53829,182.34506 C 162.29103,182.261 169.00024,182.261 169.00024,182.261" |
id="path3974" |
sodipodi:nodetypes="cc" /> |
<g |
id="g3976" |
transform="translate(62.11584,-0.571429)"> |
<rect |
style="fill:#bc4343;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" |
id="rect3978" |
width="28.539986" |
height="28" |
x="109.88416" |
y="160.36218" |
rx="0" |
ry="0" /> |
<rect |
y="163.37526" |
x="113.84792" |
height="21.71043" |
width="20.44702" |
id="rect3980" |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.55297828px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> |
</g> |
</g> |
<g |
transform="matrix(0.79177,0,0,0.79177,0.59245,-175.3625)" |
id="g3982"> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.19784665;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
d="M 243.02088,272.84069 C 233.26814,272.92475 226.55893,272.92475 226.55893,272.92475" |
id="path3985" |
sodipodi:nodetypes="cc" /> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.19784665;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
d="M 237.9983,288.91646 C 247.75104,288.8324 254.46025,288.8324 254.46025,288.8324" |
id="path3987" |
sodipodi:nodetypes="cc" /> |
</g> |
<path |
sodipodi:nodetypes="cc" |
id="path3989" |
d="M 244.10992,40.664557 C 236.38799,40.731113 231.07584,40.731113 231.07584,40.731113" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.74018908;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<path |
sodipodi:nodetypes="cc" |
id="path3991" |
d="M 240.13319,53.392869 C 247.85512,53.326313 253.16727,53.326313 253.16727,53.326313" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.73991454;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<rect |
style="fill:#bc4343;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" |
id="rect3993" |
width="22.597105" |
height="22.169559" |
x="255.54236" |
y="35.535046" |
rx="0" |
ry="0" /> |
<rect |
y="37.920708" |
x="258.68073" |
height="17.189667" |
width="16.189337" |
id="rect3995" |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.0213716px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> |
<g |
transform="matrix(0.79177,0,0,0.79177,168.8119,-92.11358)" |
id="g3997"> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.19784665;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
d="M 157.56087,166.26929 C 147.80813,166.35335 141.09892,166.35335 141.09892,166.35335" |
id="path3999" |
sodipodi:nodetypes="cc" /> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.19784665;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
d="M 152.53829,182.34506 C 162.29103,182.261 169.00024,182.261 169.00024,182.261" |
id="path4001" |
sodipodi:nodetypes="cc" /> |
<g |
id="g4003" |
transform="translate(62.11584,-0.571429)"> |
<rect |
style="fill:#bc4343;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" |
id="rect4005" |
width="28.539986" |
height="28" |
x="109.88416" |
y="160.36218" |
rx="0" |
ry="0" /> |
<rect |
y="163.37526" |
x="113.84792" |
height="21.71043" |
width="20.44702" |
id="rect4007" |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.55297828px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> |
</g> |
</g> |
<g |
id="g4009"> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.69563103;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow2Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
d="M 335.07701,52.095427 L 349.26484,52.095427 L 349.26484,52.095427 L 349.26484,69.514367 L 84.847854,69.514367 L 84.847854,52.887197 L 105.01541,52.887197" |
id="path4011" |
sodipodi:nodetypes="ccccccc" /> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.6934675;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow2Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
d="M 99.014215,43.627873 L 85.410647,43.627873 L 85.410647,43.627873 L 85.410647,26.208933 L 349.1533,26.208933 L 349.1533,42.836103 L 329.0216,42.836103" |
id="path4013" |
sodipodi:nodetypes="ccccccc" /> |
</g> |
<text |
transform="scale(0.955569,1.046497)" |
sodipodi:linespacing="125%" |
id="text4015" |
y="47.574963" |
x="214.09045" |
style="font-size:14.30800819px;font-style:normal;font-weight:normal;line-height:125%;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
style="font-size:23.84668922px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Bitstream Vera Sans" |
y="47.574963" |
x="214.09045" |
id="tspan4017" |
sodipodi:role="line">...</tspan></text> |
</g> |
<g |
id="g4019" |
transform="translate(0.999962,285)"> |
<g |
style="fill:#ffffff;fill-opacity:1" |
transform="matrix(0.79177,0,0,0.79177,20.05087,-90.64315)" |
id="g4021"> |
<rect |
ry="0" |
rx="0" |
y="160.36218" |
x="109.88416" |
height="28" |
width="28.539986" |
id="rect4023" |
style="fill:#ffffff;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" /> |
<rect |
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.55297828px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" |
id="rect4025" |
width="20.44702" |
height="21.71043" |
x="113.84792" |
y="163.37526" /> |
</g> |
<g |
transform="matrix(0.79177,0,0,0.79177,19.59493,-89.85138)" |
id="g4027"> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.19784665;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
d="M 157.56087,166.26929 C 147.80813,166.35335 141.09892,166.35335 141.09892,166.35335" |
id="path4029" |
sodipodi:nodetypes="cc" /> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.19784665;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
d="M 152.53829,182.34506 C 162.29103,182.261 169.00024,182.261 169.00024,182.261" |
id="path4031" |
sodipodi:nodetypes="cc" /> |
<g |
id="g4033" |
transform="translate(62.11584,-0.571429)"> |
<rect |
style="fill:#bc4343;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" |
id="rect4035" |
width="28.539986" |
height="28" |
x="109.88416" |
y="160.36218" |
rx="0" |
ry="0" /> |
<rect |
y="163.37526" |
x="113.84792" |
height="21.71043" |
width="20.44702" |
id="rect4037" |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.55297828px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> |
</g> |
</g> |
<g |
transform="matrix(0.79177,0,0,0.79177,0.59245,-175.3625)" |
id="g4039"> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.19784665;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
d="M 243.02088,272.84069 C 233.26814,272.92475 226.55893,272.92475 226.55893,272.92475" |
id="path4041" |
sodipodi:nodetypes="cc" /> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.19784665;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
d="M 237.9983,288.91646 C 247.75104,288.8324 254.46025,288.8324 254.46025,288.8324" |
id="path4043" |
sodipodi:nodetypes="cc" /> |
</g> |
<path |
sodipodi:nodetypes="cc" |
id="path4045" |
d="M 244.10992,40.664557 C 236.38799,40.731113 231.07584,40.731113 231.07584,40.731113" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.74018908;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<path |
sodipodi:nodetypes="cc" |
id="path4047" |
d="M 240.13319,53.392869 C 247.85512,53.326313 253.16727,53.326313 253.16727,53.326313" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.73991454;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<rect |
style="fill:#bc4343;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" |
id="rect4049" |
width="22.597105" |
height="22.169559" |
x="255.54236" |
y="35.535046" |
rx="0" |
ry="0" /> |
<rect |
y="37.920708" |
x="258.68073" |
height="17.189667" |
width="16.189337" |
id="rect4051" |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.0213716px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> |
<g |
transform="matrix(0.79177,0,0,0.79177,168.8119,-92.11358)" |
id="g4053"> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.19784665;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
d="M 157.56087,166.26929 C 147.80813,166.35335 141.09892,166.35335 141.09892,166.35335" |
id="path4055" |
sodipodi:nodetypes="cc" /> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.19784665;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
d="M 152.53829,182.34506 C 162.29103,182.261 169.00024,182.261 169.00024,182.261" |
id="path4057" |
sodipodi:nodetypes="cc" /> |
<g |
id="g4059" |
transform="translate(62.11584,-0.571429)"> |
<rect |
style="fill:#bc4343;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" |
id="rect4061" |
width="28.539986" |
height="28" |
x="109.88416" |
y="160.36218" |
rx="0" |
ry="0" /> |
<rect |
y="163.37526" |
x="113.84792" |
height="21.71043" |
width="20.44702" |
id="rect4063" |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.55297828px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> |
</g> |
</g> |
<g |
id="g4065"> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.69563103;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow2Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
d="M 335.07701,52.095427 L 349.26484,52.095427 L 349.26484,52.095427 L 349.26484,69.514367 L 84.847854,69.514367 L 84.847854,52.887197 L 105.01541,52.887197" |
id="path4067" |
sodipodi:nodetypes="ccccccc" /> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.6934675;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow2Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
d="M 99.014215,43.627873 L 85.410647,43.627873 L 85.410647,43.627873 L 85.410647,26.208933 L 349.1533,26.208933 L 349.1533,42.836103 L 329.0216,42.836103" |
id="path4069" |
sodipodi:nodetypes="ccccccc" /> |
</g> |
<text |
transform="scale(0.955569,1.046497)" |
sodipodi:linespacing="125%" |
id="text4071" |
y="47.574963" |
x="214.09045" |
style="font-size:14.30800819px;font-style:normal;font-weight:normal;line-height:125%;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
style="font-size:23.84668922px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Bitstream Vera Sans" |
y="47.574963" |
x="214.09045" |
id="tspan4073" |
sodipodi:role="line">...</tspan></text> |
</g> |
<g |
id="g4075" |
transform="translate(0.432115,356.4731)"> |
<g |
style="fill:#ffffff;fill-opacity:1" |
transform="matrix(0.79177,0,0,0.79177,20.05087,-90.64315)" |
id="g4077"> |
<rect |
ry="0" |
rx="0" |
y="160.36218" |
x="109.88416" |
height="28" |
width="28.539986" |
id="rect4079" |
style="fill:#ffffff;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" /> |
<rect |
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.55297828px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" |
id="rect4081" |
width="20.44702" |
height="21.71043" |
x="113.84792" |
y="163.37526" /> |
</g> |
<g |
transform="matrix(0.79177,0,0,0.79177,19.59493,-89.85138)" |
id="g4083"> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.19784665;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
d="M 157.56087,166.26929 C 147.80813,166.35335 141.09892,166.35335 141.09892,166.35335" |
id="path4085" |
sodipodi:nodetypes="cc" /> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.19784665;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
d="M 152.53829,182.34506 C 162.29103,182.261 169.00024,182.261 169.00024,182.261" |
id="path4087" |
sodipodi:nodetypes="cc" /> |
<g |
id="g4089" |
transform="translate(62.11584,-0.571429)"> |
<rect |
style="fill:#bc4343;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" |
id="rect4091" |
width="28.539986" |
height="28" |
x="109.88416" |
y="160.36218" |
rx="0" |
ry="0" /> |
<rect |
y="163.37526" |
x="113.84792" |
height="21.71043" |
width="20.44702" |
id="rect4093" |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.55297828px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> |
</g> |
</g> |
<g |
transform="matrix(0.79177,0,0,0.79177,0.59245,-175.3625)" |
id="g4095"> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.19784665;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
d="M 243.02088,272.84069 C 233.26814,272.92475 226.55893,272.92475 226.55893,272.92475" |
id="path4097" |
sodipodi:nodetypes="cc" /> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.19784665;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
d="M 237.9983,288.91646 C 247.75104,288.8324 254.46025,288.8324 254.46025,288.8324" |
id="path4099" |
sodipodi:nodetypes="cc" /> |
</g> |
<path |
sodipodi:nodetypes="cc" |
id="path4101" |
d="M 244.10992,40.664557 C 236.38799,40.731113 231.07584,40.731113 231.07584,40.731113" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.74018908;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<path |
sodipodi:nodetypes="cc" |
id="path4103" |
d="M 240.13319,53.392869 C 247.85512,53.326313 253.16727,53.326313 253.16727,53.326313" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.73991454;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<rect |
style="fill:#bc4343;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" |
id="rect4105" |
width="22.597105" |
height="22.169559" |
x="255.54236" |
y="35.535046" |
rx="0" |
ry="0" /> |
<rect |
y="37.920708" |
x="258.68073" |
height="17.189667" |
width="16.189337" |
id="rect4107" |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.0213716px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> |
<g |
transform="matrix(0.79177,0,0,0.79177,168.8119,-92.11358)" |
id="g4109"> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.19784665;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
d="M 157.56087,166.26929 C 147.80813,166.35335 141.09892,166.35335 141.09892,166.35335" |
id="path4111" |
sodipodi:nodetypes="cc" /> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.19784665;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
d="M 152.53829,182.34506 C 162.29103,182.261 169.00024,182.261 169.00024,182.261" |
id="path4113" |
sodipodi:nodetypes="cc" /> |
<g |
id="g4115" |
transform="translate(62.11584,-0.571429)"> |
<rect |
style="fill:#bc4343;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" |
id="rect4117" |
width="28.539986" |
height="28" |
x="109.88416" |
y="160.36218" |
rx="0" |
ry="0" /> |
<rect |
y="163.37526" |
x="113.84792" |
height="21.71043" |
width="20.44702" |
id="rect4119" |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.55297828px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> |
</g> |
</g> |
<g |
id="g4121"> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.69563103;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow2Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
d="M 335.07701,52.095427 L 349.26484,52.095427 L 349.26484,52.095427 L 349.26484,69.514367 L 84.847854,69.514367 L 84.847854,52.887197 L 105.01541,52.887197" |
id="path4123" |
sodipodi:nodetypes="ccccccc" /> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.6934675;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow2Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
d="M 99.014215,43.627873 L 85.410647,43.627873 L 85.410647,43.627873 L 85.410647,26.208933 L 349.1533,26.208933 L 349.1533,42.836103 L 329.0216,42.836103" |
id="path4125" |
sodipodi:nodetypes="ccccccc" /> |
</g> |
<text |
transform="scale(0.955569,1.046497)" |
sodipodi:linespacing="125%" |
id="text4127" |
y="47.574963" |
x="214.09045" |
style="font-size:14.30800819px;font-style:normal;font-weight:normal;line-height:125%;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
style="font-size:23.84668922px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Bitstream Vera Sans" |
y="47.574963" |
x="214.09045" |
id="tspan4129" |
sodipodi:role="line">...</tspan></text> |
</g> |
</g> |
</svg> |
/design/trunk/src/images/list.svg |
---|
0,0 → 1,276 |
<?xml version="1.0" encoding="UTF-8" standalone="no"?> |
<!-- Created with Inkscape (http://www.inkscape.org/) --> |
<svg |
xmlns:dc="http://purl.org/dc/elements/1.1/" |
xmlns:cc="http://web.resource.org/cc/" |
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" |
xmlns:svg="http://www.w3.org/2000/svg" |
xmlns="http://www.w3.org/2000/svg" |
xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd" |
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" |
width="744.09448819" |
height="1052.3622047" |
id="svg2487" |
sodipodi:version="0.32" |
inkscape:version="0.43" |
sodipodi:docbase="/home/jermar/software/HelenOS-doc/design/src/images" |
sodipodi:docname="list.svg"> |
<defs |
id="defs2489"> |
<marker |
inkscape:stockid="Arrow2Lend" |
orient="auto" |
refY="0.0" |
refX="0.0" |
id="Arrow2Lend" |
style="overflow:visible;"> |
<path |
id="path3690" |
style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" |
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " |
transform="scale(1.1) rotate(180) translate(-5,0)" /> |
</marker> |
<marker |
inkscape:stockid="Arrow2Mstart" |
orient="auto" |
refY="0.0" |
refX="0.0" |
id="Arrow2Mstart" |
style="overflow:visible"> |
<path |
id="path3687" |
style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round" |
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " |
transform="scale(0.6) translate(-5,0)" /> |
</marker> |
<marker |
inkscape:stockid="Arrow2Lstart" |
orient="auto" |
refY="0.0" |
refX="0.0" |
id="Arrow2Lstart" |
style="overflow:visible"> |
<path |
id="path3693" |
style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round" |
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " |
transform="scale(1.1) translate(-5,0)" /> |
</marker> |
<marker |
inkscape:stockid="Arrow1Lstart" |
orient="auto" |
refY="0.0" |
refX="0.0" |
id="Arrow1Lstart" |
style="overflow:visible"> |
<path |
id="path3697" |
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " |
style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none" |
transform="scale(0.8)" /> |
</marker> |
<marker |
inkscape:stockid="Arrow1Mstart" |
orient="auto" |
refY="0" |
refX="0" |
id="Arrow1Mstart" |
style="overflow:visible"> |
<path |
id="path15935" |
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z " |
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" |
transform="scale(0.4,0.4)" /> |
</marker> |
</defs> |
<sodipodi:namedview |
id="base" |
pagecolor="#ffffff" |
bordercolor="#666666" |
borderopacity="1.0" |
inkscape:pageopacity="0.0" |
inkscape:pageshadow="2" |
inkscape:zoom="2.3883833" |
inkscape:cx="283.25696" |
inkscape:cy="956.41252" |
inkscape:document-units="px" |
inkscape:current-layer="layer1" |
showgrid="true" |
showguides="true" |
inkscape:guide-bbox="true" |
inkscape:window-width="1170" |
inkscape:window-height="891" |
inkscape:window-x="0" |
inkscape:window-y="0" /> |
<metadata |
id="metadata2492"> |
<rdf:RDF> |
<cc:Work |
rdf:about=""> |
<dc:format>image/svg+xml</dc:format> |
<dc:type |
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> |
</cc:Work> |
</rdf:RDF> |
</metadata> |
<g |
inkscape:label="Layer 1" |
inkscape:groupmode="layer" |
id="layer1"> |
<g |
id="g4228"> |
<g |
style="fill:#ffffff;fill-opacity:1" |
transform="matrix(1.340424,0,0,1.340424,-50.26244,-139.0362)" |
id="g2555"> |
<rect |
ry="0" |
rx="0" |
y="160.36218" |
x="109.88416" |
height="28" |
width="28.539986" |
id="rect3093" |
style="fill:#ffffff;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" /> |
<rect |
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.55297828px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" |
id="rect2859" |
width="20.44702" |
height="21.71043" |
x="113.84792" |
y="163.37526" /> |
</g> |
<g |
transform="matrix(1.340424,0,0,1.340424,-51.03432,-137.6958)" |
id="g2571"> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.19784665;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
d="M 157.56087,166.26929 C 147.80813,166.35335 141.09892,166.35335 141.09892,166.35335" |
id="path3130" |
sodipodi:nodetypes="cc" /> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.19784665;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
d="M 152.53829,182.34506 C 162.29103,182.261 169.00024,182.261 169.00024,182.261" |
id="path3984" |
sodipodi:nodetypes="cc" /> |
<g |
id="g2559" |
transform="translate(62.11584,-0.571429)"> |
<rect |
style="fill:#bc4343;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" |
id="rect2561" |
width="28.539986" |
height="28" |
x="109.88416" |
y="160.36218" |
rx="0" |
ry="0" /> |
<rect |
y="163.37526" |
x="113.84792" |
height="21.71043" |
width="20.44702" |
id="rect2563" |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.55297828px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> |
</g> |
</g> |
<g |
transform="matrix(1.340424,0,0,1.340424,-83.2045,-282.4616)" |
id="g3721"> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.19784665;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
d="M 243.02088,272.84069 C 233.26814,272.92475 226.55893,272.92475 226.55893,272.92475" |
id="path2580" |
sodipodi:nodetypes="cc" /> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.19784665;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
d="M 237.9983,288.91646 C 247.75104,288.8324 254.46025,288.8324 254.46025,288.8324" |
id="path2582" |
sodipodi:nodetypes="cc" /> |
</g> |
<path |
sodipodi:nodetypes="cc" |
id="path2592" |
d="M 329.05748,83.260657 C 315.98467,83.373333 306.99148,83.373333 306.99148,83.373333" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.94604635;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<path |
sodipodi:nodetypes="cc" |
id="path2594" |
d="M 322.32509,104.80901 C 335.3979,104.69633 344.39108,104.69633 344.39108,104.69633" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.94558167;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<rect |
style="fill:#bc4343;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" |
id="rect2598" |
width="38.25568" |
height="37.531872" |
x="348.41199" |
y="74.576668" |
rx="0" |
ry="0" /> |
<rect |
y="78.615471" |
x="353.7251" |
height="29.101181" |
width="27.407677" |
id="rect2600" |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:3.42207336px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> |
<g |
transform="matrix(1.340424,0,0,1.340424,201.582,-141.5256)" |
id="g2602"> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.19784665;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
d="M 157.56087,166.26929 C 147.80813,166.35335 141.09892,166.35335 141.09892,166.35335" |
id="path2604" |
sodipodi:nodetypes="cc" /> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.19784665;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
d="M 152.53829,182.34506 C 162.29103,182.261 169.00024,182.261 169.00024,182.261" |
id="path2606" |
sodipodi:nodetypes="cc" /> |
<g |
id="g2608" |
transform="translate(62.11584,-0.571429)"> |
<rect |
style="fill:#bc4343;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" |
id="rect2610" |
width="28.539986" |
height="28" |
x="109.88416" |
y="160.36218" |
rx="0" |
ry="0" /> |
<rect |
y="163.37526" |
x="113.84792" |
height="21.71043" |
width="20.44702" |
id="rect2612" |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.55297828px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> |
</g> |
</g> |
<path |
sodipodi:nodetypes="ccccccc" |
id="path3508" |
d="M 483.51152,102.61249 L 507.07863,102.61249 L 507.07863,102.61249 L 507.07863,132.10182 L 59.435284,132.10182 L 59.435284,103.95291 L 93.713149,104.3716" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.87061095;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:none;marker-start:url(#Arrow2Mstart)" /> |
<path |
sodipodi:nodetypes="ccccccc" |
id="path3712" |
d="M 84.785395,89.703703 L 60.328834,89.28501 L 60.328834,89.28501 L 60.328834,59.795682 L 506.83105,59.795682 L 506.83105,87.944586 L 471.7765,88.363279" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.8669498;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#Arrow2Mstart)" /> |
<text |
transform="scale(0.955569,1.046497)" |
sodipodi:linespacing="125%" |
id="text3725" |
y="94.319038" |
x="274.32077" |
style="font-size:24.22269058px;font-style:normal;font-weight:normal;line-height:125%;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
style="font-size:40.37117004px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Bitstream Vera Sans" |
y="94.319038" |
x="274.32077" |
id="tspan3727" |
sodipodi:role="line">...</tspan></text> |
</g> |
</g> |
</svg> |
/design/trunk/src/images/mm_pt.svg |
---|
0,0 → 1,773 |
<?xml version="1.0" encoding="UTF-8" standalone="no"?> |
<!-- Created with Inkscape (http://www.inkscape.org/) --> |
<svg |
xmlns:dc="http://purl.org/dc/elements/1.1/" |
xmlns:cc="http://web.resource.org/cc/" |
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" |
xmlns:svg="http://www.w3.org/2000/svg" |
xmlns="http://www.w3.org/2000/svg" |
xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd" |
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" |
width="744.09448819" |
height="1052.3622047" |
id="svg4319" |
sodipodi:version="0.32" |
inkscape:version="0.43" |
sodipodi:docbase="/home/jermar/software/HelenOS-doc/design/src/images" |
sodipodi:docname="mm_pt.svg"> |
<defs |
id="defs4321"> |
<marker |
inkscape:stockid="Arrow2Lend" |
orient="auto" |
refY="0.0" |
refX="0.0" |
id="Arrow2Lend" |
style="overflow:visible;"> |
<path |
id="path2632" |
style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" |
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " |
transform="scale(1.1) rotate(180) translate(-5,0)" /> |
</marker> |
<marker |
inkscape:stockid="Arrow1Lend" |
orient="auto" |
refY="0.0" |
refX="0.0" |
id="Arrow1Lend" |
style="overflow:visible;"> |
<path |
id="path2650" |
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " |
style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" |
transform="scale(0.8) rotate(180)" /> |
</marker> |
</defs> |
<sodipodi:namedview |
id="base" |
pagecolor="#ffffff" |
bordercolor="#666666" |
borderopacity="1.0" |
inkscape:pageopacity="0.0" |
inkscape:pageshadow="2" |
inkscape:zoom="0.73548823" |
inkscape:cx="372.04724" |
inkscape:cy="526.18109" |
inkscape:document-units="px" |
inkscape:current-layer="layer1" |
showgrid="true" |
inkscape:window-width="1273" |
inkscape:window-height="943" |
inkscape:window-x="0" |
inkscape:window-y="0" /> |
<metadata |
id="metadata4324"> |
<rdf:RDF> |
<cc:Work |
rdf:about=""> |
<dc:format>image/svg+xml</dc:format> |
<dc:type |
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> |
</cc:Work> |
</rdf:RDF> |
</metadata> |
<g |
inkscape:label="Layer 1" |
inkscape:groupmode="layer" |
id="layer1"> |
<rect |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.08640599;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect4327" |
width="54.280598" |
height="12.666497" |
x="17.776117" |
y="154.5551" /> |
<rect |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.08640599;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect4329" |
width="54.280598" |
height="12.666497" |
x="17.776117" |
y="94.585487" /> |
<rect |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.08640599;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect4331" |
width="54.280598" |
height="12.666497" |
x="17.776117" |
y="82.41774" /> |
<rect |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.08640599;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect4333" |
width="54.280598" |
height="12.666497" |
x="17.776117" |
y="70.096893" /> |
<rect |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.08640599;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect4335" |
width="53.954674" |
height="35.806946" |
x="17.776117" |
y="106.75323" /> |
<rect |
style="fill:#1e1d70;fill-opacity:1;stroke:#000000;stroke-width:1.08640599;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect4337" |
width="54.280598" |
height="12.666497" |
x="17.776117" |
y="142.38736" /> |
<text |
xml:space="preserve" |
style="font-size:23.1889782px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
x="32.976414" |
y="127.36218" |
id="text4339"><tspan |
sodipodi:role="line" |
id="tspan4341" |
x="32.976414" |
y="127.36218">...</tspan></text> |
<g |
id="g4353" |
transform="matrix(0.869125,0,0,0.869125,-51.42792,-29.39789)"> |
<rect |
y="211.16333" |
x="183.92068" |
height="14.573853" |
width="62.454315" |
id="rect4355" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="142.16333" |
x="183.92068" |
height="14.573853" |
width="62.454315" |
id="rect4357" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="128.16333" |
x="183.92068" |
height="14.573853" |
width="62.454315" |
id="rect4359" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="113.98718" |
x="183.92068" |
height="14.573853" |
width="62.454315" |
id="rect4361" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="156.16333" |
x="183.92068" |
height="41.198853" |
width="62.079315" |
id="rect4363" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="197.16333" |
x="183.92068" |
height="14.573853" |
width="62.454315" |
id="rect4365" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<text |
id="text4367" |
y="179.87563" |
x="201.40988" |
style="font-size:26.68083763px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="179.87563" |
x="201.40988" |
id="tspan4369" |
sodipodi:role="line">...</tspan></text> |
</g> |
<g |
id="g4371" |
transform="matrix(0.869125,0,0,0.869125,-51.68492,77.06103)"> |
<rect |
y="211.16333" |
x="183.92068" |
height="14.573853" |
width="62.454315" |
id="rect4373" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="142.16333" |
x="183.92068" |
height="14.573853" |
width="62.454315" |
id="rect4375" |
style="fill:#1e1d70;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="128.16333" |
x="183.92068" |
height="14.573853" |
width="62.454315" |
id="rect4377" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="113.98718" |
x="183.92068" |
height="14.573853" |
width="62.454315" |
id="rect4379" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="156.16333" |
x="183.92068" |
height="41.198853" |
width="62.079315" |
id="rect4381" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="197.16333" |
x="183.92068" |
height="14.573853" |
width="62.454315" |
id="rect4383" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<text |
id="text4385" |
y="179.87563" |
x="201.40988" |
style="font-size:26.68083763px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="179.87563" |
x="201.40988" |
id="tspan4387" |
sodipodi:role="line">...</tspan></text> |
</g> |
<g |
id="g4389" |
transform="matrix(0.869125,0,0,0.869125,39.83019,-30.26702)"> |
<rect |
y="211.16333" |
x="183.92068" |
height="14.573853" |
width="62.454315" |
id="rect4391" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="142.16333" |
x="183.92068" |
height="14.573853" |
width="62.454315" |
id="rect4393" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="128.16333" |
x="183.92068" |
height="14.573853" |
width="62.454315" |
id="rect4395" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="113.98718" |
x="183.92068" |
height="14.573853" |
width="62.454315" |
id="rect4397" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="156.16333" |
x="183.92068" |
height="41.198853" |
width="62.079315" |
id="rect4399" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="197.16333" |
x="183.92068" |
height="14.573853" |
width="62.454315" |
id="rect4401" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<text |
id="text4403" |
y="179.87563" |
x="201.40988" |
style="font-size:26.68083763px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="179.87563" |
x="201.40988" |
id="tspan4405" |
sodipodi:role="line">...</tspan></text> |
</g> |
<g |
id="g4407" |
transform="matrix(0.869125,0,0,0.869125,39.83019,78.37359)"> |
<rect |
y="211.16333" |
x="183.92068" |
height="14.573853" |
width="62.454315" |
id="rect4409" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="142.16333" |
x="183.92068" |
height="14.573853" |
width="62.454315" |
id="rect4411" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="128.16333" |
x="183.92068" |
height="14.573853" |
width="62.454315" |
id="rect4413" |
style="fill:#1e1d70;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="113.98718" |
x="183.92068" |
height="14.573853" |
width="62.454315" |
id="rect4415" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="156.16333" |
x="183.92068" |
height="41.198853" |
width="62.079315" |
id="rect4417" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="197.16333" |
x="183.92068" |
height="14.573853" |
width="62.454315" |
id="rect4419" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<text |
id="text4421" |
y="179.87563" |
x="201.40988" |
style="font-size:26.68083763px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="179.87563" |
x="201.40988" |
id="tspan4423" |
sodipodi:role="line">...</tspan></text> |
</g> |
<g |
id="g4425" |
transform="matrix(0.869125,0,0,0.869125,40.18533,185.7016)"> |
<rect |
y="211.16333" |
x="183.92068" |
height="14.573853" |
width="62.454315" |
id="rect4427" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="142.16333" |
x="183.92068" |
height="14.573853" |
width="62.454315" |
id="rect4429" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="128.16333" |
x="183.92068" |
height="14.573853" |
width="62.454315" |
id="rect4431" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="113.98718" |
x="183.92068" |
height="14.573853" |
width="62.454315" |
id="rect4433" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="156.16333" |
x="183.92068" |
height="41.198853" |
width="62.079315" |
id="rect4435" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="197.16333" |
x="183.92068" |
height="14.573853" |
width="62.454315" |
id="rect4437" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<text |
id="text4439" |
y="179.87563" |
x="201.40988" |
style="font-size:26.68083763px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="179.87563" |
x="201.40988" |
id="tspan4441" |
sodipodi:role="line">...</tspan></text> |
</g> |
<g |
id="g4443" |
transform="matrix(0.869125,0,0,0.869125,126.2287,-30.71045)"> |
<rect |
y="211.16333" |
x="183.92068" |
height="14.573853" |
width="62.454315" |
id="rect4445" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="142.16333" |
x="183.92068" |
height="14.573853" |
width="62.454315" |
id="rect4447" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="128.16333" |
x="183.92068" |
height="14.573853" |
width="62.454315" |
id="rect4449" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="113.98718" |
x="183.92068" |
height="14.573853" |
width="62.454315" |
id="rect4451" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="156.16333" |
x="183.92068" |
height="41.198853" |
width="62.079315" |
id="rect4453" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="197.16333" |
x="183.92068" |
height="14.573853" |
width="62.454315" |
id="rect4455" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<text |
id="text4457" |
y="179.87563" |
x="201.40988" |
style="font-size:26.68083763px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="179.87563" |
x="201.40988" |
id="tspan4459" |
sodipodi:role="line">...</tspan></text> |
</g> |
<g |
id="g4461" |
transform="matrix(0.869125,0,0,0.869125,126.2287,77.93016)"> |
<rect |
y="211.16333" |
x="183.92068" |
height="14.573853" |
width="62.454315" |
id="rect4463" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="142.16333" |
x="183.92068" |
height="14.573853" |
width="62.454315" |
id="rect4465" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="128.16333" |
x="183.92068" |
height="14.573853" |
width="62.454315" |
id="rect4467" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="113.98718" |
x="183.92068" |
height="14.573853" |
width="62.454315" |
id="rect4469" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="156.16333" |
x="183.92068" |
height="41.198853" |
width="62.079315" |
id="rect4471" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="197.16333" |
x="183.92068" |
height="14.573853" |
width="62.454315" |
id="rect4473" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<text |
id="text4475" |
y="179.87563" |
x="201.40988" |
style="font-size:26.68083763px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="179.87563" |
x="201.40988" |
id="tspan4477" |
sodipodi:role="line">...</tspan></text> |
</g> |
<rect |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.08640599;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect4481" |
width="54.280598" |
height="12.666497" |
x="286.0787" |
y="370.09805" /> |
<rect |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.08640599;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect4483" |
width="54.280598" |
height="12.666497" |
x="286.0787" |
y="310.12845" /> |
<rect |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.08640599;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect4485" |
width="54.280598" |
height="12.666497" |
x="286.0787" |
y="297.96069" /> |
<rect |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.08640599;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect4487" |
width="54.280598" |
height="12.666497" |
x="286.0787" |
y="285.63986" /> |
<rect |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.08640599;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect4489" |
width="53.954674" |
height="35.806946" |
x="286.0787" |
y="322.2962" /> |
<rect |
style="fill:#1e1d70;fill-opacity:1;stroke:#000000;stroke-width:1.08640599;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect4491" |
width="54.280598" |
height="12.666497" |
x="286.0787" |
y="357.93033" /> |
<text |
xml:space="preserve" |
style="font-size:23.1889782px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
x="301.27899" |
y="342.90512" |
id="text4493"><tspan |
sodipodi:role="line" |
id="tspan4495" |
x="301.27899" |
y="342.90512">...</tspan></text> |
<g |
id="g4531" |
transform="matrix(1.079456,0,0,0.869125,-1.388153,1.021475)"> |
<rect |
y="8.8746023" |
x="16" |
height="31.487579" |
width="382.50519" |
id="rect4497" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<text |
id="text4499" |
y="26.996433" |
x="18.658203" |
style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
id="tspan4503" |
y="26.996433" |
x="18.658203" |
sodipodi:role="line">PTL0_index</tspan></text> |
<text |
id="text4507" |
y="26.996433" |
x="97.658203" |
style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="26.996433" |
x="97.658203" |
id="tspan4509" |
sodipodi:role="line">PTL1_index</tspan></text> |
<text |
id="text4511" |
y="26.996433" |
x="178.82227" |
style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="26.996433" |
x="178.82227" |
id="tspan4513" |
sodipodi:role="line">PTL2_index</tspan></text> |
<text |
id="text4515" |
y="26.996433" |
x="257.6582" |
style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="26.996433" |
x="257.6582" |
id="tspan4517" |
sodipodi:role="line">PTL3_index</tspan></text> |
<text |
id="text4519" |
y="27.47937" |
x="344.16797" |
style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="27.47937" |
x="344.16797" |
id="tspan4521" |
sodipodi:role="line">offset</tspan></text> |
<path |
id="path4523" |
d="M 89,8.3621826 L 89,39.362183" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> |
<path |
id="path4525" |
d="M 173,8.8746027 L 173,40.362183" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> |
<path |
id="path4527" |
d="M 252.53814,8.8746027 L 252.53814,40.362183" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> |
<path |
id="path4529" |
d="M 334,8.3621826 L 334,40.362183" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> |
</g> |
<g |
id="g4561" |
transform="matrix(0.686309,0,0,0.686309,-8.116646,15.341)"> |
<rect |
y="264.36218" |
x="33" |
height="35" |
width="86" |
id="rect4555" |
style="fill:#bc4343;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<text |
id="text4557" |
y="288.58945" |
x="52.542488" |
style="font-size:19.16935158px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="288.58945" |
x="52.542488" |
id="tspan4559" |
sodipodi:role="line">PTL0</tspan></text> |
</g> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.86912483px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" |
d="M 43.572496,167.77366 L 43.572496,196.45478" |
id="path4566" /> |
<text |
xml:space="preserve" |
style="font-size:10.42949772px;font-style:normal;font-weight:normal;fill:#feff00;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
x="31.660641" |
y="152.21085" |
id="text4579"><tspan |
sodipodi:role="line" |
id="tspan4581" |
x="31.660641" |
y="152.21085">PTL1</tspan></text> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.86912483px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Lend);stroke-opacity:1" |
d="M 71.375667,148.21835 L 90.246809,148.32648 L 89.983282,272.42666 L 102.17224,272.0554" |
id="path4583" |
sodipodi:nodetypes="cccc" /> |
<text |
xml:space="preserve" |
style="font-size:10.42949772px;font-style:normal;font-weight:normal;fill:#fafb02;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
x="120.36874" |
y="211.45474" |
id="text5462"><tspan |
sodipodi:role="line" |
id="tspan5464" |
x="120.36874" |
y="211.45474">PTL2</tspan></text> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.86912483px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Lend);stroke-opacity:1" |
d="M 163.06834,205.57265 L 181.5005,205.2418 L 181.23697,275.78711 L 192.98697,275.41586" |
id="path5466" |
sodipodi:nodetypes="cccc" /> |
<text |
xml:space="preserve" |
style="font-size:10.42949772px;font-style:normal;font-weight:normal;fill:#f4f505;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
x="214.74823" |
y="199.62009" |
id="text5468"><tspan |
sodipodi:role="line" |
id="tspan5470" |
x="214.74823" |
y="199.62009">PTL3</tspan></text> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.86912483px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Lend);stroke-opacity:1" |
d="M 253.58997,195.9165 L 272.02214,195.58566 L 272.19759,383.77609 L 279.99681,383.84381" |
id="path5472" |
sodipodi:nodetypes="cccc" /> |
<text |
xml:space="preserve" |
style="font-size:10.42949772px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
x="29.062088" |
y="62.027313" |
id="text5492"><tspan |
sodipodi:role="line" |
id="tspan5494" |
x="29.062088" |
y="62.027313">PTL0</tspan></text> |
<text |
xml:space="preserve" |
style="font-size:10.42949772px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
x="120.76131" |
y="60.217766" |
id="text5496"><tspan |
sodipodi:role="line" |
id="tspan5498" |
x="120.76131" |
y="60.217766">PTL1</tspan></text> |
<text |
xml:space="preserve" |
style="font-size:10.42949772px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
x="211.57297" |
y="60.436745" |
id="text5500"><tspan |
sodipodi:role="line" |
id="tspan5502" |
x="211.57297" |
y="60.436745">PTL2</tspan></text> |
<text |
xml:space="preserve" |
style="font-size:10.42949772px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
x="299.80103" |
y="59.486141" |
id="text5504"><tspan |
sodipodi:role="line" |
id="tspan5506" |
x="299.80103" |
y="59.486141">PTL3</tspan></text> |
<text |
xml:space="preserve" |
style="font-size:10.42949772px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
x="298.11804" |
y="367.74725" |
id="text5516"><tspan |
sodipodi:role="line" |
id="tspan5518" |
x="298.11804" |
y="367.74725">frame</tspan></text> |
</g> |
</svg> |
/design/trunk/src/images/mm_hash.svg |
---|
0,0 → 1,882 |
<?xml version="1.0" encoding="UTF-8" standalone="no"?> |
<!-- Created with Inkscape (http://www.inkscape.org/) --> |
<svg |
xmlns:dc="http://purl.org/dc/elements/1.1/" |
xmlns:cc="http://web.resource.org/cc/" |
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" |
xmlns:svg="http://www.w3.org/2000/svg" |
xmlns="http://www.w3.org/2000/svg" |
xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd" |
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" |
width="744.09448819" |
height="1052.3622047" |
id="svg4001" |
sodipodi:version="0.32" |
inkscape:version="0.43" |
sodipodi:docbase="/home/jermar/software/HelenOS-doc/design/src/images" |
sodipodi:docname="mm_hash.svg"> |
<defs |
id="defs4003"> |
<marker |
inkscape:stockid="Arrow2Mstart" |
orient="auto" |
refY="0.0" |
refX="0.0" |
id="Arrow2Mstart" |
style="overflow:visible"> |
<path |
id="path2705" |
style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round" |
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " |
transform="scale(0.6) translate(-5,0)" /> |
</marker> |
<marker |
inkscape:stockid="Arrow1Lstart" |
orient="auto" |
refY="0.0" |
refX="0.0" |
id="Arrow1Lstart" |
style="overflow:visible"> |
<path |
id="path3697" |
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " |
style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none" |
transform="scale(0.8)" /> |
</marker> |
<marker |
inkscape:stockid="Arrow1Mstart" |
orient="auto" |
refY="0" |
refX="0" |
id="Arrow1Mstart" |
style="overflow:visible"> |
<path |
id="path15935" |
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z " |
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" |
transform="scale(0.4,0.4)" /> |
</marker> |
</defs> |
<sodipodi:namedview |
id="base" |
pagecolor="#ffffff" |
bordercolor="#666666" |
borderopacity="1.0" |
inkscape:pageopacity="0.0" |
inkscape:pageshadow="2" |
inkscape:zoom="0.73548823" |
inkscape:cx="372.04724" |
inkscape:cy="526.18109" |
inkscape:document-units="px" |
inkscape:current-layer="layer1" |
showgrid="true" |
inkscape:window-width="1273" |
inkscape:window-height="943" |
inkscape:window-x="0" |
inkscape:window-y="0" /> |
<metadata |
id="metadata4006"> |
<rdf:RDF> |
<cc:Work |
rdf:about=""> |
<dc:format>image/svg+xml</dc:format> |
<dc:type |
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> |
</cc:Work> |
</rdf:RDF> |
</metadata> |
<g |
inkscape:label="Layer 1" |
inkscape:groupmode="layer" |
id="layer1"> |
<g |
id="g3206" |
transform="matrix(0.892659,0,0,0.892659,2.576186,1.173626)"> |
<g |
transform="matrix(0.590686,0,0,0.606171,9.823542,4.305978)" |
id="g4933"> |
<rect |
style="fill:#000000;fill-opacity:1;stroke-width:1.125;stroke-miterlimit:4;stroke-dasharray:none" |
id="rect4046" |
width="202" |
height="708.42859" |
x="24" |
y="10.933611" /> |
<rect |
style="fill:#ffffff;fill-opacity:1;stroke-width:1.125;stroke-miterlimit:4;stroke-dasharray:none" |
id="rect4931" |
width="193" |
height="702" |
x="28" |
y="13.362183" /> |
</g> |
<g |
id="g2736"> |
<g |
id="g2555" |
transform="matrix(0.79177,0,0,0.79177,19.99723,-90.74993)" |
style="fill:#ffffff;fill-opacity:1"> |
<rect |
style="fill:#ffffff;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" |
id="rect3093" |
width="28.539986" |
height="28" |
x="109.88416" |
y="160.36218" |
rx="0" |
ry="0" /> |
<rect |
y="163.37526" |
x="113.84792" |
height="21.71043" |
width="20.44702" |
id="rect2859" |
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.55297828px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> |
</g> |
<g |
id="g2571" |
transform="matrix(0.79177,0,0,0.79177,19.54129,-89.95816)"> |
<path |
sodipodi:nodetypes="cc" |
id="path3130" |
d="M 157.56087,166.26929 C 147.80813,166.35335 141.09892,166.35335 141.09892,166.35335" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.19784665;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<path |
sodipodi:nodetypes="cc" |
id="path3984" |
d="M 152.53829,182.34506 C 162.29103,182.261 169.00024,182.261 169.00024,182.261" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.19784665;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<g |
transform="translate(62.11584,-0.571429)" |
id="g2559"> |
<rect |
ry="0" |
rx="0" |
y="160.36218" |
x="109.88416" |
height="28" |
width="28.539986" |
id="rect2561" |
style="fill:#bc4343;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" /> |
<rect |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.55297828px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" |
id="rect2563" |
width="20.44702" |
height="21.71043" |
x="113.84792" |
y="163.37526" /> |
</g> |
</g> |
<g |
id="g3721" |
transform="matrix(0.79177,0,0,0.79177,0.53881,-175.4693)"> |
<path |
sodipodi:nodetypes="cc" |
id="path2580" |
d="M 243.02088,272.84069 C 233.26814,272.92475 226.55893,272.92475 226.55893,272.92475" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.19784665;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<path |
sodipodi:nodetypes="cc" |
id="path2582" |
d="M 237.9983,288.91646 C 247.75104,288.8324 254.46025,288.8324 254.46025,288.8324" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.19784665;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
</g> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.74018908;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
d="M 244.05628,40.557777 C 236.33435,40.624333 231.0222,40.624333 231.0222,40.624333" |
id="path2592" |
sodipodi:nodetypes="cc" /> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.73991454;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
d="M 240.07955,53.286089 C 247.80148,53.219533 253.11363,53.219533 253.11363,53.219533" |
id="path2594" |
sodipodi:nodetypes="cc" /> |
<rect |
ry="0" |
rx="0" |
y="35.428265" |
x="255.48872" |
height="22.169559" |
width="22.597105" |
id="rect2598" |
style="fill:#bc4343;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" /> |
<rect |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.0213716px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" |
id="rect2600" |
width="16.189337" |
height="17.189667" |
x="258.62711" |
y="37.813931" /> |
<g |
id="g2602" |
transform="matrix(0.79177,0,0,0.79177,168.7583,-92.22036)"> |
<path |
sodipodi:nodetypes="cc" |
id="path2604" |
d="M 157.56087,166.26929 C 147.80813,166.35335 141.09892,166.35335 141.09892,166.35335" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.19784665;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<path |
sodipodi:nodetypes="cc" |
id="path2606" |
d="M 152.53829,182.34506 C 162.29103,182.261 169.00024,182.261 169.00024,182.261" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.19784665;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<g |
transform="translate(62.11584,-0.571429)" |
id="g2608"> |
<rect |
ry="0" |
rx="0" |
y="160.36218" |
x="109.88416" |
height="28" |
width="28.539986" |
id="rect2610" |
style="fill:#bc4343;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" /> |
<rect |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.55297828px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" |
id="rect2612" |
width="20.44702" |
height="21.71043" |
x="113.84792" |
y="163.37526" /> |
</g> |
</g> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.69563103;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow2Mstart);marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
d="M 333.91374,51.988627 L 349.2112,51.988627 L 349.2112,51.988627 L 349.2112,69.407567 L 84.794214,69.407567 L 84.794214,52.780397 L 106.62623,52.780397" |
id="path3508" |
sodipodi:nodetypes="ccccccc" /> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.6934675;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow2Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
d="M 102.25452,44.116273 L 85.322047,44.116273 L 85.322047,44.116273 L 85.322047,26.697333 L 349.0647,26.697333 L 349.0647,43.324503 L 329.48782,43.324503" |
id="path3712" |
sodipodi:nodetypes="ccccccc" /> |
<text |
xml:space="preserve" |
style="font-size:14.30800819px;font-style:normal;font-weight:normal;line-height:125%;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
x="214.03432" |
y="47.472927" |
id="text3725" |
sodipodi:linespacing="125%" |
transform="scale(0.955569,1.046497)"><tspan |
sodipodi:role="line" |
id="tspan3727" |
x="214.03432" |
y="47.472927" |
style="font-size:23.84668922px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Bitstream Vera Sans">...</tspan></text> |
</g> |
<path |
sodipodi:nodetypes="cc" |
id="path4943" |
d="M 80.705862,11.799244 L 80.705862,154.38593" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.67557204;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<path |
id="path4945" |
d="M 26.826825,82.65977 L 141.56765,82.65977 L 141.56765,82.65977" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.45533288;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<path |
id="path4947" |
d="M 26.32322,153.40776 L 140.23081,153.40776 L 140.23081,153.40776" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.45003903;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<path |
id="path4951" |
d="M 26.323222,296.03175 L 140.23081,296.03175 L 140.23081,296.03175" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.45003903;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<path |
id="path4953" |
d="M 26.497083,367.82677 L 140.40468,367.82677 L 140.40468,367.82677" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.45003903;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<text |
id="text5017" |
y="225.01509" |
x="64.58226" |
style="font-size:36.34477615px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="225.01509" |
x="64.58226" |
id="tspan5019" |
sodipodi:role="line">...</tspan></text> |
<path |
sodipodi:nodetypes="cc" |
id="path5021" |
d="M 80.952964,296.60033 L 80.952964,439.18702" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.67557204;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<text |
sodipodi:linespacing="125%" |
id="text5147" |
y="32.628769" |
x="51.325001" |
style="font-size:7.08823204px;font-style:normal;font-weight:normal;line-height:125%;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
style="font-size:11.81371975px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;font-family:Bitstream Vera Sans" |
id="tspan5151" |
y="32.628769" |
x="53.205505" |
sodipodi:role="line">as_t </tspan><tspan |
id="tspan3289" |
style="font-size:11.81371975px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;font-family:Bitstream Vera Sans" |
y="47.395919" |
x="53.205505" |
sodipodi:role="line">+ </tspan><tspan |
id="tspan3291" |
style="font-size:11.81371975px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;font-family:Bitstream Vera Sans" |
y="62.163068" |
x="51.325001" |
sodipodi:role="line">VPN</tspan></text> |
<path |
sodipodi:nodetypes="ccc" |
id="path3279" |
d="M 269.02031,125.04215 L 298,223.36218 L 176.09137,323.27081" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> |
<text |
id="text3281" |
y="224.78796" |
x="305.91016" |
style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="224.78796" |
x="305.91016" |
id="tspan3283" |
sodipodi:role="line">pte_t</tspan></text> |
<path |
sodipodi:nodetypes="ccc" |
id="path3285" |
d="M 176.11168,127.4434 L 298,224.36218 L 268.02031,321.28096" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-start:none;stroke-opacity:1" /> |
<text |
sodipodi:linespacing="125%" |
id="text3296" |
y="106.65717" |
x="53.515015" |
style="font-size:7.08823204px;font-style:normal;font-weight:normal;line-height:125%;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
style="font-size:11.81371975px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;font-family:Bitstream Vera Sans" |
id="tspan3298" |
y="106.65717" |
x="55.395519" |
sodipodi:role="line">as_t </tspan><tspan |
id="tspan3300" |
style="font-size:11.81371975px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;font-family:Bitstream Vera Sans" |
y="121.42432" |
x="55.395519" |
sodipodi:role="line">+ </tspan><tspan |
id="tspan3302" |
style="font-size:11.81371975px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;font-family:Bitstream Vera Sans" |
y="136.19147" |
x="53.515015" |
sodipodi:role="line">VPN</tspan></text> |
<text |
sodipodi:linespacing="125%" |
id="text3304" |
y="389.82788" |
x="53.515015" |
style="font-size:7.08823204px;font-style:normal;font-weight:normal;line-height:125%;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
style="font-size:11.81371975px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;font-family:Bitstream Vera Sans" |
id="tspan3306" |
y="389.82788" |
x="55.395519" |
sodipodi:role="line">as_t </tspan><tspan |
id="tspan3308" |
style="font-size:11.81371975px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;font-family:Bitstream Vera Sans" |
y="404.59503" |
x="55.395519" |
sodipodi:role="line">+ </tspan><tspan |
id="tspan3310" |
style="font-size:11.81371975px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;font-family:Bitstream Vera Sans" |
y="419.36218" |
x="53.515015" |
sodipodi:role="line">VPN</tspan></text> |
<text |
sodipodi:linespacing="125%" |
id="text3312" |
y="317.65717" |
x="52.504852" |
style="font-size:7.08823204px;font-style:normal;font-weight:normal;line-height:125%;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
style="font-size:11.81371975px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;font-family:Bitstream Vera Sans" |
id="tspan3314" |
y="317.65717" |
x="54.385356" |
sodipodi:role="line">as_t </tspan><tspan |
id="tspan3316" |
style="font-size:11.81371975px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;font-family:Bitstream Vera Sans" |
y="332.42432" |
x="54.385357" |
sodipodi:role="line">+ </tspan><tspan |
id="tspan3318" |
style="font-size:11.81371975px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;font-family:Bitstream Vera Sans" |
y="347.19146" |
x="52.504853" |
sodipodi:role="line">VPN</tspan></text> |
<g |
transform="translate(0.485843,69.51158)" |
id="g2764"> |
<g |
id="g2766" |
transform="matrix(0.79177,0,0,0.79177,19.99723,-90.74993)" |
style="fill:#ffffff;fill-opacity:1"> |
<rect |
style="fill:#ffffff;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" |
id="rect2768" |
width="28.539986" |
height="28" |
x="109.88416" |
y="160.36218" |
rx="0" |
ry="0" /> |
<rect |
y="163.37526" |
x="113.84792" |
height="21.71043" |
width="20.44702" |
id="rect2770" |
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.55297828px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> |
</g> |
<g |
id="g2772" |
transform="matrix(0.79177,0,0,0.79177,19.54129,-89.95816)"> |
<path |
sodipodi:nodetypes="cc" |
id="path2774" |
d="M 157.56087,166.26929 C 147.80813,166.35335 141.09892,166.35335 141.09892,166.35335" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.19784665;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<path |
sodipodi:nodetypes="cc" |
id="path2776" |
d="M 152.53829,182.34506 C 162.29103,182.261 169.00024,182.261 169.00024,182.261" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.19784665;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<g |
transform="translate(62.11584,-0.571429)" |
id="g2778"> |
<rect |
ry="0" |
rx="0" |
y="160.36218" |
x="109.88416" |
height="28" |
width="28.539986" |
id="rect2780" |
style="fill:#bc4343;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" /> |
<rect |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.55297828px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" |
id="rect2782" |
width="20.44702" |
height="21.71043" |
x="113.84792" |
y="163.37526" /> |
</g> |
</g> |
<g |
id="g2784" |
transform="matrix(0.79177,0,0,0.79177,0.53881,-175.4693)"> |
<path |
sodipodi:nodetypes="cc" |
id="path2786" |
d="M 243.02088,272.84069 C 233.26814,272.92475 226.55893,272.92475 226.55893,272.92475" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.19784665;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<path |
sodipodi:nodetypes="cc" |
id="path2788" |
d="M 237.9983,288.91646 C 247.75104,288.8324 254.46025,288.8324 254.46025,288.8324" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.19784665;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
</g> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.74018908;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
d="M 244.05628,40.557777 C 236.33435,40.624333 231.0222,40.624333 231.0222,40.624333" |
id="path2790" |
sodipodi:nodetypes="cc" /> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.73991454;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
d="M 240.07955,53.286089 C 247.80148,53.219533 253.11363,53.219533 253.11363,53.219533" |
id="path2792" |
sodipodi:nodetypes="cc" /> |
<rect |
ry="0" |
rx="0" |
y="35.428265" |
x="255.48872" |
height="22.169559" |
width="22.597105" |
id="rect2794" |
style="fill:#bc4343;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" /> |
<rect |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.0213716px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" |
id="rect2796" |
width="16.189337" |
height="17.189667" |
x="258.62711" |
y="37.813931" /> |
<g |
id="g2798" |
transform="matrix(0.79177,0,0,0.79177,168.7583,-92.22036)"> |
<path |
sodipodi:nodetypes="cc" |
id="path2800" |
d="M 157.56087,166.26929 C 147.80813,166.35335 141.09892,166.35335 141.09892,166.35335" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.19784665;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<path |
sodipodi:nodetypes="cc" |
id="path2802" |
d="M 152.53829,182.34506 C 162.29103,182.261 169.00024,182.261 169.00024,182.261" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.19784665;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<g |
transform="translate(62.11584,-0.571429)" |
id="g2804"> |
<rect |
ry="0" |
rx="0" |
y="160.36218" |
x="109.88416" |
height="28" |
width="28.539986" |
id="rect2806" |
style="fill:#bc4343;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" /> |
<rect |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.55297828px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" |
id="rect2808" |
width="20.44702" |
height="21.71043" |
x="113.84792" |
y="163.37526" /> |
</g> |
</g> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.69563103;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow2Mstart);marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
d="M 333.91374,51.988627 L 349.2112,51.988627 L 349.2112,51.988627 L 349.2112,69.407567 L 84.794214,69.407567 L 84.794214,52.780397 L 106.62623,52.780397" |
id="path2810" |
sodipodi:nodetypes="ccccccc" /> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.6934675;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow2Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
d="M 102.25452,44.116273 L 85.322047,44.116273 L 85.322047,44.116273 L 85.322047,26.697333 L 349.0647,26.697333 L 349.0647,43.324503 L 329.48782,43.324503" |
id="path2812" |
sodipodi:nodetypes="ccccccc" /> |
<text |
xml:space="preserve" |
style="font-size:14.30800819px;font-style:normal;font-weight:normal;line-height:125%;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
x="214.03432" |
y="47.472927" |
id="text2814" |
sodipodi:linespacing="125%" |
transform="scale(0.955569,1.046497)"><tspan |
sodipodi:role="line" |
id="tspan2816" |
x="214.03432" |
y="47.472927" |
style="font-size:23.84668922px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Bitstream Vera Sans">...</tspan></text> |
</g> |
<g |
transform="translate(1.053602,285.1068)" |
id="g2818"> |
<g |
id="g2820" |
transform="matrix(0.79177,0,0,0.79177,19.99723,-90.74993)" |
style="fill:#ffffff;fill-opacity:1"> |
<rect |
style="fill:#ffffff;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" |
id="rect2822" |
width="28.539986" |
height="28" |
x="109.88416" |
y="160.36218" |
rx="0" |
ry="0" /> |
<rect |
y="163.37526" |
x="113.84792" |
height="21.71043" |
width="20.44702" |
id="rect2824" |
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.55297828px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> |
</g> |
<g |
id="g2826" |
transform="matrix(0.79177,0,0,0.79177,19.54129,-89.95816)"> |
<path |
sodipodi:nodetypes="cc" |
id="path2828" |
d="M 157.56087,166.26929 C 147.80813,166.35335 141.09892,166.35335 141.09892,166.35335" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.19784665;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<path |
sodipodi:nodetypes="cc" |
id="path2830" |
d="M 152.53829,182.34506 C 162.29103,182.261 169.00024,182.261 169.00024,182.261" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.19784665;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<g |
transform="translate(62.11584,-0.571429)" |
id="g2832"> |
<rect |
ry="0" |
rx="0" |
y="160.36218" |
x="109.88416" |
height="28" |
width="28.539986" |
id="rect2834" |
style="fill:#bc4343;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" /> |
<rect |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.55297828px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" |
id="rect2836" |
width="20.44702" |
height="21.71043" |
x="113.84792" |
y="163.37526" /> |
</g> |
</g> |
<g |
id="g2838" |
transform="matrix(0.79177,0,0,0.79177,0.53881,-175.4693)"> |
<path |
sodipodi:nodetypes="cc" |
id="path2840" |
d="M 243.02088,272.84069 C 233.26814,272.92475 226.55893,272.92475 226.55893,272.92475" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.19784665;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<path |
sodipodi:nodetypes="cc" |
id="path2842" |
d="M 237.9983,288.91646 C 247.75104,288.8324 254.46025,288.8324 254.46025,288.8324" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.19784665;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
</g> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.74018908;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
d="M 244.05628,40.557777 C 236.33435,40.624333 231.0222,40.624333 231.0222,40.624333" |
id="path2844" |
sodipodi:nodetypes="cc" /> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.73991454;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
d="M 240.07955,53.286089 C 247.80148,53.219533 253.11363,53.219533 253.11363,53.219533" |
id="path2846" |
sodipodi:nodetypes="cc" /> |
<rect |
ry="0" |
rx="0" |
y="35.428265" |
x="255.48872" |
height="22.169559" |
width="22.597105" |
id="rect2848" |
style="fill:#bc4343;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" /> |
<rect |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.0213716px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" |
id="rect2850" |
width="16.189337" |
height="17.189667" |
x="258.62711" |
y="37.813931" /> |
<g |
id="g2852" |
transform="matrix(0.79177,0,0,0.79177,168.7583,-92.22036)"> |
<path |
sodipodi:nodetypes="cc" |
id="path2854" |
d="M 157.56087,166.26929 C 147.80813,166.35335 141.09892,166.35335 141.09892,166.35335" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.19784665;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<path |
sodipodi:nodetypes="cc" |
id="path2856" |
d="M 152.53829,182.34506 C 162.29103,182.261 169.00024,182.261 169.00024,182.261" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.19784665;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<g |
transform="translate(62.11584,-0.571429)" |
id="g2858"> |
<rect |
ry="0" |
rx="0" |
y="160.36218" |
x="109.88416" |
height="28" |
width="28.539986" |
id="rect2860" |
style="fill:#bc4343;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" /> |
<rect |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.55297828px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" |
id="rect2862" |
width="20.44702" |
height="21.71043" |
x="113.84792" |
y="163.37526" /> |
</g> |
</g> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.69563103;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow2Mstart);marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
d="M 333.91374,51.988627 L 349.2112,51.988627 L 349.2112,51.988627 L 349.2112,69.407567 L 84.794214,69.407567 L 84.794214,52.780397 L 106.62623,52.780397" |
id="path2864" |
sodipodi:nodetypes="ccccccc" /> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.6934675;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow2Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
d="M 102.25452,44.116273 L 85.322047,44.116273 L 85.322047,44.116273 L 85.322047,26.697333 L 349.0647,26.697333 L 349.0647,43.324503 L 329.48782,43.324503" |
id="path2866" |
sodipodi:nodetypes="ccccccc" /> |
<text |
xml:space="preserve" |
style="font-size:14.30800819px;font-style:normal;font-weight:normal;line-height:125%;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
x="214.03432" |
y="47.472927" |
id="text2868" |
sodipodi:linespacing="125%" |
transform="scale(0.955569,1.046497)"><tspan |
sodipodi:role="line" |
id="tspan2870" |
x="214.03432" |
y="47.472927" |
style="font-size:23.84668922px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Bitstream Vera Sans">...</tspan></text> |
</g> |
<g |
transform="translate(0.485813,355.5116)" |
id="g2872"> |
<g |
id="g2874" |
transform="matrix(0.79177,0,0,0.79177,19.99723,-90.74993)" |
style="fill:#ffffff;fill-opacity:1"> |
<rect |
style="fill:#ffffff;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" |
id="rect2876" |
width="28.539986" |
height="28" |
x="109.88416" |
y="160.36218" |
rx="0" |
ry="0" /> |
<rect |
y="163.37526" |
x="113.84792" |
height="21.71043" |
width="20.44702" |
id="rect2878" |
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.55297828px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> |
</g> |
<g |
id="g2880" |
transform="matrix(0.79177,0,0,0.79177,19.54129,-89.95816)"> |
<path |
sodipodi:nodetypes="cc" |
id="path2882" |
d="M 157.56087,166.26929 C 147.80813,166.35335 141.09892,166.35335 141.09892,166.35335" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.19784665;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<path |
sodipodi:nodetypes="cc" |
id="path2884" |
d="M 152.53829,182.34506 C 162.29103,182.261 169.00024,182.261 169.00024,182.261" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.19784665;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<g |
transform="translate(62.11584,-0.571429)" |
id="g2886"> |
<rect |
ry="0" |
rx="0" |
y="160.36218" |
x="109.88416" |
height="28" |
width="28.539986" |
id="rect2888" |
style="fill:#bc4343;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" /> |
<rect |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.55297828px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" |
id="rect2890" |
width="20.44702" |
height="21.71043" |
x="113.84792" |
y="163.37526" /> |
</g> |
</g> |
<g |
id="g2892" |
transform="matrix(0.79177,0,0,0.79177,0.53881,-175.4693)"> |
<path |
sodipodi:nodetypes="cc" |
id="path2894" |
d="M 243.02088,272.84069 C 233.26814,272.92475 226.55893,272.92475 226.55893,272.92475" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.19784665;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<path |
sodipodi:nodetypes="cc" |
id="path2896" |
d="M 237.9983,288.91646 C 247.75104,288.8324 254.46025,288.8324 254.46025,288.8324" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.19784665;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
</g> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.74018908;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
d="M 244.05628,40.557777 C 236.33435,40.624333 231.0222,40.624333 231.0222,40.624333" |
id="path2898" |
sodipodi:nodetypes="cc" /> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.73991454;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
d="M 240.07955,53.286089 C 247.80148,53.219533 253.11363,53.219533 253.11363,53.219533" |
id="path2900" |
sodipodi:nodetypes="cc" /> |
<rect |
ry="0" |
rx="0" |
y="35.428265" |
x="255.48872" |
height="22.169559" |
width="22.597105" |
id="rect2902" |
style="fill:#bc4343;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" /> |
<rect |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.0213716px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" |
id="rect2904" |
width="16.189337" |
height="17.189667" |
x="258.62711" |
y="37.813931" /> |
<g |
id="g2906" |
transform="matrix(0.79177,0,0,0.79177,168.7583,-92.22036)"> |
<path |
sodipodi:nodetypes="cc" |
id="path2908" |
d="M 157.56087,166.26929 C 147.80813,166.35335 141.09892,166.35335 141.09892,166.35335" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.19784665;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<path |
sodipodi:nodetypes="cc" |
id="path2910" |
d="M 152.53829,182.34506 C 162.29103,182.261 169.00024,182.261 169.00024,182.261" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.19784665;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<g |
transform="translate(62.11584,-0.571429)" |
id="g2912"> |
<rect |
ry="0" |
rx="0" |
y="160.36218" |
x="109.88416" |
height="28" |
width="28.539986" |
id="rect2914" |
style="fill:#bc4343;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" /> |
<rect |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.55297828px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" |
id="rect2916" |
width="20.44702" |
height="21.71043" |
x="113.84792" |
y="163.37526" /> |
</g> |
</g> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.69563103;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow2Mstart);marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
d="M 333.91374,51.988627 L 349.2112,51.988627 L 349.2112,51.988627 L 349.2112,69.407567 L 84.794214,69.407567 L 84.794214,52.780397 L 106.62623,52.780397" |
id="path2918" |
sodipodi:nodetypes="ccccccc" /> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.6934675;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow2Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
d="M 102.25452,44.116273 L 85.322047,44.116273 L 85.322047,44.116273 L 85.322047,26.697333 L 349.0647,26.697333 L 349.0647,43.324503 L 329.48782,43.324503" |
id="path2920" |
sodipodi:nodetypes="ccccccc" /> |
<text |
xml:space="preserve" |
style="font-size:14.30800819px;font-style:normal;font-weight:normal;line-height:125%;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
x="214.03432" |
y="47.472927" |
id="text2922" |
sodipodi:linespacing="125%" |
transform="scale(0.955569,1.046497)"><tspan |
sodipodi:role="line" |
id="tspan2924" |
x="214.03432" |
y="47.472927" |
style="font-size:23.84668922px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Bitstream Vera Sans">...</tspan></text> |
</g> |
</g> |
</g> |
</svg> |
/design/trunk/src/images/ipc1.svg |
---|
0,0 → 1,460 |
<?xml version="1.0" encoding="UTF-8" standalone="no"?> |
<!-- Created with Inkscape (http://www.inkscape.org/) --> |
<svg |
xmlns:dc="http://purl.org/dc/elements/1.1/" |
xmlns:cc="http://web.resource.org/cc/" |
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" |
xmlns:svg="http://www.w3.org/2000/svg" |
xmlns="http://www.w3.org/2000/svg" |
xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd" |
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" |
width="744.09448819" |
height="1052.3622047" |
id="svg2982" |
sodipodi:version="0.32" |
inkscape:version="0.43" |
sodipodi:docbase="/afs/ms/u/b/bonds0am/BIG/HelenOS-doc/design/trunk/src/images" |
sodipodi:docname="ipc1.svg"> |
<defs |
id="defs2984"> |
<marker |
inkscape:stockid="Arrow1Lend" |
orient="auto" |
refY="0.0" |
refX="0.0" |
id="Arrow1Lend" |
style="overflow:visible;"> |
<path |
id="path4118" |
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " |
style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" |
transform="scale(0.8) rotate(180)" /> |
</marker> |
<marker |
inkscape:stockid="Arrow1Lstart" |
orient="auto" |
refY="0.0" |
refX="0.0" |
id="Arrow1Lstart" |
style="overflow:visible"> |
<path |
id="path4121" |
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " |
style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none" |
transform="scale(0.8)" /> |
</marker> |
</defs> |
<sodipodi:namedview |
id="base" |
pagecolor="#ffffff" |
bordercolor="#666666" |
borderopacity="1.0" |
inkscape:pageopacity="0.0" |
inkscape:pageshadow="2" |
inkscape:zoom="0.7" |
inkscape:cx="458.49965" |
inkscape:cy="656.5373" |
inkscape:document-units="px" |
inkscape:current-layer="layer1" |
showgrid="true" |
inkscape:window-width="1273" |
inkscape:window-height="943" |
inkscape:window-x="0" |
inkscape:window-y="0" /> |
<metadata |
id="metadata2987"> |
<rdf:RDF> |
<cc:Work |
rdf:about=""> |
<dc:format>image/svg+xml</dc:format> |
<dc:type |
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> |
</cc:Work> |
</rdf:RDF> |
</metadata> |
<g |
inkscape:label="Layer 1" |
inkscape:groupmode="layer" |
id="layer1"> |
<g |
id="g4517" |
transform="matrix(0.817442,0,0,0.817442,2.203011,1.526568)"> |
<text |
transform="matrix(0.994735,-0.10248,0.10248,0.994735,0,0)" |
id="text4130" |
y="302.92075" |
x="242.57803" |
style="font-size:22.92194748px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="302.92075" |
x="242.57803" |
id="tspan4132" |
sodipodi:role="line">call</tspan></text> |
<text |
transform="matrix(0.981242,0.192782,-0.192782,0.981242,0,0)" |
id="text4136" |
y="122.19006" |
x="290.23486" |
style="font-size:22.92196846px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="122.19006" |
x="290.23486" |
id="tspan4138" |
sodipodi:role="line">answer</tspan></text> |
<rect |
y="9.7947264" |
x="402.7673" |
height="48.361362" |
width="201.44435" |
id="rect3043" |
style="fill:#bc4343;fill-opacity:1;stroke:#000000;stroke-width:2.86524749;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="59.251869" |
x="403.2572" |
height="328.16293" |
width="201.31006" |
id="rect3045" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2.86524749;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<rect |
y="64.553719" |
x="413.13657" |
height="217.48918" |
width="118.61221" |
id="rect3059" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2.8495717;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<text |
id="text3061" |
y="84.232925" |
x="426.21069" |
style="font-size:16.67699432px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
id="tspan3063" |
y="84.232925" |
x="426.21069" |
sodipodi:role="line">Answerbox</tspan></text> |
<text |
id="text3069" |
y="40.356186" |
x="461.93063" |
style="font-size:22.9219799px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="40.356186" |
x="461.93063" |
id="tspan3071" |
sodipodi:role="line">Task B</tspan></text> |
<rect |
y="241.44713" |
x="423.48355" |
height="32.210594" |
width="99.699463" |
id="rect4153" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2.17238188;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="144.79956" |
x="423.48355" |
height="32.210594" |
width="99.699463" |
id="rect4155" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2.17238188;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="192.61186" |
x="423.48355" |
height="32.210594" |
width="99.699463" |
id="rect4157" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2.17238188;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="98.184761" |
x="424.11664" |
height="32.210594" |
width="99.699463" |
id="rect4159" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2.17238188;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<text |
id="text4161" |
y="260.76825" |
x="435.20068" |
style="font-size:16.80339241px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="260.76825" |
x="435.20068" |
id="tspan4163" |
sodipodi:role="line">incoming</tspan></text> |
<text |
id="text4165" |
y="212.33574" |
x="433.12521" |
style="font-size:15.35064888px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="212.33574" |
x="433.12521" |
id="tspan4167" |
sodipodi:role="line">dispatched</tspan></text> |
<text |
id="text4169" |
y="164.20906" |
x="440.75018" |
style="font-size:16.22729683px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="164.20906" |
x="440.75018" |
id="tspan4171" |
sodipodi:role="line">answers</tspan></text> |
<text |
id="text4173" |
y="117.90802" |
x="429.70984" |
style="font-size:14.29061031px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="117.90802" |
x="429.70984" |
id="tspan4175" |
sodipodi:role="line">notifications</tspan></text> |
<rect |
y="316.87122" |
x="547.62762" |
height="17.564388" |
width="54.365963" |
id="rect4189" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.18459654;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="349.19583" |
x="547.61761" |
height="17.564388" |
width="54.365963" |
id="rect4191" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.18459654;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="300.95236" |
x="547.61761" |
height="17.564388" |
width="54.365963" |
id="rect4193" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.18459654;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="333.27698" |
x="547.61761" |
height="17.564388" |
width="54.365963" |
id="rect4195" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.18459654;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="366.39001" |
x="547.61761" |
height="17.564388" |
width="54.365963" |
id="rect4197" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.18459654;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="284.00165" |
x="547.61761" |
height="17.564388" |
width="54.365963" |
id="rect4199" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.18459654;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<text |
transform="matrix(-7.45389e-18,-1,1,-7.45389e-18,0,0)" |
id="text4201" |
y="541.01526" |
x="-366.00021" |
style="font-size:19.74520111px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="541.01526" |
x="-366.00021" |
id="tspan4203" |
sodipodi:role="line">Phones</tspan></text> |
<rect |
y="12.211226" |
x="13.50009" |
height="48.361362" |
width="201.44435" |
id="rect4237" |
style="fill:#bc4343;fill-opacity:1;stroke:#000000;stroke-width:2.86524749;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="61.668369" |
x="13.989989" |
height="328.16293" |
width="201.31006" |
id="rect4239" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2.86524749;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<rect |
y="66.970215" |
x="23.869356" |
height="217.48918" |
width="118.61221" |
id="rect4241" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2.8495717;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<text |
id="text4243" |
y="86.649429" |
x="36.943504" |
style="font-size:16.67699432px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
id="tspan4245" |
y="86.649429" |
x="36.943504" |
sodipodi:role="line">Answerbox</tspan></text> |
<text |
id="text4247" |
y="42.772686" |
x="72.663437" |
style="font-size:22.9219799px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="42.772686" |
x="72.663437" |
id="tspan4249" |
sodipodi:role="line">Task A</tspan></text> |
<rect |
y="243.86363" |
x="34.216354" |
height="32.210594" |
width="99.699463" |
id="rect4251" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2.17238188;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="147.21606" |
x="34.216354" |
height="32.210594" |
width="99.699463" |
id="rect4253" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2.17238188;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="195.02837" |
x="34.216354" |
height="32.210594" |
width="99.699463" |
id="rect4255" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2.17238188;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="100.60126" |
x="34.849426" |
height="32.210594" |
width="99.699463" |
id="rect4257" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2.17238188;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<text |
id="text4259" |
y="263.18475" |
x="45.933487" |
style="font-size:16.80339241px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="263.18475" |
x="45.933487" |
id="tspan4261" |
sodipodi:role="line">incoming</tspan></text> |
<text |
id="text4263" |
y="214.75224" |
x="43.858002" |
style="font-size:15.35064888px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="214.75224" |
x="43.858002" |
id="tspan4265" |
sodipodi:role="line">dispatched</tspan></text> |
<text |
id="text4267" |
y="166.62556" |
x="51.482983" |
style="font-size:16.22729683px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="166.62556" |
x="51.482983" |
id="tspan4269" |
sodipodi:role="line">answers</tspan></text> |
<text |
id="text4271" |
y="120.32452" |
x="40.442638" |
style="font-size:14.29061031px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="120.32452" |
x="40.442638" |
id="tspan4273" |
sodipodi:role="line">notifications</tspan></text> |
<g |
transform="matrix(1.910165,0,0,1.910165,-140.2276,-54.87534)" |
id="g4275"> |
<rect |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.62015402;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect4277" |
width="28.461397" |
height="9.19522" |
x="156.31529" |
y="195.87996" /> |
<rect |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.62015402;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect4279" |
width="28.461397" |
height="9.19522" |
x="156.31007" |
y="212.80238" /> |
<rect |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.62015402;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect4281" |
width="28.461397" |
height="9.19522" |
x="156.31007" |
y="187.5462" /> |
<rect |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.62015402;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect4283" |
width="28.461397" |
height="9.19522" |
x="156.31007" |
y="204.46863" /> |
<rect |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.62015402;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect4285" |
width="28.461397" |
height="9.19522" |
x="156.31007" |
y="221.8038" /> |
<rect |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.62015402;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect4287" |
width="28.461397" |
height="9.19522" |
x="156.31007" |
y="178.67226" /> |
<text |
xml:space="preserve" |
style="font-size:10.33690834px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
x="-221.59973" |
y="152.85362" |
id="text4289" |
transform="matrix(-7.45389e-18,-1,1,-7.45389e-18,0,0)"><tspan |
sodipodi:role="line" |
id="tspan4291" |
x="-221.59973" |
y="152.85362">Phones</tspan></text> |
</g> |
<path |
sodipodi:nodetypes="cc" |
id="path4134" |
d="M 423.9469,211.15582 L 155.1613,167.74075" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.91016495;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Lend);stroke-miterlimit:4;stroke-dasharray:1.910165, 1.910165;stroke-dashoffset:0;stroke-opacity:1" /> |
<path |
sodipodi:nodetypes="cc" |
id="path3073" |
d="M 184.97248,294.8734 L 403.34697,264.85375" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.91016495px;stroke-linecap:butt;stroke-linejoin:miter;marker-start:none;marker-end:url(#Arrow1Lend);stroke-opacity:1" /> |
<path |
sodipodi:nodetypes="cszc" |
id="path4295" |
d="M 522.97472,259.52078 C 522.97472,259.52078 533.079,256.0386 542.59567,251.11897 C 552.11232,246.19932 561.04139,239.84222 558.69095,234.09232 C 553.99009,222.59255 533.60668,211.90239 533.60668,211.90239" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.19385314;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Lend);stroke-miterlimit:4;stroke-dasharray:1.19385312, 1.19385312;stroke-dashoffset:0;stroke-opacity:1" /> |
<text |
transform="matrix(1.27634e-2,-0.999919,0.999919,1.27634e-2,0,0)" |
id="text4297" |
y="576.75055" |
x="-262.33469" |
style="font-size:15.95719242px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="576.75055" |
x="-262.33469" |
id="tspan4299" |
sodipodi:role="line">processing</tspan></text> |
</g> |
</g> |
</svg> |
/design/trunk/src/images/ipc2.svg |
---|
0,0 → 1,341 |
<?xml version="1.0" encoding="UTF-8" standalone="no"?> |
<!-- Created with Inkscape (http://www.inkscape.org/) --> |
<svg |
xmlns:dc="http://purl.org/dc/elements/1.1/" |
xmlns:cc="http://web.resource.org/cc/" |
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" |
xmlns:svg="http://www.w3.org/2000/svg" |
xmlns="http://www.w3.org/2000/svg" |
xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd" |
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" |
width="744.09448819" |
height="1052.3622047" |
id="svg4583" |
sodipodi:version="0.32" |
inkscape:version="0.43" |
sodipodi:docbase="/afs/ms/u/b/bonds0am/BIG/HelenOS-doc/design/trunk/src/images" |
sodipodi:docname="ipc2.svg"> |
<defs |
id="defs4585"> |
<marker |
inkscape:stockid="Arrow1Lstart" |
orient="auto" |
refY="0.0" |
refX="0.0" |
id="Arrow1Lstart" |
style="overflow:visible"> |
<path |
id="path4121" |
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " |
style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none" |
transform="scale(0.8)" /> |
</marker> |
<marker |
inkscape:stockid="Arrow1Mstart" |
orient="auto" |
refY="0.0" |
refX="0.0" |
id="Arrow1Mstart" |
style="overflow:visible"> |
<path |
id="path4115" |
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " |
style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none" |
transform="scale(0.4)" /> |
</marker> |
<marker |
inkscape:stockid="Arrow1Lend" |
orient="auto" |
refY="0.0" |
refX="0.0" |
id="Arrow1Lend" |
style="overflow:visible;"> |
<path |
id="path4118" |
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " |
style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" |
transform="scale(0.8) rotate(180)" /> |
</marker> |
</defs> |
<sodipodi:namedview |
id="base" |
pagecolor="#ffffff" |
bordercolor="#666666" |
borderopacity="1.0" |
inkscape:pageopacity="0.0" |
inkscape:pageshadow="2" |
inkscape:zoom="0.7" |
inkscape:cx="532.76055" |
inkscape:cy="761.05707" |
inkscape:document-units="px" |
inkscape:current-layer="layer1" |
showgrid="true" |
inkscape:window-width="1273" |
inkscape:window-height="943" |
inkscape:window-x="0" |
inkscape:window-y="0" |
showguides="true" |
inkscape:guide-bbox="true" /> |
<metadata |
id="metadata4588"> |
<rdf:RDF> |
<cc:Work |
rdf:about=""> |
<dc:format>image/svg+xml</dc:format> |
<dc:type |
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> |
</cc:Work> |
</rdf:RDF> |
</metadata> |
<g |
inkscape:label="Layer 1" |
inkscape:groupmode="layer" |
id="layer1"> |
<g |
id="g5757" |
transform="matrix(0.746352,0,0,0.746352,3.274672,2.374636)"> |
<rect |
y="11.659255" |
x="15.20762" |
height="528.66608" |
width="294.9639" |
id="rect4591" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:4.59463024;stroke-miterlimit:4;stroke-dasharray:4.59462983, 4.59462983;stroke-dashoffset:0;stroke-opacity:1" /> |
<text |
id="text5466" |
y="40.862053" |
x="133.65926" |
style="font-size:27.22743607px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="40.862053" |
x="133.65926" |
id="tspan5468" |
sodipodi:role="line">Task</tspan></text> |
<path |
sodipodi:nodetypes="cc" |
id="path5472" |
d="M 92.403474,86.506308 L 92.391903,493.91007" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:4.53790617;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<text |
id="text5474" |
y="77.226929" |
x="55.067062" |
style="font-size:14.37403202px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="77.226929" |
x="55.067062" |
id="tspan5476" |
sodipodi:role="line">Thread #1</tspan></text> |
<path |
sodipodi:nodetypes="cc" |
id="path5511" |
d="M 228.45834,86.506331 L 228.44677,493.91009" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:4.53790617;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<text |
id="text5513" |
y="77.226929" |
x="191.12193" |
style="font-size:14.37403202px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="77.226929" |
x="191.12193" |
id="tspan5515" |
sodipodi:role="line">Thread #2</tspan></text> |
<path |
sodipodi:nodetypes="cc" |
id="path5517" |
d="M 471.29553,86.286038 L 471.28396,493.6898" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.26895308px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> |
<text |
id="text5519" |
y="77.006599" |
x="433.95914" |
style="font-size:14.37403202px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="77.006599" |
x="433.95914" |
id="tspan5521" |
sodipodi:role="line">Server #1</tspan></text> |
<path |
sodipodi:nodetypes="cc" |
id="path5523" |
d="M 593.84535,86.506354 L 593.83378,493.91012" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.26895308px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> |
<text |
id="text5525" |
y="77.226929" |
x="556.50897" |
style="font-size:14.37403202px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="77.226929" |
x="556.50897" |
id="tspan5527" |
sodipodi:role="line">Server #2</tspan></text> |
<path |
sodipodi:nodetypes="cc" |
id="path5529" |
d="M 225.11413,106.92689 L 455.57493,148.90252" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.36137187;stroke-linecap:butt;stroke-linejoin:miter;marker-mid:none;marker-end:url(#Arrow1Lend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<path |
sodipodi:nodetypes="cc" |
id="path5531" |
d="M 91.2459,150.03699 L 580.36734,244.36061" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.36137187;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Lend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<rect |
y="231.6268" |
x="101.24749" |
height="134.52795" |
width="118.92212" |
id="rect2795" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2.83619118;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="208.59064" |
x="101.35544" |
height="24.792854" |
width="118.19173" |
id="rect2799" |
style="fill:#bc4343;fill-opacity:1;stroke:#000000;stroke-width:2.07629061;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<text |
transform="scale(1.057982,0.945196)" |
id="text5548" |
y="240.11691" |
x="105.42728" |
style="font-size:16.73596764px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
id="tspan5552" |
y="240.11691" |
x="105.42728" |
sodipodi:role="line">answerbox</tspan></text> |
<path |
sodipodi:nodetypes="cc" |
id="path5568" |
d="M 229.65203,104.65793 L 182.32816,193.79536" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.58826709;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Lend);stroke-miterlimit:4;stroke-dasharray:1.5882671, 1.5882671;stroke-dashoffset:0;stroke-opacity:1" /> |
<path |
sodipodi:nodetypes="cc" |
id="path5572" |
d="M 93.511132,151.77456 L 138.56605,195.53293" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.58826709;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Lend);stroke-miterlimit:4;stroke-dasharray:1.5882671, 1.5882671;stroke-dashoffset:0;stroke-opacity:1" /> |
<path |
sodipodi:nodetypes="cc" |
id="path5582" |
d="M 470.16105,265.7536 L 224.1417,297.35687" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.36137187;stroke-linecap:butt;stroke-linejoin:miter;marker-mid:none;marker-end:url(#Arrow1Lend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<rect |
y="240.79512" |
x="108.30379" |
height="33.061886" |
width="101.81271" |
id="rect5592" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.55098057;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<text |
id="text5574" |
y="265.60031" |
x="111.23518" |
style="font-size:10.27103519px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="265.60031" |
x="111.23518" |
id="tspan5576" |
sodipodi:role="line">sys_wait_for_call()</tspan></text> |
<text |
id="text5594" |
y="254.11801" |
x="127.59748" |
style="font-size:11.56284428px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="254.11801" |
x="127.59748" |
id="tspan5596" |
sodipodi:role="line">thread #1</tspan></text> |
<rect |
y="322.76907" |
x="108.00604" |
height="33.061886" |
width="101.1165" |
id="rect5607" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.54566848;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<text |
id="text5609" |
y="347.57425" |
x="110.94346" |
style="font-size:10.27103519px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="347.57425" |
x="110.94346" |
id="tspan5611" |
sodipodi:role="line">sys_wait_for_call()</tspan></text> |
<text |
id="text5613" |
y="336.09198" |
x="127.30576" |
style="font-size:11.56284428px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="336.09198" |
x="127.30576" |
id="tspan5615" |
sodipodi:role="line">thread #2</tspan></text> |
<rect |
y="290.03143" |
x="169.071" |
height="18.151625" |
width="39.868744" |
id="rect5617" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.36137187;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<path |
sodipodi:nodetypes="cc" |
id="path5619" |
d="M 167.4179,297.35687 L 140.83872,279.85353" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.90758121;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Lend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<path |
sodipodi:nodetypes="cc" |
id="path5621" |
d="M 139.38013,316.96711 L 167.09375,303.02925" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.90758121;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Lstart);marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<text |
sodipodi:linespacing="125%" |
id="text5627" |
y="313.40161" |
x="120.25021" |
style="font-size:40.10351562px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="313.40161" |
x="120.25021" |
id="tspan5629" |
sodipodi:role="line">?</tspan></text> |
<text |
transform="matrix(0.980914,0.194443,-0.194443,0.980914,0,0)" |
id="text5639" |
y="54.174305" |
x="352.47437" |
style="font-size:21.02095985px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="54.174305" |
x="352.47437" |
id="tspan5641" |
sodipodi:role="line">call (1)</tspan></text> |
<text |
transform="matrix(0.980914,0.194443,-0.194443,0.980914,0,0)" |
id="text5647" |
y="124.44096" |
x="366.40308" |
style="font-size:21.02097321px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="124.44096" |
x="366.40308" |
id="tspan5649" |
sodipodi:role="line">call (2)</tspan></text> |
<text |
transform="matrix(0.993805,-0.111141,0.111141,0.993805,0,0)" |
id="text5651" |
y="314.6124" |
x="300.97635" |
style="font-size:21.02099228px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="314.6124" |
x="300.97635" |
id="tspan5653" |
sodipodi:role="line">answer (1)</tspan></text> |
</g> |
</g> |
</svg> |
/design/trunk/src/images/tld_ia32.svg |
---|
0,0 → 1,220 |
<?xml version="1.0" encoding="UTF-8" standalone="no"?> |
<!-- Created with Inkscape (http://www.inkscape.org/) --> |
<svg |
xmlns:dc="http://purl.org/dc/elements/1.1/" |
xmlns:cc="http://web.resource.org/cc/" |
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" |
xmlns:svg="http://www.w3.org/2000/svg" |
xmlns="http://www.w3.org/2000/svg" |
xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd" |
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" |
width="744.09448819" |
height="1052.3622047" |
id="svg1582" |
sodipodi:version="0.32" |
inkscape:version="0.43" |
sodipodi:docbase="/afs/ms.mff.cuni.cz/u/b/bonds0am/BIG/HelenOS-doc/design/trunk/src/images" |
sodipodi:docname="tld_ia32.svg"> |
<defs |
id="defs1584"> |
<marker |
inkscape:stockid="SquareL" |
orient="auto" |
refY="0.0" |
refX="0.0" |
id="SquareL" |
style="overflow:visible"> |
<path |
id="path2579" |
d="M -5.0,-5.0 L -5.0,5.0 L 5.0,5.0 L 5.0,-5.0 L -5.0,-5.0 z " |
style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none" |
transform="scale(0.8)" /> |
</marker> |
<marker |
inkscape:stockid="TriangleOutL" |
orient="auto" |
refY="0.0" |
refX="0.0" |
id="TriangleOutL" |
style="overflow:visible"> |
<path |
id="path2552" |
d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " |
style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none" |
transform="scale(0.8)" /> |
</marker> |
<marker |
inkscape:stockid="Arrow2Lend" |
orient="auto" |
refY="0.0" |
refX="0.0" |
id="Arrow2Lend" |
style="overflow:visible;"> |
<path |
id="path2632" |
style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" |
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " |
transform="scale(1.1) rotate(180) translate(-5,0)" /> |
</marker> |
<marker |
inkscape:stockid="Arrow2Lstart" |
orient="auto" |
refY="0.0" |
refX="0.0" |
id="Arrow2Lstart" |
style="overflow:visible"> |
<path |
id="path2635" |
style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round" |
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " |
transform="scale(1.1) translate(-5,0)" /> |
</marker> |
<marker |
inkscape:stockid="Dot_l" |
orient="auto" |
refY="0.0" |
refX="0.0" |
id="Dot_l" |
style="overflow:visible"> |
<path |
id="path2588" |
d="M -2.5,-1.0 C -2.5,1.7600000 -4.7400000,4.0 -7.5,4.0 C -10.260000,4.0 -12.5,1.7600000 -12.5,-1.0 C -12.5,-3.7600000 -10.260000,-6.0 -7.5,-6.0 C -4.7400000,-6.0 -2.5,-3.7600000 -2.5,-1.0 z " |
style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;marker-end:none" |
transform="scale(0.8) translate(7.125493, 1)" /> |
</marker> |
<marker |
inkscape:stockid="Arrow1Lend" |
orient="auto" |
refY="0.0" |
refX="0.0" |
id="Arrow1Lend" |
style="overflow:visible;"> |
<path |
id="path2650" |
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " |
style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" |
transform="scale(0.8) rotate(180)" /> |
</marker> |
<marker |
inkscape:stockid="Arrow1Mstart" |
orient="auto" |
refY="0" |
refX="0" |
id="Arrow1Mstart" |
style="overflow:visible"> |
<path |
id="path15935" |
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z " |
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" |
transform="scale(0.4,0.4)" /> |
</marker> |
</defs> |
<sodipodi:namedview |
id="base" |
pagecolor="#ffffff" |
bordercolor="#666666" |
borderopacity="1.0" |
inkscape:pageopacity="0.0" |
inkscape:pageshadow="2" |
inkscape:zoom="0.7" |
inkscape:cx="689.54683" |
inkscape:cy="575.64481" |
inkscape:document-units="px" |
inkscape:current-layer="layer1" |
showgrid="true" |
inkscape:window-width="1273" |
inkscape:window-height="943" |
inkscape:window-x="0" |
inkscape:window-y="0" /> |
<metadata |
id="metadata1587"> |
<rdf:RDF> |
<cc:Work |
rdf:about=""> |
<dc:format>image/svg+xml</dc:format> |
<dc:type |
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> |
</cc:Work> |
</rdf:RDF> |
</metadata> |
<g |
inkscape:label="Layer 1" |
inkscape:groupmode="layer" |
id="layer1"> |
<g |
id="g2682" |
transform="translate(-213,-328.9286)"> |
<rect |
style="fill:#bc4343;fill-opacity:1;stroke:#000000;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
id="rect2598" |
width="290.75568" |
height="37.531872" |
x="220.74432" |
y="377.83032" |
rx="0" |
ry="0" /> |
<rect |
y="377.66086" |
x="512.25464" |
height="37.866085" |
width="35.662514" |
id="rect2612" |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<text |
id="text1597" |
y="405.07123" |
x="275.66791" |
style="font-size:20.54834366px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="405.07123" |
x="275.66791" |
id="tspan1599" |
sodipodi:role="line">Thread local data</tspan></text> |
<path |
id="path2474" |
d="M 220,333.79075 L 220,454.36218 L 220,454.36218 L 220,454.36218" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:2, 1;stroke-dashoffset:0;stroke-opacity:1" /> |
<path |
id="path2476" |
d="M 511.5,333.86218 L 511.5,454.43361 L 511.5,454.43361 L 511.5,454.43361" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:2, 1;stroke-dashoffset:0;stroke-opacity:1" /> |
<path |
sodipodi:nodetypes="csszc" |
id="path2478" |
d="M 531.04061,397.36218 C 531.04061,397.36218 564.8923,389.313 574.2255,399.98575 C 579.21427,405.69052 581.45496,421.72292 575.88572,432.14181 C 571.03578,441.21503 558.92057,445.17685 554.64721,445.24035 C 536.28617,445.51319 519.07107,424.95863 519.07107,424.95863" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Dot_l);marker-end:url(#Arrow1Lend);stroke-opacity:1" /> |
<text |
id="text2662" |
y="434.47937" |
x="585.41992" |
style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="434.47937" |
x="585.41992" |
id="tspan2664" |
sodipodi:role="line">self-reference</tspan></text> |
<rect |
y="460.12039" |
x="477.75821" |
height="30.983606" |
width="68.163933" |
id="rect2680" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.51639342;stroke-miterlimit:4;stroke-dasharray:1.03278689, 0.51639344;stroke-dashoffset:0;stroke-opacity:1" /> |
<text |
id="text2666" |
y="486.26843" |
x="495.32617" |
style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="486.26843" |
x="495.32617" |
id="tspan2668" |
sodipodi:role="line">GS/FS</tspan></text> |
<path |
sodipodi:nodetypes="cc" |
id="path2670" |
d="M 511,467.87741 L 511,435.36218" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#SquareL);marker-end:url(#TriangleOutL);stroke-opacity:1" /> |
</g> |
</g> |
</svg> |
/design/trunk/src/images/tld_ia64.svg |
---|
0,0 → 1,263 |
<?xml version="1.0" encoding="UTF-8" standalone="no"?> |
<!-- Created with Inkscape (http://www.inkscape.org/) --> |
<svg |
xmlns:dc="http://purl.org/dc/elements/1.1/" |
xmlns:cc="http://web.resource.org/cc/" |
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" |
xmlns:svg="http://www.w3.org/2000/svg" |
xmlns="http://www.w3.org/2000/svg" |
xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd" |
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" |
width="744.09448819" |
height="1052.3622047" |
id="svg1582" |
sodipodi:version="0.32" |
inkscape:version="0.43" |
sodipodi:docbase="/afs/ms.mff.cuni.cz/u/b/bonds0am/BIG/HelenOS-doc/design/trunk/src/images" |
sodipodi:docname="tld_ia64.svg"> |
<defs |
id="defs1584"> |
<marker |
inkscape:stockid="Arrow2Mend" |
orient="auto" |
refY="0.0" |
refX="0.0" |
id="Arrow2Mend" |
style="overflow:visible;"> |
<path |
id="path2626" |
style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" |
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " |
transform="scale(0.6) rotate(180) translate(-5,0)" /> |
</marker> |
<marker |
inkscape:stockid="Arrow2Mstart" |
orient="auto" |
refY="0.0" |
refX="0.0" |
id="Arrow2Mstart" |
style="overflow:visible"> |
<path |
id="path2629" |
style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round" |
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " |
transform="scale(0.6) translate(-5,0)" /> |
</marker> |
<marker |
inkscape:stockid="Arrow1Lstart" |
orient="auto" |
refY="0.0" |
refX="0.0" |
id="Arrow1Lstart" |
style="overflow:visible"> |
<path |
id="path2653" |
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " |
style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none" |
transform="scale(0.8)" /> |
</marker> |
<marker |
inkscape:stockid="SquareL" |
orient="auto" |
refY="0.0" |
refX="0.0" |
id="SquareL" |
style="overflow:visible"> |
<path |
id="path2579" |
d="M -5.0,-5.0 L -5.0,5.0 L 5.0,5.0 L 5.0,-5.0 L -5.0,-5.0 z " |
style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none" |
transform="scale(0.8)" /> |
</marker> |
<marker |
inkscape:stockid="TriangleOutL" |
orient="auto" |
refY="0.0" |
refX="0.0" |
id="TriangleOutL" |
style="overflow:visible"> |
<path |
id="path2552" |
d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " |
style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none" |
transform="scale(0.8)" /> |
</marker> |
<marker |
inkscape:stockid="Arrow2Lend" |
orient="auto" |
refY="0.0" |
refX="0.0" |
id="Arrow2Lend" |
style="overflow:visible;"> |
<path |
id="path2632" |
style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" |
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " |
transform="scale(1.1) rotate(180) translate(-5,0)" /> |
</marker> |
<marker |
inkscape:stockid="Arrow2Lstart" |
orient="auto" |
refY="0.0" |
refX="0.0" |
id="Arrow2Lstart" |
style="overflow:visible"> |
<path |
id="path2635" |
style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round" |
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " |
transform="scale(1.1) translate(-5,0)" /> |
</marker> |
<marker |
inkscape:stockid="Dot_l" |
orient="auto" |
refY="0.0" |
refX="0.0" |
id="Dot_l" |
style="overflow:visible"> |
<path |
id="path2588" |
d="M -2.5,-1.0 C -2.5,1.7600000 -4.7400000,4.0 -7.5,4.0 C -10.260000,4.0 -12.5,1.7600000 -12.5,-1.0 C -12.5,-3.7600000 -10.260000,-6.0 -7.5,-6.0 C -4.7400000,-6.0 -2.5,-3.7600000 -2.5,-1.0 z " |
style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;marker-end:none" |
transform="scale(0.8) translate(7.125493, 1)" /> |
</marker> |
<marker |
inkscape:stockid="Arrow1Lend" |
orient="auto" |
refY="0.0" |
refX="0.0" |
id="Arrow1Lend" |
style="overflow:visible;"> |
<path |
id="path2650" |
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " |
style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" |
transform="scale(0.8) rotate(180)" /> |
</marker> |
<marker |
inkscape:stockid="Arrow1Mstart" |
orient="auto" |
refY="0" |
refX="0" |
id="Arrow1Mstart" |
style="overflow:visible"> |
<path |
id="path15935" |
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z " |
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" |
transform="scale(0.4,0.4)" /> |
</marker> |
</defs> |
<sodipodi:namedview |
id="base" |
pagecolor="#ffffff" |
bordercolor="#666666" |
borderopacity="1.0" |
inkscape:pageopacity="0.0" |
inkscape:pageshadow="2" |
inkscape:zoom="1.4" |
inkscape:cx="370.17694" |
inkscape:cy="1025.8423" |
inkscape:document-units="px" |
inkscape:current-layer="layer1" |
showgrid="true" |
inkscape:window-width="1273" |
inkscape:window-height="943" |
inkscape:window-x="0" |
inkscape:window-y="0" /> |
<metadata |
id="metadata1587"> |
<rdf:RDF> |
<cc:Work |
rdf:about=""> |
<dc:format>image/svg+xml</dc:format> |
<dc:type |
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> |
</cc:Work> |
</rdf:RDF> |
</metadata> |
<g |
inkscape:label="Layer 1" |
inkscape:groupmode="layer" |
id="layer1"> |
<rect |
ry="0" |
rx="0" |
y="93.43203" |
x="108.01039" |
height="39.52552" |
width="306.20029" |
id="rect2598" |
style="fill:#bc4343;fill-opacity:1;stroke:#000000;stroke-width:1.50846708;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<text |
xml:space="preserve" |
style="font-size:21.6398468px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
x="165.85146" |
y="122.11993" |
id="text1597"><tspan |
sodipodi:role="line" |
id="tspan1599" |
x="165.85146" |
y="122.11993">Thread local data</tspan></text> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.05311882;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:2.10623765, 1.05311883;stroke-dashoffset:0;stroke-opacity:1" |
d="M 107.22652,47.053124 L 107.22652,174.02917 L 107.22652,174.02917 L 107.22652,174.02917" |
id="path2474" /> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.05311882;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:2.10623765, 1.05311883;stroke-dashoffset:0;stroke-opacity:1" |
d="M 414.21066,47.128348 L 414.21066,174.10438 L 414.21066,174.10438 L 414.21066,174.10438" |
id="path2476" /> |
<g |
id="g2714" |
transform="matrix(1.053119,0,0,1.053119,-274.7186,-26.30638)"> |
<rect |
y="179.19179" |
x="286.75821" |
height="30.983606" |
width="68.163933" |
id="rect2680" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.51639342;stroke-miterlimit:4;stroke-dasharray:1.03278689, 0.51639344;stroke-dashoffset:0;stroke-opacity:1" /> |
<text |
id="text2666" |
y="205.33983" |
x="304.32617" |
style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="205.33983" |
x="304.32617" |
id="tspan2668" |
sodipodi:role="line"> r13</tspan></text> |
</g> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.05311882px;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#SquareL);marker-end:url(#TriangleOutL);stroke-opacity:1" |
d="M 61.942743,172.80135 L 61.942743,138.55894" |
id="path2670" |
sodipodi:nodetypes="cc" /> |
<rect |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.50846708;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect2710" |
width="45.235641" |
height="39.124287" |
x="61.863979" |
y="93.483665" /> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.05311882;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:2.10623765, 1.05311883;stroke-dashoffset:0;stroke-opacity:1" |
d="M 61.316238,47.287443 L 61.316238,174.26349 L 61.316238,174.26349 L 61.316238,174.26349" |
id="path2712" /> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.84295785;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow2Mstart);marker-mid:none;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
d="M 69.145182,45.664617 L 98.740634,45.554865" |
id="path2726" |
sodipodi:nodetypes="cc" /> |
<text |
xml:space="preserve" |
style="font-size:14.48128414px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
x="56.652172" |
y="37.390232" |
id="text2773"><tspan |
sodipodi:role="line" |
id="tspan2775" |
x="56.652172" |
y="37.390232">16 bytes</tspan></text> |
</g> |
</svg> |
/design/trunk/src/images/tld_mips.svg |
---|
0,0 → 1,271 |
<?xml version="1.0" encoding="UTF-8" standalone="no"?> |
<!-- Created with Inkscape (http://www.inkscape.org/) --> |
<svg |
xmlns:dc="http://purl.org/dc/elements/1.1/" |
xmlns:cc="http://web.resource.org/cc/" |
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" |
xmlns:svg="http://www.w3.org/2000/svg" |
xmlns="http://www.w3.org/2000/svg" |
xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd" |
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" |
width="744.09448819" |
height="1052.3622047" |
id="svg1582" |
sodipodi:version="0.32" |
inkscape:version="0.43" |
sodipodi:docbase="/afs/ms.mff.cuni.cz/u/b/bonds0am/BIG/HelenOS-doc/design/trunk/src/images" |
sodipodi:docname="tld_mips.svg"> |
<defs |
id="defs1584"> |
<marker |
inkscape:stockid="Arrow2Mend" |
orient="auto" |
refY="0.0" |
refX="0.0" |
id="Arrow2Mend" |
style="overflow:visible;"> |
<path |
id="path2626" |
style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" |
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " |
transform="scale(0.6) rotate(180) translate(-5,0)" /> |
</marker> |
<marker |
inkscape:stockid="Arrow2Mstart" |
orient="auto" |
refY="0.0" |
refX="0.0" |
id="Arrow2Mstart" |
style="overflow:visible"> |
<path |
id="path2629" |
style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round" |
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " |
transform="scale(0.6) translate(-5,0)" /> |
</marker> |
<marker |
inkscape:stockid="Arrow1Lstart" |
orient="auto" |
refY="0.0" |
refX="0.0" |
id="Arrow1Lstart" |
style="overflow:visible"> |
<path |
id="path2653" |
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " |
style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none" |
transform="scale(0.8)" /> |
</marker> |
<marker |
inkscape:stockid="SquareL" |
orient="auto" |
refY="0.0" |
refX="0.0" |
id="SquareL" |
style="overflow:visible"> |
<path |
id="path2579" |
d="M -5.0,-5.0 L -5.0,5.0 L 5.0,5.0 L 5.0,-5.0 L -5.0,-5.0 z " |
style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none" |
transform="scale(0.8)" /> |
</marker> |
<marker |
inkscape:stockid="TriangleOutL" |
orient="auto" |
refY="0.0" |
refX="0.0" |
id="TriangleOutL" |
style="overflow:visible"> |
<path |
id="path2552" |
d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " |
style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none" |
transform="scale(0.8)" /> |
</marker> |
<marker |
inkscape:stockid="Arrow2Lend" |
orient="auto" |
refY="0.0" |
refX="0.0" |
id="Arrow2Lend" |
style="overflow:visible;"> |
<path |
id="path2632" |
style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" |
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " |
transform="scale(1.1) rotate(180) translate(-5,0)" /> |
</marker> |
<marker |
inkscape:stockid="Arrow2Lstart" |
orient="auto" |
refY="0.0" |
refX="0.0" |
id="Arrow2Lstart" |
style="overflow:visible"> |
<path |
id="path2635" |
style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round" |
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " |
transform="scale(1.1) translate(-5,0)" /> |
</marker> |
<marker |
inkscape:stockid="Dot_l" |
orient="auto" |
refY="0.0" |
refX="0.0" |
id="Dot_l" |
style="overflow:visible"> |
<path |
id="path2588" |
d="M -2.5,-1.0 C -2.5,1.7600000 -4.7400000,4.0 -7.5,4.0 C -10.260000,4.0 -12.5,1.7600000 -12.5,-1.0 C -12.5,-3.7600000 -10.260000,-6.0 -7.5,-6.0 C -4.7400000,-6.0 -2.5,-3.7600000 -2.5,-1.0 z " |
style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;marker-end:none" |
transform="scale(0.8) translate(7.125493, 1)" /> |
</marker> |
<marker |
inkscape:stockid="Arrow1Lend" |
orient="auto" |
refY="0.0" |
refX="0.0" |
id="Arrow1Lend" |
style="overflow:visible;"> |
<path |
id="path2650" |
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " |
style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" |
transform="scale(0.8) rotate(180)" /> |
</marker> |
<marker |
inkscape:stockid="Arrow1Mstart" |
orient="auto" |
refY="0" |
refX="0" |
id="Arrow1Mstart" |
style="overflow:visible"> |
<path |
id="path15935" |
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z " |
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" |
transform="scale(0.4,0.4)" /> |
</marker> |
</defs> |
<sodipodi:namedview |
id="base" |
pagecolor="#ffffff" |
bordercolor="#666666" |
borderopacity="1.0" |
inkscape:pageopacity="0.0" |
inkscape:pageshadow="2" |
inkscape:zoom="1.4" |
inkscape:cx="401.92915" |
inkscape:cy="1025.8423" |
inkscape:document-units="px" |
inkscape:current-layer="layer1" |
showgrid="true" |
inkscape:window-width="1273" |
inkscape:window-height="943" |
inkscape:window-x="0" |
inkscape:window-y="0" /> |
<metadata |
id="metadata1587"> |
<rdf:RDF> |
<cc:Work |
rdf:about=""> |
<dc:format>image/svg+xml</dc:format> |
<dc:type |
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> |
</cc:Work> |
</rdf:RDF> |
</metadata> |
<g |
inkscape:label="Layer 1" |
inkscape:groupmode="layer" |
id="layer1"> |
<g |
id="g2738" |
transform="matrix(0.610332,0,0,0.610332,7.10554,1.41723)"> |
<rect |
style="fill:#bc4343;fill-opacity:1;stroke:#000000;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
id="rect2598" |
width="290.75568" |
height="37.531872" |
x="29.744324" |
y="96.901726" |
rx="0" |
ry="0" /> |
<text |
id="text1597" |
y="124.14263" |
x="84.667908" |
style="font-size:20.54834366px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="124.14263" |
x="84.667908" |
id="tspan1599" |
sodipodi:role="line">Thread local data</tspan></text> |
<path |
id="path2474" |
d="M 29,52.86215 L 29,173.43358 L 29,173.43358 L 29,173.43358" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:2, 1;stroke-dashoffset:0;stroke-opacity:1" /> |
<path |
id="path2476" |
d="M 320.5,52.93358 L 320.5,173.50501 L 320.5,173.50501 L 320.5,173.50501" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:2, 1;stroke-dashoffset:0;stroke-opacity:1" /> |
<g |
transform="translate(-2,-24)" |
id="g2719"> |
<g |
id="g2714" |
transform="translate(352.8197,12.92859)"> |
<rect |
y="179.19179" |
x="286.75821" |
height="30.983606" |
width="68.163933" |
id="rect2680" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.51639342;stroke-miterlimit:4;stroke-dasharray:1.03278689, 0.51639344;stroke-dashoffset:0;stroke-opacity:1" /> |
<text |
id="text2666" |
y="205.33983" |
x="304.32617" |
style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="205.33983" |
x="304.32617" |
id="tspan2668" |
sodipodi:role="line">K1/R2</tspan></text> |
</g> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#SquareL);marker-end:url(#TriangleOutL);stroke-opacity:1" |
d="M 672.5,201.99341 L 672.5,169.47818" |
id="path2670" |
sodipodi:nodetypes="cc" /> |
</g> |
<rect |
y="96.362183" |
x="321" |
height="38" |
width="350" |
id="rect2710" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<path |
id="path2712" |
d="M 670.5,54.290754 L 670.5,174.86218 L 670.5,174.86218 L 670.5,174.86218" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:2, 1;stroke-dashoffset:0;stroke-opacity:1" /> |
<path |
sodipodi:nodetypes="cc" |
id="path2726" |
d="M 37.857143,52.362183 L 664.28572,53.076469" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.75;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow2Mstart);marker-mid:none;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<text |
id="text2734" |
y="45.157558" |
x="314.04745" |
style="font-size:14.45062828px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="45.157558" |
x="314.04745" |
id="tspan2736" |
sodipodi:role="line">0x7000</tspan></text> |
</g> |
</g> |
</svg> |
/design/trunk/src/images/convert |
---|
0,0 → 1,20 |
#!/bin/bash |
for f in `ls *.svg | sed 's/\.svg//g'`; |
do |
if [ ! -f "$f.eps" ]; then |
echo "Converting $f.svg to $f.eps"; |
inkscape --without-gui --export-eps=$f.eps $f.svg |
fi |
if [ ! -f "$f.pdf" ]; then |
echo "Converting $f.eps to $f.pdf"; |
egrep -v "^%%Orientation:" $f.eps | epstopdf --filter --outfile $f.pdf |
fi |
if [ ! -f "$f.png" ]; then |
echo "Converting $f.svg to $f.png"; |
inkscape -D -X -Y -W -H --without-gui --export-width=600 --export-png=$f.png $f.svg |
fi |
done |
Property changes: |
Added: svn:executable |
+* |
\ No newline at end of property |
/design/trunk/src/images/btree.svg |
---|
0,0 → 1,1054 |
<?xml version="1.0" encoding="UTF-8" standalone="no"?> |
<!-- Created with Inkscape (http://www.inkscape.org/) --> |
<svg |
xmlns:dc="http://purl.org/dc/elements/1.1/" |
xmlns:cc="http://web.resource.org/cc/" |
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" |
xmlns:svg="http://www.w3.org/2000/svg" |
xmlns="http://www.w3.org/2000/svg" |
xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd" |
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" |
inkscape:export-ydpi="99.956085" |
inkscape:export-xdpi="99.956085" |
inkscape:export-filename="/afs/ms.mff.cuni.cz/u/j/jermj0bm/BIG/HelenOS-doc/design/src/images/btree.png" |
sodipodi:docname="btree.svg" |
sodipodi:docbase="/tmp/bonds0am/HelenOS-doc/design/trunk/src/images.vector" |
inkscape:version="0.43" |
sodipodi:version="0.32" |
id="svg2" |
height="841.88977pt" |
width="595.27557pt" |
version="1.0"> |
<defs |
id="defs4"> |
<marker |
inkscape:stockid="Arrow1Mend" |
orient="auto" |
refY="0" |
refX="0" |
id="Arrow1Mend" |
style="overflow:visible"> |
<path |
id="path15932" |
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z " |
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" |
transform="scale(-0.4,-0.4)" /> |
</marker> |
<marker |
inkscape:stockid="Arrow1Lstart" |
orient="auto" |
refY="0" |
refX="0" |
id="Arrow1Lstart" |
style="overflow:visible"> |
<path |
id="path15941" |
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z " |
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" |
transform="scale(0.8,0.8)" /> |
</marker> |
<marker |
inkscape:stockid="Arrow1Mstart" |
orient="auto" |
refY="0" |
refX="0" |
id="Arrow1Mstart" |
style="overflow:visible"> |
<path |
id="path15935" |
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z " |
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" |
transform="scale(0.4,0.4)" /> |
</marker> |
<marker |
inkscape:stockid="Arrow2Sstart" |
orient="auto" |
refY="0" |
refX="0" |
id="Arrow2Sstart" |
style="overflow:visible"> |
<path |
id="path15911" |
style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" |
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " |
transform="matrix(0.3,0,0,0.3,-1.5,0)" /> |
</marker> |
<marker |
inkscape:stockid="TriangleInM" |
orient="auto" |
refY="0" |
refX="0" |
id="TriangleInM" |
style="overflow:visible"> |
<path |
id="path15846" |
d="M 5.77,0 L -2.88,5 L -2.88,-5 L 5.77,0 z " |
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" |
transform="scale(-0.4,-0.4)" /> |
</marker> |
<marker |
inkscape:stockid="Arrow2Send" |
orient="auto" |
refY="0" |
refX="0" |
id="Arrow2Send" |
style="overflow:visible"> |
<path |
id="path15908" |
style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" |
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " |
transform="matrix(-0.3,0,0,-0.3,1.5,0)" /> |
</marker> |
<marker |
inkscape:stockid="Arrow2Mstart" |
orient="auto" |
refY="0" |
refX="0" |
id="Arrow2Mstart" |
style="overflow:visible"> |
<path |
id="path15917" |
style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" |
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " |
transform="matrix(0.6,0,0,0.6,-3,0)" /> |
</marker> |
<marker |
inkscape:stockid="Arrow2Lend" |
orient="auto" |
refY="0" |
refX="0" |
id="Arrow2Lend" |
style="overflow:visible"> |
<path |
id="path15920" |
style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" |
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " |
transform="matrix(-1.1,0,0,-1.1,5.5,0)" /> |
</marker> |
<marker |
inkscape:stockid="Arrow2Mend" |
orient="auto" |
refY="0" |
refX="0" |
id="Arrow2Mend" |
style="overflow:visible"> |
<path |
id="path15914" |
style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" |
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " |
transform="matrix(-0.6,0,0,-0.6,3,0)" /> |
</marker> |
</defs> |
<sodipodi:namedview |
inkscape:window-y="0" |
inkscape:window-x="0" |
inkscape:window-height="943" |
inkscape:window-width="1272" |
showguides="true" |
showgrid="true" |
inkscape:current-layer="layer1" |
inkscape:document-units="px" |
inkscape:cy="565.81824" |
inkscape:cx="450.04293" |
inkscape:zoom="0.55531454" |
inkscape:pageshadow="2" |
inkscape:pageopacity="0.0" |
borderopacity="1.0" |
bordercolor="#666666" |
pagecolor="#ffffff" |
id="base" |
showborder="true" |
inkscape:showpageshadow="false" /> |
<metadata |
id="metadata7"> |
<rdf:RDF> |
<cc:Work |
rdf:about=""> |
<dc:format>image/svg+xml</dc:format> |
<dc:type |
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> |
</cc:Work> |
</rdf:RDF> |
</metadata> |
<g |
id="layer1" |
inkscape:groupmode="layer" |
inkscape:label="Layer 1"> |
<g |
id="g1798" |
transform="matrix(1.141349,0,0,1.141349,-33.93189,-15.7712)"> |
<rect |
style="fill:#ffffff;fill-opacity:1" |
id="rect3922" |
width="0" |
height="3" |
x="233" |
y="284.36218" |
ry="0" /> |
<g |
transform="translate(42.7725,1.826864)" |
id="g19792"> |
<rect |
ry="0" |
rx="0" |
y="11.5" |
x="227.68846" |
height="20.173136" |
width="66.138458" |
id="rect3093" |
style="fill:#bc4343;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" /> |
<rect |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.53443897px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" |
id="rect3792" |
width="12.289355" |
height="13.048913" |
x="230.60747" |
y="15.41913" /> |
<rect |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.53443897px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" |
id="rect3794" |
width="12.289355" |
height="13.048913" |
x="247.0869" |
y="15.41913" /> |
<rect |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.53443897px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" |
id="rect3796" |
width="12.289355" |
height="13.048913" |
x="262.7825" |
y="15.41913" /> |
<rect |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.53443897px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" |
id="rect3798" |
width="12.289355" |
height="13.048913" |
x="278.67245" |
y="15.41913" /> |
<text |
xml:space="preserve" |
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
x="233.05537" |
y="25.358408" |
id="text4217" |
sodipodi:linespacing="100%"><tspan |
sodipodi:role="line" |
id="tspan4233" |
x="233.05537" |
y="25.358408">7</tspan></text> |
</g> |
<rect |
style="fill:#bc4343;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" |
id="rect4003" |
width="66.138458" |
height="20.173136" |
x="132.82686" |
y="56.500011" |
rx="0" |
ry="0" /> |
<g |
transform="matrix(1.373285,0,0,1.55178,73.22626,-38.22044)" |
id="g4005"> |
<rect |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.05112457px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" |
id="rect4007" |
width="8.9488745" |
height="8.4089966" |
x="45.525562" |
y="63.565441" /> |
<rect |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.05112457px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" |
id="rect4009" |
width="8.9488745" |
height="8.4089966" |
x="57.525562" |
y="63.565441" /> |
<rect |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.05112457px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" |
id="rect4011" |
width="8.9488745" |
height="8.4089966" |
x="68.954796" |
y="63.565441" /> |
<rect |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.05112457px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" |
id="rect4013" |
width="8.9488745" |
height="8.4089966" |
x="80.525566" |
y="63.565441" /> |
</g> |
<text |
sodipodi:linespacing="100%" |
id="text4223" |
y="70.358398" |
x="138.56709" |
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="70.358398" |
x="138.56709" |
id="tspan4231" |
sodipodi:role="line">3</tspan></text> |
<text |
sodipodi:linespacing="100%" |
id="text4227" |
y="70.358398" |
x="155.05539" |
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="70.358398" |
x="155.05539" |
id="tspan4229" |
sodipodi:role="line">5</tspan></text> |
<rect |
style="fill:#bc4343;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" |
id="rect4021" |
width="66.138458" |
height="20.173136" |
x="57.826836" |
y="106.50002" |
rx="0" |
ry="0" /> |
<rect |
y="110.41915" |
x="60.745811" |
height="13.048913" |
width="12.289355" |
id="rect4025" |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.53443897px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> |
<rect |
y="110.41915" |
x="77.225227" |
height="13.048913" |
width="12.289355" |
id="rect4027" |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.53443897px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> |
<rect |
y="110.41915" |
x="92.920822" |
height="13.048913" |
width="12.289355" |
id="rect4029" |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.53443897px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> |
<rect |
y="110.41915" |
x="108.81079" |
height="13.048913" |
width="12.289355" |
id="rect4031" |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.53443897px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> |
<rect |
style="fill:#bc4343;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" |
id="rect4039" |
width="66.138458" |
height="20.173136" |
x="132.82684" |
y="106.50002" |
rx="0" |
ry="0" /> |
<rect |
y="110.41915" |
x="135.74582" |
height="13.048913" |
width="12.289355" |
id="rect4043" |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.53443897px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> |
<rect |
y="110.41915" |
x="152.22523" |
height="13.048913" |
width="12.289355" |
id="rect4045" |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.53443897px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> |
<rect |
y="110.41915" |
x="167.92082" |
height="13.048913" |
width="12.289355" |
id="rect4047" |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.53443897px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> |
<rect |
y="110.41915" |
x="183.81079" |
height="13.048913" |
width="12.289355" |
id="rect4049" |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.53443897px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> |
<rect |
style="fill:#bc4343;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" |
id="rect4057" |
width="66.138458" |
height="20.173136" |
x="207.68837" |
y="106.50001" |
rx="0" |
ry="0" /> |
<rect |
y="110.41914" |
x="210.60738" |
height="13.048913" |
width="12.289355" |
id="rect4061" |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.53443897px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> |
<rect |
y="110.41914" |
x="227.08679" |
height="13.048913" |
width="12.289355" |
id="rect4063" |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.53443897px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> |
<rect |
y="110.41914" |
x="242.78239" |
height="13.048913" |
width="12.289355" |
id="rect4065" |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.53443897px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> |
<rect |
y="110.41914" |
x="258.67236" |
height="13.048913" |
width="12.289355" |
id="rect4067" |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.53443897px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> |
<text |
sodipodi:linespacing="100%" |
id="text4235" |
y="120.35841" |
x="63.157913" |
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="120.35841" |
x="63.157913" |
id="tspan4239" |
sodipodi:role="line">1</tspan></text> |
<text |
sodipodi:linespacing="100%" |
id="text4241" |
y="120.35841" |
x="79.664749" |
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="120.35841" |
x="79.664749" |
id="tspan4245" |
sodipodi:role="line">2</tspan></text> |
<text |
sodipodi:linespacing="100%" |
id="text4247" |
y="120.35841" |
x="138.66475" |
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="120.35841" |
x="138.66475" |
id="tspan4249" |
sodipodi:role="line">3</tspan></text> |
<text |
sodipodi:linespacing="100%" |
id="text4251" |
y="120.35841" |
x="155.15791" |
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="120.35841" |
x="155.15791" |
id="tspan4255" |
sodipodi:role="line">4</tspan></text> |
<text |
sodipodi:linespacing="100%" |
id="text4257" |
y="120.35841" |
x="213.15791" |
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="120.35841" |
x="213.15791" |
id="tspan4261" |
sodipodi:role="line">5</tspan></text> |
<text |
sodipodi:linespacing="100%" |
id="text4263" |
y="120.35841" |
x="230.05537" |
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="120.35841" |
x="230.05537" |
id="tspan4267" |
sodipodi:role="line">6</tspan></text> |
<path |
sodipodi:nodetypes="cc" |
inkscape:connector-type="polyline" |
id="path4199" |
d="M 166.81506,56.094428 L 270.59025,33.635433" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-opacity:1;display:inline" /> |
<path |
sodipodi:nodetypes="cc" |
inkscape:connector-type="polyline" |
id="path4201" |
d="M 313.75042,168.65175 L 287.7288,32.813649" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-opacity:1;display:inline" /> |
<path |
sodipodi:nodetypes="cc" |
inkscape:connector-type="polyline" |
id="path4205" |
d="M 95.236005,103.40321 L 132.8731,76.505927" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-opacity:1;display:inline" /> |
<path |
sodipodi:nodetypes="cc" |
inkscape:connector-type="polyline" |
id="path4207" |
d="M 150.45418,76.7899 L 163.90901,102.01447" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-start:none;marker-end:url(#Arrow1Mend);stroke-opacity:1;display:inline" /> |
<path |
sodipodi:nodetypes="cc" |
inkscape:connector-type="polyline" |
id="path4209" |
d="M 166.44322,76.917363 L 237.36514,104.79421" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Mend);stroke-opacity:1;display:inline" /> |
<rect |
inkscape:connector-avoid="true" |
y="19.051414" |
x="67.418739" |
height="41.448586" |
width="48.408092" |
id="rect6363" |
style="fill:#bc4343;fill-opacity:1;fill-rule:evenodd;stroke-linecap:butt" /> |
<rect |
y="22.5" |
x="71.314186" |
height="16" |
width="41" |
id="rect7238" |
style="fill:#2f11d0;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-linecap:butt;stroke-opacity:1" /> |
<rect |
y="41" |
x="71.326828" |
height="16" |
width="41" |
id="rect8113" |
style="fill:#2f11d0;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-linecap:butt;stroke-opacity:1" /> |
<text |
sodipodi:linespacing="125%" |
id="text8115" |
y="33.925781" |
x="80.026047" |
style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#f3f1fc;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="33.925781" |
x="80.026047" |
id="tspan8119" |
sodipodi:role="line">root</tspan></text> |
<text |
sodipodi:linespacing="125%" |
id="text8121" |
y="53.330078" |
x="71.606125" |
style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="53.330078" |
x="71.606125" |
id="tspan8125" |
sodipodi:role="line">leaves</tspan></text> |
<path |
sodipodi:nodetypes="cc" |
inkscape:connector-type="polyline" |
id="path8136" |
d="M 115.82683,32.5 L 262.13796,25.069591" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;marker-mid:none;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline" /> |
<path |
sodipodi:nodetypes="ccccc" |
id="path8161" |
d="M 59.178273,44.5 L 48.82683,44.5 L 32.000003,44.117572 L 32.382432,121.88243 L 57.061974,121.88243" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow2Mstart);marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<path |
sodipodi:nodetypes="cccc" |
id="path8163" |
d="M 67.591686,53.5 L 39.178596,53.882428 L 39.178596,112.5 L 49.413417,112.5" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<path |
sodipodi:nodetypes="cc" |
inkscape:connector-type="polyline" |
id="path8165" |
d="M 123.82683,111.96709 L 129.74528,111.96709" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Send);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<path |
sodipodi:nodetypes="cc" |
inkscape:connector-type="polyline" |
id="path8167" |
d="M 127.26868,121.5 L 132.8047,121.43255" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow2Sstart);marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<path |
sodipodi:nodetypes="cc" |
inkscape:connector-type="polyline" |
id="path16837" |
d="M 198.58401,112.09898 L 204.50246,112.09898" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Send);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<path |
sodipodi:nodetypes="cc" |
inkscape:connector-type="polyline" |
id="path16845" |
d="M 202.29081,122.10712 L 207.82683,122.03967" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow2Sstart);marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<path |
inkscape:connector-type="polyline" |
id="path17012" |
d="M 67.513213,126.5 L 67.513213,142.50596" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Send);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<path |
inkscape:connector-type="polyline" |
id="path17014" |
d="M 84.002562,126.68311 L 84.002562,142.68907" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Send);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<path |
inkscape:connector-type="polyline" |
id="path17016" |
d="M 141.9494,126.68311 L 141.9494,142.68907" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Send);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<path |
inkscape:connector-type="polyline" |
id="path17018" |
d="M 158.9494,126.68311 L 158.9494,142.68907" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Send);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<path |
inkscape:connector-type="polyline" |
id="path17020" |
d="M 217.00256,126.68311 L 217.00256,142.68907" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Send);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<path |
inkscape:connector-type="polyline" |
id="path17022" |
d="M 233.9494,126.68311 L 233.9494,142.68907" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Send);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<g |
id="g20365"> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow2Sstart);marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline" |
d="M 278.03854,122.2002 L 285.18878,122.12062 L 285.60419,149.01836 L 248.50601,178.72086 L 190.69269,178.13396 L 190.63125,236.42271 L 208.11212,236.65518" |
id="path16847" |
inkscape:connector-type="polyline" |
sodipodi:nodetypes="ccccccc" |
inkscape:export-filename="/afs/ms/u/j/jermj0bm/BIG/HelenOS-doc/design/src/images/btree.png" |
inkscape:export-xdpi="99.956085" |
inkscape:export-ydpi="99.956085" /> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Send);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline" |
d="M 274.92516,112.44957 L 291.77186,112.56189 L 291.74379,151.04239 L 252.44916,183.91339 L 196.98622,184.38514 L 197.09474,229.30652 L 204.63097,228.96996" |
id="path16839" |
inkscape:connector-type="polyline" |
sodipodi:nodetypes="ccccccc" /> |
</g> |
<text |
transform="scale(1.012408,0.987744)" |
sodipodi:linespacing="125%" |
id="text19428" |
y="167.37177" |
x="61.136925" |
style="font-size:12.8364296px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="167.37177" |
x="61.136925" |
id="tspan19430" |
sodipodi:role="line">data</tspan></text> |
<text |
transform="scale(1.012408,0.987744)" |
sodipodi:linespacing="125%" |
id="text19432" |
y="167.18213" |
x="134.61267" |
style="font-size:12.8364296px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="167.18213" |
x="134.61267" |
id="tspan19434" |
sodipodi:role="line">data</tspan></text> |
<text |
transform="scale(1.012408,0.987744)" |
sodipodi:linespacing="125%" |
id="text19436" |
y="167.18213" |
x="208.31079" |
style="font-size:12.8364296px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="167.18213" |
x="208.31079" |
id="tspan19438" |
sodipodi:role="line">data</tspan></text> |
<g |
transform="translate(-20,8.99999)" |
id="g19730"> |
<g |
id="g18494" |
transform="translate(-54.82678,107)"> |
<g |
transform="matrix(1.031183,0,0,1.00426,312.935,-5.26198)" |
id="g3979"> |
<rect |
ry="0" |
rx="0" |
y="61.5" |
x="43.400024" |
height="20.087563" |
width="64.138428" |
id="rect3985" |
style="fill:#bc4343;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" /> |
<g |
id="g3987" |
transform="matrix(1.331757,0,0,1.545197,-14.39825,-32.81865)"> |
<rect |
y="63.565441" |
x="45.525562" |
height="8.4089966" |
width="8.9488745" |
id="rect3989" |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.05112457px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> |
<rect |
y="63.565441" |
x="57.525562" |
height="8.4089966" |
width="8.9488745" |
id="rect3991" |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.05112457px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> |
<rect |
y="63.565441" |
x="68.954796" |
height="8.4089966" |
width="8.9488745" |
id="rect3993" |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.05112457px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> |
<rect |
y="63.565441" |
x="80.525566" |
height="8.4089966" |
width="8.9488745" |
id="rect3995" |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.05112457px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> |
</g> |
</g> |
<text |
sodipodi:linespacing="100%" |
id="text4269" |
y="70.500008" |
x="364.0195" |
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="70.500008" |
x="364.0195" |
id="tspan4273" |
sodipodi:role="line">9</tspan></text> |
<text |
sodipodi:linespacing="100%" |
id="text4275" |
y="70.500008" |
x="376.56052" |
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="70.500008" |
x="376.56052" |
id="tspan4279" |
sodipodi:role="line">11</tspan></text> |
<rect |
style="fill:#bc4343;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" |
id="rect4075" |
width="66.138458" |
height="20.173136" |
x="282.82678" |
y="106.50002" |
rx="0" |
ry="0" /> |
<rect |
y="110.41915" |
x="285.74576" |
height="13.048913" |
width="12.289355" |
id="rect4079" |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.53443897px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> |
<rect |
y="110.41915" |
x="302.22519" |
height="13.048913" |
width="12.289355" |
id="rect4081" |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.53443897px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> |
<rect |
y="110.41915" |
x="317.92078" |
height="13.048913" |
width="12.289355" |
id="rect4083" |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.53443897px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> |
<rect |
y="110.41915" |
x="333.81076" |
height="13.048913" |
width="12.289355" |
id="rect4085" |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.53443897px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> |
<rect |
style="fill:#bc4343;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" |
id="rect4093" |
width="66.138458" |
height="20.173136" |
x="357.82678" |
y="106.50001" |
rx="0" |
ry="0" /> |
<rect |
y="110.41914" |
x="360.74576" |
height="13.048913" |
width="12.289355" |
id="rect4097" |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.53443897px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> |
<rect |
y="110.41914" |
x="377.22519" |
height="13.048913" |
width="12.289355" |
id="rect4099" |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.53443897px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> |
<rect |
y="110.41914" |
x="392.92078" |
height="13.048913" |
width="12.289355" |
id="rect4101" |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.53443897px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> |
<rect |
y="110.41914" |
x="408.81076" |
height="13.048913" |
width="12.289355" |
id="rect4103" |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.53443897px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> |
<text |
transform="scale(0.940731,1.063004)" |
id="text4107" |
y="133.8269" |
x="480.65097" |
style="font-size:16.04729843px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="133.8269" |
x="480.65097" |
id="tspan4109" |
sodipodi:role="line">3</tspan></text> |
<rect |
style="fill:#bc4343;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" |
id="rect4111" |
width="66.138458" |
height="20.173136" |
x="432.68835" |
y="106.50002" |
rx="0" |
ry="0" /> |
<rect |
y="110.41915" |
x="435.60736" |
height="13.048913" |
width="12.289355" |
id="rect4115" |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.53443897px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> |
<rect |
y="110.41915" |
x="452.08679" |
height="13.048913" |
width="12.289355" |
id="rect4117" |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.53443897px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> |
<rect |
y="110.41915" |
x="467.78238" |
height="13.048913" |
width="12.289355" |
id="rect4119" |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.53443897px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> |
<rect |
y="110.41915" |
x="483.67236" |
height="13.048913" |
width="12.289355" |
id="rect4121" |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.53443897px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> |
<text |
sodipodi:linespacing="100%" |
id="text4281" |
y="120.50001" |
x="289.15793" |
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="120.50001" |
x="289.15793" |
id="tspan4283" |
sodipodi:role="line">7</tspan></text> |
<text |
sodipodi:linespacing="100%" |
id="text4285" |
y="120.50001" |
x="305.15793" |
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="120.50001" |
x="305.15793" |
id="tspan4289" |
sodipodi:role="line">8</tspan></text> |
<text |
sodipodi:linespacing="100%" |
id="text4291" |
y="120.35841" |
x="363.3093" |
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="120.35841" |
x="363.3093" |
id="tspan4293" |
sodipodi:role="line">9</tspan></text> |
<text |
sodipodi:linespacing="100%" |
id="text4295" |
y="120.35841" |
x="376.39426" |
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="120.35841" |
x="376.39426" |
id="tspan4299" |
sodipodi:role="line">10</tspan></text> |
<text |
sodipodi:linespacing="100%" |
id="text4301" |
y="120.79005" |
x="434.69894" |
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="120.79005" |
x="434.69894" |
id="tspan4303" |
sodipodi:role="line">11</tspan></text> |
<text |
sodipodi:linespacing="100%" |
id="text4305" |
y="120.50001" |
x="451.69894" |
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="120.50001" |
x="451.69894" |
id="tspan4309" |
sodipodi:role="line">12</tspan></text> |
<path |
inkscape:connector-type="polyline" |
id="path4211" |
d="M 357.93986,76.545525 L 318.93496,104.09302" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Mend);stroke-opacity:1;display:inline" |
sodipodi:nodetypes="cc" /> |
<path |
inkscape:connector-type="polyline" |
id="path4213" |
d="M 375.78809,76.917363 L 388.88514,102.66563" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Mend);stroke-opacity:1;display:inline" |
sodipodi:nodetypes="cc" /> |
<path |
inkscape:connector-type="polyline" |
id="path4215" |
d="M 392.52081,76.545525 L 462.36629,104.79421" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Mend);stroke-opacity:1;display:inline" |
sodipodi:nodetypes="cc" |
inkscape:export-filename="/afs/ms/u/j/jermj0bm/BIG/HelenOS-doc/design/src/images/btree.png" |
inkscape:export-xdpi="99.956085" |
inkscape:export-ydpi="99.956085" /> |
<path |
sodipodi:nodetypes="cc" |
inkscape:connector-type="polyline" |
id="path16841" |
d="M 348.58401,112.09898 L 354.50246,112.09898" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Send);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<path |
sodipodi:nodetypes="cc" |
inkscape:connector-type="polyline" |
id="path16843" |
d="M 423.58401,112.92024 L 429.50246,112.92024" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Send);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<path |
sodipodi:nodetypes="cc" |
inkscape:connector-type="polyline" |
id="path16849" |
d="M 352.29081,121.10712 L 357.82683,121.03967" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow2Sstart);marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<path |
sodipodi:nodetypes="cc" |
inkscape:connector-type="polyline" |
id="path16851" |
d="M 427.15077,121.92803 L 432.68679,121.86058" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow2Sstart);marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<path |
inkscape:connector-type="polyline" |
id="path17024" |
d="M 291.9494,126.68311 L 291.9494,142.68907" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Send);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<path |
inkscape:connector-type="polyline" |
id="path17026" |
d="M 308.9494,126.68311 L 308.9494,142.68907" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Send);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<path |
inkscape:connector-type="polyline" |
id="path17028" |
d="M 366.9494,126.68311 L 366.9494,142.68907" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Send);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<path |
inkscape:connector-type="polyline" |
id="path17030" |
d="M 384.40415,126.68311 L 384.40415,142.68907" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Send);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<path |
inkscape:connector-type="polyline" |
id="path17032" |
d="M 441.9494,126.68311 L 441.9494,142.68907" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Send);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<path |
inkscape:connector-type="polyline" |
id="path17034" |
d="M 459.00256,126.68311 L 459.00256,142.68907" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Send);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
</g> |
<text |
xml:space="preserve" |
style="font-size:12.8364296px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
x="228.44833" |
y="275.5098" |
id="text19440" |
sodipodi:linespacing="125%" |
transform="scale(1.012408,0.987744)"><tspan |
sodipodi:role="line" |
id="tspan19442" |
x="228.44833" |
y="275.5098">data</tspan></text> |
<text |
xml:space="preserve" |
style="font-size:12.8364296px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
x="302.14648" |
y="275.69943" |
id="text19444" |
sodipodi:linespacing="125%" |
transform="scale(1.012408,0.987744)"><tspan |
sodipodi:role="line" |
id="tspan19446" |
x="302.14648" |
y="275.69943">data</tspan></text> |
<text |
xml:space="preserve" |
style="font-size:12.8364296px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
x="376.60995" |
y="275.69943" |
id="text19448" |
sodipodi:linespacing="125%" |
transform="scale(1.012408,0.987744)"><tspan |
sodipodi:role="line" |
id="tspan19450" |
x="376.60995" |
y="275.69943">data</tspan></text> |
</g> |
</g> |
</g> |
</svg> |
/design/trunk/src/images/buddy_alloc.svg |
---|
0,0 → 1,530 |
<?xml version="1.0" encoding="UTF-8" standalone="no"?> |
<!-- Created with Inkscape (http://www.inkscape.org/) --> |
<svg |
xmlns:dc="http://purl.org/dc/elements/1.1/" |
xmlns:cc="http://web.resource.org/cc/" |
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" |
xmlns:svg="http://www.w3.org/2000/svg" |
xmlns="http://www.w3.org/2000/svg" |
xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd" |
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" |
inkscape:export-ydpi="99.956085" |
inkscape:export-xdpi="99.956085" |
inkscape:export-filename="/home/segabond/HelenOS/HelenOS-doc/design/src/images/mm1.png" |
sodipodi:docname="buddy_alloc.svg" |
sodipodi:docbase="/tmp/bonds0am/HelenOS-doc/design/trunk/src/images.vector" |
inkscape:version="0.43" |
sodipodi:version="0.32" |
id="svg2" |
height="841.88977pt" |
width="595.27557pt" |
version="1.0"> |
<defs |
id="defs4" /> |
<sodipodi:namedview |
inkscape:window-y="0" |
inkscape:window-x="0" |
inkscape:window-height="943" |
inkscape:window-width="1272" |
showguides="true" |
showgrid="true" |
inkscape:current-layer="layer1" |
inkscape:document-units="px" |
inkscape:cy="627.68033" |
inkscape:cx="-297.79531" |
inkscape:zoom="0.35355339" |
inkscape:pageshadow="2" |
inkscape:pageopacity="0.0" |
borderopacity="1.0" |
bordercolor="#666666" |
pagecolor="#ffffff" |
id="base" /> |
<metadata |
id="metadata7"> |
<rdf:RDF> |
<cc:Work |
rdf:about=""> |
<dc:format>image/svg+xml</dc:format> |
<dc:type |
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> |
</cc:Work> |
</rdf:RDF> |
</metadata> |
<g |
id="layer1" |
inkscape:groupmode="layer" |
inkscape:label="Layer 1"> |
<rect |
ry="0" |
y="284.36218" |
x="233" |
height="3" |
width="0" |
id="rect3922" |
style="fill:#ffffff;fill-opacity:1" /> |
<g |
id="g2453" |
transform="matrix(1.336359,0,0,1.336359,-176.02,-187.3751)"> |
<g |
id="g4774"> |
<rect |
y="141.70967" |
x="133.84521" |
height="162.65251" |
width="130.30968" |
id="rect2201" |
style="fill:#a3a3a3;fill-opacity:1" /> |
<text |
id="text2203" |
y="157.36703" |
x="151.01781" |
style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="157.36703" |
x="151.01781" |
id="tspan2205" |
sodipodi:role="line">buddy_system_t</tspan></text> |
<g |
transform="translate(1.911118,0)" |
id="g2215"> |
<rect |
rx="0" |
ry="5.1933813" |
style="fill:#1e1d70;fill-opacity:1" |
id="rect2207" |
width="81.317284" |
height="15.152285" |
x="158.08888" |
y="166.96347" /> |
<text |
xml:space="preserve" |
style="font-size:12px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
x="167.68532" |
y="177.57007" |
id="text2211"><tspan |
sodipodi:role="line" |
id="tspan2213" |
x="167.68532" |
y="177.57007">max_order</tspan></text> |
</g> |
<rect |
style="fill:#1e1d70;fill-opacity:1" |
id="rect2222" |
width="81.317284" |
height="15.152285" |
x="160" |
y="185.14621" |
ry="5.1933813" |
rx="0" /> |
<text |
xml:space="preserve" |
style="font-size:12px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
x="193.59644" |
y="195.75281" |
id="text2224"><tspan |
sodipodi:role="line" |
id="tspan2226" |
x="193.59644" |
y="195.75281">...</tspan></text> |
<rect |
y="274.78836" |
x="160" |
height="15.152285" |
width="81.317284" |
id="rect2230" |
style="fill:#1e1d70;fill-opacity:1" |
ry="5.1933813" |
rx="0" /> |
<text |
id="text2232" |
y="285.39496" |
x="193.59644" |
style="font-size:12px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="285.39496" |
x="193.59644" |
id="tspan2234" |
sodipodi:role="line">0</tspan></text> |
<rect |
style="fill:#1e1d70;fill-opacity:1" |
id="rect2238" |
width="81.317284" |
height="15.152285" |
x="160" |
y="203.36218" |
ry="5.1933813" |
rx="0" /> |
<text |
xml:space="preserve" |
style="font-size:12px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
x="193.59644" |
y="213.96878" |
id="text2240"><tspan |
sodipodi:role="line" |
id="tspan2242" |
x="193.59644" |
y="213.96878">4</tspan></text> |
<rect |
y="256.54468" |
x="160" |
height="15.152285" |
width="81.317284" |
id="rect2246" |
style="fill:#1e1d70;fill-opacity:1" /> |
<text |
id="text2248" |
y="267.15128" |
x="193.59644" |
style="font-size:12px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="267.15128" |
x="193.59644" |
id="tspan2250" |
sodipodi:role="line">1</tspan></text> |
<rect |
style="fill:#1e1d70;fill-opacity:1" |
id="rect2254" |
width="81.317284" |
height="15.152285" |
x="160" |
y="221.2099" |
ry="5.1933813" |
rx="0" /> |
<text |
xml:space="preserve" |
style="font-size:12px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
x="193.59644" |
y="231.8165" |
id="text2256"><tspan |
sodipodi:role="line" |
id="tspan2258" |
x="193.59644" |
y="231.8165">3</tspan></text> |
<rect |
y="238.34171" |
x="160" |
height="15.152285" |
width="81.317284" |
id="rect2262" |
style="fill:#1e1d70;fill-opacity:1" /> |
<text |
id="text2264" |
y="248.9483" |
x="193.59644" |
style="font-size:12px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="248.9483" |
x="193.59644" |
id="tspan2266" |
sodipodi:role="line">2</tspan></text> |
</g> |
<rect |
style="fill:#bc4343;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" |
id="rect3093" |
width="45.411697" |
height="14" |
x="269.58832" |
y="256.36218" |
rx="0" |
ry="0" /> |
<rect |
ry="0" |
rx="0" |
y="276.36218" |
x="269.99994" |
height="14" |
width="40.999992" |
id="rect2153" |
style="fill:#bc4343;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" /> |
<rect |
style="fill:#bc4343;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" |
id="rect3061" |
width="40.999992" |
height="14" |
x="319.99994" |
y="276.36218" |
rx="0" |
ry="0" /> |
<rect |
ry="0" |
rx="0" |
y="276.36218" |
x="369.99997" |
height="14" |
width="40.999992" |
id="rect3069" |
style="fill:#bc4343;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" /> |
<rect |
style="fill:#bc4343;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" |
id="rect3077" |
width="40.999992" |
height="14" |
x="417.99997" |
y="276.36218" |
rx="0" |
ry="0" /> |
<text |
xml:space="preserve" |
style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
x="466.83984" |
y="286.36218" |
id="text3083"><tspan |
sodipodi:role="line" |
x="466.83984" |
y="286.36218" |
id="tspan3087">...</tspan></text> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" |
d="M 310.99994,283.36218 L 319.99995,283.36218" |
id="path3099" |
inkscape:connector-type="polyline" /> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" |
d="M 360.99994,283.36218 L 369.99996,283.36218" |
id="path3101" |
inkscape:connector-type="polyline" /> |
<rect |
ry="0" |
rx="0" |
y="256.36218" |
x="316" |
height="14" |
width="44.999943" |
id="rect3132" |
style="fill:#bc4343;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" /> |
<rect |
style="fill:#bc4343;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" |
id="rect3140" |
width="44" |
height="14" |
x="369.99969" |
y="256.36218" |
rx="0" |
ry="0" /> |
<rect |
ry="0" |
rx="0" |
y="256.36218" |
x="414.50046" |
height="14" |
width="44.499443" |
id="rect3148" |
style="fill:#bc4343;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" /> |
<rect |
style="fill:#bc4343;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" |
id="rect3156" |
width="40.999992" |
height="14" |
x="487.99997" |
y="256.36218" |
rx="0" |
ry="0" /> |
<g |
id="g3162" |
transform="matrix(0.931818,0,0,1,278.4091,-18)"> |
<rect |
ry="0" |
rx="0" |
y="274.36218" |
x="270" |
height="14" |
width="44" |
id="rect3164" |
style="opacity:1;fill:#bc4343;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none" /> |
<text |
id="text3166" |
y="283.32547" |
x="273.81436" |
style="font-size:8.63597393px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
id="tspan3168" |
y="283.32547" |
x="273.81436" |
sodipodi:role="line">frame_t</tspan></text> |
</g> |
<rect |
style="fill:#bc4343;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" |
id="rect3172" |
width="40.999992" |
height="14" |
x="529.99994" |
y="256.36218" |
rx="0" |
ry="0" /> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" |
d="M 289.58997,256.80314 L 289.58997,242.36218 L 390,242.36218 L 390,256.6085" |
id="path3180" |
sodipodi:nodetypes="cccc" /> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" |
d="M 396.4546,256.36218 L 396.4117,242.59728 L 504.20585,242.59728 L 504.20585,256.3119" |
id="path3182" |
sodipodi:nodetypes="cccc" /> |
<path |
sodipodi:nodetypes="cccc" |
id="path3208" |
d="M 289.21411,168.30314 L 289.21411,153.86218 L 432.28755,153.86218 L 432.28755,168.1085" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.19368839px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> |
<rect |
style="fill:#bc4343;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" |
id="rect3194" |
width="40.999992" |
height="14" |
x="269" |
y="167.86218" |
rx="0" |
ry="0" /> |
<rect |
ry="0" |
rx="0" |
y="167.86218" |
x="327.46799" |
height="14" |
width="40.999992" |
id="rect3202" |
style="fill:#bc4343;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" /> |
<path |
id="path3214" |
d="M 286.54431,182.36218 C 320,201.36218 350,181.81916 350,181.81916" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> |
<text |
xml:space="preserve" |
style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
x="314.33417" |
y="204.43457" |
id="text3216"><tspan |
sodipodi:role="line" |
id="tspan3218" |
x="314.33417" |
y="204.43457">2</tspan></text> |
<text |
xml:space="preserve" |
style="font-size:6.955163px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
x="322.71967" |
y="196.64647" |
id="text3220"><tspan |
sodipodi:role="line" |
id="tspan3222" |
x="322.71967" |
y="196.64647">i</tspan></text> |
<text |
id="text3224" |
y="178.85046" |
x="312.83984" |
style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="178.85046" |
x="312.83984" |
id="tspan3226" |
sodipodi:role="line">...</tspan></text> |
<text |
id="text3228" |
y="218.36218" |
x="312.83984" |
style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="218.36218" |
x="312.83984" |
id="tspan3230" |
sodipodi:role="line">...</tspan></text> |
<rect |
ry="0" |
rx="0" |
y="167.78978" |
x="413.00003" |
height="14" |
width="40.999992" |
id="rect3260" |
style="fill:#bc4343;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" /> |
<rect |
style="fill:#bc4343;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" |
id="rect3268" |
width="40.999992" |
height="14" |
x="471.46796" |
y="167.78978" |
rx="0" |
ry="0" /> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" |
d="M 430.54431,182.28979 C 464,201.28979 494,181.74677 494,181.74677" |
id="path3274" /> |
<text |
id="text3278" |
y="204.36218" |
x="458.33417" |
style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="204.36218" |
x="458.33417" |
id="tspan3280" |
sodipodi:role="line">2</tspan></text> |
<text |
id="text3282" |
y="196.57408" |
x="466.71967" |
style="font-size:6.955163px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="196.57408" |
x="466.71967" |
id="tspan3284" |
sodipodi:role="line">i</tspan></text> |
<text |
xml:space="preserve" |
style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
x="456.83984" |
y="178.77808" |
id="text3286"><tspan |
sodipodi:role="line" |
id="tspan3288" |
x="456.83984" |
y="178.77808">...</tspan></text> |
<text |
xml:space="preserve" |
style="font-size:9.83645821px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
x="316.17401" |
y="218.81308" |
id="text3290" |
transform="scale(1.219951,0.819705)"><tspan |
sodipodi:role="line" |
id="tspan3292" |
x="316.17401" |
y="218.81308">...</tspan></text> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline" |
d="M 410.67234,283.3036 L 417.99997,283.31903" |
id="path3336" |
inkscape:connector-type="polyline" /> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" |
d="M 241,262.36218 L 269.58832,262.91952" |
id="path3342" |
inkscape:connector-type="polyline" /> |
<rect |
ry="0" |
rx="0" |
y="276.36218" |
x="487.99997" |
height="14" |
width="40.999992" |
id="rect3361" |
style="fill:#bc4343;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" /> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" |
d="M 458.99996,283.36218 L 487.99997,283.36218" |
id="path3367" |
inkscape:connector-type="polyline" /> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" |
d="M 241,282.36218 L 269.99994,282.94804" |
id="path3371" |
inkscape:connector-type="polyline" /> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline" |
d="M 240.84543,174.61438 L 269.66454,174.20268" |
id="path3373" |
inkscape:connector-type="polyline" /> |
</g> |
</g> |
</svg> |
/design/trunk/src/images/fifo.svg |
---|
0,0 → 1,505 |
<?xml version="1.0" encoding="UTF-8" standalone="no"?> |
<!-- Created with Inkscape (http://www.inkscape.org/) --> |
<svg |
xmlns:dc="http://purl.org/dc/elements/1.1/" |
xmlns:cc="http://web.resource.org/cc/" |
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" |
xmlns:svg="http://www.w3.org/2000/svg" |
xmlns="http://www.w3.org/2000/svg" |
xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd" |
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" |
inkscape:export-ydpi="99.956085" |
inkscape:export-xdpi="99.956085" |
inkscape:export-filename="/afs/ms.mff.cuni.cz/u/j/jermj0bm/BIG/HelenOS-doc/design/src/images/btree.png" |
sodipodi:docname="fifo.svg" |
sodipodi:docbase="/tmp/bonds0am/HelenOS-doc/design/trunk/src/images.vector" |
inkscape:version="0.43" |
sodipodi:version="0.32" |
id="svg2" |
height="841.88977pt" |
width="595.27557pt" |
version="1.0"> |
<defs |
id="defs4"> |
<marker |
inkscape:stockid="Arrow1Mend" |
orient="auto" |
refY="0" |
refX="0" |
id="Arrow1Mend" |
style="overflow:visible"> |
<path |
id="path15932" |
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z " |
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" |
transform="scale(-0.4,-0.4)" /> |
</marker> |
<marker |
inkscape:stockid="Arrow1Lstart" |
orient="auto" |
refY="0" |
refX="0" |
id="Arrow1Lstart" |
style="overflow:visible"> |
<path |
id="path15941" |
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z " |
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" |
transform="scale(0.8,0.8)" /> |
</marker> |
<marker |
inkscape:stockid="Arrow1Mstart" |
orient="auto" |
refY="0" |
refX="0" |
id="Arrow1Mstart" |
style="overflow:visible"> |
<path |
id="path15935" |
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z " |
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" |
transform="scale(0.4,0.4)" /> |
</marker> |
<marker |
inkscape:stockid="Arrow2Sstart" |
orient="auto" |
refY="0" |
refX="0" |
id="Arrow2Sstart" |
style="overflow:visible"> |
<path |
id="path15911" |
style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" |
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " |
transform="matrix(0.3,0,0,0.3,-1.5,0)" /> |
</marker> |
<marker |
inkscape:stockid="TriangleInM" |
orient="auto" |
refY="0" |
refX="0" |
id="TriangleInM" |
style="overflow:visible"> |
<path |
id="path15846" |
d="M 5.77,0 L -2.88,5 L -2.88,-5 L 5.77,0 z " |
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" |
transform="scale(-0.4,-0.4)" /> |
</marker> |
<marker |
inkscape:stockid="Arrow2Send" |
orient="auto" |
refY="0" |
refX="0" |
id="Arrow2Send" |
style="overflow:visible"> |
<path |
id="path15908" |
style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" |
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " |
transform="matrix(-0.3,0,0,-0.3,1.5,0)" /> |
</marker> |
<marker |
inkscape:stockid="Arrow2Mstart" |
orient="auto" |
refY="0" |
refX="0" |
id="Arrow2Mstart" |
style="overflow:visible"> |
<path |
id="path15917" |
style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" |
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " |
transform="matrix(0.6,0,0,0.6,-3,0)" /> |
</marker> |
<marker |
inkscape:stockid="Arrow2Lend" |
orient="auto" |
refY="0" |
refX="0" |
id="Arrow2Lend" |
style="overflow:visible"> |
<path |
id="path15920" |
style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" |
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " |
transform="matrix(-1.1,0,0,-1.1,5.5,0)" /> |
</marker> |
<marker |
inkscape:stockid="Arrow2Mend" |
orient="auto" |
refY="0" |
refX="0" |
id="Arrow2Mend" |
style="overflow:visible"> |
<path |
id="path15914" |
style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" |
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " |
transform="matrix(-0.6,0,0,-0.6,3,0)" /> |
</marker> |
</defs> |
<sodipodi:namedview |
inkscape:window-y="0" |
inkscape:window-x="0" |
inkscape:window-height="943" |
inkscape:window-width="1272" |
showguides="true" |
showgrid="true" |
inkscape:current-layer="layer1" |
inkscape:document-units="px" |
inkscape:cy="388.18254" |
inkscape:cx="70.653498" |
inkscape:zoom="0.5" |
inkscape:pageshadow="2" |
inkscape:pageopacity="0.0" |
borderopacity="1.0" |
bordercolor="#666666" |
pagecolor="#ffffff" |
id="base" |
showborder="true" |
inkscape:showpageshadow="false" /> |
<metadata |
id="metadata7"> |
<rdf:RDF> |
<cc:Work |
rdf:about=""> |
<dc:format>image/svg+xml</dc:format> |
<dc:type |
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> |
</cc:Work> |
</rdf:RDF> |
</metadata> |
<g |
id="layer1" |
inkscape:groupmode="layer" |
inkscape:label="Layer 1"> |
<g |
id="g4072" |
transform="matrix(1.422759,0,0,1.422759,-183.227,-42.40769)"> |
<rect |
style="fill:#ffffff;fill-opacity:1" |
id="rect3922" |
width="0" |
height="3" |
x="203.44992" |
y="270.4747" |
ry="0" /> |
<rect |
style="fill:#bc4343;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" |
id="rect3093" |
width="378.13843" |
height="20.173136" |
x="133" |
y="49.612518" |
rx="0" |
ry="0" /> |
<g |
transform="translate(35.13844,-33)" |
id="g2837"> |
<g |
id="g2819"> |
<rect |
y="86.531647" |
x="100.78057" |
height="13.048913" |
width="12.289355" |
id="rect3792" |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.53443897px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> |
<rect |
y="86.531647" |
x="117.26" |
height="13.048913" |
width="12.289355" |
id="rect3794" |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.53443897px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> |
<rect |
y="86.379738" |
x="133.76721" |
height="13.048913" |
width="12.289355" |
id="rect3796" |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.53443897px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> |
<rect |
y="86.379738" |
x="149.94342" |
height="13.048913" |
width="12.289355" |
id="rect2817" |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.53443897px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> |
</g> |
<g |
id="g2827" |
transform="translate(64.98665,-5.960464e-8)"> |
<rect |
y="86.531647" |
x="100.78057" |
height="13.048913" |
width="12.289355" |
id="rect2829" |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.53443897px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> |
<rect |
y="86.531647" |
x="117.26" |
height="13.048913" |
width="12.289355" |
id="rect2831" |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.53443897px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> |
<rect |
y="86.379738" |
x="133.76721" |
height="13.048913" |
width="12.289355" |
id="rect2833" |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.53443897px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> |
<rect |
y="86.379738" |
x="149.94342" |
height="13.048913" |
width="12.289355" |
id="rect2835" |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.53443897px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> |
</g> |
</g> |
<g |
transform="translate(165.1518,-33)" |
id="g2851"> |
<rect |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.53443897px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" |
id="rect2853" |
width="12.289355" |
height="13.048913" |
x="100.78057" |
y="86.531647" /> |
<rect |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.53443897px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" |
id="rect2855" |
width="12.289355" |
height="13.048913" |
x="117.26" |
y="86.531647" /> |
<rect |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.53443897px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" |
id="rect2857" |
width="12.289355" |
height="13.048913" |
x="133.76721" |
y="86.379738" /> |
<rect |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.53443897px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" |
id="rect2859" |
width="12.289355" |
height="13.048913" |
x="149.94342" |
y="86.379738" /> |
</g> |
<g |
transform="translate(296.125,-33)" |
id="g2873"> |
<rect |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.53443897px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" |
id="rect2875" |
width="12.289355" |
height="13.048913" |
x="100.78057" |
y="86.531647" /> |
<rect |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.53443897px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" |
id="rect2877" |
width="12.289355" |
height="13.048913" |
x="117.26" |
y="86.531647" /> |
<rect |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.53443897px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" |
id="rect2879" |
width="12.289355" |
height="13.048913" |
x="133.76721" |
y="86.379738" /> |
<rect |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.53443897px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" |
id="rect2881" |
width="12.289355" |
height="13.048913" |
x="149.94342" |
y="86.379738" /> |
</g> |
<rect |
y="53.531647" |
x="461.8923" |
height="13.048913" |
width="12.289355" |
id="rect2885" |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.53443897px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> |
<rect |
y="53.531647" |
x="478.37173" |
height="13.048913" |
width="12.289355" |
id="rect2887" |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.53443897px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> |
<rect |
y="53.379738" |
x="494.87894" |
height="13.048913" |
width="12.289355" |
id="rect2889" |
style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.53443897px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> |
<path |
sodipodi:nodetypes="cc" |
id="path3130" |
d="M 321.81702,91.711442 C 321.90108,101.46419 321.90108,108.1734 321.90108,108.1734" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.19784665;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<path |
sodipodi:nodetypes="cc" |
id="path3984" |
d="M 402.81702,91.711442 C 402.90108,101.46419 402.90108,108.1734 402.90108,108.1734" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2.19784665;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Mstart);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<text |
id="text3986" |
y="97.442596" |
x="413.91016" |
style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
id="tspan3990" |
y="97.442596" |
x="413.91016" |
sodipodi:role="line">head</tspan></text> |
<text |
id="text3992" |
y="97.729706" |
x="290.39258" |
style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="97.729706" |
x="290.39258" |
id="tspan3994" |
sodipodi:role="line">tail</tspan><tspan |
id="tspan3996" |
y="112.72971" |
x="290.39258" |
sodipodi:role="line" /></text> |
<text |
id="text3998" |
y="43.612518" |
x="398.68164" |
style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="43.612518" |
x="398.68164" |
id="tspan4000" |
sodipodi:role="line">1</tspan></text> |
<text |
sodipodi:linespacing="125%" |
id="text4004" |
y="43.360565" |
x="415.68164" |
style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="43.360565" |
x="415.68164" |
id="tspan4008" |
sodipodi:role="line">2</tspan></text> |
<text |
sodipodi:linespacing="125%" |
id="text4010" |
y="43.612518" |
x="432.12109" |
style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="43.612518" |
x="432.12109" |
id="tspan4014" |
sodipodi:role="line">3</tspan></text> |
<text |
sodipodi:linespacing="125%" |
id="text4016" |
y="43.442596" |
x="448.08594" |
style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="43.442596" |
x="448.08594" |
id="tspan4020" |
sodipodi:role="line">4</tspan></text> |
<text |
sodipodi:linespacing="125%" |
id="text4022" |
y="43.360565" |
x="464.41406" |
style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="43.360565" |
x="464.41406" |
id="tspan4026" |
sodipodi:role="line">5</tspan></text> |
<text |
sodipodi:linespacing="125%" |
id="text4028" |
y="43.360565" |
x="480.41406" |
style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="43.360565" |
x="480.41406" |
id="tspan4032" |
sodipodi:role="line">6</tspan></text> |
<text |
sodipodi:linespacing="125%" |
id="text4034" |
y="43.442596" |
x="496.58118" |
style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="43.442596" |
x="496.58118" |
id="tspan4038" |
sodipodi:role="line">7</tspan></text> |
<text |
sodipodi:linespacing="125%" |
id="text4040" |
y="43.360565" |
x="139.01562" |
style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="43.360565" |
x="139.01562" |
id="tspan4044" |
sodipodi:role="line">8</tspan></text> |
<text |
sodipodi:linespacing="125%" |
id="text4046" |
y="43.442596" |
x="154.75972" |
style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="43.442596" |
x="154.75972" |
id="tspan4050" |
sodipodi:role="line">9</tspan></text> |
<text |
sodipodi:linespacing="125%" |
id="text4052" |
y="43.518768" |
x="167.68164" |
style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="43.518768" |
x="167.68164" |
id="tspan4056" |
sodipodi:role="line">10</tspan></text> |
<text |
sodipodi:linespacing="125%" |
id="text4064" |
y="43.612518" |
x="185.7168" |
style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="43.612518" |
x="185.7168" |
id="tspan4070" |
sodipodi:role="line">...</tspan></text> |
</g> |
</g> |
</svg> |
/design/trunk/src/images/frame_alloc.svg |
---|
0,0 → 1,397 |
<?xml version="1.0" encoding="UTF-8" standalone="no"?> |
<!-- Created with Inkscape (http://www.inkscape.org/) --> |
<svg |
xmlns:dc="http://purl.org/dc/elements/1.1/" |
xmlns:cc="http://web.resource.org/cc/" |
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" |
xmlns:svg="http://www.w3.org/2000/svg" |
xmlns="http://www.w3.org/2000/svg" |
xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd" |
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" |
inkscape:export-ydpi="99.956085" |
inkscape:export-xdpi="99.956085" |
inkscape:export-filename="/home/segabond/HelenOS/HelenOS-doc/design/src/images/frame_alloc.png" |
sodipodi:docname="frame_alloc.svg" |
sodipodi:docbase="/tmp/bonds0am/HelenOS-doc/design/trunk/src/images.vector" |
inkscape:version="0.43" |
sodipodi:version="0.32" |
id="svg2" |
height="841.88977pt" |
width="595.27557pt" |
version="1.0"> |
<defs |
id="defs4" /> |
<sodipodi:namedview |
inkscape:window-y="0" |
inkscape:window-x="0" |
inkscape:window-height="943" |
inkscape:window-width="1272" |
showguides="true" |
showgrid="true" |
inkscape:current-layer="layer1" |
inkscape:document-units="px" |
inkscape:cy="701.7251" |
inkscape:cx="260.84924" |
inkscape:zoom="1" |
inkscape:pageshadow="2" |
inkscape:pageopacity="0.0" |
borderopacity="1.0" |
bordercolor="#666666" |
pagecolor="#ffffff" |
id="base" /> |
<metadata |
id="metadata7"> |
<rdf:RDF> |
<cc:Work |
rdf:about=""> |
<dc:format>image/svg+xml</dc:format> |
<dc:type |
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> |
</cc:Work> |
</rdf:RDF> |
</metadata> |
<g |
id="layer1" |
inkscape:groupmode="layer" |
inkscape:label="Layer 1"> |
<rect |
ry="0" |
y="284.36218" |
x="233" |
height="3" |
width="0" |
id="rect3922" |
style="fill:#ffffff;fill-opacity:1" /> |
<g |
id="g2060" |
transform="matrix(1.719384,0,0,1.719384,-11.02496,-74.62649)"> |
<path |
id="path3486" |
d="M 23.466991,91.862357 C 147,214.36218 147,214.36218 147,214.36218" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
style="fill:#a3a3a3;fill-opacity:1" |
id="rect2201" |
width="109.42462" |
height="119" |
x="7.5753789" |
y="135.36218" /> |
<text |
xml:space="preserve" |
style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
x="41.172607" |
y="149.01955" |
id="text2203"><tspan |
sodipodi:role="line" |
id="tspan2205" |
x="41.172607" |
y="149.01955">zone_t</tspan></text> |
<rect |
rx="0" |
ry="5.3005772" |
style="fill:#1e1d70;fill-opacity:1" |
id="rect2207" |
width="81.317284" |
height="15.152285" |
x="20.1548" |
y="158.61598" /> |
<text |
xml:space="preserve" |
style="font-size:12px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
x="25.751236" |
y="169.22258" |
id="text2211"><tspan |
sodipodi:role="line" |
id="tspan2213" |
x="25.751236" |
y="169.22258">base</tspan></text> |
<g |
transform="translate(-20,0)" |
id="g2343"> |
<rect |
style="fill:#1e1d70;fill-opacity:1" |
id="rect2222" |
width="81.317284" |
height="15.152285" |
x="40.1548" |
y="176.79872" |
ry="5.3005772" |
rx="0" /> |
<text |
xml:space="preserve" |
style="font-size:12px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
x="41.751236" |
y="187.40532" |
id="text2224"><tspan |
sodipodi:role="line" |
id="tspan2226" |
x="41.751236" |
y="187.40532">free_frames</tspan></text> |
</g> |
<rect |
rx="0" |
ry="5.3005772" |
y="195.01469" |
x="20.1548" |
height="15.152285" |
width="81.317284" |
id="rect2238" |
style="fill:#1e1d70;fill-opacity:1" /> |
<text |
id="text2240" |
y="205.62129" |
x="21.751236" |
style="font-size:12px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="205.62129" |
x="21.751236" |
id="tspan2242" |
sodipodi:role="line">busy_frames</tspan></text> |
<g |
transform="translate(-19.1548,-0.500229)" |
id="g2314"> |
<rect |
style="fill:#1e1d70;fill-opacity:1" |
id="rect2254" |
width="81.317284" |
height="15.152285" |
x="40.1548" |
y="212.86241" |
ry="5.3005772" |
rx="0" /> |
<text |
xml:space="preserve" |
style="font-size:12px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
x="41.751236" |
y="223.46901" |
id="text2256"><tspan |
sodipodi:role="line" |
id="tspan2258" |
x="41.751236" |
y="223.46901">frames</tspan></text> |
</g> |
<g |
id="g2319"> |
<g |
transform="translate(-304,-62)" |
id="g3327"> |
<rect |
ry="0" |
rx="0" |
y="276.36218" |
x="449.99997" |
height="14" |
width="40.999992" |
id="rect3077" |
style="fill:#bc4343;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none" /> |
<text |
id="text3079" |
y="275.42673" |
x="469.85483" |
style="font-size:8.33636761px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve" |
transform="scale(0.965307,1.03594)"><tspan |
id="tspan3081" |
y="275.42673" |
x="469.85483" |
sodipodi:role="line">frame_t</tspan></text> |
</g> |
<g |
transform="translate(-262,-62)" |
id="g2253"> |
<rect |
ry="0" |
rx="0" |
y="276.36218" |
x="449.99997" |
height="14" |
width="40.999992" |
id="rect2255" |
style="fill:#bc4343;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none" /> |
<text |
id="text2257" |
y="275.42673" |
x="469.85483" |
style="font-size:8.33636761px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve" |
transform="scale(0.965307,1.03594)"><tspan |
id="tspan2259" |
y="275.42673" |
x="469.85483" |
sodipodi:role="line">frame_t</tspan></text> |
</g> |
<g |
transform="translate(-220,-62)" |
id="g2269"> |
<rect |
ry="0" |
rx="0" |
y="276.36218" |
x="449.99997" |
height="14" |
width="40.999992" |
id="rect2271" |
style="fill:#bc4343;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none" /> |
<text |
id="text2273" |
y="275.42673" |
x="469.85483" |
style="font-size:8.33636761px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve" |
transform="scale(0.965307,1.03594)"><tspan |
id="tspan2275" |
y="275.42673" |
x="469.85483" |
sodipodi:role="line">frame_t</tspan></text> |
</g> |
<g |
transform="translate(-163,-62)" |
id="g2285"> |
<rect |
ry="0" |
rx="0" |
y="276.36218" |
x="449.99997" |
height="14" |
width="40.999992" |
id="rect2287" |
style="fill:#bc4343;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none" /> |
<text |
id="text2289" |
y="275.42673" |
x="469.85483" |
style="font-size:8.33636761px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve" |
transform="scale(0.965307,1.03594)"><tspan |
id="tspan2291" |
y="275.42673" |
x="469.85483" |
sodipodi:role="line">frame_t</tspan></text> |
</g> |
<text |
xml:space="preserve" |
style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
x="272.71555" |
y="227.01964" |
id="text2293"><tspan |
sodipodi:role="line" |
id="tspan2295" |
x="272.71555" |
y="227.01964">...</tspan></text> |
</g> |
<path |
inkscape:connection-start="#g2314" |
inkscape:connection-end="#g3327" |
inkscape:connector-type="polyline" |
id="path2297" |
d="M 102.31728,220.49051 L 145.99997,221.08377" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline" /> |
<rect |
rx="0" |
ry="5.3005772" |
y="230.2099" |
x="20" |
height="15.152285" |
width="81.317284" |
id="rect2350" |
style="fill:#1e1d70;fill-opacity:1" /> |
<text |
id="text2352" |
y="239.83635" |
x="21.7136" |
style="font-size:10.7099371px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="239.83635" |
x="21.7136" |
id="tspan2354" |
sodipodi:role="line">buddy_system</tspan></text> |
<text |
id="text3444" |
y="53.532104" |
x="24.964844" |
style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="53.532104" |
x="24.964844" |
id="tspan3446" |
sodipodi:role="line">physical memory</tspan></text> |
<rect |
y="58.792347" |
x="22.894783" |
height="34.217697" |
width="80.790855" |
id="rect3454" |
style="opacity:1;fill:#a3a3a3;fill-opacity:1;stroke:#000000;stroke-width:0.7042774;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.40855471, 0.70427735;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="58.900604" |
x="102.00406" |
height="34.217697" |
width="38.752056" |
id="rect3456" |
style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.4877643;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:0.97552856, 0.48776428;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="58.756367" |
x="139.42778" |
height="34.217697" |
width="98.14444" |
id="rect3458" |
style="opacity:1;fill:#a3a3a3;fill-opacity:1;stroke:#000000;stroke-width:0.7762391;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.55247807, 0.77623903;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="58.900604" |
x="237.24388" |
height="34.217697" |
width="38.752056" |
id="rect3460" |
style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.4877643;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:0.97552856, 0.48776428;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="58.855751" |
x="276.34186" |
height="34.217697" |
width="54.316319" |
id="rect3462" |
style="opacity:1;fill:#a3a3a3;fill-opacity:1;stroke:#000000;stroke-width:0.5774678;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.15493561, 0.5774678;stroke-dashoffset:0;stroke-opacity:1" /> |
<text |
id="text3468" |
y="77.394295" |
x="45.757385" |
style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="77.394295" |
x="45.757385" |
id="tspan3470" |
sodipodi:role="line">zone</tspan></text> |
<text |
id="text3472" |
y="77.68898" |
x="174.26894" |
style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="77.68898" |
x="174.26894" |
id="tspan3474" |
sodipodi:role="line">zone</tspan></text> |
<text |
id="text3476" |
y="77.277275" |
x="290.1326" |
style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="77.277275" |
x="290.1326" |
id="tspan3478" |
sodipodi:role="line">zone</tspan></text> |
<path |
id="path3488" |
d="M 102,92.362183 C 327,214.36218 327,214.36218 327,214.36218" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1" /> |
<path |
id="path3642" |
d="M 100.45878,238.4066 C 169.49641,238.4066 169.49641,238.4066 169.49641,238.4066 L 169.49641,238.4066 L 169.49641,228.38373 L 169.49641,228.38373" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.95797735px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> |
<path |
id="path3644" |
d="M 101.00172,242.39293 L 245.49828,242.39293 L 245.04748,228.3154 L 245.04748,228.3154" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.97043198px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> |
</g> |
</g> |
</svg> |
/design/trunk/src/images/slab_alloc.svg |
---|
0,0 → 1,1329 |
<?xml version="1.0" encoding="UTF-8" standalone="no"?> |
<!-- Created with Inkscape (http://www.inkscape.org/) --> |
<svg |
xmlns:dc="http://purl.org/dc/elements/1.1/" |
xmlns:cc="http://web.resource.org/cc/" |
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" |
xmlns:svg="http://www.w3.org/2000/svg" |
xmlns="http://www.w3.org/2000/svg" |
xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd" |
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" |
width="595.27557pt" |
height="841.88977pt" |
id="svg2247" |
sodipodi:version="0.32" |
inkscape:version="0.43" |
version="1.0" |
sodipodi:docbase="/tmp/bonds0am/HelenOS-doc/design/trunk/src/images.vector" |
sodipodi:docname="slab_alloc.svg" |
inkscape:export-filename="/afs/labts.troja.mff.cuni.cz/homes/jermj0bm/HelenOS-doc/design/src/images/slab_alloc.png" |
inkscape:export-xdpi="157.50999" |
inkscape:export-ydpi="157.50999"> |
<defs |
id="defs2249"> |
<marker |
inkscape:stockid="Arrow2Lend" |
orient="auto" |
refY="0" |
refX="0" |
id="Arrow2Lend" |
style="overflow:visible"> |
<path |
id="path3433" |
style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" |
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " |
transform="matrix(-1.1,0,0,-1.1,5.5,0)" /> |
</marker> |
<marker |
inkscape:stockid="Arrow1Mstart" |
orient="auto" |
refY="0" |
refX="0" |
id="Arrow1Mstart" |
style="overflow:visible"> |
<path |
id="path3319" |
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z " |
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" |
transform="scale(0.4,0.4)" /> |
</marker> |
<marker |
inkscape:stockid="Arrow1Lstart" |
orient="auto" |
refY="0" |
refX="0" |
id="Arrow1Lstart" |
style="overflow:visible"> |
<path |
id="path3325" |
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z " |
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" |
transform="scale(0.8,0.8)" /> |
</marker> |
<marker |
inkscape:stockid="Arrow1Sstart" |
orient="auto" |
refY="0" |
refX="0" |
id="Arrow1Sstart" |
style="overflow:visible"> |
<path |
id="path3313" |
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z " |
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" |
transform="scale(0.2,0.2)" /> |
</marker> |
</defs> |
<sodipodi:namedview |
id="base" |
pagecolor="#ffffff" |
bordercolor="#666666" |
borderopacity="1.0" |
inkscape:pageopacity="0.0" |
inkscape:pageshadow="2" |
inkscape:zoom="0.25" |
inkscape:cx="-538.45681" |
inkscape:cy="141.82979" |
inkscape:document-units="px" |
inkscape:current-layer="layer1" |
showgrid="true" |
showguides="true" |
inkscape:guide-bbox="true" |
inkscape:window-width="1272" |
inkscape:window-height="940" |
inkscape:window-x="0" |
inkscape:window-y="25"> |
<sodipodi:guide |
orientation="vertical" |
position="15.152288" |
id="guide2269" /> |
</sodipodi:namedview> |
<metadata |
id="metadata2252"> |
<rdf:RDF> |
<cc:Work |
rdf:about=""> |
<dc:format>image/svg+xml</dc:format> |
<dc:type |
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> |
</cc:Work> |
</rdf:RDF> |
</metadata> |
<g |
inkscape:label="Layer 1" |
inkscape:groupmode="layer" |
id="layer1"> |
<g |
id="g4740" |
transform="matrix(1.789563,0,0,1.789563,-11.7663,-16.31601)"> |
<rect |
y="22" |
x="15.152288" |
height="241" |
width="42" |
id="rect3146" |
style="opacity:1;fill:#a3a3a3;fill-opacity:0.94117647;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<text |
transform="matrix(1.626303e-19,-1,1,1.626303e-19,0,0)" |
id="text3338" |
y="28.503906" |
x="-146.17773" |
style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="28.503906" |
x="-146.17773" |
id="tspan3340" |
sodipodi:role="line">Magazine Layer</tspan></text> |
<text |
transform="matrix(0,-1,1,0,0,0)" |
id="text3342" |
y="39.117188" |
x="-253.26953" |
style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="39.117188" |
x="-253.26953" |
id="tspan3344" |
sodipodi:role="line">Slab Layer</tspan></text> |
<text |
transform="matrix(-1.867538e-17,-1,1,-1.867538e-17,0,0)" |
id="text3346" |
y="48.236824" |
x="-173.81024" |
style="font-size:9.52507591px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
id="tspan3400" |
y="48.236824" |
x="-173.81024" |
sodipodi:role="line">Common layer</tspan></text> |
<text |
transform="matrix(0,-1,1,0,0,0)" |
id="text3350" |
y="49.503906" |
x="-88.722656" |
style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="49.503906" |
x="-88.722656" |
id="tspan3352" |
sodipodi:role="line">CPU Layer</tspan></text> |
<path |
id="path3354" |
d="M 35,20.914606 C 35,180.25289 35,180.25289 35,180.25289" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<path |
id="path3356" |
d="M 15.152288,180 C 57,180 56.568543,180 56.568543,180" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<path |
id="path3360" |
d="M 35.237022,99.474516 C 57.591673,99.474516 57.591673,99.474516 57.591673,99.474516" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<rect |
y="24.474579" |
x="74" |
height="54.525421" |
width="46.04369" |
id="rect3336" |
style="fill:#1e1d70;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<text |
id="text3362" |
y="33.194035" |
x="80.344711" |
style="font-size:5.68998718px;font-style:normal;font-weight:normal;fill:#feff00;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="33.194035" |
x="80.344711" |
id="tspan3364" |
sodipodi:role="line">CPU0 cache </tspan></text> |
<text |
sodipodi:linespacing="125%" |
id="text3366" |
y="38.663589" |
x="77.194489" |
style="font-size:4.48867798px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#feff00;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="38.663589" |
x="77.194489" |
id="tspan2092" |
sodipodi:role="line">current</tspan></text> |
<text |
sodipodi:linespacing="125%" |
id="text3370" |
y="38.932865" |
x="100.5347" |
style="font-size:4.74100494px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#feff00;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="38.932865" |
x="100.5347" |
id="tspan2094" |
sodipodi:role="line">last</tspan></text> |
<g |
id="g3102"> |
<rect |
style="fill:#a8a8a8;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect7949" |
width="15.904104" |
height="5.1382489" |
x="100.22722" |
y="54.921501" /> |
<rect |
style="fill:#a8a8a8;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect7953" |
width="15.904104" |
height="5.1382489" |
x="100.2243" |
y="64.377678" /> |
<rect |
style="fill:#bc4343;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect3390" |
width="15.904104" |
height="5.1382489" |
x="100.2243" |
y="45.30592" /> |
<rect |
style="fill:#a8a8a8;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect7947" |
width="15.904104" |
height="5.1382489" |
x="100.2243" |
y="50.264641" /> |
<rect |
style="fill:#a8a8a8;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect7951" |
width="15.904104" |
height="5.1382489" |
x="100.2243" |
y="59.720818" /> |
<rect |
style="fill:#a8a8a8;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect7955" |
width="15.904104" |
height="5.1382489" |
x="100.2243" |
y="69.407631" /> |
</g> |
<g |
id="g3094"> |
<rect |
style="fill:#bc4343;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect1563" |
width="15.904104" |
height="5.1382489" |
x="77.306519" |
y="45.564636" /> |
<rect |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect1565" |
width="15.904104" |
height="5.1382489" |
x="77.306519" |
y="50.523357" /> |
<rect |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect1567" |
width="15.904104" |
height="5.1382489" |
x="77.309441" |
y="55.180214" /> |
<rect |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect1569" |
width="15.904104" |
height="5.1382489" |
x="77.306519" |
y="59.97953" /> |
<rect |
style="fill:#a8a8a8;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect1571" |
width="15.904104" |
height="5.1382489" |
x="77.306519" |
y="64.636391" /> |
<rect |
style="fill:#a8a8a8;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect1573" |
width="15.904104" |
height="5.1382489" |
x="77.306519" |
y="69.666344" /> |
</g> |
<text |
id="text1633" |
y="43.43259" |
x="100.84136" |
style="font-size:3.20176601px;font-style:normal;font-weight:normal;fill:#feff00;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="43.43259" |
x="100.84136" |
id="tspan1635" |
sodipodi:role="line">[full]</tspan></text> |
<rect |
transform="scale(1,-1)" |
y="-100.49511" |
x="61" |
height="2.0254474" |
width="268" |
id="rect1786" |
style="opacity:1;fill:#1e1d70;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
transform="scale(1,-1)" |
y="-179.84258" |
x="60.817307" |
height="2.0254474" |
width="268" |
id="rect1840" |
style="opacity:1;fill:#1e1d70;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
transform="scale(1,-1)" |
y="-260.59644" |
x="61" |
height="2.0254474" |
width="268" |
id="rect1842" |
style="opacity:1;fill:#1e1d70;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="25" |
x="126.54958" |
height="54.525421" |
width="46.04369" |
id="rect2781" |
style="fill:#1e1d70;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<text |
id="text2783" |
y="33.719456" |
x="132.89429" |
style="font-size:5.68998718px;font-style:normal;font-weight:normal;fill:#feff00;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="33.719456" |
x="132.89429" |
id="tspan2785" |
sodipodi:role="line">CPU1 cache </tspan></text> |
<text |
sodipodi:linespacing="125%" |
id="text2787" |
y="39.189011" |
x="129.74406" |
style="font-size:4.48867798px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#feff00;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="39.189011" |
x="129.74406" |
id="tspan2096" |
sodipodi:role="line">current</tspan></text> |
<text |
sodipodi:linespacing="125%" |
id="text2791" |
y="39.602051" |
x="153.56203" |
style="font-size:4.74100494px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#feff00;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="39.602051" |
x="153.56203" |
id="tspan2102" |
sodipodi:role="line">last</tspan></text> |
<rect |
y="55.446922" |
x="152.77679" |
height="5.1382489" |
width="15.904104" |
id="rect2795" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="64.903099" |
x="152.77388" |
height="5.1382489" |
width="15.904104" |
id="rect2797" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="45.831341" |
x="152.77388" |
height="5.1382489" |
width="15.904104" |
id="rect2799" |
style="fill:#bc4343;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="50.790062" |
x="152.77388" |
height="5.1382489" |
width="15.904104" |
id="rect2801" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="60.246239" |
x="152.77388" |
height="5.1382489" |
width="15.904104" |
id="rect2803" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="69.933052" |
x="152.77388" |
height="5.1382489" |
width="15.904104" |
id="rect2805" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="46.090057" |
x="129.85609" |
height="5.1382489" |
width="15.904104" |
id="rect2807" |
style="fill:#bc4343;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="51.048779" |
x="129.85609" |
height="5.1382489" |
width="15.904104" |
id="rect2809" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="55.705635" |
x="129.85902" |
height="5.1382489" |
width="15.904104" |
id="rect2811" |
style="fill:#a8a8a8;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="60.504951" |
x="129.85609" |
height="5.1382489" |
width="15.904104" |
id="rect2813" |
style="fill:#a8a8a8;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="65.161812" |
x="129.85609" |
height="5.1382489" |
width="15.904104" |
id="rect2815" |
style="fill:#a8a8a8;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="70.191765" |
x="129.85609" |
height="5.1382489" |
width="15.904104" |
id="rect2817" |
style="fill:#a8a8a8;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<text |
id="text2823" |
y="43.502674" |
x="154.11375" |
style="font-size:3.20176601px;font-style:normal;font-weight:normal;fill:#feff00;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="43.502674" |
x="154.11375" |
id="tspan2825" |
sodipodi:role="line">[empty]</tspan></text> |
<rect |
y="25" |
x="179" |
height="54.525421" |
width="46.04369" |
id="rect2829" |
style="fill:#1e1d70;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<text |
id="text2831" |
y="33.719456" |
x="185.34471" |
style="font-size:5.68998718px;font-style:normal;font-weight:normal;fill:#feff00;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="33.719456" |
x="185.34471" |
id="tspan2833" |
sodipodi:role="line">CPU2 cache </tspan></text> |
<text |
sodipodi:linespacing="125%" |
id="text2835" |
y="39.189011" |
x="182.19449" |
style="font-size:4.48867798px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#feff00;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="39.189011" |
x="182.19449" |
id="tspan2098" |
sodipodi:role="line">current</tspan></text> |
<text |
sodipodi:linespacing="125%" |
id="text2839" |
y="38.932865" |
x="206.55322" |
style="font-size:4.74100494px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#feff00;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="38.932865" |
x="206.55322" |
id="tspan2100" |
sodipodi:role="line">last</tspan></text> |
<rect |
y="55.446922" |
x="205.22722" |
height="5.1382489" |
width="15.904104" |
id="rect2843" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="64.903099" |
x="205.2243" |
height="5.1382489" |
width="15.904104" |
id="rect2845" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="45.831341" |
x="205.2243" |
height="5.1382489" |
width="15.904104" |
id="rect2847" |
style="fill:#bc4343;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="50.790062" |
x="205.2243" |
height="5.1382489" |
width="15.904104" |
id="rect2849" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="60.246239" |
x="205.2243" |
height="5.1382489" |
width="15.904104" |
id="rect2851" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="69.933052" |
x="205.2243" |
height="5.1382489" |
width="15.904104" |
id="rect2853" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="46.090057" |
x="182.30652" |
height="5.1382489" |
width="15.904104" |
id="rect2855" |
style="fill:#bc4343;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="51.048779" |
x="182.30652" |
height="5.1382489" |
width="15.904104" |
id="rect2857" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="55.705635" |
x="182.30945" |
height="5.1382489" |
width="15.904104" |
id="rect2859" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="60.504951" |
x="182.30652" |
height="5.1382489" |
width="15.904104" |
id="rect2861" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="65.161812" |
x="182.30652" |
height="5.1382489" |
width="15.904104" |
id="rect2863" |
style="fill:#a8a8a8;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="70.191765" |
x="182.30652" |
height="5.1382489" |
width="15.904104" |
id="rect2865" |
style="fill:#a8a8a8;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<text |
id="text2871" |
y="43.502674" |
x="206.56418" |
style="font-size:3.20176601px;font-style:normal;font-weight:normal;fill:#feff00;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="43.502674" |
x="206.56418" |
id="tspan2873" |
sodipodi:role="line">[empty]</tspan></text> |
<rect |
y="25" |
x="247.9563" |
height="54.525421" |
width="46.04369" |
id="rect2877" |
style="fill:#1e1d70;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<text |
id="text2879" |
y="33.719456" |
x="254.30101" |
style="font-size:5.68998718px;font-style:normal;font-weight:normal;fill:#feff00;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="33.719456" |
x="254.30101" |
id="tspan2881" |
sodipodi:role="line">CPUn cache </tspan></text> |
<text |
sodipodi:linespacing="125%" |
id="text2883" |
y="39.189011" |
x="251.15079" |
style="font-size:4.48867798px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#feff00;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="39.189011" |
x="251.15079" |
id="tspan2088" |
sodipodi:role="line">current</tspan></text> |
<text |
sodipodi:linespacing="125%" |
id="text2887" |
y="38.932865" |
x="274.09811" |
style="font-size:4.74100494px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#feff00;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="38.932865" |
x="274.09811" |
id="tspan2090" |
sodipodi:role="line">last</tspan></text> |
<rect |
y="55.446922" |
x="274.18353" |
height="5.1382489" |
width="15.904104" |
id="rect2891" |
style="fill:#a8a8a8;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="64.903099" |
x="274.1806" |
height="5.1382489" |
width="15.904104" |
id="rect2893" |
style="fill:#a8a8a8;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="45.831341" |
x="274.1806" |
height="5.1382489" |
width="15.904104" |
id="rect2895" |
style="fill:#bc4343;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="50.790062" |
x="274.1806" |
height="5.1382489" |
width="15.904104" |
id="rect2897" |
style="fill:#a8a8a8;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="60.246239" |
x="274.1806" |
height="5.1382489" |
width="15.904104" |
id="rect2899" |
style="fill:#a8a8a8;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="69.933052" |
x="274.1806" |
height="5.1382489" |
width="15.904104" |
id="rect2901" |
style="fill:#a8a8a8;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="46.090057" |
x="251.26282" |
height="5.1382489" |
width="15.904104" |
id="rect2903" |
style="fill:#bc4343;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="51.048779" |
x="251.26282" |
height="5.1382489" |
width="15.904104" |
id="rect2905" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="55.705635" |
x="251.26575" |
height="5.1382489" |
width="15.904104" |
id="rect2907" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="60.504951" |
x="251.26282" |
height="5.1382489" |
width="15.904104" |
id="rect2909" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="65.161812" |
x="251.26282" |
height="5.1382489" |
width="15.904104" |
id="rect2911" |
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<rect |
y="70.191765" |
x="251.26282" |
height="5.1382489" |
width="15.904104" |
id="rect2913" |
style="fill:#a8a8a8;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
<text |
id="text2919" |
y="43.43259" |
x="274.84137" |
style="font-size:3.20176601px;font-style:normal;font-weight:normal;fill:#feff00;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="43.43259" |
x="274.84137" |
id="tspan2921" |
sodipodi:role="line">[full]</tspan></text> |
<text |
id="text2923" |
y="63.285717" |
x="230.71428" |
style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="63.285717" |
x="230.71428" |
id="tspan2925" |
sodipodi:role="line">...</tspan></text> |
<g |
transform="translate(9.948973,81.86735)" |
id="g3110"> |
<rect |
style="fill:#a8a8a8;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect3112" |
width="15.904104" |
height="5.1382489" |
x="100.22722" |
y="54.921501" /> |
<rect |
style="fill:#a8a8a8;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect3114" |
width="15.904104" |
height="5.1382489" |
x="100.2243" |
y="64.377678" /> |
<rect |
style="fill:#bc4343;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect3116" |
width="15.904104" |
height="5.1382489" |
x="100.2243" |
y="45.30592" /> |
<rect |
style="fill:#a8a8a8;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect3118" |
width="15.904104" |
height="5.1382489" |
x="100.2243" |
y="50.264641" /> |
<rect |
style="fill:#a8a8a8;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect3120" |
width="15.904104" |
height="5.1382489" |
x="100.2243" |
y="59.720818" /> |
<rect |
style="fill:#a8a8a8;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect3122" |
width="15.904104" |
height="5.1382489" |
x="100.2243" |
y="69.407631" /> |
</g> |
<text |
sodipodi:linespacing="100%" |
id="text3193" |
y="138.75195" |
x="80.301758" |
style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
style="font-size:6px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;font-family:Bitstream Vera Sans" |
id="tspan3197" |
y="138.75195" |
x="80.301758" |
sodipodi:role="line">Full</tspan><tspan |
style="font-size:6px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;font-family:Bitstream Vera Sans" |
id="tspan3201" |
y="144.75195" |
x="80.301758" |
sodipodi:role="line">Magazines</tspan></text> |
<g |
transform="translate(34.94897,81.86735)" |
id="g3477"> |
<rect |
style="fill:#a8a8a8;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect3479" |
width="15.904104" |
height="5.1382489" |
x="100.22722" |
y="54.921501" /> |
<rect |
style="fill:#a8a8a8;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect3481" |
width="15.904104" |
height="5.1382489" |
x="100.2243" |
y="64.377678" /> |
<rect |
style="fill:#bc4343;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect3483" |
width="15.904104" |
height="5.1382489" |
x="100.2243" |
y="45.30592" /> |
<rect |
style="fill:#a8a8a8;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect3485" |
width="15.904104" |
height="5.1382489" |
x="100.2243" |
y="50.264641" /> |
<rect |
style="fill:#a8a8a8;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect3487" |
width="15.904104" |
height="5.1382489" |
x="100.2243" |
y="59.720818" /> |
<rect |
style="fill:#a8a8a8;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect3489" |
width="15.904104" |
height="5.1382489" |
x="100.2243" |
y="69.407631" /> |
</g> |
<g |
transform="translate(84.94897,81.86735)" |
id="g3491"> |
<rect |
style="fill:#a8a8a8;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect3493" |
width="15.904104" |
height="5.1382489" |
x="100.22722" |
y="54.921501" /> |
<rect |
style="fill:#a8a8a8;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect3495" |
width="15.904104" |
height="5.1382489" |
x="100.2243" |
y="64.377678" /> |
<rect |
style="fill:#bc4343;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect3497" |
width="15.904104" |
height="5.1382489" |
x="100.2243" |
y="45.30592" /> |
<rect |
style="fill:#a8a8a8;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect3499" |
width="15.904104" |
height="5.1382489" |
x="100.2243" |
y="50.264641" /> |
<rect |
style="fill:#a8a8a8;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect3501" |
width="15.904104" |
height="5.1382489" |
x="100.2243" |
y="59.720818" /> |
<rect |
style="fill:#a8a8a8;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect3503" |
width="15.904104" |
height="5.1382489" |
x="100.2243" |
y="69.407631" /> |
</g> |
<g |
transform="translate(184.949,81.86735)" |
id="g3505"> |
<rect |
style="fill:#a8a8a8;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect3507" |
width="15.904104" |
height="5.1382489" |
x="100.22722" |
y="54.921501" /> |
<rect |
style="fill:#a8a8a8;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect3509" |
width="15.904104" |
height="5.1382489" |
x="100.2243" |
y="64.377678" /> |
<rect |
style="fill:#bc4343;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect3511" |
width="15.904104" |
height="5.1382489" |
x="100.2243" |
y="45.30592" /> |
<rect |
style="fill:#a8a8a8;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect3513" |
width="15.904104" |
height="5.1382489" |
x="100.2243" |
y="50.264641" /> |
<rect |
style="fill:#a8a8a8;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect3515" |
width="15.904104" |
height="5.1382489" |
x="100.2243" |
y="59.720818" /> |
<rect |
style="fill:#a8a8a8;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect3517" |
width="15.904104" |
height="5.1382489" |
x="100.2243" |
y="69.407631" /> |
</g> |
<g |
transform="translate(109.949,81.86735)" |
id="g3519"> |
<rect |
style="fill:#a8a8a8;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect3521" |
width="15.904104" |
height="5.1382489" |
x="100.22722" |
y="54.921501" /> |
<rect |
style="fill:#a8a8a8;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect3523" |
width="15.904104" |
height="5.1382489" |
x="100.2243" |
y="64.377678" /> |
<rect |
style="fill:#bc4343;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect3525" |
width="15.904104" |
height="5.1382489" |
x="100.2243" |
y="45.30592" /> |
<rect |
style="fill:#a8a8a8;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect3527" |
width="15.904104" |
height="5.1382489" |
x="100.2243" |
y="50.264641" /> |
<rect |
style="fill:#a8a8a8;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect3529" |
width="15.904104" |
height="5.1382489" |
x="100.2243" |
y="59.720818" /> |
<rect |
style="fill:#a8a8a8;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect3531" |
width="15.904104" |
height="5.1382489" |
x="100.2243" |
y="69.407631" /> |
</g> |
<g |
transform="translate(134.949,81.86735)" |
id="g3533"> |
<rect |
style="fill:#a8a8a8;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect3535" |
width="15.904104" |
height="5.1382489" |
x="100.22722" |
y="54.921501" /> |
<rect |
style="fill:#a8a8a8;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect3537" |
width="15.904104" |
height="5.1382489" |
x="100.2243" |
y="64.377678" /> |
<rect |
style="fill:#bc4343;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect3539" |
width="15.904104" |
height="5.1382489" |
x="100.2243" |
y="45.30592" /> |
<rect |
style="fill:#a8a8a8;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect3541" |
width="15.904104" |
height="5.1382489" |
x="100.2243" |
y="50.264641" /> |
<rect |
style="fill:#a8a8a8;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect3543" |
width="15.904104" |
height="5.1382489" |
x="100.2243" |
y="59.720818" /> |
<rect |
style="fill:#a8a8a8;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect3545" |
width="15.904104" |
height="5.1382489" |
x="100.2243" |
y="69.407631" /> |
</g> |
<g |
transform="translate(59.94897,81.86735)" |
id="g3561"> |
<rect |
style="fill:#a8a8a8;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect3563" |
width="15.904104" |
height="5.1382489" |
x="100.22722" |
y="54.921501" /> |
<rect |
style="fill:#a8a8a8;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect3565" |
width="15.904104" |
height="5.1382489" |
x="100.2243" |
y="64.377678" /> |
<rect |
style="fill:#bc4343;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect3567" |
width="15.904104" |
height="5.1382489" |
x="100.2243" |
y="45.30592" /> |
<rect |
style="fill:#a8a8a8;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect3569" |
width="15.904104" |
height="5.1382489" |
x="100.2243" |
y="50.264641" /> |
<rect |
style="fill:#a8a8a8;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect3571" |
width="15.904104" |
height="5.1382489" |
x="100.2243" |
y="59.720818" /> |
<rect |
style="fill:#a8a8a8;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect3573" |
width="15.904104" |
height="5.1382489" |
x="100.2243" |
y="69.407631" /> |
</g> |
<g |
transform="translate(159.949,81.86735)" |
id="g3575"> |
<rect |
style="fill:#a8a8a8;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect3577" |
width="15.904104" |
height="5.1382489" |
x="100.22722" |
y="54.921501" /> |
<rect |
style="fill:#a8a8a8;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect3579" |
width="15.904104" |
height="5.1382489" |
x="100.2243" |
y="64.377678" /> |
<rect |
style="fill:#bc4343;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect3581" |
width="15.904104" |
height="5.1382489" |
x="100.2243" |
y="45.30592" /> |
<rect |
style="fill:#a8a8a8;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect3583" |
width="15.904104" |
height="5.1382489" |
x="100.2243" |
y="50.264641" /> |
<rect |
style="fill:#a8a8a8;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect3585" |
width="15.904104" |
height="5.1382489" |
x="100.2243" |
y="59.720818" /> |
<rect |
style="fill:#a8a8a8;fill-opacity:1;stroke:#000000;stroke-width:0.34653935;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" |
id="rect3587" |
width="15.904104" |
height="5.1382489" |
x="100.2243" |
y="69.407631" /> |
</g> |
<g |
id="g1985"> |
<path |
id="path3616" |
d="M 176.13305,127.18072 C 182.4201,127.18072 182.4201,127.18072 182.4201,127.18072" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.26610187;stroke-linecap:square;stroke-linejoin:miter;marker-start:none;marker-end:url(#Arrow2Lend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<path |
id="path3618" |
d="M 201.26893,127.36144 C 207.55598,127.36144 207.55598,127.36144 207.55598,127.36144" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.26610187;stroke-linecap:square;stroke-linejoin:miter;marker-start:none;marker-end:url(#Arrow2Lend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.26610187;stroke-linecap:square;stroke-linejoin:miter;marker-start:none;marker-end:url(#Arrow2Lend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
d="M 226.26893,127.36144 C 232.55598,127.36144 232.55598,127.36144 232.55598,127.36144" |
id="path3620" /> |
<path |
id="path3622" |
d="M 276.26893,127.36144 C 282.55598,127.36144 282.55598,127.36144 282.55598,127.36144" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.26610187;stroke-linecap:square;stroke-linejoin:miter;marker-start:none;marker-end:url(#Arrow2Lend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.26610187;stroke-linecap:square;stroke-linejoin:miter;marker-start:none;marker-end:url(#Arrow2Lend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
d="M 251.26893,127.36144 C 257.55598,127.36144 257.55598,127.36144 257.55598,127.36144" |
id="path3624" /> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.26610187;stroke-linecap:square;stroke-linejoin:miter;marker-start:none;marker-end:url(#Arrow2Lend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
d="M 151.60329,127.18072 C 157.89034,127.18072 157.89034,127.18072 157.89034,127.18072" |
id="path3649" /> |
<path |
id="path3651" |
d="M 126.60329,127.18072 C 132.89034,127.18072 132.89034,127.18072 132.89034,127.18072" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.26610187;stroke-linecap:square;stroke-linejoin:miter;marker-start:none;marker-end:url(#Arrow2Lend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
</g> |
<g |
id="g3687"> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.49237213;stroke-linecap:square;stroke-linejoin:miter;marker-start:none;marker-end:url(#Arrow2Lend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
d="M 85.167362,91.246186 C 85.167362,102.8792 85.167362,102.8792 85.167362,102.8792" |
id="path3279" /> |
<path |
id="path3685" |
d="M 104.83264,106.53655 C 104.83264,94.903535 104.83264,94.903535 104.83264,94.903535" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.49237213;stroke-linecap:square;stroke-linejoin:miter;marker-start:none;marker-end:url(#Arrow2Lend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
</g> |
<g |
transform="translate(176,2.943353e-7)" |
id="g3691"> |
<path |
id="path3693" |
d="M 85.167362,91.246186 C 85.167362,102.8792 85.167362,102.8792 85.167362,102.8792" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.49237213;stroke-linecap:square;stroke-linejoin:miter;marker-start:none;marker-end:url(#Arrow2Lend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.49237213;stroke-linecap:square;stroke-linejoin:miter;marker-start:none;marker-end:url(#Arrow2Lend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
d="M 104.83264,106.53655 C 104.83264,94.903535 104.83264,94.903535 104.83264,94.903535" |
id="path3695" /> |
</g> |
<g |
transform="translate(107,0.217264)" |
id="g3697"> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.49237213;stroke-linecap:square;stroke-linejoin:miter;marker-start:none;marker-end:url(#Arrow2Lend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
d="M 85.167362,91.246186 C 85.167362,102.8792 85.167362,102.8792 85.167362,102.8792" |
id="path3699" /> |
<path |
id="path3701" |
d="M 104.83264,106.53655 C 104.83264,94.903535 104.83264,94.903535 104.83264,94.903535" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.49237213;stroke-linecap:square;stroke-linejoin:miter;marker-start:none;marker-end:url(#Arrow2Lend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
</g> |
<g |
transform="translate(54,0.217264)" |
id="g3703"> |
<path |
id="path3705" |
d="M 85.167362,91.246186 C 85.167362,102.8792 85.167362,102.8792 85.167362,102.8792" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.49237213;stroke-linecap:square;stroke-linejoin:miter;marker-start:none;marker-end:url(#Arrow2Lend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.49237213;stroke-linecap:square;stroke-linejoin:miter;marker-start:none;marker-end:url(#Arrow2Lend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
d="M 104.83264,106.53655 C 104.83264,94.903535 104.83264,94.903535 104.83264,94.903535" |
id="path3707" /> |
</g> |
<g |
id="g3856" |
transform="translate(86.5,82)"> |
<path |
id="path3858" |
d="M 85.167362,91.246186 C 85.167362,102.8792 85.167362,102.8792 85.167362,102.8792" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.49237213;stroke-linecap:square;stroke-linejoin:miter;marker-start:none;marker-end:url(#Arrow2Lend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.49237213;stroke-linecap:square;stroke-linejoin:miter;marker-start:none;marker-end:url(#Arrow2Lend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
d="M 104.83264,106.53655 C 104.83264,94.903535 104.83264,94.903535 104.83264,94.903535" |
id="path3860" /> |
</g> |
<g |
transform="translate(87,161.2173)" |
id="g3862"> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.49237213;stroke-linecap:square;stroke-linejoin:miter;marker-start:none;marker-end:url(#Arrow2Lend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
d="M 85.167362,91.246186 C 85.167362,102.8792 85.167362,102.8792 85.167362,102.8792" |
id="path3864" /> |
<path |
id="path3866" |
d="M 104.83264,106.53655 C 104.83264,94.903535 104.83264,94.903535 104.83264,94.903535" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.49237213;stroke-linecap:square;stroke-linejoin:miter;marker-start:none;marker-end:url(#Arrow2Lend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
</g> |
<text |
id="text3868" |
y="279.02914" |
x="136.4716" |
style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="279.02914" |
x="136.4716" |
id="tspan3870" |
sodipodi:role="line">Frame allocator</tspan></text> |
<g |
transform="matrix(-1,4.302927e-19,-4.302927e-19,-1,411.4702,283)" |
id="g1994"> |
<path |
id="path1996" |
d="M 176.13305,127.18072 C 182.4201,127.18072 182.4201,127.18072 182.4201,127.18072" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.26610187;stroke-linecap:square;stroke-linejoin:miter;marker-start:none;marker-end:url(#Arrow2Lend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<path |
id="path1998" |
d="M 201.26893,127.36144 C 207.55598,127.36144 207.55598,127.36144 207.55598,127.36144" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.26610187;stroke-linecap:square;stroke-linejoin:miter;marker-start:none;marker-end:url(#Arrow2Lend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.26610187;stroke-linecap:square;stroke-linejoin:miter;marker-start:none;marker-end:url(#Arrow2Lend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
d="M 226.26893,127.36144 C 232.55598,127.36144 232.55598,127.36144 232.55598,127.36144" |
id="path2000" /> |
<path |
id="path2002" |
d="M 276.26893,127.36144 C 282.55598,127.36144 282.55598,127.36144 282.55598,127.36144" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.26610187;stroke-linecap:square;stroke-linejoin:miter;marker-start:none;marker-end:url(#Arrow2Lend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.26610187;stroke-linecap:square;stroke-linejoin:miter;marker-start:none;marker-end:url(#Arrow2Lend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
d="M 251.26893,127.36144 C 257.55598,127.36144 257.55598,127.36144 257.55598,127.36144" |
id="path2004" /> |
<path |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.26610187;stroke-linecap:square;stroke-linejoin:miter;marker-start:none;marker-end:url(#Arrow2Lend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
d="M 151.60329,127.18072 C 157.89034,127.18072 157.89034,127.18072 157.89034,127.18072" |
id="path2006" /> |
<path |
id="path2008" |
d="M 126.60329,127.18072 C 132.89034,127.18072 132.89034,127.18072 132.89034,127.18072" |
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.26610187;stroke-linecap:square;stroke-linejoin:miter;marker-start:none;marker-end:url(#Arrow2Lend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> |
</g> |
<text |
sodipodi:linespacing="125%" |
id="text2076" |
y="43.334007" |
x="77.724846" |
style="font-size:3.20176601px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#feff00;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="43.334007" |
x="77.724846" |
id="tspan2080" |
sodipodi:role="line">[partial]</tspan></text> |
<text |
sodipodi:linespacing="125%" |
id="text2104" |
y="43.43259" |
x="130.46965" |
style="font-size:3.20176601px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#feff00;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="43.43259" |
x="130.46965" |
id="tspan2106" |
sodipodi:role="line">[partial]</tspan></text> |
<text |
sodipodi:linespacing="125%" |
id="text2108" |
y="43.334007" |
x="182.46965" |
style="font-size:3.20176601px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#feff00;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="43.334007" |
x="182.46965" |
id="tspan2110" |
sodipodi:role="line">[partial]</tspan></text> |
<text |
sodipodi:linespacing="125%" |
id="text2112" |
y="43.334007" |
x="251.46965" |
style="font-size:3.20176601px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#feff00;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" |
xml:space="preserve"><tspan |
y="43.334007" |
x="251.46965" |
id="tspan2114" |
sodipodi:role="line">[partial]</tspan></text> |
</g> |
</g> |
</svg> |
/design/trunk/src/images/helenos.svg |
---|
0,0 → 1,106 |
<?xml version="1.0" encoding="utf-8"?> |
<!-- Generator: Adobe Illustrator 12.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 51448) --> |
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [ |
<!ENTITY ns_svg "http://www.w3.org/2000/svg"> |
<!ENTITY ns_xlink "http://www.w3.org/1999/xlink"> |
]> |
<svg version="1.1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="207.379" height="185.525" viewBox="0 0 207.379 185.525" |
overflow="visible" enable-background="new 0 0 207.379 185.525" xml:space="preserve"> |
<g id="Layer_1"> |
<g> |
<path fill="#272827" d="M29.516,139.5h6.066v44.899h-6.066V163.45H6.065v20.949H0V139.5h6.065v18.572h23.451V139.5z"/> |
<path fill="#272827" d="M68.763,174.143c-0.188,1.188-0.75,2.627-1.688,4.44s-2.313,3.314-4.127,4.502 |
c-1.063,0.688-2.189,1.251-3.439,1.626c-1.251,0.438-3.064,0.626-5.44,0.626c-2.251,0-4.315-0.438-6.128-1.251 |
c-1.813-0.813-3.377-1.938-4.627-3.439c-1.313-1.501-2.251-3.252-2.877-5.19c-0.688-1.938-1-4.127-1-6.504 |
c0-3.439,0.563-6.565,1.751-9.317c1.126-2.751,2.876-4.94,5.19-6.504c2.376-1.563,5.315-2.376,8.755-2.376 |
c2.314,0,4.377,0.438,6.191,1.313c1.751,0.938,3.189,2.188,4.377,3.814c1.125,1.626,2.001,3.627,2.626,5.94 |
c0.563,2.314,0.875,5.003,0.875,8.005H45.313c0,3.439,0.813,6.065,2.439,7.941c1.563,1.876,3.939,2.814,7.066,2.814 |
c1.25,0,2.376-0.188,3.439-0.625c1.001-0.438,1.876-0.938,2.626-1.626c0.688-0.688,1.313-1.376,1.751-2.189 |
c0.375-0.75,0.563-1.438,0.625-2.001H68.763z M63.51,165.451c-0.188-2.876-0.938-5.253-2.376-7.066 |
c-1.376-1.813-3.627-2.688-6.754-2.688c-1.626,0-3.126,0.438-4.502,1.313c-1.438,0.938-2.564,2.126-3.377,3.689 |
s-1.188,3.126-1.188,4.752H63.51z"/> |
<path fill="#272827" d="M78.374,184.399h-5.503V139.5h5.503V184.399z"/> |
<path fill="#272827" d="M111.259,174.143c-0.188,1.188-0.75,2.627-1.688,4.44c-0.938,1.813-2.313,3.314-4.127,4.502 |
c-1.063,0.688-2.188,1.251-3.439,1.626c-1.251,0.438-3.064,0.626-5.441,0.626c-2.251,0-4.314-0.438-6.128-1.251 |
c-1.814-0.813-3.377-1.938-4.628-3.439c-1.313-1.501-2.251-3.252-2.876-5.19c-0.688-1.938-1-4.127-1-6.504 |
c0-3.439,0.563-6.565,1.751-9.317c1.125-2.751,2.876-4.94,5.19-6.504c2.376-1.563,5.315-2.376,8.755-2.376 |
c2.313,0,4.377,0.438,6.191,1.313c1.751,0.938,3.189,2.188,4.377,3.814c1.126,1.626,2.001,3.627,2.627,5.94 |
c0.563,2.314,0.875,5.003,0.875,8.005H87.809c0,3.439,0.813,6.065,2.438,7.941c1.563,1.876,3.94,2.814,7.066,2.814 |
c1.251,0,2.376-0.188,3.439-0.625c1-0.438,1.876-0.938,2.627-1.626c0.688-0.688,1.313-1.376,1.751-2.189 |
c0.375-0.75,0.563-1.438,0.625-2.001H111.259z M106.006,165.451c-0.188-2.876-0.938-5.253-2.376-7.066 |
c-1.376-1.813-3.627-2.688-6.754-2.688c-1.626,0-3.127,0.438-4.502,1.313c-1.438,0.938-2.564,2.126-3.377,3.689 |
s-1.188,3.126-1.188,4.752H106.006z"/> |
<path fill="#272827" d="M141.945,184.399h-5.504l-0.063-20.136c0-3.002-0.5-5.19-1.563-6.504 |
c-1.001-1.376-2.814-2.063-5.441-2.063c-1.25,0-2.563,0.313-3.877,1c-1.313,0.626-2.438,1.751-3.377,3.377 |
c-0.938,1.626-1.375,3.814-1.375,6.504v17.822h-5.503v-32.705h5.189v4.627h0.126c0.938-1.438,2.251-2.688,3.814-3.877 |
c1.563-1.126,3.627-1.688,6.065-1.688c1.938,0,3.814,0.313,5.503,1.001c1.688,0.625,3.127,1.813,4.315,3.502 |
c1.125,1.688,1.688,4.002,1.688,6.878V184.399z"/> |
<path fill="#272827" d="M175.256,169.454c0,2.751-0.251,5.127-0.751,7.066c-0.5,1.938-1.313,3.564-2.501,4.939 |
c-1.126,1.313-2.627,2.314-4.565,3.002c-1.876,0.688-4.189,1.063-7.004,1.063c-2.751,0-5.065-0.376-7.004-1.063 |
s-3.502-1.688-4.689-3.002c-1.188-1.375-2.001-3.063-2.502-5.002c-0.563-1.939-0.813-4.315-0.813-7.004V150.38 |
c0-4.503,1.313-7.942,3.939-10.381c2.563-2.438,6.254-3.627,11.068-3.627c4.815,0,8.505,1.188,11.069,3.627 |
c2.501,2.438,3.752,5.878,3.752,10.381V169.454z M164.25,151.13c0-1.938-0.25-3.439-0.75-4.564 |
c-0.5-1.188-1.563-1.751-3.127-1.751s-2.563,0.625-3.127,1.813c-0.563,1.188-0.813,2.688-0.813,4.502v19.261 |
c0,4.44,1.313,6.691,4.002,6.691c1.563,0,2.627-0.625,3.127-1.938c0.438-1.251,0.688-2.814,0.688-4.753V151.13z"/> |
<path fill="#272827" d="M189.12,168.703v3.314c0,1.563,0.313,2.752,1,3.689c0.626,0.938,1.751,1.376,3.377,1.376 |
c1.188,0,2.063-0.438,2.752-1.376c0.625-0.938,0.938-2.001,0.938-3.314c0-1.688-0.438-2.938-1.376-3.814 |
c-0.938-0.875-2.501-2.001-4.752-3.377c-3.939-2.251-6.754-4.314-8.317-6.128c-2.126-2.502-3.189-5.628-3.189-9.381 |
c0-2.188,0.313-4.127,1.001-5.815c0.625-1.688,1.501-3.064,2.688-4.189c1.188-1.063,2.627-1.938,4.315-2.502 |
c1.688-0.563,3.627-0.813,5.815-0.813c2.251,0,4.252,0.375,6.003,1.063c1.751,0.688,3.252,1.688,4.44,3.001 |
c1.188,1.313,2.063,2.939,2.626,4.815c0.563,1.876,0.876,4.002,0.876,6.316h-10.131c-0.063-2.189-0.313-3.815-0.688-4.94 |
c-0.375-1.063-1.376-1.688-2.939-1.813c-2.313,0-3.564,1.063-3.814,3.127c0,1.438,0.25,2.501,0.813,3.313 |
c0.563,0.813,1.375,1.626,2.501,2.439c1,0.625,2.313,1.438,4.002,2.438c1.688,0.938,2.939,1.751,3.814,2.313 |
c0.876,0.563,1.688,1.188,2.439,1.876c1.313,1.251,2.376,2.752,3.063,4.503c0.688,1.751,1.001,4.002,1.001,6.691 |
c0,2.938-0.563,5.503-1.626,7.629c-1.063,2.063-2.688,3.689-4.753,4.753c-2.126,1.063-4.689,1.626-7.754,1.626 |
c-2.376,0-4.502-0.313-6.316-0.938c-1.813-0.563-3.313-1.438-4.502-2.563c-1.188-1.126-2.063-2.377-2.627-3.814 |
c-0.563-1.438-0.875-2.939-0.875-4.503v-5.003H189.12z"/> |
</g> |
</g> |
<g id="Layer_2"> |
<path fill="#6B6B6B" d="M160.914,84.42c2.357,6.217-0.646,13.124-6.713,15.426l-72.997,27.702 |
c-6.068,2.303-12.896-0.871-15.257-7.088L37.554,45.643c-2.359-6.218,0.646-13.123,6.713-15.426l72.997-27.702 |
c6.065-2.303,12.896,0.872,15.256,7.088L160.914,84.42z"/> |
<path fill="#DEDDDD" d="M161.994,80.904c2.309,6.089-0.734,12.893-6.8,15.194l-72.991,27.699 |
c-6.067,2.303-12.856-0.768-15.168-6.857L39.224,43.659c-2.311-6.09,0.733-12.892,6.8-15.194l72.991-27.7 |
c6.064-2.302,12.855,0.769,15.167,6.858L161.994,80.904z"/> |
<path fill="#A4ADAF" d="M155.905,79.039c2.059,5.426-0.627,11.481-5.997,13.52l-64.655,24.536 |
c-5.374,2.039-11.398-0.709-13.459-6.139L47.008,45.645c-2.06-5.428,0.626-11.48,6-13.519L117.66,7.59 |
c5.374-2.039,11.4,0.709,13.458,6.136L155.905,79.039z"/> |
<path fill="#FFFFFF" d="M47.786,45.947c-2.016-5.315,0.626-11.251,5.901-13.253l63.514-24.103 |
c5.28-2.003,11.193,0.683,13.213,6.002l24.28,63.98c2.017,5.317-0.625,11.251-5.904,13.254L85.279,115.93 |
c-5.279,2.004-11.194-0.684-13.211-6L47.786,45.947z"/> |
<linearGradient id="XMLID_2_" gradientUnits="userSpaceOnUse" x1="70.8823" y1="179.5894" x2="155.9314" y2="139.9303" gradientTransform="matrix(-4.371139e-008 1 -1 -4.371139e-008 260.9996 -51.1469)"> |
<stop offset="0" style="stop-color:#FFFFFF"/> |
<stop offset="0.1147" style="stop-color:#E9E9E9"/> |
<stop offset="0.3539" style="stop-color:#B0B0B0"/> |
<stop offset="0.6936" style="stop-color:#575757"/> |
<stop offset="1" style="stop-color:#000000"/> |
</linearGradient> |
<path opacity="0.24" fill="url(#XMLID_2_)" d="M47.786,45.947c-2.016-5.315,0.626-11.251,5.901-13.253l63.514-24.103 |
c5.28-2.003,11.193,0.683,13.213,6.002l24.28,63.98c2.017,5.317-0.625,11.251-5.904,13.254L85.279,115.93 |
c-5.279,2.004-11.194-0.684-13.211-6L47.786,45.947z"/> |
</g> |
<g id="Layer_3"> |
<circle fill="#D4DBE0" stroke="#E5E5E4" cx="81.68" cy="109.059" r="2.375"/> |
<ellipse transform="matrix(0.819 -0.5738 0.5738 0.819 -47.5865 66.3171)" fill="#A4ADAF" cx="81.313" cy="108.579" rx="1.729" ry="1.247"/> |
<circle fill="#D4DBE0" stroke="#E5E5E4" cx="148.374" cy="83.394" r="2.375"/> |
<ellipse transform="matrix(0.819 -0.5738 0.5738 0.819 -20.7849 99.9422)" fill="#A4ADAF" cx="148.006" cy="82.913" rx="1.729" ry="1.247"/> |
</g> |
<g id="Layer_4"> |
<path fill="#444444" d="M124.11,78.229c-2.326,0.875-4.822-0.045-5.576-2.049l-14.853-39.55c-0.753-2.006,0.521-4.34,2.849-5.214 |
l0,0c2.327-0.875,4.823,0.044,5.577,2.05l14.853,39.55C127.712,75.021,126.437,77.356,124.11,78.229L124.11,78.229z"/> |
<path fill="#444444" d="M94.454,89.329c-2.328,0.875-4.823-0.043-5.577-2.051L74.024,47.73c-0.753-2.006,0.521-4.339,2.85-5.214 |
l0,0c2.325-0.874,4.823,0.044,5.576,2.05l14.853,39.548C98.055,86.122,96.78,88.456,94.454,89.329L94.454,89.329z"/> |
<path fill="#444444" d="M116.055,53.935c0.753,2.006,0.388,3.998-0.814,4.449l-23.729,8.911c-1.203,0.453-2.789-0.807-3.542-2.813 |
l0,0c-0.754-2.007-0.389-4,0.815-4.451l23.727-8.911C113.714,50.668,115.301,51.928,116.055,53.935L116.055,53.935z"/> |
<g id="Layer_5"> |
</g> |
</g> |
<g id="Layer_6"> |
<polygon opacity="0.78" fill="#272827" points="68.008,100.595 63.259,106.61 45.741,60.42 52.572,60.089 "/> |
<polygon fill="#848A8D" points="63.259,106.61 60.491,106.17 43.741,61.92 45.741,60.42 "/> |
</g> |
</svg> |
/design/trunk/src/ch_synchronization.xml |
---|
0,0 → 1,553 |
<?xml version="1.0" encoding="UTF-8"?> |
<chapter id="sync"> |
<?dbhtml filename="sync.html"?> |
<title>Synchronization</title> |
<section> |
<title>Introduction</title> |
<para>The HelenOS operating system is designed to make use of the |
parallelism offered by the hardware and to exploit concurrency of both the |
kernel and userspace tasks. This is achieved through multiprocessor |
support and several levels of multiprogramming such as multitasking, |
multithreading and also through userspace fibrils. However, such a highly |
concurrent environment needs safe and efficient ways to handle mutual |
exclusion and synchronization of many execution flows.</para> |
</section> |
<section> |
<title>Active Kernel Primitives</title> |
<section> |
<indexterm> |
<primary>synchronization</primary> |
<secondary>- spinlock</secondary> |
</indexterm> |
<title>Spinlocks</title> |
<para>The basic mutual exclusion primitive is the spinlock. The spinlock |
implements active waiting for the availability of a memory lock (i.e. |
simple variable) in a multiprocessor-safe manner. This safety is |
achieved through the use of a specialized, architecture-dependent, |
atomic test-and-set operation which either locks the spinlock (i.e. sets |
the variable) or, provided that it is already locked, leaves it |
unaltered. In any case, the test-and-set operation returns a value, thus |
signalling either success (i.e. zero return value) or failure (i.e. |
non-zero value) in acquiring the lock. Note that this makes a |
fundamental difference between the naive algorithm that doesn't use the |
atomic operation and the spinlock algortihm. While the naive algorithm |
is prone to race conditions on SMP configurations and thus is completely |
SMP-unsafe, the spinlock algorithm eliminates the possibility of race |
conditions and is suitable for mutual exclusion use.</para> |
<para>The semantics of the test-and-set operation is that the spinlock |
remains unavailable until this operation called on the respective |
spinlock returns zero. HelenOS builds two functions on top of the |
test-and-set operation. The first function is the unconditional attempt |
to acquire the spinlock and is called <code>spinlock_lock()</code>. It |
simply loops until the test-and-set returns a zero value. The other |
function, <code>spinlock_trylock()</code>, is the conditional lock |
operation and calls the test-and-set only once to find out whether it |
managed to acquire the spinlock or not. The conditional operation is |
useful in situations in which an algorithm cannot acquire more spinlocks |
in the proper order and a deadlock cannot be avoided. In such a case, |
the algorithm would detect the danger and instead of possibly |
deadlocking the system it would simply release some spinlocks it already |
holds and retry the whole operation with the hope that it will succeed |
next time. The unlock function, <code>spinlock_unlock()</code>, is quite |
easy - it merely clears the spinlock variable.</para> |
<para>Nevertheless, there is a special issue related to hardware |
optimizations that modern processors implement. Particularly problematic |
is the out-of-order execution of instructions within the critical |
section protected by a spinlock. The processors are always |
self-consistent so that they can carry out speculatively executed |
instructions in the right order with regard to dependencies among those |
instructions. However, the dependency between instructions inside the |
critical section and those that implement locking and unlocking of the |
respective spinlock is not implicit on some processor architectures. As |
a result, the processor needs to be explicitly told about each |
occurrence of such a dependency. Therefore, HelenOS adds |
architecture-specific hooks to all <code>spinlock_lock()</code>, |
<code>spinlock_trylock()</code> and <code>spinlock_unlock()</code> |
functions to prevent the instructions inside the critical section from |
permeating out. On some architectures, these hooks can be void because |
the dependencies are implicitly there because of the special properties |
of locking and unlocking instructions. However, other architectures need |
to instrument these hooks with different memory barriers, depending on |
what operations could permeate out.</para> |
<para>Spinlocks have one significant drawback: when held for longer time |
periods, they harm both parallelism and concurrency. The processor |
executing <code>spinlock_lock()</code> does not do any fruitful work and |
is effectively halted until it can grab the lock and proceed. |
Similarily, other execution flows cannot execute on the processor that |
holds the spinlock because the kernel disables preemption on that |
processor when a spinlock is held. The reason behind disabling |
preemption is priority inversion problem avoidance. For the same reason, |
threads are strongly discouraged from sleeping when they hold a |
spinlock.</para> |
<para>To summarize, spinlocks represent very simple and essential mutual |
exclusion primitive for SMP systems. On the other hand, spinlocks scale |
poorly because of the active loop they are based on. Therefore, |
spinlocks are used in HelenOS only for short-time mutual exclusion and |
in cases where the mutual exclusion is required out of thread context. |
Lastly, spinlocks are used in the construction of passive |
synchronization primitives.</para> |
</section> |
</section> |
<section> |
<title>Passive Kernel Synchronization</title> |
<section> |
<indexterm> |
<primary>synchronization</primary> |
<secondary>- wait queue</secondary> |
</indexterm> |
<title>Wait Queues</title> |
<para>A wait queue is the basic passive synchronization primitive on |
which all other passive synchronization primitives are built. Simply |
put, it allows a thread to sleep until an event associated with the |
particular wait queue occurs. Multiple threads are notified about |
incoming events in a first come, first served fashion. Moreover, should |
the event come before any thread waits for it, it is recorded in the |
wait queue as a missed wakeup and later forwarded to the first thread |
that decides to wait in the queue. The inner structures of the wait |
queue are protected by a spinlock.</para> |
<para>The thread that wants to wait for a wait queue event uses the |
<code>waitq_sleep_timeout()</code> function. The algorithm then checks |
the wait queue's counter of missed wakeups and if there are any missed |
wakeups, the call returns immediately. The call also returns immediately |
if only a conditional wait was requested. Otherwise the thread is |
enqueued in the wait queue's list of sleeping threads and its state is |
changed to <constant>Sleeping</constant>. It then sleeps until one of |
the following events happens:</para> |
<orderedlist> |
<listitem> |
<para>another thread calls <code>waitq_wakeup()</code> and the |
thread is the first thread in the wait queue's list of sleeping |
threads;</para> |
</listitem> |
<listitem> |
<para>another thread calls <code>waitq_interrupt_sleep()</code> on |
the sleeping thread;</para> |
</listitem> |
<listitem> |
<para>the sleep times out provided that none of the previous |
occurred within a specified time limit; the limit can be |
infinity.</para> |
</listitem> |
</orderedlist> |
<para>All five possibilities (immediate return on success, immediate |
return on failure, wakeup after sleep, interruption and timeout) are |
distinguishable by the return value of |
<code>waitq_sleep_timeout()</code>. Being able to interrupt a sleeping |
thread is essential for externally initiated thread termination. The |
ability to wait only for a certain amount of time is used, for instance, |
to passively delay thread execution by several microseconds or even |
seconds in <code>thread_sleep()</code> function. Due to the fact that |
all other passive kernel synchronization primitives are based on wait |
queues, they also have the option of being interrutped and, more |
importantly, can timeout. All of them also implement the conditional |
operation. Furthemore, this very fundamental interface reaches up to the |
implementation of futexes - userspace synchronization primitive, which |
makes it possible for a userspace thread to request a synchronization |
operation with a timeout or a conditional operation.</para> |
<para>From the description above, it should be apparent, that when a |
sleeping thread is woken by <code>waitq_wakeup()</code> or when |
<code>waitq_sleep_timeout()</code> succeeds immediately, the thread can |
be sure that the event has occurred. The thread need not and should not |
verify this fact. This approach is called direct hand-off and is |
characteristic for all passive HelenOS synchronization primitives, with |
the exception as described below.</para> |
</section> |
<section> |
<indexterm> |
<primary>synchronization</primary> |
<secondary>- semaphore</secondary> |
</indexterm> |
<title>Semaphores</title> |
<para>The interesting point about wait queues is that the number of |
missed wakeups is equal to the number of threads that will not block in |
<code>watiq_sleep_timeout()</code> and would immediately succeed |
instead. On the other hand, semaphores are synchronization primitives |
that will let predefined amount of threads into their critical section |
and block any other threads above this count. However, these two cases |
are exactly the same. Semaphores in HelenOS are therefore implemented as |
wait queues with a single semantic change: their wait queue is |
initialized to have so many missed wakeups as is the number of threads |
that the semphore intends to let into its critical section |
simultaneously.</para> |
<para>In the semaphore language, the wait queue operation |
<code>waitq_sleep_timeout()</code> corresponds to semaphore |
<code>down</code> operation, represented by the function |
<code>semaphore_down_timeout()</code> and by way of similitude the wait |
queue operation waitq_wakeup corresponds to semaphore <code>up</code> |
operation, represented by the function <code>sempafore_up()</code>. The |
conditional down operation is called |
<code>semaphore_trydown()</code>.</para> |
</section> |
<section> |
<title>Mutexes</title> |
<indexterm> |
<primary>synchronization</primary> |
<secondary>- mutex</secondary> |
</indexterm> |
<para>Mutexes are sometimes referred to as binary sempahores. That means |
that mutexes are like semaphores that allow only one thread in its |
critical section. Indeed, mutexes in HelenOS are implemented exactly in |
this way: they are built on top of semaphores. From another point of |
view, they can be viewed as spinlocks without busy waiting. Their |
semaphore heritage provides good basics for both conditional operation |
and operation with timeout. The locking operation is called |
<code>mutex_lock()</code>, the conditional locking operation is called |
<code>mutex_trylock()</code> and the unlocking operation is called |
<code>mutex_unlock()</code>.</para> |
</section> |
<section> |
<title>Reader/Writer Locks</title> |
<indexterm> |
<primary>synchronization</primary> |
<secondary>- read/write lock</secondary> |
</indexterm> |
<para>Reader/writer locks, or rwlocks, are by far the most complicated |
synchronization primitive within the kernel. The goal of these locks is |
to improve concurrency of applications, in which threads need to |
synchronize access to a shared resource, and that access can be |
partitioned into a read-only mode and a write mode. Reader/writer locks |
should make it possible for several, possibly many, readers to enter the |
critical section, provided that no writer is currently in the critical |
section, or to be in the critical section contemporarily. Writers are |
allowed to enter the critical section only individually, provided that |
no reader is in the critical section already. Applications, in which the |
majority of operations can be done in the read-only mode, can benefit |
from increased concurrency created by reader/writer locks.</para> |
<para>During reader/writer lock construction, a decision should be made |
whether readers will be prefered over writers or whether writers will be |
prefered over readers in cases when the lock is not currently held and |
both a reader and a writer want to gain the lock. Some operating systems |
prefer one group over the other, creating thus a possibility for |
starving the unprefered group. In the HelenOS operating system, none of |
the two groups is prefered. The lock is granted on a first come, first |
served basis with the additional note that readers are granted the lock |
in the biggest possible batch.</para> |
<para>With this policy and the timeout modes of operation, the direct |
hand-off becomes much more complicated. For instance, a writer leaving |
the critical section must wake up all leading readers in the rwlock's |
wait queue or one leading writer or no-one if no thread is waiting. |
Similarily, the last reader leaving the critical section must wakeup the |
sleeping writer if there are any sleeping threads left at all. As |
another example, if a writer at the beginning of the rwlock's wait queue |
times out and the lock is held by at least one reader, the writer which |
has timed out must first wake up all readers that follow him in the |
queue prior to signalling the timeout itself and giving up.</para> |
<para>Due to the issues mentioned in the previous paragraph, the |
reader/writer lock imlpementation needs to walk the rwlock wait queue's |
list of sleeping threads directly, in order to find out the type of |
access that the queueing threads demand. This makes the code difficult |
to understand and dependent on the internal implementation of the wait |
queue. Nevertheless, it remains unclear to the authors of HelenOS |
whether a simpler but equivalently fair solution exists.</para> |
<para>The implementation of rwlocks as it has been already put, makes |
use of one single wait queue for both readers and writers, thus avoiding |
any possibility of starvation. In fact, rwlocks use a mutex rather than |
a bare wait queue. This mutex is called <emphasis>exclusive</emphasis> |
and is used to synchronize writers. The writer's lock operation, |
<code>rwlock_write_lock_timeout()</code>, simply tries to acquire the |
exclusive mutex. If it succeeds, the writer is granted the rwlock. |
However, if the operation fails (e.g. times out), the writer must check |
for potential readers at the head of the list of sleeping threads |
associated with the mutex's wait queue and then proceed according to the |
procedure outlined above.</para> |
<para>The exclusive mutex plays an important role in reader |
synchronization as well. However, a reader doing the reader's lock |
operation, <code>rwlock_read_lock_timeout()</code>, may bypass this |
mutex when it detects that:</para> |
<orderedlist> |
<listitem> |
<para>there are other readers in the critical section and</para> |
</listitem> |
<listitem> |
<para>there are no sleeping threads waiting for the exclusive |
mutex.</para> |
</listitem> |
</orderedlist> |
<para>If both conditions are true, the reader will bypass the mutex, |
increment the number of readers in the critical section and then enter |
the critical section. Note that if there are any sleeping threads at the |
beginning of the wait queue, the first must be a writer. If the |
conditions are not fulfilled, the reader normally waits until the |
exclusive mutex is granted to it.</para> |
</section> |
<section> |
<title>Condition Variables</title> |
<indexterm> |
<primary>synchronization</primary> |
<secondary>- condition variable</secondary> |
</indexterm> |
<para>Condition variables can be used for waiting until a condition |
becomes true. In this respect, they are similar to wait queues. But |
contrary to wait queues, condition variables have different semantics |
that allows events to be lost when there is no thread waiting for them. |
In order to support this, condition variables don't use direct hand-off |
and operate in a way similar to the example below. A thread waiting for |
the condition becoming true does the following:</para> |
<example> |
<title>Use of <code>condvar_wait_timeout()</code>.</title> |
<programlisting language="C"><function>mutex_lock</function>(<varname>mtx</varname>); |
while (!<varname>condition</varname>) |
<function>condvar_wait_timeout</function>(<varname>cv</varname>, <varname>mtx</varname>); /* <remark>the condition is true, do something</remark> */ |
<function>mutex_unlock</function>(<varname>mtx</varname>);</programlisting> |
</example> |
<para>A thread that causes the condition become true signals this event |
like this:</para> |
<example> |
<title>Use of <code>condvar_signal()</code>.</title> |
<programlisting language="C"><function>mutex_lock</function>(<varname>mtx</varname>); |
<varname>condition</varname> = <constant>true</constant>; |
<function>condvar_signal</function>(<varname>cv</varname>); /* <remark>condvar_broadcast(cv);</remark> */ |
<function>mutex_unlock</function>(<varname>mtx</varname>);</programlisting> |
</example> |
<para>The wait operation, <code>condvar_wait_timeout()</code>, always |
puts the calling thread to sleep. The thread then sleeps until another |
thread invokes <code>condvar_broadcast()</code> on the same condition |
variable or until it is woken up by <code>condvar_signal()</code>. The |
<code>condvar_signal()</code> operation unblocks the first thread |
blocking on the condition variable while the |
<code>condvar_broadcast()</code> operation unblocks all threads blocking |
there. If there are no blocking threads, these two operations have no |
efect.</para> |
<para>Note that the threads must synchronize over a dedicated mutex. To |
prevent race condition between <code>condvar_wait_timeout()</code> and |
<code>condvar_signal()</code> or <code>condvar_broadcast()</code>, the |
mutex is passed to <code>condvar_wait_timeout()</code> which then |
atomically puts the calling thread asleep and unlocks the mutex. When |
the thread eventually wakes up, <code>condvar_wait()</code> regains the |
mutex and returns.</para> |
<para>Also note, that there is no conditional operation for condition |
variables. Such an operation would make no sence since condition |
variables are defined to forget events for which there is no waiting |
thread and because <code>condvar_wait()</code> must always go to sleep. |
The operation with timeout is supported as usually.</para> |
<para>In HelenOS, condition variables are based on wait queues. As it is |
already mentioned above, wait queues remember missed events while |
condition variables must not do so. This is reasoned by the fact that |
condition variables are designed for scenarios in which an event might |
occur very many times without being picked up by any waiting thread. On |
the other hand, wait queues would remember any event that had not been |
picked up by a call to <code>waitq_sleep_timeout()</code>. Therefore, if |
wait queues were used directly and without any changes to implement |
condition variables, the missed_wakeup counter would hurt performance of |
the implementation: the <code>while</code> loop in |
<code>condvar_wait_timeout()</code> would effectively do busy waiting |
until all missed wakeups were discarded.</para> |
<para>The requirement on the wait operation to atomically put the caller |
to sleep and release the mutex poses an interesting problem on |
<code>condvar_wait_timeout()</code>. More precisely, the thread should |
sleep in the condvar's wait queue prior to releasing the mutex, but it |
must not hold the mutex when it is sleeping.</para> |
<para>Problems described in the two previous paragraphs are addressed in |
HelenOS by dividing the <code>waitq_sleep_timeout()</code> function into |
three pieces:</para> |
<orderedlist> |
<listitem> |
<para><code>waitq_sleep_prepare()</code> prepares the thread to go |
to sleep by, among other things, locking the wait queue;</para> |
</listitem> |
<listitem> |
<para><code>waitq_sleep_timeout_unsafe()</code> implements the core |
blocking logic;</para> |
</listitem> |
<listitem> |
<para><code>waitq_sleep_finish()</code> performs cleanup after |
<code>waitq_sleep_timeout_unsafe()</code>; after this call, the wait |
queue spinlock is guaranteed to be unlocked by the caller</para> |
</listitem> |
</orderedlist> |
<para>The stock <code>waitq_sleep_timeout()</code> is then a mere |
wrapper that calls these three functions. It is provided for convenience |
in cases where the caller doesn't require such a low level control. |
However, the implementation of <code>condvar_wait_timeout()</code> does |
need this finer-grained control because it has to interleave calls to |
these functions by other actions. It carries its operations out in the |
following order:</para> |
<orderedlist> |
<listitem> |
<para>calls <code>waitq_sleep_prepare()</code> in order to lock the |
condition variable's wait queue,</para> |
</listitem> |
<listitem> |
<para>releases the mutex,</para> |
</listitem> |
<listitem> |
<para>clears the counter of missed wakeups,</para> |
</listitem> |
<listitem> |
<para>calls <code>waitq_sleep_timeout_unsafe()</code>,</para> |
</listitem> |
<listitem> |
<para>retakes the mutex,</para> |
</listitem> |
<listitem> |
<para>calls <code>waitq_sleep_finish()</code>.</para> |
</listitem> |
</orderedlist> |
</section> |
</section> |
<section> |
<title>Userspace Synchronization</title> |
<section> |
<title>Futexes</title> |
<indexterm> |
<primary>synchronization</primary> |
<secondary>- futex</secondary> |
</indexterm> |
<para>In a multithreaded environment, userspace threads need an |
efficient way to synchronize. HelenOS borrows an idea from Linux<xref |
linkend="futex" /> to implement lightweight userspace synchronization |
and mutual exclusion primitive called futex. The key idea behind futexes |
is that non-contended synchronization is very fast and takes place only |
in userspace without kernel's intervention. When more threads contend |
for a futex, only one of them wins; other threads go to sleep via a |
dedicated syscall.</para> |
<para>The userspace part of the futex is a mere integer variable, a |
counter, that can be atomically incremented or decremented. The kernel |
part is rather more complicated. For each userspace futex counter, there |
is a kernel structure describing the futex. This structure |
contains:</para> |
<itemizedlist> |
<listitem> |
<para>number of references,</para> |
</listitem> |
<listitem> |
<para>physical address of the userspace futex counter,</para> |
</listitem> |
<listitem> |
<para>hash table link and</para> |
</listitem> |
<listitem> |
<para>a wait queue.</para> |
</listitem> |
</itemizedlist> |
<para>The reference count helps to find out when the futex is no longer |
needed and can be deallocated. The physical address is used as a key for |
the global futex hash table. Note that the kernel has to use physical |
address to identify the futex beacause one futex can be used for |
synchronization among different address spaces and can have different |
virtual addresses in each of them. Finally, the kernel futex structure |
includes a wait queue. The wait queue is used to put threads that didn't |
win the futex to sleep until the winner wakes one of them up.</para> |
<para>A futex should be initialized by setting its userspace counter to |
one before it is used. When locking the futex via userspace library |
function <code>futex_down_timeout()</code>, the library code atomically |
decrements the futex counter and tests if it dropped below zero. If it |
did, then the futex is locked by another thread and the library uses the |
<constant>SYS_FUTEX_SLEEP</constant> syscall to put the thread asleep. |
If the counter decreased to 0, then there was no contention and the |
thread can enter the critical section protected by the futex. When the |
thread later leaves that critical section, it, using library function |
<code>futex_up()</code>, atomically increments the counter. If the |
counter value increased to one, then there again was no contention and |
no action needs to be done. However, if it increased to zero or even a |
smaller number, then there are sleeping threads waiting for the futex to |
become available. In that case, the library has to use the |
<constant>SYS_FUTEX_WAKEUP</constant> syscall to wake one sleeping |
thread.</para> |
<para>So far, futexes are very elegant in that they don't interfere with |
the kernel when there is no contention for them. Another nice aspect of |
futexes is that they don't need to be registered anywhere prior to the |
first kernel intervention.</para> |
<para>Both futex related syscalls, <constant>SYS_FUTEX_SLEEP</constant> |
and <constant>SYS_FUTEX_WAKEUP</constant>, respectivelly, are mere |
wrappers for <code>waitq_sleep_timeout()</code> and |
<code>waitq_sleep_wakeup()</code>, respectively, with some housekeeping |
functionality added. Both syscalls need to translate the userspace |
virtual address of the futex counter to physical address in order to |
support synchronization accross shared memory. Once the physical address |
is known, the kernel checks whether the futexes are already known to it |
by searching the global futex hash table for an item with the physical |
address of the futex counter as a key. When the search is successful, it |
returns an address of the kernel futex structure associated with the |
counter. If the hash table does not contain the key, the kernel creates |
it and inserts it into the hash table. At the same time, the the current |
task's B+tree of known futexes is searched in order to find out if the |
task already uses the futex. If it does, no action is taken. Otherwise |
the reference count of the futex is incremented, provided that the futex |
already existed.</para> |
</section> |
</section> |
</chapter> |
/design/trunk/src/ch_arch_overview.xml |
---|
0,0 → 1,152 |
<?xml version="1.0" encoding="UTF-8"?> |
<chapter id="architecture"> |
<?dbhtml filename="arch.html"?> |
<title>Architecture Overview</title> |
<para>The HelenOS operating system is designed as a relatively small |
microkernel assisted with a set of userspace drivers and server tasks. |
HelenOS is not very radical in which subsystems should or should not be |
implemented in the kernel - in some cases, both kernel and userspace drivers |
exist. The reason for creating the system as a microkernel is prosaic. Even |
though it is initially more difficult to get the same level of functionality |
from a microkernel than it is in the case of a simple monolithic kernel, a |
microkernel is much easier to maintain once the pieces have been put to work |
together. Therefore, the kernel of HelenOS, as well as the essential |
userspace libraries thereof can be maintained by only a few developers who |
understand them completely. In addition, a microkernel based operating |
system reaches completion sooner than monolithic kernels as the system can |
be used even without some traditional subsystems (e.g. block devices, |
filesystems and networking).</para> |
<figure float="1"> |
<mediaobject id="arch1"> |
<imageobject role="pdf"> |
<imagedata fileref="images/arch1.pdf" format="PDF" /> |
</imageobject> |
<imageobject role="html"> |
<imagedata fileref="images/arch1.png" format="PNG" /> |
</imageobject> |
<imageobject role="fop"> |
<imagedata fileref="images/arch1.svg" format="SVG" /> |
</imageobject> |
</mediaobject> |
<title>HelenOS architecture overview.</title> |
</figure> |
<para>HelenOS is comprised of the kernel and the userspace server tasks. The |
kernel provides scheduling, memory management and IPC. It also contains |
essential device drivers that control the system clock and other devices |
necessary to guarantee a safe environment. Userspace communicates with the |
kernel through a small set of syscalls. The userspace layer consists of |
tasks with different roles, capabilities and privileges. Some of the tasks |
serve as device drivers, naming servers, managers of various kinds and some |
are just ordinary user programs. All of them communicate with other threads |
via kernel-provided IPC.</para> |
<section> |
<title>Scheduling</title> |
<indexterm> |
<primary>thread</primary> |
</indexterm> |
<para>Kernel's unit of execution flow is a thread. A thread is an entity |
that executes code and has a stack that takes up some space in memory. The |
relation between kernel and userspace threads is 1:1:n, meaning that there |
can be several so called fibrils running within one userspace thread that |
maps to one kernel thread. Threads are grouped into tasks by functionality |
they provide (i.e. several threads implement functionality of one task). |
<indexterm> |
<primary>task</primary> |
</indexterm> Tasks serve as containers of threads, they provide linkage |
to address space and are communication endpoints for IPC. Finally, tasks |
can be holders of capabilities that entitle them to do certain sensitive |
operations (e.g access raw hardware and physical memory).</para> |
<para>The scheduler deploys several run queues on each processor. A thread |
ready for execution is put into one of the run queues, depending on its |
priority and its current processor, from where it is eventually picked up |
by the scheduler. Special purpose kernel threads strive to keep processors |
balanced by thread migration. Threads are scheduled by the round robing |
scheduling policy with respect to multiple priority run queues.</para> |
</section> |
<section> |
<title>Memory Management</title> |
<para>Memory management is another large subsystem in HelenOS. It serves |
the kernel to satisfy its own memory allocation requests, provides |
translation between virtual and physical memory addresses and manages |
virtual address spaces of userspace tasks.</para> |
<para>Kernel allocates memory from the slab allocator, which itself |
allocates memory from a buddy system based allocator of physical memory |
frames.</para> |
<para>The virtual address translation layer currently supports two |
mechanisms for mapping virtual memory pages to physical memory frames |
(i.e. 4-level hierarchical page tables and global page hash table), and is |
further extensible to other mechanisms.</para> |
<indexterm> |
<primary>address space</primary> |
</indexterm> |
<para>Userspace tasks depend on support of address spaces provided by the |
kernel. Each address space is a set of mutually disjunctive address space |
areas. An address space area is usually connected to, and backed by, |
anonymous memory, executable image of some program or continuous region of |
physical memory. However, swapping pages in and out to external memory is |
not supported. Address space areas can be easily shared among address |
spaces.</para> |
</section> |
<section> |
<indexterm> |
<primary>IPC</primary> |
</indexterm> |
<title>IPC</title> |
<para>Due to the fact that HelenOS is a microkernel, strong emphasis is |
put on its IPC (Inter-Process Communication<footnote> |
<para>The term Inter-Process Communication is slightly confusing |
because in HelenOS terminology there are tasks instead of processes. |
However, its abbreviation, IPC, is being publicly used as a standard |
name for similar facilities. This book will therefore use the term IPC |
to refer to communication among tasks.</para> |
</footnote>). Tasks communicate by passing very short messages to one |
another or by sending (i.e. sharing) address space areas when larger data |
is to be transfered.</para> |
<indexterm> |
<primary>IPC</primary> |
<secondary>- phone</secondary> |
</indexterm> |
<indexterm> |
<primary>IPC</primary> |
<secondary>- answerbox</secondary> |
</indexterm> |
<indexterm> |
<primary>IPC</primary> |
<secondary>- message queue</secondary> |
</indexterm> |
<para>The abstraction uses terms like phones, calls and answerboxes, but |
is similar to well-known abstraction of message queues. A task can have |
multiple simultaneous simplex connections to several other tasks. A |
connection leads from one of the source task's phones to the destination |
task's answerbox. The phones are used as handles for making calls to other |
tasks. Calls are asynchronous and can be forwarded from one task to |
another.</para> |
</section> |
</chapter> |
/design/trunk/src/ch_scheduling.xml |
---|
0,0 → 1,279 |
<?xml version="1.0" encoding="UTF-8"?> |
<chapter id="scheduling"> |
<?dbhtml filename="scheduling.html"?> |
<title>Scheduling</title> |
<para>One of the key aims of the operating system is to create and support |
the impression that several activities are executing contemporarily. This is |
true for both uniprocessor as well as multiprocessor systems. In the case of |
multiprocessor systems, the activities are truly happening in parallel. The |
scheduler helps to materialize this impression by planning threads on as |
many processors as possible and, when this strategy reaches its limits, by |
quickly switching among threads executing on a single processor.</para> |
<section> |
<title>Contexts</title> |
<para>The term <emphasis>context</emphasis> refers to the set of processor |
resources that define the current state of the computation or the |
environment and the kernel understands it in several more or less narrow |
sences:</para> |
<itemizedlist> |
<listitem> |
<para>synchronous register context,</para> |
</listitem> |
<listitem> |
<para>asynchronous register context,</para> |
</listitem> |
<listitem> |
<para>FPU context and</para> |
</listitem> |
<listitem> |
<para>memory management context.</para> |
</listitem> |
</itemizedlist> |
<para>The most narrow sense refers to the the synchronous register |
context. It includes all the preserved registers as defined by the |
architecture. To highlight some, the program counter and stack pointer |
take part in the synchronous register context. These registers must be |
preserved across a procedure call and during synchronous context |
switches.</para> |
<para>The next type of the context understood by the kernel is the |
asynchronous register context. On an interrupt, the interrupted execution |
flow's state must be guaranteed to be eventually completely restored. |
Therefore the interrupt context includes, among other things, the scratch |
registers as defined by the architecture. As a special optimization and if |
certain conditions are met, it need not include the architecture's |
preserved registers. The condition mentioned in the previous sentence is |
that the low-level assembly language interrupt routines don't modify the |
preserved registers. The handlers usually call a higher-level C routine. |
The preserved registers are then saved on the stack by the compiler |
generated code of the higher-level function. In HelenOS, several |
architectures can be compiled with this optimization.</para> |
<para>Although the kernel does not do any floating point |
arithmetics<footnote> |
<para>Some architectures (e.g. ia64) inevitably use a fixed set of |
floating point registers to carry out their normal operations.</para> |
</footnote>, it must protect FPU context of userspace threads against |
destruction by other threads. Moreover, only a fraction of userspace |
programs use the floating point unit. HelenOS contains a generic framework |
for switching FPU context only when the switch is forced (i.e. a thread |
uses a floating point instruction and its FPU context is not loaded in the |
processor).</para> |
<para>The last member of the context family is the memory management |
context. It includes memory management registers that identify address |
spaces on hardware level (i.e. ASIDs and page tables pointers).</para> |
<section> |
<title>Synchronous Context Switches</title> |
<para>The scheduler, but also other pieces of the kernel, make heavy use |
of synchronous context switches, because it is a natural vehicle not |
only for changes in control flow, but also for switching between two |
kernel stacks. Two functions figure in a synchronous context switch |
implementation: <code>context_save()</code> and |
<code>context_restore()</code>. Note that these two functions break the |
natural perception of the linear C code execution flow starting at |
function's entry point and ending on one of the function's exit |
points.</para> |
<para>When the <code>context_save()</code> function is called, the |
synchronous context is saved in a memory structure passed to it. After |
executing <code>context_save()</code>, the caller is returned 1 as a |
return value. The execution of instructions continues as normally until |
<code>context_restore()</code> is called. For the caller, it seems like |
the call never returns<footnote> |
<para>Which might be a source of problems with variable liveliness |
after <code>context_restore()</code>.</para> |
</footnote>. Nevertheless, a synchronous register context, which is |
saved in a memory structure passed to <code>context_restore()</code>, is |
restored, thus transfering the control flow to the place of occurrence |
of the corresponding call to <code>context_save()</code>. From the |
perspective of the caller of the corresponding |
<code>context_save()</code>, it looks like a return from |
<code>context_save()</code>. However, this time a return value of 0 is |
returned.</para> |
</section> |
</section> |
<section> |
<title>Threads</title> |
<para>A thread is the basic executable entity with some code and a stack. |
While the code, implemented by a C language function, can be shared by |
several threads, the stack is always private to each instance of the |
thread. Each thread belongs to exactly one task through which it shares |
address space with its sibling threads. Threads that execute purely in the |
kernel don't have any userspace memory allocated. However, when a thread |
has ambitions to run in userspace, it must be allocated a userspace stack. |
The distinction between the purely kernel threads and threads running also |
in userspace is made by refering to the former group as to kernel threads |
and to the latter group as to userspace threads. Both kernel and userspace |
threads are visible to the scheduler and can become a subject of kernel |
preemption and thread migration anytime when preemption is not |
disabled.</para> |
<formalpara> |
<title>Thread States</title> |
<para>In each moment, a thread exists in one of six possible thread |
states. When the thread is created and first inserted into the |
scheduler's run queues or when a thread is migrated to a new processor, |
it is put into the <constant>Entering</constant> state. After some time |
elapses, the scheduler picks up the thread and starts executing it. A |
thread being currently executed on a processor is in the |
<constant>Running</constant> state. From there, the thread has three |
possibilities. It either runs until it is preemtped, in which case the |
state changes to <constant>Ready</constant>, goes to the |
<constant>Sleeping</constant> state by going to sleep or enters the |
<constant>Exiting</constant> state when it reaches termination. When the |
thread exits, its kernel structure usually stays in memory, until the |
thread is detached by another thread using <code>thread_detach()</code> |
function. Terminated but undetached threads are in the |
<constant>Lingering</constant> state. When the thread is detached or |
detaches itself during its life, it is destroyed in the |
<constant>Exiting</constant> state and the |
<constant>Lingering</constant> state is not reached.<figure float="1"> |
<title>Transitions among thread states.</title> |
<mediaobject id="thread_states" xreflabel=""> |
<imageobject role="pdf"> |
<imagedata fileref="images/thread_states.pdf" format="PDF" /> |
</imageobject> |
<imageobject role="html"> |
<imagedata fileref="images/thread_states.png" format="PNG" /> |
</imageobject> |
<imageobject role="fop"> |
<imagedata fileref="images/thread_states.svg" format="SVG" /> |
</imageobject> |
</mediaobject> |
</figure></para> |
</formalpara> |
<formalpara> |
<title>Fibrils</title> |
<para>HelenOS userspace layer knows even smaller units of execution. |
Each userspace thread can make use of an arbitrary number of fibrils. |
These fibrils have their own synchronous register context, userspace |
code and stack. They live their own life within the userspace thread and |
the scheduler does not have any idea about them because they are |
completely implemented by the userspace library. This implies several |
things:<itemizedlist> |
<listitem> |
<para>fibrils schedule themselves cooperatively within the time |
slice given to their userspace thread,</para> |
</listitem> |
<listitem> |
<para>fibrils share FPU context of their containing thread |
and</para> |
</listitem> |
<listitem> |
<para>all fibrils of one userspace thread block when one of them |
goes to sleep.</para> |
</listitem> |
</itemizedlist></para> |
</formalpara> |
</section> |
<section> |
<title>Scheduler</title> |
<section> |
<title>Run Queues</title> |
<para>There is an array of several run queues on each processor. The |
current version of HelenOS uses 16 run queues implemented by 16 doubly |
linked lists. Each of the run queues is associated with thread priority. |
The lower the run queue index in the array is, the higher is the |
priority of threads linked in that run queue and the shorter is the time |
in which those threads will execute. When kernel code wants to access |
the run queue, it must first acquire its lock.</para> |
</section> |
<section> |
<title>Scheduler Operation</title> |
<para>The scheduler is invoked either explicitly when a thread calls the |
<code>scheduler()</code> function (e.g. goes to sleep or merely wants to |
relinquish the processor for a while) or implicitly on a periodic basis |
when the generic clock interrupt preempts the current thread. After its |
invocation, the scheduler saves the synchronous register context of the |
current thread and switches to its private stack. Afterwards, a new |
thread is selected according to the scheduling policy. If there is no |
suitable thread, the processor is idle and no thread executes on it. |
Note that the act of switching to the private scheduler stack is |
essential. If the processor kept running using the stack of the |
preempted thread it could damage it because the old thread can be |
migrated to another processor and scheduled there. In the worst case |
scenario, two execution flows would be using the same stack.</para> |
<para>The scheduling policy is implemented in the function |
<code>find_best_thread()</code>. This function walks the processor run |
queues from lower towards higher indices and looks for a thread. If the |
visited run queue is empty, it simply searches the next run queue. If it |
is known in advance that there are no ready threads waiting for |
execution, <code>find_best_thread()</code> interruptibly halts the |
processor or busy waits until some threads arrive. This process repeats |
until <code>find_best_thread()</code> succeeds.</para> |
<para>After the best thread is chosen, the scheduler switches to the |
thread's task and memory management context. Finally, the saved |
synchronous register context is restored and the thread runs. Each |
scheduled thread is given a time slice depending on its priority (i.e. |
run queue). The higher priority, the shorter timeslice. To summarize, |
this policy schedules threads with high priorities more frequently but |
gives them smaller time slices. On the other hand, lower priority |
threads are scheduled less frequently, but run for longer periods of |
time.</para> |
<para>When a thread uses its entire time slice, it is preempted and put |
back into the run queue that immediately follows the previous run queue |
from which the thread ran. Threads that are woken up from a sleep are |
put into the biggest priority run queue. Low priority threads are |
therefore those that don't go to sleep so often and just occupy the |
processor.</para> |
<para>In order to avoid complete starvation of the low priority threads, |
from time to time, the scheduler will provide them with a bonus of one |
point priority increase. In other words, the scheduler will now and then |
move the entire run queues one level up.</para> |
</section> |
<section> |
<title>Processor Load Balancing</title> |
<para>Normally, for the sake of cache locality, threads are scheduled on |
one of the processors and don't leave it. Nevertheless, a situation in |
which one processor is heavily overloaded while others sit idle can |
occur. HelenOS deploys special kernel threads to help mitigate this |
problem. Each processor is associated with one load balancing thread |
called <code>kcpulb</code> that wakes up regularly to see whether its |
processor is underbalanced or not. If it is, the thread attempts to |
migrate threads from other overloaded processors to its own processor's |
run queues. When the job is done or there is no need for load balancing, |
the thread goes to sleep.</para> |
<para>The balancing threads operate very gently and try to migrate low |
priority threads first; one <code>kcpulb</code> never takes from one |
processor twice in a row. The load balancing threads as well as threads |
that were just stolen cannot be migrated. The <code>kcpulb</code> |
threads are wired to their processors and cannot be migrated whatsoever. |
The ordinary threads are protected only until they are |
rescheduled.</para> |
</section> |
</section> |
</chapter> |
/design/trunk/src/ap_arch.xml |
---|
0,0 → 1,280 |
<?xml version="1.0" encoding="UTF-8"?> |
<appendix id="archspecs"> |
<?dbhtml filename="arch.html"?> |
<title>Architecture Specific Notes</title> |
<section> |
<title>AMD64/Intel EM64T</title> |
<para>The amd64 architecture is a 64-bit extension of the older ia32 |
architecture. Only 64-bit applications are supported. Creating this port |
was relatively easy, because it shares a lot of common code with ia32 |
platform. However, the 64-bit extension has some specifics, which made the |
porting interesting.</para> |
<section> |
<title>Virtual Memory</title> |
<para>The amd64 architecture uses standard processor defined 4-level |
page mapping of 4KB pages. The NX(no-execute) flag on individual pages |
is fully supported.</para> |
</section> |
<section> |
<title>TLB-only Paging</title> |
<para>All memory on the amd64 architecture is memory mapped, if the |
kernel needs to access physical memory, a mapping must be created. |
During boot process the boot loader creates mapping for the first 20MB |
of physical memory. To correctly initialize the page mapping system, an |
identity mapping of whole physical memory must be created. However, to |
create the mapping it is unavoidable to allocate new - possibly unmapped |
- frames from frame allocator. The ia32 solves it by mapping first 2GB |
memory during boot process. The same solution on 64-bit platform becomes |
unfeasible because of the size of the possible address space.</para> |
<para>As soon as the exception routines are initialized, a special page |
fault exception handler is installed which provides a complete view of |
physical memory until the real page mapping system is initialized. It |
dynamically changes the page tables to always contain exactly the |
faulting address. The page then becomes cached in the TLB and on the |
next page fault the same tables can be utilized to handle another |
mapping.</para> |
</section> |
<section> |
<title>Mapping of Physical Memory</title> |
<para>The amd64 ABI document describes several modes of program layout. |
The operating system kernel should be compiled in a |
<emphasis>kernel</emphasis> mode - the kernel is located in the negative |
2 gigabytes (0xffffffff80000000-0xfffffffffffffffff) and can access data |
anywhere in the 64-bit space. This wouldn't allow kernel to see directly |
more than 2GB of physical memory. HelenOS duplicates the virtual mapping |
of the physical memory starting at 0xffff800000000000 and accesses all |
external references using this address range.</para> |
</section> |
<section> |
<title>Thread Local Storage</title> |
<para>The code accessing thread local storage uses a segment register FS |
as a base. The thread local storage is stored in the hidden 64-bit part |
of the FS register which must be written using priviledged machine |
specific instructions. Special syscall to change this register is |
provided to user applications. The TLS address for this platform is |
expected to point just after the end of the thread local data. The |
application sometimes need to get a real address of the thread local |
data in its address space but it is impossible to read the base of the |
FS segmentation register. The solution is to add the self-reference |
address to the end of thread local data, so that the application can |
read the address as %gs:0.</para> |
<figure float="1"> |
<title>IA-32 & AMD64 TLD</title> |
<mediaobject id="tldia32"> |
<imageobject role="pdf"> |
<imagedata fileref="images/tld_ia32.pdf" format="PDF" /> |
</imageobject> |
<imageobject role="html"> |
<imagedata fileref="images/tld_ia32.png" format="PNG" /> |
</imageobject> |
<imageobject role="fop"> |
<imagedata fileref="images/tld_ia32.svg" format="SVG" /> |
</imageobject> |
</mediaobject> |
</figure> |
</section> |
<section> |
<title>Fast SYSCALL/SYSRET Support</title> |
<para>The entry point for system calls was traditionally a speed problem |
on the ia32 architecture. The amd64 supports SYSCALL/SYSRET |
instructions. Upon encountering the SYSCALL instruction, the processor |
changes privilege mode and transfers control to an address stored in |
machine specific register. Unlike other similar instructions it does not |
change stack to a known kernel stack, which must be done by the syscall |
entry routine. A hidden part of a GS register is provided to support the |
entry routine with data needed for switching to kernel stack.</para> |
</section> |
<section> |
<title>Debugging Support</title> |
<para>To provide developers tools for finding bugs, hardware breakpoints |
and watchpoints are supported. The kernel also supports self-debugging - |
it sets watchpoints on certain data and upon every modification |
automatically checks whether a correct value was written. It is |
worthwhile to mention, that since this feature was implemented, the |
watchpoint was never fired.</para> |
</section> |
</section> |
<section> |
<title>Intel IA-32</title> |
<para>The ia32 architecture uses 4K pages and processor supported 2-level |
page tables. Along with amd64, it is one of the two architectures that fully |
support SMP configurations. The architecture is mostly similar to amd64, |
it even shares a lot of code. The debugging support is the same as with |
amd64. The thread local storage uses GS register.</para> |
</section> |
<section> |
<title>32-bit MIPS</title> |
<para>Both little and big endian kernels are supported. In order to test |
different page sizes, the mips32 page size was set to 16K. The mips32 |
architecture is TLB-only, the kernel simulates 2-level page tables. On |
processors that support it, lazy FPU context switching is |
implemented.</para> |
<section> |
<title>Thread Local Storage</title> |
<para>The thread local storage support in compilers is a relatively |
recent phenomena. The standardization of such support for the mips32 |
platform is very new and even the newest versions of GCC cannot generate |
100% correct code. Because of some weird MIPS processor variants, it was |
decided, that the TLS pointer will be gathered not from some of the free |
registers, but a special instruction was devised and the kernel is |
supposed to emulate it. HelenOS expects that the TLS pointer is in the |
K1 register. Upon encountering the reserved instruction exception and |
checking that the application is requesting a TLS pointer, it returns |
the contents of the K1 register. The K1 register is expected to point |
0x7000 bytes after the beginning of the thread local data.</para> |
<figure float="1"> |
<title>MIPS & PowerPC TLD</title> |
<mediaobject id="tldmips"> |
<imageobject role="pdf"> |
<imagedata fileref="images/tld_mips.pdf" format="PDF" /> |
</imageobject> |
<imageobject role="html"> |
<imagedata fileref="images/tld_mips.png" format="PNG" /> |
</imageobject> |
<imageobject role="fop"> |
<imagedata fileref="images/tld_mips.svg" format="SVG" /> |
</imageobject> |
</mediaobject> |
</figure> |
</section> |
<section> |
<title>Lazy FPU Context Switching</title> |
<para>Implementing lazy FPU switching on MIPS architecture is |
straightforward. When coprocessor CP1 is disabled, any FPU intruction |
raises a Coprocessor Unusable exception. The generic lazy FPU context |
switch is then called that takes care of the correct context |
save/restore.</para> |
</section> |
</section> |
<section> |
<title>Power PC</title> |
<para>PowerPC allows kernel to enable mode, where data and intruction |
memory reads are not translated through virtual memory mapping |
(<emphasis>real mode</emphasis>). The real mode is automatically enabled |
when an exception occurs. However, the kernel uses the same memory |
structure as on other 32-bit platforms - physical memory is mapped into |
the top 2GB, userspace memory is available in the bottom half of the |
32-bit address space.</para> |
<section> |
<title>OpenFirmware Boot</title> |
<para>The OpenFirmware loads an image of HelenOS operating system and |
passes control to the HelenOS specific boot loader. The boot loader then |
performs following tasks:</para> |
<itemizedlist> |
<listitem> |
<para>Fetches information from OpenFirmware regarding memory |
structure, device information etc.</para> |
</listitem> |
<listitem> |
<para>Switches memory mapping to the real mode.</para> |
</listitem> |
<listitem> |
<para>Copies the kernel to proper physical address.</para> |
</listitem> |
<listitem> |
<para>Creates basic memory mapping and switches to the new kernel |
mapping, in which the kernel can run.</para> |
</listitem> |
<listitem> |
<para>Passes control to the kernel <function>main_bsp</function> |
function.</para> |
</listitem> |
</itemizedlist> |
</section> |
<section> |
<title>Thread Local Storage</title> |
<para>The Power PC thread local storage uses R2 register to hold an |
address, that is 0x7000 bytes after the beginning of the thread local |
data. Overally it is the same as on the MIPS architecture.</para> |
</section> |
</section> |
<section> |
<title>IA-64</title> |
<para>The ia64 kernel uses 16K pages.</para> |
<section> |
<title>Two IA-64 Stacks</title> |
<para>The architecture makes use of a pair of stacks. One stack is the |
ordinary memory stack while the other is a special register stack. This |
makes the ia64 architecture unique. HelenOS on ia64 solves the problem |
by allocating two physical memory frames for thread and scheduler |
stacks. The upper frame is used by the register stack while the first |
frame is used by the conventional memory stack. The generic kernel and |
userspace code had to be adjusted to cope with the possibility of |
allocating more frames for the stack.</para> |
</section> |
<section> |
<title>Thread Local Storage</title> |
<para>Although thread local storage is not officially supported in |
statically linked binaries, GCC supports it without any major obstacles. |
The r13 register is used as a thread pointer, the thread local data |
section starts at address r13+16.</para> |
<para><figure float="1"> |
<title>IA-64 TLD</title> |
<mediaobject id="tldia64"> |
<imageobject role="pdf"> |
<imagedata fileref="images/tld_ia64.pdf" format="PDF" /> |
</imageobject> |
<imageobject role="html"> |
<imagedata fileref="images/tld_ia64.png" format="PNG" /> |
</imageobject> |
<imageobject role="fop"> |
<imagedata fileref="images/tld_ia64.svg" format="SVG" /> |
</imageobject> |
</mediaobject> |
</figure></para> |
</section> |
</section> |
</appendix> |
/design/trunk/src/ch_ds.xml |
---|
0,0 → 1,180 |
<?xml version="1.0" encoding="UTF-8"?> |
<chapter id="ds"> |
<?dbhtml filename="ds.html"?> |
<title>Data Structures</title> |
<para>There is a lot of data that either flows through various HelenOS |
subsystems or is stored directly by them. Each subsystem uses its own data |
structures to represent the data. These data structures need to be kept |
somewhere. In order to work efficiently, HelenOS, and especially its kernel, |
deploys several house keeping data types that are designed to facilitate |
managing other data structures. Most of them serve like generic |
containers.</para> |
<section> |
<title>Lists</title> |
<indexterm> |
<primary>linked list</primary> |
</indexterm> |
<para>HelenOS uses doubly-circularly-linked lists to bind related data |
together. Lists are composed of an independent sentinel node called head |
and links that are always part of the object that is to be put into the |
list. Adding items to a list thus doesn't require any further memory |
allocations. Head and each link then contains forward and backward |
pointer. An empty list is composed of a sole head whose both pointers |
reference the head itself. The expense of two times bigger memory |
consumption as compared to memory consumption of singly linked lists is |
justified by constant insertion and removal times at random positions |
within the list.</para> |
<para>Lists are frequently used to implement FIFO behaviour (e.g. |
scheduler run queues or synchronization wait queues). Contrary to the FIFO |
type, which is also supported by HelenOS, they don't take up any unused |
space and are more general. On the other hand, they are slower than |
in-array FIFOs and can be hardly used to implement buffers.</para> |
<figure float="1"> |
<mediaobject id="list" xreflabel=""> |
<imageobject role="pdf"> |
<imagedata fileref="images/list.pdf" format="PDF" /> |
</imageobject> |
<imageobject role="html"> |
<imagedata fileref="images/list.png" format="PNG" /> |
</imageobject> |
<imageobject role="fop"> |
<imagedata fileref="images/list.svg" format="SVG" /> |
</imageobject> |
</mediaobject> |
<title>Doubly-circularly-linked list</title> |
</figure> |
</section> |
<section> |
<title>FIFO Queues</title> |
<indexterm> |
<primary>FIFO queue</primary> |
</indexterm> |
<para>FIFO queues are implemented as either statically or dynamically |
allocated arrays<footnote> |
<para>Depending on the array size.</para> |
</footnote> of some generic type with two indices. The first index |
points to the head of the FIFO queue and the other points to the tail |
thereof. There can be as many items in the FIFO as is the number of |
elements in the array and no more. The indices are taken modulo size of |
the queue because as a consequence of insertions and deletions, the tail |
can have numericaly lower index than the head.</para> |
<para>FIFO queues are used, for example, in ASID management code to store |
inactive ASIDs or in userspace keyboard driver to buffer read |
characters.</para> |
<figure float="1"> |
<mediaobject id="fifo" xreflabel=""> |
<imageobject role="pdf"> |
<imagedata fileref="images/fifo.pdf" format="PDF" /> |
</imageobject> |
<imageobject role="html"> |
<imagedata fileref="images/fifo.png" format="PNG" /> |
</imageobject> |
<imageobject role="fop"> |
<imagedata fileref="images/fifo.svg" format="SVG" /> |
</imageobject> |
</mediaobject> |
<title>FIFO queue showing the wrap around the end of the array.</title> |
</figure> |
</section> |
<section id="hashtables"> |
<title>Hash Tables</title> |
<indexterm> |
<primary>hash table</primary> |
</indexterm> |
<para>The kernel, as well as userspace, provides hash table data type |
which uses separate chaining. The hash table type is very generic in that |
it forces the user to supply methods for computing the hash index, |
comparing items against a set of keys and the item removal callback |
function. Besides these virtual operations, the hash table is composed of |
a dynamically allocated array of list heads that represent each chain, |
number of chains and the maximal number of keys.</para> |
<figure float="1"> |
<mediaobject id="hash" xreflabel=""> |
<imageobject role="pdf"> |
<imagedata fileref="images/hash.pdf" format="PDF" /> |
</imageobject> |
<imageobject role="html"> |
<imagedata fileref="images/hash.png" format="PNG" /> |
</imageobject> |
<imageobject role="fop"> |
<imagedata fileref="images/hash.svg" format="SVG" /> |
</imageobject> |
</mediaobject> |
<title>Generic hash table.</title> |
</figure> |
</section> |
<section> |
<title>Bitmaps</title> |
<indexterm> |
<primary>bitmap</primary> |
</indexterm> |
<para>Several bitmap operations such as clearing or setting consecutive |
bit sequences as well as copying portions of one bitmap into another one |
are supported.</para> |
</section> |
<section> |
<title>B+trees</title> |
<indexterm> |
<primary>B-trees</primary> |
<secondary>- B+tree</secondary> |
</indexterm> |
<para>HelenOS makes use of a variant of B-tree called B+tree. B+trees, in |
HelenOS implementation, are 3-4-5 balanced trees. They are characteristic |
by the fact that values are kept only in the leaf-level nodes and that |
these nodes are linked together in a list. This data structure has |
logaritmic search, insertion and deletion times and, thanks to the |
leaf-level list, provides fantastic means of walking the nodes containing |
data. Moreover, B+trees can be used for easy storing, resizing and merging |
of disjunctive intervals.</para> |
<figure float="1"> |
<mediaobject id="btree" xreflabel=""> |
<imageobject role="pdf"> |
<imagedata fileref="images/btree.pdf" format="PDF" /> |
</imageobject> |
<imageobject role="html"> |
<imagedata fileref="images/btree.png" format="PNG" /> |
</imageobject> |
<imageobject role="fop"> |
<imagedata fileref="images/btree.svg" format="SVG" /> |
</imageobject> |
</mediaobject> |
<title>B+tree containing keys ranging from 1 to 12.</title> |
</figure> |
</section> |
</chapter> |
/design/trunk/src/ch_time.xml |
---|
0,0 → 1,202 |
<?xml version="1.0" encoding="UTF-8"?> |
<chapter id="time"> |
<?dbhtml filename="time.html"?> |
<title>Time Management</title> |
<para>Time is one of the dimensions in which kernel as well as the whole |
system operates. It is of special importance to many kernel subsytems. |
Knowledge of time makes it possible for the scheduler to preemptively plan |
threads for execution. Different parts of the kernel can request execution |
of their callback function with a specified delay. A good example of such |
kernel code is the synchronization subsystem which uses this functionality |
to implement timeouting versions of synchronization primitives.</para> |
<section> |
<title>System Clock</title> |
<para>Every hardware architecture supported by HelenOS must support some |
kind of a device that can be programmed to yield periodic time signals |
(i.e. clock interrupts). Some architectures have external clock that is |
merely programmed by the kernel to interrupt the processor multiple times |
in a second. This is the case of ia32 and amd64 architectures<footnote> |
<para>When running in uniprocessor mode.</para> |
</footnote>, which use i8254 or a compatible chip to achieve the |
goal.</para> |
<para>Other architectures' processors typically contain two registers. The |
first register is usually called a compare or a match register and can be |
set to an arbitrary value by the operating system. The contents of the |
compare register then stays unaltered until it is written by the kernel |
again. The second register, often called a counter register, can be also |
written by the kernel, but the processor automatically increments it after |
every executed instruction or in some fixed relation to processor speed. |
The point is that a clock interrupt is generated whenever the values of |
the counter and the compare registers match. Sometimes, the scheme of two |
registers is modified so that only one register is needed. Such a |
register, called a decrementer, then counts towards zero and an interrupt |
is generated when zero is reached.</para> |
<para>In any case, the initial value of the decrementer or the initial |
difference between the counter and the compare registers, respectively, |
must be set accordingly to a known relation between the real time and the |
speed of the decrementer or the counter register, respectively.</para> |
<para>The rest of this section will, for the sake of clarity, focus on the |
two-register scheme. The decrementer scheme is very similar.</para> |
<para>The kernel must reinitialize one of the two registers after each |
clock interrupt in order to schedule next interrupt. However this step is |
tricky and must be done with caution. Imagine that the clock interrupt is |
masked either because the kernel is servicing another interrupt or because |
the processor locally disabled interrupts for a while. If the clock |
interrupt occurs during this period, it will be pending until the |
interrupts are enabled again. Theoretically, it could happen an arbitrary |
counter register ticks later. Which is worse, the ideal time period |
between two non-delayed clock interrupts can also elapse arbitrary number |
of times before the delayed interrupt gets serviced. The |
architecture-specific part of the clock interrupt driver must avoid time |
drifts caused by such behaviour by taking proactive |
counter-measures.</para> |
<para>Let us assume that the kernel wants each clock interrupt be |
generated every <constant>TICKCONST</constant> ticks. This value |
represents the ideal number of ticks between two non-delayed clock |
interrupts and has some known relation to real time. On each clock |
interrupt, the kernel computes and writes down the expected value of the |
counter register as it hopes to read it on the next clock interrupt. When |
that interrupt comes, the kernel reads the counter register again and |
compares it with the written down value. If the difference is smaller than |
or equal to <constant>TICKCONST</constant>, then the time drift is none or |
small and the next interrupt is scheduled earlier with a penalty of so |
many ticks as is the value of the difference. However, if the difference |
is bigger, then at least one clock signal was missed. In that case, the |
missed clock signal is remembered in the special counter. If there are |
more missed signals, each of them is recorded there. The next interrupt is |
scheduled with respect to the difference similarily to the former case. |
This time, the penalty is taken modulo <constant>TICKCONST</constant>. The |
effect of missed clock signals is remedied in the generic clock interrupt |
handler.</para> |
</section> |
<section> |
<title>Timeouts</title> |
<para>Kernel subsystems can register a callback function to be executed |
with a specified delay. Such a registration is represented by a kernel |
structure called <classname>timeout</classname>. Timeouts are registered |
via <code>timeout_register</code> function. This function takes a pointer |
to a timeout structure, a callback function, a parameter of the callback |
function and a delay in microseconds as parameters. After the structure is |
initialized with all these values, it is sorted into the processor's list |
of active timeouts, according to the number of clock interrupts remaining |
to their expiration and relatively to already listed timeouts.</para> |
<para>Timeouts can be unregistered via <code>timeout_unregister</code>. |
This function can, as opposed to <code>timeout_register</code>, fail when |
it is too late to remove the timeout from the list of active |
timeouts.</para> |
<para>Timeouts are nearing their expiration in the list of active timeouts |
which exists on every processor in the system. The expiration counters are |
decremented on each clock interrupt by the generic clock interrupt |
handler. Due to the relative ordering of timeouts in the list, it is |
sufficient to decrement expiration counter only of the first timeout in |
the list. Timeouts with expiration counter equal to zero are removed from |
the list and their callback function is called with respective |
parameter.</para> |
</section> |
<section> |
<title>Generic Clock Interrupt Handler</title> |
<para>On each clock interrupt, the architecture specific part of the clock |
interrupt handler makes a call to the generic clock interrupt handler |
implemented by the <code>clock</code> function. The generic handler takes |
care of several mission critical goals:</para> |
<itemizedlist> |
<listitem> |
<para>expiration of timeouts,</para> |
</listitem> |
<listitem> |
<para>updating time of the day counters for userspace and</para> |
</listitem> |
<listitem> |
<para>preemption of threads.</para> |
</listitem> |
</itemizedlist> |
<para>The <code>clock</code> function checks for expired timeouts and |
decrements unexpired timeout expiration counters exactly one more times |
than is the number of missed clock signals (i.e. at least once and |
possibly more times, depending on the missed clock signals counter). The |
time of the day counters are also updated one more times than is the |
number of missed clock signals. And finally, the remaining timeslice of |
the running thread is decremented with respect to this counter as well. By |
considering its value, the kernel performs actions that would otherwise be |
lost due to an occasional excessive time drift described in previous |
paragraphs.</para> |
</section> |
<section> |
<title>Time Source for Userspace</title> |
<para>In HelenOS, userspace tasks don't communicate with the kernel in |
order to read the system time. Instead, a mechanism that shares kernel |
time of the the day counters with userspace address spaces is deployed. On |
the kernel side, during system initialization, HelenOS allocates a frame |
of physical memory and stores the time of the day counters there. The |
counters have the following structure:</para> |
<itemizedlist> |
<listitem> |
<para>first 32-bit counter for seconds,</para> |
</listitem> |
<listitem> |
<para>32-bit counter for microseconds and</para> |
</listitem> |
<listitem> |
<para>second 32-bit counter for seconds.</para> |
</listitem> |
</itemizedlist> |
<para>One of the userspace tasks with capabilities of memory manager (e.g. |
ns) asks the kernel to map this frame into its address space. Other |
non-privileged tasks then use IPC to receive read-only share of this |
memory. Reading time in a userspace task is therefore just a matter of |
reading memory.</para> |
<para>There are two interesting points about this. First, the counters are |
32-bit even on 64-bit machines. The goal is to provide subsecond precision |
with the possibility to span roughly 136 years. Note that a single 64-bit |
microsecond counter could not be usually read atomically on 32-bit |
platforms. Unfortunately, on 32-bit platforms it is usually impossible to |
read atomically two 32-bit counters either. However, a generic protocol is |
used to guarantee that sequentially read times will create a |
non-decreasing sequence.</para> |
<para>The problematic part is incrementing seconds counter and clearing |
microseconds counter together once every second. Seconds must be |
incremented and microseconds must be reset. However, without any |
synchronization, the two kernel stores and the two userspace reads can |
arbitrarily interleave. Furthemore, the reader has no chance to detect |
that the counters were updated only paritally. Therefore three counters |
are used in HelenOS.</para> |
<para>If seconds need to be updated, the kernel increments the first |
second counter, issues a write memory barrier operation, updates the |
microsecond counter, issues another write memory barrier operation and |
increments the second second counter. When only microseconds needs to be |
updated, no special action is taken by the kernel. On the other hand, the |
userspace task must always read all three counters in reversed order. A |
read memory barrier operation must be issued between each two reads. A |
non-atomic read is detected when the two second counters differ. The |
userspace library solves this situation by returning higher of them with |
microseconds set to zero.</para> |
</section> |
</chapter> |
/design/trunk/src/ch_hardware.xml |
---|
0,0 → 1,79 |
<?xml version="1.0" encoding="UTF-8"?> |
<chapter id="hardware"> |
<?dbhtml filename="hardware.html"?> |
<title>Device Drivers</title> |
<para>Since HelenOS is a microkernel, a framework for supporting userspace |
device drivers has been implemented. A typical userspace task acting as a |
device driver might need to:</para> |
<itemizedlist> |
<listitem> |
<para>receive notifications about interrupts sent by its device,</para> |
</listitem> |
<listitem> |
<para>access physical memory address space,</para> |
</listitem> |
<listitem> |
<para>access I/O space and</para> |
</listitem> |
<listitem> |
<para>control preemption.</para> |
</listitem> |
</itemizedlist> |
<section> |
<title>Interrupt Notifications</title> |
<para>Userspace tasks that are in hold of the |
<constant>CAP_IRQ_REG</constant> capability can register themselves via |
the <code>ipc_register_irq()</code> to be notified about occurrences of a |
given interrupt. The registration call takes two arguments. The first |
argument is the IRQ number and the second is the pointer to special |
pseudocode that instructs the kernel interrupt handler how to process the |
IRQ. Currently the pseudocode language supports reading and writing |
physical memory, reading from and writing to I/O space and actions related |
to running HelenOS in virtual environments.</para> |
<para>When the interrupt comes after its handler has been registered by a |
userspace task, the kernel interrupt handler interprets the pseudocode |
program and sends an IPC notification to the respective task. The |
userspace task can get certain information about the interrupt (e.g. what |
key was pressed) by issuing memory or I/O space reads in the pseudocode |
program. The read values are wrapped into the IPC notification sent to the |
task. The write operations are also very essential because some interrupts |
are level-sensitive and need to be processed in the kernel interrupt |
routine. In many situations, the interrupt is considered serviced only |
when the interrupt handler performs certain reads or writes of memory or |
I/O space.</para> |
</section> |
<section> |
<title>Accessing Memory and I/O Space</title> |
<para>When a task has the <constant>CAP_MEM_MANAGER</constant> capability, |
it can use the <constant>SYS_MAP_PHYSMEM</constant> to map regions of |
physical memory to its address space. When successful, the syscall creates |
an address space area for the physical memory region. The address space |
area can be further shared by other tasks. Similarily, when a task has the |
<constant>CAP_IOSPACE_MANAGER</constant> capability, it is entitled to |
request access to the I/O space by using the |
<constant>SYS_IOSPACE_ENABLE</constant>. However, this syscall is relevant |
only on architectures that have separate I/O space (e.g. amd64 and |
ia32).</para> |
</section> |
<section> |
<title>Disabling Preemption</title> |
<para>It might be desirable for a device driver to temporarily disable |
preemption. Tasks that can do this are required to have the |
<constant>CAP_PREEMPT_CONTROL</constant> capability. Preemption could be theoretically disabled |
by disabling interrupts on the current processor, but disabling preemption |
is more lightweight as interrupt processing remains enabled.</para> |
</section> |
</chapter> |
/design/trunk/src/index.xml |
---|
0,0 → 1,59 |
<?xml version="1.0" encoding="UTF-8"?> |
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" |
"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ |
<!ENTITY chintro SYSTEM "ch_intro.xml"> |
<!ENTITY charcho SYSTEM "ch_arch_overview.xml"> |
<!ENTITY chds SYSTEM "ch_ds.xml"> |
<!ENTITY chtime SYSTEM "ch_time.xml"> |
<!ENTITY chsched SYSTEM "ch_scheduling.xml"> |
<!ENTITY chsynch SYSTEM "ch_synchronization.xml"> |
<!ENTITY chmemmg SYSTEM "ch_memory_management.xml"> |
<!ENTITY chipcom SYSTEM "ch_ipc.xml"> |
<!ENTITY chhware SYSTEM "ch_hardware.xml"> |
<!ENTITY apparch SYSTEM "ap_arch.xml"> |
<!ENTITY biblio SYSTEM "biblio.xml"> |
]> |
<book> |
<bookinfo> |
<title>HelenOS 0.2.0</title> |
<subtitle>design documentation</subtitle> |
</bookinfo> |
<!-- Infroduction --> |
&chintro; |
<!-- Arch overview --> |
&charcho; |
<!-- Data structures --> |
&chds; |
<!-- Time management --> |
&chtime; |
<!-- Scheduling --> |
&chsched; |
<!-- Synchronization --> |
&chsynch; |
<!-- Memory management --> |
&chmemmg; |
<!-- IPC --> |
&chipcom; |
<!-- Hardware handling --> |
&chhware; |
<!-- Architecture specifics --> |
&apparch; |
<!-- Bibliography --> |
&biblio; |
<!-- Index --> |
<index/> |
</book> |
/design/trunk/src/biblio.xml |
---|
0,0 → 1,97 |
<?xml version="1.0" encoding="UTF-8"?> |
<bibliography> |
<title>Bibliography</title> |
<biblioentry id="Black89"> |
<abbrev>Black89</abbrev> |
<authorgroup> |
<author> |
<firstname>D.L.</firstname> |
<surname>Black</surname> |
</author> |
<author> |
<firstname>R.F.</firstname> |
<surname>Rashid</surname> |
</author> |
<author> |
<firstname>D.B.</firstname> |
<surname>Golub</surname> |
</author> |
<author> |
<firstname>C.R.</firstname> |
<surname>Hill</surname> |
</author> |
</authorgroup> |
<issn>0163-5964</issn> |
<publisher> |
<publishername>ACM Press</publishername> |
</publisher> |
<title>Translation Lookaside Buffer Consistency: A Software |
Approach</title> |
</biblioentry> |
<biblioentry id="Bonwick01"> |
<abbrev>Bonwick01</abbrev> |
<authorgroup> |
<author> |
<firstname>Jeff</firstname> |
<surname>Bonwick</surname> |
</author> |
<author> |
<firstname>Jonathan</firstname> |
<surname>Adams</surname> |
</author> |
</authorgroup> |
<publisher> |
<publishername>USENIX</publishername> |
</publisher> |
<title>Magazines and Vmem: Extending the Slab Allocator to Many CPUs and |
Arbitrary Resources</title> |
</biblioentry> |
<biblioentry id="futex"> |
<abbrev>Franke et al.</abbrev> |
<authorgroup> |
<author> |
<firstname>Hubertus</firstname> |
<surname>Franke</surname> |
</author> |
<author> |
<firstname>Rusty</firstname> |
<surname>Russell</surname> |
</author> |
<author> |
<firstname>Matthew</firstname> |
<surname>Kirkwood</surname> |
</author> |
</authorgroup> |
<publisher> |
<publishername>Proceedings of the 2002 Ottawa Linux Summit</publishername> |
</publisher> |
<title>Fuss, Futexes and Furwocks: Fast Userlevel Locking in |
Linux</title> |
</biblioentry> |
</bibliography> |
/design/trunk/tools/extra/dblatex-extra.xsl |
---|
0,0 → 1,16 |
<?xml version='1.0'?> |
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version='1.0'> |
<!-- |
Implement inline <code/> tag |
--> |
<xsl:template match="code"> |
<xsl:call-template name="inline.italicmonoseq"/> |
</xsl:template> |
<xsl:template match="subtitle[@style='italic']"> |
<xsl:call-template name="inline.italicmonoseq"/> |
</xsl:template> |
</xsl:stylesheet> |
/design/trunk/tools/toolchain |
---|
0,0 → 1,95 |
#!/bin/bash |
# DocBook Toolchain for ${PLATFORM} |
# by Sergey Bondari <bondari@itbs.cz> |
check_error() { |
if [ "$1" -ne "0" ]; then |
echo |
echo "Script failed: $2" |
exit |
fi |
} |
DOCBOOKXSL_VERSION="1.69.1" |
FOP_VERSION="0.20.5" |
DBLATEX_VERSION="0.1.9" |
DOCBOOKXSL="docbook-xsl-${DOCBOOKXSL_VERSION}.tar.bz2" |
DOCBOOKXSL_PATCH="docbook-xsl-${DOCBOOKXSL_VERSION}-patch.tar.bz2" |
FOP="fop-${FOP_VERSION}-src.tar.gz" |
JIMI="jimi-1.0.jar" |
DBLATEX="dblatex-${DBLATEX_VERSION}.tar.bz2" |
DOCBOOKXSL_SOURCE="http://www.helenos.eu/tools/" |
JIMI_SOURCE="http://www.helenos.eu/tools/" |
FOP_SOURCE="http://ftp.sh.cvut.cz/MIRRORS/apache/xmlgraphics/fop/" |
DBLATEX_SOURCE="http://mesh.dl.sourceforge.net/sourceforge/dblatex/" |
WORKDIR=`pwd` |
DOCBOOKXSLDIR="${WORKDIR}/docbook-xsl-${DOCBOOKXSL_VERSION}" |
FOPDIR="${WORKDIR}/fop-${FOP_VERSION}" |
echo ">>> Downloading tarballs" |
if [ ! -f "${DOCBOOKXSL}" ]; then |
wget -c "${DOCBOOKXSL_SOURCE}${DOCBOOKXSL}" |
check_error $? "Error downloading DOCBOOK XSL." |
fi |
if [ ! -f "${DOCBOOKXSL_PATCH}" ]; then |
wget -c "${DOCBOOKXSL_SOURCE}${DOCBOOKXSL_PATCH}" |
check_error $? "Error downloading DOCBOOK XSL Patch." |
fi |
if [ ! -f "${FOP}" ]; then |
wget -c "${FOP_SOURCE}${FOP}" |
check_error $? "Error downloading FOP." |
fi |
if [ ! -f "${JIMI}" ]; then |
wget -c "${JIMI_SOURCE}${JIMI}" |
check_error $? "Error downloading JIMI." |
fi |
if [ ! -f "${DBLATEX}" ]; then |
wget -c "${DBLATEX_SOURCE}${DBLATEX}" |
check_error $? "Error downloading DBLaTex Patch." |
fi |
echo ">>> Unpacking tarballs" |
tar -jxvf "${DOCBOOKXSL}" |
check_error $? "Error unpacking DOCBOOK XSL." |
tar -zxvf "${FOP}" |
check_error $? "Error unpacking FOP." |
rm -rf "docbook-xsl" |
mv ${DOCBOOKXSLDIR} "docbook-xsl" |
check_error $? "Rename failed." |
tar -jxvf "${DOCBOOKXSL_PATCH}" |
check_error $? "Docbook XSL patch injection failed" |
tar -jxvf "${DBLATEX}" |
rm -rf "fop" |
mv ${FOPDIR} "fop" |
check_error $? "Rename failed." |
cp ${JIMI} fop/lib |
check_error $? "Cannot inject JIMI to FOP." |
mkdir -p ${WORKDIR}/dblatex |
cd dblatex-${DBLATEX_VERSION} |
./configure --prefix=${WORKDIR}/dblatex |
make |
make install |
cd .. |
echo |
echo ">>> Done." |
Property changes: |
Added: svn:executable |
+* |
\ No newline at end of property |
/design/trunk/Makefile |
---|
0,0 → 1,109 |
# |
# Copyright (C) 2006 Sergey Bondari |
# All rights reserved. |
# |
# Redistribution and use in source and binary forms, with or without |
# modification, are permitted provided that the following conditions |
# are met: |
# |
# - Redistributions of source code must retain the above copyright |
# notice, this list of conditions and the following disclaimer. |
# - Redistributions in binary form must reproduce the above copyright |
# notice, this list of conditions and the following disclaimer in the |
# documentation and/or other materials provided with the distribution. |
# - The name of the author may not be used to endorse or promote products |
# derived from this software without specific prior written permission. |
# |
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR |
# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES |
# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. |
# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, |
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT |
# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
# |
# Use xsltproc as XSL processor |
XSLT = xsltproc |
TOOLCHAIN_DIR = tools/ |
# DocBook XSL package |
DOCBOOK_DIR = $(TOOLCHAIN_DIR)docbook-xsl/ |
# FOP - Apache XML graphics package |
FOP_DIR=$(TOOLCHAIN_DIR)fop/ |
FOP=$(FOP_DIR)fop.sh |
DBLATEX_DIR=$(TOOLCHAIN_DIR)dblatex/ |
DBLATEX=$(DBLATEX_DIR)bin/dblatex |
# Output folders |
BUILD_HTML_DIR = build/html/ |
BUILD_PDF_DIR = build/pdf/ |
BUILD_HTML_CHUNKED_DIR = build/html.chunked/ |
all: html htmlchunked pdf |
build: clean all |
html: imgconvert |
mkdir -p $(BUILD_HTML_DIR) |
mkdir -p $(BUILD_HTML_DIR)images |
cp src/images/* $(BUILD_HTML_DIR)images |
xsltproc \ |
--stringparam section.autolabel 1 \ |
--stringparam section.label.includes.component.label 1 \ |
--stringparam section.autolabel.max.depth 2 \ |
--stringparam preferred.mediaobject.role html \ |
--output $(BUILD_HTML_DIR)index.html $(DOCBOOK_DIR)html/docbook.xsl src/index.xml |
htmlchunked: imgconvert |
mkdir -p $(BUILD_HTML_CHUNKED_DIR) |
mkdir -p $(BUILD_HTML_CHUNKED_DIR)images |
cp src/images/* $(BUILD_HTML_CHUNKED_DIR)images |
xsltproc \ |
--stringparam section.autolabel 1 \ |
--stringparam section.label.includes.component.label 1 \ |
--stringparam chunk.section.depth 0 \ |
--stringparam section.autolabel.max.depth 2 \ |
--stringparam preferred.mediaobject.role html \ |
--output $(BUILD_HTML_CHUNKED_DIR)index.html $(DOCBOOK_DIR)html/chunk.xsl src/index.xml |
pdf: dblatex-pdf |
dblatex-pdf: imgconvert |
mkdir -p $(BUILD_PDF_DIR) |
$(DBLATEX) \ |
-t pdf -T db2latex -f pdf \ |
-p tools/extra/dblatex-extra.xsl \ |
-o $(BUILD_PDF_DIR)HelenOS-doc-design.pdf \ |
src/index.xml |
fo-pdf: imgconvert |
mkdir -p $(BUILD_PDF_DIR) |
mkdir -p $(BUILD_PDF_DIR)images |
cp src/images/* $(BUILD_PDF_DIR)images |
xsltproc \ |
--stringparam paper.type A4 \ |
--stringparam fop.extensions 1 \ |
--stringparam bondari.jimi.compatible 1 \ |
--stringparam section.autolabel 1 \ |
--stringparam section.label.includes.component.label 1 \ |
--stringparam section.autolabel.max.depth 2 \ |
--stringparam body.font.master 12 \ |
--stringparam preferred.mediaobject.role fop \ |
--output $(BUILD_PDF_DIR)index.fo $(DOCBOOK_DIR)fo/docbook.xsl src/index.xml |
$(FOP) -q -fo $(BUILD_PDF_DIR)index.fo -pdf $(BUILD_PDF_DIR)index.pdf |
imgconvert: |
cd src/images; ./convert |
distclean: clean |
clean: |
rm -rf build |
rm -rf src/images/*.pdf |
rm -rf src/images/*.eps |
rm -rf src/images/*.png |
/papers/isarcs10/isarcs10.tex |
---|
0,0 → 1,758 |
\documentclass{llncs} |
\usepackage{graphicx} |
\title{A Road to a Formally Verified General-Purpose Operating System} |
\author{Martin D\v{e}ck\'{y}} |
\institute{Department of Distributed and Dependable Systems\\ |
Faculty of Mathematics and Physics, Charles University\\ |
Malostransk\'{e} n\'{a}m\v{e}st\'{i} 25, Prague 1, 118~00, Czech Republic\\ |
\email{martin.decky@d3s.mff.cuni.cz}} |
\begin{document} |
\maketitle |
\begin{abstract} |
Methods of formal description and verification represent a viable way for achieving |
fundamentally bug-free software. However, in reality only a small subset of the existing operating |
systems were ever formally verified, despite the fact that an operating system is a critical part |
of almost any other software system. This paper points out several key design choices which |
should make the formal verification of an operating system easier and presents a work-in-progress |
and initial experiences with formal verification of HelenOS, a state-of-the-art microkernel-based |
operating system, which, however, was not designed specifically with formal verification in mind, |
as this is mostly prohibitive due to time and budget constrains. |
The contribution of this paper is the shift of focus from attempts to use a single ``silver-bullet'' |
formal verification method which would be able to verify everything to a combination of multiple |
formalisms and techniques to successfully cover various aspects of the operating system. |
A reliable and dependable operating system is the emerging property of the combination, |
thanks to the suitable architecture of the operating system. |
\end{abstract} |
\section{Introduction} |
\label{introduction} |
Operating systems (OSes for short) have a somewhat special position among all software. |
OSes are usually designed to run on bare hardware. This means that they do not require |
any special assumptions on the environment except the assumptions on the properties and |
behavior of hardware. In many cases it is perfectly valid to consider the hardware |
as \emph{idealized hardware} (zero mathematical probability of failure, perfect compliance |
with the specifications, etc.). This means that it is solely the OS that defines the |
environment for other software. |
OSes represent the lowest software layer and provide services to essentially all other |
software. Considering the principle of recursion, the properties of an OS form the |
assumptions for the upper layers of software. Thus the dependability of end-user and |
enterprise software systems is always limited by the dependability of the OS. |
Finally, OSes are non-trivial software on their own. The way they are generally designed |
and programmed (spanning both the kernel and user mode, manipulating execution contexts |
and concurrency, handling critical hardware-related operations) represent significant |
and interesting challenges for software analysis. |
\medskip |
These are probably the most important reasons that led to several research initiatives |
in the recent years which target the creation of a formally verified OSes from scratch |
(e.g. \cite{seL4}). Methods of formal description and verification provide fundamentally |
better guarantees of desirable properties than non-exhaustive engineering methods such |
as testing. |
However, 98~\%\footnote{98~\% of client computers connected to the Internet as of January |
2010~\cite{marketshare}.} of the market share of general-purpose OSes is taken |
by Windows, Mac~OS~X and Linux. These systems were clearly not designed with formal |
verification in mind from the very beginning. The situation on the embedded, real-time |
and special-purpose OSes market is probably different, but it is unlikely that the |
segmentation of the desktop and server OSes market is going to change very rapidly |
in the near future. |
The architecture of these major desktop and server OSes is monolithic, which makes |
any attempts to do formal verification on them extremely challenging due to the large |
state space. Fortunately we can observe that aspects of several novel approaches from |
the OS research from the late 1980s and early 1990s (microkernel design, user space |
file system and device drivers, etc.) are slowly emerging in these originally purely |
monolithic implementations. |
\medskip |
In this paper we show how specific design choices can markedly improve the feasibility |
of verification of an OS, even if the particular OS was not designed |
specifically with formal verification in mind. These design choices can be gradually |
introduced (and in fact some of them have already been introduced) to mainstream |
general-purpose OSes. |
Our approach is not based on using a single ``silver-bullet'' formalism, methodology or |
tool, but on combining various engineering, semi-formal and formal approaches. |
While the lesser formal approaches give lesser guarantees, they can complement |
the formal approaches on their boundaries and increase the coverage of the set of |
all hypothetical interesting properties of the system. |
We also demonstrate work-in-progress case study of an general-purpose research OS |
that was not created specifically with formal verification in mind from the very |
beginning, but that was designed according to state-of-the-art OS principles. |
\medskip |
\noindent\textbf{Structure of the Paper.} In Section \ref{design} we introduce |
the design choices and our case study in more detail. In Section \ref{analysis} we |
discuss our approach of the combination of methods and tools. In Section \ref{evaluation} |
we present a preliminary evaluation of our efforts and propose the imminent next steps |
to take. Finally, in Section \ref{conclusion} we present the conclusion of the paper. |
\section{Operating Systems Design} |
\label{design} |
Two very common schemes of OS design are \emph{monolithic design} and \emph{microkernel design}. |
Without going into much detail of any specific implementation, we can define the monolithic design as |
a preference to put numerous aspects of the core OS functionality into the kernel, while microkernel |
design is a preference to keep the kernel small, with just a minimal set of features. |
The features which are missing from the kernel in the microkernel design are implemented |
in user space, usually by means of libraries, servers (e.g. processes/tasks) and/or software components. |
\subsection{HelenOS} |
\label{helenos} |
\emph{HelenOS} is a general-purpose research OS which is being developed at Charles |
University in Prague. The source code is available under the BSD open source license and can be |
freely downloaded from the project web site~\cite{helenos}. The authors of the code base are |
both from the academia and from the open source community (several contributors are employed |
as Solaris kernel developers and many are freelance IT professionals). |
HelenOS uses a preemptive priority-feedback scheduler, it supports SMP hardware and it is |
designed to be highly portable. Currently it runs on 7 distinct hardware architectures, including the |
most common IA-32, x86-64 (AMD64), IA-64, SPARC~v9 and PowerPC. It also runs on ARMv7 and MIPS, |
but currently only in simulators and not on physical hardware. |
Although HelenOS is still far from being an everyday replacement for Linux or Windows due to the lack |
of end-user applications (whose development is extremely time-consuming, but unfortunately of |
no scientific value), the essential foundations such as file system support and TCP/IP networking |
are already in place. |
HelenOS does not currently target embedded devices (although the ARMv7 port can be very easily |
modified to run on various embedded boards) and does not implement real-time features. |
Many development projects such as task snapshoting and migration, support for MMU-less |
platforms and performance monitoring are currently underway. |
\medskip |
HelenOS can be briefly described as microkernel multiserver OS. However, the actual design |
guiding principles of the HelenOS are more elaborate: |
\begin{description} |
\item[Microkernel principle] Every functionality of the OS that does not |
have to be necessary implemented in the kernel should be implemented in user space. This |
implies that subsystems such as the file system, device drivers (except those which are |
essential for the basic kernel functionality), naming and trading services, networking, |
human interface and similar features should be implemented in user space. |
\item[Full-fledged principle] Features which need to be placed in kernel should |
be implemented by full-fledged algorithms and data structures. In contrast |
to several other microkernel OSes, where the authors have deliberately chosen |
the most simplistic approach (static memory allocation, na\"{\i}ve algorithms, simple data |
structures), HelenOS microkernel tries to use the most advanced and suitable means available. |
It contains features such as AVL and B+ trees, hashing tables, SLAB memory allocator, multiple |
in-kernel synchronization primitives, fine-grained locking and so on. |
\item[Multiserver principle] Subsystems in user space should be decomposed with the smallest |
reasonable granularity. Each unit of decomposition should be encapsulated in a separate task. |
The tasks represent software components with isolated address spaces. From the design point of |
view the kernel can be seen as a separate software component, too. |
\item[Split of mechanism and policy] The kernel should only provide low-level me\-chanisms, |
while the high-level policies which are built upon these mechanisms should be defined in |
user space. This also implies that the policies should be easily replaceable while keeping |
the low-level mechanisms intact. |
\item[Encapsulation principle] The communication between the tasks/components should be |
implemented only via a set of well-defined interfaces. In the user-to-user case the preferred |
communication mechanism is HelenOS IPC, which provides reasonable mix of abstraction and |
performance (RPC-like primitives combined with implicit memory sharing for large data |
transfers). In case of synchronous user-to-kernel communication the usual syscalls are used. |
HelenOS IPC is used again for asynchronous kernel-to-user communication. |
\item[Portability principle] The design and implementation should always maintain a high |
level of platform neutrality and portability. Platform-specific code in the kernel, core |
libraries and tasks implementing device drivers should be clearly separated from the |
generic code (either by component decomposition or at least by internal compile-time APIs). |
\end{description} |
In Section \ref{analysis} we argue that several of these design principles significantly improve |
the feasibility of formal verification of the entire system. On the other hand, other design principles |
induce new interesting challenges for formal description and verification. |
The run-time architecture of HelenOS is inherently dynamic. The bindings between the components are |
not created at compile-time, but during bootstrap and can be modified to a large degree also during |
normal operation mode of the system (via human interaction and external events). |
The design of the ubiquitous HelenOS IPC mechanism and the associated threading model present |
the possibility to significantly reduce the size of the state space which needs to be explored |
by formal verification tools, but at the same time it is quite hard to express these |
constrains in many formalisms. The IPC is inherently asynchronous with constant message buffers |
in the kernel and dynamic buffers in user space. It uses the notions of uni-directional bindings, |
mandatory pairing of requests and replies, binding establishment and abolishment handshakes, |
memory sharing and fast message forwarding. |
For easier management of the asynchronous messages and the possibility to process multiple |
messages from different peers without the usual kernel threading overhead, the core user space |
library manages the execution flow by so-called \emph{fibrils}. A fibril is a user-space-managed |
thread with cooperative scheduling. A different fibril is scheduled every time the current fibril |
is about to be blocked while sending out IPC requests (because the kernel buffers of the addressee |
are full) or while waiting on an IPC reply. This allows different execution flows within the |
same thread to process multiple requests and replies. To safeguard proper sequencing of IPC |
messages and provide synchronization, special fibril-aware synchronization primitives |
(mutexes, condition variables, etc.) are available. |
Because of the cooperative nature of fibrils, they might cause severe performance under-utilization |
in SMP configurations and system-wide bottlenecks. As multicore processors are more and more |
common nowadays, that would be a substantial design flaw. Therefore the fibrils can be also freely |
(and to some degree even automatically) combined with the usual kernel threads, which provide |
preemptive scheduling and true parallelism on SMP machines. Needless to say, this combination is |
also a grand challenge for the formal reasoning. |
\medskip |
Incidentally, the \emph{full-fledged principle} causes that the size of the HelenOS microkernel is |
considerably larger compared to other ``scrupulous'' microkernel implementations. The average |
footprint of the kernel on IA-32 ranges from 569~KiB when all logging messages, asserts, symbol |
resolution and the debugging kernel console are compiled in, down to 198~KiB for a non-debugging |
production build. But we do not believe that the raw size of the microkernel is a relevant quality |
criterion per se, without taking the actual feature set into account. |
\medskip |
To sum up, the choice of HelenOS as our case study is based on the fact that it was not designed |
in advance with formal verification in mind (some of the design principles might be beneficial, |
but others might be disadvantageous), but the design of HelenOS is also non-trivial and not obsolete. |
\subsection{The C Programming Language} |
A large majority of OSes is coded in the C programming language (HelenOS is no exception |
to this). The choice of C in the case of kernel is usually well-motivated, since the C language was designed |
specifically for implementing system software~\cite{c}: It is reasonably low-level in the sense that it allows |
to access the memory and other hardware resources with similar effectiveness as from assembler; |
It also requires almost no run-time support and it exports many features of the von Neumann hardware |
architecture to the programmer in a very straightforward, but still relatively portable way. |
However, what is the biggest advantage of C in terms of run-time performance is also the biggest weakness |
for formal reasoning. The permissive memory access model of C, the lack of any reference safety |
enforcement, the weak type system and generally little semantic information in the code -- all these |
properties do not allow to make many general assumptions about the code. |
Programming languages which target controlled environments such as Java and C\(\sharp\) are |
generally easier for formal reasoning because they provide a well-known set of primitives |
and language constructs for object ownership, threading and synchronization. Many non-imperative |
programming languages can be even considered to be a form of ``executable specification'' and thus |
very suitable for formal reasoning. In C, almost everything is left to the programmer who |
is free to set the rules. |
\medskip |
The reasons for frequent use of C in the user space of many established OSes (and HelenOS) is |
probably much more questionable. In the case of HelenOS, except for the core libraries and tasks |
(such as device drivers), C might be easily replaced by any high-level and perhaps even |
non-imperative programming language. The reasons for using C in this context are mostly historical. |
However, as we have stated in Section \ref{introduction}, the way general-purpose OSes |
are implemented changes only slowly and therefore any propositions which require radical modification |
of the existing code base before committing to the formal verification are not realistic. |
\section{Analysis} |
\label{analysis} |
\begin{figure}[t] |
\begin{center} |
\resizebox*{125mm}{!}{\includegraphics{diag}} |
\caption{Overview of the formalisms and tools proposed.} |
\label{fig:diag} |
\end{center} |
\end{figure} |
In this section, we analyze the properties we would like to check in a general-purpose |
OS. Each set of properties usually requires a specific verification method, tool or toolchain. |
Our approach will be mostly bottom-up, or, in other words, from the lower levels of abstraction |
to the higher levels of abstraction. If the verification fails on a lower level, it usually |
does not make much sense to continue with the higher levels of abstraction until the issues |
are tackled. A structured overview of the formalisms, methods and tools can be seen on |
Figure \ref{fig:diag}. |
\medskip |
Some of the proposed methods cannot be called ``formal methods'' in the rigorous understanding |
of the term. However, even methods which are based on semi-formal reasoning and non-exhaustive |
testing provide some limited guarantees in their specific context. A valued property |
of the formal methods is to preserve these limited guarantees even on the higher levels |
of abstraction, thus allowing the semi-formal methods to complement the big picture |
where the formal methods do not provide any feasible verification so far. This increases |
the coverage of the set of all hypothetical interesting properties of the system (although |
it is probably impossible to formally define this entire set). |
\medskip |
Please note that the titles of the following sections do not follow any particular established |
taxonomy. We have simply chosen the names to be intuitively descriptive. |
\subsection{C Language Compiler and Continuous Integration Tool} |
\label{clang} |
The initial levels of abstraction do not go far from the C source code and common engineering |
approaches. First, we would certainly like to know whether our code base is compliant with the |
programming language specification and passes only the basic semantic checks (proper number |
and types of arguments passed to functions, etc.). It is perhaps not very surprising that |
these decisions can be made by any plain C compiler. However, with the current implementation |
of HelenOS even this is not quite trivial. |
Besides the requirement to support 7 hardware platforms, the system's com\-pile-time configuration |
can be also affected by approximately 65 configuration options, most of which are booleans, |
the rest are enumerated types. |
These configuration options are bound by logical propositions in conjunctive or disjunctive |
normal forms and while some options are freely configurable, the value of others gets inferred |
by the build system of HelenOS. The overall number of distinct configurations in which |
HelenOS can be compiled is at least one order of magnitude larger than the plain number |
of supported hardware platforms. |
Various configuration options affect conditional compilation and linking. The programmers |
are used to make sure that the source code compiles and links fine with respect to the |
most common and obvious configurations, but the unforeseen interaction of the less common |
configuration options might cause linking or even compilation errors. |
\medskip |
A straightforward solution is to generate all distinct configurations, starting from the |
open variables and inferring the others. This can be part of the continuous integration |
process which would try to compile and link the sources in all distinct configurations. |
If we want to be really pedantic, we should also make sure that we run all higher |
level verification methods on all configurations generated by this step. That would certainly |
require to multiply the time required by the verification methods at least by the number |
of the distinct configurations. Constraining the set of configurations to just the most |
representative ones is perhaps a reasonable compromise to make the verification realistic. |
\subsection{Regression and Unit Tests} |
Running regression and unit tests which are part of HelenOS code base in the continuous |
integration process is fairly easy. The only complication lies in the technicalities: |
We need to setup an automated network of physical machines and simulators which can run the |
appropriate compilation outputs for the specific platforms. We need to be able to reboot |
them remotely and distribute the boot images to them. And last but not least, we need to be |
able to gather the results from them. |
Testing is always non-exhaustive, thus the guarantees provided by tests are strictly limited |
to the use cases and contexts which are being explicitly tested. However, it is arguably |
easier to express many common use cases in the primary programming language than in some |
different formalism. As we follow the bottom-up approach, filtering out the most obvious |
bugs by testing can save us a lot of valuable time which would be otherwise waisted by |
a futile verification by more formal (and more time-consuming) methods. |
\subsection{Instrumentation} |
Instrumentation tools for detecting memory leaks, performance bottlenecks and soft-deadlocks |
are also not usually considered to be formal verification tools (since it is hard to define |
exact formal properties which are being verified by the non-exhaustive nature of these tools). |
They are also rarely utilized on regular basis as part of the continuous integration process. |
But again, it might be helpful to just mention them in the big picture. |
If some regression or unit tests fail, they sometimes do not give sufficient information to |
tell immediately what is the root cause of the issue. In that case running the faulting tests |
on manually or automatically instrumented executable code might provide more data and point |
more directly to the actual bug. |
\subsection{Verifying C Language Compiler} |
C language compilers are traditionally also not considered to be formal verification tools. |
Many people just say that C compilers are good at generating executable code, but do not |
care much about the semantics of the source code (on the other hand, formal verification |
tools usually do not generate any executable code at all). However, with recent development |
in the compiler domain, the old paradigms are shifting. |
As the optimization passes and general maturity of the compilers improve over time, |
the compilers try to extract and use more and more semantic information from the source code. |
The C language is quite poor on explicit semantic information, but the verifying compilers |
try to rely on vendor-specific language extensions and on the fact that some semantic information |
can be added to the source code without changing the resulting executable code. |
The checks done by the verifying compilers cannot result in fatal errors in the usual cases (they |
are just warnings). Firstly, the compilers still need to successfully compile a well-formed C source |
code compliant to some older standard (e.g. C89) even when it is not up with the current quality |
expectations. Old legacy source code should still pass the compilation as it did decades ago. |
Secondly, the checks run by the verifying compilers are usually not based on abstract interpretation. |
They are mostly realized as abstract syntax tree transformations much in the line with the supporting |
routines of the compilation process (data and control flow graph analysis, dead code elimination, |
register allocation, etc.) and the evaluation function is basically the matching of antipatterns |
of common programming bugs. |
The checks are usually conservative. The verifying compilers identify code constructs which are suspicious, |
which might arise out of programmer's bad intuition and so on, but even these code snippets cannot be |
tagged as definitive bugs (since the programmer can be simply in a position where he/she really wants to |
do something very strange, but nevertheless legitimate). It is upon the programmer |
to examine the root cause of the compiler warning, tell whether it is really a bug or just a false |
positive and fix the issue by either amending some additional semantic information (e.g. adding an |
explicit typecast or a vendor-specific language extension) or rewriting the code. |
Although this level of abstraction is coarse-grained and conservative, it can be called semi-formal, |
since the properties which are being verified can be actually defined quite exactly and they |
are reasonably general. They do not deal with single traces of methods, runs and use |
cases like tests, but they deal with all possible contexts in which the code can run. |
\subsection{Static Analyzer} |
Static analyzers try to go deeper than verifying compilers. Besides detecting common antipatterns of |
bugs, they also use techniques such as abstract interpretation to check for more complex properties. |
Most commercial static analyzers come with a predefined set of properties which cannot be easily changed. |
They are coupled with the commonly used semantics of the environment and generate domain-specific models |
of the software based not only on the syntax of the source code, but also based on the assumptions derived |
from the memory access model, allocation and deallocation rules, tracking of references and tracking of |
concurrency locks. |
The biggest advantage of static analyzers is that they can be easily included in the development or |
continuous integration process as an additional automated step, very similar to the verifying compilers. |
No manual definition of code-specific properties is needed and false positives can be relatively easily |
eliminated by amending some explicit additional information to the source code within the boundaries |
of the programming language. |
The authors of static analyzers claim large quantities of bugs detected or prevented~\cite{billion}, |
but static analyzers are still relatively limited by the kind of bugs they are designed to detect. |
They are usually good at pointing out common issues with security implications (specific types of |
buffer and stack overruns, usage of well-known functions in an unsafe way, clear cases of forgotten |
deallocation of resources and release of locks, etc.). Unfortunately, many static analyzers |
only analyze a single-threaded control flow and are thus unable to detect concurrency issues |
such as deadlocks. |
\subsection{Static Verifier} |
There is one key difference between a static analyzer and a static verifier: Static verifiers |
allow the user to specify one's own properties, in terms of preconditions, postconditions and |
invariants in the code. Many static verifiers also target true multithreaded usage patterns |
and have the capability to check proper locking order, hand-over-hand locking and even liveliness. |
In the context of an OS kernel and core libraries two kinds of properties are common: |
\begin{description} |
\item[Consistency constrains] These properties define the correct way how data is supposed |
to be manipulated by some related set of subroutines. Checking for these |
properties ensures that data structures and internal states will not get corrupt due |
to bugs in the functions and methods which are designed to manipulate them. |
\item[Interface enforcements] These properties define the correct semantics by which |
a set of subroutines should be used by the rest of the code. Checking for these properties |
ensures that some API is always used by the rest of the code in a specified way |
and all reported exceptions are handled by the client code. |
\end{description} |
\subsection{Model Checker} |
\label{modelcheck} |
On the first sight it does not seem to be reasonable to consider general model checkers as |
relevant independent tools for formal verification of an existing OS. While many different |
tools use model checkers as their backends, verifying a complete model of the entire |
system created by hand seems to be infeasible both in the sense of time required for the model |
creation and resources required by the checker to finish the exhaustive traversal of the model's |
state space. |
Nevertheless, model checkers on their own can still serve a good job verifying abstract |
properties of key algorithms without dealing with the technical details of the implementation. |
Various properties of synchronization algorithms, data structures and communication protocols |
can be verified in the most generic conditions by model checkers, answering the |
question whether they are designed properly in theory. |
If the implementation of these algorithms and protocols do not behave correctly, we can be sure |
that the root cause is in the non-compliance between the design and implementation and not a |
fundamental flaw of the design itself. |
\subsection{Architecture and Behavior Checker} |
All previously mentioned verification methods were targeting internal properties of the OS |
components. If we are moving to a higher-level abstraction in order to specify correct |
interaction of the encapsulated components in terms of interface compatibility and communication, |
we can utilize \emph{Behavior Protocols}~\cite{bp} or some other formalism describing correct |
interaction between software components. |
To gain the knowledge about the architecture of the whole OS in terms of software |
component composition and bindings, we can use \emph{Architecture Description Language}~\cite{adl} |
as the specification of the architecture of the system. This language has the possibility to capture |
interface types (with method signatures), primitive components (in terms of provided and required |
interfaces), composite components (an architectural compositions of primitive components) and the |
bindings between the respective interfaces of the components. |
It is extremely important to define the right role of the behavior and architecture description. |
A flawed approach would be to reverse-engineer this description from the source code (either manually |
or via some sophisticated tool) and then verify the compliance between the description and |
the implementation. However, different directions can give more interesting results: |
\begin{description} |
\item[Description as specification] Behavior and architecture description created independently |
on the source code serves the role of specification. This has the following primary |
goals of formal verification: |
\begin{description} |
\item[Horizontal compliance] Also called \emph{compatibility}. The goal is to check |
whether the specifications of components that are bound together are semantically |
compatible. All required interfaces need to be bound to provided interfaces and |
the communication between the components cannot lead to \emph{no activity} (a deadlock), |
\emph{bad activity} (a livelock) or other communication and synchronization errors. |
\item[Vertical compliance] Also called \emph{substituability}. The goal is to check whe\-ther |
it is possible to replace a set of primitive components that are nested inside a composite |
component by the composite component itself. In other words, this compliance can answer the |
question whether the architecture description of the system is sound with respect to the hierarchical |
composition of the components. |
\item[Specification and implementation compliance] Using various means |
of generating artificial environments for an isolated component a checker is able to |
partially answer the question whether the implementation of the component is an instantiation |
of the component specification. |
\end{description} |
\item[Description as abstraction] Generating the behavior and architecture description from the |
source code by means of abstract interpretation can serve the purpose of verifying various |
properties of the implementation such as invariants, preconditions and postconditions. |
This is similar to static verification, but on the level of component interfaces. |
\end{description} |
Unfortunately, most of the behavior and architecture formalisms are static, which is not quite suitable |
for the dynamic nature of most OSes. This limitation can be circumvented by considering a relevant |
snapshot of the dynamic run-time architecture. This snapshot fixed in time is equivalent to |
a statically defined architecture. |
\medskip |
The key features of software systems with respect to behavior and architecture checkers are the granularity |
of the individual primitive components, the level of isolation and complexity of the communication mechanism |
between them. Large monolithic OSes created in semantic-poor C present a severe challenge because the |
isolation of the individual components is vague and the communication between them is basically unlimited |
(function calls, shared resources, etc.). |
OSes with explicit component architecture and fine-grained components (such as microkernel multiserver |
systems) make the feasibility of the verification much easier, since the degrees of freedom (and thus |
the state space) is limited. |
Horizontal and vertical compliance checking can be done exhaustively. This is a fundamental property |
which allows the reasoning about the dependability of the entire component-based OS. |
Assuming that the lower-level verification methods (described in Sections \ref{clang} to \ref{modelcheck}) |
prove some specific properties of the primitive components, we can be sure that the composition of |
the primitive components into composite components and ultimately into the whole OS |
does not break these properties. |
The feasibility of many lower-level verification methods from Sections \ref{clang} to \ref{modelcheck} |
depends largely on the size and complexity of the code under verification. If the entire OS |
is decomposed into primitive components with a fine granularity, it is more likely that the |
individual primitive components can be verified against a large number of properties. Thanks to the |
recursive component composition we can then be sure that these properties also hold for the entire system. |
\medskip |
The compliance between the behavior specification and the actual behavior of the implementation is, unfortunately, |
the missing link in the chain. This compliance cannot be easily verified in an exhaustive manner. If there is |
a discrepancy between the specified and the actual behavior of the components, we cannot conclude anything about |
the properties holding in the entire system. |
However, there is one way how to improve the situation: \emph{code generation}. If we generate implementation |
from the specification, the compliance between them is axiomatic. If we are able to generate enough |
code from the specification to run into the hand-written ``business code'' where we check for |
the lower-level properties, the conclusions about the component composition are going to hold. |
\subsection{Behavior Description Generator} |
To conclude our path towards higher abstractions we can utilize tools that can |
generate the behavior descriptions from \emph{textual use cases} written in a domain-constrained English. |
These generated artifacts can be then compared (e.g. via vertical compliance checking) with the formal |
specification. Although the comparison might not provide clean-cut results, it can still be |
helpful to confront the more-or-less informal user expectations on the system with the exact formal description. |
\subsection{Summary} |
\label{missing} |
So far, we have proposed a compact combination of engineering, semi-formal and formal methods which |
start at the level of C programming language, offer the possibility to check for the presence of various |
common antipatterns, check for generic algorithm-related properties, consistency constrains, interface |
enforcements and conclude with a framework to make these properties hold even in the case of a large |
OS composed from many components of compliant behavior. |
We do not claim that there are no missing pieces in the big picture or that the semi-formal verifications |
might provide more guarantees in this setup. However, state-of-the-art OS design guidelines can push |
further the boundaries of practical feasibility of the presented methods. The limited guarantees |
of the low-level methods hold even in the composition and the high-level formal methods do not have |
to deal with unlimited degrees of freedom of the primitive component implementation. |
\medskip |
We have spoken only about the functional properties. In general, we cannot apply the same formalisms |
and methods on extra-functional properties (e.g. timing properties, performance properties, etc.). |
And although it probably does make a good sense to reason about component composition for the extra-functi\-onal |
properties, the exact relation might be different compared to the functional properties. |
The extra-functional properties need to be tackled by our future work. |
\section{Evaluation} |
\label{evaluation} |
This section copies the structure of the previous Section \ref{analysis} and adds HelenOS-specific |
evaluation of the the proposed formalisms and tools. As this is still largely a work-in-progress, |
in many cases just the initial observations can be made. |
The choice of the specific methods, tools and formalisms in this initial phase is mostly motivated |
by their perceived commonality and author's claims about fitness for the given purpose. An important |
part of further evaluation would certainly be to compare multiple particular approaches, tools |
and formalisms to find the optimal combination. |
\subsection{Verifying C Language Compiler and Continuous Integration Tool} |
The primary C compiler used by HelenOS is \emph{GNU GCC 4.4.3} (all platforms)~\cite{gcc} and \emph{Clang 2.6.0} |
(IA-32)~\cite{clang}. We have taken some effort to support also \emph{ICC} and \emph{Sun Studio} C compilers, |
but the compatibility with these compilers in not guaranteed. |
The whole code base is compiled with the \texttt{-Wall} and \texttt{-Wextra} compilation options. These options turn on |
most of the verification checks of the compilers. The compilers trip on common bug antipatterns such |
as implicit typecasting of pointer types, comparison of signed and unsigned integer values (danger |
of unchecked overflows), the usage of uninitialized variables, the presence of unused local variables, |
NULL-pointer dereferencing (determined by conservative local control flow analysis), functions |
with non-void return typed that do not return any value and so on. We treat all compilation warnings |
as fatal errors (\texttt{-Werror}), thus the code base must pass without any warnings. |
We also turn on several more specific and strict checks. These checks helped to discover several |
latent bugs in the source code: |
\begin{description} |
\item[\texttt{-Wfloat-equal}] Check for exact equality comparison between floating point values. The |
usage of equal comparator on floats is usually misguided due to the inherent computational errors |
of floats. |
\item[\texttt{-Wcast-align}] Check for code which casts pointers to a type with a stricter alignment |
requirement. On many RISC-based platforms this can cause run-time unaligned access exceptions. |
\item[\texttt{-Wconversion}] Check for code where the implicit type conversion (e.g. from float to integer, |
between signed and unsigned integers or between integers with different number of bits) can |
cause the actual value to change. |
\end{description} |
To enhance the semantic information in the source code, we use GCC-specific language extensions to annotate |
some particular kernel and core library routines: |
\begin{description} |
\item[\texttt{\_\_attribute\_\_((noreturn))}] Functions marked in this way never finish from the point of view |
of the current sequential execution flow. The most common case are the routines which restore previously saved |
execution context. |
\item[\texttt{\_\_attribute\_\_((returns\_twice))}] Functions marked in this way may return multiple times from |
the point of view of the current sequential execution flow. This is the case of routines which save the current |
execution context (first the function returns as usual, but the function can eventually ``return again'' |
when the context is being restored). |
\end{description} |
The use of these extensions has pointed out to several hard-to-debug bugs on the IA-64 platform. |
\medskip |
The automated continuous integration building system is currently work-in-progress. Thus, we do not |
test all possible configurations of HelenOS with each changeset yet. Currently only |
a representative set of 14 configurations (at least one for each supported platform) is tested by hand |
by the developers before committing any non-trivial changeset. |
From occasional tests of other configurations by hand and the frequency of compilation, linkage and |
even run-time problems we conclude that the automated testing of all feasible configurations will |
be very beneficial. |
\subsection{Regression and Unit Tests} |
As already stated in the previous section, the continuous integration building system has not been finished |
yet. Therefore regression and unit tests are executed occasionally by hand, which is time consuming |
and prone to human omissions. An automated approach is definitively going to be very helpful. |
\subsection{Instrumentation} |
We are in the process of implementing our own code instrumentation framework which is motivated mainly |
by the need to support MMU-less architectures in the future. But this framework might be also very helpful |
in detecting memory and generic resource leaks. We have not tried \emph{Valgrind}~\cite{valgrind} or any similar |
existing tool because of the estimated complexity to adopt it for the usage in HelenOS. |
\subsection{Static Analyzer} |
The integration of various static analyzers into the HelenOS continuous integration process is underway. |
For the initial evaluation we have used \emph{Stanse}~\cite{stanse} and \emph{Clang Analyzer}~\cite{clanganalyzer}. |
Both of them showed to be moderately helpful to point out instances of unreachable dead code, use of language |
constructs which have ambiguous semantics in C and one case of possible NULL-pointer dereference. |
The open framework of Clang seems to be very promising for implementing domain-specific checks (and at |
the same time it is also a very promising compiler framework). Our mid-term goal is to incorporate some of the features |
of Stanse and VCC (see Section \ref{staticverifier2}) into Clang Analyzer. |
HelenOS was also scanned by \emph{Coverity}~\cite{coverity} in 2006 when no errors were detected. However, since |
that time the code base has not been analyzed by Coverity. |
\subsection{Static Verifier} |
\label{staticverifier2} |
We have started to extend the source code of HelenOS kernel with annotations understood |
by \emph{Frama-C}~\cite{framac} and \emph{VCC}~\cite{vcc}. Initially we have targeted simple kernel data structures |
(doubly-linked circular lists) and basic locking operations. Currently we are evaluating the initial experiences |
and we are trying to identify the most suitable methodology, but we expect quite promising results. |
As the VCC is based on the Microsoft C++ Compiler, which does not support many GCC extensions, we have been |
faced with the requirement to preprocess the source code to be syntactically accepted by VCC. This turned out |
to be feasible. |
\subsection{Model Checker} |
We are in the process of creating models of kernel wait queues (basic HelenOS kernel synchronization |
primitive) and futexes (basic user space thread synchronization primitive) using \emph{Promela} and |
verify several formal properties (deadlock freedom, fairness) in \emph{Spin}~\cite{spin}. As both the Promela language |
and the Spin model checker are mature and commonly used tools for such purposes, we expect no major problems |
with this approach. Because both synchronization primitives are relatively complex, utilizing a model checker |
should provide a much more trustworthy proof of the required properties than ``paper and pencil''. |
The initial choice of Spin is motivated by its suitability to model threads, their interaction and verify |
properties related to race conditions and deadlocks (which is the common sources of OS-related bugs). Other |
modeling formalisms might be more suitable for different goals. |
\subsection{Architecture and Behavior Checker} |
We have created an architecture description in ADL language derived from \emph{SOFA ADL}~\cite{adl} for the |
majority of the HelenOS components and created the Behavior Protocol specification of these components. |
Both descriptions were created independently, not by reverse-engineering the existing source code. |
The architecture is a snapshot of the dynamic architecture just after a successful bootstrap of HelenOS. |
Both the architecture and behavior description is readily available as part of the source code repository |
of HelenOS, including tools which can preprocess the Behavior Protocols according to the architecture description |
and create an output suitable for \emph{bp2promela} checker~\cite{bp}. |
As the resulting complexity of the description is larger than any of the previously published case studies |
on Behavior Protocols (compare to~\cite{cocome}), our current work-in-progress is to optimize and fine-tune |
the bp2promela checker to process the input. |
\medskip |
We have not started to generate code from the architecture description so far because of time constrains. |
However, we believe that this is a very promising way to go and provide reasonable guarantees about |
the compliance between the specification and the implementation. |
\subsection{Behavior Description Generator} |
We have not tackled the issue of behavior description generation yet, although tools such as |
\emph{Procasor}~\cite{procasor} are readily available. We do not consider it our priority at this time. |
\section{Conclusion} |
\label{conclusion} |
In this paper we propose a complex combination of various verification methods and tools |
to achieve the verification of an entire general-purpose operating system. The proposed |
approach generally follows a bottom-up route, starting with low-level checks using state-of-the-art |
verifying C language compilers, following by static analyzers and static verifiers. |
In specific contexts regression and unit tests, code instrumentation and model checkers |
for the sake of verification of key algorithms are utilized. |
Thanks to the properties of state-of-the-art microkernel multiserver operating |
system design (e.g. software component encapsulation and composition, fine-grained isolated |
components), we demonstrate that it should be feasible to successfully verify larger and more |
complex operating systems than in the case of monolithic designs. We use formal component |
architecture and behavior description for the closure. The final goal -- a formally verified |
operating system -- is the emerging property of the combination of the various methods. |
\medskip |
The contribution of this paper is the shift of focus from attempts to use a single |
``silver-bullet'' method for formal verification of an operating system to a combination |
of multiple methods supported by a suitable architecture of the operating system. |
The main benefit is a much larger coverage of the set of all hypothetical properties. |
We also argue that the approach should be suitable for the mainstream |
general-purpose operating systems in the near future, because they are gradually |
incorporating more microkernel-based features and fine-grained software components. |
Although the evaluation of the proposed approach on HelenOS is still work-in-progress, the |
preliminary results and estimates are promising. |
\medskip |
\noindent\textbf{Acknowledgments.} The author would like to express his gratitude to all contributors of |
the HelenOS project. Without their vision and dedication the work on this paper would be almost impossible |
This work was partially supported by the Ministry of Education of the Czech Republic |
(grant MSM\-0021620838). |
\begin{thebibliography}{99} |
\bibitem{billion}Bessey A., Block K., Chelf B., Chou A., Fulton B., Hallem S., Henri-Gros C., Kamsky A., McPeak S., Engler D.: \emph{A Few Billion Lines of Code Later: Using Static Analysis to Find Bugs in the Real World}, Communications of the ACM, Vol. 53 No. 2, pp 66-75, 2010 |
\bibitem{bp}Kofron J.: \emph{Checking Software Component Behavior Using Behavior Protocols and Spin}, in proceedings of Applied Computing 2007, Seoul, Korea, pp. 1513-1517, 2007 |
\bibitem{gcc}GCC, the GNU Compiler Collection, \texttt{http://gcc.gnu.org/} |
\bibitem{clang}Clang: a C language family frontend for LLVM, \texttt{http://clang.llvm.org/} |
\bibitem{clanganalyzer}Clang Static Analyzer, \texttt{http://clang-analyzer.llvm.org/} |
\bibitem{cocome}Bulej L., Bures T., Coupaye T., Decky M., Jezek P., Parizek P., Plasil F., Poch T., Rivierre N., Sery O., Tuma P.: \emph{CoCoME in Fractal}, chapter in The Common Component Modeling Example: Comparing Software Component Models, Springer-Verlag, LNCS 5153, 2008 |
\bibitem{coverity}Coverity, \texttt{http://scan.coverity.com/} |
\bibitem{procasor}Mencl V.: \emph{Deriving Behavior Specifications from Textual Use Cases}, in Proceedings of Workshop on Intelligent Technologies for Software Engineering (WITSE04, Sep 21, 2004, part of ASE 2004), Linz, Austria, pp. 331 - 341, Oesterreichische Computer Gesellschaft, 2004 |
\bibitem{framac}Frama-C, \texttt{http://frama-c.cea.fr/} |
\bibitem{c}Lawlis P. K: \emph{Guidelines for Choosing a Computer Language: Support for the Visionary Organization}, Ada Information Clearinghouse, \texttt{http://archive.adaic.com/docs/reports/lawlis/k.htm}, 1998 |
\bibitem{helenos}HelenOS Project, \texttt{http://www.helenos.org/} |
\bibitem{adl}Oplustil T.: \emph{Inheritance in Architecture Description Languages}, reviewed section of Proceedings of the Week of Doctoral Students 2003 conference (WDS 2003), Charles University, Prague, Czech Republic, 2003, pp. 124 - 131, 2003 |
\bibitem{marketshare}Operating System Market Share, \texttt{http://marketshare.hitslink.com/report\-.aspx?qprid=8\&qptimeframe=M\&qpsp=132}, retrieved on 2010-02-28 |
\bibitem{seL4}Klein G., Elphinstone K., Heiser G., Andronick J., Cock D., Derrin P., Elkaduwe D., Engelhardt K., Kolanski R., Norrish M., Sewell T., Tuch H., Winwood S.: \emph{seL4: Formal verification of an OS kernel}, Proceedings of the 22nd ACM Symposium on Operating Systems Principles, Big Sky, MT, USA, 2009 |
\bibitem{spin}Spin, \texttt{http://spinroot.com/} |
\bibitem{stanse}Stanse: Static Analysis Framework for C code, \texttt{http://stanse.fi.muni.cz/} |
\bibitem{valgrind}Valgrind, \texttt{http://valgrind.org/} |
\bibitem{vcc}VCC, \texttt{http://vcc.codeplex.com/} |
\end{thebibliography} |
\end{document} |
/papers/isarcs10/diag.eps |
---|
0,0 → 1,4261 |
%!PS-Adobe-3.0 EPSF-3.0 |
%%BoundingBox: 0 0 792 527 |
%%Pages: 0 |
%%Creator: Sun Microsystems, Inc. |
%%Title: none |
%%CreationDate: none |
%%LanguageLevel: 2 |
%%EndComments |
%%BeginProlog |
%%BeginResource: procset SDRes-Prolog 1.0 0 |
/b4_inc_state save def |
/dict_count countdictstack def |
/op_count count 1 sub def |
userdict begin |
0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin 10 setmiterlimit[] 0 setdash newpath |
/languagelevel where {pop languagelevel 1 ne {false setstrokeadjust false setoverprint} if} if |
/bdef {bind def} bind def |
/c {setrgbcolor} bdef |
/l {neg lineto} bdef |
/rl {neg rlineto} bdef |
/lc {setlinecap} bdef |
/lj {setlinejoin} bdef |
/lw {setlinewidth} bdef |
/ml {setmiterlimit} bdef |
/ld {setdash} bdef |
/m {neg moveto} bdef |
/ct {6 2 roll neg 6 2 roll neg 6 2 roll neg curveto} bdef |
/r {rotate} bdef |
/t {neg translate} bdef |
/s {scale} bdef |
/sw {show} bdef |
/gs {gsave} bdef |
/gr {grestore} bdef |
/f {findfont dup length dict begin |
{1 index /FID ne {def} {pop pop} ifelse} forall /Encoding ISOLatin1Encoding def |
currentdict end /NFont exch definefont pop /NFont findfont} bdef |
/p {closepath} bdef |
/sf {scalefont setfont} bdef |
/ef {eofill}bdef |
/pc {closepath stroke}bdef |
/ps {stroke}bdef |
/pum {matrix currentmatrix}bdef |
/pom {setmatrix}bdef |
/bs {/aString exch def /nXOfs exch def /nWidth exch def currentpoint nXOfs 0 rmoveto pum nWidth aString stringwidth pop div 1 scale aString show pom moveto} bdef |
%%EndResource |
%%EndProlog |
%%BeginSetup |
%%EndSetup |
%%Page: 1 1 |
%%BeginPageSetup |
%%EndPageSetup |
pum |
0.02834 0.02834 s |
0 -18593 t |
/tm matrix currentmatrix def |
gs |
0 0 m 27939 0 l 27939 18592 l 0 18592 l 0 0 l eoclip newpath |
gs |
0 0 m 27939 0 l 27939 18592 l 0 18592 l 0 0 l eoclip newpath |
1.000 1.000 0.800 c 12573 8016 m 9080 8016 l 9080 5476 l 16065 5476 l |
16065 8016 l 12573 8016 l p ef |
102 lw 1 lj 0.003 0.003 0.003 c 12573 8016 m 9080 8016 l 9080 5476 l 16065 5476 l |
16065 8016 l 12573 8016 l pc |
pum |
9945 6689 t |
47 0 m 47 -455 l 138 -455 l 138 -276 l 318 -276 l 318 -455 l 410 -455 l |
410 0 l 318 0 l 318 -199 l 138 -199 l 138 0 l 47 0 l p ef |
693 -105 m 780 -91 l 769 -59 751 -35 727 -18 ct 703 -1 673 7 637 7 ct 580 7 537 -12 510 -49 ct |
488 -79 477 -117 477 -163 ct 477 -218 491 -260 520 -291 ct 548 -322 585 -338 628 -338 ct |
677 -338 716 -322 744 -289 ct 772 -257 786 -207 785 -140 ct 566 -140 l 567 -114 574 -94 588 -80 ct |
601 -65 618 -58 638 -58 ct 651 -58 663 -62 672 -69 ct 681 -77 689 -89 693 -105 ct |
p |
698 -193 m 698 -219 691 -238 679 -251 ct 666 -264 651 -271 633 -271 ct 614 -271 599 -264 586 -250 ct |
574 -236 568 -217 568 -193 ct 698 -193 l p ef |
855 0 m 855 -455 l 942 -455 l 942 0 l 855 0 l p ef |
1222 -105 m 1309 -91 l 1298 -59 1280 -35 1256 -18 ct 1232 -1 1202 7 1166 7 ct |
1109 7 1066 -12 1039 -49 ct 1017 -79 1006 -117 1006 -163 ct 1006 -218 1020 -260 1049 -291 ct |
1077 -322 1114 -338 1157 -338 ct 1206 -338 1245 -322 1273 -289 ct 1301 -257 1315 -207 1314 -140 ct |
1095 -140 l 1096 -114 1103 -94 1117 -80 ct 1130 -65 1147 -58 1167 -58 ct 1180 -58 1192 -62 1201 -69 ct |
1210 -77 1218 -89 1222 -105 ct p |
1227 -193 m 1227 -219 1220 -238 1208 -251 ct 1195 -264 1180 -271 1162 -271 ct |
1143 -271 1128 -264 1115 -250 ct 1103 -236 1097 -217 1097 -193 ct 1227 -193 l |
p ef |
1683 0 m 1596 0 l 1596 -168 l 1596 -204 1594 -227 1590 -237 ct 1587 -248 1581 -256 1572 -262 ct |
1564 -267 1554 -270 1542 -270 ct 1527 -270 1513 -266 1501 -258 ct 1489 -250 1481 -239 1477 -225 ct |
1472 -211 1470 -186 1470 -149 ct 1470 0 l 1383 0 l 1383 -330 l 1464 -330 l |
1464 -281 l 1493 -318 1529 -337 1572 -337 ct 1592 -337 1609 -334 1625 -327 ct |
1641 -320 1653 -311 1661 -300 ct 1669 -289 1675 -277 1678 -263 ct 1681 -250 1683 -230 1683 -205 ct |
1683 0 l p ef |
1755 -224 m 1755 -271 1762 -310 1775 -341 ct 1786 -364 1800 -385 1818 -404 ct |
1836 -422 1855 -436 1876 -445 ct 1905 -457 1937 -463 1974 -463 ct 2041 -463 2095 -442 2135 -400 ct |
2175 -359 2196 -301 2196 -227 ct 2196 -153 2176 -96 2136 -54 ct 2096 -13 2042 8 1976 8 ct |
1908 8 1854 -13 1814 -54 ct 1775 -95 1755 -152 1755 -224 ct p |
1849 -228 m 1849 -176 1861 -137 1885 -110 ct 1909 -84 1939 -71 1975 -71 ct |
2012 -71 2042 -84 2065 -110 ct 2089 -136 2101 -176 2101 -229 ct 2101 -281 2089 -320 2066 -346 ct |
2044 -371 2013 -384 1975 -384 ct 1938 -384 1907 -371 1884 -345 ct 1861 -319 1849 -280 1849 -228 ct |
p ef |
2246 -148 m 2335 -157 l 2341 -127 2352 -105 2368 -91 ct 2384 -77 2407 -70 2434 -70 ct |
2464 -70 2486 -76 2501 -88 ct 2516 -101 2524 -116 2524 -132 ct 2524 -143 2521 -152 2514 -160 ct |
2508 -167 2497 -174 2481 -179 ct 2471 -183 2446 -190 2408 -199 ct 2359 -212 2324 -227 2304 -244 ct |
2276 -269 2262 -300 2262 -336 ct 2262 -359 2269 -381 2282 -401 ct 2295 -421 2314 -437 2339 -447 ct |
2364 -458 2393 -463 2428 -463 ct 2485 -463 2528 -450 2557 -425 ct 2586 -399 2601 -365 2603 -323 ct |
2511 -323 l 2507 -346 2498 -362 2485 -372 ct 2473 -382 2453 -387 2427 -387 ct |
2401 -387 2380 -381 2365 -371 ct 2355 -363 2350 -354 2350 -342 ct 2350 -331 2355 -322 2364 -315 ct |
2375 -305 2403 -295 2448 -284 ct 2493 -274 2526 -263 2547 -251 ct 2569 -240 2585 -225 2597 -205 ct |
2609 -186 2616 -161 2616 -133 ct 2616 -107 2608 -82 2594 -59 ct 2579 -37 2559 -20 2532 -9 ct |
2506 2 2473 8 2434 8 ct 2376 8 2332 -5 2301 -32 ct 2270 -59 2252 -97 2246 -148 ct |
p ef |
2839 -95 m 2926 -108 l 2930 -91 2938 -78 2949 -69 ct 2960 -60 2976 -56 2997 -56 ct |
3019 -56 3036 -60 3048 -68 ct 3055 -74 3059 -82 3059 -92 ct 3059 -98 3057 -104 3053 -108 ct |
3048 -112 3039 -116 3024 -120 ct 2953 -135 2909 -149 2890 -162 ct 2864 -180 2851 -205 2851 -236 ct |
2851 -265 2862 -289 2885 -308 ct 2907 -328 2942 -338 2990 -338 ct 3035 -338 3068 -330 3090 -316 ct |
3112 -301 3127 -279 3135 -250 ct 3053 -235 l 3050 -248 3043 -258 3033 -265 ct |
3023 -272 3009 -275 2991 -275 ct 2968 -275 2952 -272 2942 -265 ct 2935 -261 2932 -255 2932 -248 ct |
2932 -241 2935 -236 2941 -232 ct 2948 -226 2976 -218 3022 -207 ct 3068 -197 3101 -184 3119 -168 ct |
3137 -153 3146 -131 3146 -104 ct 3146 -73 3134 -47 3109 -26 ct 3083 -4 3046 7 2997 7 ct |
2952 7 2916 -2 2890 -20 ct 2864 -39 2847 -63 2839 -95 ct p ef |
3200 -170 m 3200 -199 3208 -227 3222 -254 ct 3236 -281 3256 -301 3282 -316 ct |
3309 -330 3338 -337 3370 -337 ct 3420 -337 3461 -321 3493 -289 ct 3524 -256 3540 -215 3540 -166 ct |
3540 -116 3524 -75 3492 -42 ct 3460 -9 3419 7 3371 7 ct 3340 7 3312 0 3284 -13 ct |
3257 -27 3236 -47 3222 -73 ct 3208 -100 3200 -132 3200 -170 ct p |
3290 -165 m 3290 -132 3297 -107 3313 -90 ct 3328 -73 3348 -64 3370 -64 ct 3393 -64 3412 -73 3428 -90 ct |
3443 -107 3451 -133 3451 -166 ct 3451 -198 3443 -223 3428 -240 ct 3412 -257 3393 -266 3370 -266 ct |
3348 -266 3328 -257 3313 -240 ct 3297 -223 3290 -198 3290 -165 ct p ef |
3826 0 m 3826 -50 l 3814 -32 3799 -18 3779 -8 ct 3759 2 3739 7 3717 7 ct 3695 7 3675 2 3658 -8 ct |
3640 -17 3627 -31 3620 -49 ct 3612 -66 3608 -90 3608 -121 ct 3608 -330 l 3695 -330 l |
3695 -179 l 3695 -132 3696 -104 3700 -93 ct 3703 -83 3709 -75 3717 -69 ct 3726 -62 3736 -59 3749 -59 ct |
3764 -59 3778 -63 3789 -72 ct 3801 -80 3809 -90 3814 -102 ct 3818 -114 3820 -144 3820 -191 ct |
3820 -330 l 3907 -330 l 3907 0 l 3826 0 l p ef |
4083 0 m 3996 0 l 3996 -330 l 4077 -330 l 4077 -283 l 4091 -305 4103 -319 4114 -326 ct |
4125 -333 4138 -337 4152 -337 ct 4172 -337 4191 -332 4209 -321 ct 4182 -245 l |
4168 -254 4154 -259 4141 -259 ct 4129 -259 4119 -255 4110 -249 ct 4102 -242 4095 -230 4090 -212 ct |
4085 -195 4083 -158 4083 -102 ct 4083 0 l p ef |
4532 -233 m 4446 -217 l 4443 -234 4436 -247 4426 -256 ct 4416 -265 4403 -269 4386 -269 ct |
4365 -269 4347 -262 4334 -246 ct 4321 -231 4315 -206 4315 -171 ct 4315 -132 4322 -104 4335 -88 ct |
4348 -72 4365 -64 4388 -64 ct 4404 -64 4418 -69 4428 -78 ct 4439 -88 4446 -104 4450 -127 ct |
4536 -112 l 4527 -73 4510 -43 4485 -23 ct 4460 -3 4426 7 4383 7 ct 4335 7 4297 -8 4268 -39 ct |
4240 -69 4225 -111 4225 -165 ct 4225 -219 4240 -262 4268 -292 ct 4297 -322 4336 -338 4385 -338 ct |
4425 -338 4457 -329 4481 -312 ct 4504 -294 4521 -268 4532 -233 ct p ef |
4787 -105 m 4874 -91 l 4863 -59 4845 -35 4821 -18 ct 4797 -1 4767 7 4731 7 ct |
4674 7 4631 -12 4604 -49 ct 4582 -79 4571 -117 4571 -163 ct 4571 -218 4585 -260 4614 -291 ct |
4642 -322 4679 -338 4722 -338 ct 4771 -338 4810 -322 4838 -289 ct 4866 -257 4880 -207 4879 -140 ct |
4660 -140 l 4661 -114 4668 -94 4682 -80 ct 4695 -65 4712 -58 4732 -58 ct 4745 -58 4757 -62 4766 -69 ct |
4775 -77 4783 -89 4787 -105 ct p |
4792 -193 m 4792 -219 4785 -238 4773 -251 ct 4760 -264 4745 -271 4727 -271 ct |
4708 -271 4693 -264 4680 -250 ct 4668 -236 4662 -217 4662 -193 ct 4792 -193 l |
p ef |
4917 -95 m 5004 -108 l 5008 -91 5016 -78 5027 -69 ct 5038 -60 5054 -56 5075 -56 ct |
5097 -56 5114 -60 5126 -68 ct 5133 -74 5137 -82 5137 -92 ct 5137 -98 5135 -104 5131 -108 ct |
5126 -112 5117 -116 5102 -120 ct 5031 -135 4987 -149 4968 -162 ct 4942 -180 4929 -205 4929 -236 ct |
4929 -265 4940 -289 4963 -308 ct 4985 -328 5020 -338 5068 -338 ct 5113 -338 5146 -330 5168 -316 ct |
5190 -301 5205 -279 5213 -250 ct 5131 -235 l 5128 -248 5121 -258 5111 -265 ct |
5101 -272 5087 -275 5069 -275 ct 5046 -275 5030 -272 5020 -265 ct 5013 -261 5010 -255 5010 -248 ct |
5010 -241 5013 -236 5019 -232 ct 5026 -226 5054 -218 5100 -207 ct 5146 -197 5179 -184 5197 -168 ct |
5215 -153 5224 -131 5224 -104 ct 5224 -73 5212 -47 5187 -26 ct 5161 -4 5124 7 5075 7 ct |
5030 7 4994 -2 4968 -20 ct 4942 -39 4925 -63 4917 -95 ct p ef |
pom |
pum |
9725 7273 t |
290 -124 m 337 -112 l 327 -74 310 -44 284 -24 ct 259 -4 228 6 191 6 ct 153 6 122 -2 98 -17 ct |
74 -33 56 -55 43 -85 ct 31 -114 25 -146 25 -180 ct 25 -217 32 -249 46 -276 ct 60 -304 80 -324 106 -339 ct |
132 -353 160 -360 192 -360 ct 227 -360 257 -351 281 -333 ct 305 -315 322 -290 331 -257 ct |
285 -246 l 277 -272 265 -291 249 -302 ct 234 -314 214 -320 191 -320 ct 163 -320 141 -313 122 -300 ct |
104 -287 91 -270 84 -248 ct 77 -226 73 -203 73 -180 ct 73 -150 77 -124 86 -101 ct |
95 -79 108 -62 127 -51 ct 145 -40 165 -34 187 -34 ct 213 -34 235 -42 254 -57 ct |
272 -72 284 -94 290 -124 ct p ef |
387 -82 m 429 -86 l 432 -66 439 -52 449 -43 ct 459 -34 472 -30 487 -30 ct |
501 -30 512 -33 522 -39 ct 533 -45 541 -53 547 -63 ct 554 -74 559 -87 563 -105 ct |
568 -122 570 -140 570 -158 ct 570 -160 570 -163 570 -167 ct 561 -153 549 -142 534 -133 ct |
519 -124 503 -120 485 -120 ct 456 -120 431 -131 411 -152 ct 391 -173 381 -201 381 -236 ct |
381 -272 391 -300 412 -322 ct 433 -344 460 -355 492 -355 ct 515 -355 536 -349 555 -336 ct |
574 -324 588 -306 598 -284 ct 608 -261 613 -227 613 -184 ct 613 -139 608 -103 598 -76 ct |
589 -49 574 -29 555 -15 ct 535 -1 512 6 486 6 ct 459 6 436 -2 419 -17 ct 401 -32 391 -54 387 -82 ct |
p |
565 -238 m 565 -263 558 -283 545 -297 ct 532 -312 516 -319 497 -319 ct 478 -319 461 -311 447 -295 ct |
432 -280 425 -259 425 -234 ct 425 -212 432 -193 446 -179 ct 459 -165 476 -158 496 -158 ct |
516 -158 532 -165 545 -179 ct 558 -193 565 -213 565 -238 ct p ef |
662 -82 m 704 -86 l 707 -66 714 -52 724 -43 ct 734 -34 747 -30 762 -30 ct |
776 -30 787 -33 797 -39 ct 808 -45 816 -53 822 -63 ct 829 -74 834 -87 838 -105 ct |
843 -122 845 -140 845 -158 ct 845 -160 845 -163 845 -167 ct 836 -153 824 -142 809 -133 ct |
794 -124 778 -120 760 -120 ct 731 -120 706 -131 686 -152 ct 666 -173 656 -201 656 -236 ct |
656 -272 666 -300 687 -322 ct 708 -344 735 -355 767 -355 ct 790 -355 811 -349 830 -336 ct |
849 -324 863 -306 873 -284 ct 883 -261 888 -227 888 -184 ct 888 -139 883 -103 873 -76 ct |
864 -49 849 -29 830 -15 ct 810 -1 787 6 761 6 ct 734 6 711 -2 694 -17 ct 676 -32 666 -54 662 -82 ct |
p |
840 -238 m 840 -263 833 -283 820 -297 ct 807 -312 791 -319 772 -319 ct 753 -319 736 -311 722 -295 ct |
707 -280 700 -259 700 -234 ct 700 -212 707 -193 721 -179 ct 734 -165 751 -158 771 -158 ct |
791 -158 807 -165 820 -179 ct 833 -193 840 -213 840 -238 ct p ef |
1130 0 m 1051 -256 l 1096 -256 l 1137 -108 l 1152 -53 l 1153 -56 1157 -74 1166 -106 ct |
1206 -256 l 1251 -256 l 1289 -108 l 1302 -59 l 1317 -108 l 1361 -256 l |
1403 -256 l 1323 0 l 1278 0 l 1237 -153 l 1227 -197 l 1175 0 l 1130 0 l |
p ef |
1443 -304 m 1443 -354 l 1486 -354 l 1486 -304 l 1443 -304 l p |
1443 0 m 1443 -256 l 1486 -256 l 1486 0 l 1443 0 l p ef |
1647 -39 m 1654 -1 l 1641 2 1630 3 1621 3 ct 1605 3 1593 0 1584 -4 ct 1575 -9 1569 -16 1566 -24 ct |
1562 -32 1561 -49 1561 -75 ct 1561 -223 l 1529 -223 l 1529 -257 l 1561 -257 l |
1561 -320 l 1604 -346 l 1604 -257 l 1647 -257 l 1647 -223 l 1604 -223 l |
1604 -73 l 1604 -61 1604 -53 1606 -49 ct 1608 -46 1610 -43 1613 -41 ct 1617 -39 1622 -38 1628 -38 ct |
1633 -38 1639 -38 1647 -39 ct p ef |
1692 0 m 1692 -354 l 1735 -354 l 1735 -227 l 1755 -250 1781 -262 1812 -262 ct |
1831 -262 1847 -258 1861 -251 ct 1875 -243 1885 -233 1891 -220 ct 1897 -207 1900 -187 1900 -162 ct |
1900 0 l 1857 0 l 1857 -162 l 1857 -184 1852 -200 1843 -210 ct 1833 -220 1820 -225 1803 -225 ct |
1790 -225 1778 -221 1766 -215 ct 1755 -208 1747 -199 1742 -187 ct 1737 -176 1735 -160 1735 -140 ct |
1735 0 l 1692 0 l p ef |
2278 -139 m 2278 -180 l 2427 -180 l 2427 -49 l 2404 -31 2381 -17 2356 -8 ct |
2332 1 2307 6 2281 6 ct 2246 6 2215 -1 2186 -16 ct 2158 -31 2136 -53 2122 -81 ct |
2108 -109 2100 -141 2100 -175 ct 2100 -210 2107 -242 2122 -272 ct 2136 -302 2157 -324 2184 -338 ct |
2211 -353 2242 -360 2277 -360 ct 2303 -360 2326 -356 2347 -348 ct 2367 -339 2384 -328 2395 -313 ct |
2407 -298 2416 -279 2422 -255 ct 2380 -243 l 2375 -261 2368 -275 2360 -286 ct |
2352 -296 2341 -304 2326 -311 ct 2312 -317 2295 -320 2278 -320 ct 2256 -320 2238 -317 2222 -310 ct |
2207 -304 2194 -295 2184 -284 ct 2175 -274 2167 -262 2162 -249 ct 2153 -228 2149 -204 2149 -178 ct |
2149 -147 2154 -120 2165 -99 ct 2176 -78 2191 -62 2212 -52 ct 2233 -41 2255 -36 2278 -36 ct |
2299 -36 2318 -40 2338 -48 ct 2357 -56 2372 -64 2382 -73 ct 2382 -139 l 2278 -139 l |
p ef |
2498 0 m 2498 -354 l 2546 -354 l 2731 -76 l 2731 -354 l 2776 -354 l |
2776 0 l 2728 0 l 2543 -278 l 2543 0 l 2498 0 l p ef |
3089 -354 m 3136 -354 l 3136 -149 l 3136 -114 3132 -86 3124 -65 ct 3116 -44 3101 -27 3080 -14 ct |
3059 -1 3032 6 2998 6 ct 2965 6 2938 0 2916 -11 ct 2895 -23 2880 -39 2871 -61 ct |
2862 -82 2858 -112 2858 -149 ct 2858 -354 l 2905 -354 l 2905 -150 l 2905 -119 2907 -96 2913 -82 ct |
2919 -67 2929 -56 2943 -48 ct 2957 -40 2974 -36 2994 -36 ct 3028 -36 3053 -44 3067 -60 ct |
3082 -75 3089 -105 3089 -150 ct 3089 -354 l p ef |
3527 -82 m 3572 -77 l 3565 -51 3552 -30 3532 -16 ct 3513 -1 3489 6 3459 6 ct |
3422 6 3392 -6 3370 -29 ct 3348 -52 3337 -84 3337 -126 ct 3337 -169 3348 -202 3370 -226 ct |
3393 -250 3421 -262 3457 -262 ct 3491 -262 3519 -250 3541 -227 ct 3562 -204 3573 -171 3573 -129 ct |
3573 -126 3573 -122 3573 -117 ct 3382 -117 l 3384 -89 3392 -67 3406 -52 ct |
3420 -37 3438 -30 3459 -30 ct 3475 -30 3489 -34 3500 -42 ct 3511 -51 3520 -64 3527 -82 ct |
p |
3384 -153 m 3527 -153 l 3525 -174 3520 -190 3511 -201 ct 3497 -218 3479 -226 3457 -226 ct |
3437 -226 3421 -219 3407 -206 ct 3393 -193 3386 -175 3384 -153 ct p ef |
3598 0 m 3691 -133 l 3605 -256 l 3659 -256 l 3698 -196 l 3706 -185 3712 -175 3716 -167 ct |
3723 -178 3730 -187 3736 -196 ct 3779 -256 l 3831 -256 l 3742 -136 l 3837 0 l |
3784 0 l 3731 -80 l 3718 -101 l 3650 0 l 3598 0 l p ef |
3971 -39 m 3978 -1 l 3965 2 3954 3 3945 3 ct 3929 3 3917 0 3908 -4 ct 3899 -9 3893 -16 3890 -24 ct |
3886 -32 3885 -49 3885 -75 ct 3885 -223 l 3853 -223 l 3853 -257 l 3885 -257 l |
3885 -320 l 3928 -346 l 3928 -257 l 3971 -257 l 3971 -223 l 3928 -223 l |
3928 -73 l 3928 -61 3928 -53 3930 -49 ct 3932 -46 3934 -43 3937 -41 ct 3941 -39 3946 -38 3952 -38 ct |
3957 -38 3963 -38 3971 -39 ct p ef |
4192 -82 m 4237 -77 l 4230 -51 4217 -30 4197 -16 ct 4178 -1 4154 6 4124 6 ct |
4087 6 4057 -6 4035 -29 ct 4013 -52 4002 -84 4002 -126 ct 4002 -169 4013 -202 4035 -226 ct |
4058 -250 4086 -262 4122 -262 ct 4156 -262 4184 -250 4206 -227 ct 4227 -204 4238 -171 4238 -129 ct |
4238 -126 4238 -122 4238 -117 ct 4047 -117 l 4049 -89 4057 -67 4071 -52 ct |
4085 -37 4103 -30 4124 -30 ct 4140 -30 4154 -34 4165 -42 ct 4176 -51 4185 -64 4192 -82 ct |
p |
4049 -153 m 4192 -153 l 4190 -174 4185 -190 4176 -201 ct 4162 -218 4144 -226 4122 -226 ct |
4102 -226 4086 -219 4072 -206 ct 4058 -193 4051 -175 4049 -153 ct p ef |
4292 0 m 4292 -256 l 4331 -256 l 4331 -220 l 4349 -248 4377 -262 4412 -262 ct |
4428 -262 4442 -259 4455 -254 ct 4468 -248 4477 -241 4484 -232 ct 4490 -223 4495 -212 4497 -200 ct |
4499 -192 4500 -178 4500 -158 ct 4500 0 l 4456 0 l 4456 -156 l 4456 -174 4455 -187 4451 -196 ct |
4448 -204 4442 -211 4433 -217 ct 4425 -222 4415 -224 4403 -224 ct 4385 -224 4369 -218 4355 -207 ct |
4342 -195 4335 -173 4335 -140 ct 4335 0 l 4292 0 l p ef |
4549 -76 m 4592 -83 l 4595 -66 4601 -53 4612 -43 ct 4623 -34 4639 -30 4658 -30 ct |
4678 -30 4693 -34 4703 -42 ct 4713 -50 4717 -60 4717 -70 ct 4717 -80 4713 -88 4705 -94 ct |
4699 -97 4684 -102 4660 -108 ct 4628 -116 4606 -123 4594 -129 ct 4582 -135 4572 -143 4566 -154 ct |
4560 -164 4556 -175 4556 -188 ct 4556 -199 4559 -210 4564 -220 ct 4570 -229 4577 -237 4586 -244 ct |
4592 -249 4602 -253 4613 -257 ct 4625 -260 4637 -262 4651 -262 ct 4671 -262 4688 -259 4704 -253 ct |
4719 -247 4730 -239 4737 -230 ct 4745 -220 4750 -206 4752 -190 ct 4710 -184 l |
4708 -197 4702 -208 4693 -215 ct 4684 -222 4671 -226 4654 -226 ct 4634 -226 4620 -223 4611 -216 ct |
4603 -210 4598 -202 4598 -193 ct 4598 -187 4600 -182 4604 -178 ct 4607 -173 4613 -169 4620 -166 ct |
4625 -165 4637 -161 4659 -155 ct 4689 -147 4711 -140 4723 -135 ct 4735 -130 4745 -122 4752 -112 ct |
4758 -102 4762 -90 4762 -75 ct 4762 -61 4758 -47 4749 -34 ct 4741 -21 4729 -11 4713 -4 ct |
4697 2 4679 6 4659 6 ct 4625 6 4600 -1 4583 -15 ct 4565 -29 4554 -49 4549 -76 ct |
p ef |
4817 -304 m 4817 -354 l 4860 -354 l 4860 -304 l 4817 -304 l p |
4817 0 m 4817 -256 l 4860 -256 l 4860 0 l 4817 0 l p ef |
4910 -128 m 4910 -175 4924 -211 4950 -233 ct 4972 -252 4999 -262 5031 -262 ct |
5066 -262 5095 -250 5117 -227 ct 5139 -204 5150 -172 5150 -132 ct 5150 -99 5145 -73 5136 -54 ct |
5126 -35 5111 -20 5092 -10 ct 5074 1 5053 6 5031 6 ct 4995 6 4966 -6 4944 -29 ct |
4921 -52 4910 -85 4910 -128 ct p |
4955 -128 m 4955 -95 4962 -71 4977 -54 ct 4991 -38 5009 -30 5031 -30 ct 5052 -30 5070 -38 5084 -54 ct |
5099 -71 5106 -96 5106 -129 ct 5106 -161 5099 -185 5084 -201 ct 5070 -218 5052 -226 5031 -226 ct |
5009 -226 4991 -218 4977 -202 ct 4962 -185 4955 -161 4955 -128 ct p ef |
5202 0 m 5202 -256 l 5241 -256 l 5241 -220 l 5259 -248 5287 -262 5322 -262 ct |
5338 -262 5352 -259 5365 -254 ct 5378 -248 5387 -241 5394 -232 ct 5400 -223 5405 -212 5407 -200 ct |
5409 -192 5410 -178 5410 -158 ct 5410 0 l 5366 0 l 5366 -156 l 5366 -174 5365 -187 5361 -196 ct |
5358 -204 5352 -211 5343 -217 ct 5335 -222 5325 -224 5313 -224 ct 5295 -224 5279 -218 5265 -207 ct |
5252 -195 5245 -173 5245 -140 ct 5245 0 l 5202 0 l p ef |
5459 -76 m 5502 -83 l 5505 -66 5511 -53 5522 -43 ct 5533 -34 5549 -30 5568 -30 ct |
5588 -30 5603 -34 5613 -42 ct 5623 -50 5627 -60 5627 -70 ct 5627 -80 5623 -88 5615 -94 ct |
5609 -97 5594 -102 5570 -108 ct 5538 -116 5516 -123 5504 -129 ct 5492 -135 5482 -143 5476 -154 ct |
5470 -164 5466 -175 5466 -188 ct 5466 -199 5469 -210 5474 -220 ct 5480 -229 5487 -237 5496 -244 ct |
5502 -249 5512 -253 5523 -257 ct 5535 -260 5547 -262 5561 -262 ct 5581 -262 5598 -259 5614 -253 ct |
5629 -247 5640 -239 5647 -230 ct 5655 -220 5660 -206 5662 -190 ct 5620 -184 l |
5618 -197 5612 -208 5603 -215 ct 5594 -222 5581 -226 5564 -226 ct 5544 -226 5530 -223 5521 -216 ct |
5513 -210 5508 -202 5508 -193 ct 5508 -187 5510 -182 5514 -178 ct 5517 -173 5523 -169 5530 -166 ct |
5535 -165 5547 -161 5569 -155 ct 5599 -147 5621 -140 5633 -135 ct 5645 -130 5655 -122 5662 -112 ct |
5668 -102 5672 -90 5672 -75 ct 5672 -61 5668 -47 5659 -34 ct 5651 -21 5639 -11 5623 -4 ct |
5607 2 5589 6 5569 6 ct 5535 6 5510 -1 5493 -15 ct 5475 -29 5464 -49 5459 -76 ct |
p ef |
pom |
1.000 0.800 0.601 c 6082 13816 m 2097 13816 l 2097 11276 l 10066 11276 l |
10066 13816 l 6082 13816 l p ef |
0.003 0.003 0.503 c 6082 13816 m 2097 13816 l 2097 11276 l 10066 11276 l |
10066 13816 l 6082 13816 l pc |
pum |
2413 12489 t |
0.003 0.003 0.003 c 456 1 m 356 1 l 317 -103 l 135 -103 l 97 1 l 0 1 l |
177 -455 l 274 -455 l 456 1 l p |
287 -180 m 224 -348 l 163 -180 l 287 -180 l p ef |
586 0 m 499 0 l 499 -330 l 580 -330 l 580 -283 l 594 -305 606 -319 617 -326 ct |
628 -333 641 -337 655 -337 ct 675 -337 694 -332 712 -321 ct 685 -245 l 671 -254 657 -259 644 -259 ct |
632 -259 622 -255 613 -249 ct 605 -242 598 -230 593 -212 ct 588 -195 586 -158 586 -102 ct |
586 0 l p ef |
1036 -233 m 950 -217 l 947 -234 940 -247 930 -256 ct 920 -265 907 -269 890 -269 ct |
869 -269 851 -262 838 -246 ct 825 -231 819 -206 819 -171 ct 819 -132 826 -104 839 -88 ct |
852 -72 869 -64 892 -64 ct 908 -64 922 -69 932 -78 ct 943 -88 950 -104 954 -127 ct |
1040 -112 l 1031 -73 1014 -43 989 -23 ct 964 -3 930 7 887 7 ct 839 7 801 -8 772 -39 ct |
744 -69 729 -111 729 -165 ct 729 -219 744 -262 772 -292 ct 801 -322 840 -338 889 -338 ct |
929 -338 961 -329 985 -312 ct 1008 -294 1025 -268 1036 -233 ct p ef |
1186 -455 m 1186 -288 l 1215 -321 1248 -337 1287 -337 ct 1307 -337 1325 -333 1341 -326 ct |
1358 -318 1370 -309 1378 -297 ct 1386 -286 1392 -273 1395 -259 ct 1398 -245 1399 -223 1399 -193 ct |
1399 0 l 1312 0 l 1312 -174 l 1312 -209 1310 -231 1307 -240 ct 1304 -249 1298 -257 1289 -262 ct |
1281 -268 1271 -270 1258 -270 ct 1244 -270 1231 -267 1219 -260 ct 1208 -253 1200 -242 1194 -228 ct |
1189 -214 1186 -193 1186 -165 ct 1186 0 l 1099 0 l 1099 -455 l 1186 -455 l |
p ef |
1490 -374 m 1490 -455 l 1577 -455 l 1577 -374 l 1490 -374 l p |
1490 0 m 1490 -330 l 1577 -330 l 1577 0 l 1490 0 l p ef |
1818 -330 m 1818 -260 l 1758 -260 l 1758 -128 l 1758 -101 1759 -85 1760 -81 ct |
1761 -76 1763 -73 1768 -70 ct 1772 -67 1776 -65 1782 -65 ct 1790 -65 1802 -68 1817 -74 ct |
1825 -6 l 1804 3 1782 7 1756 7 ct 1740 7 1726 4 1713 -1 ct 1701 -6 1692 -13 1686 -21 ct |
1680 -30 1676 -41 1673 -55 ct 1672 -66 1671 -86 1671 -117 ct 1671 -260 l 1631 -260 l |
1631 -330 l 1671 -330 l 1671 -395 l 1758 -446 l 1758 -330 l 1818 -330 l |
p ef |
2069 -105 m 2156 -91 l 2145 -59 2127 -35 2103 -18 ct 2079 -1 2049 7 2013 7 ct |
1956 7 1913 -12 1886 -49 ct 1864 -79 1853 -117 1853 -163 ct 1853 -218 1867 -260 1896 -291 ct |
1924 -322 1961 -338 2004 -338 ct 2053 -338 2092 -322 2120 -289 ct 2148 -257 2162 -207 2161 -140 ct |
1942 -140 l 1943 -114 1950 -94 1964 -80 ct 1977 -65 1994 -58 2014 -58 ct 2027 -58 2039 -62 2048 -69 ct |
2057 -77 2065 -89 2069 -105 ct p |
2074 -193 m 2074 -219 2067 -238 2055 -251 ct 2042 -264 2027 -271 2009 -271 ct |
1990 -271 1975 -264 1962 -250 ct 1950 -236 1944 -217 1944 -193 ct 2074 -193 l |
p ef |
2517 -233 m 2431 -217 l 2428 -234 2421 -247 2411 -256 ct 2401 -265 2388 -269 2371 -269 ct |
2350 -269 2332 -262 2319 -246 ct 2306 -231 2300 -206 2300 -171 ct 2300 -132 2307 -104 2320 -88 ct |
2333 -72 2350 -64 2373 -64 ct 2389 -64 2403 -69 2413 -78 ct 2424 -88 2431 -104 2435 -127 ct |
2521 -112 l 2512 -73 2495 -43 2470 -23 ct 2445 -3 2411 7 2368 7 ct 2320 7 2282 -8 2253 -39 ct |
2225 -69 2210 -111 2210 -165 ct 2210 -219 2225 -262 2253 -292 ct 2282 -322 2321 -338 2370 -338 ct |
2410 -338 2442 -329 2466 -312 ct 2489 -294 2506 -268 2517 -233 ct p ef |
2733 -330 m 2733 -260 l 2673 -260 l 2673 -128 l 2673 -101 2674 -85 2675 -81 ct |
2676 -76 2678 -73 2683 -70 ct 2687 -67 2691 -65 2697 -65 ct 2705 -65 2717 -68 2732 -74 ct |
2740 -6 l 2719 3 2697 7 2671 7 ct 2655 7 2641 4 2628 -1 ct 2616 -6 2607 -13 2601 -21 ct |
2595 -30 2591 -41 2588 -55 ct 2587 -66 2586 -86 2586 -117 ct 2586 -260 l 2546 -260 l |
2546 -330 l 2586 -330 l 2586 -395 l 2673 -446 l 2673 -330 l 2733 -330 l |
p ef |
3009 0 m 3009 -50 l 2997 -32 2982 -18 2962 -8 ct 2942 2 2922 7 2900 7 ct 2878 7 2858 2 2841 -8 ct |
2823 -17 2810 -31 2803 -49 ct 2795 -66 2791 -90 2791 -121 ct 2791 -330 l 2878 -330 l |
2878 -179 l 2878 -132 2879 -104 2883 -93 ct 2886 -83 2892 -75 2900 -69 ct 2909 -62 2919 -59 2932 -59 ct |
2947 -59 2961 -63 2972 -72 ct 2984 -80 2992 -90 2997 -102 ct 3001 -114 3003 -144 3003 -191 ct |
3003 -330 l 3090 -330 l 3090 0 l 3009 0 l p ef |
3266 0 m 3179 0 l 3179 -330 l 3260 -330 l 3260 -283 l 3274 -305 3286 -319 3297 -326 ct |
3308 -333 3321 -337 3335 -337 ct 3355 -337 3374 -332 3392 -321 ct 3365 -245 l |
3351 -254 3337 -259 3324 -259 ct 3312 -259 3302 -255 3293 -249 ct 3285 -242 3278 -230 3273 -212 ct |
3268 -195 3266 -158 3266 -102 ct 3266 0 l p ef |
3618 -105 m 3705 -91 l 3694 -59 3676 -35 3652 -18 ct 3628 -1 3598 7 3562 7 ct |
3505 7 3462 -12 3435 -49 ct 3413 -79 3402 -117 3402 -163 ct 3402 -218 3416 -260 3445 -291 ct |
3473 -322 3510 -338 3553 -338 ct 3602 -338 3641 -322 3669 -289 ct 3697 -257 3711 -207 3710 -140 ct |
3491 -140 l 3492 -114 3499 -94 3513 -80 ct 3526 -65 3543 -58 3563 -58 ct 3576 -58 3588 -62 3597 -69 ct |
3606 -77 3614 -89 3618 -105 ct p |
3623 -193 m 3623 -219 3616 -238 3604 -251 ct 3591 -264 3576 -271 3558 -271 ct |
3539 -271 3524 -264 3511 -250 ct 3499 -236 3493 -217 3493 -193 ct 3623 -193 l |
p ef |
4260 0 m 4179 0 l 4179 -49 l 4165 -30 4149 -16 4131 -7 ct 4113 2 4094 7 4076 7 ct |
4038 7 4005 -8 3979 -39 ct 3952 -69 3938 -112 3938 -167 ct 3938 -223 3951 -265 3977 -294 ct |
4004 -323 4037 -338 4077 -338 ct 4114 -338 4146 -322 4172 -292 ct 4172 -455 l |
4260 -455 l 4260 0 l p |
4027 -173 m 4027 -137 4032 -112 4042 -96 ct 4056 -73 4075 -62 4101 -62 ct 4121 -62 4138 -70 4152 -88 ct |
4166 -105 4173 -130 4173 -164 ct 4173 -202 4166 -229 4152 -246 ct 4139 -263 4121 -271 4100 -271 ct |
4079 -271 4062 -263 4048 -246 ct 4034 -230 4027 -205 4027 -173 ct p ef |
4537 -105 m 4624 -91 l 4613 -59 4595 -35 4571 -18 ct 4547 -1 4517 7 4481 7 ct |
4424 7 4381 -12 4354 -49 ct 4332 -79 4321 -117 4321 -163 ct 4321 -218 4335 -260 4364 -291 ct |
4392 -322 4429 -338 4472 -338 ct 4521 -338 4560 -322 4588 -289 ct 4616 -257 4630 -207 4629 -140 ct |
4410 -140 l 4411 -114 4418 -94 4432 -80 ct 4445 -65 4462 -58 4482 -58 ct 4495 -58 4507 -62 4516 -69 ct |
4525 -77 4533 -89 4537 -105 ct p |
4542 -193 m 4542 -219 4535 -238 4523 -251 ct 4510 -264 4495 -271 4477 -271 ct |
4458 -271 4443 -264 4430 -250 ct 4418 -236 4412 -217 4412 -193 ct 4542 -193 l |
p ef |
4667 -95 m 4754 -108 l 4758 -91 4766 -78 4777 -69 ct 4788 -60 4804 -56 4825 -56 ct |
4847 -56 4864 -60 4876 -68 ct 4883 -74 4887 -82 4887 -92 ct 4887 -98 4885 -104 4881 -108 ct |
4876 -112 4867 -116 4852 -120 ct 4781 -135 4737 -149 4718 -162 ct 4692 -180 4679 -205 4679 -236 ct |
4679 -265 4690 -289 4713 -308 ct 4735 -328 4770 -338 4818 -338 ct 4863 -338 4896 -330 4918 -316 ct |
4940 -301 4955 -279 4963 -250 ct 4881 -235 l 4878 -248 4871 -258 4861 -265 ct |
4851 -272 4837 -275 4819 -275 ct 4796 -275 4780 -272 4770 -265 ct 4763 -261 4760 -255 4760 -248 ct |
4760 -241 4763 -236 4769 -232 ct 4776 -226 4804 -218 4850 -207 ct 4896 -197 4929 -184 4947 -168 ct |
4965 -153 4974 -131 4974 -104 ct 4974 -73 4962 -47 4937 -26 ct 4911 -4 4874 7 4825 7 ct |
4780 7 4744 -2 4718 -20 ct 4692 -39 4675 -63 4667 -95 ct p ef |
5337 -233 m 5251 -217 l 5248 -234 5241 -247 5231 -256 ct 5221 -265 5208 -269 5191 -269 ct |
5170 -269 5152 -262 5139 -246 ct 5126 -231 5120 -206 5120 -171 ct 5120 -132 5127 -104 5140 -88 ct |
5153 -72 5170 -64 5193 -64 ct 5209 -64 5223 -69 5233 -78 ct 5244 -88 5251 -104 5255 -127 ct |
5341 -112 l 5332 -73 5315 -43 5290 -23 ct 5265 -3 5231 7 5188 7 ct 5140 7 5102 -8 5073 -39 ct |
5045 -69 5030 -111 5030 -165 ct 5030 -219 5045 -262 5073 -292 ct 5102 -322 5141 -338 5190 -338 ct |
5230 -338 5262 -329 5286 -312 ct 5309 -294 5326 -268 5337 -233 ct p ef |
5484 0 m 5397 0 l 5397 -330 l 5478 -330 l 5478 -283 l 5492 -305 5504 -319 5515 -326 ct |
5526 -333 5539 -337 5553 -337 ct 5573 -337 5592 -332 5610 -321 ct 5583 -245 l |
5569 -254 5555 -259 5542 -259 ct 5530 -259 5520 -255 5511 -249 ct 5503 -242 5496 -230 5491 -212 ct |
5486 -195 5484 -158 5484 -102 ct 5484 0 l p ef |
5647 -374 m 5647 -455 l 5734 -455 l 5734 -374 l 5647 -374 l p |
5647 0 m 5647 -330 l 5734 -330 l 5734 0 l 5647 0 l p ef |
5822 -330 m 5903 -330 l 5903 -281 l 5914 -298 5928 -311 5946 -322 ct 5964 -332 5984 -337 6006 -337 ct |
6044 -337 6077 -322 6103 -292 ct 6130 -262 6143 -220 6143 -167 ct 6143 -112 6130 -69 6103 -39 ct |
6076 -8 6044 7 6005 7 ct 5987 7 5971 3 5956 -4 ct 5941 -11 5926 -24 5909 -41 ct |
5909 125 l 5822 125 l 5822 -330 l p |
5908 -171 m 5908 -134 5916 -106 5930 -89 ct 5945 -71 5963 -62 5984 -62 ct 6004 -62 6021 -70 6034 -87 ct |
6048 -103 6055 -129 6055 -166 ct 6055 -201 6048 -226 6034 -243 ct 6020 -260 6003 -268 5982 -268 ct |
5961 -268 5943 -260 5929 -244 ct 5915 -227 5908 -203 5908 -171 ct p ef |
6365 -330 m 6365 -260 l 6305 -260 l 6305 -128 l 6305 -101 6306 -85 6307 -81 ct |
6308 -76 6310 -73 6315 -70 ct 6319 -67 6323 -65 6329 -65 ct 6337 -65 6349 -68 6364 -74 ct |
6372 -6 l 6351 3 6329 7 6303 7 ct 6287 7 6273 4 6260 -1 ct 6248 -6 6239 -13 6233 -21 ct |
6227 -30 6223 -41 6220 -55 ct 6219 -66 6218 -86 6218 -117 ct 6218 -260 l 6178 -260 l |
6178 -330 l 6218 -330 l 6218 -395 l 6305 -446 l 6305 -330 l 6365 -330 l |
p ef |
6426 -374 m 6426 -455 l 6513 -455 l 6513 -374 l 6426 -374 l p |
6426 0 m 6426 -330 l 6513 -330 l 6513 0 l 6426 0 l p ef |
6582 -170 m 6582 -199 6590 -227 6604 -254 ct 6618 -281 6638 -301 6664 -316 ct |
6691 -330 6720 -337 6752 -337 ct 6802 -337 6843 -321 6875 -289 ct 6906 -256 6922 -215 6922 -166 ct |
6922 -116 6906 -75 6874 -42 ct 6842 -9 6801 7 6753 7 ct 6722 7 6694 0 6666 -13 ct |
6639 -27 6618 -47 6604 -73 ct 6590 -100 6582 -132 6582 -170 ct p |
6672 -165 m 6672 -132 6679 -107 6695 -90 ct 6710 -73 6730 -64 6752 -64 ct 6775 -64 6794 -73 6810 -90 ct |
6825 -107 6833 -133 6833 -166 ct 6833 -198 6825 -223 6810 -240 ct 6794 -257 6775 -266 6752 -266 ct |
6730 -266 6710 -257 6695 -240 ct 6679 -223 6672 -198 6672 -165 ct p ef |
7292 0 m 7205 0 l 7205 -168 l 7205 -204 7203 -227 7199 -237 ct 7196 -248 7190 -256 7181 -262 ct |
7173 -267 7163 -270 7151 -270 ct 7136 -270 7122 -266 7110 -258 ct 7098 -250 7090 -239 7086 -225 ct |
7081 -211 7079 -186 7079 -149 ct 7079 0 l 6992 0 l 6992 -330 l 7073 -330 l |
7073 -281 l 7102 -318 7138 -337 7181 -337 ct 7201 -337 7218 -334 7234 -327 ct |
7250 -320 7262 -311 7270 -300 ct 7278 -289 7284 -277 7287 -263 ct 7290 -250 7292 -230 7292 -205 ct |
7292 0 l p ef |
pom |
pum |
2273 13073 t |
-1 0 m 135 -354 l 185 -354 l 330 0 l 277 0 l 236 -107 l 88 -107 l |
49 0 l -1 0 l p |
101 -145 m 221 -145 l 184 -243 l 173 -273 165 -297 159 -316 ct 155 -294 148 -271 140 -249 ct |
101 -145 l p ef |
362 0 m 362 -256 l 401 -256 l 401 -217 l 411 -236 420 -248 429 -253 ct |
437 -259 447 -262 457 -262 ct 471 -262 486 -257 501 -248 ct 486 -208 l 476 -214 465 -217 454 -217 ct |
445 -217 436 -214 429 -209 ct 421 -203 416 -195 413 -185 ct 408 -169 406 -152 406 -134 ct |
406 0 l 362 0 l p ef |
695 -94 m 737 -88 l 733 -59 721 -36 702 -19 ct 682 -2 659 6 631 6 ct 596 6 568 -5 546 -28 ct |
525 -51 514 -84 514 -127 ct 514 -155 519 -179 528 -199 ct 537 -220 551 -236 570 -246 ct |
589 -257 609 -262 631 -262 ct 659 -262 682 -255 699 -241 ct 717 -227 728 -207 733 -181 ct |
691 -174 l 687 -191 680 -204 670 -213 ct 660 -222 647 -226 633 -226 ct 611 -226 593 -218 579 -202 ct |
566 -187 559 -162 559 -128 ct 559 -94 566 -69 579 -53 ct 592 -38 609 -30 630 -30 ct |
647 -30 662 -35 673 -45 ct 684 -56 692 -72 695 -94 ct p ef |
778 0 m 778 -354 l 821 -354 l 821 -227 l 841 -250 867 -262 898 -262 ct |
917 -262 933 -258 947 -251 ct 961 -243 971 -233 977 -220 ct 983 -207 986 -187 986 -162 ct |
986 0 l 943 0 l 943 -162 l 943 -184 938 -200 929 -210 ct 919 -220 906 -225 889 -225 ct |
876 -225 864 -221 852 -215 ct 841 -208 833 -199 828 -187 ct 823 -176 821 -160 821 -140 ct |
821 0 l 778 0 l p ef |
1053 -304 m 1053 -354 l 1096 -354 l 1096 -304 l 1053 -304 l p |
1053 0 m 1053 -256 l 1096 -256 l 1096 0 l 1053 0 l p ef |
1257 -39 m 1264 -1 l 1251 2 1240 3 1231 3 ct 1215 3 1203 0 1194 -4 ct 1185 -9 1179 -16 1176 -24 ct |
1172 -32 1171 -49 1171 -75 ct 1171 -223 l 1139 -223 l 1139 -257 l 1171 -257 l |
1171 -320 l 1214 -346 l 1214 -257 l 1257 -257 l 1257 -223 l 1214 -223 l |
1214 -73 l 1214 -61 1214 -53 1216 -49 ct 1218 -46 1220 -43 1223 -41 ct 1227 -39 1232 -38 1238 -38 ct |
1243 -38 1249 -38 1257 -39 ct p ef |
1478 -82 m 1523 -77 l 1516 -51 1503 -30 1483 -16 ct 1464 -1 1440 6 1410 6 ct |
1373 6 1343 -6 1321 -29 ct 1299 -52 1288 -84 1288 -126 ct 1288 -169 1299 -202 1321 -226 ct |
1344 -250 1372 -262 1408 -262 ct 1442 -262 1470 -250 1492 -227 ct 1513 -204 1524 -171 1524 -129 ct |
1524 -126 1524 -122 1524 -117 ct 1333 -117 l 1335 -89 1343 -67 1357 -52 ct |
1371 -37 1389 -30 1410 -30 ct 1426 -30 1440 -34 1451 -42 ct 1462 -51 1471 -64 1478 -82 ct |
p |
1335 -153 m 1478 -153 l 1476 -174 1471 -190 1462 -201 ct 1448 -218 1430 -226 1408 -226 ct |
1388 -226 1372 -219 1358 -206 ct 1344 -193 1337 -175 1335 -153 ct p ef |
1745 -94 m 1787 -88 l 1783 -59 1771 -36 1752 -19 ct 1732 -2 1709 6 1681 6 ct |
1646 6 1618 -5 1596 -28 ct 1575 -51 1564 -84 1564 -127 ct 1564 -155 1569 -179 1578 -199 ct |
1587 -220 1601 -236 1620 -246 ct 1639 -257 1659 -262 1681 -262 ct 1709 -262 1732 -255 1749 -241 ct |
1767 -227 1778 -207 1783 -181 ct 1741 -174 l 1737 -191 1730 -204 1720 -213 ct |
1710 -222 1697 -226 1683 -226 ct 1661 -226 1643 -218 1629 -202 ct 1616 -187 1609 -162 1609 -128 ct |
1609 -94 1616 -69 1629 -53 ct 1642 -38 1659 -30 1680 -30 ct 1697 -30 1712 -35 1723 -45 ct |
1734 -56 1742 -72 1745 -94 ct p ef |
1922 -39 m 1929 -1 l 1916 2 1905 3 1896 3 ct 1880 3 1868 0 1859 -4 ct 1850 -9 1844 -16 1841 -24 ct |
1837 -32 1836 -49 1836 -75 ct 1836 -223 l 1804 -223 l 1804 -257 l 1836 -257 l |
1836 -320 l 1879 -346 l 1879 -257 l 1922 -257 l 1922 -223 l 1879 -223 l |
1879 -73 l 1879 -61 1879 -53 1881 -49 ct 1883 -46 1885 -43 1888 -41 ct 1892 -39 1897 -38 1903 -38 ct |
1908 -38 1914 -38 1922 -39 ct p ef |
2135 0 m 2135 -37 l 2116 -8 2088 6 2054 6 ct 2039 6 2025 3 2012 -3 ct 1999 -8 1989 -16 1983 -25 ct |
1976 -33 1972 -44 1969 -57 ct 1967 -65 1967 -79 1967 -97 ct 1967 -256 l 2010 -256 l |
2010 -114 l 2010 -91 2011 -76 2013 -68 ct 2015 -57 2021 -48 2030 -41 ct 2039 -35 2050 -31 2063 -31 ct |
2076 -31 2088 -35 2100 -41 ct 2111 -48 2119 -57 2124 -69 ct 2128 -80 2131 -97 2131 -119 ct |
2131 -256 l 2174 -256 l 2174 0 l 2135 0 l p ef |
2242 0 m 2242 -256 l 2281 -256 l 2281 -217 l 2291 -236 2300 -248 2309 -253 ct |
2317 -259 2327 -262 2337 -262 ct 2351 -262 2366 -257 2381 -248 ct 2366 -208 l |
2356 -214 2345 -217 2334 -217 ct 2325 -217 2316 -214 2309 -209 ct 2301 -203 2296 -195 2293 -185 ct |
2288 -169 2286 -152 2286 -134 ct 2286 0 l 2242 0 l p ef |
2583 -82 m 2628 -77 l 2621 -51 2608 -30 2588 -16 ct 2569 -1 2545 6 2515 6 ct |
2478 6 2448 -6 2426 -29 ct 2404 -52 2393 -84 2393 -126 ct 2393 -169 2404 -202 2426 -226 ct |
2449 -250 2477 -262 2513 -262 ct 2547 -262 2575 -250 2597 -227 ct 2618 -204 2629 -171 2629 -129 ct |
2629 -126 2629 -122 2629 -117 ct 2438 -117 l 2440 -89 2448 -67 2462 -52 ct |
2476 -37 2494 -30 2515 -30 ct 2531 -30 2545 -34 2556 -42 ct 2567 -51 2576 -64 2583 -82 ct |
p |
2440 -153 m 2583 -153 l 2581 -174 2576 -190 2567 -201 ct 2553 -218 2535 -226 2513 -226 ct |
2493 -226 2477 -219 2463 -206 ct 2449 -193 2442 -175 2440 -153 ct p ef |
2828 0 m 2828 -354 l 2950 -354 l 2977 -354 2998 -352 3013 -349 ct 3033 -344 3050 -336 3065 -323 ct |
3083 -308 3097 -287 3107 -263 ct 3116 -238 3120 -210 3120 -179 ct 3120 -152 3117 -128 3111 -107 ct |
3105 -87 3097 -69 3087 -56 ct 3077 -42 3066 -32 3055 -24 ct 3043 -16 3029 -10 3013 -6 ct |
2996 -2 2977 0 2956 0 ct 2828 0 l p |
2875 -42 m 2950 -42 l 2974 -42 2992 -44 3005 -48 ct 3019 -53 3029 -59 3037 -67 ct |
3048 -78 3057 -93 3063 -111 ct 3069 -130 3072 -153 3072 -180 ct 3072 -217 3066 -245 3054 -265 ct |
3042 -285 3027 -298 3010 -305 ct 2997 -310 2977 -312 2949 -312 ct 2875 -312 l |
2875 -42 l p ef |
3358 -82 m 3403 -77 l 3396 -51 3383 -30 3363 -16 ct 3344 -1 3320 6 3290 6 ct |
3253 6 3223 -6 3201 -29 ct 3179 -52 3168 -84 3168 -126 ct 3168 -169 3179 -202 3201 -226 ct |
3224 -250 3252 -262 3288 -262 ct 3322 -262 3350 -250 3372 -227 ct 3393 -204 3404 -171 3404 -129 ct |
3404 -126 3404 -122 3404 -117 ct 3213 -117 l 3215 -89 3223 -67 3237 -52 ct |
3251 -37 3269 -30 3290 -30 ct 3306 -30 3320 -34 3331 -42 ct 3342 -51 3351 -64 3358 -82 ct |
p |
3215 -153 m 3358 -153 l 3356 -174 3351 -190 3342 -201 ct 3328 -218 3310 -226 3288 -226 ct |
3268 -226 3252 -219 3238 -206 ct 3224 -193 3217 -175 3215 -153 ct p ef |
3440 -76 m 3483 -83 l 3486 -66 3492 -53 3503 -43 ct 3514 -34 3530 -30 3549 -30 ct |
3569 -30 3584 -34 3594 -42 ct 3604 -50 3608 -60 3608 -70 ct 3608 -80 3604 -88 3596 -94 ct |
3590 -97 3575 -102 3551 -108 ct 3519 -116 3497 -123 3485 -129 ct 3473 -135 3463 -143 3457 -154 ct |
3451 -164 3447 -175 3447 -188 ct 3447 -199 3450 -210 3455 -220 ct 3461 -229 3468 -237 3477 -244 ct |
3483 -249 3493 -253 3504 -257 ct 3516 -260 3528 -262 3542 -262 ct 3562 -262 3579 -259 3595 -253 ct |
3610 -247 3621 -239 3628 -230 ct 3636 -220 3641 -206 3643 -190 ct 3601 -184 l |
3599 -197 3593 -208 3584 -215 ct 3575 -222 3562 -226 3545 -226 ct 3525 -226 3511 -223 3502 -216 ct |
3494 -210 3489 -202 3489 -193 ct 3489 -187 3491 -182 3495 -178 ct 3498 -173 3504 -169 3511 -166 ct |
3516 -165 3528 -161 3550 -155 ct 3580 -147 3602 -140 3614 -135 ct 3626 -130 3636 -122 3643 -112 ct |
3649 -102 3653 -90 3653 -75 ct 3653 -61 3649 -47 3640 -34 ct 3632 -21 3620 -11 3604 -4 ct |
3588 2 3570 6 3550 6 ct 3516 6 3491 -1 3474 -15 ct 3456 -29 3445 -49 3440 -76 ct |
p ef |
3875 -94 m 3917 -88 l 3913 -59 3901 -36 3882 -19 ct 3862 -2 3839 6 3811 6 ct |
3776 6 3748 -5 3726 -28 ct 3705 -51 3694 -84 3694 -127 ct 3694 -155 3699 -179 3708 -199 ct |
3717 -220 3731 -236 3750 -246 ct 3769 -257 3789 -262 3811 -262 ct 3839 -262 3862 -255 3879 -241 ct |
3897 -227 3908 -207 3913 -181 ct 3871 -174 l 3867 -191 3860 -204 3850 -213 ct |
3840 -222 3827 -226 3813 -226 ct 3791 -226 3773 -218 3759 -202 ct 3746 -187 3739 -162 3739 -128 ct |
3739 -94 3746 -69 3759 -53 ct 3772 -38 3789 -30 3810 -30 ct 3827 -30 3842 -35 3853 -45 ct |
3864 -56 3872 -72 3875 -94 ct p ef |
3956 0 m 3956 -256 l 3995 -256 l 3995 -217 l 4005 -236 4014 -248 4023 -253 ct |
4031 -259 4041 -262 4051 -262 ct 4065 -262 4080 -257 4095 -248 ct 4080 -208 l |
4070 -214 4059 -217 4048 -217 ct 4039 -217 4030 -214 4023 -209 ct 4015 -203 4010 -195 4007 -185 ct |
4002 -169 4000 -152 4000 -134 ct 4000 0 l 3956 0 l p ef |
4122 -304 m 4122 -354 l 4165 -354 l 4165 -304 l 4122 -304 l p |
4122 0 m 4122 -256 l 4165 -256 l 4165 0 l 4122 0 l p ef |
4232 98 m 4232 -256 l 4271 -256 l 4271 -223 l 4280 -236 4291 -246 4303 -252 ct |
4314 -259 4329 -262 4345 -262 ct 4367 -262 4387 -256 4403 -245 ct 4420 -234 4433 -218 4441 -197 ct |
4450 -177 4454 -155 4454 -130 ct 4454 -104 4449 -80 4440 -59 ct 4430 -38 4417 -22 4399 -11 ct |
4381 0 4362 6 4342 6 ct 4328 6 4315 3 4303 -3 ct 4292 -10 4282 -17 4275 -27 ct |
4275 98 l 4232 98 l p |
4271 -127 m 4271 -94 4278 -69 4291 -54 ct 4304 -38 4320 -30 4339 -30 ct 4359 -30 4375 -38 4389 -54 ct |
4403 -71 4410 -96 4410 -130 ct 4410 -163 4403 -187 4389 -204 ct 4376 -220 4360 -228 4341 -228 ct |
4323 -228 4306 -219 4292 -202 ct 4278 -185 4271 -160 4271 -127 ct p ef |
4602 -39 m 4609 -1 l 4596 2 4585 3 4576 3 ct 4560 3 4548 0 4539 -4 ct 4530 -9 4524 -16 4521 -24 ct |
4517 -32 4516 -49 4516 -75 ct 4516 -223 l 4484 -223 l 4484 -257 l 4516 -257 l |
4516 -320 l 4559 -346 l 4559 -257 l 4602 -257 l 4602 -223 l 4559 -223 l |
4559 -73 l 4559 -61 4559 -53 4561 -49 ct 4563 -46 4565 -43 4568 -41 ct 4572 -39 4577 -38 4583 -38 ct |
4588 -38 4594 -38 4602 -39 ct p ef |
4647 -304 m 4647 -354 l 4690 -354 l 4690 -304 l 4647 -304 l p |
4647 0 m 4647 -256 l 4690 -256 l 4690 0 l 4647 0 l p ef |
4740 -128 m 4740 -175 4754 -211 4780 -233 ct 4802 -252 4829 -262 4861 -262 ct |
4896 -262 4925 -250 4947 -227 ct 4969 -204 4980 -172 4980 -132 ct 4980 -99 4975 -73 4966 -54 ct |
4956 -35 4941 -20 4922 -10 ct 4904 1 4883 6 4861 6 ct 4825 6 4796 -6 4774 -29 ct |
4751 -52 4740 -85 4740 -128 ct p |
4785 -128 m 4785 -95 4792 -71 4807 -54 ct 4821 -38 4839 -30 4861 -30 ct 4882 -30 4900 -38 4914 -54 ct |
4929 -71 4936 -96 4936 -129 ct 4936 -161 4929 -185 4914 -201 ct 4900 -218 4882 -226 4861 -226 ct |
4839 -226 4821 -218 4807 -202 ct 4792 -185 4785 -161 4785 -128 ct p ef |
5033 0 m 5033 -256 l 5072 -256 l 5072 -220 l 5090 -248 5118 -262 5153 -262 ct |
5169 -262 5183 -259 5196 -254 ct 5209 -248 5218 -241 5225 -232 ct 5231 -223 5236 -212 5238 -200 ct |
5240 -192 5241 -178 5241 -158 ct 5241 0 l 5197 0 l 5197 -156 l 5197 -174 5196 -187 5192 -196 ct |
5189 -204 5183 -211 5174 -217 ct 5166 -222 5156 -224 5144 -224 ct 5126 -224 5110 -218 5096 -207 ct |
5083 -195 5076 -173 5076 -140 ct 5076 0 l 5033 0 l p ef |
5450 0 m 5450 -354 l 5497 -354 l 5497 -42 l 5671 -42 l 5671 0 l 5450 0 l |
p ef |
5890 -31 m 5874 -18 5858 -8 5843 -2 ct 5828 3 5812 6 5795 6 ct 5767 6 5746 -1 5731 -15 ct |
5715 -28 5708 -46 5708 -67 ct 5708 -80 5711 -91 5716 -102 ct 5722 -112 5730 -120 5739 -127 ct |
5748 -133 5759 -138 5770 -141 ct 5779 -143 5791 -145 5809 -148 ct 5844 -152 5870 -157 5886 -163 ct |
5886 -168 5886 -172 5886 -174 ct 5886 -192 5882 -204 5874 -211 ct 5863 -221 5846 -226 5825 -226 ct |
5804 -226 5789 -222 5779 -215 ct 5770 -208 5762 -195 5758 -177 ct 5715 -183 l |
5719 -201 5726 -216 5734 -227 ct 5743 -238 5756 -247 5773 -253 ct 5789 -259 5809 -262 5831 -262 ct |
5853 -262 5871 -259 5884 -254 ct 5898 -249 5908 -243 5914 -235 ct 5921 -227 5925 -217 5928 -205 ct |
5929 -198 5930 -184 5930 -165 ct 5930 -107 l 5930 -67 5931 -41 5933 -31 ct |
5935 -20 5938 -10 5944 0 ct 5898 0 l 5894 -9 5891 -19 5890 -31 ct p |
5886 -128 m 5870 -122 5847 -117 5815 -112 ct 5797 -109 5785 -107 5777 -103 ct |
5770 -100 5764 -95 5760 -89 ct 5756 -83 5754 -76 5754 -69 ct 5754 -57 5759 -47 5767 -40 ct |
5776 -32 5789 -28 5806 -28 ct 5823 -28 5837 -32 5850 -39 ct 5863 -46 5873 -56 5879 -69 ct |
5884 -79 5886 -93 5886 -113 ct 5886 -128 l p ef |
5998 0 m 5998 -256 l 6037 -256 l 6037 -220 l 6055 -248 6083 -262 6118 -262 ct |
6134 -262 6148 -259 6161 -254 ct 6174 -248 6183 -241 6190 -232 ct 6196 -223 6201 -212 6203 -200 ct |
6205 -192 6206 -178 6206 -158 ct 6206 0 l 6162 0 l 6162 -156 l 6162 -174 6161 -187 6157 -196 ct |
6154 -204 6148 -211 6139 -217 ct 6131 -222 6121 -224 6109 -224 ct 6091 -224 6075 -218 6061 -207 ct |
6048 -195 6041 -173 6041 -140 ct 6041 0 l 5998 0 l p ef |
6265 21 m 6307 28 l 6309 41 6313 50 6322 56 ct 6332 64 6347 68 6366 68 ct |
6386 68 6401 64 6412 56 ct 6423 48 6431 37 6434 22 ct 6437 13 6438 -5 6438 -34 ct |
6419 -11 6395 0 6367 0 ct 6331 0 6304 -13 6285 -38 ct 6266 -64 6256 -94 6256 -130 ct |
6256 -154 6260 -177 6269 -197 ct 6278 -218 6291 -234 6308 -245 ct 6324 -256 6344 -262 6367 -262 ct |
6397 -262 6422 -250 6442 -225 ct 6442 -256 l 6482 -256 l 6482 -35 l 6482 5 6478 33 6470 50 ct |
6461 67 6449 80 6431 90 ct 6413 99 6392 104 6366 104 ct 6335 104 6311 97 6292 83 ct |
6273 70 6264 49 6265 21 ct p |
6301 -133 m 6301 -99 6307 -75 6321 -59 ct 6334 -44 6351 -36 6371 -36 ct 6391 -36 6407 -44 6421 -59 ct |
6434 -74 6441 -98 6441 -131 ct 6441 -163 6434 -186 6420 -202 ct 6406 -218 6390 -226 6370 -226 ct |
6351 -226 6334 -218 6321 -203 ct 6307 -187 6301 -164 6301 -133 ct p ef |
6715 0 m 6715 -37 l 6696 -8 6668 6 6634 6 ct 6619 6 6605 3 6592 -3 ct 6579 -8 6569 -16 6563 -25 ct |
6556 -33 6552 -44 6549 -57 ct 6547 -65 6547 -79 6547 -97 ct 6547 -256 l 6590 -256 l |
6590 -114 l 6590 -91 6591 -76 6593 -68 ct 6595 -57 6601 -48 6610 -41 ct 6619 -35 6630 -31 6643 -31 ct |
6656 -31 6668 -35 6680 -41 ct 6691 -48 6699 -57 6704 -69 ct 6708 -80 6711 -97 6711 -119 ct |
6711 -256 l 6754 -256 l 6754 0 l 6715 0 l p ef |
6990 -31 m 6974 -18 6958 -8 6943 -2 ct 6928 3 6912 6 6895 6 ct 6867 6 6846 -1 6831 -15 ct |
6815 -28 6808 -46 6808 -67 ct 6808 -80 6811 -91 6816 -102 ct 6822 -112 6830 -120 6839 -127 ct |
6848 -133 6859 -138 6870 -141 ct 6879 -143 6891 -145 6909 -148 ct 6944 -152 6970 -157 6986 -163 ct |
6986 -168 6986 -172 6986 -174 ct 6986 -192 6982 -204 6974 -211 ct 6963 -221 6946 -226 6925 -226 ct |
6904 -226 6889 -222 6879 -215 ct 6870 -208 6862 -195 6858 -177 ct 6815 -183 l |
6819 -201 6826 -216 6834 -227 ct 6843 -238 6856 -247 6873 -253 ct 6889 -259 6909 -262 6931 -262 ct |
6953 -262 6971 -259 6984 -254 ct 6998 -249 7008 -243 7014 -235 ct 7021 -227 7025 -217 7028 -205 ct |
7029 -198 7030 -184 7030 -165 ct 7030 -107 l 7030 -67 7031 -41 7033 -31 ct |
7035 -20 7038 -10 7044 0 ct 6998 0 l 6994 -9 6991 -19 6990 -31 ct p |
6986 -128 m 6970 -122 6947 -117 6915 -112 ct 6897 -109 6885 -107 6877 -103 ct |
6870 -100 6864 -95 6860 -89 ct 6856 -83 6854 -76 6854 -69 ct 6854 -57 6859 -47 6867 -40 ct |
6876 -32 6889 -28 6906 -28 ct 6923 -28 6937 -32 6950 -39 ct 6963 -46 6973 -56 6979 -69 ct |
6984 -79 6986 -93 6986 -113 ct 6986 -128 l p ef |
7090 21 m 7132 28 l 7134 41 7138 50 7147 56 ct 7157 64 7172 68 7191 68 ct |
7211 68 7226 64 7237 56 ct 7248 48 7256 37 7259 22 ct 7262 13 7263 -5 7263 -34 ct |
7244 -11 7220 0 7192 0 ct 7156 0 7129 -13 7110 -38 ct 7091 -64 7081 -94 7081 -130 ct |
7081 -154 7085 -177 7094 -197 ct 7103 -218 7116 -234 7133 -245 ct 7149 -256 7169 -262 7192 -262 ct |
7222 -262 7247 -250 7267 -225 ct 7267 -256 l 7307 -256 l 7307 -35 l 7307 5 7303 33 7295 50 ct |
7286 67 7274 80 7256 90 ct 7238 99 7217 104 7191 104 ct 7160 104 7136 97 7117 83 ct |
7098 70 7089 49 7090 21 ct p |
7126 -133 m 7126 -99 7132 -75 7146 -59 ct 7159 -44 7176 -36 7196 -36 ct 7216 -36 7232 -44 7246 -59 ct |
7259 -74 7266 -98 7266 -131 ct 7266 -163 7259 -186 7245 -202 ct 7231 -218 7215 -226 7195 -226 ct |
7176 -226 7159 -218 7146 -203 ct 7132 -187 7126 -164 7126 -133 ct p ef |
7549 -82 m 7594 -77 l 7587 -51 7574 -30 7554 -16 ct 7535 -1 7511 6 7481 6 ct |
7444 6 7414 -6 7392 -29 ct 7370 -52 7359 -84 7359 -126 ct 7359 -169 7370 -202 7392 -226 ct |
7415 -250 7443 -262 7479 -262 ct 7513 -262 7541 -250 7563 -227 ct 7584 -204 7595 -171 7595 -129 ct |
7595 -126 7595 -122 7595 -117 ct 7404 -117 l 7406 -89 7414 -67 7428 -52 ct |
7442 -37 7460 -30 7481 -30 ct 7497 -30 7511 -34 7522 -42 ct 7533 -51 7542 -64 7549 -82 ct |
p |
7406 -153 m 7549 -153 l 7547 -174 7542 -190 7533 -201 ct 7519 -218 7501 -226 7479 -226 ct |
7459 -226 7443 -219 7429 -206 ct 7415 -193 7408 -175 7406 -153 ct p ef |
pom |
0.503 0.003 0.003 c 6038 11248 m 8738 7170 l 8781 7198 l 8823 7226 l 6124 11304 l |
6081 11276 l 6038 11248 l p ef |
9080 6746 m 8517 7187 l 8894 7436 l 9080 6746 l p ef |
pum |
3980 8628 t |
0.003 0.003 0.003 c 15 -76 m 58 -83 l 61 -66 67 -53 78 -43 ct 89 -34 105 -30 124 -30 ct |
144 -30 159 -34 169 -42 ct 179 -50 183 -60 183 -70 ct 183 -80 179 -88 171 -94 ct |
165 -97 150 -102 126 -108 ct 94 -116 72 -123 60 -129 ct 48 -135 38 -143 32 -154 ct |
26 -164 22 -175 22 -188 ct 22 -199 25 -210 30 -220 ct 36 -229 43 -237 52 -244 ct |
58 -249 68 -253 79 -257 ct 91 -260 103 -262 117 -262 ct 137 -262 154 -259 170 -253 ct |
185 -247 196 -239 203 -230 ct 211 -220 216 -206 218 -190 ct 176 -184 l 174 -197 168 -208 159 -215 ct |
150 -222 137 -226 120 -226 ct 100 -226 86 -223 77 -216 ct 69 -210 64 -202 64 -193 ct |
64 -187 66 -182 70 -178 ct 73 -173 79 -169 86 -166 ct 91 -165 103 -161 125 -155 ct |
155 -147 177 -140 189 -135 ct 201 -130 211 -122 218 -112 ct 224 -102 228 -90 228 -75 ct |
228 -61 224 -47 215 -34 ct 207 -21 195 -11 179 -4 ct 163 2 145 6 125 6 ct 91 6 66 -1 49 -15 ct |
31 -29 20 -49 15 -76 ct p ef |
377 -39 m 384 -1 l 371 2 360 3 351 3 ct 335 3 323 0 314 -4 ct 305 -9 299 -16 296 -24 ct |
292 -32 291 -49 291 -75 ct 291 -223 l 259 -223 l 259 -257 l 291 -257 l |
291 -320 l 334 -346 l 334 -257 l 377 -257 l 377 -223 l 334 -223 l |
334 -73 l 334 -61 334 -53 336 -49 ct 338 -46 340 -43 343 -41 ct 347 -39 352 -38 358 -38 ct |
363 -38 369 -38 377 -39 ct p ef |
589 0 m 589 -37 l 570 -8 542 6 508 6 ct 493 6 479 3 466 -3 ct 453 -8 443 -16 437 -25 ct |
430 -33 426 -44 423 -57 ct 421 -65 421 -79 421 -97 ct 421 -256 l 464 -256 l |
464 -114 l 464 -91 465 -76 467 -68 ct 469 -57 475 -48 484 -41 ct 493 -35 504 -31 517 -31 ct |
530 -31 542 -35 554 -41 ct 565 -48 573 -57 578 -69 ct 582 -80 585 -97 585 -119 ct |
585 -256 l 628 -256 l 628 0 l 589 0 l p ef |
738 0 m 697 0 l 697 -354 l 741 -354 l 741 -227 l 759 -250 782 -262 811 -262 ct |
827 -262 842 -259 856 -252 ct 870 -246 881 -237 890 -225 ct 900 -214 907 -200 912 -184 ct |
917 -168 919 -150 919 -132 ct 919 -88 909 -54 887 -30 ct 865 -6 839 6 809 6 ct |
779 6 755 -7 738 -32 ct 738 0 l p |
737 -130 m 737 -99 741 -77 750 -63 ct 763 -41 782 -30 805 -30 ct 824 -30 841 -38 854 -54 ct |
868 -71 875 -95 875 -128 ct 875 -162 868 -186 855 -202 ct 842 -218 826 -226 807 -226 ct |
788 -226 772 -218 758 -201 ct 744 -185 737 -161 737 -130 ct p ef |
955 -76 m 998 -83 l 1001 -66 1007 -53 1018 -43 ct 1029 -34 1045 -30 1064 -30 ct |
1084 -30 1099 -34 1109 -42 ct 1119 -50 1123 -60 1123 -70 ct 1123 -80 1119 -88 1111 -94 ct |
1105 -97 1090 -102 1066 -108 ct 1034 -116 1012 -123 1000 -129 ct 988 -135 978 -143 972 -154 ct |
966 -164 962 -175 962 -188 ct 962 -199 965 -210 970 -220 ct 976 -229 983 -237 992 -244 ct |
998 -249 1008 -253 1019 -257 ct 1031 -260 1043 -262 1057 -262 ct 1077 -262 1094 -259 1110 -253 ct |
1125 -247 1136 -239 1143 -230 ct 1151 -220 1156 -206 1158 -190 ct 1116 -184 l |
1114 -197 1108 -208 1099 -215 ct 1090 -222 1077 -226 1060 -226 ct 1040 -226 1026 -223 1017 -216 ct |
1009 -210 1004 -202 1004 -193 ct 1004 -187 1006 -182 1010 -178 ct 1013 -173 1019 -169 1026 -166 ct |
1031 -165 1043 -161 1065 -155 ct 1095 -147 1117 -140 1129 -135 ct 1141 -130 1151 -122 1158 -112 ct |
1164 -102 1168 -90 1168 -75 ct 1168 -61 1164 -47 1155 -34 ct 1147 -21 1135 -11 1119 -4 ct |
1103 2 1085 6 1065 6 ct 1031 6 1006 -1 989 -15 ct 971 -29 960 -49 955 -76 ct p ef |
1234 0 m 1234 -49 l 1283 -49 l 1283 0 l 1283 18 1280 33 1274 44 ct 1267 55 1257 64 1243 70 ct |
1231 51 l 1240 47 1247 41 1251 34 ct 1256 26 1258 15 1259 0 ct 1234 0 l p ef |
1484 -76 m 1527 -83 l 1530 -66 1536 -53 1547 -43 ct 1558 -34 1574 -30 1593 -30 ct |
1613 -30 1628 -34 1638 -42 ct 1648 -50 1652 -60 1652 -70 ct 1652 -80 1648 -88 1640 -94 ct |
1634 -97 1619 -102 1595 -108 ct 1563 -116 1541 -123 1529 -129 ct 1517 -135 1507 -143 1501 -154 ct |
1495 -164 1491 -175 1491 -188 ct 1491 -199 1494 -210 1499 -220 ct 1505 -229 1512 -237 1521 -244 ct |
1527 -249 1537 -253 1548 -257 ct 1560 -260 1572 -262 1586 -262 ct 1606 -262 1623 -259 1639 -253 ct |
1654 -247 1665 -239 1672 -230 ct 1680 -220 1685 -206 1687 -190 ct 1645 -184 l |
1643 -197 1637 -208 1628 -215 ct 1619 -222 1606 -226 1589 -226 ct 1569 -226 1555 -223 1546 -216 ct |
1538 -210 1533 -202 1533 -193 ct 1533 -187 1535 -182 1539 -178 ct 1542 -173 1548 -169 1555 -166 ct |
1560 -165 1572 -161 1594 -155 ct 1624 -147 1646 -140 1658 -135 ct 1670 -130 1680 -122 1687 -112 ct |
1693 -102 1697 -90 1697 -75 ct 1697 -61 1693 -47 1684 -34 ct 1676 -21 1664 -11 1648 -4 ct |
1632 2 1614 6 1594 6 ct 1560 6 1535 -1 1518 -15 ct 1500 -29 1489 -49 1484 -76 ct |
p ef |
1752 0 m 1752 -354 l 1795 -354 l 1795 -152 l 1898 -256 l 1954 -256 l |
1856 -161 l 1964 0 l 1911 0 l 1826 -131 l 1795 -102 l 1795 0 l 1752 0 l |
p ef |
2177 -82 m 2222 -77 l 2215 -51 2202 -30 2182 -16 ct 2163 -1 2139 6 2109 6 ct |
2072 6 2042 -6 2020 -29 ct 1998 -52 1987 -84 1987 -126 ct 1987 -169 1998 -202 2020 -226 ct |
2043 -250 2071 -262 2107 -262 ct 2141 -262 2169 -250 2191 -227 ct 2212 -204 2223 -171 2223 -129 ct |
2223 -126 2223 -122 2223 -117 ct 2032 -117 l 2034 -89 2042 -67 2056 -52 ct |
2070 -37 2088 -30 2109 -30 ct 2125 -30 2139 -34 2150 -42 ct 2161 -51 2170 -64 2177 -82 ct |
p |
2034 -153 m 2177 -153 l 2175 -174 2170 -190 2161 -201 ct 2147 -218 2129 -226 2107 -226 ct |
2087 -226 2071 -219 2057 -206 ct 2043 -193 2036 -175 2034 -153 ct p ef |
2276 0 m 2276 -354 l 2319 -354 l 2319 0 l 2276 0 l p ef |
2562 -82 m 2607 -77 l 2600 -51 2587 -30 2567 -16 ct 2548 -1 2524 6 2494 6 ct |
2457 6 2427 -6 2405 -29 ct 2383 -52 2372 -84 2372 -126 ct 2372 -169 2383 -202 2405 -226 ct |
2428 -250 2456 -262 2492 -262 ct 2526 -262 2554 -250 2576 -227 ct 2597 -204 2608 -171 2608 -129 ct |
2608 -126 2608 -122 2608 -117 ct 2417 -117 l 2419 -89 2427 -67 2441 -52 ct |
2455 -37 2473 -30 2494 -30 ct 2510 -30 2524 -34 2535 -42 ct 2546 -51 2555 -64 2562 -82 ct |
p |
2419 -153 m 2562 -153 l 2560 -174 2555 -190 2546 -201 ct 2532 -218 2514 -226 2492 -226 ct |
2472 -226 2456 -219 2442 -206 ct 2428 -193 2421 -175 2419 -153 ct p ef |
2756 -39 m 2763 -1 l 2750 2 2739 3 2730 3 ct 2714 3 2702 0 2693 -4 ct 2684 -9 2678 -16 2675 -24 ct |
2671 -32 2670 -49 2670 -75 ct 2670 -223 l 2638 -223 l 2638 -257 l 2670 -257 l |
2670 -320 l 2713 -346 l 2713 -257 l 2756 -257 l 2756 -223 l 2713 -223 l |
2713 -73 l 2713 -61 2713 -53 2715 -49 ct 2717 -46 2719 -43 2722 -41 ct 2726 -39 2731 -38 2737 -38 ct |
2742 -38 2748 -38 2756 -39 ct p ef |
2785 -128 m 2785 -175 2799 -211 2825 -233 ct 2847 -252 2874 -262 2906 -262 ct |
2941 -262 2970 -250 2992 -227 ct 3014 -204 3025 -172 3025 -132 ct 3025 -99 3020 -73 3011 -54 ct |
3001 -35 2986 -20 2967 -10 ct 2949 1 2928 6 2906 6 ct 2870 6 2841 -6 2819 -29 ct |
2796 -52 2785 -85 2785 -128 ct p |
2830 -128 m 2830 -95 2837 -71 2852 -54 ct 2866 -38 2884 -30 2906 -30 ct 2927 -30 2945 -38 2959 -54 ct |
2974 -71 2981 -96 2981 -129 ct 2981 -161 2974 -185 2959 -201 ct 2945 -218 2927 -226 2906 -226 ct |
2884 -226 2866 -218 2852 -202 ct 2837 -185 2830 -161 2830 -128 ct p ef |
3077 0 m 3077 -256 l 3116 -256 l 3116 -220 l 3134 -248 3162 -262 3197 -262 ct |
3213 -262 3227 -259 3240 -254 ct 3253 -248 3262 -241 3269 -232 ct 3275 -223 3280 -212 3282 -200 ct |
3284 -192 3285 -178 3285 -158 ct 3285 0 l 3241 0 l 3241 -156 l 3241 -174 3240 -187 3236 -196 ct |
3233 -204 3227 -211 3218 -217 ct 3210 -222 3200 -224 3188 -224 ct 3170 -224 3154 -218 3140 -207 ct |
3127 -195 3120 -173 3120 -140 ct 3120 0 l 3077 0 l p ef |
3334 -76 m 3377 -83 l 3380 -66 3386 -53 3397 -43 ct 3408 -34 3424 -30 3443 -30 ct |
3463 -30 3478 -34 3488 -42 ct 3498 -50 3502 -60 3502 -70 ct 3502 -80 3498 -88 3490 -94 ct |
3484 -97 3469 -102 3445 -108 ct 3413 -116 3391 -123 3379 -129 ct 3367 -135 3357 -143 3351 -154 ct |
3345 -164 3341 -175 3341 -188 ct 3341 -199 3344 -210 3349 -220 ct 3355 -229 3362 -237 3371 -244 ct |
3377 -249 3387 -253 3398 -257 ct 3410 -260 3422 -262 3436 -262 ct 3456 -262 3473 -259 3489 -253 ct |
3504 -247 3515 -239 3522 -230 ct 3530 -220 3535 -206 3537 -190 ct 3495 -184 l |
3493 -197 3487 -208 3478 -215 ct 3469 -222 3456 -226 3439 -226 ct 3419 -226 3405 -223 3396 -216 ct |
3388 -210 3383 -202 3383 -193 ct 3383 -187 3385 -182 3389 -178 ct 3392 -173 3398 -169 3405 -166 ct |
3410 -165 3422 -161 3444 -155 ct 3474 -147 3496 -140 3508 -135 ct 3520 -130 3530 -122 3537 -112 ct |
3543 -102 3547 -90 3547 -75 ct 3547 -61 3543 -47 3534 -34 ct 3526 -21 3514 -11 3498 -4 ct |
3482 2 3464 6 3444 6 ct 3410 6 3385 -1 3368 -15 ct 3350 -29 3339 -49 3334 -76 ct |
p ef |
3613 0 m 3613 -49 l 3662 -49 l 3662 0 l 3662 18 3659 33 3653 44 ct 3646 55 3636 64 3622 70 ct |
3610 51 l 3619 47 3626 41 3630 34 ct 3635 26 3637 15 3638 0 ct 3613 0 l p ef |
pom |
pum |
2401 9183 t |
200 -94 m 242 -88 l 238 -59 226 -36 207 -19 ct 187 -2 164 6 136 6 ct 101 6 73 -5 51 -28 ct |
30 -51 19 -84 19 -127 ct 19 -155 24 -179 33 -199 ct 42 -220 56 -236 75 -246 ct |
94 -257 114 -262 136 -262 ct 164 -262 187 -255 204 -241 ct 222 -227 233 -207 238 -181 ct |
196 -174 l 192 -191 185 -204 175 -213 ct 165 -222 152 -226 138 -226 ct 116 -226 98 -218 84 -202 ct |
71 -187 64 -162 64 -128 ct 64 -94 71 -69 84 -53 ct 97 -38 114 -30 135 -30 ct 152 -30 167 -35 178 -45 ct |
189 -56 197 -72 200 -94 ct p ef |
266 -128 m 266 -175 280 -211 306 -233 ct 328 -252 355 -262 387 -262 ct 422 -262 451 -250 473 -227 ct |
495 -204 506 -172 506 -132 ct 506 -99 501 -73 492 -54 ct 482 -35 467 -20 448 -10 ct |
430 1 409 6 387 6 ct 351 6 322 -6 300 -29 ct 277 -52 266 -85 266 -128 ct p |
311 -128 m 311 -95 318 -71 333 -54 ct 347 -38 365 -30 387 -30 ct 408 -30 426 -38 440 -54 ct |
455 -71 462 -96 462 -129 ct 462 -161 455 -185 440 -201 ct 426 -218 408 -226 387 -226 ct |
365 -226 347 -218 333 -202 ct 318 -185 311 -161 311 -128 ct p ef |
558 0 m 558 -256 l 597 -256 l 597 -220 l 615 -248 643 -262 678 -262 ct |
694 -262 708 -259 721 -254 ct 734 -248 743 -241 750 -232 ct 756 -223 761 -212 763 -200 ct |
765 -192 766 -178 766 -158 ct 766 0 l 722 0 l 722 -156 l 722 -174 721 -187 717 -196 ct |
714 -204 708 -211 699 -217 ct 691 -222 681 -224 669 -224 ct 651 -224 635 -218 621 -207 ct |
608 -195 601 -173 601 -140 ct 601 0 l 558 0 l p ef |
833 0 m 833 -256 l 872 -256 l 872 -220 l 890 -248 918 -262 953 -262 ct |
969 -262 983 -259 996 -254 ct 1009 -248 1018 -241 1025 -232 ct 1031 -223 1036 -212 1038 -200 ct |
1040 -192 1041 -178 1041 -158 ct 1041 0 l 997 0 l 997 -156 l 997 -174 996 -187 992 -196 ct |
989 -204 983 -211 974 -217 ct 966 -222 956 -224 944 -224 ct 926 -224 910 -218 896 -207 ct |
883 -195 876 -173 876 -140 ct 876 0 l 833 0 l p ef |
1283 -82 m 1328 -77 l 1321 -51 1308 -30 1288 -16 ct 1269 -1 1245 6 1215 6 ct |
1178 6 1148 -6 1126 -29 ct 1104 -52 1093 -84 1093 -126 ct 1093 -169 1104 -202 1126 -226 ct |
1149 -250 1177 -262 1213 -262 ct 1247 -262 1275 -250 1297 -227 ct 1318 -204 1329 -171 1329 -129 ct |
1329 -126 1329 -122 1329 -117 ct 1138 -117 l 1140 -89 1148 -67 1162 -52 ct |
1176 -37 1194 -30 1215 -30 ct 1231 -30 1245 -34 1256 -42 ct 1267 -51 1276 -64 1283 -82 ct |
p |
1140 -153 m 1283 -153 l 1281 -174 1276 -190 1267 -201 ct 1253 -218 1235 -226 1213 -226 ct |
1193 -226 1177 -219 1163 -206 ct 1149 -193 1142 -175 1140 -153 ct p ef |
1550 -94 m 1592 -88 l 1588 -59 1576 -36 1557 -19 ct 1537 -2 1514 6 1486 6 ct |
1451 6 1423 -5 1401 -28 ct 1380 -51 1369 -84 1369 -127 ct 1369 -155 1374 -179 1383 -199 ct |
1392 -220 1406 -236 1425 -246 ct 1444 -257 1464 -262 1486 -262 ct 1514 -262 1537 -255 1554 -241 ct |
1572 -227 1583 -207 1588 -181 ct 1546 -174 l 1542 -191 1535 -204 1525 -213 ct |
1515 -222 1502 -226 1488 -226 ct 1466 -226 1448 -218 1434 -202 ct 1421 -187 1414 -162 1414 -128 ct |
1414 -94 1421 -69 1434 -53 ct 1447 -38 1464 -30 1485 -30 ct 1502 -30 1517 -35 1528 -45 ct |
1539 -56 1547 -72 1550 -94 ct p ef |
1727 -39 m 1734 -1 l 1721 2 1710 3 1701 3 ct 1685 3 1673 0 1664 -4 ct 1655 -9 1649 -16 1646 -24 ct |
1642 -32 1641 -49 1641 -75 ct 1641 -223 l 1609 -223 l 1609 -257 l 1641 -257 l |
1641 -320 l 1684 -346 l 1684 -257 l 1727 -257 l 1727 -223 l 1684 -223 l |
1684 -73 l 1684 -61 1684 -53 1686 -49 ct 1688 -46 1690 -43 1693 -41 ct 1697 -39 1702 -38 1708 -38 ct |
1713 -38 1719 -38 1727 -39 ct p ef |
1756 -128 m 1756 -175 1770 -211 1796 -233 ct 1818 -252 1845 -262 1877 -262 ct |
1912 -262 1941 -250 1963 -227 ct 1985 -204 1996 -172 1996 -132 ct 1996 -99 1991 -73 1982 -54 ct |
1972 -35 1957 -20 1938 -10 ct 1920 1 1899 6 1877 6 ct 1841 6 1812 -6 1790 -29 ct |
1767 -52 1756 -85 1756 -128 ct p |
1801 -128 m 1801 -95 1808 -71 1823 -54 ct 1837 -38 1855 -30 1877 -30 ct 1898 -30 1916 -38 1930 -54 ct |
1945 -71 1952 -96 1952 -129 ct 1952 -161 1945 -185 1930 -201 ct 1916 -218 1898 -226 1877 -226 ct |
1855 -226 1837 -218 1823 -202 ct 1808 -185 1801 -161 1801 -128 ct p ef |
2047 0 m 2047 -256 l 2086 -256 l 2086 -217 l 2096 -236 2105 -248 2114 -253 ct |
2122 -259 2132 -262 2142 -262 ct 2156 -262 2171 -257 2186 -248 ct 2171 -208 l |
2161 -214 2150 -217 2139 -217 ct 2130 -217 2121 -214 2114 -209 ct 2106 -203 2101 -195 2098 -185 ct |
2093 -169 2091 -152 2091 -134 ct 2091 0 l 2047 0 l p ef |
2195 -76 m 2238 -83 l 2241 -66 2247 -53 2258 -43 ct 2269 -34 2285 -30 2304 -30 ct |
2324 -30 2339 -34 2349 -42 ct 2359 -50 2363 -60 2363 -70 ct 2363 -80 2359 -88 2351 -94 ct |
2345 -97 2330 -102 2306 -108 ct 2274 -116 2252 -123 2240 -129 ct 2228 -135 2218 -143 2212 -154 ct |
2206 -164 2202 -175 2202 -188 ct 2202 -199 2205 -210 2210 -220 ct 2216 -229 2223 -237 2232 -244 ct |
2238 -249 2248 -253 2259 -257 ct 2271 -260 2283 -262 2297 -262 ct 2317 -262 2334 -259 2350 -253 ct |
2365 -247 2376 -239 2383 -230 ct 2391 -220 2396 -206 2398 -190 ct 2356 -184 l |
2354 -197 2348 -208 2339 -215 ct 2330 -222 2317 -226 2300 -226 ct 2280 -226 2266 -223 2257 -216 ct |
2249 -210 2244 -202 2244 -193 ct 2244 -187 2246 -182 2250 -178 ct 2253 -173 2259 -169 2266 -166 ct |
2271 -165 2283 -161 2305 -155 ct 2335 -147 2357 -140 2369 -135 ct 2381 -130 2391 -122 2398 -112 ct |
2404 -102 2408 -90 2408 -75 ct 2408 -61 2404 -47 2395 -34 ct 2387 -21 2375 -11 2359 -4 ct |
2343 2 2325 6 2305 6 ct 2271 6 2246 -1 2229 -15 ct 2211 -29 2200 -49 2195 -76 ct |
p ef |
2595 21 m 2637 28 l 2639 41 2643 50 2652 56 ct 2662 64 2677 68 2696 68 ct |
2716 68 2731 64 2742 56 ct 2753 48 2761 37 2764 22 ct 2767 13 2768 -5 2768 -34 ct |
2749 -11 2725 0 2697 0 ct 2661 0 2634 -13 2615 -38 ct 2596 -64 2586 -94 2586 -130 ct |
2586 -154 2590 -177 2599 -197 ct 2608 -218 2621 -234 2638 -245 ct 2654 -256 2674 -262 2697 -262 ct |
2727 -262 2752 -250 2772 -225 ct 2772 -256 l 2812 -256 l 2812 -35 l 2812 5 2808 33 2800 50 ct |
2791 67 2779 80 2761 90 ct 2743 99 2722 104 2696 104 ct 2665 104 2641 97 2622 83 ct |
2603 70 2594 49 2595 21 ct p |
2631 -133 m 2631 -99 2637 -75 2651 -59 ct 2664 -44 2681 -36 2701 -36 ct 2721 -36 2737 -44 2751 -59 ct |
2764 -74 2771 -98 2771 -131 ct 2771 -163 2764 -186 2750 -202 ct 2736 -218 2720 -226 2700 -226 ct |
2681 -226 2664 -218 2651 -203 ct 2637 -187 2631 -164 2631 -133 ct p ef |
3053 -82 m 3098 -77 l 3091 -51 3078 -30 3058 -16 ct 3039 -1 3015 6 2985 6 ct |
2948 6 2918 -6 2896 -29 ct 2874 -52 2863 -84 2863 -126 ct 2863 -169 2874 -202 2896 -226 ct |
2919 -250 2947 -262 2983 -262 ct 3017 -262 3045 -250 3067 -227 ct 3088 -204 3099 -171 3099 -129 ct |
3099 -126 3099 -122 3099 -117 ct 2908 -117 l 2910 -89 2918 -67 2932 -52 ct |
2946 -37 2964 -30 2985 -30 ct 3001 -30 3015 -34 3026 -42 ct 3037 -51 3046 -64 3053 -82 ct |
p |
2910 -153 m 3053 -153 l 3051 -174 3046 -190 3037 -201 ct 3023 -218 3005 -226 2983 -226 ct |
2963 -226 2947 -219 2933 -206 ct 2919 -193 2912 -175 2910 -153 ct p ef |
3153 0 m 3153 -256 l 3192 -256 l 3192 -220 l 3210 -248 3238 -262 3273 -262 ct |
3289 -262 3303 -259 3316 -254 ct 3329 -248 3338 -241 3345 -232 ct 3351 -223 3356 -212 3358 -200 ct |
3360 -192 3361 -178 3361 -158 ct 3361 0 l 3317 0 l 3317 -156 l 3317 -174 3316 -187 3312 -196 ct |
3309 -204 3303 -211 3294 -217 ct 3286 -222 3276 -224 3264 -224 ct 3246 -224 3230 -218 3216 -207 ct |
3203 -195 3196 -173 3196 -140 ct 3196 0 l 3153 0 l p ef |
3603 -82 m 3648 -77 l 3641 -51 3628 -30 3608 -16 ct 3589 -1 3565 6 3535 6 ct |
3498 6 3468 -6 3446 -29 ct 3424 -52 3413 -84 3413 -126 ct 3413 -169 3424 -202 3446 -226 ct |
3469 -250 3497 -262 3533 -262 ct 3567 -262 3595 -250 3617 -227 ct 3638 -204 3649 -171 3649 -129 ct |
3649 -126 3649 -122 3649 -117 ct 3458 -117 l 3460 -89 3468 -67 3482 -52 ct |
3496 -37 3514 -30 3535 -30 ct 3551 -30 3565 -34 3576 -42 ct 3587 -51 3596 -64 3603 -82 ct |
p |
3460 -153 m 3603 -153 l 3601 -174 3596 -190 3587 -201 ct 3573 -218 3555 -226 3533 -226 ct |
3513 -226 3497 -219 3483 -206 ct 3469 -193 3462 -175 3460 -153 ct p ef |
3702 0 m 3702 -256 l 3741 -256 l 3741 -217 l 3751 -236 3760 -248 3769 -253 ct |
3777 -259 3787 -262 3797 -262 ct 3811 -262 3826 -257 3841 -248 ct 3826 -208 l |
3816 -214 3805 -217 3794 -217 ct 3785 -217 3776 -214 3769 -209 ct 3761 -203 3756 -195 3753 -185 ct |
3748 -169 3746 -152 3746 -134 ct 3746 0 l 3702 0 l p ef |
4035 -31 m 4019 -18 4003 -8 3988 -2 ct 3973 3 3957 6 3940 6 ct 3912 6 3891 -1 3876 -15 ct |
3860 -28 3853 -46 3853 -67 ct 3853 -80 3856 -91 3861 -102 ct 3867 -112 3875 -120 3884 -127 ct |
3893 -133 3904 -138 3915 -141 ct 3924 -143 3936 -145 3954 -148 ct 3989 -152 4015 -157 4031 -163 ct |
4031 -168 4031 -172 4031 -174 ct 4031 -192 4027 -204 4019 -211 ct 4008 -221 3991 -226 3970 -226 ct |
3949 -226 3934 -222 3924 -215 ct 3915 -208 3907 -195 3903 -177 ct 3860 -183 l |
3864 -201 3871 -216 3879 -227 ct 3888 -238 3901 -247 3918 -253 ct 3934 -259 3954 -262 3976 -262 ct |
3998 -262 4016 -259 4029 -254 ct 4043 -249 4053 -243 4059 -235 ct 4066 -227 4070 -217 4073 -205 ct |
4074 -198 4075 -184 4075 -165 ct 4075 -107 l 4075 -67 4076 -41 4078 -31 ct |
4080 -20 4083 -10 4089 0 ct 4043 0 l 4039 -9 4036 -19 4035 -31 ct p |
4031 -128 m 4015 -122 3992 -117 3960 -112 ct 3942 -109 3930 -107 3922 -103 ct |
3915 -100 3909 -95 3905 -89 ct 3901 -83 3899 -76 3899 -69 ct 3899 -57 3904 -47 3912 -40 ct |
3921 -32 3934 -28 3951 -28 ct 3968 -28 3982 -32 3995 -39 ct 4008 -46 4018 -56 4024 -69 ct |
4029 -79 4031 -93 4031 -113 ct 4031 -128 l p ef |
4238 -39 m 4245 -1 l 4232 2 4221 3 4212 3 ct 4196 3 4184 0 4175 -4 ct 4166 -9 4160 -16 4157 -24 ct |
4153 -32 4152 -49 4152 -75 ct 4152 -223 l 4120 -223 l 4120 -257 l 4152 -257 l |
4152 -320 l 4195 -346 l 4195 -257 l 4238 -257 l 4238 -223 l 4195 -223 l |
4195 -73 l 4195 -61 4195 -53 4197 -49 ct 4199 -46 4201 -43 4204 -41 ct 4208 -39 4213 -38 4219 -38 ct |
4224 -38 4230 -38 4238 -39 ct p ef |
4283 -304 m 4283 -354 l 4326 -354 l 4326 -304 l 4283 -304 l p |
4283 0 m 4283 -256 l 4326 -256 l 4326 0 l 4283 0 l p ef |
4376 -128 m 4376 -175 4390 -211 4416 -233 ct 4438 -252 4465 -262 4497 -262 ct |
4532 -262 4561 -250 4583 -227 ct 4605 -204 4616 -172 4616 -132 ct 4616 -99 4611 -73 4602 -54 ct |
4592 -35 4577 -20 4558 -10 ct 4540 1 4519 6 4497 6 ct 4461 6 4432 -6 4410 -29 ct |
4387 -52 4376 -85 4376 -128 ct p |
4421 -128 m 4421 -95 4428 -71 4443 -54 ct 4457 -38 4475 -30 4497 -30 ct 4518 -30 4536 -38 4550 -54 ct |
4565 -71 4572 -96 4572 -129 ct 4572 -161 4565 -185 4550 -201 ct 4536 -218 4518 -226 4497 -226 ct |
4475 -226 4457 -218 4443 -202 ct 4428 -185 4421 -161 4421 -128 ct p ef |
4669 0 m 4669 -256 l 4708 -256 l 4708 -220 l 4726 -248 4754 -262 4789 -262 ct |
4805 -262 4819 -259 4832 -254 ct 4845 -248 4854 -241 4861 -232 ct 4867 -223 4872 -212 4874 -200 ct |
4876 -192 4877 -178 4877 -158 ct 4877 0 l 4833 0 l 4833 -156 l 4833 -174 4832 -187 4828 -196 ct |
4825 -204 4819 -211 4810 -217 ct 4802 -222 4792 -224 4780 -224 ct 4762 -224 4746 -218 4732 -207 ct |
4719 -195 4712 -173 4712 -140 ct 4712 0 l 4669 0 l p ef |
pom |
pum |
212 9738 t |
32 0 m 32 -256 l 71 -256 l 71 -217 l 81 -236 90 -248 99 -253 ct 107 -259 117 -262 127 -262 ct |
141 -262 156 -257 171 -248 ct 156 -208 l 146 -214 135 -217 124 -217 ct 115 -217 106 -214 99 -209 ct |
91 -203 86 -195 83 -185 ct 78 -169 76 -152 76 -134 ct 76 0 l 32 0 l p ef |
365 0 m 365 -37 l 346 -8 318 6 284 6 ct 269 6 255 3 242 -3 ct 229 -8 219 -16 213 -25 ct |
206 -33 202 -44 199 -57 ct 197 -65 197 -79 197 -97 ct 197 -256 l 240 -256 l |
240 -114 l 240 -91 241 -76 243 -68 ct 245 -57 251 -48 260 -41 ct 269 -35 280 -31 293 -31 ct |
306 -31 318 -35 330 -41 ct 341 -48 349 -57 354 -69 ct 358 -80 361 -97 361 -119 ct |
361 -256 l 404 -256 l 404 0 l 365 0 l p ef |
473 0 m 473 -256 l 512 -256 l 512 -220 l 530 -248 558 -262 593 -262 ct |
609 -262 623 -259 636 -254 ct 649 -248 658 -241 665 -232 ct 671 -223 676 -212 678 -200 ct |
680 -192 681 -178 681 -158 ct 681 0 l 637 0 l 637 -156 l 637 -174 636 -187 632 -196 ct |
629 -204 623 -211 614 -217 ct 606 -222 596 -224 584 -224 ct 566 -224 550 -218 536 -207 ct |
523 -195 516 -173 516 -140 ct 516 0 l 473 0 l p ef |
731 -106 m 731 -150 l 864 -150 l 864 -106 l 731 -106 l p ef |
1008 -39 m 1015 -1 l 1002 2 991 3 982 3 ct 966 3 954 0 945 -4 ct 936 -9 930 -16 927 -24 ct |
923 -32 922 -49 922 -75 ct 922 -223 l 890 -223 l 890 -257 l 922 -257 l |
922 -320 l 965 -346 l 965 -257 l 1008 -257 l 1008 -223 l 965 -223 l |
965 -73 l 965 -61 965 -53 967 -49 ct 969 -46 971 -43 974 -41 ct 978 -39 983 -38 989 -38 ct |
994 -38 1000 -38 1008 -39 ct p ef |
1051 99 m 1046 58 l 1055 60 1064 62 1071 62 ct 1080 62 1088 60 1094 57 ct |
1100 54 1104 49 1108 43 ct 1111 39 1115 28 1121 11 ct 1122 9 1123 5 1125 1 ct 1028 -256 l |
1075 -256 l 1128 -108 l 1135 -89 1141 -69 1147 -48 ct 1152 -68 1158 -88 1164 -107 ct |
1219 -256 l 1263 -256 l 1165 4 l 1155 33 1147 52 1141 63 ct 1133 77 1124 87 1114 94 ct |
1104 101 1092 104 1079 104 ct 1070 104 1061 102 1051 99 ct p ef |
1303 98 m 1303 -256 l 1342 -256 l 1342 -223 l 1351 -236 1362 -246 1374 -252 ct |
1385 -259 1400 -262 1416 -262 ct 1438 -262 1458 -256 1474 -245 ct 1491 -234 1504 -218 1512 -197 ct |
1521 -177 1525 -155 1525 -130 ct 1525 -104 1520 -80 1511 -59 ct 1501 -38 1488 -22 1470 -11 ct |
1452 0 1433 6 1413 6 ct 1399 6 1386 3 1374 -3 ct 1363 -10 1353 -17 1346 -27 ct |
1346 98 l 1303 98 l p |
1342 -127 m 1342 -94 1349 -69 1362 -54 ct 1375 -38 1391 -30 1410 -30 ct 1430 -30 1446 -38 1460 -54 ct |
1474 -71 1481 -96 1481 -130 ct 1481 -163 1474 -187 1460 -204 ct 1447 -220 1431 -228 1412 -228 ct |
1394 -228 1377 -219 1363 -202 ct 1349 -185 1342 -160 1342 -127 ct p ef |
1753 -82 m 1798 -77 l 1791 -51 1778 -30 1758 -16 ct 1739 -1 1715 6 1685 6 ct |
1648 6 1618 -6 1596 -29 ct 1574 -52 1563 -84 1563 -126 ct 1563 -169 1574 -202 1596 -226 ct |
1619 -250 1647 -262 1683 -262 ct 1717 -262 1745 -250 1767 -227 ct 1788 -204 1799 -171 1799 -129 ct |
1799 -126 1799 -122 1799 -117 ct 1608 -117 l 1610 -89 1618 -67 1632 -52 ct |
1646 -37 1664 -30 1685 -30 ct 1701 -30 1715 -34 1726 -42 ct 1737 -51 1746 -64 1753 -82 ct |
p |
1610 -153 m 1753 -153 l 1751 -174 1746 -190 1737 -201 ct 1723 -218 1705 -226 1683 -226 ct |
1663 -226 1647 -219 1633 -206 ct 1619 -193 1612 -175 1610 -153 ct p ef |
1993 -304 m 1993 -354 l 2036 -354 l 2036 -304 l 1993 -304 l p |
1993 0 m 1993 -256 l 2036 -256 l 2036 0 l 1993 0 l p ef |
2103 0 m 2103 -256 l 2142 -256 l 2142 -220 l 2160 -248 2188 -262 2223 -262 ct |
2239 -262 2253 -259 2266 -254 ct 2279 -248 2288 -241 2295 -232 ct 2301 -223 2306 -212 2308 -200 ct |
2310 -192 2311 -178 2311 -158 ct 2311 0 l 2267 0 l 2267 -156 l 2267 -174 2266 -187 2262 -196 ct |
2259 -204 2253 -211 2244 -217 ct 2236 -222 2226 -224 2214 -224 ct 2196 -224 2180 -218 2166 -207 ct |
2153 -195 2146 -173 2146 -140 ct 2146 0 l 2103 0 l p ef |
2472 -39 m 2479 -1 l 2466 2 2455 3 2446 3 ct 2430 3 2418 0 2409 -4 ct 2400 -9 2394 -16 2391 -24 ct |
2387 -32 2386 -49 2386 -75 ct 2386 -223 l 2354 -223 l 2354 -257 l 2386 -257 l |
2386 -320 l 2429 -346 l 2429 -257 l 2472 -257 l 2472 -223 l 2429 -223 l |
2429 -73 l 2429 -61 2429 -53 2431 -49 ct 2433 -46 2435 -43 2438 -41 ct 2442 -39 2447 -38 2453 -38 ct |
2458 -38 2464 -38 2472 -39 ct p ef |
2693 -82 m 2738 -77 l 2731 -51 2718 -30 2698 -16 ct 2679 -1 2655 6 2625 6 ct |
2588 6 2558 -6 2536 -29 ct 2514 -52 2503 -84 2503 -126 ct 2503 -169 2514 -202 2536 -226 ct |
2559 -250 2587 -262 2623 -262 ct 2657 -262 2685 -250 2707 -227 ct 2728 -204 2739 -171 2739 -129 ct |
2739 -126 2739 -122 2739 -117 ct 2548 -117 l 2550 -89 2558 -67 2572 -52 ct |
2586 -37 2604 -30 2625 -30 ct 2641 -30 2655 -34 2666 -42 ct 2677 -51 2686 -64 2693 -82 ct |
p |
2550 -153 m 2693 -153 l 2691 -174 2686 -190 2677 -201 ct 2663 -218 2645 -226 2623 -226 ct |
2603 -226 2587 -219 2573 -206 ct 2559 -193 2552 -175 2550 -153 ct p ef |
2792 0 m 2792 -256 l 2831 -256 l 2831 -217 l 2841 -236 2850 -248 2859 -253 ct |
2867 -259 2877 -262 2887 -262 ct 2901 -262 2916 -257 2931 -248 ct 2916 -208 l |
2906 -214 2895 -217 2884 -217 ct 2875 -217 2866 -214 2859 -209 ct 2851 -203 2846 -195 2843 -185 ct |
2838 -169 2836 -152 2836 -134 ct 2836 0 l 2792 0 l p ef |
2968 1 m 2968 -222 l 2930 -222 l 2930 -256 l 2968 -256 l 2968 -283 l |
2968 -300 2969 -313 2973 -321 ct 2977 -332 2984 -342 2995 -349 ct 3005 -356 3020 -359 3039 -359 ct |
3051 -359 3065 -358 3079 -355 ct 3073 -317 l 3064 -318 3055 -319 3047 -319 ct |
3034 -319 3025 -316 3019 -311 ct 3014 -305 3011 -295 3011 -279 ct 3011 -256 l |
3061 -256 l 3061 -222 l 3011 -222 l 3011 1 l 2968 1 l p ef |
3265 -31 m 3249 -18 3233 -8 3218 -2 ct 3203 3 3187 6 3170 6 ct 3142 6 3121 -1 3106 -15 ct |
3090 -28 3083 -46 3083 -67 ct 3083 -80 3086 -91 3091 -102 ct 3097 -112 3105 -120 3114 -127 ct |
3123 -133 3134 -138 3145 -141 ct 3154 -143 3166 -145 3184 -148 ct 3219 -152 3245 -157 3261 -163 ct |
3261 -168 3261 -172 3261 -174 ct 3261 -192 3257 -204 3249 -211 ct 3238 -221 3221 -226 3200 -226 ct |
3179 -226 3164 -222 3154 -215 ct 3145 -208 3137 -195 3133 -177 ct 3090 -183 l |
3094 -201 3101 -216 3109 -227 ct 3118 -238 3131 -247 3148 -253 ct 3164 -259 3184 -262 3206 -262 ct |
3228 -262 3246 -259 3259 -254 ct 3273 -249 3283 -243 3289 -235 ct 3296 -227 3300 -217 3303 -205 ct |
3304 -198 3305 -184 3305 -165 ct 3305 -107 l 3305 -67 3306 -41 3308 -31 ct |
3310 -20 3313 -10 3319 0 ct 3273 0 l 3269 -9 3266 -19 3265 -31 ct p |
3261 -128 m 3245 -122 3222 -117 3190 -112 ct 3172 -109 3160 -107 3152 -103 ct |
3145 -100 3139 -95 3135 -89 ct 3131 -83 3129 -76 3129 -69 ct 3129 -57 3134 -47 3142 -40 ct |
3151 -32 3164 -28 3181 -28 ct 3198 -28 3212 -32 3225 -39 ct 3238 -46 3248 -56 3254 -69 ct |
3259 -79 3261 -93 3261 -113 ct 3261 -128 l p ef |
3540 -94 m 3582 -88 l 3578 -59 3566 -36 3547 -19 ct 3527 -2 3504 6 3476 6 ct |
3441 6 3413 -5 3391 -28 ct 3370 -51 3359 -84 3359 -127 ct 3359 -155 3364 -179 3373 -199 ct |
3382 -220 3396 -236 3415 -246 ct 3434 -257 3454 -262 3476 -262 ct 3504 -262 3527 -255 3544 -241 ct |
3562 -227 3573 -207 3578 -181 ct 3536 -174 l 3532 -191 3525 -204 3515 -213 ct |
3505 -222 3492 -226 3478 -226 ct 3456 -226 3438 -218 3424 -202 ct 3411 -187 3404 -162 3404 -128 ct |
3404 -94 3411 -69 3424 -53 ct 3437 -38 3454 -30 3475 -30 ct 3492 -30 3507 -35 3518 -45 ct |
3529 -56 3537 -72 3540 -94 ct p ef |
3798 -82 m 3843 -77 l 3836 -51 3823 -30 3803 -16 ct 3784 -1 3760 6 3730 6 ct |
3693 6 3663 -6 3641 -29 ct 3619 -52 3608 -84 3608 -126 ct 3608 -169 3619 -202 3641 -226 ct |
3664 -250 3692 -262 3728 -262 ct 3762 -262 3790 -250 3812 -227 ct 3833 -204 3844 -171 3844 -129 ct |
3844 -126 3844 -122 3844 -117 ct 3653 -117 l 3655 -89 3663 -67 3677 -52 ct |
3691 -37 3709 -30 3730 -30 ct 3746 -30 3760 -34 3771 -42 ct 3782 -51 3791 -64 3798 -82 ct |
p |
3655 -153 m 3798 -153 l 3796 -174 3791 -190 3782 -201 ct 3768 -218 3750 -226 3728 -226 ct |
3708 -226 3692 -219 3678 -206 ct 3664 -193 3657 -175 3655 -153 ct p ef |
4132 -39 m 4139 -1 l 4126 2 4115 3 4106 3 ct 4090 3 4078 0 4069 -4 ct 4060 -9 4054 -16 4051 -24 ct |
4047 -32 4046 -49 4046 -75 ct 4046 -223 l 4014 -223 l 4014 -257 l 4046 -257 l |
4046 -320 l 4089 -346 l 4089 -257 l 4132 -257 l 4132 -223 l 4089 -223 l |
4089 -73 l 4089 -61 4089 -53 4091 -49 ct 4093 -46 4095 -43 4098 -41 ct 4102 -39 4107 -38 4113 -38 ct |
4118 -38 4124 -38 4132 -39 ct p ef |
4175 99 m 4170 58 l 4179 60 4188 62 4195 62 ct 4204 62 4212 60 4218 57 ct |
4224 54 4228 49 4232 43 ct 4235 39 4239 28 4245 11 ct 4246 9 4247 5 4249 1 ct 4152 -256 l |
4199 -256 l 4252 -108 l 4259 -89 4265 -69 4271 -48 ct 4276 -68 4282 -88 4288 -107 ct |
4343 -256 l 4387 -256 l 4289 4 l 4279 33 4271 52 4265 63 ct 4257 77 4248 87 4238 94 ct |
4228 101 4216 104 4203 104 ct 4194 104 4185 102 4175 99 ct p ef |
4427 98 m 4427 -256 l 4466 -256 l 4466 -223 l 4475 -236 4486 -246 4498 -252 ct |
4509 -259 4524 -262 4540 -262 ct 4562 -262 4582 -256 4598 -245 ct 4615 -234 4628 -218 4636 -197 ct |
4645 -177 4649 -155 4649 -130 ct 4649 -104 4644 -80 4635 -59 ct 4625 -38 4612 -22 4594 -11 ct |
4576 0 4557 6 4537 6 ct 4523 6 4510 3 4498 -3 ct 4487 -10 4477 -17 4470 -27 ct |
4470 98 l 4427 98 l p |
4466 -127 m 4466 -94 4473 -69 4486 -54 ct 4499 -38 4515 -30 4534 -30 ct 4554 -30 4570 -38 4584 -54 ct |
4598 -71 4605 -96 4605 -130 ct 4605 -163 4598 -187 4584 -204 ct 4571 -220 4555 -228 4536 -228 ct |
4518 -228 4501 -219 4487 -202 ct 4473 -185 4466 -160 4466 -127 ct p ef |
4877 -82 m 4922 -77 l 4915 -51 4902 -30 4882 -16 ct 4863 -1 4839 6 4809 6 ct |
4772 6 4742 -6 4720 -29 ct 4698 -52 4687 -84 4687 -126 ct 4687 -169 4698 -202 4720 -226 ct |
4743 -250 4771 -262 4807 -262 ct 4841 -262 4869 -250 4891 -227 ct 4912 -204 4923 -171 4923 -129 ct |
4923 -126 4923 -122 4923 -117 ct 4732 -117 l 4734 -89 4742 -67 4756 -52 ct |
4770 -37 4788 -30 4809 -30 ct 4825 -30 4839 -34 4850 -42 ct 4861 -51 4870 -64 4877 -82 ct |
p |
4734 -153 m 4877 -153 l 4875 -174 4870 -190 4861 -201 ct 4847 -218 4829 -226 4807 -226 ct |
4787 -226 4771 -219 4757 -206 ct 4743 -193 4736 -175 4734 -153 ct p ef |
5284 -94 m 5326 -88 l 5322 -59 5310 -36 5291 -19 ct 5271 -2 5248 6 5220 6 ct |
5185 6 5157 -5 5135 -28 ct 5114 -51 5103 -84 5103 -127 ct 5103 -155 5108 -179 5117 -199 ct |
5126 -220 5140 -236 5159 -246 ct 5178 -257 5198 -262 5220 -262 ct 5248 -262 5271 -255 5288 -241 ct |
5306 -227 5317 -207 5322 -181 ct 5280 -174 l 5276 -191 5269 -204 5259 -213 ct |
5249 -222 5236 -226 5222 -226 ct 5200 -226 5182 -218 5168 -202 ct 5155 -187 5148 -162 5148 -128 ct |
5148 -94 5155 -69 5168 -53 ct 5181 -38 5198 -30 5219 -30 ct 5236 -30 5251 -35 5262 -45 ct |
5273 -56 5281 -72 5284 -94 ct p ef |
5367 0 m 5367 -354 l 5410 -354 l 5410 -227 l 5430 -250 5456 -262 5487 -262 ct |
5506 -262 5522 -258 5536 -251 ct 5550 -243 5560 -233 5566 -220 ct 5572 -207 5575 -187 5575 -162 ct |
5575 0 l 5532 0 l 5532 -162 l 5532 -184 5527 -200 5518 -210 ct 5508 -220 5495 -225 5478 -225 ct |
5465 -225 5453 -221 5441 -215 ct 5430 -208 5422 -199 5417 -187 ct 5412 -176 5410 -160 5410 -140 ct |
5410 0 l 5367 0 l p ef |
5817 -82 m 5862 -77 l 5855 -51 5842 -30 5822 -16 ct 5803 -1 5779 6 5749 6 ct |
5712 6 5682 -6 5660 -29 ct 5638 -52 5627 -84 5627 -126 ct 5627 -169 5638 -202 5660 -226 ct |
5683 -250 5711 -262 5747 -262 ct 5781 -262 5809 -250 5831 -227 ct 5852 -204 5863 -171 5863 -129 ct |
5863 -126 5863 -122 5863 -117 ct 5672 -117 l 5674 -89 5682 -67 5696 -52 ct |
5710 -37 5728 -30 5749 -30 ct 5765 -30 5779 -34 5790 -42 ct 5801 -51 5810 -64 5817 -82 ct |
p |
5674 -153 m 5817 -153 l 5815 -174 5810 -190 5801 -201 ct 5787 -218 5769 -226 5747 -226 ct |
5727 -226 5711 -219 5697 -206 ct 5683 -193 5676 -175 5674 -153 ct p ef |
6084 -94 m 6126 -88 l 6122 -59 6110 -36 6091 -19 ct 6071 -2 6048 6 6020 6 ct |
5985 6 5957 -5 5935 -28 ct 5914 -51 5903 -84 5903 -127 ct 5903 -155 5908 -179 5917 -199 ct |
5926 -220 5940 -236 5959 -246 ct 5978 -257 5998 -262 6020 -262 ct 6048 -262 6071 -255 6088 -241 ct |
6106 -227 6117 -207 6122 -181 ct 6080 -174 l 6076 -191 6069 -204 6059 -213 ct |
6049 -222 6036 -226 6022 -226 ct 6000 -226 5982 -218 5968 -202 ct 5955 -187 5948 -162 5948 -128 ct |
5948 -94 5955 -69 5968 -53 ct 5981 -38 5998 -30 6019 -30 ct 6036 -30 6051 -35 6062 -45 ct |
6073 -56 6081 -72 6084 -94 ct p ef |
6167 0 m 6167 -354 l 6210 -354 l 6210 -152 l 6313 -256 l 6369 -256 l |
6271 -161 l 6379 0 l 6326 0 l 6241 -131 l 6210 -102 l 6210 0 l 6167 0 l |
p ef |
6399 -76 m 6442 -83 l 6445 -66 6451 -53 6462 -43 ct 6473 -34 6489 -30 6508 -30 ct |
6528 -30 6543 -34 6553 -42 ct 6563 -50 6567 -60 6567 -70 ct 6567 -80 6563 -88 6555 -94 ct |
6549 -97 6534 -102 6510 -108 ct 6478 -116 6456 -123 6444 -129 ct 6432 -135 6422 -143 6416 -154 ct |
6410 -164 6406 -175 6406 -188 ct 6406 -199 6409 -210 6414 -220 ct 6420 -229 6427 -237 6436 -244 ct |
6442 -249 6452 -253 6463 -257 ct 6475 -260 6487 -262 6501 -262 ct 6521 -262 6538 -259 6554 -253 ct |
6569 -247 6580 -239 6587 -230 ct 6595 -220 6600 -206 6602 -190 ct 6560 -184 l |
6558 -197 6552 -208 6543 -215 ct 6534 -222 6521 -226 6504 -226 ct 6484 -226 6470 -223 6461 -216 ct |
6453 -210 6448 -202 6448 -193 ct 6448 -187 6450 -182 6454 -178 ct 6457 -173 6463 -169 6470 -166 ct |
6475 -165 6487 -161 6509 -155 ct 6539 -147 6561 -140 6573 -135 ct 6585 -130 6595 -122 6602 -112 ct |
6608 -102 6612 -90 6612 -75 ct 6612 -61 6608 -47 6599 -34 ct 6591 -21 6579 -11 6563 -4 ct |
6547 2 6529 6 6509 6 ct 6475 6 6450 -1 6433 -15 ct 6415 -29 6404 -49 6399 -76 ct |
p ef |
pom |
0.601 0.800 1.000 c 22583 13816 m 18598 13816 l 18598 11276 l 26567 11276 l |
26567 13816 l 22583 13816 l p ef |
0.003 0.003 0.503 c 22583 13816 m 18598 13816 l 18598 11276 l 26567 11276 l |
26567 13816 l 22583 13816 l pc |
pum |
19424 12212 t |
0.003 0.003 0.003 c 47 -455 m 228 -455 l 264 -455 291 -453 309 -450 ct 326 -447 342 -441 356 -431 ct |
370 -422 382 -409 391 -393 ct 400 -378 405 -360 405 -340 ct 405 -319 399 -299 388 -281 ct |
376 -264 361 -250 341 -241 ct 369 -233 390 -220 405 -200 ct 420 -181 427 -158 427 -131 ct |
427 -111 422 -91 413 -71 ct 403 -51 390 -36 373 -24 ct 357 -12 336 -5 312 -2 ct |
297 -1 260 0 201 0 ct 47 0 l 47 -455 l p |
138 -379 m 138 -274 l 198 -274 l 234 -274 256 -274 265 -275 ct 281 -277 293 -283 302 -292 ct |
311 -301 316 -312 316 -327 ct 316 -341 312 -353 304 -361 ct 296 -370 285 -376 269 -377 ct |
260 -378 234 -379 191 -379 ct 138 -379 l p |
138 -198 m 138 -76 l 223 -76 l 256 -76 277 -77 286 -79 ct 300 -82 311 -88 320 -97 ct |
328 -107 332 -120 332 -136 ct 332 -150 329 -161 322 -171 ct 316 -180 306 -187 294 -191 ct |
281 -196 254 -198 212 -198 ct 138 -198 l p ef |
693 -105 m 780 -91 l 769 -59 751 -35 727 -18 ct 703 -1 673 7 637 7 ct 580 7 537 -12 510 -49 ct |
488 -79 477 -117 477 -163 ct 477 -218 491 -260 520 -291 ct 548 -322 585 -338 628 -338 ct |
677 -338 716 -322 744 -289 ct 772 -257 786 -207 785 -140 ct 566 -140 l 567 -114 574 -94 588 -80 ct |
601 -65 618 -58 638 -58 ct 651 -58 663 -62 672 -69 ct 681 -77 689 -89 693 -105 ct |
p |
698 -193 m 698 -219 691 -238 679 -251 ct 666 -264 651 -271 633 -271 ct 614 -271 599 -264 586 -250 ct |
574 -236 568 -217 568 -193 ct 698 -193 l p ef |
941 -455 m 941 -288 l 970 -321 1003 -337 1042 -337 ct 1062 -337 1080 -333 1096 -326 ct |
1113 -318 1125 -309 1133 -297 ct 1141 -286 1147 -273 1150 -259 ct 1153 -245 1154 -223 1154 -193 ct |
1154 0 l 1067 0 l 1067 -174 l 1067 -209 1065 -231 1062 -240 ct 1059 -249 1053 -257 1044 -262 ct |
1036 -268 1026 -270 1013 -270 ct 999 -270 986 -267 974 -260 ct 963 -253 955 -242 949 -228 ct |
944 -214 941 -193 941 -165 ct 941 0 l 854 0 l 854 -455 l 941 -455 l p ef |
1309 -230 m 1230 -244 l 1239 -276 1254 -299 1276 -315 ct 1297 -330 1329 -338 1372 -338 ct |
1411 -338 1440 -333 1459 -324 ct 1478 -315 1491 -303 1499 -289 ct 1507 -275 1511 -249 1511 -211 ct |
1510 -109 l 1510 -80 1511 -58 1514 -45 ct 1517 -31 1522 -16 1530 0 ct 1444 0 l |
1441 -6 1439 -15 1435 -26 ct 1434 -31 1433 -35 1432 -36 ct 1417 -22 1401 -11 1384 -4 ct |
1367 3 1349 7 1330 7 ct 1296 7 1269 -2 1250 -21 ct 1230 -39 1221 -62 1221 -91 ct |
1221 -109 1225 -126 1234 -140 ct 1243 -155 1255 -166 1271 -174 ct 1287 -182 1310 -188 1341 -194 ct |
1381 -202 1410 -209 1425 -216 ct 1425 -224 l 1425 -241 1421 -253 1413 -260 ct |
1405 -267 1389 -271 1366 -271 ct 1351 -271 1338 -268 1330 -262 ct 1321 -256 1314 -245 1309 -230 ct |
p |
1425 -159 m 1414 -155 1396 -151 1372 -145 ct 1348 -140 1332 -135 1325 -130 ct |
1313 -122 1308 -112 1308 -99 ct 1308 -87 1312 -77 1321 -68 ct 1331 -59 1342 -54 1356 -54 ct |
1372 -54 1387 -60 1401 -70 ct 1412 -78 1419 -87 1422 -99 ct 1424 -106 1425 -121 1425 -141 ct |
1425 -159 l p ef |
1685 0 m 1552 -330 l 1644 -330 l 1706 -161 l 1724 -105 l 1729 -119 1732 -129 1733 -133 ct |
1736 -143 1739 -152 1742 -161 ct 1805 -330 l 1894 -330 l 1764 0 l 1685 0 l |
p ef |
1947 -374 m 1947 -455 l 2034 -455 l 2034 -374 l 1947 -374 l p |
1947 0 m 1947 -330 l 2034 -330 l 2034 0 l 1947 0 l p ef |
2104 -170 m 2104 -199 2112 -227 2126 -254 ct 2140 -281 2160 -301 2186 -316 ct |
2213 -330 2242 -337 2274 -337 ct 2324 -337 2365 -321 2397 -289 ct 2428 -256 2444 -215 2444 -166 ct |
2444 -116 2428 -75 2396 -42 ct 2364 -9 2323 7 2275 7 ct 2244 7 2216 0 2188 -13 ct |
2161 -27 2140 -47 2126 -73 ct 2112 -100 2104 -132 2104 -170 ct p |
2194 -165 m 2194 -132 2201 -107 2217 -90 ct 2232 -73 2252 -64 2274 -64 ct 2297 -64 2316 -73 2332 -90 ct |
2347 -107 2355 -133 2355 -166 ct 2355 -198 2347 -223 2332 -240 ct 2316 -257 2297 -266 2274 -266 ct |
2252 -266 2232 -257 2217 -240 ct 2201 -223 2194 -198 2194 -165 ct p ef |
2597 0 m 2510 0 l 2510 -330 l 2591 -330 l 2591 -283 l 2605 -305 2617 -319 2628 -326 ct |
2639 -333 2652 -337 2666 -337 ct 2686 -337 2705 -332 2723 -321 ct 2696 -245 l |
2682 -254 2668 -259 2655 -259 ct 2643 -259 2633 -255 2624 -249 ct 2616 -242 2609 -230 2604 -212 ct |
2599 -195 2597 -158 2597 -102 ct 2597 0 l p ef |
3239 0 m 3158 0 l 3158 -49 l 3144 -30 3128 -16 3110 -7 ct 3092 2 3073 7 3055 7 ct |
3017 7 2984 -8 2958 -39 ct 2931 -69 2917 -112 2917 -167 ct 2917 -223 2930 -265 2956 -294 ct |
2983 -323 3016 -338 3056 -338 ct 3093 -338 3125 -322 3151 -292 ct 3151 -455 l |
3239 -455 l 3239 0 l p |
3006 -173 m 3006 -137 3011 -112 3021 -96 ct 3035 -73 3054 -62 3080 -62 ct 3100 -62 3117 -70 3131 -88 ct |
3145 -105 3152 -130 3152 -164 ct 3152 -202 3145 -229 3131 -246 ct 3118 -263 3100 -271 3079 -271 ct |
3058 -271 3041 -263 3027 -246 ct 3013 -230 3006 -205 3006 -173 ct p ef |
3517 -105 m 3604 -91 l 3593 -59 3575 -35 3551 -18 ct 3527 -1 3497 7 3461 7 ct |
3404 7 3361 -12 3334 -49 ct 3312 -79 3301 -117 3301 -163 ct 3301 -218 3315 -260 3344 -291 ct |
3372 -322 3409 -338 3452 -338 ct 3501 -338 3540 -322 3568 -289 ct 3596 -257 3610 -207 3609 -140 ct |
3390 -140 l 3391 -114 3398 -94 3412 -80 ct 3425 -65 3442 -58 3462 -58 ct 3475 -58 3487 -62 3496 -69 ct |
3505 -77 3513 -89 3517 -105 ct p |
3522 -193 m 3522 -219 3515 -238 3503 -251 ct 3490 -264 3475 -271 3457 -271 ct |
3438 -271 3423 -264 3410 -250 ct 3398 -236 3392 -217 3392 -193 ct 3522 -193 l |
p ef |
3647 -95 m 3734 -108 l 3738 -91 3746 -78 3757 -69 ct 3768 -60 3784 -56 3805 -56 ct |
3827 -56 3844 -60 3856 -68 ct 3863 -74 3867 -82 3867 -92 ct 3867 -98 3865 -104 3861 -108 ct |
3856 -112 3847 -116 3832 -120 ct 3761 -135 3717 -149 3698 -162 ct 3672 -180 3659 -205 3659 -236 ct |
3659 -265 3670 -289 3693 -308 ct 3715 -328 3750 -338 3798 -338 ct 3843 -338 3876 -330 3898 -316 ct |
3920 -301 3935 -279 3943 -250 ct 3861 -235 l 3858 -248 3851 -258 3841 -265 ct |
3831 -272 3817 -275 3799 -275 ct 3776 -275 3760 -272 3750 -265 ct 3743 -261 3740 -255 3740 -248 ct |
3740 -241 3743 -236 3749 -232 ct 3756 -226 3784 -218 3830 -207 ct 3876 -197 3909 -184 3927 -168 ct |
3945 -153 3954 -131 3954 -104 ct 3954 -73 3942 -47 3917 -26 ct 3891 -4 3854 7 3805 7 ct |
3760 7 3724 -2 3698 -20 ct 3672 -39 3655 -63 3647 -95 ct p ef |
4317 -233 m 4231 -217 l 4228 -234 4221 -247 4211 -256 ct 4201 -265 4188 -269 4171 -269 ct |
4150 -269 4132 -262 4119 -246 ct 4106 -231 4100 -206 4100 -171 ct 4100 -132 4107 -104 4120 -88 ct |
4133 -72 4150 -64 4173 -64 ct 4189 -64 4203 -69 4213 -78 ct 4224 -88 4231 -104 4235 -127 ct |
4321 -112 l 4312 -73 4295 -43 4270 -23 ct 4245 -3 4211 7 4168 7 ct 4120 7 4082 -8 4053 -39 ct |
4025 -69 4010 -111 4010 -165 ct 4010 -219 4025 -262 4053 -292 ct 4082 -322 4121 -338 4170 -338 ct |
4210 -338 4242 -329 4266 -312 ct 4289 -294 4306 -268 4317 -233 ct p ef |
4464 0 m 4377 0 l 4377 -330 l 4458 -330 l 4458 -283 l 4472 -305 4484 -319 4495 -326 ct |
4506 -333 4519 -337 4533 -337 ct 4553 -337 4572 -332 4590 -321 ct 4563 -245 l |
4549 -254 4535 -259 4522 -259 ct 4510 -259 4500 -255 4491 -249 ct 4483 -242 4476 -230 4471 -212 ct |
4466 -195 4464 -158 4464 -102 ct 4464 0 l p ef |
4626 -374 m 4626 -455 l 4713 -455 l 4713 -374 l 4626 -374 l p |
4626 0 m 4626 -330 l 4713 -330 l 4713 0 l 4626 0 l p ef |
4801 -330 m 4882 -330 l 4882 -281 l 4893 -298 4907 -311 4925 -322 ct 4943 -332 4963 -337 4985 -337 ct |
5023 -337 5056 -322 5082 -292 ct 5109 -262 5122 -220 5122 -167 ct 5122 -112 5109 -69 5082 -39 ct |
5055 -8 5023 7 4984 7 ct 4966 7 4950 3 4935 -4 ct 4920 -11 4905 -24 4888 -41 ct |
4888 125 l 4801 125 l 4801 -330 l p |
4887 -171 m 4887 -134 4895 -106 4909 -89 ct 4924 -71 4942 -62 4963 -62 ct 4983 -62 5000 -70 5013 -87 ct |
5027 -103 5034 -129 5034 -166 ct 5034 -201 5027 -226 5013 -243 ct 4999 -260 4982 -268 4961 -268 ct |
4940 -268 4922 -260 4908 -244 ct 4894 -227 4887 -203 4887 -171 ct p ef |
5345 -330 m 5345 -260 l 5285 -260 l 5285 -128 l 5285 -101 5286 -85 5287 -81 ct |
5288 -76 5290 -73 5295 -70 ct 5299 -67 5303 -65 5309 -65 ct 5317 -65 5329 -68 5344 -74 ct |
5352 -6 l 5331 3 5309 7 5283 7 ct 5267 7 5253 4 5240 -1 ct 5228 -6 5219 -13 5213 -21 ct |
5207 -30 5203 -41 5200 -55 ct 5199 -66 5198 -86 5198 -117 ct 5198 -260 l 5158 -260 l |
5158 -330 l 5198 -330 l 5198 -395 l 5285 -446 l 5285 -330 l 5345 -330 l |
p ef |
5405 -374 m 5405 -455 l 5492 -455 l 5492 -374 l 5405 -374 l p |
5405 0 m 5405 -330 l 5492 -330 l 5492 0 l 5405 0 l p ef |
5562 -170 m 5562 -199 5570 -227 5584 -254 ct 5598 -281 5618 -301 5644 -316 ct |
5671 -330 5700 -337 5732 -337 ct 5782 -337 5823 -321 5855 -289 ct 5886 -256 5902 -215 5902 -166 ct |
5902 -116 5886 -75 5854 -42 ct 5822 -9 5781 7 5733 7 ct 5702 7 5674 0 5646 -13 ct |
5619 -27 5598 -47 5584 -73 ct 5570 -100 5562 -132 5562 -170 ct p |
5652 -165 m 5652 -132 5659 -107 5675 -90 ct 5690 -73 5710 -64 5732 -64 ct 5755 -64 5774 -73 5790 -90 ct |
5805 -107 5813 -133 5813 -166 ct 5813 -198 5805 -223 5790 -240 ct 5774 -257 5755 -266 5732 -266 ct |
5710 -266 5690 -257 5675 -240 ct 5659 -223 5652 -198 5652 -165 ct p ef |
6272 0 m 6185 0 l 6185 -168 l 6185 -204 6183 -227 6179 -237 ct 6176 -248 6170 -256 6161 -262 ct |
6153 -267 6143 -270 6131 -270 ct 6116 -270 6102 -266 6090 -258 ct 6078 -250 6070 -239 6066 -225 ct |
6061 -211 6059 -186 6059 -149 ct 6059 0 l 5972 0 l 5972 -330 l 6053 -330 l |
6053 -281 l 6082 -318 6118 -337 6161 -337 ct 6181 -337 6198 -334 6214 -327 ct |
6230 -320 6242 -311 6250 -300 ct 6258 -289 6264 -277 6267 -263 ct 6270 -250 6272 -230 6272 -205 ct |
6272 0 l p ef |
pom |
pum |
19492 12796 t |
73 0 m 32 0 l 32 -354 l 76 -354 l 76 -227 l 94 -250 117 -262 146 -262 ct |
162 -262 177 -259 191 -252 ct 205 -246 216 -237 225 -225 ct 235 -214 242 -200 247 -184 ct |
252 -168 254 -150 254 -132 ct 254 -88 244 -54 222 -30 ct 200 -6 174 6 144 6 ct |
114 6 90 -7 73 -32 ct 73 0 l p |
72 -130 m 72 -99 76 -77 85 -63 ct 98 -41 117 -30 140 -30 ct 159 -30 176 -38 189 -54 ct |
203 -71 210 -95 210 -128 ct 210 -162 203 -186 190 -202 ct 177 -218 161 -226 142 -226 ct |
123 -226 107 -218 93 -201 ct 79 -185 72 -161 72 -130 ct p ef |
483 -82 m 528 -77 l 521 -51 508 -30 488 -16 ct 469 -1 445 6 415 6 ct 378 6 348 -6 326 -29 ct |
304 -52 293 -84 293 -126 ct 293 -169 304 -202 326 -226 ct 349 -250 377 -262 413 -262 ct |
447 -262 475 -250 497 -227 ct 518 -204 529 -171 529 -129 ct 529 -126 529 -122 529 -117 ct |
338 -117 l 340 -89 348 -67 362 -52 ct 376 -37 394 -30 415 -30 ct 431 -30 445 -34 456 -42 ct |
467 -51 476 -64 483 -82 ct p |
340 -153 m 483 -153 l 481 -174 476 -190 467 -201 ct 453 -218 435 -226 413 -226 ct |
393 -226 377 -219 363 -206 ct 349 -193 342 -175 340 -153 ct p ef |
583 0 m 583 -354 l 626 -354 l 626 -227 l 646 -250 672 -262 703 -262 ct |
722 -262 738 -258 752 -251 ct 766 -243 776 -233 782 -220 ct 788 -207 791 -187 791 -162 ct |
791 0 l 748 0 l 748 -162 l 748 -184 743 -200 734 -210 ct 724 -220 711 -225 694 -225 ct |
681 -225 669 -221 657 -215 ct 646 -208 638 -199 633 -187 ct 628 -176 626 -160 626 -140 ct |
626 0 l 583 0 l p ef |
1026 -31 m 1010 -18 994 -8 979 -2 ct 964 3 948 6 931 6 ct 903 6 882 -1 867 -15 ct |
851 -28 844 -46 844 -67 ct 844 -80 847 -91 852 -102 ct 858 -112 866 -120 875 -127 ct |
884 -133 895 -138 906 -141 ct 915 -143 927 -145 945 -148 ct 980 -152 1006 -157 1022 -163 ct |
1022 -168 1022 -172 1022 -174 ct 1022 -192 1018 -204 1010 -211 ct 999 -221 982 -226 961 -226 ct |
940 -226 925 -222 915 -215 ct 906 -208 898 -195 894 -177 ct 851 -183 l 855 -201 862 -216 870 -227 ct |
879 -238 892 -247 909 -253 ct 925 -259 945 -262 967 -262 ct 989 -262 1007 -259 1020 -254 ct |
1034 -249 1044 -243 1050 -235 ct 1057 -227 1061 -217 1064 -205 ct 1065 -198 1066 -184 1066 -165 ct |
1066 -107 l 1066 -67 1067 -41 1069 -31 ct 1071 -20 1074 -10 1080 0 ct 1034 0 l |
1030 -9 1027 -19 1026 -31 ct p |
1022 -128 m 1006 -122 983 -117 951 -112 ct 933 -109 921 -107 913 -103 ct 906 -100 900 -95 896 -89 ct |
892 -83 890 -76 890 -69 ct 890 -57 895 -47 903 -40 ct 912 -32 925 -28 942 -28 ct |
959 -28 973 -32 986 -39 ct 999 -46 1009 -56 1015 -69 ct 1020 -79 1022 -93 1022 -113 ct |
1022 -128 l p ef |
1205 0 m 1107 -256 l 1153 -256 l 1208 -103 l 1214 -86 1220 -69 1225 -51 ct |
1228 -65 1234 -81 1241 -100 ct 1298 -256 l 1342 -256 l 1245 0 l 1205 0 l |
p ef |
1383 -304 m 1383 -354 l 1426 -354 l 1426 -304 l 1383 -304 l p |
1383 0 m 1383 -256 l 1426 -256 l 1426 0 l 1383 0 l p ef |
1477 -128 m 1477 -175 1491 -211 1517 -233 ct 1539 -252 1566 -262 1598 -262 ct |
1633 -262 1662 -250 1684 -227 ct 1706 -204 1717 -172 1717 -132 ct 1717 -99 1712 -73 1703 -54 ct |
1693 -35 1678 -20 1659 -10 ct 1641 1 1620 6 1598 6 ct 1562 6 1533 -6 1511 -29 ct |
1488 -52 1477 -85 1477 -128 ct p |
1522 -128 m 1522 -95 1529 -71 1544 -54 ct 1558 -38 1576 -30 1598 -30 ct 1619 -30 1637 -38 1651 -54 ct |
1666 -71 1673 -96 1673 -129 ct 1673 -161 1666 -185 1651 -201 ct 1637 -218 1619 -226 1598 -226 ct |
1576 -226 1558 -218 1544 -202 ct 1529 -185 1522 -161 1522 -128 ct p ef |
1936 0 m 1936 -37 l 1917 -8 1889 6 1855 6 ct 1840 6 1826 3 1813 -3 ct 1800 -8 1790 -16 1784 -25 ct |
1777 -33 1773 -44 1770 -57 ct 1768 -65 1768 -79 1768 -97 ct 1768 -256 l 1811 -256 l |
1811 -114 l 1811 -91 1812 -76 1814 -68 ct 1816 -57 1822 -48 1831 -41 ct 1840 -35 1851 -31 1864 -31 ct |
1877 -31 1889 -35 1901 -41 ct 1912 -48 1920 -57 1925 -69 ct 1929 -80 1932 -97 1932 -119 ct |
1932 -256 l 1975 -256 l 1975 0 l 1936 0 l p ef |
2043 0 m 2043 -256 l 2082 -256 l 2082 -217 l 2092 -236 2101 -248 2110 -253 ct |
2118 -259 2128 -262 2138 -262 ct 2152 -262 2167 -257 2182 -248 ct 2167 -208 l |
2157 -214 2146 -217 2135 -217 ct 2126 -217 2117 -214 2110 -209 ct 2102 -203 2097 -195 2094 -185 ct |
2089 -169 2087 -152 2087 -134 ct 2087 0 l 2043 0 l p ef |
2349 98 m 2349 -256 l 2388 -256 l 2388 -223 l 2397 -236 2408 -246 2420 -252 ct |
2431 -259 2446 -262 2462 -262 ct 2484 -262 2504 -256 2520 -245 ct 2537 -234 2550 -218 2558 -197 ct |
2567 -177 2571 -155 2571 -130 ct 2571 -104 2566 -80 2557 -59 ct 2547 -38 2534 -22 2516 -11 ct |
2498 0 2479 6 2459 6 ct 2445 6 2432 3 2420 -3 ct 2409 -10 2399 -17 2392 -27 ct |
2392 98 l 2349 98 l p |
2388 -127 m 2388 -94 2395 -69 2408 -54 ct 2421 -38 2437 -30 2456 -30 ct 2476 -30 2492 -38 2506 -54 ct |
2520 -71 2527 -96 2527 -130 ct 2527 -163 2520 -187 2506 -204 ct 2493 -220 2477 -228 2458 -228 ct |
2440 -228 2423 -219 2409 -202 ct 2395 -185 2388 -160 2388 -127 ct p ef |
2623 0 m 2623 -256 l 2662 -256 l 2662 -217 l 2672 -236 2681 -248 2690 -253 ct |
2698 -259 2708 -262 2718 -262 ct 2732 -262 2747 -257 2762 -248 ct 2747 -208 l |
2737 -214 2726 -217 2715 -217 ct 2706 -217 2697 -214 2690 -209 ct 2682 -203 2677 -195 2674 -185 ct |
2669 -169 2667 -152 2667 -134 ct 2667 0 l 2623 0 l p ef |
2772 -128 m 2772 -175 2786 -211 2812 -233 ct 2834 -252 2861 -262 2893 -262 ct |
2928 -262 2957 -250 2979 -227 ct 3001 -204 3012 -172 3012 -132 ct 3012 -99 3007 -73 2998 -54 ct |
2988 -35 2973 -20 2954 -10 ct 2936 1 2915 6 2893 6 ct 2857 6 2828 -6 2806 -29 ct |
2783 -52 2772 -85 2772 -128 ct p |
2817 -128 m 2817 -95 2824 -71 2839 -54 ct 2853 -38 2871 -30 2893 -30 ct 2914 -30 2932 -38 2946 -54 ct |
2961 -71 2968 -96 2968 -129 ct 2968 -161 2961 -185 2946 -201 ct 2932 -218 2914 -226 2893 -226 ct |
2871 -226 2853 -218 2839 -202 ct 2824 -185 2817 -161 2817 -128 ct p ef |
3158 -39 m 3165 -1 l 3152 2 3141 3 3132 3 ct 3116 3 3104 0 3095 -4 ct 3086 -9 3080 -16 3077 -24 ct |
3073 -32 3072 -49 3072 -75 ct 3072 -223 l 3040 -223 l 3040 -257 l 3072 -257 l |
3072 -320 l 3115 -346 l 3115 -257 l 3158 -257 l 3158 -223 l 3115 -223 l |
3115 -73 l 3115 -61 3115 -53 3117 -49 ct 3119 -46 3121 -43 3124 -41 ct 3128 -39 3133 -38 3139 -38 ct |
3144 -38 3150 -38 3158 -39 ct p ef |
3187 -128 m 3187 -175 3201 -211 3227 -233 ct 3249 -252 3276 -262 3308 -262 ct |
3343 -262 3372 -250 3394 -227 ct 3416 -204 3427 -172 3427 -132 ct 3427 -99 3422 -73 3413 -54 ct |
3403 -35 3388 -20 3369 -10 ct 3351 1 3330 6 3308 6 ct 3272 6 3243 -6 3221 -29 ct |
3198 -52 3187 -85 3187 -128 ct p |
3232 -128 m 3232 -95 3239 -71 3254 -54 ct 3268 -38 3286 -30 3308 -30 ct 3329 -30 3347 -38 3361 -54 ct |
3376 -71 3383 -96 3383 -129 ct 3383 -161 3376 -185 3361 -201 ct 3347 -218 3329 -226 3308 -226 ct |
3286 -226 3268 -218 3254 -202 ct 3239 -185 3232 -161 3232 -128 ct p ef |
3646 -94 m 3688 -88 l 3684 -59 3672 -36 3653 -19 ct 3633 -2 3610 6 3582 6 ct |
3547 6 3519 -5 3497 -28 ct 3476 -51 3465 -84 3465 -127 ct 3465 -155 3470 -179 3479 -199 ct |
3488 -220 3502 -236 3521 -246 ct 3540 -257 3560 -262 3582 -262 ct 3610 -262 3633 -255 3650 -241 ct |
3668 -227 3679 -207 3684 -181 ct 3642 -174 l 3638 -191 3631 -204 3621 -213 ct |
3611 -222 3598 -226 3584 -226 ct 3562 -226 3544 -218 3530 -202 ct 3517 -187 3510 -162 3510 -128 ct |
3510 -94 3517 -69 3530 -53 ct 3543 -38 3560 -30 3581 -30 ct 3598 -30 3613 -35 3624 -45 ct |
3635 -56 3643 -72 3646 -94 ct p ef |
3712 -128 m 3712 -175 3726 -211 3752 -233 ct 3774 -252 3801 -262 3833 -262 ct |
3868 -262 3897 -250 3919 -227 ct 3941 -204 3952 -172 3952 -132 ct 3952 -99 3947 -73 3938 -54 ct |
3928 -35 3913 -20 3894 -10 ct 3876 1 3855 6 3833 6 ct 3797 6 3768 -6 3746 -29 ct |
3723 -52 3712 -85 3712 -128 ct p |
3757 -128 m 3757 -95 3764 -71 3779 -54 ct 3793 -38 3811 -30 3833 -30 ct 3854 -30 3872 -38 3886 -54 ct |
3901 -71 3908 -96 3908 -129 ct 3908 -161 3901 -185 3886 -201 ct 3872 -218 3854 -226 3833 -226 ct |
3811 -226 3793 -218 3779 -202 ct 3764 -185 3757 -161 3757 -128 ct p ef |
4003 0 m 4003 -354 l 4046 -354 l 4046 0 l 4003 0 l p ef |
4421 -94 m 4463 -88 l 4459 -59 4447 -36 4428 -19 ct 4408 -2 4385 6 4357 6 ct |
4322 6 4294 -5 4272 -28 ct 4251 -51 4240 -84 4240 -127 ct 4240 -155 4245 -179 4254 -199 ct |
4263 -220 4277 -236 4296 -246 ct 4315 -257 4335 -262 4357 -262 ct 4385 -262 4408 -255 4425 -241 ct |
4443 -227 4454 -207 4459 -181 ct 4417 -174 l 4413 -191 4406 -204 4396 -213 ct |
4386 -222 4373 -226 4359 -226 ct 4337 -226 4319 -218 4305 -202 ct 4292 -187 4285 -162 4285 -128 ct |
4285 -94 4292 -69 4305 -53 ct 4318 -38 4335 -30 4356 -30 ct 4373 -30 4388 -35 4399 -45 ct |
4410 -56 4418 -72 4421 -94 ct p ef |
4503 0 m 4503 -354 l 4546 -354 l 4546 -227 l 4566 -250 4592 -262 4623 -262 ct |
4642 -262 4658 -258 4672 -251 ct 4686 -243 4696 -233 4702 -220 ct 4708 -207 4711 -187 4711 -162 ct |
4711 0 l 4668 0 l 4668 -162 l 4668 -184 4663 -200 4654 -210 ct 4644 -220 4631 -225 4614 -225 ct |
4601 -225 4589 -221 4577 -215 ct 4566 -208 4558 -199 4553 -187 ct 4548 -176 4546 -160 4546 -140 ct |
4546 0 l 4503 0 l p ef |
4954 -82 m 4999 -77 l 4992 -51 4979 -30 4959 -16 ct 4940 -1 4916 6 4886 6 ct |
4849 6 4819 -6 4797 -29 ct 4775 -52 4764 -84 4764 -126 ct 4764 -169 4775 -202 4797 -226 ct |
4820 -250 4848 -262 4884 -262 ct 4918 -262 4946 -250 4968 -227 ct 4989 -204 5000 -171 5000 -129 ct |
5000 -126 5000 -122 5000 -117 ct 4809 -117 l 4811 -89 4819 -67 4833 -52 ct |
4847 -37 4865 -30 4886 -30 ct 4902 -30 4916 -34 4927 -42 ct 4938 -51 4947 -64 4954 -82 ct |
p |
4811 -153 m 4954 -153 l 4952 -174 4947 -190 4938 -201 ct 4924 -218 4906 -226 4884 -226 ct |
4864 -226 4848 -219 4834 -206 ct 4820 -193 4813 -175 4811 -153 ct p ef |
5221 -94 m 5263 -88 l 5259 -59 5247 -36 5228 -19 ct 5208 -2 5185 6 5157 6 ct |
5122 6 5094 -5 5072 -28 ct 5051 -51 5040 -84 5040 -127 ct 5040 -155 5045 -179 5054 -199 ct |
5063 -220 5077 -236 5096 -246 ct 5115 -257 5135 -262 5157 -262 ct 5185 -262 5208 -255 5225 -241 ct |
5243 -227 5254 -207 5259 -181 ct 5217 -174 l 5213 -191 5206 -204 5196 -213 ct |
5186 -222 5173 -226 5159 -226 ct 5137 -226 5119 -218 5105 -202 ct 5092 -187 5085 -162 5085 -128 ct |
5085 -94 5092 -69 5105 -53 ct 5118 -38 5135 -30 5156 -30 ct 5173 -30 5188 -35 5199 -45 ct |
5210 -56 5218 -72 5221 -94 ct p ef |
5304 0 m 5304 -354 l 5347 -354 l 5347 -152 l 5450 -256 l 5506 -256 l |
5408 -161 l 5516 0 l 5463 0 l 5378 -131 l 5347 -102 l 5347 0 l 5304 0 l |
p ef |
5553 -304 m 5553 -354 l 5596 -354 l 5596 -304 l 5553 -304 l p |
5553 0 m 5553 -256 l 5596 -256 l 5596 0 l 5553 0 l p ef |
5663 0 m 5663 -256 l 5702 -256 l 5702 -220 l 5720 -248 5748 -262 5783 -262 ct |
5799 -262 5813 -259 5826 -254 ct 5839 -248 5848 -241 5855 -232 ct 5861 -223 5866 -212 5868 -200 ct |
5870 -192 5871 -178 5871 -158 ct 5871 0 l 5827 0 l 5827 -156 l 5827 -174 5826 -187 5822 -196 ct |
5819 -204 5813 -211 5804 -217 ct 5796 -222 5786 -224 5774 -224 ct 5756 -224 5740 -218 5726 -207 ct |
5713 -195 5706 -173 5706 -140 ct 5706 0 l 5663 0 l p ef |
5931 21 m 5973 28 l 5975 41 5979 50 5988 56 ct 5998 64 6013 68 6032 68 ct |
6052 68 6067 64 6078 56 ct 6089 48 6097 37 6100 22 ct 6103 13 6104 -5 6104 -34 ct |
6085 -11 6061 0 6033 0 ct 5997 0 5970 -13 5951 -38 ct 5932 -64 5922 -94 5922 -130 ct |
5922 -154 5926 -177 5935 -197 ct 5944 -218 5957 -234 5974 -245 ct 5990 -256 6010 -262 6033 -262 ct |
6063 -262 6088 -250 6108 -225 ct 6108 -256 l 6148 -256 l 6148 -35 l 6148 5 6144 33 6136 50 ct |
6127 67 6115 80 6097 90 ct 6079 99 6058 104 6032 104 ct 6001 104 5977 97 5958 83 ct |
5939 70 5930 49 5931 21 ct p |
5967 -133 m 5967 -99 5973 -75 5987 -59 ct 6000 -44 6017 -36 6037 -36 ct 6057 -36 6073 -44 6087 -59 ct |
6100 -74 6107 -98 6107 -131 ct 6107 -163 6100 -186 6086 -202 ct 6072 -218 6056 -226 6036 -226 ct |
6017 -226 6000 -218 5987 -203 ct 5973 -187 5967 -164 5967 -133 ct p ef |
pom |
pum |
21111 13351 t |
116 104 m 92 74 71 38 55 -2 ct 38 -43 30 -85 30 -128 ct 30 -166 36 -203 48 -238 ct |
63 -279 85 -319 116 -360 ct 147 -360 l 127 -326 114 -302 108 -288 ct 98 -266 91 -243 85 -219 ct |
78 -188 75 -158 75 -128 ct 75 -50 99 27 147 104 ct 116 104 l p ef |
pom |
pum |
21276 13351 t |
16 0 m 90 -354 l 134 -354 l 108 -227 l 121 -240 134 -249 145 -254 ct |
156 -259 168 -262 180 -262 ct 204 -262 224 -253 240 -235 ct 256 -217 264 -191 264 -157 ct |
264 -135 261 -114 255 -95 ct 248 -76 240 -60 231 -47 ct 221 -35 212 -24 201 -17 ct |
191 -9 181 -3 170 0 ct 160 4 149 6 140 6 ct 123 6 108 2 95 -7 ct 82 -16 72 -30 65 -48 ct |
55 0 l 16 0 l p |
81 -105 m 81 -97 l 81 -75 86 -58 96 -47 ct 107 -35 120 -30 136 -30 ct 151 -30 165 -35 178 -46 ct |
190 -56 201 -73 209 -96 ct 217 -119 221 -140 221 -159 ct 221 -180 216 -197 206 -209 ct |
196 -221 183 -227 167 -227 ct 152 -227 137 -221 124 -209 ct 111 -196 100 -178 91 -152 ct |
84 -134 81 -118 81 -105 ct p ef |
270 99 m 344 -256 l 384 -256 l 377 -221 l 392 -236 405 -247 417 -253 ct |
429 -259 441 -262 454 -262 ct 479 -262 499 -253 515 -235 ct 531 -218 539 -192 539 -159 ct |
539 -132 535 -108 526 -86 ct 517 -64 506 -46 494 -33 ct 481 -20 468 -10 454 -3 ct |
441 3 428 6 414 6 ct 383 6 359 -10 343 -41 ct 314 99 l 270 99 l p |
356 -105 m 356 -85 358 -72 360 -65 ct 364 -54 371 -46 380 -39 ct 389 -33 400 -30 412 -30 ct |
437 -30 457 -44 473 -72 ct 488 -100 496 -129 496 -159 ct 496 -180 491 -197 480 -209 ct |
470 -221 457 -227 442 -227 ct 431 -227 420 -224 411 -218 ct 401 -212 393 -203 384 -192 ct |
376 -180 370 -166 364 -149 ct 359 -132 356 -117 356 -105 ct p ef |
579 0 m 583 -21 590 -39 598 -53 ct 606 -67 616 -81 629 -93 ct 643 -106 668 -128 706 -158 ct |
728 -176 744 -189 752 -198 ct 764 -211 773 -223 779 -235 ct 782 -243 784 -252 784 -262 ct |
784 -278 778 -292 767 -303 ct 755 -314 741 -320 725 -320 ct 708 -320 694 -314 681 -303 ct |
669 -291 660 -273 655 -247 ct 612 -254 l 616 -285 628 -310 649 -328 ct 669 -346 694 -355 724 -355 ct |
744 -355 762 -351 779 -342 ct 795 -334 807 -322 815 -307 ct 824 -292 828 -277 828 -260 ct |
828 -237 819 -214 803 -193 ct 792 -179 762 -153 712 -113 ct 690 -96 674 -82 664 -71 ct |
653 -60 645 -50 640 -40 ct 798 -40 l 790 0 l 579 0 l p ef |
821 99 m 895 -256 l 935 -256 l 928 -221 l 943 -236 956 -247 968 -253 ct |
980 -259 992 -262 1005 -262 ct 1030 -262 1050 -253 1066 -235 ct 1082 -218 1090 -192 1090 -159 ct |
1090 -132 1086 -108 1077 -86 ct 1068 -64 1057 -46 1045 -33 ct 1032 -20 1019 -10 1005 -3 ct |
992 3 979 6 965 6 ct 934 6 910 -10 894 -41 ct 865 99 l 821 99 l p |
907 -105 m 907 -85 909 -72 911 -65 ct 915 -54 922 -46 931 -39 ct 940 -33 951 -30 963 -30 ct |
988 -30 1008 -44 1024 -72 ct 1039 -100 1047 -129 1047 -159 ct 1047 -180 1042 -197 1031 -209 ct |
1021 -221 1008 -227 993 -227 ct 982 -227 971 -224 962 -218 ct 952 -212 944 -203 935 -192 ct |
927 -180 921 -166 915 -149 ct 910 -132 907 -117 907 -105 ct p ef |
1117 1 m 1171 -256 l 1210 -256 l 1199 -204 l 1212 -223 1225 -238 1237 -248 ct |
1250 -257 1263 -262 1276 -262 ct 1285 -262 1296 -259 1308 -252 ct 1290 -212 l |
1283 -217 1275 -220 1266 -220 ct 1250 -220 1235 -211 1218 -194 ct 1202 -177 1190 -147 1181 -102 ct |
1159 1 l 1117 1 l p ef |
1290 -97 m 1290 -147 1305 -188 1334 -221 ct 1359 -248 1390 -262 1430 -262 ct |
1461 -262 1486 -252 1504 -233 ct 1523 -214 1533 -187 1533 -155 ct 1533 -125 1527 -98 1515 -73 ct |
1503 -47 1486 -28 1464 -14 ct 1442 -1 1419 6 1395 6 ct 1375 6 1357 2 1340 -7 ct |
1324 -15 1312 -27 1303 -43 ct 1294 -59 1290 -77 1290 -97 ct p |
1334 -101 m 1334 -77 1340 -59 1351 -46 ct 1363 -34 1377 -28 1395 -28 ct 1405 -28 1414 -30 1423 -33 ct |
1432 -37 1441 -43 1449 -51 ct 1456 -58 1463 -67 1469 -77 ct 1474 -87 1479 -98 1482 -109 ct |
1487 -125 1490 -140 1490 -155 ct 1490 -178 1484 -196 1472 -209 ct 1460 -222 1446 -228 1428 -228 ct |
1414 -228 1402 -225 1391 -218 ct 1379 -212 1369 -202 1360 -190 ct 1351 -177 1344 -163 1340 -146 ct |
1336 -129 1334 -114 1334 -101 ct p ef |
1557 0 m 1611 -256 l 1654 -256 l 1645 -214 l 1662 -232 1676 -245 1689 -252 ct |
1702 -258 1716 -262 1731 -262 ct 1747 -262 1760 -258 1771 -249 ct 1781 -241 1788 -229 1792 -214 ct |
1805 -230 1818 -242 1833 -250 ct 1847 -258 1862 -262 1878 -262 ct 1900 -262 1916 -257 1926 -247 ct |
1937 -237 1942 -222 1942 -204 ct 1942 -196 1941 -183 1937 -165 ct 1902 0 l 1859 0 l |
1894 -169 l 1897 -183 1898 -193 1898 -199 ct 1898 -207 1896 -214 1891 -219 ct |
1885 -224 1878 -226 1868 -226 ct 1855 -226 1842 -222 1828 -214 ct 1815 -206 1804 -196 1797 -183 ct |
1789 -170 1783 -151 1777 -124 ct 1751 0 l 1707 0 l 1744 -173 l 1746 -185 1747 -193 1747 -198 ct |
1747 -206 1745 -213 1740 -218 ct 1734 -223 1728 -226 1719 -226 ct 1707 -226 1694 -222 1680 -214 ct |
1667 -206 1656 -195 1647 -181 ct 1639 -167 1632 -147 1626 -121 ct 1601 0 l 1557 0 l |
p ef |
2157 -87 m 2199 -83 l 2193 -61 2179 -41 2157 -22 ct 2135 -3 2109 6 2078 6 ct |
2059 6 2042 2 2026 -7 ct 2010 -16 1998 -29 1990 -45 ct 1982 -62 1978 -81 1978 -103 ct |
1978 -131 1984 -158 1997 -184 ct 2010 -210 2027 -230 2047 -243 ct 2068 -256 2090 -262 2114 -262 ct |
2145 -262 2169 -253 2187 -233 ct 2206 -214 2215 -189 2215 -156 ct 2215 -143 2214 -130 2211 -117 ct |
2023 -117 l 2022 -112 2022 -108 2022 -103 ct 2022 -80 2027 -61 2038 -49 ct |
2049 -36 2063 -30 2079 -30 ct 2094 -30 2108 -35 2123 -44 ct 2137 -54 2149 -68 2157 -87 ct |
p |
2030 -150 m 2173 -150 l 2174 -155 2174 -158 2174 -160 ct 2174 -182 2168 -199 2157 -210 ct |
2146 -222 2132 -228 2115 -228 ct 2096 -228 2079 -222 2064 -209 ct 2049 -196 2037 -176 2030 -150 ct |
p ef |
2240 0 m 2314 -354 l 2358 -354 l 2284 0 l 2240 0 l p ef |
2526 -32 m 2511 -19 2496 -9 2482 -3 ct 2468 3 2454 6 2438 6 ct 2414 6 2395 -1 2380 -15 ct |
2366 -29 2359 -47 2359 -69 ct 2359 -84 2362 -96 2368 -107 ct 2375 -119 2384 -128 2394 -134 ct |
2405 -141 2418 -146 2434 -149 ct 2444 -151 2462 -152 2490 -152 ct 2517 -152 2537 -154 2549 -159 ct |
2552 -171 2554 -181 2554 -189 ct 2554 -200 2550 -208 2543 -214 ct 2533 -222 2518 -226 2498 -226 ct |
2480 -226 2465 -222 2453 -214 ct 2442 -206 2433 -194 2428 -179 ct 2384 -183 l |
2393 -208 2407 -228 2427 -241 ct 2446 -255 2471 -262 2501 -262 ct 2532 -262 2557 -254 2576 -239 ct |
2590 -228 2597 -213 2597 -195 ct 2597 -181 2595 -166 2591 -148 ct 2577 -84 l |
2572 -64 2570 -47 2570 -35 ct 2570 -26 2572 -15 2575 0 ct 2531 0 l 2529 -8 2527 -19 2526 -32 ct |
p |
2542 -130 m 2536 -127 2530 -125 2523 -124 ct 2516 -123 2504 -121 2488 -120 ct |
2462 -118 2444 -115 2434 -111 ct 2423 -108 2415 -102 2410 -95 ct 2405 -87 2402 -79 2402 -70 ct |
2402 -58 2406 -47 2415 -40 ct 2423 -32 2435 -28 2451 -28 ct 2465 -28 2479 -32 2493 -39 ct |
2506 -47 2516 -58 2524 -71 ct 2532 -85 2538 -104 2542 -130 ct p ef |
pom |
pum |
23888 13351 t |
61 104 m 30 104 l 78 27 102 -50 102 -128 ct 102 -158 99 -188 92 -218 ct 86 -242 79 -265 69 -287 ct |
62 -302 50 -326 30 -360 ct 61 -360 l 91 -319 114 -279 128 -238 ct 140 -203 147 -166 147 -128 ct |
147 -85 138 -43 122 -2 ct 105 38 85 74 61 104 ct p ef |
pom |
0.503 0.003 0.003 c 10608 12495 m 18056 12495 l 18056 12546 l 18056 12597 l |
10608 12597 l 10608 12546 l 10608 12495 l p ef |
10066 12546 m 10744 12772 l 10744 12320 l 10066 12546 l p ef |
18598 12546 m 17920 12320 l 17920 12772 l 18598 12546 l p ef |
pum |
11946 12440 t |
0.003 0.003 0.003 c 73 0 m 32 0 l 32 -354 l 76 -354 l 76 -227 l 94 -250 117 -262 146 -262 ct |
162 -262 177 -259 191 -252 ct 205 -246 216 -237 225 -225 ct 235 -214 242 -200 247 -184 ct |
252 -168 254 -150 254 -132 ct 254 -88 244 -54 222 -30 ct 200 -6 174 6 144 6 ct |
114 6 90 -7 73 -32 ct 73 0 l p |
72 -130 m 72 -99 76 -77 85 -63 ct 98 -41 117 -30 140 -30 ct 159 -30 176 -38 189 -54 ct |
203 -71 210 -95 210 -128 ct 210 -162 203 -186 190 -202 ct 177 -218 161 -226 142 -226 ct |
123 -226 107 -218 93 -201 ct 79 -185 72 -161 72 -130 ct p ef |
483 -82 m 528 -77 l 521 -51 508 -30 488 -16 ct 469 -1 445 6 415 6 ct 378 6 348 -6 326 -29 ct |
304 -52 293 -84 293 -126 ct 293 -169 304 -202 326 -226 ct 349 -250 377 -262 413 -262 ct |
447 -262 475 -250 497 -227 ct 518 -204 529 -171 529 -129 ct 529 -126 529 -122 529 -117 ct |
338 -117 l 340 -89 348 -67 362 -52 ct 376 -37 394 -30 415 -30 ct 431 -30 445 -34 456 -42 ct |
467 -51 476 -64 483 -82 ct p |
340 -153 m 483 -153 l 481 -174 476 -190 467 -201 ct 453 -218 435 -226 413 -226 ct |
393 -226 377 -219 363 -206 ct 349 -193 342 -175 340 -153 ct p ef |
583 0 m 583 -354 l 626 -354 l 626 -227 l 646 -250 672 -262 703 -262 ct |
722 -262 738 -258 752 -251 ct 766 -243 776 -233 782 -220 ct 788 -207 791 -187 791 -162 ct |
791 0 l 748 0 l 748 -162 l 748 -184 743 -200 734 -210 ct 724 -220 711 -225 694 -225 ct |
681 -225 669 -221 657 -215 ct 646 -208 638 -199 633 -187 ct 628 -176 626 -160 626 -140 ct |
626 0 l 583 0 l p ef |
1026 -31 m 1010 -18 994 -8 979 -2 ct 964 3 948 6 931 6 ct 903 6 882 -1 867 -15 ct |
851 -28 844 -46 844 -67 ct 844 -80 847 -91 852 -102 ct 858 -112 866 -120 875 -127 ct |
884 -133 895 -138 906 -141 ct 915 -143 927 -145 945 -148 ct 980 -152 1006 -157 1022 -163 ct |
1022 -168 1022 -172 1022 -174 ct 1022 -192 1018 -204 1010 -211 ct 999 -221 982 -226 961 -226 ct |
940 -226 925 -222 915 -215 ct 906 -208 898 -195 894 -177 ct 851 -183 l 855 -201 862 -216 870 -227 ct |
879 -238 892 -247 909 -253 ct 925 -259 945 -262 967 -262 ct 989 -262 1007 -259 1020 -254 ct |
1034 -249 1044 -243 1050 -235 ct 1057 -227 1061 -217 1064 -205 ct 1065 -198 1066 -184 1066 -165 ct |
1066 -107 l 1066 -67 1067 -41 1069 -31 ct 1071 -20 1074 -10 1080 0 ct 1034 0 l |
1030 -9 1027 -19 1026 -31 ct p |
1022 -128 m 1006 -122 983 -117 951 -112 ct 933 -109 921 -107 913 -103 ct 906 -100 900 -95 896 -89 ct |
892 -83 890 -76 890 -69 ct 890 -57 895 -47 903 -40 ct 912 -32 925 -28 942 -28 ct |
959 -28 973 -32 986 -39 ct 999 -46 1009 -56 1015 -69 ct 1020 -79 1022 -93 1022 -113 ct |
1022 -128 l p ef |
1205 0 m 1107 -256 l 1153 -256 l 1208 -103 l 1214 -86 1220 -69 1225 -51 ct |
1228 -65 1234 -81 1241 -100 ct 1298 -256 l 1342 -256 l 1245 0 l 1205 0 l |
p ef |
1383 -304 m 1383 -354 l 1426 -354 l 1426 -304 l 1383 -304 l p |
1383 0 m 1383 -256 l 1426 -256 l 1426 0 l 1383 0 l p ef |
1477 -128 m 1477 -175 1491 -211 1517 -233 ct 1539 -252 1566 -262 1598 -262 ct |
1633 -262 1662 -250 1684 -227 ct 1706 -204 1717 -172 1717 -132 ct 1717 -99 1712 -73 1703 -54 ct |
1693 -35 1678 -20 1659 -10 ct 1641 1 1620 6 1598 6 ct 1562 6 1533 -6 1511 -29 ct |
1488 -52 1477 -85 1477 -128 ct p |
1522 -128 m 1522 -95 1529 -71 1544 -54 ct 1558 -38 1576 -30 1598 -30 ct 1619 -30 1637 -38 1651 -54 ct |
1666 -71 1673 -96 1673 -129 ct 1673 -161 1666 -185 1651 -201 ct 1637 -218 1619 -226 1598 -226 ct |
1576 -226 1558 -218 1544 -202 ct 1529 -185 1522 -161 1522 -128 ct p ef |
1768 0 m 1768 -256 l 1807 -256 l 1807 -217 l 1817 -236 1826 -248 1835 -253 ct |
1843 -259 1853 -262 1863 -262 ct 1877 -262 1892 -257 1907 -248 ct 1892 -208 l |
1882 -214 1871 -217 1860 -217 ct 1851 -217 1842 -214 1835 -209 ct 1827 -203 1822 -195 1819 -185 ct |
1814 -169 1812 -152 1812 -134 ct 1812 0 l 1768 0 l p ef |
2240 -94 m 2282 -88 l 2278 -59 2266 -36 2247 -19 ct 2227 -2 2204 6 2176 6 ct |
2141 6 2113 -5 2091 -28 ct 2070 -51 2059 -84 2059 -127 ct 2059 -155 2064 -179 2073 -199 ct |
2082 -220 2096 -236 2115 -246 ct 2134 -257 2154 -262 2176 -262 ct 2204 -262 2227 -255 2244 -241 ct |
2262 -227 2273 -207 2278 -181 ct 2236 -174 l 2232 -191 2225 -204 2215 -213 ct |
2205 -222 2192 -226 2178 -226 ct 2156 -226 2138 -218 2124 -202 ct 2111 -187 2104 -162 2104 -128 ct |
2104 -94 2111 -69 2124 -53 ct 2137 -38 2154 -30 2175 -30 ct 2192 -30 2207 -35 2218 -45 ct |
2229 -56 2237 -72 2240 -94 ct p ef |
2306 -128 m 2306 -175 2320 -211 2346 -233 ct 2368 -252 2395 -262 2427 -262 ct |
2462 -262 2491 -250 2513 -227 ct 2535 -204 2546 -172 2546 -132 ct 2546 -99 2541 -73 2532 -54 ct |
2522 -35 2507 -20 2488 -10 ct 2470 1 2449 6 2427 6 ct 2391 6 2362 -6 2340 -29 ct |
2317 -52 2306 -85 2306 -128 ct p |
2351 -128 m 2351 -95 2358 -71 2373 -54 ct 2387 -38 2405 -30 2427 -30 ct 2448 -30 2466 -38 2480 -54 ct |
2495 -71 2502 -96 2502 -129 ct 2502 -161 2495 -185 2480 -201 ct 2466 -218 2448 -226 2427 -226 ct |
2405 -226 2387 -218 2373 -202 ct 2358 -185 2351 -161 2351 -128 ct p ef |
2598 0 m 2598 -256 l 2636 -256 l 2636 -220 l 2644 -233 2655 -243 2668 -251 ct |
2682 -258 2697 -262 2714 -262 ct 2733 -262 2749 -258 2761 -250 ct 2773 -242 2781 -231 2786 -217 ct |
2807 -247 2833 -262 2866 -262 ct 2891 -262 2910 -255 2924 -241 ct 2938 -227 2945 -205 2945 -176 ct |
2945 0 l 2901 0 l 2901 -161 l 2901 -179 2900 -191 2897 -199 ct 2894 -207 2889 -213 2882 -217 ct |
2875 -222 2866 -224 2856 -224 ct 2838 -224 2823 -218 2811 -206 ct 2799 -194 2793 -175 2793 -149 ct |
2793 0 l 2750 0 l 2750 -166 l 2750 -186 2746 -200 2739 -210 ct 2732 -220 2721 -224 2704 -224 ct |
2692 -224 2681 -221 2671 -215 ct 2660 -208 2653 -199 2648 -186 ct 2643 -174 2641 -156 2641 -133 ct |
2641 0 l 2598 0 l p ef |
3009 98 m 3009 -256 l 3048 -256 l 3048 -223 l 3057 -236 3068 -246 3080 -252 ct |
3091 -259 3106 -262 3122 -262 ct 3144 -262 3164 -256 3180 -245 ct 3197 -234 3210 -218 3218 -197 ct |
3227 -177 3231 -155 3231 -130 ct 3231 -104 3226 -80 3217 -59 ct 3207 -38 3194 -22 3176 -11 ct |
3158 0 3139 6 3119 6 ct 3105 6 3092 3 3080 -3 ct 3069 -10 3059 -17 3052 -27 ct |
3052 98 l 3009 98 l p |
3048 -127 m 3048 -94 3055 -69 3068 -54 ct 3081 -38 3097 -30 3116 -30 ct 3136 -30 3152 -38 3166 -54 ct |
3180 -71 3187 -96 3187 -130 ct 3187 -163 3180 -187 3166 -204 ct 3153 -220 3137 -228 3118 -228 ct |
3100 -228 3083 -219 3069 -202 ct 3055 -185 3048 -160 3048 -127 ct p ef |
3451 -31 m 3435 -18 3419 -8 3404 -2 ct 3389 3 3373 6 3356 6 ct 3328 6 3307 -1 3292 -15 ct |
3276 -28 3269 -46 3269 -67 ct 3269 -80 3272 -91 3277 -102 ct 3283 -112 3291 -120 3300 -127 ct |
3309 -133 3320 -138 3331 -141 ct 3340 -143 3352 -145 3370 -148 ct 3405 -152 3431 -157 3447 -163 ct |
3447 -168 3447 -172 3447 -174 ct 3447 -192 3443 -204 3435 -211 ct 3424 -221 3407 -226 3386 -226 ct |
3365 -226 3350 -222 3340 -215 ct 3331 -208 3323 -195 3319 -177 ct 3276 -183 l |
3280 -201 3287 -216 3295 -227 ct 3304 -238 3317 -247 3334 -253 ct 3350 -259 3370 -262 3392 -262 ct |
3414 -262 3432 -259 3445 -254 ct 3459 -249 3469 -243 3475 -235 ct 3482 -227 3486 -217 3489 -205 ct |
3490 -198 3491 -184 3491 -165 ct 3491 -107 l 3491 -67 3492 -41 3494 -31 ct |
3496 -20 3499 -10 3505 0 ct 3459 0 l 3455 -9 3452 -19 3451 -31 ct p |
3447 -128 m 3431 -122 3408 -117 3376 -112 ct 3358 -109 3346 -107 3338 -103 ct |
3331 -100 3325 -95 3321 -89 ct 3317 -83 3315 -76 3315 -69 ct 3315 -57 3320 -47 3328 -40 ct |
3337 -32 3350 -28 3367 -28 ct 3384 -28 3398 -32 3411 -39 ct 3424 -46 3434 -56 3440 -69 ct |
3445 -79 3447 -93 3447 -113 ct 3447 -128 l p ef |
3653 -39 m 3660 -1 l 3647 2 3636 3 3627 3 ct 3611 3 3599 0 3590 -4 ct 3581 -9 3575 -16 3572 -24 ct |
3568 -32 3567 -49 3567 -75 ct 3567 -223 l 3535 -223 l 3535 -257 l 3567 -257 l |
3567 -320 l 3610 -346 l 3610 -257 l 3653 -257 l 3653 -223 l 3610 -223 l |
3610 -73 l 3610 -61 3610 -53 3612 -49 ct 3614 -46 3616 -43 3619 -41 ct 3623 -39 3628 -38 3634 -38 ct |
3639 -38 3645 -38 3653 -39 ct p ef |
3699 -304 m 3699 -354 l 3742 -354 l 3742 -304 l 3699 -304 l p |
3699 0 m 3699 -256 l 3742 -256 l 3742 0 l 3699 0 l p ef |
3849 0 m 3808 0 l 3808 -354 l 3852 -354 l 3852 -227 l 3870 -250 3893 -262 3922 -262 ct |
3938 -262 3953 -259 3967 -252 ct 3981 -246 3992 -237 4001 -225 ct 4011 -214 4018 -200 4023 -184 ct |
4028 -168 4030 -150 4030 -132 ct 4030 -88 4020 -54 3998 -30 ct 3976 -6 3950 6 3920 6 ct |
3890 6 3866 -7 3849 -32 ct 3849 0 l p |
3848 -130 m 3848 -99 3852 -77 3861 -63 ct 3874 -41 3893 -30 3916 -30 ct 3935 -30 3952 -38 3965 -54 ct |
3979 -71 3986 -95 3986 -128 ct 3986 -162 3979 -186 3966 -202 ct 3953 -218 3937 -226 3918 -226 ct |
3899 -226 3883 -218 3869 -201 ct 3855 -185 3848 -161 3848 -130 ct p ef |
4084 -304 m 4084 -354 l 4127 -354 l 4127 -304 l 4084 -304 l p |
4084 0 m 4084 -256 l 4127 -256 l 4127 0 l 4084 0 l p ef |
4193 0 m 4193 -354 l 4236 -354 l 4236 0 l 4193 0 l p ef |
4304 -304 m 4304 -354 l 4347 -354 l 4347 -304 l 4304 -304 l p |
4304 0 m 4304 -256 l 4347 -256 l 4347 0 l 4304 0 l p ef |
4509 -39 m 4516 -1 l 4503 2 4492 3 4483 3 ct 4467 3 4455 0 4446 -4 ct 4437 -9 4431 -16 4428 -24 ct |
4424 -32 4423 -49 4423 -75 ct 4423 -223 l 4391 -223 l 4391 -257 l 4423 -257 l |
4423 -320 l 4466 -346 l 4466 -257 l 4509 -257 l 4509 -223 l 4466 -223 l |
4466 -73 l 4466 -61 4466 -53 4468 -49 ct 4470 -46 4472 -43 4475 -41 ct 4479 -39 4484 -38 4490 -38 ct |
4495 -38 4501 -38 4509 -39 ct p ef |
4552 99 m 4547 58 l 4556 60 4565 62 4572 62 ct 4581 62 4589 60 4595 57 ct |
4601 54 4605 49 4609 43 ct 4612 39 4616 28 4622 11 ct 4623 9 4624 5 4626 1 ct 4529 -256 l |
4576 -256 l 4629 -108 l 4636 -89 4642 -69 4648 -48 ct 4653 -68 4659 -88 4665 -107 ct |
4720 -256 l 4764 -256 l 4666 4 l 4656 33 4648 52 4642 63 ct 4634 77 4625 87 4615 94 ct |
4605 101 4593 104 4580 104 ct 4571 104 4562 102 4552 99 ct p ef |
pom |
pum |
12839 12995 t |
15 -76 m 58 -83 l 61 -66 67 -53 78 -43 ct 89 -34 105 -30 124 -30 ct 144 -30 159 -34 169 -42 ct |
179 -50 183 -60 183 -70 ct 183 -80 179 -88 171 -94 ct 165 -97 150 -102 126 -108 ct |
94 -116 72 -123 60 -129 ct 48 -135 38 -143 32 -154 ct 26 -164 22 -175 22 -188 ct |
22 -199 25 -210 30 -220 ct 36 -229 43 -237 52 -244 ct 58 -249 68 -253 79 -257 ct |
91 -260 103 -262 117 -262 ct 137 -262 154 -259 170 -253 ct 185 -247 196 -239 203 -230 ct |
211 -220 216 -206 218 -190 ct 176 -184 l 174 -197 168 -208 159 -215 ct 150 -222 137 -226 120 -226 ct |
100 -226 86 -223 77 -216 ct 69 -210 64 -202 64 -193 ct 64 -187 66 -182 70 -178 ct |
73 -173 79 -169 86 -166 ct 91 -165 103 -161 125 -155 ct 155 -147 177 -140 189 -135 ct |
201 -130 211 -122 218 -112 ct 224 -102 228 -90 228 -75 ct 228 -61 224 -47 215 -34 ct |
207 -21 195 -11 179 -4 ct 163 2 145 6 125 6 ct 91 6 66 -1 49 -15 ct 31 -29 20 -49 15 -76 ct |
p ef |
450 0 m 450 -37 l 431 -8 403 6 369 6 ct 354 6 340 3 327 -3 ct 314 -8 304 -16 298 -25 ct |
291 -33 287 -44 284 -57 ct 282 -65 282 -79 282 -97 ct 282 -256 l 325 -256 l |
325 -114 l 325 -91 326 -76 328 -68 ct 330 -57 336 -48 345 -41 ct 354 -35 365 -31 378 -31 ct |
391 -31 403 -35 415 -41 ct 426 -48 434 -57 439 -69 ct 443 -80 446 -97 446 -119 ct |
446 -256 l 489 -256 l 489 0 l 450 0 l p ef |
598 0 m 557 0 l 557 -354 l 601 -354 l 601 -227 l 619 -250 642 -262 671 -262 ct |
687 -262 702 -259 716 -252 ct 730 -246 741 -237 750 -225 ct 760 -214 767 -200 772 -184 ct |
777 -168 779 -150 779 -132 ct 779 -88 769 -54 747 -30 ct 725 -6 699 6 669 6 ct |
639 6 615 -7 598 -32 ct 598 0 l p |
597 -130 m 597 -99 601 -77 610 -63 ct 623 -41 642 -30 665 -30 ct 684 -30 701 -38 714 -54 ct |
728 -71 735 -95 735 -128 ct 735 -162 728 -186 715 -202 ct 702 -218 686 -226 667 -226 ct |
648 -226 632 -218 618 -201 ct 604 -185 597 -161 597 -130 ct p ef |
815 -76 m 858 -83 l 861 -66 867 -53 878 -43 ct 889 -34 905 -30 924 -30 ct |
944 -30 959 -34 969 -42 ct 979 -50 983 -60 983 -70 ct 983 -80 979 -88 971 -94 ct |
965 -97 950 -102 926 -108 ct 894 -116 872 -123 860 -129 ct 848 -135 838 -143 832 -154 ct |
826 -164 822 -175 822 -188 ct 822 -199 825 -210 830 -220 ct 836 -229 843 -237 852 -244 ct |
858 -249 868 -253 879 -257 ct 891 -260 903 -262 917 -262 ct 937 -262 954 -259 970 -253 ct |
985 -247 996 -239 1003 -230 ct 1011 -220 1016 -206 1018 -190 ct 976 -184 l 974 -197 968 -208 959 -215 ct |
950 -222 937 -226 920 -226 ct 900 -226 886 -223 877 -216 ct 869 -210 864 -202 864 -193 ct |
864 -187 866 -182 870 -178 ct 873 -173 879 -169 886 -166 ct 891 -165 903 -161 925 -155 ct |
955 -147 977 -140 989 -135 ct 1001 -130 1011 -122 1018 -112 ct 1024 -102 1028 -90 1028 -75 ct |
1028 -61 1024 -47 1015 -34 ct 1007 -21 995 -11 979 -4 ct 963 2 945 6 925 6 ct 891 6 866 -1 849 -15 ct |
831 -29 820 -49 815 -76 ct p ef |
1177 -39 m 1184 -1 l 1171 2 1160 3 1151 3 ct 1135 3 1123 0 1114 -4 ct 1105 -9 1099 -16 1096 -24 ct |
1092 -32 1091 -49 1091 -75 ct 1091 -223 l 1059 -223 l 1059 -257 l 1091 -257 l |
1091 -320 l 1134 -346 l 1134 -257 l 1177 -257 l 1177 -223 l 1134 -223 l |
1134 -73 l 1134 -61 1134 -53 1136 -49 ct 1138 -46 1140 -43 1143 -41 ct 1147 -39 1152 -38 1158 -38 ct |
1163 -38 1169 -38 1177 -39 ct p ef |
1223 -304 m 1223 -354 l 1266 -354 l 1266 -304 l 1223 -304 l p |
1223 0 m 1223 -256 l 1266 -256 l 1266 0 l 1223 0 l p ef |
1427 -39 m 1434 -1 l 1421 2 1410 3 1401 3 ct 1385 3 1373 0 1364 -4 ct 1355 -9 1349 -16 1346 -24 ct |
1342 -32 1341 -49 1341 -75 ct 1341 -223 l 1309 -223 l 1309 -257 l 1341 -257 l |
1341 -320 l 1384 -346 l 1384 -257 l 1427 -257 l 1427 -223 l 1384 -223 l |
1384 -73 l 1384 -61 1384 -53 1386 -49 ct 1388 -46 1390 -43 1393 -41 ct 1397 -39 1402 -38 1408 -38 ct |
1413 -38 1419 -38 1427 -39 ct p ef |
1639 0 m 1639 -37 l 1620 -8 1592 6 1558 6 ct 1543 6 1529 3 1516 -3 ct 1503 -8 1493 -16 1487 -25 ct |
1480 -33 1476 -44 1473 -57 ct 1471 -65 1471 -79 1471 -97 ct 1471 -256 l 1514 -256 l |
1514 -114 l 1514 -91 1515 -76 1517 -68 ct 1519 -57 1525 -48 1534 -41 ct 1543 -35 1554 -31 1567 -31 ct |
1580 -31 1592 -35 1604 -41 ct 1615 -48 1623 -57 1628 -69 ct 1632 -80 1635 -97 1635 -119 ct |
1635 -256 l 1678 -256 l 1678 0 l 1639 0 l p ef |
1915 -31 m 1899 -18 1883 -8 1868 -2 ct 1853 3 1837 6 1820 6 ct 1792 6 1771 -1 1756 -15 ct |
1740 -28 1733 -46 1733 -67 ct 1733 -80 1736 -91 1741 -102 ct 1747 -112 1755 -120 1764 -127 ct |
1773 -133 1784 -138 1795 -141 ct 1804 -143 1816 -145 1834 -148 ct 1869 -152 1895 -157 1911 -163 ct |
1911 -168 1911 -172 1911 -174 ct 1911 -192 1907 -204 1899 -211 ct 1888 -221 1871 -226 1850 -226 ct |
1829 -226 1814 -222 1804 -215 ct 1795 -208 1787 -195 1783 -177 ct 1740 -183 l |
1744 -201 1751 -216 1759 -227 ct 1768 -238 1781 -247 1798 -253 ct 1814 -259 1834 -262 1856 -262 ct |
1878 -262 1896 -259 1909 -254 ct 1923 -249 1933 -243 1939 -235 ct 1946 -227 1950 -217 1953 -205 ct |
1954 -198 1955 -184 1955 -165 ct 1955 -107 l 1955 -67 1956 -41 1958 -31 ct |
1960 -20 1963 -10 1969 0 ct 1923 0 l 1919 -9 1916 -19 1915 -31 ct p |
1911 -128 m 1895 -122 1872 -117 1840 -112 ct 1822 -109 1810 -107 1802 -103 ct |
1795 -100 1789 -95 1785 -89 ct 1781 -83 1779 -76 1779 -69 ct 1779 -57 1784 -47 1792 -40 ct |
1801 -32 1814 -28 1831 -28 ct 1848 -28 1862 -32 1875 -39 ct 1888 -46 1898 -56 1904 -69 ct |
1909 -79 1911 -93 1911 -113 ct 1911 -128 l p ef |
2063 0 m 2022 0 l 2022 -354 l 2066 -354 l 2066 -227 l 2084 -250 2107 -262 2136 -262 ct |
2152 -262 2167 -259 2181 -252 ct 2195 -246 2206 -237 2215 -225 ct 2225 -214 2232 -200 2237 -184 ct |
2242 -168 2244 -150 2244 -132 ct 2244 -88 2234 -54 2212 -30 ct 2190 -6 2164 6 2134 6 ct |
2104 6 2080 -7 2063 -32 ct 2063 0 l p |
2062 -130 m 2062 -99 2066 -77 2075 -63 ct 2088 -41 2107 -30 2130 -30 ct 2149 -30 2166 -38 2179 -54 ct |
2193 -71 2200 -95 2200 -128 ct 2200 -162 2193 -186 2180 -202 ct 2167 -218 2151 -226 2132 -226 ct |
2113 -226 2097 -218 2083 -201 ct 2069 -185 2062 -161 2062 -130 ct p ef |
2298 -304 m 2298 -354 l 2341 -354 l 2341 -304 l 2298 -304 l p |
2298 0 m 2298 -256 l 2341 -256 l 2341 0 l 2298 0 l p ef |
2407 0 m 2407 -354 l 2450 -354 l 2450 0 l 2407 0 l p ef |
2518 -304 m 2518 -354 l 2561 -354 l 2561 -304 l 2518 -304 l p |
2518 0 m 2518 -256 l 2561 -256 l 2561 0 l 2518 0 l p ef |
2722 -39 m 2729 -1 l 2716 2 2705 3 2696 3 ct 2680 3 2668 0 2659 -4 ct 2650 -9 2644 -16 2641 -24 ct |
2637 -32 2636 -49 2636 -75 ct 2636 -223 l 2604 -223 l 2604 -257 l 2636 -257 l |
2636 -320 l 2679 -346 l 2679 -257 l 2722 -257 l 2722 -223 l 2679 -223 l |
2679 -73 l 2679 -61 2679 -53 2681 -49 ct 2683 -46 2685 -43 2688 -41 ct 2692 -39 2697 -38 2703 -38 ct |
2708 -38 2714 -38 2722 -39 ct p ef |
2766 99 m 2761 58 l 2770 60 2779 62 2786 62 ct 2795 62 2803 60 2809 57 ct |
2815 54 2819 49 2823 43 ct 2826 39 2830 28 2836 11 ct 2837 9 2838 5 2840 1 ct 2743 -256 l |
2790 -256 l 2843 -108 l 2850 -89 2856 -69 2862 -48 ct 2867 -68 2873 -88 2879 -107 ct |
2934 -256 l 2978 -256 l 2880 4 l 2870 33 2862 52 2856 63 ct 2848 77 2839 87 2829 94 ct |
2819 101 2807 104 2794 104 ct 2785 104 2776 102 2766 99 ct p ef |
pom |
0.503 0.003 0.003 c 16539 7014 m 22166 10925 l 22137 10966 l 22108 11008 l |
16481 7097 l 16510 7056 l 16539 7014 l p ef |
16065 6746 m 16493 7319 l 16751 6947 l 16065 6746 l p ef |
22582 11276 m 22154 10703 l 21896 11075 l 22582 11276 l p ef |
pum |
11748 8905 t |
0.003 0.003 0.003 c 33 -304 m 33 -354 l 76 -354 l 76 -304 l 33 -304 l |
p |
33 0 m 33 -256 l 76 -256 l 76 0 l 33 0 l p ef |
143 0 m 143 -256 l 182 -256 l 182 -220 l 200 -248 228 -262 263 -262 ct |
279 -262 293 -259 306 -254 ct 319 -248 328 -241 335 -232 ct 341 -223 346 -212 348 -200 ct |
350 -192 351 -178 351 -158 ct 351 0 l 307 0 l 307 -156 l 307 -174 306 -187 302 -196 ct |
299 -204 293 -211 284 -217 ct 276 -222 266 -224 254 -224 ct 236 -224 220 -218 206 -207 ct |
193 -195 186 -173 186 -140 ct 186 0 l 143 0 l p ef |
512 -39 m 519 -1 l 506 2 495 3 486 3 ct 470 3 458 0 449 -4 ct 440 -9 434 -16 431 -24 ct |
427 -32 426 -49 426 -75 ct 426 -223 l 394 -223 l 394 -257 l 426 -257 l |
426 -320 l 469 -346 l 469 -257 l 512 -257 l 512 -223 l 469 -223 l |
469 -73 l 469 -61 469 -53 471 -49 ct 473 -46 475 -43 478 -41 ct 482 -39 487 -38 493 -38 ct |
498 -38 504 -38 512 -39 ct p ef |
733 -82 m 778 -77 l 771 -51 758 -30 738 -16 ct 719 -1 695 6 665 6 ct 628 6 598 -6 576 -29 ct |
554 -52 543 -84 543 -126 ct 543 -169 554 -202 576 -226 ct 599 -250 627 -262 663 -262 ct |
697 -262 725 -250 747 -227 ct 768 -204 779 -171 779 -129 ct 779 -126 779 -122 779 -117 ct |
588 -117 l 590 -89 598 -67 612 -52 ct 626 -37 644 -30 665 -30 ct 681 -30 695 -34 706 -42 ct |
717 -51 726 -64 733 -82 ct p |
590 -153 m 733 -153 l 731 -174 726 -190 717 -201 ct 703 -218 685 -226 663 -226 ct |
643 -226 627 -219 613 -206 ct 599 -193 592 -175 590 -153 ct p ef |
832 0 m 832 -256 l 871 -256 l 871 -217 l 881 -236 890 -248 899 -253 ct |
907 -259 917 -262 927 -262 ct 941 -262 956 -257 971 -248 ct 956 -208 l 946 -214 935 -217 924 -217 ct |
915 -217 906 -214 899 -209 ct 891 -203 886 -195 883 -185 ct 878 -169 876 -152 876 -134 ct |
876 0 l 832 0 l p ef |
1008 1 m 1008 -222 l 970 -222 l 970 -256 l 1008 -256 l 1008 -283 l |
1008 -300 1009 -313 1013 -321 ct 1017 -332 1024 -342 1035 -349 ct 1045 -356 1060 -359 1079 -359 ct |
1091 -359 1105 -358 1119 -355 ct 1113 -317 l 1104 -318 1095 -319 1087 -319 ct |
1074 -319 1065 -316 1059 -311 ct 1054 -305 1051 -295 1051 -279 ct 1051 -256 l |
1101 -256 l 1101 -222 l 1051 -222 l 1051 1 l 1008 1 l p ef |
1305 -31 m 1289 -18 1273 -8 1258 -2 ct 1243 3 1227 6 1210 6 ct 1182 6 1161 -1 1146 -15 ct |
1130 -28 1123 -46 1123 -67 ct 1123 -80 1126 -91 1131 -102 ct 1137 -112 1145 -120 1154 -127 ct |
1163 -133 1174 -138 1185 -141 ct 1194 -143 1206 -145 1224 -148 ct 1259 -152 1285 -157 1301 -163 ct |
1301 -168 1301 -172 1301 -174 ct 1301 -192 1297 -204 1289 -211 ct 1278 -221 1261 -226 1240 -226 ct |
1219 -226 1204 -222 1194 -215 ct 1185 -208 1177 -195 1173 -177 ct 1130 -183 l |
1134 -201 1141 -216 1149 -227 ct 1158 -238 1171 -247 1188 -253 ct 1204 -259 1224 -262 1246 -262 ct |
1268 -262 1286 -259 1299 -254 ct 1313 -249 1323 -243 1329 -235 ct 1336 -227 1340 -217 1343 -205 ct |
1344 -198 1345 -184 1345 -165 ct 1345 -107 l 1345 -67 1346 -41 1348 -31 ct |
1350 -20 1353 -10 1359 0 ct 1313 0 l 1309 -9 1306 -19 1305 -31 ct p |
1301 -128 m 1285 -122 1262 -117 1230 -112 ct 1212 -109 1200 -107 1192 -103 ct |
1185 -100 1179 -95 1175 -89 ct 1171 -83 1169 -76 1169 -69 ct 1169 -57 1174 -47 1182 -40 ct |
1191 -32 1204 -28 1221 -28 ct 1238 -28 1252 -32 1265 -39 ct 1278 -46 1288 -56 1294 -69 ct |
1299 -79 1301 -93 1301 -113 ct 1301 -128 l p ef |
1580 -94 m 1622 -88 l 1618 -59 1606 -36 1587 -19 ct 1567 -2 1544 6 1516 6 ct |
1481 6 1453 -5 1431 -28 ct 1410 -51 1399 -84 1399 -127 ct 1399 -155 1404 -179 1413 -199 ct |
1422 -220 1436 -236 1455 -246 ct 1474 -257 1494 -262 1516 -262 ct 1544 -262 1567 -255 1584 -241 ct |
1602 -227 1613 -207 1618 -181 ct 1576 -174 l 1572 -191 1565 -204 1555 -213 ct |
1545 -222 1532 -226 1518 -226 ct 1496 -226 1478 -218 1464 -202 ct 1451 -187 1444 -162 1444 -128 ct |
1444 -94 1451 -69 1464 -53 ct 1477 -38 1494 -30 1515 -30 ct 1532 -30 1547 -35 1558 -45 ct |
1569 -56 1577 -72 1580 -94 ct p ef |
1838 -82 m 1883 -77 l 1876 -51 1863 -30 1843 -16 ct 1824 -1 1800 6 1770 6 ct |
1733 6 1703 -6 1681 -29 ct 1659 -52 1648 -84 1648 -126 ct 1648 -169 1659 -202 1681 -226 ct |
1704 -250 1732 -262 1768 -262 ct 1802 -262 1830 -250 1852 -227 ct 1873 -204 1884 -171 1884 -129 ct |
1884 -126 1884 -122 1884 -117 ct 1693 -117 l 1695 -89 1703 -67 1717 -52 ct |
1731 -37 1749 -30 1770 -30 ct 1786 -30 1800 -34 1811 -42 ct 1822 -51 1831 -64 1838 -82 ct |
p |
1695 -153 m 1838 -153 l 1836 -174 1831 -190 1822 -201 ct 1808 -218 1790 -226 1768 -226 ct |
1748 -226 1732 -219 1718 -206 ct 1704 -193 1697 -175 1695 -153 ct p ef |
2078 98 m 2078 -256 l 2117 -256 l 2117 -223 l 2126 -236 2137 -246 2149 -252 ct |
2160 -259 2175 -262 2191 -262 ct 2213 -262 2233 -256 2249 -245 ct 2266 -234 2279 -218 2287 -197 ct |
2296 -177 2300 -155 2300 -130 ct 2300 -104 2295 -80 2286 -59 ct 2276 -38 2263 -22 2245 -11 ct |
2227 0 2208 6 2188 6 ct 2174 6 2161 3 2149 -3 ct 2138 -10 2128 -17 2121 -27 ct |
2121 98 l 2078 98 l p |
2117 -127 m 2117 -94 2124 -69 2137 -54 ct 2150 -38 2166 -30 2185 -30 ct 2205 -30 2221 -38 2235 -54 ct |
2249 -71 2256 -96 2256 -130 ct 2256 -163 2249 -187 2235 -204 ct 2222 -220 2206 -228 2187 -228 ct |
2169 -228 2152 -219 2138 -202 ct 2124 -185 2117 -160 2117 -127 ct p ef |
2352 0 m 2352 -256 l 2391 -256 l 2391 -217 l 2401 -236 2410 -248 2419 -253 ct |
2427 -259 2437 -262 2447 -262 ct 2461 -262 2476 -257 2491 -248 ct 2476 -208 l |
2466 -214 2455 -217 2444 -217 ct 2435 -217 2426 -214 2419 -209 ct 2411 -203 2406 -195 2403 -185 ct |
2398 -169 2396 -152 2396 -134 ct 2396 0 l 2352 0 l p ef |
2501 -128 m 2501 -175 2515 -211 2541 -233 ct 2563 -252 2590 -262 2622 -262 ct |
2657 -262 2686 -250 2708 -227 ct 2730 -204 2741 -172 2741 -132 ct 2741 -99 2736 -73 2727 -54 ct |
2717 -35 2702 -20 2683 -10 ct 2665 1 2644 6 2622 6 ct 2586 6 2557 -6 2535 -29 ct |
2512 -52 2501 -85 2501 -128 ct p |
2546 -128 m 2546 -95 2553 -71 2568 -54 ct 2582 -38 2600 -30 2622 -30 ct 2643 -30 2661 -38 2675 -54 ct |
2690 -71 2697 -96 2697 -129 ct 2697 -161 2690 -185 2675 -201 ct 2661 -218 2643 -226 2622 -226 ct |
2600 -226 2582 -218 2568 -202 ct 2553 -185 2546 -161 2546 -128 ct p ef |
2793 98 m 2793 -256 l 2832 -256 l 2832 -223 l 2841 -236 2852 -246 2864 -252 ct |
2875 -259 2890 -262 2906 -262 ct 2928 -262 2948 -256 2964 -245 ct 2981 -234 2994 -218 3002 -197 ct |
3011 -177 3015 -155 3015 -130 ct 3015 -104 3010 -80 3001 -59 ct 2991 -38 2978 -22 2960 -11 ct |
2942 0 2923 6 2903 6 ct 2889 6 2876 3 2864 -3 ct 2853 -10 2843 -17 2836 -27 ct |
2836 98 l 2793 98 l p |
2832 -127 m 2832 -94 2839 -69 2852 -54 ct 2865 -38 2881 -30 2900 -30 ct 2920 -30 2936 -38 2950 -54 ct |
2964 -71 2971 -96 2971 -130 ct 2971 -163 2964 -187 2950 -204 ct 2937 -220 2921 -228 2902 -228 ct |
2884 -228 2867 -219 2853 -202 ct 2839 -185 2832 -160 2832 -127 ct p ef |
3243 -82 m 3288 -77 l 3281 -51 3268 -30 3248 -16 ct 3229 -1 3205 6 3175 6 ct |
3138 6 3108 -6 3086 -29 ct 3064 -52 3053 -84 3053 -126 ct 3053 -169 3064 -202 3086 -226 ct |
3109 -250 3137 -262 3173 -262 ct 3207 -262 3235 -250 3257 -227 ct 3278 -204 3289 -171 3289 -129 ct |
3289 -126 3289 -122 3289 -117 ct 3098 -117 l 3100 -89 3108 -67 3122 -52 ct |
3136 -37 3154 -30 3175 -30 ct 3191 -30 3205 -34 3216 -42 ct 3227 -51 3236 -64 3243 -82 ct |
p |
3100 -153 m 3243 -153 l 3241 -174 3236 -190 3227 -201 ct 3213 -218 3195 -226 3173 -226 ct |
3153 -226 3137 -219 3123 -206 ct 3109 -193 3102 -175 3100 -153 ct p ef |
3342 0 m 3342 -256 l 3381 -256 l 3381 -217 l 3391 -236 3400 -248 3409 -253 ct |
3417 -259 3427 -262 3437 -262 ct 3451 -262 3466 -257 3481 -248 ct 3466 -208 l |
3456 -214 3445 -217 3434 -217 ct 3425 -217 3416 -214 3409 -209 ct 3401 -203 3396 -195 3393 -185 ct |
3388 -169 3386 -152 3386 -134 ct 3386 0 l 3342 0 l p ef |
3603 -39 m 3610 -1 l 3597 2 3586 3 3577 3 ct 3561 3 3549 0 3540 -4 ct 3531 -9 3525 -16 3522 -24 ct |
3518 -32 3517 -49 3517 -75 ct 3517 -223 l 3485 -223 l 3485 -257 l 3517 -257 l |
3517 -320 l 3560 -346 l 3560 -257 l 3603 -257 l 3603 -223 l 3560 -223 l |
3560 -73 l 3560 -61 3560 -53 3562 -49 ct 3564 -46 3566 -43 3569 -41 ct 3573 -39 3578 -38 3584 -38 ct |
3589 -38 3595 -38 3603 -39 ct p ef |
3648 -304 m 3648 -354 l 3691 -354 l 3691 -304 l 3648 -304 l p |
3648 0 m 3648 -256 l 3691 -256 l 3691 0 l 3648 0 l p ef |
3933 -82 m 3978 -77 l 3971 -51 3958 -30 3938 -16 ct 3919 -1 3895 6 3865 6 ct |
3828 6 3798 -6 3776 -29 ct 3754 -52 3743 -84 3743 -126 ct 3743 -169 3754 -202 3776 -226 ct |
3799 -250 3827 -262 3863 -262 ct 3897 -262 3925 -250 3947 -227 ct 3968 -204 3979 -171 3979 -129 ct |
3979 -126 3979 -122 3979 -117 ct 3788 -117 l 3790 -89 3798 -67 3812 -52 ct |
3826 -37 3844 -30 3865 -30 ct 3881 -30 3895 -34 3906 -42 ct 3917 -51 3926 -64 3933 -82 ct |
p |
3790 -153 m 3933 -153 l 3931 -174 3926 -190 3917 -201 ct 3903 -218 3885 -226 3863 -226 ct |
3843 -226 3827 -219 3813 -206 ct 3799 -193 3792 -175 3790 -153 ct p ef |
4016 -76 m 4059 -83 l 4062 -66 4068 -53 4079 -43 ct 4090 -34 4106 -30 4125 -30 ct |
4145 -30 4160 -34 4170 -42 ct 4180 -50 4184 -60 4184 -70 ct 4184 -80 4180 -88 4172 -94 ct |
4166 -97 4151 -102 4127 -108 ct 4095 -116 4073 -123 4061 -129 ct 4049 -135 4039 -143 4033 -154 ct |
4027 -164 4023 -175 4023 -188 ct 4023 -199 4026 -210 4031 -220 ct 4037 -229 4044 -237 4053 -244 ct |
4059 -249 4069 -253 4080 -257 ct 4092 -260 4104 -262 4118 -262 ct 4138 -262 4155 -259 4171 -253 ct |
4186 -247 4197 -239 4204 -230 ct 4212 -220 4217 -206 4219 -190 ct 4177 -184 l |
4175 -197 4169 -208 4160 -215 ct 4151 -222 4138 -226 4121 -226 ct 4101 -226 4087 -223 4078 -216 ct |
4070 -210 4065 -202 4065 -193 ct 4065 -187 4067 -182 4071 -178 ct 4074 -173 4080 -169 4087 -166 ct |
4092 -165 4104 -161 4126 -155 ct 4156 -147 4178 -140 4190 -135 ct 4202 -130 4212 -122 4219 -112 ct |
4225 -102 4229 -90 4229 -75 ct 4229 -61 4225 -47 4216 -34 ct 4208 -21 4196 -11 4180 -4 ct |
4164 2 4146 6 4126 6 ct 4092 6 4067 -1 4050 -15 ct 4032 -29 4021 -49 4016 -76 ct |
p ef |
4590 -94 m 4632 -88 l 4628 -59 4616 -36 4597 -19 ct 4577 -2 4554 6 4526 6 ct |
4491 6 4463 -5 4441 -28 ct 4420 -51 4409 -84 4409 -127 ct 4409 -155 4414 -179 4423 -199 ct |
4432 -220 4446 -236 4465 -246 ct 4484 -257 4504 -262 4526 -262 ct 4554 -262 4577 -255 4594 -241 ct |
4612 -227 4623 -207 4628 -181 ct 4586 -174 l 4582 -191 4575 -204 4565 -213 ct |
4555 -222 4542 -226 4528 -226 ct 4506 -226 4488 -218 4474 -202 ct 4461 -187 4454 -162 4454 -128 ct |
4454 -94 4461 -69 4474 -53 ct 4487 -38 4504 -30 4525 -30 ct 4542 -30 4557 -35 4568 -45 ct |
4579 -56 4587 -72 4590 -94 ct p ef |
4673 0 m 4673 -354 l 4716 -354 l 4716 -227 l 4736 -250 4762 -262 4793 -262 ct |
4812 -262 4828 -258 4842 -251 ct 4856 -243 4866 -233 4872 -220 ct 4878 -207 4881 -187 4881 -162 ct |
4881 0 l 4838 0 l 4838 -162 l 4838 -184 4833 -200 4824 -210 ct 4814 -220 4801 -225 4784 -225 ct |
4771 -225 4759 -221 4747 -215 ct 4736 -208 4728 -199 4723 -187 ct 4718 -176 4716 -160 4716 -140 ct |
4716 0 l 4673 0 l p ef |
5123 -82 m 5168 -77 l 5161 -51 5148 -30 5128 -16 ct 5109 -1 5085 6 5055 6 ct |
5018 6 4988 -6 4966 -29 ct 4944 -52 4933 -84 4933 -126 ct 4933 -169 4944 -202 4966 -226 ct |
4989 -250 5017 -262 5053 -262 ct 5087 -262 5115 -250 5137 -227 ct 5158 -204 5169 -171 5169 -129 ct |
5169 -126 5169 -122 5169 -117 ct 4978 -117 l 4980 -89 4988 -67 5002 -52 ct |
5016 -37 5034 -30 5055 -30 ct 5071 -30 5085 -34 5096 -42 ct 5107 -51 5116 -64 5123 -82 ct |
p |
4980 -153 m 5123 -153 l 5121 -174 5116 -190 5107 -201 ct 5093 -218 5075 -226 5053 -226 ct |
5033 -226 5017 -219 5003 -206 ct 4989 -193 4982 -175 4980 -153 ct p ef |
5390 -94 m 5432 -88 l 5428 -59 5416 -36 5397 -19 ct 5377 -2 5354 6 5326 6 ct |
5291 6 5263 -5 5241 -28 ct 5220 -51 5209 -84 5209 -127 ct 5209 -155 5214 -179 5223 -199 ct |
5232 -220 5246 -236 5265 -246 ct 5284 -257 5304 -262 5326 -262 ct 5354 -262 5377 -255 5394 -241 ct |
5412 -227 5423 -207 5428 -181 ct 5386 -174 l 5382 -191 5375 -204 5365 -213 ct |
5355 -222 5342 -226 5328 -226 ct 5306 -226 5288 -218 5274 -202 ct 5261 -187 5254 -162 5254 -128 ct |
5254 -94 5261 -69 5274 -53 ct 5287 -38 5304 -30 5325 -30 ct 5342 -30 5357 -35 5368 -45 ct |
5379 -56 5387 -72 5390 -94 ct p ef |
5473 0 m 5473 -354 l 5516 -354 l 5516 -152 l 5619 -256 l 5675 -256 l |
5577 -161 l 5685 0 l 5632 0 l 5547 -131 l 5516 -102 l 5516 0 l 5473 0 l |
p ef |
5723 -304 m 5723 -354 l 5766 -354 l 5766 -304 l 5723 -304 l p |
5723 0 m 5723 -256 l 5766 -256 l 5766 0 l 5723 0 l p ef |
5833 0 m 5833 -256 l 5872 -256 l 5872 -220 l 5890 -248 5918 -262 5953 -262 ct |
5969 -262 5983 -259 5996 -254 ct 6009 -248 6018 -241 6025 -232 ct 6031 -223 6036 -212 6038 -200 ct |
6040 -192 6041 -178 6041 -158 ct 6041 0 l 5997 0 l 5997 -156 l 5997 -174 5996 -187 5992 -196 ct |
5989 -204 5983 -211 5974 -217 ct 5966 -222 5956 -224 5944 -224 ct 5926 -224 5910 -218 5896 -207 ct |
5883 -195 5876 -173 5876 -140 ct 5876 0 l 5833 0 l p ef |
6100 21 m 6142 28 l 6144 41 6148 50 6157 56 ct 6167 64 6182 68 6201 68 ct |
6221 68 6236 64 6247 56 ct 6258 48 6266 37 6269 22 ct 6272 13 6273 -5 6273 -34 ct |
6254 -11 6230 0 6202 0 ct 6166 0 6139 -13 6120 -38 ct 6101 -64 6091 -94 6091 -130 ct |
6091 -154 6095 -177 6104 -197 ct 6113 -218 6126 -234 6143 -245 ct 6159 -256 6179 -262 6202 -262 ct |
6232 -262 6257 -250 6277 -225 ct 6277 -256 l 6317 -256 l 6317 -35 l 6317 5 6313 33 6305 50 ct |
6296 67 6284 80 6266 90 ct 6248 99 6227 104 6201 104 ct 6170 104 6146 97 6127 83 ct |
6108 70 6099 49 6100 21 ct p |
6136 -133 m 6136 -99 6142 -75 6156 -59 ct 6169 -44 6186 -36 6206 -36 ct 6226 -36 6242 -44 6256 -59 ct |
6269 -74 6276 -98 6276 -131 ct 6276 -163 6269 -186 6255 -202 ct 6241 -218 6225 -226 6205 -226 ct |
6186 -226 6169 -218 6156 -203 ct 6142 -187 6136 -164 6136 -133 ct p ef |
pom |
pum |
9688 9460 t |
116 104 m 92 74 71 38 55 -2 ct 38 -43 30 -85 30 -128 ct 30 -166 36 -203 48 -238 ct |
63 -279 85 -319 116 -360 ct 147 -360 l 127 -326 114 -302 108 -288 ct 98 -266 91 -243 85 -219 ct |
78 -188 75 -158 75 -128 ct 75 -50 99 27 147 104 ct 116 104 l p ef |
365 -94 m 407 -88 l 403 -59 391 -36 372 -19 ct 352 -2 329 6 301 6 ct 266 6 238 -5 216 -28 ct |
195 -51 184 -84 184 -127 ct 184 -155 189 -179 198 -199 ct 207 -220 221 -236 240 -246 ct |
259 -257 279 -262 301 -262 ct 329 -262 352 -255 369 -241 ct 387 -227 398 -207 403 -181 ct |
361 -174 l 357 -191 350 -204 340 -213 ct 330 -222 317 -226 303 -226 ct 281 -226 263 -218 249 -202 ct |
236 -187 229 -162 229 -128 ct 229 -94 236 -69 249 -53 ct 262 -38 279 -30 300 -30 ct |
317 -30 332 -35 343 -45 ct 354 -56 362 -72 365 -94 ct p ef |
431 -128 m 431 -175 445 -211 471 -233 ct 493 -252 520 -262 552 -262 ct 587 -262 616 -250 638 -227 ct |
660 -204 671 -172 671 -132 ct 671 -99 666 -73 657 -54 ct 647 -35 632 -20 613 -10 ct |
595 1 574 6 552 6 ct 516 6 487 -6 465 -29 ct 442 -52 431 -85 431 -128 ct p |
476 -128 m 476 -95 483 -71 498 -54 ct 512 -38 530 -30 552 -30 ct 573 -30 591 -38 605 -54 ct |
620 -71 627 -96 627 -129 ct 627 -161 620 -185 605 -201 ct 591 -218 573 -226 552 -226 ct |
530 -226 512 -218 498 -202 ct 483 -185 476 -161 476 -128 ct p ef |
722 0 m 722 -256 l 761 -256 l 761 -217 l 771 -236 780 -248 789 -253 ct |
797 -259 807 -262 817 -262 ct 831 -262 846 -257 861 -248 ct 846 -208 l 836 -214 825 -217 814 -217 ct |
805 -217 796 -214 789 -209 ct 781 -203 776 -195 773 -185 ct 768 -169 766 -152 766 -134 ct |
766 0 l 722 0 l p ef |
887 0 m 887 -256 l 926 -256 l 926 -217 l 936 -236 945 -248 954 -253 ct |
962 -259 972 -262 982 -262 ct 996 -262 1011 -257 1026 -248 ct 1011 -208 l 1001 -214 990 -217 979 -217 ct |
970 -217 961 -214 954 -209 ct 946 -203 941 -195 938 -185 ct 933 -169 931 -152 931 -134 ct |
931 0 l 887 0 l p ef |
1228 -82 m 1273 -77 l 1266 -51 1253 -30 1233 -16 ct 1214 -1 1190 6 1160 6 ct |
1123 6 1093 -6 1071 -29 ct 1049 -52 1038 -84 1038 -126 ct 1038 -169 1049 -202 1071 -226 ct |
1094 -250 1122 -262 1158 -262 ct 1192 -262 1220 -250 1242 -227 ct 1263 -204 1274 -171 1274 -129 ct |
1274 -126 1274 -122 1274 -117 ct 1083 -117 l 1085 -89 1093 -67 1107 -52 ct |
1121 -37 1139 -30 1160 -30 ct 1176 -30 1190 -34 1201 -42 ct 1212 -51 1221 -64 1228 -82 ct |
p |
1085 -153 m 1228 -153 l 1226 -174 1221 -190 1212 -201 ct 1198 -218 1180 -226 1158 -226 ct |
1138 -226 1122 -219 1108 -206 ct 1094 -193 1087 -175 1085 -153 ct p ef |
1495 -94 m 1537 -88 l 1533 -59 1521 -36 1502 -19 ct 1482 -2 1459 6 1431 6 ct |
1396 6 1368 -5 1346 -28 ct 1325 -51 1314 -84 1314 -127 ct 1314 -155 1319 -179 1328 -199 ct |
1337 -220 1351 -236 1370 -246 ct 1389 -257 1409 -262 1431 -262 ct 1459 -262 1482 -255 1499 -241 ct |
1517 -227 1528 -207 1533 -181 ct 1491 -174 l 1487 -191 1480 -204 1470 -213 ct |
1460 -222 1447 -226 1433 -226 ct 1411 -226 1393 -218 1379 -202 ct 1366 -187 1359 -162 1359 -128 ct |
1359 -94 1366 -69 1379 -53 ct 1392 -38 1409 -30 1430 -30 ct 1447 -30 1462 -35 1473 -45 ct |
1484 -56 1492 -72 1495 -94 ct p ef |
1672 -39 m 1679 -1 l 1666 2 1655 3 1646 3 ct 1630 3 1618 0 1609 -4 ct 1600 -9 1594 -16 1591 -24 ct |
1587 -32 1586 -49 1586 -75 ct 1586 -223 l 1554 -223 l 1554 -257 l 1586 -257 l |
1586 -320 l 1629 -346 l 1629 -257 l 1672 -257 l 1672 -223 l 1629 -223 l |
1629 -73 l 1629 -61 1629 -53 1631 -49 ct 1633 -46 1635 -43 1638 -41 ct 1642 -39 1647 -38 1653 -38 ct |
1658 -38 1664 -38 1672 -39 ct p ef |
1840 -76 m 1883 -83 l 1886 -66 1892 -53 1903 -43 ct 1914 -34 1930 -30 1949 -30 ct |
1969 -30 1984 -34 1994 -42 ct 2004 -50 2008 -60 2008 -70 ct 2008 -80 2004 -88 1996 -94 ct |
1990 -97 1975 -102 1951 -108 ct 1919 -116 1897 -123 1885 -129 ct 1873 -135 1863 -143 1857 -154 ct |
1851 -164 1847 -175 1847 -188 ct 1847 -199 1850 -210 1855 -220 ct 1861 -229 1868 -237 1877 -244 ct |
1883 -249 1893 -253 1904 -257 ct 1916 -260 1928 -262 1942 -262 ct 1962 -262 1979 -259 1995 -253 ct |
2010 -247 2021 -239 2028 -230 ct 2036 -220 2041 -206 2043 -190 ct 2001 -184 l |
1999 -197 1993 -208 1984 -215 ct 1975 -222 1962 -226 1945 -226 ct 1925 -226 1911 -223 1902 -216 ct |
1894 -210 1889 -202 1889 -193 ct 1889 -187 1891 -182 1895 -178 ct 1898 -173 1904 -169 1911 -166 ct |
1916 -165 1928 -161 1950 -155 ct 1980 -147 2002 -140 2014 -135 ct 2026 -130 2036 -122 2043 -112 ct |
2049 -102 2053 -90 2053 -75 ct 2053 -61 2049 -47 2040 -34 ct 2032 -21 2020 -11 2004 -4 ct |
1988 2 1970 6 1950 6 ct 1916 6 1891 -1 1874 -15 ct 1856 -29 1845 -49 1840 -76 ct |
p ef |
2282 -82 m 2327 -77 l 2320 -51 2307 -30 2287 -16 ct 2268 -1 2244 6 2214 6 ct |
2177 6 2147 -6 2125 -29 ct 2103 -52 2092 -84 2092 -126 ct 2092 -169 2103 -202 2125 -226 ct |
2148 -250 2176 -262 2212 -262 ct 2246 -262 2274 -250 2296 -227 ct 2317 -204 2328 -171 2328 -129 ct |
2328 -126 2328 -122 2328 -117 ct 2137 -117 l 2139 -89 2147 -67 2161 -52 ct |
2175 -37 2193 -30 2214 -30 ct 2230 -30 2244 -34 2255 -42 ct 2266 -51 2275 -64 2282 -82 ct |
p |
2139 -153 m 2282 -153 l 2280 -174 2275 -190 2266 -201 ct 2252 -218 2234 -226 2212 -226 ct |
2192 -226 2176 -219 2162 -206 ct 2148 -193 2141 -175 2139 -153 ct p ef |
2546 98 m 2546 -27 l 2539 -18 2530 -10 2518 -4 ct 2505 3 2492 6 2479 6 ct |
2448 6 2422 -6 2400 -31 ct 2378 -55 2367 -88 2367 -131 ct 2367 -156 2372 -180 2381 -200 ct |
2390 -220 2403 -236 2420 -246 ct 2437 -257 2455 -262 2475 -262 ct 2507 -262 2532 -249 2550 -222 ct |
2550 -256 l 2589 -256 l 2589 98 l 2546 98 l p |
2412 -129 m 2412 -96 2419 -71 2433 -55 ct 2447 -38 2463 -30 2482 -30 ct 2501 -30 2517 -38 2530 -54 ct |
2544 -69 2550 -93 2550 -125 ct 2550 -159 2543 -185 2529 -202 ct 2515 -219 2499 -228 2480 -228 ct |
2461 -228 2445 -220 2432 -204 ct 2419 -188 2412 -163 2412 -129 ct p ef |
2825 0 m 2825 -37 l 2806 -8 2778 6 2744 6 ct 2729 6 2715 3 2702 -3 ct 2689 -8 2679 -16 2673 -25 ct |
2666 -33 2662 -44 2659 -57 ct 2657 -65 2657 -79 2657 -97 ct 2657 -256 l 2700 -256 l |
2700 -114 l 2700 -91 2701 -76 2703 -68 ct 2705 -57 2711 -48 2720 -41 ct 2729 -35 2740 -31 2753 -31 ct |
2766 -31 2778 -35 2790 -41 ct 2801 -48 2809 -57 2814 -69 ct 2818 -80 2821 -97 2821 -119 ct |
2821 -256 l 2864 -256 l 2864 0 l 2825 0 l p ef |
3108 -82 m 3153 -77 l 3146 -51 3133 -30 3113 -16 ct 3094 -1 3070 6 3040 6 ct |
3003 6 2973 -6 2951 -29 ct 2929 -52 2918 -84 2918 -126 ct 2918 -169 2929 -202 2951 -226 ct |
2974 -250 3002 -262 3038 -262 ct 3072 -262 3100 -250 3122 -227 ct 3143 -204 3154 -171 3154 -129 ct |
3154 -126 3154 -122 3154 -117 ct 2963 -117 l 2965 -89 2973 -67 2987 -52 ct |
3001 -37 3019 -30 3040 -30 ct 3056 -30 3070 -34 3081 -42 ct 3092 -51 3101 -64 3108 -82 ct |
p |
2965 -153 m 3108 -153 l 3106 -174 3101 -190 3092 -201 ct 3078 -218 3060 -226 3038 -226 ct |
3018 -226 3002 -219 2988 -206 ct 2974 -193 2967 -175 2965 -153 ct p ef |
3208 0 m 3208 -256 l 3247 -256 l 3247 -220 l 3265 -248 3293 -262 3328 -262 ct |
3344 -262 3358 -259 3371 -254 ct 3384 -248 3393 -241 3400 -232 ct 3406 -223 3411 -212 3413 -200 ct |
3415 -192 3416 -178 3416 -158 ct 3416 0 l 3372 0 l 3372 -156 l 3372 -174 3371 -187 3367 -196 ct |
3364 -204 3358 -211 3349 -217 ct 3341 -222 3331 -224 3319 -224 ct 3301 -224 3285 -218 3271 -207 ct |
3258 -195 3251 -173 3251 -140 ct 3251 0 l 3208 0 l p ef |
3650 -94 m 3692 -88 l 3688 -59 3676 -36 3657 -19 ct 3637 -2 3614 6 3586 6 ct |
3551 6 3523 -5 3501 -28 ct 3480 -51 3469 -84 3469 -127 ct 3469 -155 3474 -179 3483 -199 ct |
3492 -220 3506 -236 3525 -246 ct 3544 -257 3564 -262 3586 -262 ct 3614 -262 3637 -255 3654 -241 ct |
3672 -227 3683 -207 3688 -181 ct 3646 -174 l 3642 -191 3635 -204 3625 -213 ct |
3615 -222 3602 -226 3588 -226 ct 3566 -226 3548 -218 3534 -202 ct 3521 -187 3514 -162 3514 -128 ct |
3514 -94 3521 -69 3534 -53 ct 3547 -38 3564 -30 3585 -30 ct 3602 -30 3617 -35 3628 -45 ct |
3639 -56 3647 -72 3650 -94 ct p ef |
3733 -304 m 3733 -354 l 3776 -354 l 3776 -304 l 3733 -304 l p |
3733 0 m 3733 -256 l 3776 -256 l 3776 0 l 3733 0 l p ef |
3843 0 m 3843 -256 l 3882 -256 l 3882 -220 l 3900 -248 3928 -262 3963 -262 ct |
3979 -262 3993 -259 4006 -254 ct 4019 -248 4028 -241 4035 -232 ct 4041 -223 4046 -212 4048 -200 ct |
4050 -192 4051 -178 4051 -158 ct 4051 0 l 4007 0 l 4007 -156 l 4007 -174 4006 -187 4002 -196 ct |
3999 -204 3993 -211 3984 -217 ct 3976 -222 3966 -224 3954 -224 ct 3936 -224 3920 -218 3906 -207 ct |
3893 -195 3886 -173 3886 -140 ct 3886 0 l 3843 0 l p ef |
4110 21 m 4152 28 l 4154 41 4158 50 4167 56 ct 4177 64 4192 68 4211 68 ct |
4231 68 4246 64 4257 56 ct 4268 48 4276 37 4279 22 ct 4282 13 4283 -5 4283 -34 ct |
4264 -11 4240 0 4212 0 ct 4176 0 4149 -13 4130 -38 ct 4111 -64 4101 -94 4101 -130 ct |
4101 -154 4105 -177 4114 -197 ct 4123 -218 4136 -234 4153 -245 ct 4169 -256 4189 -262 4212 -262 ct |
4242 -262 4267 -250 4287 -225 ct 4287 -256 l 4327 -256 l 4327 -35 l 4327 5 4323 33 4315 50 ct |
4306 67 4294 80 4276 90 ct 4258 99 4237 104 4211 104 ct 4180 104 4156 97 4137 83 ct |
4118 70 4109 49 4110 21 ct p |
4146 -133 m 4146 -99 4152 -75 4166 -59 ct 4179 -44 4196 -36 4216 -36 ct 4236 -36 4252 -44 4266 -59 ct |
4279 -74 4286 -98 4286 -131 ct 4286 -163 4279 -186 4265 -202 ct 4251 -218 4235 -226 4215 -226 ct |
4196 -226 4179 -218 4166 -203 ct 4152 -187 4146 -164 4146 -133 ct p ef |
4404 0 m 4404 -49 l 4453 -49 l 4453 0 l 4453 18 4450 33 4444 44 ct 4437 55 4427 64 4413 70 ct |
4401 51 l 4410 47 4417 41 4421 34 ct 4426 26 4428 15 4429 0 ct 4404 0 l p ef |
4672 0 m 4672 -354 l 4715 -354 l 4715 0 l 4672 0 l p ef |
4783 -304 m 4783 -354 l 4826 -354 l 4826 -304 l 4783 -304 l p |
4783 0 m 4783 -256 l 4826 -256 l 4826 0 l 4783 0 l p ef |
4964 0 m 4866 -256 l 4912 -256 l 4967 -103 l 4973 -86 4979 -69 4984 -51 ct |
4987 -65 4993 -81 5000 -100 ct 5057 -256 l 5101 -256 l 5004 0 l 4964 0 l |
p ef |
5318 -82 m 5363 -77 l 5356 -51 5343 -30 5323 -16 ct 5304 -1 5280 6 5250 6 ct |
5213 6 5183 -6 5161 -29 ct 5139 -52 5128 -84 5128 -126 ct 5128 -169 5139 -202 5161 -226 ct |
5184 -250 5212 -262 5248 -262 ct 5282 -262 5310 -250 5332 -227 ct 5353 -204 5364 -171 5364 -129 ct |
5364 -126 5364 -122 5364 -117 ct 5173 -117 l 5175 -89 5183 -67 5197 -52 ct |
5211 -37 5229 -30 5250 -30 ct 5266 -30 5280 -34 5291 -42 ct 5302 -51 5311 -64 5318 -82 ct |
p |
5175 -153 m 5318 -153 l 5316 -174 5311 -190 5302 -201 ct 5288 -218 5270 -226 5248 -226 ct |
5228 -226 5212 -219 5198 -206 ct 5184 -193 5177 -175 5175 -153 ct p ef |
5385 6 m 5488 -360 l 5522 -360 l 5420 6 l 5385 6 l p ef |
5724 0 m 5724 -32 l 5708 -7 5684 6 5652 6 ct 5632 6 5613 0 5596 -11 ct 5579 -22 5565 -38 5556 -58 ct |
5547 -78 5542 -102 5542 -128 ct 5542 -153 5546 -177 5555 -197 ct 5563 -218 5576 -234 5593 -245 ct |
5610 -256 5629 -262 5650 -262 ct 5666 -262 5679 -259 5691 -252 ct 5704 -246 5713 -237 5721 -227 ct |
5721 -354 l 5764 -354 l 5764 0 l 5724 0 l p |
5587 -128 m 5587 -95 5593 -70 5607 -54 ct 5621 -38 5637 -30 5656 -30 ct 5675 -30 5691 -37 5705 -53 ct |
5718 -69 5724 -92 5724 -124 ct 5724 -159 5718 -185 5704 -201 ct 5691 -218 5674 -226 5654 -226 ct |
5635 -226 5619 -218 5606 -202 ct 5593 -187 5587 -162 5587 -128 ct p ef |
6008 -82 m 6053 -77 l 6046 -51 6033 -30 6013 -16 ct 5994 -1 5970 6 5940 6 ct |
5903 6 5873 -6 5851 -29 ct 5829 -52 5818 -84 5818 -126 ct 5818 -169 5829 -202 5851 -226 ct |
5874 -250 5902 -262 5938 -262 ct 5972 -262 6000 -250 6022 -227 ct 6043 -204 6054 -171 6054 -129 ct |
6054 -126 6054 -122 6054 -117 ct 5863 -117 l 5865 -89 5873 -67 5887 -52 ct |
5901 -37 5919 -30 5940 -30 ct 5956 -30 5970 -34 5981 -42 ct 5992 -51 6001 -64 6008 -82 ct |
p |
5865 -153 m 6008 -153 l 6006 -174 6001 -190 5992 -201 ct 5978 -218 5960 -226 5938 -226 ct |
5918 -226 5902 -219 5888 -206 ct 5874 -193 5867 -175 5865 -153 ct p ef |
6275 -31 m 6259 -18 6243 -8 6228 -2 ct 6213 3 6197 6 6180 6 ct 6152 6 6131 -1 6116 -15 ct |
6100 -28 6093 -46 6093 -67 ct 6093 -80 6096 -91 6101 -102 ct 6107 -112 6115 -120 6124 -127 ct |
6133 -133 6144 -138 6155 -141 ct 6164 -143 6176 -145 6194 -148 ct 6229 -152 6255 -157 6271 -163 ct |
6271 -168 6271 -172 6271 -174 ct 6271 -192 6267 -204 6259 -211 ct 6248 -221 6231 -226 6210 -226 ct |
6189 -226 6174 -222 6164 -215 ct 6155 -208 6147 -195 6143 -177 ct 6100 -183 l |
6104 -201 6111 -216 6119 -227 ct 6128 -238 6141 -247 6158 -253 ct 6174 -259 6194 -262 6216 -262 ct |
6238 -262 6256 -259 6269 -254 ct 6283 -249 6293 -243 6299 -235 ct 6306 -227 6310 -217 6313 -205 ct |
6314 -198 6315 -184 6315 -165 ct 6315 -107 l 6315 -67 6316 -41 6318 -31 ct |
6320 -20 6323 -10 6329 0 ct 6283 0 l 6279 -9 6276 -19 6275 -31 ct p |
6271 -128 m 6255 -122 6232 -117 6200 -112 ct 6182 -109 6170 -107 6162 -103 ct |
6155 -100 6149 -95 6145 -89 ct 6141 -83 6139 -76 6139 -69 ct 6139 -57 6144 -47 6152 -40 ct |
6161 -32 6174 -28 6191 -28 ct 6208 -28 6222 -32 6235 -39 ct 6248 -46 6258 -56 6264 -69 ct |
6269 -79 6271 -93 6271 -113 ct 6271 -128 l p ef |
6549 0 m 6549 -32 l 6533 -7 6509 6 6477 6 ct 6457 6 6438 0 6421 -11 ct 6404 -22 6390 -38 6381 -58 ct |
6372 -78 6367 -102 6367 -128 ct 6367 -153 6371 -177 6380 -197 ct 6388 -218 6401 -234 6418 -245 ct |
6435 -256 6454 -262 6475 -262 ct 6491 -262 6504 -259 6516 -252 ct 6529 -246 6538 -237 6546 -227 ct |
6546 -354 l 6589 -354 l 6589 0 l 6549 0 l p |
6412 -128 m 6412 -95 6418 -70 6432 -54 ct 6446 -38 6462 -30 6481 -30 ct 6500 -30 6516 -37 6530 -53 ct |
6543 -69 6549 -92 6549 -124 ct 6549 -159 6543 -185 6529 -201 ct 6516 -218 6499 -226 6479 -226 ct |
6460 -226 6444 -218 6431 -202 ct 6418 -187 6412 -162 6412 -128 ct p ef |
6657 0 m 6657 -354 l 6700 -354 l 6700 0 l 6657 0 l p ef |
6751 -128 m 6751 -175 6765 -211 6791 -233 ct 6813 -252 6840 -262 6872 -262 ct |
6907 -262 6936 -250 6958 -227 ct 6980 -204 6991 -172 6991 -132 ct 6991 -99 6986 -73 6977 -54 ct |
6967 -35 6952 -20 6933 -10 ct 6915 1 6894 6 6872 6 ct 6836 6 6807 -6 6785 -29 ct |
6762 -52 6751 -85 6751 -128 ct p |
6796 -128 m 6796 -95 6803 -71 6818 -54 ct 6832 -38 6850 -30 6872 -30 ct 6893 -30 6911 -38 6925 -54 ct |
6940 -71 6947 -96 6947 -129 ct 6947 -161 6940 -185 6925 -201 ct 6911 -218 6893 -226 6872 -226 ct |
6850 -226 6832 -218 6818 -202 ct 6803 -185 6796 -161 6796 -128 ct p ef |
7210 -94 m 7252 -88 l 7248 -59 7236 -36 7217 -19 ct 7197 -2 7174 6 7146 6 ct |
7111 6 7083 -5 7061 -28 ct 7040 -51 7029 -84 7029 -127 ct 7029 -155 7034 -179 7043 -199 ct |
7052 -220 7066 -236 7085 -246 ct 7104 -257 7124 -262 7146 -262 ct 7174 -262 7197 -255 7214 -241 ct |
7232 -227 7243 -207 7248 -181 ct 7206 -174 l 7202 -191 7195 -204 7185 -213 ct |
7175 -222 7162 -226 7148 -226 ct 7126 -226 7108 -218 7094 -202 ct 7081 -187 7074 -162 7074 -128 ct |
7074 -94 7081 -69 7094 -53 ct 7107 -38 7124 -30 7145 -30 ct 7162 -30 7177 -35 7188 -45 ct |
7199 -56 7207 -72 7210 -94 ct p ef |
7293 0 m 7293 -354 l 7336 -354 l 7336 -152 l 7439 -256 l 7495 -256 l |
7397 -161 l 7505 0 l 7452 0 l 7367 -131 l 7336 -102 l 7336 0 l 7293 0 l |
p ef |
7693 1 m 7693 -222 l 7655 -222 l 7655 -256 l 7693 -256 l 7693 -283 l |
7693 -300 7694 -313 7698 -321 ct 7702 -332 7709 -342 7720 -349 ct 7730 -356 7745 -359 7764 -359 ct |
7776 -359 7790 -358 7804 -355 ct 7798 -317 l 7789 -318 7780 -319 7772 -319 ct |
7759 -319 7750 -316 7744 -311 ct 7739 -305 7736 -295 7736 -279 ct 7736 -256 l |
7786 -256 l 7786 -222 l 7736 -222 l 7736 1 l 7693 1 l p ef |
7821 0 m 7821 -256 l 7860 -256 l 7860 -217 l 7870 -236 7879 -248 7888 -253 ct |
7896 -259 7906 -262 7916 -262 ct 7930 -262 7945 -257 7960 -248 ct 7945 -208 l |
7935 -214 7924 -217 7913 -217 ct 7904 -217 7895 -214 7888 -209 ct 7880 -203 7875 -195 7872 -185 ct |
7867 -169 7865 -152 7865 -134 ct 7865 0 l 7821 0 l p ef |
8162 -82 m 8207 -77 l 8200 -51 8187 -30 8167 -16 ct 8148 -1 8124 6 8094 6 ct |
8057 6 8027 -6 8005 -29 ct 7983 -52 7972 -84 7972 -126 ct 7972 -169 7983 -202 8005 -226 ct |
8028 -250 8056 -262 8092 -262 ct 8126 -262 8154 -250 8176 -227 ct 8197 -204 8208 -171 8208 -129 ct |
8208 -126 8208 -122 8208 -117 ct 8017 -117 l 8019 -89 8027 -67 8041 -52 ct |
8055 -37 8073 -30 8094 -30 ct 8110 -30 8124 -34 8135 -42 ct 8146 -51 8155 -64 8162 -82 ct |
p |
8019 -153 m 8162 -153 l 8160 -174 8155 -190 8146 -201 ct 8132 -218 8114 -226 8092 -226 ct |
8072 -226 8056 -219 8042 -206 ct 8028 -193 8021 -175 8019 -153 ct p ef |
8438 -82 m 8483 -77 l 8476 -51 8463 -30 8443 -16 ct 8424 -1 8400 6 8370 6 ct |
8333 6 8303 -6 8281 -29 ct 8259 -52 8248 -84 8248 -126 ct 8248 -169 8259 -202 8281 -226 ct |
8304 -250 8332 -262 8368 -262 ct 8402 -262 8430 -250 8452 -227 ct 8473 -204 8484 -171 8484 -129 ct |
8484 -126 8484 -122 8484 -117 ct 8293 -117 l 8295 -89 8303 -67 8317 -52 ct |
8331 -37 8349 -30 8370 -30 ct 8386 -30 8400 -34 8411 -42 ct 8422 -51 8431 -64 8438 -82 ct |
p |
8295 -153 m 8438 -153 l 8436 -174 8431 -190 8422 -201 ct 8408 -218 8390 -226 8368 -226 ct |
8348 -226 8332 -219 8318 -206 ct 8304 -193 8297 -175 8295 -153 ct p ef |
8704 0 m 8704 -32 l 8688 -7 8664 6 8632 6 ct 8612 6 8593 0 8576 -11 ct 8559 -22 8545 -38 8536 -58 ct |
8527 -78 8522 -102 8522 -128 ct 8522 -153 8526 -177 8535 -197 ct 8543 -218 8556 -234 8573 -245 ct |
8590 -256 8609 -262 8630 -262 ct 8646 -262 8659 -259 8671 -252 ct 8684 -246 8693 -237 8701 -227 ct |
8701 -354 l 8744 -354 l 8744 0 l 8704 0 l p |
8567 -128 m 8567 -95 8573 -70 8587 -54 ct 8601 -38 8617 -30 8636 -30 ct 8655 -30 8671 -37 8685 -53 ct |
8698 -69 8704 -92 8704 -124 ct 8704 -159 8698 -185 8684 -201 ct 8671 -218 8654 -226 8634 -226 ct |
8615 -226 8599 -218 8586 -202 ct 8573 -187 8567 -162 8567 -128 ct p ef |
8796 -128 m 8796 -175 8810 -211 8836 -233 ct 8858 -252 8885 -262 8917 -262 ct |
8952 -262 8981 -250 9003 -227 ct 9025 -204 9036 -172 9036 -132 ct 9036 -99 9031 -73 9022 -54 ct |
9012 -35 8997 -20 8978 -10 ct 8960 1 8939 6 8917 6 ct 8881 6 8852 -6 8830 -29 ct |
8807 -52 8796 -85 8796 -128 ct p |
8841 -128 m 8841 -95 8848 -71 8863 -54 ct 8877 -38 8895 -30 8917 -30 ct 8938 -30 8956 -38 8970 -54 ct |
8985 -71 8992 -96 8992 -129 ct 8992 -161 8985 -185 8970 -201 ct 8956 -218 8938 -226 8917 -226 ct |
8895 -226 8877 -218 8863 -202 ct 8848 -185 8841 -161 8841 -128 ct p ef |
9088 0 m 9088 -256 l 9126 -256 l 9126 -220 l 9134 -233 9145 -243 9158 -251 ct |
9172 -258 9187 -262 9204 -262 ct 9223 -262 9239 -258 9251 -250 ct 9263 -242 9271 -231 9276 -217 ct |
9297 -247 9323 -262 9356 -262 ct 9381 -262 9400 -255 9414 -241 ct 9428 -227 9435 -205 9435 -176 ct |
9435 0 l 9391 0 l 9391 -161 l 9391 -179 9390 -191 9387 -199 ct 9384 -207 9379 -213 9372 -217 ct |
9365 -222 9356 -224 9346 -224 ct 9328 -224 9313 -218 9301 -206 ct 9289 -194 9283 -175 9283 -149 ct |
9283 0 l 9240 0 l 9240 -166 l 9240 -186 9236 -200 9229 -210 ct 9222 -220 9211 -224 9194 -224 ct |
9182 -224 9171 -221 9161 -215 ct 9150 -208 9143 -199 9138 -186 ct 9133 -174 9131 -156 9131 -133 ct |
9131 0 l 9088 0 l p ef |
9527 104 m 9496 104 l 9544 27 9568 -50 9568 -128 ct 9568 -158 9565 -188 9558 -218 ct |
9552 -242 9545 -265 9535 -287 ct 9528 -302 9516 -326 9496 -360 ct 9527 -360 l |
9557 -319 9580 -279 9594 -238 ct 9606 -203 9613 -166 9613 -128 ct 9613 -85 9604 -43 9588 -2 ct |
9571 38 9551 74 9527 104 ct p ef |
pom |
1.000 0.828 0.128 c 14573 18416 m 10588 18416 l 10588 15876 l 18557 15876 l |
18557 18416 l 14573 18416 l p ef |
0.003 0.003 0.503 c 14573 18416 m 10588 18416 l 10588 15876 l 18557 15876 l |
18557 18416 l 14573 18416 l pc |
pum |
13025 16812 t |
0.003 0.003 0.003 c 46 -455 m 137 -455 l 137 -208 l 137 -169 139 -144 141 -132 ct |
145 -114 154 -99 169 -87 ct 184 -76 204 -71 229 -71 ct 255 -71 275 -76 288 -86 ct |
302 -97 310 -110 312 -126 ct 315 -141 316 -167 316 -203 ct 316 -455 l 408 -455 l |
408 -216 l 408 -161 406 -123 401 -100 ct 396 -77 386 -58 373 -43 ct 360 -27 342 -15 320 -6 ct |
297 3 268 8 232 8 ct 189 8 156 3 133 -7 ct 111 -17 93 -30 80 -46 ct 67 -62 59 -79 55 -97 ct |
49 -123 46 -161 46 -212 ct 46 -455 l p ef |
472 -95 m 559 -108 l 563 -91 571 -78 582 -69 ct 593 -60 609 -56 630 -56 ct |
652 -56 669 -60 681 -68 ct 688 -74 692 -82 692 -92 ct 692 -98 690 -104 686 -108 ct |
681 -112 672 -116 657 -120 ct 586 -135 542 -149 523 -162 ct 497 -180 484 -205 484 -236 ct |
484 -265 495 -289 518 -308 ct 540 -328 575 -338 623 -338 ct 668 -338 701 -330 723 -316 ct |
745 -301 760 -279 768 -250 ct 686 -235 l 683 -248 676 -258 666 -265 ct 656 -272 642 -275 624 -275 ct |
601 -275 585 -272 575 -265 ct 568 -261 565 -255 565 -248 ct 565 -241 568 -236 574 -232 ct |
581 -226 609 -218 655 -207 ct 701 -197 734 -184 752 -168 ct 770 -153 779 -131 779 -104 ct |
779 -73 767 -47 742 -26 ct 716 -4 679 7 630 7 ct 585 7 549 -2 523 -20 ct 497 -39 480 -63 472 -95 ct |
p ef |
1045 -105 m 1132 -91 l 1121 -59 1103 -35 1079 -18 ct 1055 -1 1025 7 989 7 ct |
932 7 889 -12 862 -49 ct 840 -79 829 -117 829 -163 ct 829 -218 843 -260 872 -291 ct |
900 -322 937 -338 980 -338 ct 1029 -338 1068 -322 1096 -289 ct 1124 -257 1138 -207 1137 -140 ct |
918 -140 l 919 -114 926 -94 940 -80 ct 953 -65 970 -58 990 -58 ct 1003 -58 1015 -62 1024 -69 ct |
1033 -77 1041 -89 1045 -105 ct p |
1050 -193 m 1050 -219 1043 -238 1031 -251 ct 1018 -264 1003 -271 985 -271 ct |
966 -271 951 -264 938 -250 ct 926 -236 920 -217 920 -193 ct 1050 -193 l p ef |
1671 -233 m 1585 -217 l 1582 -234 1575 -247 1565 -256 ct 1555 -265 1542 -269 1525 -269 ct |
1504 -269 1486 -262 1473 -246 ct 1460 -231 1454 -206 1454 -171 ct 1454 -132 1461 -104 1474 -88 ct |
1487 -72 1504 -64 1527 -64 ct 1543 -64 1557 -69 1567 -78 ct 1578 -88 1585 -104 1589 -127 ct |
1675 -112 l 1666 -73 1649 -43 1624 -23 ct 1599 -3 1565 7 1522 7 ct 1474 7 1436 -8 1407 -39 ct |
1379 -69 1364 -111 1364 -165 ct 1364 -219 1379 -262 1407 -292 ct 1436 -322 1475 -338 1524 -338 ct |
1564 -338 1596 -329 1620 -312 ct 1643 -294 1660 -268 1671 -233 ct p ef |
1800 -230 m 1721 -244 l 1730 -276 1745 -299 1767 -315 ct 1788 -330 1820 -338 1863 -338 ct |
1902 -338 1931 -333 1950 -324 ct 1969 -315 1982 -303 1990 -289 ct 1998 -275 2002 -249 2002 -211 ct |
2001 -109 l 2001 -80 2002 -58 2005 -45 ct 2008 -31 2013 -16 2021 0 ct 1935 0 l |
1932 -6 1930 -15 1926 -26 ct 1925 -31 1924 -35 1923 -36 ct 1908 -22 1892 -11 1875 -4 ct |
1858 3 1840 7 1821 7 ct 1787 7 1760 -2 1741 -21 ct 1721 -39 1712 -62 1712 -91 ct |
1712 -109 1716 -126 1725 -140 ct 1734 -155 1746 -166 1762 -174 ct 1778 -182 1801 -188 1832 -194 ct |
1872 -202 1901 -209 1916 -216 ct 1916 -224 l 1916 -241 1912 -253 1904 -260 ct |
1896 -267 1880 -271 1857 -271 ct 1842 -271 1829 -268 1821 -262 ct 1812 -256 1805 -245 1800 -230 ct |
p |
1916 -159 m 1905 -155 1887 -151 1863 -145 ct 1839 -140 1823 -135 1816 -130 ct |
1804 -122 1799 -112 1799 -99 ct 1799 -87 1803 -77 1812 -68 ct 1822 -59 1833 -54 1847 -54 ct |
1863 -54 1878 -60 1892 -70 ct 1903 -78 1910 -87 1913 -99 ct 1915 -106 1916 -121 1916 -141 ct |
1916 -159 l p ef |
2055 -95 m 2142 -108 l 2146 -91 2154 -78 2165 -69 ct 2176 -60 2192 -56 2213 -56 ct |
2235 -56 2252 -60 2264 -68 ct 2271 -74 2275 -82 2275 -92 ct 2275 -98 2273 -104 2269 -108 ct |
2264 -112 2255 -116 2240 -120 ct 2169 -135 2125 -149 2106 -162 ct 2080 -180 2067 -205 2067 -236 ct |
2067 -265 2078 -289 2101 -308 ct 2123 -328 2158 -338 2206 -338 ct 2251 -338 2284 -330 2306 -316 ct |
2328 -301 2343 -279 2351 -250 ct 2269 -235 l 2266 -248 2259 -258 2249 -265 ct |
2239 -272 2225 -275 2207 -275 ct 2184 -275 2168 -272 2158 -265 ct 2151 -261 2148 -255 2148 -248 ct |
2148 -241 2151 -236 2157 -232 ct 2164 -226 2192 -218 2238 -207 ct 2284 -197 2317 -184 2335 -168 ct |
2353 -153 2362 -131 2362 -104 ct 2362 -73 2350 -47 2325 -26 ct 2299 -4 2262 7 2213 7 ct |
2168 7 2132 -2 2106 -20 ct 2080 -39 2063 -63 2055 -95 ct p ef |
2628 -105 m 2715 -91 l 2704 -59 2686 -35 2662 -18 ct 2638 -1 2608 7 2572 7 ct |
2515 7 2472 -12 2445 -49 ct 2423 -79 2412 -117 2412 -163 ct 2412 -218 2426 -260 2455 -291 ct |
2483 -322 2520 -338 2563 -338 ct 2612 -338 2651 -322 2679 -289 ct 2707 -257 2721 -207 2720 -140 ct |
2501 -140 l 2502 -114 2509 -94 2523 -80 ct 2536 -65 2553 -58 2573 -58 ct 2586 -58 2598 -62 2607 -69 ct |
2616 -77 2624 -89 2628 -105 ct p |
2633 -193 m 2633 -219 2626 -238 2614 -251 ct 2601 -264 2586 -271 2568 -271 ct |
2549 -271 2534 -264 2521 -250 ct 2509 -236 2503 -217 2503 -193 ct 2633 -193 l |
p ef |
2758 -95 m 2845 -108 l 2849 -91 2857 -78 2868 -69 ct 2879 -60 2895 -56 2916 -56 ct |
2938 -56 2955 -60 2967 -68 ct 2974 -74 2978 -82 2978 -92 ct 2978 -98 2976 -104 2972 -108 ct |
2967 -112 2958 -116 2943 -120 ct 2872 -135 2828 -149 2809 -162 ct 2783 -180 2770 -205 2770 -236 ct |
2770 -265 2781 -289 2804 -308 ct 2826 -328 2861 -338 2909 -338 ct 2954 -338 2987 -330 3009 -316 ct |
3031 -301 3046 -279 3054 -250 ct 2972 -235 l 2969 -248 2962 -258 2952 -265 ct |
2942 -272 2928 -275 2910 -275 ct 2887 -275 2871 -272 2861 -265 ct 2854 -261 2851 -255 2851 -248 ct |
2851 -241 2854 -236 2860 -232 ct 2867 -226 2895 -218 2941 -207 ct 2987 -197 3020 -184 3038 -168 ct |
3056 -153 3065 -131 3065 -104 ct 3065 -73 3053 -47 3028 -26 ct 3002 -4 2965 7 2916 7 ct |
2871 7 2835 -2 2809 -20 ct 2783 -39 2766 -63 2758 -95 ct p ef |
pom |
pum |
12081 17396 t |
199 0 m 199 -32 l 183 -7 159 6 127 6 ct 107 6 88 0 71 -11 ct 54 -22 40 -38 31 -58 ct |
22 -78 17 -102 17 -128 ct 17 -153 21 -177 30 -197 ct 38 -218 51 -234 68 -245 ct |
85 -256 104 -262 125 -262 ct 141 -262 154 -259 166 -252 ct 179 -246 188 -237 196 -227 ct |
196 -354 l 239 -354 l 239 0 l 199 0 l p |
62 -128 m 62 -95 68 -70 82 -54 ct 96 -38 112 -30 131 -30 ct 150 -30 166 -37 180 -53 ct |
193 -69 199 -92 199 -124 ct 199 -159 193 -185 179 -201 ct 166 -218 149 -226 129 -226 ct |
110 -226 94 -218 81 -202 ct 68 -187 62 -162 62 -128 ct p ef |
291 -128 m 291 -175 305 -211 331 -233 ct 353 -252 380 -262 412 -262 ct 447 -262 476 -250 498 -227 ct |
520 -204 531 -172 531 -132 ct 531 -99 526 -73 517 -54 ct 507 -35 492 -20 473 -10 ct |
455 1 434 6 412 6 ct 376 6 347 -6 325 -29 ct 302 -52 291 -85 291 -128 ct p |
336 -128 m 336 -95 343 -71 358 -54 ct 372 -38 390 -30 412 -30 ct 433 -30 451 -38 465 -54 ct |
480 -71 487 -96 487 -129 ct 487 -161 480 -185 465 -201 ct 451 -218 433 -226 412 -226 ct |
390 -226 372 -218 358 -202 ct 343 -185 336 -161 336 -128 ct p ef |
583 0 m 583 -256 l 621 -256 l 621 -220 l 629 -233 640 -243 653 -251 ct |
667 -258 682 -262 699 -262 ct 718 -262 734 -258 746 -250 ct 758 -242 766 -231 771 -217 ct |
792 -247 818 -262 851 -262 ct 876 -262 895 -255 909 -241 ct 923 -227 930 -205 930 -176 ct |
930 0 l 886 0 l 886 -161 l 886 -179 885 -191 882 -199 ct 879 -207 874 -213 867 -217 ct |
860 -222 851 -224 841 -224 ct 823 -224 808 -218 796 -206 ct 784 -194 778 -175 778 -149 ct |
778 0 l 735 0 l 735 -166 l 735 -186 731 -200 724 -210 ct 717 -220 706 -224 689 -224 ct |
677 -224 666 -221 656 -215 ct 645 -208 638 -199 633 -186 ct 628 -174 626 -156 626 -133 ct |
626 0 l 583 0 l p ef |
1161 -31 m 1145 -18 1129 -8 1114 -2 ct 1099 3 1083 6 1066 6 ct 1038 6 1017 -1 1002 -15 ct |
986 -28 979 -46 979 -67 ct 979 -80 982 -91 987 -102 ct 993 -112 1001 -120 1010 -127 ct |
1019 -133 1030 -138 1041 -141 ct 1050 -143 1062 -145 1080 -148 ct 1115 -152 1141 -157 1157 -163 ct |
1157 -168 1157 -172 1157 -174 ct 1157 -192 1153 -204 1145 -211 ct 1134 -221 1117 -226 1096 -226 ct |
1075 -226 1060 -222 1050 -215 ct 1041 -208 1033 -195 1029 -177 ct 986 -183 l |
990 -201 997 -216 1005 -227 ct 1014 -238 1027 -247 1044 -253 ct 1060 -259 1080 -262 1102 -262 ct |
1124 -262 1142 -259 1155 -254 ct 1169 -249 1179 -243 1185 -235 ct 1192 -227 1196 -217 1199 -205 ct |
1200 -198 1201 -184 1201 -165 ct 1201 -107 l 1201 -67 1202 -41 1204 -31 ct |
1206 -20 1209 -10 1215 0 ct 1169 0 l 1165 -9 1162 -19 1161 -31 ct p |
1157 -128 m 1141 -122 1118 -117 1086 -112 ct 1068 -109 1056 -107 1048 -103 ct |
1041 -100 1035 -95 1031 -89 ct 1027 -83 1025 -76 1025 -69 ct 1025 -57 1030 -47 1038 -40 ct |
1047 -32 1060 -28 1077 -28 ct 1094 -28 1108 -32 1121 -39 ct 1134 -46 1144 -56 1150 -69 ct |
1155 -79 1157 -93 1157 -113 ct 1157 -128 l p ef |
1269 -304 m 1269 -354 l 1312 -354 l 1312 -304 l 1269 -304 l p |
1269 0 m 1269 -256 l 1312 -256 l 1312 0 l 1269 0 l p ef |
1379 0 m 1379 -256 l 1418 -256 l 1418 -220 l 1436 -248 1464 -262 1499 -262 ct |
1515 -262 1529 -259 1542 -254 ct 1555 -248 1564 -241 1571 -232 ct 1577 -223 1582 -212 1584 -200 ct |
1586 -192 1587 -178 1587 -158 ct 1587 0 l 1543 0 l 1543 -156 l 1543 -174 1542 -187 1538 -196 ct |
1535 -204 1529 -211 1520 -217 ct 1512 -222 1502 -224 1490 -224 ct 1472 -224 1456 -218 1442 -207 ct |
1429 -195 1422 -173 1422 -140 ct 1422 0 l 1379 0 l p ef |
1637 -106 m 1637 -150 l 1770 -150 l 1770 -106 l 1637 -106 l p ef |
1818 0 m 1818 -354 l 1861 -354 l 1861 0 l 1818 0 l p ef |
1930 -304 m 1930 -354 l 1973 -354 l 1973 -304 l 1930 -304 l p |
1930 0 m 1930 -256 l 1973 -256 l 1973 0 l 1930 0 l p ef |
2040 0 m 2040 -256 l 2078 -256 l 2078 -220 l 2086 -233 2097 -243 2110 -251 ct |
2124 -258 2139 -262 2156 -262 ct 2175 -262 2191 -258 2203 -250 ct 2215 -242 2223 -231 2228 -217 ct |
2249 -247 2275 -262 2308 -262 ct 2333 -262 2352 -255 2366 -241 ct 2380 -227 2387 -205 2387 -176 ct |
2387 0 l 2343 0 l 2343 -161 l 2343 -179 2342 -191 2339 -199 ct 2336 -207 2331 -213 2324 -217 ct |
2317 -222 2308 -224 2298 -224 ct 2280 -224 2265 -218 2253 -206 ct 2241 -194 2235 -175 2235 -149 ct |
2235 0 l 2192 0 l 2192 -166 l 2192 -186 2188 -200 2181 -210 ct 2174 -220 2163 -224 2146 -224 ct |
2134 -224 2123 -221 2113 -215 ct 2102 -208 2095 -199 2090 -186 ct 2085 -174 2083 -156 2083 -133 ct |
2083 0 l 2040 0 l p ef |
2450 -304 m 2450 -354 l 2493 -354 l 2493 -304 l 2450 -304 l p |
2450 0 m 2450 -256 l 2493 -256 l 2493 0 l 2450 0 l p ef |
2654 -39 m 2661 -1 l 2648 2 2637 3 2628 3 ct 2612 3 2600 0 2591 -4 ct 2582 -9 2576 -16 2573 -24 ct |
2569 -32 2568 -49 2568 -75 ct 2568 -223 l 2536 -223 l 2536 -257 l 2568 -257 l |
2568 -320 l 2611 -346 l 2611 -257 l 2654 -257 l 2654 -223 l 2611 -223 l |
2611 -73 l 2611 -61 2611 -53 2613 -49 ct 2615 -46 2617 -43 2620 -41 ct 2624 -39 2629 -38 2635 -38 ct |
2640 -38 2646 -38 2654 -39 ct p ef |
2875 -82 m 2920 -77 l 2913 -51 2900 -30 2880 -16 ct 2861 -1 2837 6 2807 6 ct |
2770 6 2740 -6 2718 -29 ct 2696 -52 2685 -84 2685 -126 ct 2685 -169 2696 -202 2718 -226 ct |
2741 -250 2769 -262 2805 -262 ct 2839 -262 2867 -250 2889 -227 ct 2910 -204 2921 -171 2921 -129 ct |
2921 -126 2921 -122 2921 -117 ct 2730 -117 l 2732 -89 2740 -67 2754 -52 ct |
2768 -37 2786 -30 2807 -30 ct 2823 -30 2837 -34 2848 -42 ct 2859 -51 2868 -64 2875 -82 ct |
p |
2732 -153 m 2875 -153 l 2873 -174 2868 -190 2859 -201 ct 2845 -218 2827 -226 2805 -226 ct |
2785 -226 2769 -219 2755 -206 ct 2741 -193 2734 -175 2732 -153 ct p ef |
3141 0 m 3141 -32 l 3125 -7 3101 6 3069 6 ct 3049 6 3030 0 3013 -11 ct 2996 -22 2982 -38 2973 -58 ct |
2964 -78 2959 -102 2959 -128 ct 2959 -153 2963 -177 2972 -197 ct 2980 -218 2993 -234 3010 -245 ct |
3027 -256 3046 -262 3067 -262 ct 3083 -262 3096 -259 3108 -252 ct 3121 -246 3130 -237 3138 -227 ct |
3138 -354 l 3181 -354 l 3181 0 l 3141 0 l p |
3004 -128 m 3004 -95 3010 -70 3024 -54 ct 3038 -38 3054 -30 3073 -30 ct 3092 -30 3108 -37 3122 -53 ct |
3135 -69 3141 -92 3141 -124 ct 3141 -159 3135 -185 3121 -201 ct 3108 -218 3091 -226 3071 -226 ct |
3052 -226 3036 -218 3023 -202 ct 3010 -187 3004 -162 3004 -128 ct p ef |
3396 0 m 3396 -354 l 3652 -354 l 3652 -312 l 3443 -312 l 3443 -204 l |
3639 -204 l 3639 -162 l 3443 -162 l 3443 -42 l 3660 -42 l 3660 0 l |
3396 0 l p ef |
3720 0 m 3720 -256 l 3759 -256 l 3759 -220 l 3777 -248 3805 -262 3840 -262 ct |
3856 -262 3870 -259 3883 -254 ct 3896 -248 3905 -241 3912 -232 ct 3918 -223 3923 -212 3925 -200 ct |
3927 -192 3928 -178 3928 -158 ct 3928 0 l 3884 0 l 3884 -156 l 3884 -174 3883 -187 3879 -196 ct |
3876 -204 3870 -211 3861 -217 ct 3853 -222 3843 -224 3831 -224 ct 3813 -224 3797 -218 3783 -207 ct |
3770 -195 3763 -173 3763 -140 ct 3763 0 l 3720 0 l p ef |
3987 21 m 4029 28 l 4031 41 4035 50 4044 56 ct 4054 64 4069 68 4088 68 ct |
4108 68 4123 64 4134 56 ct 4145 48 4153 37 4156 22 ct 4159 13 4160 -5 4160 -34 ct |
4141 -11 4117 0 4089 0 ct 4053 0 4026 -13 4007 -38 ct 3988 -64 3978 -94 3978 -130 ct |
3978 -154 3982 -177 3991 -197 ct 4000 -218 4013 -234 4030 -245 ct 4046 -256 4066 -262 4089 -262 ct |
4119 -262 4144 -250 4164 -225 ct 4164 -256 l 4204 -256 l 4204 -35 l 4204 5 4200 33 4192 50 ct |
4183 67 4171 80 4153 90 ct 4135 99 4114 104 4088 104 ct 4057 104 4033 97 4014 83 ct |
3995 70 3986 49 3987 21 ct p |
4023 -133 m 4023 -99 4029 -75 4043 -59 ct 4056 -44 4073 -36 4093 -36 ct 4113 -36 4129 -44 4143 -59 ct |
4156 -74 4163 -98 4163 -131 ct 4163 -163 4156 -186 4142 -202 ct 4128 -218 4112 -226 4092 -226 ct |
4073 -226 4056 -218 4043 -203 ct 4029 -187 4023 -164 4023 -133 ct p ef |
4270 0 m 4270 -354 l 4313 -354 l 4313 0 l 4270 0 l p ef |
4381 -304 m 4381 -354 l 4424 -354 l 4424 -304 l 4381 -304 l p |
4381 0 m 4381 -256 l 4424 -256 l 4424 0 l 4381 0 l p ef |
4473 -76 m 4516 -83 l 4519 -66 4525 -53 4536 -43 ct 4547 -34 4563 -30 4582 -30 ct |
4602 -30 4617 -34 4627 -42 ct 4637 -50 4641 -60 4641 -70 ct 4641 -80 4637 -88 4629 -94 ct |
4623 -97 4608 -102 4584 -108 ct 4552 -116 4530 -123 4518 -129 ct 4506 -135 4496 -143 4490 -154 ct |
4484 -164 4480 -175 4480 -188 ct 4480 -199 4483 -210 4488 -220 ct 4494 -229 4501 -237 4510 -244 ct |
4516 -249 4526 -253 4537 -257 ct 4549 -260 4561 -262 4575 -262 ct 4595 -262 4612 -259 4628 -253 ct |
4643 -247 4654 -239 4661 -230 ct 4669 -220 4674 -206 4676 -190 ct 4634 -184 l |
4632 -197 4626 -208 4617 -215 ct 4608 -222 4595 -226 4578 -226 ct 4558 -226 4544 -223 4535 -216 ct |
4527 -210 4522 -202 4522 -193 ct 4522 -187 4524 -182 4528 -178 ct 4531 -173 4537 -169 4544 -166 ct |
4549 -165 4561 -161 4583 -155 ct 4613 -147 4635 -140 4647 -135 ct 4659 -130 4669 -122 4676 -112 ct |
4682 -102 4686 -90 4686 -75 ct 4686 -61 4682 -47 4673 -34 ct 4665 -21 4653 -11 4637 -4 ct |
4621 2 4603 6 4583 6 ct 4549 6 4524 -1 4507 -15 ct 4489 -29 4478 -49 4473 -76 ct |
p ef |
4740 0 m 4740 -354 l 4783 -354 l 4783 -227 l 4803 -250 4829 -262 4860 -262 ct |
4879 -262 4895 -258 4909 -251 ct 4923 -243 4933 -233 4939 -220 ct 4945 -207 4948 -187 4948 -162 ct |
4948 0 l 4905 0 l 4905 -162 l 4905 -184 4900 -200 4891 -210 ct 4881 -220 4868 -225 4851 -225 ct |
4838 -225 4826 -221 4814 -215 ct 4803 -208 4795 -199 4790 -187 ct 4785 -176 4783 -160 4783 -140 ct |
4783 0 l 4740 0 l p ef |
pom |
pum |
11635 17951 t |
127 -39 m 134 -1 l 121 2 110 3 101 3 ct 85 3 73 0 64 -4 ct 55 -9 49 -16 46 -24 ct |
42 -32 41 -49 41 -75 ct 41 -223 l 9 -223 l 9 -257 l 41 -257 l 41 -320 l |
84 -346 l 84 -257 l 127 -257 l 127 -223 l 84 -223 l 84 -73 l 84 -61 84 -53 86 -49 ct |
88 -46 90 -43 93 -41 ct 97 -39 102 -38 108 -38 ct 113 -38 119 -38 127 -39 ct p ef |
172 0 m 172 -256 l 211 -256 l 211 -217 l 221 -236 230 -248 239 -253 ct |
247 -259 257 -262 267 -262 ct 281 -262 296 -257 311 -248 ct 296 -208 l 286 -214 275 -217 264 -217 ct |
255 -217 246 -214 239 -209 ct 231 -203 226 -195 223 -185 ct 218 -169 216 -152 216 -134 ct |
216 0 l 172 0 l p ef |
505 -31 m 489 -18 473 -8 458 -2 ct 443 3 427 6 410 6 ct 382 6 361 -1 346 -15 ct |
330 -28 323 -46 323 -67 ct 323 -80 326 -91 331 -102 ct 337 -112 345 -120 354 -127 ct |
363 -133 374 -138 385 -141 ct 394 -143 406 -145 424 -148 ct 459 -152 485 -157 501 -163 ct |
501 -168 501 -172 501 -174 ct 501 -192 497 -204 489 -211 ct 478 -221 461 -226 440 -226 ct |
419 -226 404 -222 394 -215 ct 385 -208 377 -195 373 -177 ct 330 -183 l 334 -201 341 -216 349 -227 ct |
358 -238 371 -247 388 -253 ct 404 -259 424 -262 446 -262 ct 468 -262 486 -259 499 -254 ct |
513 -249 523 -243 529 -235 ct 536 -227 540 -217 543 -205 ct 544 -198 545 -184 545 -165 ct |
545 -107 l 545 -67 546 -41 548 -31 ct 550 -20 553 -10 559 0 ct 513 0 l 509 -9 506 -19 505 -31 ct |
p |
501 -128 m 485 -122 462 -117 430 -112 ct 412 -109 400 -107 392 -103 ct 385 -100 379 -95 375 -89 ct |
371 -83 369 -76 369 -69 ct 369 -57 374 -47 382 -40 ct 391 -32 404 -28 421 -28 ct |
438 -28 452 -32 465 -39 ct 478 -46 488 -56 494 -69 ct 499 -79 501 -93 501 -113 ct |
501 -128 l p ef |
613 0 m 613 -256 l 652 -256 l 652 -220 l 670 -248 698 -262 733 -262 ct |
749 -262 763 -259 776 -254 ct 789 -248 798 -241 805 -232 ct 811 -223 816 -212 818 -200 ct |
820 -192 821 -178 821 -158 ct 821 0 l 777 0 l 777 -156 l 777 -174 776 -187 772 -196 ct |
769 -204 763 -211 754 -217 ct 746 -222 736 -224 724 -224 ct 706 -224 690 -218 676 -207 ct |
663 -195 656 -173 656 -140 ct 656 0 l 613 0 l p ef |
870 -76 m 913 -83 l 916 -66 922 -53 933 -43 ct 944 -34 960 -30 979 -30 ct |
999 -30 1014 -34 1024 -42 ct 1034 -50 1038 -60 1038 -70 ct 1038 -80 1034 -88 1026 -94 ct |
1020 -97 1005 -102 981 -108 ct 949 -116 927 -123 915 -129 ct 903 -135 893 -143 887 -154 ct |
881 -164 877 -175 877 -188 ct 877 -199 880 -210 885 -220 ct 891 -229 898 -237 907 -244 ct |
913 -249 923 -253 934 -257 ct 946 -260 958 -262 972 -262 ct 992 -262 1009 -259 1025 -253 ct |
1040 -247 1051 -239 1058 -230 ct 1066 -220 1071 -206 1073 -190 ct 1031 -184 l |
1029 -197 1023 -208 1014 -215 ct 1005 -222 992 -226 975 -226 ct 955 -226 941 -223 932 -216 ct |
924 -210 919 -202 919 -193 ct 919 -187 921 -182 925 -178 ct 928 -173 934 -169 941 -166 ct |
946 -165 958 -161 980 -155 ct 1010 -147 1032 -140 1044 -135 ct 1056 -130 1066 -122 1073 -112 ct |
1079 -102 1083 -90 1083 -75 ct 1083 -61 1079 -47 1070 -34 ct 1062 -21 1050 -11 1034 -4 ct |
1018 2 1000 6 980 6 ct 946 6 921 -1 904 -15 ct 886 -29 875 -49 870 -76 ct p ef |
1148 1 m 1148 -222 l 1110 -222 l 1110 -256 l 1148 -256 l 1148 -283 l |
1148 -300 1149 -313 1153 -321 ct 1157 -332 1164 -342 1175 -349 ct 1185 -356 1200 -359 1219 -359 ct |
1231 -359 1245 -358 1259 -355 ct 1253 -317 l 1244 -318 1235 -319 1227 -319 ct |
1214 -319 1205 -316 1199 -311 ct 1194 -305 1191 -295 1191 -279 ct 1191 -256 l |
1241 -256 l 1241 -222 l 1191 -222 l 1191 1 l 1148 1 l p ef |
1261 -128 m 1261 -175 1275 -211 1301 -233 ct 1323 -252 1350 -262 1382 -262 ct |
1417 -262 1446 -250 1468 -227 ct 1490 -204 1501 -172 1501 -132 ct 1501 -99 1496 -73 1487 -54 ct |
1477 -35 1462 -20 1443 -10 ct 1425 1 1404 6 1382 6 ct 1346 6 1317 -6 1295 -29 ct |
1272 -52 1261 -85 1261 -128 ct p |
1306 -128 m 1306 -95 1313 -71 1328 -54 ct 1342 -38 1360 -30 1382 -30 ct 1403 -30 1421 -38 1435 -54 ct |
1450 -71 1457 -96 1457 -129 ct 1457 -161 1450 -185 1435 -201 ct 1421 -218 1403 -226 1382 -226 ct |
1360 -226 1342 -218 1328 -202 ct 1313 -185 1306 -161 1306 -128 ct p ef |
1552 0 m 1552 -256 l 1591 -256 l 1591 -217 l 1601 -236 1610 -248 1619 -253 ct |
1627 -259 1637 -262 1647 -262 ct 1661 -262 1676 -257 1691 -248 ct 1676 -208 l |
1666 -214 1655 -217 1644 -217 ct 1635 -217 1626 -214 1619 -209 ct 1611 -203 1606 -195 1603 -185 ct |
1598 -169 1596 -152 1596 -134 ct 1596 0 l 1552 0 l p ef |
1718 0 m 1718 -256 l 1756 -256 l 1756 -220 l 1764 -233 1775 -243 1788 -251 ct |
1802 -258 1817 -262 1834 -262 ct 1853 -262 1869 -258 1881 -250 ct 1893 -242 1901 -231 1906 -217 ct |
1927 -247 1953 -262 1986 -262 ct 2011 -262 2030 -255 2044 -241 ct 2058 -227 2065 -205 2065 -176 ct |
2065 0 l 2021 0 l 2021 -161 l 2021 -179 2020 -191 2017 -199 ct 2014 -207 2009 -213 2002 -217 ct |
1995 -222 1986 -224 1976 -224 ct 1958 -224 1943 -218 1931 -206 ct 1919 -194 1913 -175 1913 -149 ct |
1913 0 l 1870 0 l 1870 -166 l 1870 -186 1866 -200 1859 -210 ct 1852 -220 1841 -224 1824 -224 ct |
1812 -224 1801 -221 1791 -215 ct 1780 -208 1773 -199 1768 -186 ct 1763 -174 1761 -156 1761 -133 ct |
1761 0 l 1718 0 l p ef |
2296 -31 m 2280 -18 2264 -8 2249 -2 ct 2234 3 2218 6 2201 6 ct 2173 6 2152 -1 2137 -15 ct |
2121 -28 2114 -46 2114 -67 ct 2114 -80 2117 -91 2122 -102 ct 2128 -112 2136 -120 2145 -127 ct |
2154 -133 2165 -138 2176 -141 ct 2185 -143 2197 -145 2215 -148 ct 2250 -152 2276 -157 2292 -163 ct |
2292 -168 2292 -172 2292 -174 ct 2292 -192 2288 -204 2280 -211 ct 2269 -221 2252 -226 2231 -226 ct |
2210 -226 2195 -222 2185 -215 ct 2176 -208 2168 -195 2164 -177 ct 2121 -183 l |
2125 -201 2132 -216 2140 -227 ct 2149 -238 2162 -247 2179 -253 ct 2195 -259 2215 -262 2237 -262 ct |
2259 -262 2277 -259 2290 -254 ct 2304 -249 2314 -243 2320 -235 ct 2327 -227 2331 -217 2334 -205 ct |
2335 -198 2336 -184 2336 -165 ct 2336 -107 l 2336 -67 2337 -41 2339 -31 ct |
2341 -20 2344 -10 2350 0 ct 2304 0 l 2300 -9 2297 -19 2296 -31 ct p |
2292 -128 m 2276 -122 2253 -117 2221 -112 ct 2203 -109 2191 -107 2183 -103 ct |
2176 -100 2170 -95 2166 -89 ct 2162 -83 2160 -76 2160 -69 ct 2160 -57 2165 -47 2173 -40 ct |
2182 -32 2195 -28 2212 -28 ct 2229 -28 2243 -32 2256 -39 ct 2269 -46 2279 -56 2285 -69 ct |
2290 -79 2292 -93 2292 -113 ct 2292 -128 l p ef |
2498 -39 m 2505 -1 l 2492 2 2481 3 2472 3 ct 2456 3 2444 0 2435 -4 ct 2426 -9 2420 -16 2417 -24 ct |
2413 -32 2412 -49 2412 -75 ct 2412 -223 l 2380 -223 l 2380 -257 l 2412 -257 l |
2412 -320 l 2455 -346 l 2455 -257 l 2498 -257 l 2498 -223 l 2455 -223 l |
2455 -73 l 2455 -61 2455 -53 2457 -49 ct 2459 -46 2461 -43 2464 -41 ct 2468 -39 2473 -38 2479 -38 ct |
2484 -38 2490 -38 2498 -39 ct p ef |
2543 -304 m 2543 -354 l 2586 -354 l 2586 -304 l 2543 -304 l p |
2543 0 m 2543 -256 l 2586 -256 l 2586 0 l 2543 0 l p ef |
2636 -128 m 2636 -175 2650 -211 2676 -233 ct 2698 -252 2725 -262 2757 -262 ct |
2792 -262 2821 -250 2843 -227 ct 2865 -204 2876 -172 2876 -132 ct 2876 -99 2871 -73 2862 -54 ct |
2852 -35 2837 -20 2818 -10 ct 2800 1 2779 6 2757 6 ct 2721 6 2692 -6 2670 -29 ct |
2647 -52 2636 -85 2636 -128 ct p |
2681 -128 m 2681 -95 2688 -71 2703 -54 ct 2717 -38 2735 -30 2757 -30 ct 2778 -30 2796 -38 2810 -54 ct |
2825 -71 2832 -96 2832 -129 ct 2832 -161 2825 -185 2810 -201 ct 2796 -218 2778 -226 2757 -226 ct |
2735 -226 2717 -218 2703 -202 ct 2688 -185 2681 -161 2681 -128 ct p ef |
2929 0 m 2929 -256 l 2968 -256 l 2968 -220 l 2986 -248 3014 -262 3049 -262 ct |
3065 -262 3079 -259 3092 -254 ct 3105 -248 3114 -241 3121 -232 ct 3127 -223 3132 -212 3134 -200 ct |
3136 -192 3137 -178 3137 -158 ct 3137 0 l 3093 0 l 3093 -156 l 3093 -174 3092 -187 3088 -196 ct |
3085 -204 3079 -211 3070 -217 ct 3062 -222 3052 -224 3040 -224 ct 3022 -224 3006 -218 2992 -207 ct |
2979 -195 2972 -173 2972 -140 ct 2972 0 l 2929 0 l p ef |
3186 -76 m 3229 -83 l 3232 -66 3238 -53 3249 -43 ct 3260 -34 3276 -30 3295 -30 ct |
3315 -30 3330 -34 3340 -42 ct 3350 -50 3354 -60 3354 -70 ct 3354 -80 3350 -88 3342 -94 ct |
3336 -97 3321 -102 3297 -108 ct 3265 -116 3243 -123 3231 -129 ct 3219 -135 3209 -143 3203 -154 ct |
3197 -164 3193 -175 3193 -188 ct 3193 -199 3196 -210 3201 -220 ct 3207 -229 3214 -237 3223 -244 ct |
3229 -249 3239 -253 3250 -257 ct 3262 -260 3274 -262 3288 -262 ct 3308 -262 3325 -259 3341 -253 ct |
3356 -247 3367 -239 3374 -230 ct 3382 -220 3387 -206 3389 -190 ct 3347 -184 l |
3345 -197 3339 -208 3330 -215 ct 3321 -222 3308 -226 3291 -226 ct 3271 -226 3257 -223 3248 -216 ct |
3240 -210 3235 -202 3235 -193 ct 3235 -187 3237 -182 3241 -178 ct 3244 -173 3250 -169 3257 -166 ct |
3262 -165 3274 -161 3296 -155 ct 3326 -147 3348 -140 3360 -135 ct 3372 -130 3382 -122 3389 -112 ct |
3395 -102 3399 -90 3399 -75 ct 3399 -61 3395 -47 3386 -34 ct 3378 -21 3366 -11 3350 -4 ct |
3334 2 3316 6 3296 6 ct 3262 6 3237 -1 3220 -15 ct 3202 -29 3191 -49 3186 -76 ct |
p ef |
3676 104 m 3652 74 3631 38 3615 -2 ct 3598 -43 3590 -85 3590 -128 ct 3590 -166 3596 -203 3608 -238 ct |
3623 -279 3645 -319 3676 -360 ct 3707 -360 l 3687 -326 3674 -302 3668 -288 ct |
3658 -266 3651 -243 3645 -219 ct 3638 -188 3635 -158 3635 -128 ct 3635 -50 3659 27 3707 104 ct |
3676 104 l p ef |
pom |
pum |
15360 17951 t |
21 -1 m 95 -354 l 243 -354 l 268 -354 288 -351 300 -345 ct 313 -339 324 -329 332 -315 ct |
341 -301 345 -285 345 -267 ct 345 -253 342 -238 336 -223 ct 330 -207 322 -195 313 -185 ct |
304 -175 295 -168 286 -163 ct 276 -158 266 -154 256 -152 ct 233 -147 210 -144 187 -144 ct |
98 -144 l 69 -1 l 21 -1 l p |
107 -184 m 185 -184 l 215 -184 237 -187 251 -194 ct 265 -200 277 -210 285 -224 ct |
294 -237 298 -251 298 -266 ct 298 -278 296 -287 291 -294 ct 287 -302 281 -307 272 -310 ct |
264 -314 248 -316 225 -316 ct 134 -316 l 107 -184 l p ef |
346 1 m 400 -256 l 439 -256 l 428 -204 l 441 -223 454 -238 466 -248 ct |
479 -257 492 -262 505 -262 ct 514 -262 525 -259 537 -252 ct 519 -212 l 512 -217 504 -220 495 -220 ct |
479 -220 464 -211 447 -194 ct 431 -177 419 -147 410 -102 ct 388 1 l 346 1 l |
p ef |
519 -97 m 519 -147 534 -188 563 -221 ct 588 -248 619 -262 659 -262 ct 690 -262 715 -252 733 -233 ct |
752 -214 762 -187 762 -155 ct 762 -125 756 -98 744 -73 ct 732 -47 715 -28 693 -14 ct |
671 -1 648 6 624 6 ct 604 6 586 2 569 -7 ct 553 -15 541 -27 532 -43 ct 523 -59 519 -77 519 -97 ct |
p |
563 -101 m 563 -77 569 -59 580 -46 ct 592 -34 606 -28 624 -28 ct 634 -28 643 -30 652 -33 ct |
661 -37 670 -43 678 -51 ct 685 -58 692 -67 698 -77 ct 703 -87 708 -98 711 -109 ct |
716 -125 719 -140 719 -155 ct 719 -178 713 -196 701 -209 ct 689 -222 675 -228 657 -228 ct |
643 -228 631 -225 620 -218 ct 608 -212 598 -202 589 -190 ct 580 -177 573 -163 569 -146 ct |
565 -129 563 -114 563 -101 ct p ef |
963 -93 m 1007 -89 l 996 -57 980 -33 960 -17 ct 940 -2 917 6 891 6 ct 864 6 841 -3 824 -21 ct |
806 -39 798 -64 798 -97 ct 798 -125 803 -152 814 -179 ct 825 -206 841 -227 862 -241 ct |
883 -255 906 -262 933 -262 ct 960 -262 982 -254 998 -238 ct 1014 -222 1022 -202 1022 -176 ct |
979 -176 l 979 -191 975 -204 965 -213 ct 956 -222 944 -226 929 -226 ct 911 -226 896 -220 883 -209 ct |
870 -198 860 -181 853 -159 ct 846 -136 842 -114 842 -93 ct 842 -72 847 -55 856 -44 ct |
866 -33 878 -28 892 -28 ct 906 -28 920 -33 933 -44 ct 946 -55 956 -71 963 -93 ct |
p ef |
1209 -32 m 1194 -19 1179 -9 1165 -3 ct 1151 3 1137 6 1121 6 ct 1097 6 1078 -1 1063 -15 ct |
1049 -29 1042 -47 1042 -69 ct 1042 -84 1045 -96 1051 -107 ct 1058 -119 1067 -128 1077 -134 ct |
1088 -141 1101 -146 1117 -149 ct 1127 -151 1145 -152 1173 -152 ct 1200 -152 1220 -154 1232 -159 ct |
1235 -171 1237 -181 1237 -189 ct 1237 -200 1233 -208 1226 -214 ct 1216 -222 1201 -226 1181 -226 ct |
1163 -226 1148 -222 1136 -214 ct 1125 -206 1116 -194 1111 -179 ct 1067 -183 l |
1076 -208 1090 -228 1110 -241 ct 1129 -255 1154 -262 1184 -262 ct 1215 -262 1240 -254 1259 -239 ct |
1273 -228 1280 -213 1280 -195 ct 1280 -181 1278 -166 1274 -148 ct 1260 -84 l |
1255 -64 1253 -47 1253 -35 ct 1253 -26 1255 -15 1258 0 ct 1214 0 l 1212 -8 1210 -19 1209 -32 ct |
p |
1225 -130 m 1219 -127 1213 -125 1206 -124 ct 1199 -123 1187 -121 1171 -120 ct |
1145 -118 1127 -115 1117 -111 ct 1106 -108 1098 -102 1093 -95 ct 1088 -87 1085 -79 1085 -70 ct |
1085 -58 1089 -47 1098 -40 ct 1106 -32 1118 -28 1134 -28 ct 1148 -28 1162 -32 1176 -39 ct |
1189 -47 1199 -58 1207 -71 ct 1215 -85 1221 -104 1225 -130 ct p ef |
1316 -89 m 1359 -89 l 1359 -76 1361 -66 1365 -57 ct 1369 -49 1376 -42 1386 -36 ct |
1397 -31 1409 -28 1423 -28 ct 1442 -28 1456 -32 1466 -39 ct 1476 -47 1480 -56 1480 -67 ct |
1480 -74 1478 -81 1472 -88 ct 1466 -95 1451 -103 1428 -113 ct 1405 -123 1390 -130 1384 -134 ct |
1373 -141 1365 -148 1360 -157 ct 1354 -166 1351 -176 1351 -188 ct 1351 -208 1359 -226 1376 -240 ct |
1392 -255 1414 -262 1443 -262 ct 1475 -262 1500 -254 1517 -239 ct 1533 -224 1542 -204 1543 -179 ct |
1500 -179 l 1499 -194 1494 -206 1484 -215 ct 1473 -224 1459 -228 1440 -228 ct |
1425 -228 1413 -225 1405 -218 ct 1396 -211 1392 -203 1392 -195 ct 1392 -187 1396 -180 1403 -174 ct |
1408 -170 1420 -163 1440 -155 ct 1474 -140 1495 -129 1504 -120 ct 1517 -107 1524 -91 1524 -72 ct |
1524 -59 1520 -47 1513 -34 ct 1505 -22 1493 -12 1477 -5 ct 1461 2 1442 6 1420 6 ct |
1391 6 1366 -1 1345 -16 ct 1324 -31 1314 -55 1316 -89 ct p ef |
1569 -97 m 1569 -147 1584 -188 1613 -221 ct 1638 -248 1669 -262 1709 -262 ct |
1740 -262 1765 -252 1783 -233 ct 1802 -214 1812 -187 1812 -155 ct 1812 -125 1806 -98 1794 -73 ct |
1782 -47 1765 -28 1743 -14 ct 1721 -1 1698 6 1674 6 ct 1654 6 1636 2 1619 -7 ct |
1603 -15 1591 -27 1582 -43 ct 1573 -59 1569 -77 1569 -97 ct p |
1613 -101 m 1613 -77 1619 -59 1630 -46 ct 1642 -34 1656 -28 1674 -28 ct 1684 -28 1693 -30 1702 -33 ct |
1711 -37 1720 -43 1728 -51 ct 1735 -58 1742 -67 1748 -77 ct 1753 -87 1758 -98 1761 -109 ct |
1766 -125 1769 -140 1769 -155 ct 1769 -178 1763 -196 1751 -209 ct 1739 -222 1725 -228 1707 -228 ct |
1693 -228 1681 -225 1670 -218 ct 1658 -212 1648 -202 1639 -190 ct 1630 -177 1623 -163 1619 -146 ct |
1615 -129 1613 -114 1613 -101 ct p ef |
1836 1 m 1890 -256 l 1929 -256 l 1918 -204 l 1931 -223 1944 -238 1956 -248 ct |
1969 -257 1982 -262 1995 -262 ct 2004 -262 2015 -259 2027 -252 ct 2009 -212 l |
2002 -217 1994 -220 1985 -220 ct 1969 -220 1954 -211 1937 -194 ct 1921 -177 1909 -147 1900 -102 ct |
1878 1 l 1836 1 l p ef |
pom |
pum |
17345 17951 t |
61 104 m 30 104 l 78 27 102 -50 102 -128 ct 102 -158 99 -188 92 -218 ct 86 -242 79 -265 69 -287 ct |
62 -302 50 -326 30 -360 ct 61 -360 l 91 -319 114 -279 128 -238 ct 140 -203 147 -166 147 -128 ct |
147 -85 138 -43 122 -2 ct 105 38 85 74 61 104 ct p ef |
pom |
0.503 0.003 0.003 c 15085 15692 m 22044 13902 l 22057 13951 l 22069 14000 l |
15110 15790 l 15097 15741 l 15085 15692 l p ef |
14572 15876 m 15285 15926 l 15172 15488 l 14572 15876 l p ef |
22582 13816 m 21869 13766 l 21982 14204 l 22582 13816 l p ef |
pum |
12013 14740 t |
pom |
pum |
20535 14740 t |
0.003 0.003 0.003 c 200 -94 m 242 -88 l 238 -59 226 -36 207 -19 ct 187 -2 164 6 136 6 ct |
101 6 73 -5 51 -28 ct 30 -51 19 -84 19 -127 ct 19 -155 24 -179 33 -199 ct 42 -220 56 -236 75 -246 ct |
94 -257 114 -262 136 -262 ct 164 -262 187 -255 204 -241 ct 222 -227 233 -207 238 -181 ct |
196 -174 l 192 -191 185 -204 175 -213 ct 165 -222 152 -226 138 -226 ct 116 -226 98 -218 84 -202 ct |
71 -187 64 -162 64 -128 ct 64 -94 71 -69 84 -53 ct 97 -38 114 -30 135 -30 ct 152 -30 167 -35 178 -45 ct |
189 -56 197 -72 200 -94 ct p ef |
266 -128 m 266 -175 280 -211 306 -233 ct 328 -252 355 -262 387 -262 ct 422 -262 451 -250 473 -227 ct |
495 -204 506 -172 506 -132 ct 506 -99 501 -73 492 -54 ct 482 -35 467 -20 448 -10 ct |
430 1 409 6 387 6 ct 351 6 322 -6 300 -29 ct 277 -52 266 -85 266 -128 ct p |
311 -128 m 311 -95 318 -71 333 -54 ct 347 -38 365 -30 387 -30 ct 408 -30 426 -38 440 -54 ct |
455 -71 462 -96 462 -129 ct 462 -161 455 -185 440 -201 ct 426 -218 408 -226 387 -226 ct |
365 -226 347 -218 333 -202 ct 318 -185 311 -161 311 -128 ct p ef |
558 0 m 558 -256 l 596 -256 l 596 -220 l 604 -233 615 -243 628 -251 ct |
642 -258 657 -262 674 -262 ct 693 -262 709 -258 721 -250 ct 733 -242 741 -231 746 -217 ct |
767 -247 793 -262 826 -262 ct 851 -262 870 -255 884 -241 ct 898 -227 905 -205 905 -176 ct |
905 0 l 861 0 l 861 -161 l 861 -179 860 -191 857 -199 ct 854 -207 849 -213 842 -217 ct |
835 -222 826 -224 816 -224 ct 798 -224 783 -218 771 -206 ct 759 -194 753 -175 753 -149 ct |
753 0 l 710 0 l 710 -166 l 710 -186 706 -200 699 -210 ct 692 -220 681 -224 664 -224 ct |
652 -224 641 -221 631 -215 ct 620 -208 613 -199 608 -186 ct 603 -174 601 -156 601 -133 ct |
601 0 l 558 0 l p ef |
969 98 m 969 -256 l 1008 -256 l 1008 -223 l 1017 -236 1028 -246 1040 -252 ct |
1051 -259 1066 -262 1082 -262 ct 1104 -262 1124 -256 1140 -245 ct 1157 -234 1170 -218 1178 -197 ct |
1187 -177 1191 -155 1191 -130 ct 1191 -104 1186 -80 1177 -59 ct 1167 -38 1154 -22 1136 -11 ct |
1118 0 1099 6 1079 6 ct 1065 6 1052 3 1040 -3 ct 1029 -10 1019 -17 1012 -27 ct |
1012 98 l 969 98 l p |
1008 -127 m 1008 -94 1015 -69 1028 -54 ct 1041 -38 1057 -30 1076 -30 ct 1096 -30 1112 -38 1126 -54 ct |
1140 -71 1147 -96 1147 -130 ct 1147 -163 1140 -187 1126 -204 ct 1113 -220 1097 -228 1078 -228 ct |
1060 -228 1043 -219 1029 -202 ct 1015 -185 1008 -160 1008 -127 ct p ef |
1243 0 m 1243 -354 l 1286 -354 l 1286 0 l 1243 0 l p ef |
1354 -304 m 1354 -354 l 1397 -354 l 1397 -304 l 1354 -304 l p |
1354 0 m 1354 -256 l 1397 -256 l 1397 0 l 1354 0 l p ef |
1631 -31 m 1615 -18 1599 -8 1584 -2 ct 1569 3 1553 6 1536 6 ct 1508 6 1487 -1 1472 -15 ct |
1456 -28 1449 -46 1449 -67 ct 1449 -80 1452 -91 1457 -102 ct 1463 -112 1471 -120 1480 -127 ct |
1489 -133 1500 -138 1511 -141 ct 1520 -143 1532 -145 1550 -148 ct 1585 -152 1611 -157 1627 -163 ct |
1627 -168 1627 -172 1627 -174 ct 1627 -192 1623 -204 1615 -211 ct 1604 -221 1587 -226 1566 -226 ct |
1545 -226 1530 -222 1520 -215 ct 1511 -208 1503 -195 1499 -177 ct 1456 -183 l |
1460 -201 1467 -216 1475 -227 ct 1484 -238 1497 -247 1514 -253 ct 1530 -259 1550 -262 1572 -262 ct |
1594 -262 1612 -259 1625 -254 ct 1639 -249 1649 -243 1655 -235 ct 1662 -227 1666 -217 1669 -205 ct |
1670 -198 1671 -184 1671 -165 ct 1671 -107 l 1671 -67 1672 -41 1674 -31 ct |
1676 -20 1679 -10 1685 0 ct 1639 0 l 1635 -9 1632 -19 1631 -31 ct p |
1627 -128 m 1611 -122 1588 -117 1556 -112 ct 1538 -109 1526 -107 1518 -103 ct |
1511 -100 1505 -95 1501 -89 ct 1497 -83 1495 -76 1495 -69 ct 1495 -57 1500 -47 1508 -40 ct |
1517 -32 1530 -28 1547 -28 ct 1564 -28 1578 -32 1591 -39 ct 1604 -46 1614 -56 1620 -69 ct |
1625 -79 1627 -93 1627 -113 ct 1627 -128 l p ef |
1739 0 m 1739 -256 l 1778 -256 l 1778 -220 l 1796 -248 1824 -262 1859 -262 ct |
1875 -262 1889 -259 1902 -254 ct 1915 -248 1924 -241 1931 -232 ct 1937 -223 1942 -212 1944 -200 ct |
1946 -192 1947 -178 1947 -158 ct 1947 0 l 1903 0 l 1903 -156 l 1903 -174 1902 -187 1898 -196 ct |
1895 -204 1889 -211 1880 -217 ct 1872 -222 1862 -224 1850 -224 ct 1832 -224 1816 -218 1802 -207 ct |
1789 -195 1782 -173 1782 -140 ct 1782 0 l 1739 0 l p ef |
2181 -94 m 2223 -88 l 2219 -59 2207 -36 2188 -19 ct 2168 -2 2145 6 2117 6 ct |
2082 6 2054 -5 2032 -28 ct 2011 -51 2000 -84 2000 -127 ct 2000 -155 2005 -179 2014 -199 ct |
2023 -220 2037 -236 2056 -246 ct 2075 -257 2095 -262 2117 -262 ct 2145 -262 2168 -255 2185 -241 ct |
2203 -227 2214 -207 2219 -181 ct 2177 -174 l 2173 -191 2166 -204 2156 -213 ct |
2146 -222 2133 -226 2119 -226 ct 2097 -226 2079 -218 2065 -202 ct 2052 -187 2045 -162 2045 -128 ct |
2045 -94 2052 -69 2065 -53 ct 2078 -38 2095 -30 2116 -30 ct 2133 -30 2148 -35 2159 -45 ct |
2170 -56 2178 -72 2181 -94 ct p ef |
2439 -82 m 2484 -77 l 2477 -51 2464 -30 2444 -16 ct 2425 -1 2401 6 2371 6 ct |
2334 6 2304 -6 2282 -29 ct 2260 -52 2249 -84 2249 -126 ct 2249 -169 2260 -202 2282 -226 ct |
2305 -250 2333 -262 2369 -262 ct 2403 -262 2431 -250 2453 -227 ct 2474 -204 2485 -171 2485 -129 ct |
2485 -126 2485 -122 2485 -117 ct 2294 -117 l 2296 -89 2304 -67 2318 -52 ct |
2332 -37 2350 -30 2371 -30 ct 2387 -30 2401 -34 2412 -42 ct 2423 -51 2432 -64 2439 -82 ct |
p |
2296 -153 m 2439 -153 l 2437 -174 2432 -190 2423 -201 ct 2409 -218 2391 -226 2369 -226 ct |
2349 -226 2333 -219 2319 -206 ct 2305 -193 2298 -175 2296 -153 ct p ef |
2846 -94 m 2888 -88 l 2884 -59 2872 -36 2853 -19 ct 2833 -2 2810 6 2782 6 ct |
2747 6 2719 -5 2697 -28 ct 2676 -51 2665 -84 2665 -127 ct 2665 -155 2670 -179 2679 -199 ct |
2688 -220 2702 -236 2721 -246 ct 2740 -257 2760 -262 2782 -262 ct 2810 -262 2833 -255 2850 -241 ct |
2868 -227 2879 -207 2884 -181 ct 2842 -174 l 2838 -191 2831 -204 2821 -213 ct |
2811 -222 2798 -226 2784 -226 ct 2762 -226 2744 -218 2730 -202 ct 2717 -187 2710 -162 2710 -128 ct |
2710 -94 2717 -69 2730 -53 ct 2743 -38 2760 -30 2781 -30 ct 2798 -30 2813 -35 2824 -45 ct |
2835 -56 2843 -72 2846 -94 ct p ef |
2929 0 m 2929 -354 l 2972 -354 l 2972 -227 l 2992 -250 3018 -262 3049 -262 ct |
3068 -262 3084 -258 3098 -251 ct 3112 -243 3122 -233 3128 -220 ct 3134 -207 3137 -187 3137 -162 ct |
3137 0 l 3094 0 l 3094 -162 l 3094 -184 3089 -200 3080 -210 ct 3070 -220 3057 -225 3040 -225 ct |
3027 -225 3015 -221 3003 -215 ct 2992 -208 2984 -199 2979 -187 ct 2974 -176 2972 -160 2972 -140 ct |
2972 0 l 2929 0 l p ef |
3379 -82 m 3424 -77 l 3417 -51 3404 -30 3384 -16 ct 3365 -1 3341 6 3311 6 ct |
3274 6 3244 -6 3222 -29 ct 3200 -52 3189 -84 3189 -126 ct 3189 -169 3200 -202 3222 -226 ct |
3245 -250 3273 -262 3309 -262 ct 3343 -262 3371 -250 3393 -227 ct 3414 -204 3425 -171 3425 -129 ct |
3425 -126 3425 -122 3425 -117 ct 3234 -117 l 3236 -89 3244 -67 3258 -52 ct |
3272 -37 3290 -30 3311 -30 ct 3327 -30 3341 -34 3352 -42 ct 3363 -51 3372 -64 3379 -82 ct |
p |
3236 -153 m 3379 -153 l 3377 -174 3372 -190 3363 -201 ct 3349 -218 3331 -226 3309 -226 ct |
3289 -226 3273 -219 3259 -206 ct 3245 -193 3238 -175 3236 -153 ct p ef |
3646 -94 m 3688 -88 l 3684 -59 3672 -36 3653 -19 ct 3633 -2 3610 6 3582 6 ct |
3547 6 3519 -5 3497 -28 ct 3476 -51 3465 -84 3465 -127 ct 3465 -155 3470 -179 3479 -199 ct |
3488 -220 3502 -236 3521 -246 ct 3540 -257 3560 -262 3582 -262 ct 3610 -262 3633 -255 3650 -241 ct |
3668 -227 3679 -207 3684 -181 ct 3642 -174 l 3638 -191 3631 -204 3621 -213 ct |
3611 -222 3598 -226 3584 -226 ct 3562 -226 3544 -218 3530 -202 ct 3517 -187 3510 -162 3510 -128 ct |
3510 -94 3517 -69 3530 -53 ct 3543 -38 3560 -30 3581 -30 ct 3598 -30 3613 -35 3624 -45 ct |
3635 -56 3643 -72 3646 -94 ct p ef |
3729 0 m 3729 -354 l 3772 -354 l 3772 -152 l 3875 -256 l 3931 -256 l |
3833 -161 l 3941 0 l 3888 0 l 3803 -131 l 3772 -102 l 3772 0 l 3729 0 l |
p ef |
3978 -304 m 3978 -354 l 4021 -354 l 4021 -304 l 3978 -304 l p |
3978 0 m 3978 -256 l 4021 -256 l 4021 0 l 3978 0 l p ef |
4089 0 m 4089 -256 l 4128 -256 l 4128 -220 l 4146 -248 4174 -262 4209 -262 ct |
4225 -262 4239 -259 4252 -254 ct 4265 -248 4274 -241 4281 -232 ct 4287 -223 4292 -212 4294 -200 ct |
4296 -192 4297 -178 4297 -158 ct 4297 0 l 4253 0 l 4253 -156 l 4253 -174 4252 -187 4248 -196 ct |
4245 -204 4239 -211 4230 -217 ct 4222 -222 4212 -224 4200 -224 ct 4182 -224 4166 -218 4152 -207 ct |
4139 -195 4132 -173 4132 -140 ct 4132 0 l 4089 0 l p ef |
4356 21 m 4398 28 l 4400 41 4404 50 4413 56 ct 4423 64 4438 68 4457 68 ct |
4477 68 4492 64 4503 56 ct 4514 48 4522 37 4525 22 ct 4528 13 4529 -5 4529 -34 ct |
4510 -11 4486 0 4458 0 ct 4422 0 4395 -13 4376 -38 ct 4357 -64 4347 -94 4347 -130 ct |
4347 -154 4351 -177 4360 -197 ct 4369 -218 4382 -234 4399 -245 ct 4415 -256 4435 -262 4458 -262 ct |
4488 -262 4513 -250 4533 -225 ct 4533 -256 l 4573 -256 l 4573 -35 l 4573 5 4569 33 4561 50 ct |
4552 67 4540 80 4522 90 ct 4504 99 4483 104 4457 104 ct 4426 104 4402 97 4383 83 ct |
4364 70 4355 49 4356 21 ct p |
4392 -133 m 4392 -99 4398 -75 4412 -59 ct 4425 -44 4442 -36 4462 -36 ct 4482 -36 4498 -44 4512 -59 ct |
4525 -74 4532 -98 4532 -131 ct 4532 -163 4525 -186 4511 -202 ct 4497 -218 4481 -226 4461 -226 ct |
4442 -226 4425 -218 4412 -203 ct 4398 -187 4392 -164 4392 -133 ct p ef |
pom |
pum |
15963 15295 t |
3281 -82 m 3326 -77 l 3319 -51 3306 -30 3286 -16 ct 3267 -1 3243 6 3213 6 ct |
3176 6 3146 -6 3124 -29 ct 3102 -52 3091 -84 3091 -126 ct 3091 -169 3102 -202 3124 -226 ct |
3147 -250 3175 -262 3211 -262 ct 3245 -262 3273 -250 3295 -227 ct 3316 -204 3327 -171 3327 -129 ct |
3327 -126 3327 -122 3327 -117 ct 3136 -117 l 3138 -89 3146 -67 3160 -52 ct |
3174 -37 3192 -30 3213 -30 ct 3229 -30 3243 -34 3254 -42 ct 3265 -51 3274 -64 3281 -82 ct |
p |
3138 -153 m 3281 -153 l 3279 -174 3274 -190 3265 -201 ct 3251 -218 3233 -226 3211 -226 ct |
3191 -226 3175 -219 3161 -206 ct 3147 -193 3140 -175 3138 -153 ct p ef |
3353 0 m 3446 -133 l 3360 -256 l 3414 -256 l 3453 -196 l 3461 -185 3467 -175 3471 -167 ct |
3478 -178 3485 -187 3491 -196 ct 3534 -256 l 3586 -256 l 3497 -136 l 3592 0 l |
3539 0 l 3486 -80 l 3473 -101 l 3405 0 l 3353 0 l p ef |
3725 -39 m 3732 -1 l 3719 2 3708 3 3699 3 ct 3683 3 3671 0 3662 -4 ct 3653 -9 3647 -16 3644 -24 ct |
3640 -32 3639 -49 3639 -75 ct 3639 -223 l 3607 -223 l 3607 -257 l 3639 -257 l |
3639 -320 l 3682 -346 l 3682 -257 l 3725 -257 l 3725 -223 l 3682 -223 l |
3682 -73 l 3682 -61 3682 -53 3684 -49 ct 3686 -46 3688 -43 3691 -41 ct 3695 -39 3700 -38 3706 -38 ct |
3711 -38 3717 -38 3725 -39 ct p ef |
3770 0 m 3770 -256 l 3809 -256 l 3809 -217 l 3819 -236 3828 -248 3837 -253 ct |
3845 -259 3855 -262 3865 -262 ct 3879 -262 3894 -257 3909 -248 ct 3894 -208 l |
3884 -214 3873 -217 3862 -217 ct 3853 -217 3844 -214 3837 -209 ct 3829 -203 3824 -195 3821 -185 ct |
3816 -169 3814 -152 3814 -134 ct 3814 0 l 3770 0 l p ef |
4103 -31 m 4087 -18 4071 -8 4056 -2 ct 4041 3 4025 6 4008 6 ct 3980 6 3959 -1 3944 -15 ct |
3928 -28 3921 -46 3921 -67 ct 3921 -80 3924 -91 3929 -102 ct 3935 -112 3943 -120 3952 -127 ct |
3961 -133 3972 -138 3983 -141 ct 3992 -143 4004 -145 4022 -148 ct 4057 -152 4083 -157 4099 -163 ct |
4099 -168 4099 -172 4099 -174 ct 4099 -192 4095 -204 4087 -211 ct 4076 -221 4059 -226 4038 -226 ct |
4017 -226 4002 -222 3992 -215 ct 3983 -208 3975 -195 3971 -177 ct 3928 -183 l |
3932 -201 3939 -216 3947 -227 ct 3956 -238 3969 -247 3986 -253 ct 4002 -259 4022 -262 4044 -262 ct |
4066 -262 4084 -259 4097 -254 ct 4111 -249 4121 -243 4127 -235 ct 4134 -227 4138 -217 4141 -205 ct |
4142 -198 4143 -184 4143 -165 ct 4143 -107 l 4143 -67 4144 -41 4146 -31 ct |
4148 -20 4151 -10 4157 0 ct 4111 0 l 4107 -9 4104 -19 4103 -31 ct p |
4099 -128 m 4083 -122 4060 -117 4028 -112 ct 4010 -109 3998 -107 3990 -103 ct |
3983 -100 3977 -95 3973 -89 ct 3969 -83 3967 -76 3967 -69 ct 3967 -57 3972 -47 3980 -40 ct |
3989 -32 4002 -28 4019 -28 ct 4036 -28 4050 -32 4063 -39 ct 4076 -46 4086 -56 4092 -69 ct |
4097 -79 4099 -93 4099 -113 ct 4099 -128 l p ef |
4378 -94 m 4420 -88 l 4416 -59 4404 -36 4385 -19 ct 4365 -2 4342 6 4314 6 ct |
4279 6 4251 -5 4229 -28 ct 4208 -51 4197 -84 4197 -127 ct 4197 -155 4202 -179 4211 -199 ct |
4220 -220 4234 -236 4253 -246 ct 4272 -257 4292 -262 4314 -262 ct 4342 -262 4365 -255 4382 -241 ct |
4400 -227 4411 -207 4416 -181 ct 4374 -174 l 4370 -191 4363 -204 4353 -213 ct |
4343 -222 4330 -226 4316 -226 ct 4294 -226 4276 -218 4262 -202 ct 4249 -187 4242 -162 4242 -128 ct |
4242 -94 4249 -69 4262 -53 ct 4275 -38 4292 -30 4313 -30 ct 4330 -30 4345 -35 4356 -45 ct |
4367 -56 4375 -72 4378 -94 ct p ef |
4555 -39 m 4562 -1 l 4549 2 4538 3 4529 3 ct 4513 3 4501 0 4492 -4 ct 4483 -9 4477 -16 4474 -24 ct |
4470 -32 4469 -49 4469 -75 ct 4469 -223 l 4437 -223 l 4437 -257 l 4469 -257 l |
4469 -320 l 4512 -346 l 4512 -257 l 4555 -257 l 4555 -223 l 4512 -223 l |
4512 -73 l 4512 -61 4512 -53 4514 -49 ct 4516 -46 4518 -43 4521 -41 ct 4525 -39 4530 -38 4536 -38 ct |
4541 -38 4547 -38 4555 -39 ct p ef |
4601 -304 m 4601 -354 l 4644 -354 l 4644 -304 l 4601 -304 l p |
4601 0 m 4601 -256 l 4644 -256 l 4644 0 l 4601 0 l p ef |
4694 -128 m 4694 -175 4708 -211 4734 -233 ct 4756 -252 4783 -262 4815 -262 ct |
4850 -262 4879 -250 4901 -227 ct 4923 -204 4934 -172 4934 -132 ct 4934 -99 4929 -73 4920 -54 ct |
4910 -35 4895 -20 4876 -10 ct 4858 1 4837 6 4815 6 ct 4779 6 4750 -6 4728 -29 ct |
4705 -52 4694 -85 4694 -128 ct p |
4739 -128 m 4739 -95 4746 -71 4761 -54 ct 4775 -38 4793 -30 4815 -30 ct 4836 -30 4854 -38 4868 -54 ct |
4883 -71 4890 -96 4890 -129 ct 4890 -161 4883 -185 4868 -201 ct 4854 -218 4836 -226 4815 -226 ct |
4793 -226 4775 -218 4761 -202 ct 4746 -185 4739 -161 4739 -128 ct p ef |
4986 0 m 4986 -256 l 5025 -256 l 5025 -220 l 5043 -248 5071 -262 5106 -262 ct |
5122 -262 5136 -259 5149 -254 ct 5162 -248 5171 -241 5178 -232 ct 5184 -223 5189 -212 5191 -200 ct |
5193 -192 5194 -178 5194 -158 ct 5194 0 l 5150 0 l 5150 -156 l 5150 -174 5149 -187 5145 -196 ct |
5142 -204 5136 -211 5127 -217 ct 5119 -222 5109 -224 5097 -224 ct 5079 -224 5063 -218 5049 -207 ct |
5036 -195 5029 -173 5029 -140 ct 5029 0 l 4986 0 l p ef |
pom |
0.503 0.003 0.003 c 14560 15926 m 6596 13993 l 6608 13944 l 6620 13894 l |
14584 15826 l 14572 15876 l 14560 15926 l p ef |
6081 13816 m 6687 14195 l 6793 13756 l 6081 13816 l p ef |
pum |
7014 15018 t |
0.003 0.003 0.003 c 208 -82 m 253 -77 l 246 -51 233 -30 213 -16 ct 194 -1 170 6 140 6 ct |
103 6 73 -6 51 -29 ct 29 -52 18 -84 18 -126 ct 18 -169 29 -202 51 -226 ct 74 -250 102 -262 138 -262 ct |
172 -262 200 -250 222 -227 ct 243 -204 254 -171 254 -129 ct 254 -126 254 -122 254 -117 ct |
63 -117 l 65 -89 73 -67 87 -52 ct 101 -37 119 -30 140 -30 ct 156 -30 170 -34 181 -42 ct |
192 -51 201 -64 208 -82 ct p |
65 -153 m 208 -153 l 206 -174 201 -190 192 -201 ct 178 -218 160 -226 138 -226 ct |
118 -226 102 -219 88 -206 ct 74 -193 67 -175 65 -153 ct p ef |
279 0 m 372 -133 l 286 -256 l 340 -256 l 379 -196 l 387 -185 393 -175 397 -167 ct |
404 -178 411 -187 417 -196 ct 460 -256 l 512 -256 l 423 -136 l 518 0 l |
465 0 l 412 -80 l 399 -101 l 331 0 l 279 0 l p ef |
652 -39 m 659 -1 l 646 2 635 3 626 3 ct 610 3 598 0 589 -4 ct 580 -9 574 -16 571 -24 ct |
567 -32 566 -49 566 -75 ct 566 -223 l 534 -223 l 534 -257 l 566 -257 l |
566 -320 l 609 -346 l 609 -257 l 652 -257 l 652 -223 l 609 -223 l |
609 -73 l 609 -61 609 -53 611 -49 ct 613 -46 615 -43 618 -41 ct 622 -39 627 -38 633 -38 ct |
638 -38 644 -38 652 -39 ct p ef |
697 0 m 697 -256 l 736 -256 l 736 -217 l 746 -236 755 -248 764 -253 ct |
772 -259 782 -262 792 -262 ct 806 -262 821 -257 836 -248 ct 821 -208 l 811 -214 800 -217 789 -217 ct |
780 -217 771 -214 764 -209 ct 756 -203 751 -195 748 -185 ct 743 -169 741 -152 741 -134 ct |
741 0 l 697 0 l p ef |
1030 -31 m 1014 -18 998 -8 983 -2 ct 968 3 952 6 935 6 ct 907 6 886 -1 871 -15 ct |
855 -28 848 -46 848 -67 ct 848 -80 851 -91 856 -102 ct 862 -112 870 -120 879 -127 ct |
888 -133 899 -138 910 -141 ct 919 -143 931 -145 949 -148 ct 984 -152 1010 -157 1026 -163 ct |
1026 -168 1026 -172 1026 -174 ct 1026 -192 1022 -204 1014 -211 ct 1003 -221 986 -226 965 -226 ct |
944 -226 929 -222 919 -215 ct 910 -208 902 -195 898 -177 ct 855 -183 l 859 -201 866 -216 874 -227 ct |
883 -238 896 -247 913 -253 ct 929 -259 949 -262 971 -262 ct 993 -262 1011 -259 1024 -254 ct |
1038 -249 1048 -243 1054 -235 ct 1061 -227 1065 -217 1068 -205 ct 1069 -198 1070 -184 1070 -165 ct |
1070 -107 l 1070 -67 1071 -41 1073 -31 ct 1075 -20 1078 -10 1084 0 ct 1038 0 l |
1034 -9 1031 -19 1030 -31 ct p |
1026 -128 m 1010 -122 987 -117 955 -112 ct 937 -109 925 -107 917 -103 ct 910 -100 904 -95 900 -89 ct |
896 -83 894 -76 894 -69 ct 894 -57 899 -47 907 -40 ct 916 -32 929 -28 946 -28 ct |
963 -28 977 -32 990 -39 ct 1003 -46 1013 -56 1019 -69 ct 1024 -79 1026 -93 1026 -113 ct |
1026 -128 l p ef |
1305 -94 m 1347 -88 l 1343 -59 1331 -36 1312 -19 ct 1292 -2 1269 6 1241 6 ct |
1206 6 1178 -5 1156 -28 ct 1135 -51 1124 -84 1124 -127 ct 1124 -155 1129 -179 1138 -199 ct |
1147 -220 1161 -236 1180 -246 ct 1199 -257 1219 -262 1241 -262 ct 1269 -262 1292 -255 1309 -241 ct |
1327 -227 1338 -207 1343 -181 ct 1301 -174 l 1297 -191 1290 -204 1280 -213 ct |
1270 -222 1257 -226 1243 -226 ct 1221 -226 1203 -218 1189 -202 ct 1176 -187 1169 -162 1169 -128 ct |
1169 -94 1176 -69 1189 -53 ct 1202 -38 1219 -30 1240 -30 ct 1257 -30 1272 -35 1283 -45 ct |
1294 -56 1302 -72 1305 -94 ct p ef |
1482 -39 m 1489 -1 l 1476 2 1465 3 1456 3 ct 1440 3 1428 0 1419 -4 ct 1410 -9 1404 -16 1401 -24 ct |
1397 -32 1396 -49 1396 -75 ct 1396 -223 l 1364 -223 l 1364 -257 l 1396 -257 l |
1396 -320 l 1439 -346 l 1439 -257 l 1482 -257 l 1482 -223 l 1439 -223 l |
1439 -73 l 1439 -61 1439 -53 1441 -49 ct 1443 -46 1445 -43 1448 -41 ct 1452 -39 1457 -38 1463 -38 ct |
1468 -38 1474 -38 1482 -39 ct p ef |
1527 -304 m 1527 -354 l 1570 -354 l 1570 -304 l 1527 -304 l p |
1527 0 m 1527 -256 l 1570 -256 l 1570 0 l 1527 0 l p ef |
1620 -128 m 1620 -175 1634 -211 1660 -233 ct 1682 -252 1709 -262 1741 -262 ct |
1776 -262 1805 -250 1827 -227 ct 1849 -204 1860 -172 1860 -132 ct 1860 -99 1855 -73 1846 -54 ct |
1836 -35 1821 -20 1802 -10 ct 1784 1 1763 6 1741 6 ct 1705 6 1676 -6 1654 -29 ct |
1631 -52 1620 -85 1620 -128 ct p |
1665 -128 m 1665 -95 1672 -71 1687 -54 ct 1701 -38 1719 -30 1741 -30 ct 1762 -30 1780 -38 1794 -54 ct |
1809 -71 1816 -96 1816 -129 ct 1816 -161 1809 -185 1794 -201 ct 1780 -218 1762 -226 1741 -226 ct |
1719 -226 1701 -218 1687 -202 ct 1672 -185 1665 -161 1665 -128 ct p ef |
1913 0 m 1913 -256 l 1952 -256 l 1952 -220 l 1970 -248 1998 -262 2033 -262 ct |
2049 -262 2063 -259 2076 -254 ct 2089 -248 2098 -241 2105 -232 ct 2111 -223 2116 -212 2118 -200 ct |
2120 -192 2121 -178 2121 -158 ct 2121 0 l 2077 0 l 2077 -156 l 2077 -174 2076 -187 2072 -196 ct |
2069 -204 2063 -211 2054 -217 ct 2046 -222 2036 -224 2024 -224 ct 2006 -224 1990 -218 1976 -207 ct |
1963 -195 1956 -173 1956 -140 ct 1956 0 l 1913 0 l p ef |
pom |
0.671 0.707 0.003 c 6659 3016 m 2081 3016 l 2081 476 l 11237 476 l 11237 3016 l |
6659 3016 l p ef |
0.003 0.003 0.503 c 6659 3016 m 2081 3016 l 2081 476 l 11237 476 l 11237 3016 l |
6659 3016 l pc |
pum |
4894 1334 t |
0.003 0.003 0.003 c 337 -167 m 426 -139 l 412 -89 390 -52 358 -28 ct 326 -4 286 8 237 8 ct |
177 8 127 -13 88 -54 ct 50 -95 30 -152 30 -223 ct 30 -299 50 -358 89 -400 ct 128 -442 179 -463 243 -463 ct |
298 -463 344 -446 378 -413 ct 399 -394 414 -366 425 -329 ct 334 -308 l 329 -331 317 -350 300 -364 ct |
283 -377 263 -384 238 -384 ct 204 -384 177 -372 156 -348 ct 135 -323 125 -284 125 -230 ct |
125 -173 135 -132 156 -107 ct 176 -83 203 -71 236 -71 ct 261 -71 282 -78 299 -94 ct |
317 -109 329 -134 337 -167 ct p ef |
482 -170 m 482 -199 490 -227 504 -254 ct 518 -281 538 -301 564 -316 ct 591 -330 620 -337 652 -337 ct |
702 -337 743 -321 775 -289 ct 806 -256 822 -215 822 -166 ct 822 -116 806 -75 774 -42 ct |
742 -9 701 7 653 7 ct 622 7 594 0 566 -13 ct 539 -27 518 -47 504 -73 ct 490 -100 482 -132 482 -170 ct |
p |
572 -165 m 572 -132 579 -107 595 -90 ct 610 -73 630 -64 652 -64 ct 675 -64 694 -73 710 -90 ct |
725 -107 733 -133 733 -166 ct 733 -198 725 -223 710 -240 ct 694 -257 675 -266 652 -266 ct |
630 -266 610 -257 595 -240 ct 579 -223 572 -198 572 -165 ct p ef |
886 -330 m 966 -330 l 966 -285 l 995 -320 1029 -337 1069 -337 ct 1090 -337 1108 -333 1124 -324 ct |
1139 -315 1152 -302 1162 -285 ct 1176 -302 1192 -315 1209 -324 ct 1226 -333 1243 -337 1262 -337 ct |
1287 -337 1307 -332 1324 -322 ct 1341 -312 1353 -298 1361 -279 ct 1367 -265 1370 -242 1370 -211 ct |
1370 0 l 1283 0 l 1283 -188 l 1283 -221 1280 -242 1274 -252 ct 1266 -264 1254 -270 1237 -270 ct |
1225 -270 1213 -267 1203 -259 ct 1192 -252 1184 -241 1179 -226 ct 1175 -212 1172 -189 1172 -158 ct |
1172 0 l 1085 0 l 1085 -181 l 1085 -213 1084 -233 1080 -243 ct 1077 -252 1073 -259 1066 -263 ct |
1060 -268 1051 -270 1040 -270 ct 1026 -270 1014 -267 1003 -259 ct 993 -252 985 -242 980 -228 ct |
976 -214 973 -192 973 -160 ct 973 0 l 886 0 l 886 -330 l p ef |
1453 -330 m 1534 -330 l 1534 -281 l 1545 -298 1559 -311 1577 -322 ct 1595 -332 1615 -337 1637 -337 ct |
1675 -337 1708 -322 1734 -292 ct 1761 -262 1774 -220 1774 -167 ct 1774 -112 1761 -69 1734 -39 ct |
1707 -8 1675 7 1636 7 ct 1618 7 1602 3 1587 -4 ct 1572 -11 1557 -24 1540 -41 ct |
1540 125 l 1453 125 l 1453 -330 l p |
1539 -171 m 1539 -134 1547 -106 1561 -89 ct 1576 -71 1594 -62 1615 -62 ct 1635 -62 1652 -70 1665 -87 ct |
1679 -103 1686 -129 1686 -166 ct 1686 -201 1679 -226 1665 -243 ct 1651 -260 1634 -268 1613 -268 ct |
1592 -268 1574 -260 1560 -244 ct 1546 -227 1539 -203 1539 -171 ct p ef |
1824 -170 m 1824 -199 1832 -227 1846 -254 ct 1860 -281 1880 -301 1906 -316 ct |
1933 -330 1962 -337 1994 -337 ct 2044 -337 2085 -321 2117 -289 ct 2148 -256 2164 -215 2164 -166 ct |
2164 -116 2148 -75 2116 -42 ct 2084 -9 2043 7 1995 7 ct 1964 7 1936 0 1908 -13 ct |
1881 -27 1860 -47 1846 -73 ct 1832 -100 1824 -132 1824 -170 ct p |
1914 -165 m 1914 -132 1921 -107 1937 -90 ct 1952 -73 1972 -64 1994 -64 ct 2017 -64 2036 -73 2052 -90 ct |
2067 -107 2075 -133 2075 -166 ct 2075 -198 2067 -223 2052 -240 ct 2036 -257 2017 -266 1994 -266 ct |
1972 -266 1952 -257 1937 -240 ct 1921 -223 1914 -198 1914 -165 ct p ef |
2534 0 m 2447 0 l 2447 -168 l 2447 -204 2445 -227 2441 -237 ct 2438 -248 2432 -256 2423 -262 ct |
2415 -267 2405 -270 2393 -270 ct 2378 -270 2364 -266 2352 -258 ct 2340 -250 2332 -239 2328 -225 ct |
2323 -211 2321 -186 2321 -149 ct 2321 0 l 2234 0 l 2234 -330 l 2315 -330 l |
2315 -281 l 2344 -318 2380 -337 2423 -337 ct 2443 -337 2460 -334 2476 -327 ct |
2492 -320 2504 -311 2512 -300 ct 2520 -289 2526 -277 2529 -263 ct 2532 -250 2534 -230 2534 -205 ct |
2534 0 l p ef |
2814 -105 m 2901 -91 l 2890 -59 2872 -35 2848 -18 ct 2824 -1 2794 7 2758 7 ct |
2701 7 2658 -12 2631 -49 ct 2609 -79 2598 -117 2598 -163 ct 2598 -218 2612 -260 2641 -291 ct |
2669 -322 2706 -338 2749 -338 ct 2798 -338 2837 -322 2865 -289 ct 2893 -257 2907 -207 2906 -140 ct |
2687 -140 l 2688 -114 2695 -94 2709 -80 ct 2722 -65 2739 -58 2759 -58 ct 2772 -58 2784 -62 2793 -69 ct |
2802 -77 2810 -89 2814 -105 ct p |
2819 -193 m 2819 -219 2812 -238 2800 -251 ct 2787 -264 2772 -271 2754 -271 ct |
2735 -271 2720 -264 2707 -250 ct 2695 -236 2689 -217 2689 -193 ct 2819 -193 l |
p ef |
3274 0 m 3187 0 l 3187 -168 l 3187 -204 3185 -227 3181 -237 ct 3178 -248 3172 -256 3163 -262 ct |
3155 -267 3145 -270 3133 -270 ct 3118 -270 3104 -266 3092 -258 ct 3080 -250 3072 -239 3068 -225 ct |
3063 -211 3061 -186 3061 -149 ct 3061 0 l 2974 0 l 2974 -330 l 3055 -330 l |
3055 -281 l 3084 -318 3120 -337 3163 -337 ct 3183 -337 3200 -334 3216 -327 ct |
3232 -320 3244 -311 3252 -300 ct 3260 -289 3266 -277 3269 -263 ct 3272 -250 3274 -230 3274 -205 ct |
3274 0 l p ef |
3516 -330 m 3516 -260 l 3456 -260 l 3456 -128 l 3456 -101 3457 -85 3458 -81 ct |
3459 -76 3461 -73 3466 -70 ct 3470 -67 3474 -65 3480 -65 ct 3488 -65 3500 -68 3515 -74 ct |
3523 -6 l 3502 3 3480 7 3454 7 ct 3438 7 3424 4 3411 -1 ct 3399 -6 3390 -13 3384 -21 ct |
3378 -30 3374 -41 3371 -55 ct 3370 -66 3369 -86 3369 -117 ct 3369 -260 l 3329 -260 l |
3329 -330 l 3369 -330 l 3369 -395 l 3456 -446 l 3456 -330 l 3516 -330 l |
p ef |
pom |
pum |
2671 2045 t |
46 -374 m 46 -455 l 133 -455 l 133 -374 l 46 -374 l p |
46 0 m 46 -330 l 133 -330 l 133 0 l 46 0 l p ef |
217 -330 m 297 -330 l 297 -285 l 326 -320 360 -337 400 -337 ct 421 -337 439 -333 455 -324 ct |
470 -315 483 -302 493 -285 ct 507 -302 523 -315 540 -324 ct 557 -333 574 -337 593 -337 ct |
618 -337 638 -332 655 -322 ct 672 -312 684 -298 692 -279 ct 698 -265 701 -242 701 -211 ct |
701 0 l 614 0 l 614 -188 l 614 -221 611 -242 605 -252 ct 597 -264 585 -270 568 -270 ct |
556 -270 544 -267 534 -259 ct 523 -252 515 -241 510 -226 ct 506 -212 503 -189 503 -158 ct |
503 0 l 416 0 l 416 -181 l 416 -213 415 -233 411 -243 ct 408 -252 404 -259 397 -263 ct |
391 -268 382 -270 371 -270 ct 357 -270 345 -267 334 -259 ct 324 -252 316 -242 311 -228 ct |
307 -214 304 -192 304 -160 ct 304 0 l 217 0 l 217 -330 l p ef |
784 -330 m 865 -330 l 865 -281 l 876 -298 890 -311 908 -322 ct 926 -332 946 -337 968 -337 ct |
1006 -337 1039 -322 1065 -292 ct 1092 -262 1105 -220 1105 -167 ct 1105 -112 1092 -69 1065 -39 ct |
1038 -8 1006 7 967 7 ct 949 7 933 3 918 -4 ct 903 -11 888 -24 871 -41 ct 871 125 l |
784 125 l 784 -330 l p |
870 -171 m 870 -134 878 -106 892 -89 ct 907 -71 925 -62 946 -62 ct 966 -62 983 -70 996 -87 ct |
1010 -103 1017 -129 1017 -166 ct 1017 -201 1010 -226 996 -243 ct 982 -260 965 -268 944 -268 ct |
923 -268 905 -260 891 -244 ct 877 -227 870 -203 870 -171 ct p ef |
1176 0 m 1176 -455 l 1263 -455 l 1263 0 l 1176 0 l p ef |
1544 -105 m 1631 -91 l 1620 -59 1602 -35 1578 -18 ct 1554 -1 1524 7 1488 7 ct |
1431 7 1388 -12 1361 -49 ct 1339 -79 1328 -117 1328 -163 ct 1328 -218 1342 -260 1371 -291 ct |
1399 -322 1436 -338 1479 -338 ct 1528 -338 1567 -322 1595 -289 ct 1623 -257 1637 -207 1636 -140 ct |
1417 -140 l 1418 -114 1425 -94 1439 -80 ct 1452 -65 1469 -58 1489 -58 ct 1502 -58 1514 -62 1523 -69 ct |
1532 -77 1540 -89 1544 -105 ct p |
1549 -193 m 1549 -219 1542 -238 1530 -251 ct 1517 -264 1502 -271 1484 -271 ct |
1465 -271 1450 -264 1437 -250 ct 1425 -236 1419 -217 1419 -193 ct 1549 -193 l |
p ef |
1698 -330 m 1778 -330 l 1778 -285 l 1807 -320 1841 -337 1881 -337 ct 1902 -337 1920 -333 1936 -324 ct |
1951 -315 1964 -302 1974 -285 ct 1988 -302 2004 -315 2021 -324 ct 2038 -333 2055 -337 2074 -337 ct |
2099 -337 2119 -332 2136 -322 ct 2153 -312 2165 -298 2173 -279 ct 2179 -265 2182 -242 2182 -211 ct |
2182 0 l 2095 0 l 2095 -188 l 2095 -221 2092 -242 2086 -252 ct 2078 -264 2066 -270 2049 -270 ct |
2037 -270 2025 -267 2015 -259 ct 2004 -252 1996 -241 1991 -226 ct 1987 -212 1984 -189 1984 -158 ct |
1984 0 l 1897 0 l 1897 -181 l 1897 -213 1896 -233 1892 -243 ct 1889 -252 1885 -259 1878 -263 ct |
1872 -268 1863 -270 1852 -270 ct 1838 -270 1826 -267 1815 -259 ct 1805 -252 1797 -242 1792 -228 ct |
1788 -214 1785 -192 1785 -160 ct 1785 0 l 1698 0 l 1698 -330 l p ef |
2459 -105 m 2546 -91 l 2535 -59 2517 -35 2493 -18 ct 2469 -1 2439 7 2403 7 ct |
2346 7 2303 -12 2276 -49 ct 2254 -79 2243 -117 2243 -163 ct 2243 -218 2257 -260 2286 -291 ct |
2314 -322 2351 -338 2394 -338 ct 2443 -338 2482 -322 2510 -289 ct 2538 -257 2552 -207 2551 -140 ct |
2332 -140 l 2333 -114 2340 -94 2354 -80 ct 2367 -65 2384 -58 2404 -58 ct 2417 -58 2429 -62 2438 -69 ct |
2447 -77 2455 -89 2459 -105 ct p |
2464 -193 m 2464 -219 2457 -238 2445 -251 ct 2432 -264 2417 -271 2399 -271 ct |
2380 -271 2365 -264 2352 -250 ct 2340 -236 2334 -217 2334 -193 ct 2464 -193 l |
p ef |
2919 0 m 2832 0 l 2832 -168 l 2832 -204 2830 -227 2826 -237 ct 2823 -248 2817 -256 2808 -262 ct |
2800 -267 2790 -270 2778 -270 ct 2763 -270 2749 -266 2737 -258 ct 2725 -250 2717 -239 2713 -225 ct |
2708 -211 2706 -186 2706 -149 ct 2706 0 l 2619 0 l 2619 -330 l 2700 -330 l |
2700 -281 l 2729 -318 2765 -337 2808 -337 ct 2828 -337 2845 -334 2861 -327 ct |
2877 -320 2889 -311 2897 -300 ct 2905 -289 2911 -277 2914 -263 ct 2917 -250 2919 -230 2919 -205 ct |
2919 0 l p ef |
3160 -330 m 3160 -260 l 3100 -260 l 3100 -128 l 3100 -101 3101 -85 3102 -81 ct |
3103 -76 3105 -73 3110 -70 ct 3114 -67 3118 -65 3124 -65 ct 3132 -65 3144 -68 3159 -74 ct |
3167 -6 l 3146 3 3124 7 3098 7 ct 3082 7 3068 4 3055 -1 ct 3043 -6 3034 -13 3028 -21 ct |
3022 -30 3018 -41 3015 -55 ct 3014 -66 3013 -86 3013 -117 ct 3013 -260 l 2973 -260 l |
2973 -330 l 3013 -330 l 3013 -395 l 3100 -446 l 3100 -330 l 3160 -330 l |
p ef |
3286 -230 m 3207 -244 l 3216 -276 3231 -299 3253 -315 ct 3274 -330 3306 -338 3349 -338 ct |
3388 -338 3417 -333 3436 -324 ct 3455 -315 3468 -303 3476 -289 ct 3484 -275 3488 -249 3488 -211 ct |
3487 -109 l 3487 -80 3488 -58 3491 -45 ct 3494 -31 3499 -16 3507 0 ct 3421 0 l |
3418 -6 3416 -15 3412 -26 ct 3411 -31 3410 -35 3409 -36 ct 3394 -22 3378 -11 3361 -4 ct |
3344 3 3326 7 3307 7 ct 3273 7 3246 -2 3227 -21 ct 3207 -39 3198 -62 3198 -91 ct |
3198 -109 3202 -126 3211 -140 ct 3220 -155 3232 -166 3248 -174 ct 3264 -182 3287 -188 3318 -194 ct |
3358 -202 3387 -209 3402 -216 ct 3402 -224 l 3402 -241 3398 -253 3390 -260 ct |
3382 -267 3366 -271 3343 -271 ct 3328 -271 3315 -268 3307 -262 ct 3298 -256 3291 -245 3286 -230 ct |
p |
3402 -159 m 3391 -155 3373 -151 3349 -145 ct 3325 -140 3309 -135 3302 -130 ct |
3290 -122 3285 -112 3285 -99 ct 3285 -87 3289 -77 3298 -68 ct 3308 -59 3319 -54 3333 -54 ct |
3349 -54 3364 -60 3378 -70 ct 3389 -78 3396 -87 3399 -99 ct 3401 -106 3402 -121 3402 -141 ct |
3402 -159 l p ef |
3723 -330 m 3723 -260 l 3663 -260 l 3663 -128 l 3663 -101 3664 -85 3665 -81 ct |
3666 -76 3668 -73 3673 -70 ct 3677 -67 3681 -65 3687 -65 ct 3695 -65 3707 -68 3722 -74 ct |
3730 -6 l 3709 3 3687 7 3661 7 ct 3645 7 3631 4 3618 -1 ct 3606 -6 3597 -13 3591 -21 ct |
3585 -30 3581 -41 3578 -55 ct 3577 -66 3576 -86 3576 -117 ct 3576 -260 l 3536 -260 l |
3536 -330 l 3576 -330 l 3576 -395 l 3663 -446 l 3663 -330 l 3723 -330 l |
p ef |
3784 -374 m 3784 -455 l 3871 -455 l 3871 -374 l 3784 -374 l p |
3784 0 m 3784 -330 l 3871 -330 l 3871 0 l 3784 0 l p ef |
3941 -170 m 3941 -199 3949 -227 3963 -254 ct 3977 -281 3997 -301 4023 -316 ct |
4050 -330 4079 -337 4111 -337 ct 4161 -337 4202 -321 4234 -289 ct 4265 -256 4281 -215 4281 -166 ct |
4281 -116 4265 -75 4233 -42 ct 4201 -9 4160 7 4112 7 ct 4081 7 4053 0 4025 -13 ct |
3998 -27 3977 -47 3963 -73 ct 3949 -100 3941 -132 3941 -170 ct p |
4031 -165 m 4031 -132 4038 -107 4054 -90 ct 4069 -73 4089 -64 4111 -64 ct 4134 -64 4153 -73 4169 -90 ct |
4184 -107 4192 -133 4192 -166 ct 4192 -198 4184 -223 4169 -240 ct 4153 -257 4134 -266 4111 -266 ct |
4089 -266 4069 -257 4054 -240 ct 4038 -223 4031 -198 4031 -165 ct p ef |
4650 0 m 4563 0 l 4563 -168 l 4563 -204 4561 -227 4557 -237 ct 4554 -248 4548 -256 4539 -262 ct |
4531 -267 4521 -270 4509 -270 ct 4494 -270 4480 -266 4468 -258 ct 4456 -250 4448 -239 4444 -225 ct |
4439 -211 4437 -186 4437 -149 ct 4437 0 l 4350 0 l 4350 -330 l 4431 -330 l |
4431 -281 l 4460 -318 4496 -337 4539 -337 ct 4559 -337 4576 -334 4592 -327 ct |
4608 -320 4620 -311 4628 -300 ct 4636 -289 4642 -277 4645 -263 ct 4648 -250 4650 -230 4650 -205 ct |
4650 0 l p ef |
4916 -330 m 4997 -330 l 4997 -281 l 5008 -298 5022 -311 5040 -322 ct 5058 -332 5078 -337 5100 -337 ct |
5138 -337 5171 -322 5197 -292 ct 5224 -262 5237 -220 5237 -167 ct 5237 -112 5224 -69 5197 -39 ct |
5170 -8 5138 7 5099 7 ct 5081 7 5065 3 5050 -4 ct 5035 -11 5020 -24 5003 -41 ct |
5003 125 l 4916 125 l 4916 -330 l p |
5002 -171 m 5002 -134 5010 -106 5024 -89 ct 5039 -71 5057 -62 5078 -62 ct 5098 -62 5115 -70 5128 -87 ct |
5142 -103 5149 -129 5149 -166 ct 5149 -201 5142 -226 5128 -243 ct 5114 -260 5097 -268 5076 -268 ct |
5055 -268 5037 -260 5023 -244 ct 5009 -227 5002 -203 5002 -171 ct p ef |
5391 0 m 5304 0 l 5304 -330 l 5385 -330 l 5385 -283 l 5399 -305 5411 -319 5422 -326 ct |
5433 -333 5446 -337 5460 -337 ct 5480 -337 5499 -332 5517 -321 ct 5490 -245 l |
5476 -254 5462 -259 5449 -259 ct 5437 -259 5427 -255 5418 -249 ct 5410 -242 5403 -230 5398 -212 ct |
5393 -195 5391 -158 5391 -102 ct 5391 0 l p ef |
5533 -170 m 5533 -199 5541 -227 5555 -254 ct 5569 -281 5589 -301 5615 -316 ct |
5642 -330 5671 -337 5703 -337 ct 5753 -337 5794 -321 5826 -289 ct 5857 -256 5873 -215 5873 -166 ct |
5873 -116 5857 -75 5825 -42 ct 5793 -9 5752 7 5704 7 ct 5673 7 5645 0 5617 -13 ct |
5590 -27 5569 -47 5555 -73 ct 5541 -100 5533 -132 5533 -170 ct p |
5623 -165 m 5623 -132 5630 -107 5646 -90 ct 5661 -73 5681 -64 5703 -64 ct 5726 -64 5745 -73 5761 -90 ct |
5776 -107 5784 -133 5784 -166 ct 5784 -198 5776 -223 5761 -240 ct 5745 -257 5726 -266 5703 -266 ct |
5681 -266 5661 -257 5646 -240 ct 5630 -223 5623 -198 5623 -165 ct p ef |
5940 -330 m 6021 -330 l 6021 -281 l 6032 -298 6046 -311 6064 -322 ct 6082 -332 6102 -337 6124 -337 ct |
6162 -337 6195 -322 6221 -292 ct 6248 -262 6261 -220 6261 -167 ct 6261 -112 6248 -69 6221 -39 ct |
6194 -8 6162 7 6123 7 ct 6105 7 6089 3 6074 -4 ct 6059 -11 6044 -24 6027 -41 ct |
6027 125 l 5940 125 l 5940 -330 l p |
6026 -171 m 6026 -134 6034 -106 6048 -89 ct 6063 -71 6081 -62 6102 -62 ct 6122 -62 6139 -70 6152 -87 ct |
6166 -103 6173 -129 6173 -166 ct 6173 -201 6166 -226 6152 -243 ct 6138 -260 6121 -268 6100 -268 ct |
6079 -268 6061 -260 6047 -244 ct 6033 -227 6026 -203 6026 -171 ct p ef |
6523 -105 m 6610 -91 l 6599 -59 6581 -35 6557 -18 ct 6533 -1 6503 7 6467 7 ct |
6410 7 6367 -12 6340 -49 ct 6318 -79 6307 -117 6307 -163 ct 6307 -218 6321 -260 6350 -291 ct |
6378 -322 6415 -338 6458 -338 ct 6507 -338 6546 -322 6574 -289 ct 6602 -257 6616 -207 6615 -140 ct |
6396 -140 l 6397 -114 6404 -94 6418 -80 ct 6431 -65 6448 -58 6468 -58 ct 6481 -58 6493 -62 6502 -69 ct |
6511 -77 6519 -89 6523 -105 ct p |
6528 -193 m 6528 -219 6521 -238 6509 -251 ct 6496 -264 6481 -271 6463 -271 ct |
6444 -271 6429 -264 6416 -250 ct 6404 -236 6398 -217 6398 -193 ct 6528 -193 l |
p ef |
6767 0 m 6680 0 l 6680 -330 l 6761 -330 l 6761 -283 l 6775 -305 6787 -319 6798 -326 ct |
6809 -333 6822 -337 6836 -337 ct 6856 -337 6875 -332 6893 -321 ct 6866 -245 l |
6852 -254 6838 -259 6825 -259 ct 6813 -259 6803 -255 6794 -249 ct 6786 -242 6779 -230 6774 -212 ct |
6769 -195 6767 -158 6767 -102 ct 6767 0 l p ef |
7080 -330 m 7080 -260 l 7020 -260 l 7020 -128 l 7020 -101 7021 -85 7022 -81 ct |
7023 -76 7025 -73 7030 -70 ct 7034 -67 7038 -65 7044 -65 ct 7052 -65 7064 -68 7079 -74 ct |
7087 -6 l 7066 3 7044 7 7018 7 ct 7002 7 6988 4 6975 -1 ct 6963 -6 6954 -13 6948 -21 ct |
6942 -30 6938 -41 6935 -55 ct 6934 -66 6933 -86 6933 -117 ct 6933 -260 l 6893 -260 l |
6893 -330 l 6933 -330 l 6933 -395 l 7020 -446 l 7020 -330 l 7080 -330 l |
p ef |
7141 -374 m 7141 -455 l 7228 -455 l 7228 -374 l 7141 -374 l p |
7141 0 m 7141 -330 l 7228 -330 l 7228 0 l 7141 0 l p ef |
7509 -105 m 7596 -91 l 7585 -59 7567 -35 7543 -18 ct 7519 -1 7489 7 7453 7 ct |
7396 7 7353 -12 7326 -49 ct 7304 -79 7293 -117 7293 -163 ct 7293 -218 7307 -260 7336 -291 ct |
7364 -322 7401 -338 7444 -338 ct 7493 -338 7532 -322 7560 -289 ct 7588 -257 7602 -207 7601 -140 ct |
7382 -140 l 7383 -114 7390 -94 7404 -80 ct 7417 -65 7434 -58 7454 -58 ct 7467 -58 7479 -62 7488 -69 ct |
7497 -77 7505 -89 7509 -105 ct p |
7514 -193 m 7514 -219 7507 -238 7495 -251 ct 7482 -264 7467 -271 7449 -271 ct |
7430 -271 7415 -264 7402 -250 ct 7390 -236 7384 -217 7384 -193 ct 7514 -193 l |
p ef |
7639 -95 m 7726 -108 l 7730 -91 7738 -78 7749 -69 ct 7760 -60 7776 -56 7797 -56 ct |
7819 -56 7836 -60 7848 -68 ct 7855 -74 7859 -82 7859 -92 ct 7859 -98 7857 -104 7853 -108 ct |
7848 -112 7839 -116 7824 -120 ct 7753 -135 7709 -149 7690 -162 ct 7664 -180 7651 -205 7651 -236 ct |
7651 -265 7662 -289 7685 -308 ct 7707 -328 7742 -338 7790 -338 ct 7835 -338 7868 -330 7890 -316 ct |
7912 -301 7927 -279 7935 -250 ct 7853 -235 l 7850 -248 7843 -258 7833 -265 ct |
7823 -272 7809 -275 7791 -275 ct 7768 -275 7752 -272 7742 -265 ct 7735 -261 7732 -255 7732 -248 ct |
7732 -241 7735 -236 7741 -232 ct 7748 -226 7776 -218 7822 -207 ct 7868 -197 7901 -184 7919 -168 ct |
7937 -153 7946 -131 7946 -104 ct 7946 -73 7934 -47 7909 -26 ct 7883 -4 7846 7 7797 7 ct |
7752 7 7716 -2 7690 -20 ct 7664 -39 7647 -63 7639 -95 ct p ef |
pom |
pum |
5683 2629 t |
41 -1 m 41 -354 l 279 -354 l 279 -312 l 87 -312 l 87 -203 l 253 -203 l |
253 -161 l 87 -161 l 87 -1 l 41 -1 l p ef |
333 0 m 333 -256 l 372 -256 l 372 -217 l 382 -236 391 -248 400 -253 ct |
408 -259 418 -262 428 -262 ct 442 -262 457 -257 472 -248 ct 457 -208 l 447 -214 436 -217 425 -217 ct |
416 -217 407 -214 400 -209 ct 392 -203 387 -195 384 -185 ct 379 -169 377 -152 377 -134 ct |
377 0 l 333 0 l p ef |
666 -31 m 650 -18 634 -8 619 -2 ct 604 3 588 6 571 6 ct 543 6 522 -1 507 -15 ct |
491 -28 484 -46 484 -67 ct 484 -80 487 -91 492 -102 ct 498 -112 506 -120 515 -127 ct |
524 -133 535 -138 546 -141 ct 555 -143 567 -145 585 -148 ct 620 -152 646 -157 662 -163 ct |
662 -168 662 -172 662 -174 ct 662 -192 658 -204 650 -211 ct 639 -221 622 -226 601 -226 ct |
580 -226 565 -222 555 -215 ct 546 -208 538 -195 534 -177 ct 491 -183 l 495 -201 502 -216 510 -227 ct |
519 -238 532 -247 549 -253 ct 565 -259 585 -262 607 -262 ct 629 -262 647 -259 660 -254 ct |
674 -249 684 -243 690 -235 ct 697 -227 701 -217 704 -205 ct 705 -198 706 -184 706 -165 ct |
706 -107 l 706 -67 707 -41 709 -31 ct 711 -20 714 -10 720 0 ct 674 0 l 670 -9 667 -19 666 -31 ct |
p |
662 -128 m 646 -122 623 -117 591 -112 ct 573 -109 561 -107 553 -103 ct 546 -100 540 -95 536 -89 ct |
532 -83 530 -76 530 -69 ct 530 -57 535 -47 543 -40 ct 552 -32 565 -28 582 -28 ct |
599 -28 613 -32 626 -39 ct 639 -46 649 -56 655 -69 ct 660 -79 662 -93 662 -113 ct |
662 -128 l p ef |
774 0 m 774 -256 l 812 -256 l 812 -220 l 820 -233 831 -243 844 -251 ct |
858 -258 873 -262 890 -262 ct 909 -262 925 -258 937 -250 ct 949 -242 957 -231 962 -217 ct |
983 -247 1009 -262 1042 -262 ct 1067 -262 1086 -255 1100 -241 ct 1114 -227 1121 -205 1121 -176 ct |
1121 0 l 1077 0 l 1077 -161 l 1077 -179 1076 -191 1073 -199 ct 1070 -207 1065 -213 1058 -217 ct |
1051 -222 1042 -224 1032 -224 ct 1014 -224 999 -218 987 -206 ct 975 -194 969 -175 969 -149 ct |
969 0 l 926 0 l 926 -166 l 926 -186 922 -200 915 -210 ct 908 -220 897 -224 880 -224 ct |
868 -224 857 -221 847 -215 ct 836 -208 829 -199 824 -186 ct 819 -174 817 -156 817 -133 ct |
817 0 l 774 0 l p ef |
1351 -31 m 1335 -18 1319 -8 1304 -2 ct 1289 3 1273 6 1256 6 ct 1228 6 1207 -1 1192 -15 ct |
1176 -28 1169 -46 1169 -67 ct 1169 -80 1172 -91 1177 -102 ct 1183 -112 1191 -120 1200 -127 ct |
1209 -133 1220 -138 1231 -141 ct 1240 -143 1252 -145 1270 -148 ct 1305 -152 1331 -157 1347 -163 ct |
1347 -168 1347 -172 1347 -174 ct 1347 -192 1343 -204 1335 -211 ct 1324 -221 1307 -226 1286 -226 ct |
1265 -226 1250 -222 1240 -215 ct 1231 -208 1223 -195 1219 -177 ct 1176 -183 l |
1180 -201 1187 -216 1195 -227 ct 1204 -238 1217 -247 1234 -253 ct 1250 -259 1270 -262 1292 -262 ct |
1314 -262 1332 -259 1345 -254 ct 1359 -249 1369 -243 1375 -235 ct 1382 -227 1386 -217 1389 -205 ct |
1390 -198 1391 -184 1391 -165 ct 1391 -107 l 1391 -67 1392 -41 1394 -31 ct |
1396 -20 1399 -10 1405 0 ct 1359 0 l 1355 -9 1352 -19 1351 -31 ct p |
1347 -128 m 1331 -122 1308 -117 1276 -112 ct 1258 -109 1246 -107 1238 -103 ct |
1231 -100 1225 -95 1221 -89 ct 1217 -83 1215 -76 1215 -69 ct 1215 -57 1220 -47 1228 -40 ct |
1237 -32 1250 -28 1267 -28 ct 1284 -28 1298 -32 1311 -39 ct 1324 -46 1334 -56 1340 -69 ct |
1345 -79 1347 -93 1347 -113 ct 1347 -128 l p ef |
1443 -106 m 1443 -150 l 1576 -150 l 1576 -106 l 1443 -106 l p ef |
1882 -124 m 1929 -112 l 1919 -74 1902 -44 1876 -24 ct 1851 -4 1820 6 1783 6 ct |
1745 6 1714 -2 1690 -17 ct 1666 -33 1648 -55 1635 -85 ct 1623 -114 1617 -146 1617 -180 ct |
1617 -217 1624 -249 1638 -276 ct 1652 -304 1672 -324 1698 -339 ct 1724 -353 1752 -360 1784 -360 ct |
1819 -360 1849 -351 1873 -333 ct 1897 -315 1914 -290 1923 -257 ct 1877 -246 l |
1869 -272 1857 -291 1841 -302 ct 1826 -314 1806 -320 1783 -320 ct 1755 -320 1733 -313 1714 -300 ct |
1696 -287 1683 -270 1676 -248 ct 1669 -226 1665 -203 1665 -180 ct 1665 -150 1669 -124 1678 -101 ct |
1687 -79 1700 -62 1719 -51 ct 1737 -40 1757 -34 1779 -34 ct 1805 -34 1827 -42 1846 -57 ct |
1864 -72 1876 -94 1882 -124 ct p ef |
pom |
0.503 0.003 0.003 c 6679 2969 m 12091 5221 l 12071 5268 l 12052 5315 l |
6639 3063 l 6659 3016 l 6679 2969 l p ef |
12572 5476 m 12033 5007 l 11859 5424 l 12572 5476 l p ef |
pum |
1928 4140 t |
0.003 0.003 0.003 c 33 98 m 33 -256 l 72 -256 l 72 -223 l 81 -236 92 -246 104 -252 ct |
115 -259 130 -262 146 -262 ct 168 -262 188 -256 204 -245 ct 221 -234 234 -218 242 -197 ct |
251 -177 255 -155 255 -130 ct 255 -104 250 -80 241 -59 ct 231 -38 218 -22 200 -11 ct |
182 0 163 6 143 6 ct 129 6 116 3 104 -3 ct 93 -10 83 -17 76 -27 ct 76 98 l 33 98 l |
p |
72 -127 m 72 -94 79 -69 92 -54 ct 105 -38 121 -30 140 -30 ct 160 -30 176 -38 190 -54 ct |
204 -71 211 -96 211 -130 ct 211 -163 204 -187 190 -204 ct 177 -220 161 -228 142 -228 ct |
124 -228 107 -219 93 -202 ct 79 -185 72 -160 72 -127 ct p ef |
307 0 m 307 -256 l 346 -256 l 346 -217 l 356 -236 365 -248 374 -253 ct |
382 -259 392 -262 402 -262 ct 416 -262 431 -257 446 -248 ct 431 -208 l 421 -214 410 -217 399 -217 ct |
390 -217 381 -214 374 -209 ct 366 -203 361 -195 358 -185 ct 353 -169 351 -152 351 -134 ct |
351 0 l 307 0 l p ef |
648 -82 m 693 -77 l 686 -51 673 -30 653 -16 ct 634 -1 610 6 580 6 ct 543 6 513 -6 491 -29 ct |
469 -52 458 -84 458 -126 ct 458 -169 469 -202 491 -226 ct 514 -250 542 -262 578 -262 ct |
612 -262 640 -250 662 -227 ct 683 -204 694 -171 694 -129 ct 694 -126 694 -122 694 -117 ct |
503 -117 l 505 -89 513 -67 527 -52 ct 541 -37 559 -30 580 -30 ct 596 -30 610 -34 621 -42 ct |
632 -51 641 -64 648 -82 ct p |
505 -153 m 648 -153 l 646 -174 641 -190 632 -201 ct 618 -218 600 -226 578 -226 ct |
558 -226 542 -219 528 -206 ct 514 -193 507 -175 505 -153 ct p ef |
715 6 m 818 -360 l 852 -360 l 750 6 l 715 6 l p ef |
888 98 m 888 -256 l 927 -256 l 927 -223 l 936 -236 947 -246 959 -252 ct |
970 -259 985 -262 1001 -262 ct 1023 -262 1043 -256 1059 -245 ct 1076 -234 1089 -218 1097 -197 ct |
1106 -177 1110 -155 1110 -130 ct 1110 -104 1105 -80 1096 -59 ct 1086 -38 1073 -22 1055 -11 ct |
1037 0 1018 6 998 6 ct 984 6 971 3 959 -3 ct 948 -10 938 -17 931 -27 ct 931 98 l |
888 98 l p |
927 -127 m 927 -94 934 -69 947 -54 ct 960 -38 976 -30 995 -30 ct 1015 -30 1031 -38 1045 -54 ct |
1059 -71 1066 -96 1066 -130 ct 1066 -163 1059 -187 1045 -204 ct 1032 -220 1016 -228 997 -228 ct |
979 -228 962 -219 948 -202 ct 934 -185 927 -160 927 -127 ct p ef |
1146 -128 m 1146 -175 1160 -211 1186 -233 ct 1208 -252 1235 -262 1267 -262 ct |
1302 -262 1331 -250 1353 -227 ct 1375 -204 1386 -172 1386 -132 ct 1386 -99 1381 -73 1372 -54 ct |
1362 -35 1347 -20 1328 -10 ct 1310 1 1289 6 1267 6 ct 1231 6 1202 -6 1180 -29 ct |
1157 -52 1146 -85 1146 -128 ct p |
1191 -128 m 1191 -95 1198 -71 1213 -54 ct 1227 -38 1245 -30 1267 -30 ct 1288 -30 1306 -38 1320 -54 ct |
1335 -71 1342 -96 1342 -129 ct 1342 -161 1335 -185 1320 -201 ct 1306 -218 1288 -226 1267 -226 ct |
1245 -226 1227 -218 1213 -202 ct 1198 -185 1191 -161 1191 -128 ct p ef |
1420 -76 m 1463 -83 l 1466 -66 1472 -53 1483 -43 ct 1494 -34 1510 -30 1529 -30 ct |
1549 -30 1564 -34 1574 -42 ct 1584 -50 1588 -60 1588 -70 ct 1588 -80 1584 -88 1576 -94 ct |
1570 -97 1555 -102 1531 -108 ct 1499 -116 1477 -123 1465 -129 ct 1453 -135 1443 -143 1437 -154 ct |
1431 -164 1427 -175 1427 -188 ct 1427 -199 1430 -210 1435 -220 ct 1441 -229 1448 -237 1457 -244 ct |
1463 -249 1473 -253 1484 -257 ct 1496 -260 1508 -262 1522 -262 ct 1542 -262 1559 -259 1575 -253 ct |
1590 -247 1601 -239 1608 -230 ct 1616 -220 1621 -206 1623 -190 ct 1581 -184 l |
1579 -197 1573 -208 1564 -215 ct 1555 -222 1542 -226 1525 -226 ct 1505 -226 1491 -223 1482 -216 ct |
1474 -210 1469 -202 1469 -193 ct 1469 -187 1471 -182 1475 -178 ct 1478 -173 1484 -169 1491 -166 ct |
1496 -165 1508 -161 1530 -155 ct 1560 -147 1582 -140 1594 -135 ct 1606 -130 1616 -122 1623 -112 ct |
1629 -102 1633 -90 1633 -75 ct 1633 -61 1629 -47 1620 -34 ct 1612 -21 1600 -11 1584 -4 ct |
1568 2 1550 6 1530 6 ct 1496 6 1471 -1 1454 -15 ct 1436 -29 1425 -49 1420 -76 ct |
p ef |
1782 -39 m 1789 -1 l 1776 2 1765 3 1756 3 ct 1740 3 1728 0 1719 -4 ct 1710 -9 1704 -16 1701 -24 ct |
1697 -32 1696 -49 1696 -75 ct 1696 -223 l 1664 -223 l 1664 -257 l 1696 -257 l |
1696 -320 l 1739 -346 l 1739 -257 l 1782 -257 l 1782 -223 l 1739 -223 l |
1739 -73 l 1739 -61 1739 -53 1741 -49 ct 1743 -46 1745 -43 1748 -41 ct 1752 -39 1757 -38 1763 -38 ct |
1768 -38 1774 -38 1782 -39 ct p ef |
1811 -106 m 1811 -150 l 1944 -150 l 1944 -106 l 1811 -106 l p ef |
2160 -94 m 2202 -88 l 2198 -59 2186 -36 2167 -19 ct 2147 -2 2124 6 2096 6 ct |
2061 6 2033 -5 2011 -28 ct 1990 -51 1979 -84 1979 -127 ct 1979 -155 1984 -179 1993 -199 ct |
2002 -220 2016 -236 2035 -246 ct 2054 -257 2074 -262 2096 -262 ct 2124 -262 2147 -255 2164 -241 ct |
2182 -227 2193 -207 2198 -181 ct 2156 -174 l 2152 -191 2145 -204 2135 -213 ct |
2125 -222 2112 -226 2098 -226 ct 2076 -226 2058 -218 2044 -202 ct 2031 -187 2024 -162 2024 -128 ct |
2024 -94 2031 -69 2044 -53 ct 2057 -38 2074 -30 2095 -30 ct 2112 -30 2127 -35 2138 -45 ct |
2149 -56 2157 -72 2160 -94 ct p ef |
2226 -128 m 2226 -175 2240 -211 2266 -233 ct 2288 -252 2315 -262 2347 -262 ct |
2382 -262 2411 -250 2433 -227 ct 2455 -204 2466 -172 2466 -132 ct 2466 -99 2461 -73 2452 -54 ct |
2442 -35 2427 -20 2408 -10 ct 2390 1 2369 6 2347 6 ct 2311 6 2282 -6 2260 -29 ct |
2237 -52 2226 -85 2226 -128 ct p |
2271 -128 m 2271 -95 2278 -71 2293 -54 ct 2307 -38 2325 -30 2347 -30 ct 2368 -30 2386 -38 2400 -54 ct |
2415 -71 2422 -96 2422 -129 ct 2422 -161 2415 -185 2400 -201 ct 2386 -218 2368 -226 2347 -226 ct |
2325 -226 2307 -218 2293 -202 ct 2278 -185 2271 -161 2271 -128 ct p ef |
2518 0 m 2518 -256 l 2557 -256 l 2557 -220 l 2575 -248 2603 -262 2638 -262 ct |
2654 -262 2668 -259 2681 -254 ct 2694 -248 2703 -241 2710 -232 ct 2716 -223 2721 -212 2723 -200 ct |
2725 -192 2726 -178 2726 -158 ct 2726 0 l 2682 0 l 2682 -156 l 2682 -174 2681 -187 2677 -196 ct |
2674 -204 2668 -211 2659 -217 ct 2651 -222 2641 -224 2629 -224 ct 2611 -224 2595 -218 2581 -207 ct |
2568 -195 2561 -173 2561 -140 ct 2561 0 l 2518 0 l p ef |
2959 0 m 2959 -32 l 2943 -7 2919 6 2887 6 ct 2867 6 2848 0 2831 -11 ct 2814 -22 2800 -38 2791 -58 ct |
2782 -78 2777 -102 2777 -128 ct 2777 -153 2781 -177 2790 -197 ct 2798 -218 2811 -234 2828 -245 ct |
2845 -256 2864 -262 2885 -262 ct 2901 -262 2914 -259 2926 -252 ct 2939 -246 2948 -237 2956 -227 ct |
2956 -354 l 2999 -354 l 2999 0 l 2959 0 l p |
2822 -128 m 2822 -95 2828 -70 2842 -54 ct 2856 -38 2872 -30 2891 -30 ct 2910 -30 2926 -37 2940 -53 ct |
2953 -69 2959 -92 2959 -124 ct 2959 -159 2953 -185 2939 -201 ct 2926 -218 2909 -226 2889 -226 ct |
2870 -226 2854 -218 2841 -202 ct 2828 -187 2822 -162 2822 -128 ct p ef |
3068 -304 m 3068 -354 l 3111 -354 l 3111 -304 l 3068 -304 l p |
3068 0 m 3068 -256 l 3111 -256 l 3111 0 l 3068 0 l p ef |
3272 -39 m 3279 -1 l 3266 2 3255 3 3246 3 ct 3230 3 3218 0 3209 -4 ct 3200 -9 3194 -16 3191 -24 ct |
3187 -32 3186 -49 3186 -75 ct 3186 -223 l 3154 -223 l 3154 -257 l 3186 -257 l |
3186 -320 l 3229 -346 l 3229 -257 l 3272 -257 l 3272 -223 l 3229 -223 l |
3229 -73 l 3229 -61 3229 -53 3231 -49 ct 3233 -46 3235 -43 3238 -41 ct 3242 -39 3247 -38 3253 -38 ct |
3258 -38 3264 -38 3272 -39 ct p ef |
3318 -304 m 3318 -354 l 3361 -354 l 3361 -304 l 3318 -304 l p |
3318 0 m 3318 -256 l 3361 -256 l 3361 0 l 3318 0 l p ef |
3411 -128 m 3411 -175 3425 -211 3451 -233 ct 3473 -252 3500 -262 3532 -262 ct |
3567 -262 3596 -250 3618 -227 ct 3640 -204 3651 -172 3651 -132 ct 3651 -99 3646 -73 3637 -54 ct |
3627 -35 3612 -20 3593 -10 ct 3575 1 3554 6 3532 6 ct 3496 6 3467 -6 3445 -29 ct |
3422 -52 3411 -85 3411 -128 ct p |
3456 -128 m 3456 -95 3463 -71 3478 -54 ct 3492 -38 3510 -30 3532 -30 ct 3553 -30 3571 -38 3585 -54 ct |
3600 -71 3607 -96 3607 -129 ct 3607 -161 3600 -185 3585 -201 ct 3571 -218 3553 -226 3532 -226 ct |
3510 -226 3492 -218 3478 -202 ct 3463 -185 3456 -161 3456 -128 ct p ef |
3703 0 m 3703 -256 l 3742 -256 l 3742 -220 l 3760 -248 3788 -262 3823 -262 ct |
3839 -262 3853 -259 3866 -254 ct 3879 -248 3888 -241 3895 -232 ct 3901 -223 3906 -212 3908 -200 ct |
3910 -192 3911 -178 3911 -158 ct 3911 0 l 3867 0 l 3867 -156 l 3867 -174 3866 -187 3862 -196 ct |
3859 -204 3853 -211 3844 -217 ct 3836 -222 3826 -224 3814 -224 ct 3796 -224 3780 -218 3766 -207 ct |
3753 -195 3746 -173 3746 -140 ct 3746 0 l 3703 0 l p ef |
3960 -76 m 4003 -83 l 4006 -66 4012 -53 4023 -43 ct 4034 -34 4050 -30 4069 -30 ct |
4089 -30 4104 -34 4114 -42 ct 4124 -50 4128 -60 4128 -70 ct 4128 -80 4124 -88 4116 -94 ct |
4110 -97 4095 -102 4071 -108 ct 4039 -116 4017 -123 4005 -129 ct 3993 -135 3983 -143 3977 -154 ct |
3971 -164 3967 -175 3967 -188 ct 3967 -199 3970 -210 3975 -220 ct 3981 -229 3988 -237 3997 -244 ct |
4003 -249 4013 -253 4024 -257 ct 4036 -260 4048 -262 4062 -262 ct 4082 -262 4099 -259 4115 -253 ct |
4130 -247 4141 -239 4148 -230 ct 4156 -220 4161 -206 4163 -190 ct 4121 -184 l |
4119 -197 4113 -208 4104 -215 ct 4095 -222 4082 -226 4065 -226 ct 4045 -226 4031 -223 4022 -216 ct |
4014 -210 4009 -202 4009 -193 ct 4009 -187 4011 -182 4015 -178 ct 4018 -173 4024 -169 4031 -166 ct |
4036 -165 4048 -161 4070 -155 ct 4100 -147 4122 -140 4134 -135 ct 4146 -130 4156 -122 4163 -112 ct |
4169 -102 4173 -90 4173 -75 ct 4173 -61 4169 -47 4160 -34 ct 4152 -21 4140 -11 4124 -4 ct |
4108 2 4090 6 4070 6 ct 4036 6 4011 -1 3994 -15 ct 3976 -29 3965 -49 3960 -76 ct |
p ef |
4535 -94 m 4577 -88 l 4573 -59 4561 -36 4542 -19 ct 4522 -2 4499 6 4471 6 ct |
4436 6 4408 -5 4386 -28 ct 4365 -51 4354 -84 4354 -127 ct 4354 -155 4359 -179 4368 -199 ct |
4377 -220 4391 -236 4410 -246 ct 4429 -257 4449 -262 4471 -262 ct 4499 -262 4522 -255 4539 -241 ct |
4557 -227 4568 -207 4573 -181 ct 4531 -174 l 4527 -191 4520 -204 4510 -213 ct |
4500 -222 4487 -226 4473 -226 ct 4451 -226 4433 -218 4419 -202 ct 4406 -187 4399 -162 4399 -128 ct |
4399 -94 4406 -69 4419 -53 ct 4432 -38 4449 -30 4470 -30 ct 4487 -30 4502 -35 4513 -45 ct |
4524 -56 4532 -72 4535 -94 ct p ef |
4618 0 m 4618 -354 l 4661 -354 l 4661 -227 l 4681 -250 4707 -262 4738 -262 ct |
4757 -262 4773 -258 4787 -251 ct 4801 -243 4811 -233 4817 -220 ct 4823 -207 4826 -187 4826 -162 ct |
4826 0 l 4783 0 l 4783 -162 l 4783 -184 4778 -200 4769 -210 ct 4759 -220 4746 -225 4729 -225 ct |
4716 -225 4704 -221 4692 -215 ct 4681 -208 4673 -199 4668 -187 ct 4663 -176 4661 -160 4661 -140 ct |
4661 0 l 4618 0 l p ef |
5068 -82 m 5113 -77 l 5106 -51 5093 -30 5073 -16 ct 5054 -1 5030 6 5000 6 ct |
4963 6 4933 -6 4911 -29 ct 4889 -52 4878 -84 4878 -126 ct 4878 -169 4889 -202 4911 -226 ct |
4934 -250 4962 -262 4998 -262 ct 5032 -262 5060 -250 5082 -227 ct 5103 -204 5114 -171 5114 -129 ct |
5114 -126 5114 -122 5114 -117 ct 4923 -117 l 4925 -89 4933 -67 4947 -52 ct |
4961 -37 4979 -30 5000 -30 ct 5016 -30 5030 -34 5041 -42 ct 5052 -51 5061 -64 5068 -82 ct |
p |
4925 -153 m 5068 -153 l 5066 -174 5061 -190 5052 -201 ct 5038 -218 5020 -226 4998 -226 ct |
4978 -226 4962 -219 4948 -206 ct 4934 -193 4927 -175 4925 -153 ct p ef |
5335 -94 m 5377 -88 l 5373 -59 5361 -36 5342 -19 ct 5322 -2 5299 6 5271 6 ct |
5236 6 5208 -5 5186 -28 ct 5165 -51 5154 -84 5154 -127 ct 5154 -155 5159 -179 5168 -199 ct |
5177 -220 5191 -236 5210 -246 ct 5229 -257 5249 -262 5271 -262 ct 5299 -262 5322 -255 5339 -241 ct |
5357 -227 5368 -207 5373 -181 ct 5331 -174 l 5327 -191 5320 -204 5310 -213 ct |
5300 -222 5287 -226 5273 -226 ct 5251 -226 5233 -218 5219 -202 ct 5206 -187 5199 -162 5199 -128 ct |
5199 -94 5206 -69 5219 -53 ct 5232 -38 5249 -30 5270 -30 ct 5287 -30 5302 -35 5313 -45 ct |
5324 -56 5332 -72 5335 -94 ct p ef |
5418 0 m 5418 -354 l 5461 -354 l 5461 -152 l 5564 -256 l 5620 -256 l |
5522 -161 l 5630 0 l 5577 0 l 5492 -131 l 5461 -102 l 5461 0 l 5418 0 l |
p ef |
5668 -304 m 5668 -354 l 5711 -354 l 5711 -304 l 5668 -304 l p |
5668 0 m 5668 -256 l 5711 -256 l 5711 0 l 5668 0 l p ef |
5778 0 m 5778 -256 l 5817 -256 l 5817 -220 l 5835 -248 5863 -262 5898 -262 ct |
5914 -262 5928 -259 5941 -254 ct 5954 -248 5963 -241 5970 -232 ct 5976 -223 5981 -212 5983 -200 ct |
5985 -192 5986 -178 5986 -158 ct 5986 0 l 5942 0 l 5942 -156 l 5942 -174 5941 -187 5937 -196 ct |
5934 -204 5928 -211 5919 -217 ct 5911 -222 5901 -224 5889 -224 ct 5871 -224 5855 -218 5841 -207 ct |
5828 -195 5821 -173 5821 -140 ct 5821 0 l 5778 0 l p ef |
6045 21 m 6087 28 l 6089 41 6093 50 6102 56 ct 6112 64 6127 68 6146 68 ct |
6166 68 6181 64 6192 56 ct 6203 48 6211 37 6214 22 ct 6217 13 6218 -5 6218 -34 ct |
6199 -11 6175 0 6147 0 ct 6111 0 6084 -13 6065 -38 ct 6046 -64 6036 -94 6036 -130 ct |
6036 -154 6040 -177 6049 -197 ct 6058 -218 6071 -234 6088 -245 ct 6104 -256 6124 -262 6147 -262 ct |
6177 -262 6202 -250 6222 -225 ct 6222 -256 l 6262 -256 l 6262 -35 l 6262 5 6258 33 6250 50 ct |
6241 67 6229 80 6211 90 ct 6193 99 6172 104 6146 104 ct 6115 104 6091 97 6072 83 ct |
6053 70 6044 49 6045 21 ct p |
6081 -133 m 6081 -99 6087 -75 6101 -59 ct 6114 -44 6131 -36 6151 -36 ct 6171 -36 6187 -44 6201 -59 ct |
6214 -74 6221 -98 6221 -131 ct 6221 -163 6214 -186 6200 -202 ct 6186 -218 6170 -226 6150 -226 ct |
6131 -226 6114 -218 6101 -203 ct 6087 -187 6081 -164 6081 -133 ct p ef |
pom |
pum |
5882 4695 t |
33 -304 m 33 -354 l 76 -354 l 76 -304 l 33 -304 l p |
33 0 m 33 -256 l 76 -256 l 76 0 l 33 0 l p ef |
143 0 m 143 -256 l 182 -256 l 182 -220 l 200 -248 228 -262 263 -262 ct |
279 -262 293 -259 306 -254 ct 319 -248 328 -241 335 -232 ct 341 -223 346 -212 348 -200 ct |
350 -192 351 -178 351 -158 ct 351 0 l 307 0 l 307 -156 l 307 -174 306 -187 302 -196 ct |
299 -204 293 -211 284 -217 ct 276 -222 266 -224 254 -224 ct 236 -224 220 -218 206 -207 ct |
193 -195 186 -173 186 -140 ct 186 0 l 143 0 l p ef |
489 0 m 391 -256 l 437 -256 l 492 -103 l 498 -86 504 -69 509 -51 ct 512 -65 518 -81 525 -100 ct |
582 -256 l 626 -256 l 529 0 l 489 0 l p ef |
835 -31 m 819 -18 803 -8 788 -2 ct 773 3 757 6 740 6 ct 712 6 691 -1 676 -15 ct |
660 -28 653 -46 653 -67 ct 653 -80 656 -91 661 -102 ct 667 -112 675 -120 684 -127 ct |
693 -133 704 -138 715 -141 ct 724 -143 736 -145 754 -148 ct 789 -152 815 -157 831 -163 ct |
831 -168 831 -172 831 -174 ct 831 -192 827 -204 819 -211 ct 808 -221 791 -226 770 -226 ct |
749 -226 734 -222 724 -215 ct 715 -208 707 -195 703 -177 ct 660 -183 l 664 -201 671 -216 679 -227 ct |
688 -238 701 -247 718 -253 ct 734 -259 754 -262 776 -262 ct 798 -262 816 -259 829 -254 ct |
843 -249 853 -243 859 -235 ct 866 -227 870 -217 873 -205 ct 874 -198 875 -184 875 -165 ct |
875 -107 l 875 -67 876 -41 878 -31 ct 880 -20 883 -10 889 0 ct 843 0 l 839 -9 836 -19 835 -31 ct |
p |
831 -128 m 815 -122 792 -117 760 -112 ct 742 -109 730 -107 722 -103 ct 715 -100 709 -95 705 -89 ct |
701 -83 699 -76 699 -69 ct 699 -57 704 -47 712 -40 ct 721 -32 734 -28 751 -28 ct |
768 -28 782 -32 795 -39 ct 808 -46 818 -56 824 -69 ct 829 -79 831 -93 831 -113 ct |
831 -128 l p ef |
942 0 m 942 -256 l 981 -256 l 981 -217 l 991 -236 1000 -248 1009 -253 ct |
1017 -259 1027 -262 1037 -262 ct 1051 -262 1066 -257 1081 -248 ct 1066 -208 l |
1056 -214 1045 -217 1034 -217 ct 1025 -217 1016 -214 1009 -209 ct 1001 -203 996 -195 993 -185 ct |
988 -169 986 -152 986 -134 ct 986 0 l 942 0 l p ef |
1108 -304 m 1108 -354 l 1151 -354 l 1151 -304 l 1108 -304 l p |
1108 0 m 1108 -256 l 1151 -256 l 1151 0 l 1108 0 l p ef |
1385 -31 m 1369 -18 1353 -8 1338 -2 ct 1323 3 1307 6 1290 6 ct 1262 6 1241 -1 1226 -15 ct |
1210 -28 1203 -46 1203 -67 ct 1203 -80 1206 -91 1211 -102 ct 1217 -112 1225 -120 1234 -127 ct |
1243 -133 1254 -138 1265 -141 ct 1274 -143 1286 -145 1304 -148 ct 1339 -152 1365 -157 1381 -163 ct |
1381 -168 1381 -172 1381 -174 ct 1381 -192 1377 -204 1369 -211 ct 1358 -221 1341 -226 1320 -226 ct |
1299 -226 1284 -222 1274 -215 ct 1265 -208 1257 -195 1253 -177 ct 1210 -183 l |
1214 -201 1221 -216 1229 -227 ct 1238 -238 1251 -247 1268 -253 ct 1284 -259 1304 -262 1326 -262 ct |
1348 -262 1366 -259 1379 -254 ct 1393 -249 1403 -243 1409 -235 ct 1416 -227 1420 -217 1423 -205 ct |
1424 -198 1425 -184 1425 -165 ct 1425 -107 l 1425 -67 1426 -41 1428 -31 ct |
1430 -20 1433 -10 1439 0 ct 1393 0 l 1389 -9 1386 -19 1385 -31 ct p |
1381 -128 m 1365 -122 1342 -117 1310 -112 ct 1292 -109 1280 -107 1272 -103 ct |
1265 -100 1259 -95 1255 -89 ct 1251 -83 1249 -76 1249 -69 ct 1249 -57 1254 -47 1262 -40 ct |
1271 -32 1284 -28 1301 -28 ct 1318 -28 1332 -32 1345 -39 ct 1358 -46 1368 -56 1374 -69 ct |
1379 -79 1381 -93 1381 -113 ct 1381 -128 l p ef |
1494 0 m 1494 -256 l 1533 -256 l 1533 -220 l 1551 -248 1579 -262 1614 -262 ct |
1630 -262 1644 -259 1657 -254 ct 1670 -248 1679 -241 1686 -232 ct 1692 -223 1697 -212 1699 -200 ct |
1701 -192 1702 -178 1702 -158 ct 1702 0 l 1658 0 l 1658 -156 l 1658 -174 1657 -187 1653 -196 ct |
1650 -204 1644 -211 1635 -217 ct 1627 -222 1617 -224 1605 -224 ct 1587 -224 1571 -218 1557 -207 ct |
1544 -195 1537 -173 1537 -140 ct 1537 0 l 1494 0 l p ef |
1863 -39 m 1870 -1 l 1857 2 1846 3 1837 3 ct 1821 3 1809 0 1800 -4 ct 1791 -9 1785 -16 1782 -24 ct |
1778 -32 1777 -49 1777 -75 ct 1777 -223 l 1745 -223 l 1745 -257 l 1777 -257 l |
1777 -320 l 1820 -346 l 1820 -257 l 1863 -257 l 1863 -223 l 1820 -223 l |
1820 -73 l 1820 -61 1820 -53 1822 -49 ct 1824 -46 1826 -43 1829 -41 ct 1833 -39 1838 -38 1844 -38 ct |
1849 -38 1855 -38 1863 -39 ct p ef |
2215 -94 m 2257 -88 l 2253 -59 2241 -36 2222 -19 ct 2202 -2 2179 6 2151 6 ct |
2116 6 2088 -5 2066 -28 ct 2045 -51 2034 -84 2034 -127 ct 2034 -155 2039 -179 2048 -199 ct |
2057 -220 2071 -236 2090 -246 ct 2109 -257 2129 -262 2151 -262 ct 2179 -262 2202 -255 2219 -241 ct |
2237 -227 2248 -207 2253 -181 ct 2211 -174 l 2207 -191 2200 -204 2190 -213 ct |
2180 -222 2167 -226 2153 -226 ct 2131 -226 2113 -218 2099 -202 ct 2086 -187 2079 -162 2079 -128 ct |
2079 -94 2086 -69 2099 -53 ct 2112 -38 2129 -30 2150 -30 ct 2167 -30 2182 -35 2193 -45 ct |
2204 -56 2212 -72 2215 -94 ct p ef |
2298 0 m 2298 -354 l 2341 -354 l 2341 -227 l 2361 -250 2387 -262 2418 -262 ct |
2437 -262 2453 -258 2467 -251 ct 2481 -243 2491 -233 2497 -220 ct 2503 -207 2506 -187 2506 -162 ct |
2506 0 l 2463 0 l 2463 -162 l 2463 -184 2458 -200 2449 -210 ct 2439 -220 2426 -225 2409 -225 ct |
2396 -225 2384 -221 2372 -215 ct 2361 -208 2353 -199 2348 -187 ct 2343 -176 2341 -160 2341 -140 ct |
2341 0 l 2298 0 l p ef |
2748 -82 m 2793 -77 l 2786 -51 2773 -30 2753 -16 ct 2734 -1 2710 6 2680 6 ct |
2643 6 2613 -6 2591 -29 ct 2569 -52 2558 -84 2558 -126 ct 2558 -169 2569 -202 2591 -226 ct |
2614 -250 2642 -262 2678 -262 ct 2712 -262 2740 -250 2762 -227 ct 2783 -204 2794 -171 2794 -129 ct |
2794 -126 2794 -122 2794 -117 ct 2603 -117 l 2605 -89 2613 -67 2627 -52 ct |
2641 -37 2659 -30 2680 -30 ct 2696 -30 2710 -34 2721 -42 ct 2732 -51 2741 -64 2748 -82 ct |
p |
2605 -153 m 2748 -153 l 2746 -174 2741 -190 2732 -201 ct 2718 -218 2700 -226 2678 -226 ct |
2658 -226 2642 -219 2628 -206 ct 2614 -193 2607 -175 2605 -153 ct p ef |
3015 -94 m 3057 -88 l 3053 -59 3041 -36 3022 -19 ct 3002 -2 2979 6 2951 6 ct |
2916 6 2888 -5 2866 -28 ct 2845 -51 2834 -84 2834 -127 ct 2834 -155 2839 -179 2848 -199 ct |
2857 -220 2871 -236 2890 -246 ct 2909 -257 2929 -262 2951 -262 ct 2979 -262 3002 -255 3019 -241 ct |
3037 -227 3048 -207 3053 -181 ct 3011 -174 l 3007 -191 3000 -204 2990 -213 ct |
2980 -222 2967 -226 2953 -226 ct 2931 -226 2913 -218 2899 -202 ct 2886 -187 2879 -162 2879 -128 ct |
2879 -94 2886 -69 2899 -53 ct 2912 -38 2929 -30 2950 -30 ct 2967 -30 2982 -35 2993 -45 ct |
3004 -56 3012 -72 3015 -94 ct p ef |
3098 0 m 3098 -354 l 3141 -354 l 3141 -152 l 3244 -256 l 3300 -256 l |
3202 -161 l 3310 0 l 3257 0 l 3172 -131 l 3141 -102 l 3141 0 l 3098 0 l |
p ef |
3348 -304 m 3348 -354 l 3391 -354 l 3391 -304 l 3348 -304 l p |
3348 0 m 3348 -256 l 3391 -256 l 3391 0 l 3348 0 l p ef |
3458 0 m 3458 -256 l 3497 -256 l 3497 -220 l 3515 -248 3543 -262 3578 -262 ct |
3594 -262 3608 -259 3621 -254 ct 3634 -248 3643 -241 3650 -232 ct 3656 -223 3661 -212 3663 -200 ct |
3665 -192 3666 -178 3666 -158 ct 3666 0 l 3622 0 l 3622 -156 l 3622 -174 3621 -187 3617 -196 ct |
3614 -204 3608 -211 3599 -217 ct 3591 -222 3581 -224 3569 -224 ct 3551 -224 3535 -218 3521 -207 ct |
3508 -195 3501 -173 3501 -140 ct 3501 0 l 3458 0 l p ef |
3725 21 m 3767 28 l 3769 41 3773 50 3782 56 ct 3792 64 3807 68 3826 68 ct |
3846 68 3861 64 3872 56 ct 3883 48 3891 37 3894 22 ct 3897 13 3898 -5 3898 -34 ct |
3879 -11 3855 0 3827 0 ct 3791 0 3764 -13 3745 -38 ct 3726 -64 3716 -94 3716 -130 ct |
3716 -154 3720 -177 3729 -197 ct 3738 -218 3751 -234 3768 -245 ct 3784 -256 3804 -262 3827 -262 ct |
3857 -262 3882 -250 3902 -225 ct 3902 -256 l 3942 -256 l 3942 -35 l 3942 5 3938 33 3930 50 ct |
3921 67 3909 80 3891 90 ct 3873 99 3852 104 3826 104 ct 3795 104 3771 97 3752 83 ct |
3733 70 3724 49 3725 21 ct p |
3761 -133 m 3761 -99 3767 -75 3781 -59 ct 3794 -44 3811 -36 3831 -36 ct 3851 -36 3867 -44 3881 -59 ct |
3894 -74 3901 -98 3901 -131 ct 3901 -163 3894 -186 3880 -202 ct 3866 -218 3850 -226 3830 -226 ct |
3811 -226 3794 -218 3781 -203 ct 3767 -187 3761 -164 3761 -133 ct p ef |
pom |
0.671 0.707 0.003 c 6659 3016 m 2081 3016 l 2081 181 l 11237 181 l 11237 3016 l |
6659 3016 l p ef |
0.003 0.003 0.503 c 6659 3016 m 2081 3016 l 2081 181 l 11237 181 l 11237 3016 l |
6659 3016 l pc |
pum |
3410 987 t |
0.003 0.003 0.003 c 47 1 m 47 -455 l 358 -455 l 358 -378 l 139 -378 l |
139 -270 l 328 -270 l 328 -193 l 139 -193 l 139 1 l 47 1 l p ef |
651 0 m 651 -50 l 639 -32 624 -18 604 -8 ct 584 2 564 7 542 7 ct 520 7 500 2 483 -8 ct |
465 -17 452 -31 445 -49 ct 437 -66 433 -90 433 -121 ct 433 -330 l 520 -330 l |
520 -179 l 520 -132 521 -104 525 -93 ct 528 -83 534 -75 542 -69 ct 551 -62 561 -59 574 -59 ct |
589 -59 603 -63 614 -72 ct 626 -80 634 -90 639 -102 ct 643 -114 645 -144 645 -191 ct |
645 -330 l 732 -330 l 732 0 l 651 0 l p ef |
1124 0 m 1037 0 l 1037 -168 l 1037 -204 1035 -227 1031 -237 ct 1028 -248 1022 -256 1013 -262 ct |
1005 -267 995 -270 983 -270 ct 968 -270 954 -266 942 -258 ct 930 -250 922 -239 918 -225 ct |
913 -211 911 -186 911 -149 ct 911 0 l 824 0 l 824 -330 l 905 -330 l 905 -281 l |
934 -318 970 -337 1013 -337 ct 1033 -337 1050 -334 1066 -327 ct 1082 -320 1094 -311 1102 -300 ct |
1110 -289 1116 -277 1119 -263 ct 1122 -250 1124 -230 1124 -205 ct 1124 0 l p ef |
1501 -233 m 1415 -217 l 1412 -234 1405 -247 1395 -256 ct 1385 -265 1372 -269 1355 -269 ct |
1334 -269 1316 -262 1303 -246 ct 1290 -231 1284 -206 1284 -171 ct 1284 -132 1291 -104 1304 -88 ct |
1317 -72 1334 -64 1357 -64 ct 1373 -64 1387 -69 1397 -78 ct 1408 -88 1415 -104 1419 -127 ct |
1505 -112 l 1496 -73 1479 -43 1454 -23 ct 1429 -3 1395 7 1352 7 ct 1304 7 1266 -8 1237 -39 ct |
1209 -69 1194 -111 1194 -165 ct 1194 -219 1209 -262 1237 -292 ct 1266 -322 1305 -338 1354 -338 ct |
1394 -338 1426 -329 1450 -312 ct 1473 -294 1490 -268 1501 -233 ct p ef |
1717 -330 m 1717 -260 l 1657 -260 l 1657 -128 l 1657 -101 1658 -85 1659 -81 ct |
1660 -76 1662 -73 1667 -70 ct 1671 -67 1675 -65 1681 -65 ct 1689 -65 1701 -68 1716 -74 ct |
1724 -6 l 1703 3 1681 7 1655 7 ct 1639 7 1625 4 1612 -1 ct 1600 -6 1591 -13 1585 -21 ct |
1579 -30 1575 -41 1572 -55 ct 1571 -66 1570 -86 1570 -117 ct 1570 -260 l 1530 -260 l |
1530 -330 l 1570 -330 l 1570 -395 l 1657 -446 l 1657 -330 l 1717 -330 l |
p ef |
1777 -374 m 1777 -455 l 1864 -455 l 1864 -374 l 1777 -374 l p |
1777 0 m 1777 -330 l 1864 -330 l 1864 0 l 1777 0 l p ef |
1934 -170 m 1934 -199 1942 -227 1956 -254 ct 1970 -281 1990 -301 2016 -316 ct |
2043 -330 2072 -337 2104 -337 ct 2154 -337 2195 -321 2227 -289 ct 2258 -256 2274 -215 2274 -166 ct |
2274 -116 2258 -75 2226 -42 ct 2194 -9 2153 7 2105 7 ct 2074 7 2046 0 2018 -13 ct |
1991 -27 1970 -47 1956 -73 ct 1942 -100 1934 -132 1934 -170 ct p |
2024 -165 m 2024 -132 2031 -107 2047 -90 ct 2062 -73 2082 -64 2104 -64 ct 2127 -64 2146 -73 2162 -90 ct |
2177 -107 2185 -133 2185 -166 ct 2185 -198 2177 -223 2162 -240 ct 2146 -257 2127 -266 2104 -266 ct |
2082 -266 2062 -257 2047 -240 ct 2031 -223 2024 -198 2024 -165 ct p ef |
2644 0 m 2557 0 l 2557 -168 l 2557 -204 2555 -227 2551 -237 ct 2548 -248 2542 -256 2533 -262 ct |
2525 -267 2515 -270 2503 -270 ct 2488 -270 2474 -266 2462 -258 ct 2450 -250 2442 -239 2438 -225 ct |
2433 -211 2431 -186 2431 -149 ct 2431 0 l 2344 0 l 2344 -330 l 2425 -330 l |
2425 -281 l 2454 -318 2490 -337 2533 -337 ct 2553 -337 2570 -334 2586 -327 ct |
2602 -320 2614 -311 2622 -300 ct 2630 -289 2636 -277 2639 -263 ct 2642 -250 2644 -230 2644 -205 ct |
2644 0 l p ef |
2799 -230 m 2720 -244 l 2729 -276 2744 -299 2766 -315 ct 2787 -330 2819 -338 2862 -338 ct |
2901 -338 2930 -333 2949 -324 ct 2968 -315 2981 -303 2989 -289 ct 2997 -275 3001 -249 3001 -211 ct |
3000 -109 l 3000 -80 3001 -58 3004 -45 ct 3007 -31 3012 -16 3020 0 ct 2934 0 l |
2931 -6 2929 -15 2925 -26 ct 2924 -31 2923 -35 2922 -36 ct 2907 -22 2891 -11 2874 -4 ct |
2857 3 2839 7 2820 7 ct 2786 7 2759 -2 2740 -21 ct 2720 -39 2711 -62 2711 -91 ct |
2711 -109 2715 -126 2724 -140 ct 2733 -155 2745 -166 2761 -174 ct 2777 -182 2800 -188 2831 -194 ct |
2871 -202 2900 -209 2915 -216 ct 2915 -224 l 2915 -241 2911 -253 2903 -260 ct |
2895 -267 2879 -271 2856 -271 ct 2841 -271 2828 -268 2820 -262 ct 2811 -256 2804 -245 2799 -230 ct |
p |
2915 -159 m 2904 -155 2886 -151 2862 -145 ct 2838 -140 2822 -135 2815 -130 ct |
2803 -122 2798 -112 2798 -99 ct 2798 -87 2802 -77 2811 -68 ct 2821 -59 2832 -54 2846 -54 ct |
2862 -54 2877 -60 2891 -70 ct 2902 -78 2909 -87 2912 -99 ct 2914 -106 2915 -121 2915 -141 ct |
2915 -159 l p ef |
3086 0 m 3086 -455 l 3173 -455 l 3173 0 l 3086 0 l p ef |
3438 -330 m 3519 -330 l 3519 -281 l 3530 -298 3544 -311 3562 -322 ct 3580 -332 3600 -337 3622 -337 ct |
3660 -337 3693 -322 3719 -292 ct 3746 -262 3759 -220 3759 -167 ct 3759 -112 3746 -69 3719 -39 ct |
3692 -8 3660 7 3621 7 ct 3603 7 3587 3 3572 -4 ct 3557 -11 3542 -24 3525 -41 ct |
3525 125 l 3438 125 l 3438 -330 l p |
3524 -171 m 3524 -134 3532 -106 3546 -89 ct 3561 -71 3579 -62 3600 -62 ct 3620 -62 3637 -70 3650 -87 ct |
3664 -103 3671 -129 3671 -166 ct 3671 -201 3664 -226 3650 -243 ct 3636 -260 3619 -268 3598 -268 ct |
3577 -268 3559 -260 3545 -244 ct 3531 -227 3524 -203 3524 -171 ct p ef |
3914 0 m 3827 0 l 3827 -330 l 3908 -330 l 3908 -283 l 3922 -305 3934 -319 3945 -326 ct |
3956 -333 3969 -337 3983 -337 ct 4003 -337 4022 -332 4040 -321 ct 4013 -245 l |
3999 -254 3985 -259 3972 -259 ct 3960 -259 3950 -255 3941 -249 ct 3933 -242 3926 -230 3921 -212 ct |
3916 -195 3914 -158 3914 -102 ct 3914 0 l p ef |
4055 -170 m 4055 -199 4063 -227 4077 -254 ct 4091 -281 4111 -301 4137 -316 ct |
4164 -330 4193 -337 4225 -337 ct 4275 -337 4316 -321 4348 -289 ct 4379 -256 4395 -215 4395 -166 ct |
4395 -116 4379 -75 4347 -42 ct 4315 -9 4274 7 4226 7 ct 4195 7 4167 0 4139 -13 ct |
4112 -27 4091 -47 4077 -73 ct 4063 -100 4055 -132 4055 -170 ct p |
4145 -165 m 4145 -132 4152 -107 4168 -90 ct 4183 -73 4203 -64 4225 -64 ct 4248 -64 4267 -73 4283 -90 ct |
4298 -107 4306 -133 4306 -166 ct 4306 -198 4298 -223 4283 -240 ct 4267 -257 4248 -266 4225 -266 ct |
4203 -266 4183 -257 4168 -240 ct 4152 -223 4145 -198 4145 -165 ct p ef |
4463 -330 m 4544 -330 l 4544 -281 l 4555 -298 4569 -311 4587 -322 ct 4605 -332 4625 -337 4647 -337 ct |
4685 -337 4718 -322 4744 -292 ct 4771 -262 4784 -220 4784 -167 ct 4784 -112 4771 -69 4744 -39 ct |
4717 -8 4685 7 4646 7 ct 4628 7 4612 3 4597 -4 ct 4582 -11 4567 -24 4550 -41 ct |
4550 125 l 4463 125 l 4463 -330 l p |
4549 -171 m 4549 -134 4557 -106 4571 -89 ct 4586 -71 4604 -62 4625 -62 ct 4645 -62 4662 -70 4675 -87 ct |
4689 -103 4696 -129 4696 -166 ct 4696 -201 4689 -226 4675 -243 ct 4661 -260 4644 -268 4623 -268 ct |
4602 -268 4584 -260 4570 -244 ct 4556 -227 4549 -203 4549 -171 ct p ef |
5045 -105 m 5132 -91 l 5121 -59 5103 -35 5079 -18 ct 5055 -1 5025 7 4989 7 ct |
4932 7 4889 -12 4862 -49 ct 4840 -79 4829 -117 4829 -163 ct 4829 -218 4843 -260 4872 -291 ct |
4900 -322 4937 -338 4980 -338 ct 5029 -338 5068 -322 5096 -289 ct 5124 -257 5138 -207 5137 -140 ct |
4918 -140 l 4919 -114 4926 -94 4940 -80 ct 4953 -65 4970 -58 4990 -58 ct 5003 -58 5015 -62 5024 -69 ct |
5033 -77 5041 -89 5045 -105 ct p |
5050 -193 m 5050 -219 5043 -238 5031 -251 ct 5018 -264 5003 -271 4985 -271 ct |
4966 -271 4951 -264 4938 -250 ct 4926 -236 4920 -217 4920 -193 ct 5050 -193 l |
p ef |
5289 0 m 5202 0 l 5202 -330 l 5283 -330 l 5283 -283 l 5297 -305 5309 -319 5320 -326 ct |
5331 -333 5344 -337 5358 -337 ct 5378 -337 5397 -332 5415 -321 ct 5388 -245 l |
5374 -254 5360 -259 5347 -259 ct 5335 -259 5325 -255 5316 -249 ct 5308 -242 5301 -230 5296 -212 ct |
5291 -195 5289 -158 5289 -102 ct 5289 0 l p ef |
5603 -330 m 5603 -260 l 5543 -260 l 5543 -128 l 5543 -101 5544 -85 5545 -81 ct |
5546 -76 5548 -73 5553 -70 ct 5557 -67 5561 -65 5567 -65 ct 5575 -65 5587 -68 5602 -74 ct |
5610 -6 l 5589 3 5567 7 5541 7 ct 5525 7 5511 4 5498 -1 ct 5486 -6 5477 -13 5471 -21 ct |
5465 -30 5461 -41 5458 -55 ct 5457 -66 5456 -86 5456 -117 ct 5456 -260 l 5416 -260 l |
5416 -330 l 5456 -330 l 5456 -395 l 5543 -446 l 5543 -330 l 5603 -330 l |
p ef |
5664 -374 m 5664 -455 l 5751 -455 l 5751 -374 l 5664 -374 l p |
5664 0 m 5664 -330 l 5751 -330 l 5751 0 l 5664 0 l p ef |
6031 -105 m 6118 -91 l 6107 -59 6089 -35 6065 -18 ct 6041 -1 6011 7 5975 7 ct |
5918 7 5875 -12 5848 -49 ct 5826 -79 5815 -117 5815 -163 ct 5815 -218 5829 -260 5858 -291 ct |
5886 -322 5923 -338 5966 -338 ct 6015 -338 6054 -322 6082 -289 ct 6110 -257 6124 -207 6123 -140 ct |
5904 -140 l 5905 -114 5912 -94 5926 -80 ct 5939 -65 5956 -58 5976 -58 ct 5989 -58 6001 -62 6010 -69 ct |
6019 -77 6027 -89 6031 -105 ct p |
6036 -193 m 6036 -219 6029 -238 6017 -251 ct 6004 -264 5989 -271 5971 -271 ct |
5952 -271 5937 -264 5924 -250 ct 5912 -236 5906 -217 5906 -193 ct 6036 -193 l |
p ef |
6162 -95 m 6249 -108 l 6253 -91 6261 -78 6272 -69 ct 6283 -60 6299 -56 6320 -56 ct |
6342 -56 6359 -60 6371 -68 ct 6378 -74 6382 -82 6382 -92 ct 6382 -98 6380 -104 6376 -108 ct |
6371 -112 6362 -116 6347 -120 ct 6276 -135 6232 -149 6213 -162 ct 6187 -180 6174 -205 6174 -236 ct |
6174 -265 6185 -289 6208 -308 ct 6230 -328 6265 -338 6313 -338 ct 6358 -338 6391 -330 6413 -316 ct |
6435 -301 6450 -279 6458 -250 ct 6376 -235 l 6373 -248 6366 -258 6356 -265 ct |
6346 -272 6332 -275 6314 -275 ct 6291 -275 6275 -272 6265 -265 ct 6258 -261 6255 -255 6255 -248 ct |
6255 -241 6258 -236 6264 -232 ct 6271 -226 6299 -218 6345 -207 ct 6391 -197 6424 -184 6442 -168 ct |
6460 -153 6469 -131 6469 -104 ct 6469 -73 6457 -47 6432 -26 ct 6406 -4 6369 7 6320 7 ct |
6275 7 6239 -2 6213 -20 ct 6187 -39 6170 -63 6162 -95 ct p ef |
pom |
pum |
3154 1571 t |
104 0 m 6 -256 l 52 -256 l 107 -103 l 113 -86 119 -69 124 -51 ct 127 -65 133 -81 140 -100 ct |
197 -256 l 241 -256 l 144 0 l 104 0 l p ef |
458 -82 m 503 -77 l 496 -51 483 -30 463 -16 ct 444 -1 420 6 390 6 ct 353 6 323 -6 301 -29 ct |
279 -52 268 -84 268 -126 ct 268 -169 279 -202 301 -226 ct 324 -250 352 -262 388 -262 ct |
422 -262 450 -250 472 -227 ct 493 -204 504 -171 504 -129 ct 504 -126 504 -122 504 -117 ct |
313 -117 l 315 -89 323 -67 337 -52 ct 351 -37 369 -30 390 -30 ct 406 -30 420 -34 431 -42 ct |
442 -51 451 -64 458 -82 ct p |
315 -153 m 458 -153 l 456 -174 451 -190 442 -201 ct 428 -218 410 -226 388 -226 ct |
368 -226 352 -219 338 -206 ct 324 -193 317 -175 315 -153 ct p ef |
557 0 m 557 -256 l 596 -256 l 596 -217 l 606 -236 615 -248 624 -253 ct |
632 -259 642 -262 652 -262 ct 666 -262 681 -257 696 -248 ct 681 -208 l 671 -214 660 -217 649 -217 ct |
640 -217 631 -214 624 -209 ct 616 -203 611 -195 608 -185 ct 603 -169 601 -152 601 -134 ct |
601 0 l 557 0 l p ef |
723 -304 m 723 -354 l 766 -354 l 766 -304 l 723 -304 l p |
723 0 m 723 -256 l 766 -256 l 766 0 l 723 0 l p ef |
843 1 m 843 -222 l 805 -222 l 805 -256 l 843 -256 l 843 -283 l 843 -300 844 -313 848 -321 ct |
852 -332 859 -342 870 -349 ct 880 -356 895 -359 914 -359 ct 926 -359 940 -358 954 -355 ct |
948 -317 l 939 -318 930 -319 922 -319 ct 909 -319 900 -316 894 -311 ct 889 -305 886 -295 886 -279 ct |
886 -256 l 936 -256 l 936 -222 l 886 -222 l 886 1 l 843 1 l p ef |
971 99 m 966 58 l 975 60 984 62 991 62 ct 1000 62 1008 60 1014 57 ct 1020 54 1024 49 1028 43 ct |
1031 39 1035 28 1041 11 ct 1042 9 1043 5 1045 1 ct 948 -256 l 995 -256 l 1048 -108 l |
1055 -89 1061 -69 1067 -48 ct 1072 -68 1078 -88 1084 -107 ct 1139 -256 l 1183 -256 l |
1085 4 l 1075 33 1067 52 1061 63 ct 1053 77 1044 87 1034 94 ct 1024 101 1012 104 999 104 ct |
990 104 981 102 971 99 ct p ef |
1223 -304 m 1223 -354 l 1266 -354 l 1266 -304 l 1223 -304 l p |
1223 0 m 1223 -256 l 1266 -256 l 1266 0 l 1223 0 l p ef |
1333 0 m 1333 -256 l 1372 -256 l 1372 -220 l 1390 -248 1418 -262 1453 -262 ct |
1469 -262 1483 -259 1496 -254 ct 1509 -248 1518 -241 1525 -232 ct 1531 -223 1536 -212 1538 -200 ct |
1540 -192 1541 -178 1541 -158 ct 1541 0 l 1497 0 l 1497 -156 l 1497 -174 1496 -187 1492 -196 ct |
1489 -204 1483 -211 1474 -217 ct 1466 -222 1456 -224 1444 -224 ct 1426 -224 1410 -218 1396 -207 ct |
1383 -195 1376 -173 1376 -140 ct 1376 0 l 1333 0 l p ef |
1600 21 m 1642 28 l 1644 41 1648 50 1657 56 ct 1667 64 1682 68 1701 68 ct |
1721 68 1736 64 1747 56 ct 1758 48 1766 37 1769 22 ct 1772 13 1773 -5 1773 -34 ct |
1754 -11 1730 0 1702 0 ct 1666 0 1639 -13 1620 -38 ct 1601 -64 1591 -94 1591 -130 ct |
1591 -154 1595 -177 1604 -197 ct 1613 -218 1626 -234 1643 -245 ct 1659 -256 1679 -262 1702 -262 ct |
1732 -262 1757 -250 1777 -225 ct 1777 -256 l 1817 -256 l 1817 -35 l 1817 5 1813 33 1805 50 ct |
1796 67 1784 80 1766 90 ct 1748 99 1727 104 1701 104 ct 1670 104 1646 97 1627 83 ct |
1608 70 1599 49 1600 21 ct p |
1636 -133 m 1636 -99 1642 -75 1656 -59 ct 1669 -44 1686 -36 1706 -36 ct 1726 -36 1742 -44 1756 -59 ct |
1769 -74 1776 -98 1776 -131 ct 1776 -163 1769 -186 1755 -202 ct 1741 -218 1725 -226 1705 -226 ct |
1686 -226 1669 -218 1656 -203 ct 1642 -187 1636 -164 1636 -133 ct p ef |
2190 -94 m 2232 -88 l 2228 -59 2216 -36 2197 -19 ct 2177 -2 2154 6 2126 6 ct |
2091 6 2063 -5 2041 -28 ct 2020 -51 2009 -84 2009 -127 ct 2009 -155 2014 -179 2023 -199 ct |
2032 -220 2046 -236 2065 -246 ct 2084 -257 2104 -262 2126 -262 ct 2154 -262 2177 -255 2194 -241 ct |
2212 -227 2223 -207 2228 -181 ct 2186 -174 l 2182 -191 2175 -204 2165 -213 ct |
2155 -222 2142 -226 2128 -226 ct 2106 -226 2088 -218 2074 -202 ct 2061 -187 2054 -162 2054 -128 ct |
2054 -94 2061 -69 2074 -53 ct 2087 -38 2104 -30 2125 -30 ct 2142 -30 2157 -35 2168 -45 ct |
2179 -56 2187 -72 2190 -94 ct p ef |
2255 -128 m 2255 -175 2269 -211 2295 -233 ct 2317 -252 2344 -262 2376 -262 ct |
2411 -262 2440 -250 2462 -227 ct 2484 -204 2495 -172 2495 -132 ct 2495 -99 2490 -73 2481 -54 ct |
2471 -35 2456 -20 2437 -10 ct 2419 1 2398 6 2376 6 ct 2340 6 2311 -6 2289 -29 ct |
2266 -52 2255 -85 2255 -128 ct p |
2300 -128 m 2300 -95 2307 -71 2322 -54 ct 2336 -38 2354 -30 2376 -30 ct 2397 -30 2415 -38 2429 -54 ct |
2444 -71 2451 -96 2451 -129 ct 2451 -161 2444 -185 2429 -201 ct 2415 -218 2397 -226 2376 -226 ct |
2354 -226 2336 -218 2322 -202 ct 2307 -185 2300 -161 2300 -128 ct p ef |
2548 0 m 2548 -256 l 2586 -256 l 2586 -220 l 2594 -233 2605 -243 2618 -251 ct |
2632 -258 2647 -262 2664 -262 ct 2683 -262 2699 -258 2711 -250 ct 2723 -242 2731 -231 2736 -217 ct |
2757 -247 2783 -262 2816 -262 ct 2841 -262 2860 -255 2874 -241 ct 2888 -227 2895 -205 2895 -176 ct |
2895 0 l 2851 0 l 2851 -161 l 2851 -179 2850 -191 2847 -199 ct 2844 -207 2839 -213 2832 -217 ct |
2825 -222 2816 -224 2806 -224 ct 2788 -224 2773 -218 2761 -206 ct 2749 -194 2743 -175 2743 -149 ct |
2743 0 l 2700 0 l 2700 -166 l 2700 -186 2696 -200 2689 -210 ct 2682 -220 2671 -224 2654 -224 ct |
2642 -224 2631 -221 2621 -215 ct 2610 -208 2603 -199 2598 -186 ct 2593 -174 2591 -156 2591 -133 ct |
2591 0 l 2548 0 l p ef |
2958 98 m 2958 -256 l 2997 -256 l 2997 -223 l 3006 -236 3017 -246 3029 -252 ct |
3040 -259 3055 -262 3071 -262 ct 3093 -262 3113 -256 3129 -245 ct 3146 -234 3159 -218 3167 -197 ct |
3176 -177 3180 -155 3180 -130 ct 3180 -104 3175 -80 3166 -59 ct 3156 -38 3143 -22 3125 -11 ct |
3107 0 3088 6 3068 6 ct 3054 6 3041 3 3029 -3 ct 3018 -10 3008 -17 3001 -27 ct |
3001 98 l 2958 98 l p |
2997 -127 m 2997 -94 3004 -69 3017 -54 ct 3030 -38 3046 -30 3065 -30 ct 3085 -30 3101 -38 3115 -54 ct |
3129 -71 3136 -96 3136 -130 ct 3136 -163 3129 -187 3115 -204 ct 3102 -220 3086 -228 3067 -228 ct |
3049 -228 3032 -219 3018 -202 ct 3004 -185 2997 -160 2997 -127 ct p ef |
3233 -304 m 3233 -354 l 3276 -354 l 3276 -304 l 3233 -304 l p |
3233 0 m 3233 -256 l 3276 -256 l 3276 0 l 3233 0 l p ef |
3342 0 m 3342 -354 l 3385 -354 l 3385 0 l 3342 0 l p ef |
3629 -82 m 3674 -77 l 3667 -51 3654 -30 3634 -16 ct 3615 -1 3591 6 3561 6 ct |
3524 6 3494 -6 3472 -29 ct 3450 -52 3439 -84 3439 -126 ct 3439 -169 3450 -202 3472 -226 ct |
3495 -250 3523 -262 3559 -262 ct 3593 -262 3621 -250 3643 -227 ct 3664 -204 3675 -171 3675 -129 ct |
3675 -126 3675 -122 3675 -117 ct 3484 -117 l 3486 -89 3494 -67 3508 -52 ct |
3522 -37 3540 -30 3561 -30 ct 3577 -30 3591 -34 3602 -42 ct 3613 -51 3622 -64 3629 -82 ct |
p |
3486 -153 m 3629 -153 l 3627 -174 3622 -190 3613 -201 ct 3599 -218 3581 -226 3559 -226 ct |
3539 -226 3523 -219 3509 -206 ct 3495 -193 3488 -175 3486 -153 ct p ef |
3728 0 m 3728 -256 l 3767 -256 l 3767 -217 l 3777 -236 3786 -248 3795 -253 ct |
3803 -259 3813 -262 3823 -262 ct 3837 -262 3852 -257 3867 -248 ct 3852 -208 l |
3842 -214 3831 -217 3820 -217 ct 3811 -217 3802 -214 3795 -209 ct 3787 -203 3782 -195 3779 -185 ct |
3774 -169 3772 -152 3772 -134 ct 3772 0 l 3728 0 l p ef |
4117 104 m 4093 74 4072 38 4056 -2 ct 4039 -43 4031 -85 4031 -128 ct 4031 -166 4037 -203 4049 -238 ct |
4064 -279 4086 -319 4117 -360 ct 4148 -360 l 4128 -326 4115 -302 4109 -288 ct |
4099 -266 4092 -243 4086 -219 ct 4079 -188 4076 -158 4076 -128 ct 4076 -50 4100 27 4148 104 ct |
4117 104 l p ef |
pom |
pum |
7320 1571 t |
202 -140 m 211 -180 l 366 -180 l 336 -36 l 316 -23 294 -13 269 -6 ct |
244 2 220 6 195 6 ct 144 6 105 -10 80 -41 ct 59 -67 48 -101 48 -142 ct 48 -184 57 -223 76 -258 ct |
95 -293 118 -318 147 -335 ct 176 -352 207 -360 242 -360 ct 267 -360 290 -355 310 -346 ct |
330 -337 345 -325 356 -310 ct 366 -295 374 -275 378 -251 ct 332 -246 l 327 -270 317 -288 301 -301 ct |
285 -314 265 -321 241 -321 ct 215 -321 191 -314 169 -300 ct 147 -286 129 -265 116 -237 ct |
103 -209 96 -177 96 -141 ct 96 -105 105 -79 122 -60 ct 140 -42 164 -33 195 -33 ct |
226 -33 259 -43 294 -64 ct 310 -140 l 202 -140 l p ef |
683 -125 m 730 -118 l 715 -77 693 -46 665 -25 ct 637 -4 605 6 570 6 ct 527 6 493 -7 468 -33 ct |
442 -60 430 -97 430 -146 ct 430 -210 449 -263 487 -304 ct 521 -341 564 -360 614 -360 ct |
652 -360 682 -350 705 -330 ct 729 -310 742 -283 746 -249 ct 702 -245 l 697 -270 687 -289 673 -302 ct |
658 -315 640 -321 617 -321 ct 573 -321 538 -302 512 -263 ct 488 -230 477 -191 477 -145 ct |
477 -109 486 -81 504 -62 ct 522 -43 545 -33 573 -33 ct 598 -33 620 -41 640 -57 ct |
660 -73 674 -95 683 -125 ct p ef |
1043 -125 m 1090 -118 l 1075 -77 1053 -46 1025 -25 ct 997 -4 965 6 930 6 ct |
887 6 853 -7 828 -33 ct 802 -60 790 -97 790 -146 ct 790 -210 809 -263 847 -304 ct |
881 -341 924 -360 974 -360 ct 1012 -360 1042 -350 1065 -330 ct 1089 -310 1102 -283 1106 -249 ct |
1062 -245 l 1057 -270 1047 -289 1033 -302 ct 1018 -315 1000 -321 977 -321 ct |
933 -321 898 -302 872 -263 ct 848 -230 837 -191 837 -145 ct 837 -109 846 -81 864 -62 ct |
882 -43 905 -33 933 -33 ct 958 -33 980 -41 1000 -57 ct 1020 -73 1034 -95 1043 -125 ct |
p ef |
pom |
pum |
8425 1571 t |
44 0 m 44 -49 l 93 -49 l 93 0 l 93 18 90 33 84 44 ct 77 55 67 64 53 70 ct |
41 51 l 50 47 57 41 61 34 ct 66 26 68 15 69 0 ct 44 0 l p ef |
pom |
pum |
8704 1571 t |
298 -125 m 345 -118 l 330 -77 308 -46 280 -25 ct 252 -4 220 6 185 6 ct 142 6 108 -7 83 -33 ct |
57 -60 45 -97 45 -146 ct 45 -210 64 -263 102 -304 ct 136 -341 179 -360 229 -360 ct |
267 -360 297 -350 320 -330 ct 344 -310 357 -283 361 -249 ct 317 -245 l 312 -270 302 -289 288 -302 ct |
273 -315 255 -321 232 -321 ct 188 -321 153 -302 127 -263 ct 103 -230 92 -191 92 -145 ct |
92 -109 101 -81 119 -62 ct 137 -43 160 -33 188 -33 ct 213 -33 235 -41 255 -57 ct |
275 -73 289 -95 298 -125 ct p ef |
373 0 m 447 -354 l 491 -354 l 417 0 l 373 0 l p ef |
659 -32 m 644 -19 629 -9 615 -3 ct 601 3 587 6 571 6 ct 547 6 528 -1 513 -15 ct |
499 -29 492 -47 492 -69 ct 492 -84 495 -96 501 -107 ct 508 -119 517 -128 527 -134 ct |
538 -141 551 -146 567 -149 ct 577 -151 595 -152 623 -152 ct 650 -152 670 -154 682 -159 ct |
685 -171 687 -181 687 -189 ct 687 -200 683 -208 676 -214 ct 666 -222 651 -226 631 -226 ct |
613 -226 598 -222 586 -214 ct 575 -206 566 -194 561 -179 ct 517 -183 l 526 -208 540 -228 560 -241 ct |
579 -255 604 -262 634 -262 ct 665 -262 690 -254 709 -239 ct 723 -228 730 -213 730 -195 ct |
730 -181 728 -166 724 -148 ct 710 -84 l 705 -64 703 -47 703 -35 ct 703 -26 705 -15 708 0 ct |
664 0 l 662 -8 660 -19 659 -32 ct p |
675 -130 m 669 -127 663 -125 656 -124 ct 649 -123 637 -121 621 -120 ct 595 -118 577 -115 567 -111 ct |
556 -108 548 -102 543 -95 ct 538 -87 535 -79 535 -70 ct 535 -58 539 -47 548 -40 ct |
556 -32 568 -28 584 -28 ct 598 -28 612 -32 626 -39 ct 639 -47 649 -58 657 -71 ct |
665 -85 671 -104 675 -130 ct p ef |
761 0 m 815 -256 l 855 -256 l 845 -212 l 862 -229 878 -242 893 -250 ct |
908 -258 924 -262 939 -262 ct 960 -262 976 -256 988 -245 ct 1000 -234 1006 -219 1006 -200 ct |
1006 -190 1004 -176 999 -155 ct 967 0 l 923 0 l 957 -162 l 961 -178 962 -190 962 -197 ct |
962 -206 959 -213 954 -218 ct 948 -223 939 -226 928 -226 ct 906 -226 886 -218 868 -202 ct |
851 -186 838 -158 830 -119 ct 805 0 l 761 0 l p ef |
1034 24 m 1078 28 l 1078 38 1079 45 1082 50 ct 1084 55 1089 59 1095 62 ct |
1103 65 1113 67 1125 67 ct 1152 67 1171 60 1182 47 ct 1190 37 1197 18 1203 -13 ct |
1208 -34 l 1185 -11 1161 1 1135 1 ct 1109 1 1088 -9 1070 -28 ct 1053 -47 1044 -74 1044 -109 ct |
1044 -138 1051 -164 1065 -188 ct 1079 -212 1095 -230 1114 -243 ct 1133 -255 1152 -261 1172 -261 ct |
1206 -261 1232 -245 1250 -213 ct 1259 -255 l 1299 -255 l 1247 -8 l 1242 19 1234 40 1225 55 ct |
1216 70 1203 82 1187 90 ct 1170 99 1152 103 1130 103 ct 1110 103 1092 100 1077 95 ct |
1062 90 1051 82 1044 72 ct 1036 62 1033 50 1033 37 ct 1033 33 1033 28 1034 24 ct |
p |
1089 -113 m 1089 -95 1090 -82 1094 -73 ct 1098 -61 1105 -51 1114 -45 ct 1123 -38 1133 -35 1144 -35 ct |
1158 -35 1173 -40 1187 -50 ct 1201 -60 1212 -76 1221 -97 ct 1230 -118 1234 -138 1234 -157 ct |
1234 -178 1228 -195 1217 -207 ct 1205 -220 1191 -226 1173 -226 ct 1163 -226 1153 -223 1143 -217 ct |
1133 -212 1123 -203 1115 -191 ct 1106 -180 1100 -166 1095 -150 ct 1091 -133 1089 -121 1089 -113 ct |
p ef |
pom |
pum |
9999 1571 t |
61 104 m 30 104 l 78 27 102 -50 102 -128 ct 102 -158 99 -188 92 -218 ct 86 -242 79 -265 69 -287 ct |
62 -302 50 -326 30 -360 ct 61 -360 l 91 -319 114 -279 128 -238 ct 140 -203 147 -166 147 -128 ct |
147 -85 138 -43 122 -2 ct 105 38 85 74 61 104 ct p ef |
pom |
pum |
3922 2126 t |
15 -76 m 58 -83 l 61 -66 67 -53 78 -43 ct 89 -34 105 -30 124 -30 ct 144 -30 159 -34 169 -42 ct |
179 -50 183 -60 183 -70 ct 183 -80 179 -88 171 -94 ct 165 -97 150 -102 126 -108 ct |
94 -116 72 -123 60 -129 ct 48 -135 38 -143 32 -154 ct 26 -164 22 -175 22 -188 ct |
22 -199 25 -210 30 -220 ct 36 -229 43 -237 52 -244 ct 58 -249 68 -253 79 -257 ct |
91 -260 103 -262 117 -262 ct 137 -262 154 -259 170 -253 ct 185 -247 196 -239 203 -230 ct |
211 -220 216 -206 218 -190 ct 176 -184 l 174 -197 168 -208 159 -215 ct 150 -222 137 -226 120 -226 ct |
100 -226 86 -223 77 -216 ct 69 -210 64 -202 64 -193 ct 64 -187 66 -182 70 -178 ct |
73 -173 79 -169 86 -166 ct 91 -165 103 -161 125 -155 ct 155 -147 177 -140 189 -135 ct |
201 -130 211 -122 218 -112 ct 224 -102 228 -90 228 -75 ct 228 -61 224 -47 215 -34 ct |
207 -21 195 -11 179 -4 ct 163 2 145 6 125 6 ct 91 6 66 -1 49 -15 ct 31 -29 20 -49 15 -76 ct |
p ef |
377 -39 m 384 -1 l 371 2 360 3 351 3 ct 335 3 323 0 314 -4 ct 305 -9 299 -16 296 -24 ct |
292 -32 291 -49 291 -75 ct 291 -223 l 259 -223 l 259 -257 l 291 -257 l |
291 -320 l 334 -346 l 334 -257 l 377 -257 l 377 -223 l 334 -223 l |
334 -73 l 334 -61 334 -53 336 -49 ct 338 -46 340 -43 343 -41 ct 347 -39 352 -38 358 -38 ct |
363 -38 369 -38 377 -39 ct p ef |
589 -31 m 573 -18 557 -8 542 -2 ct 527 3 511 6 494 6 ct 466 6 445 -1 430 -15 ct |
414 -28 407 -46 407 -67 ct 407 -80 410 -91 415 -102 ct 421 -112 429 -120 438 -127 ct |
447 -133 458 -138 469 -141 ct 478 -143 490 -145 508 -148 ct 543 -152 569 -157 585 -163 ct |
585 -168 585 -172 585 -174 ct 585 -192 581 -204 573 -211 ct 562 -221 545 -226 524 -226 ct |
503 -226 488 -222 478 -215 ct 469 -208 461 -195 457 -177 ct 414 -183 l 418 -201 425 -216 433 -227 ct |
442 -238 455 -247 472 -253 ct 488 -259 508 -262 530 -262 ct 552 -262 570 -259 583 -254 ct |
597 -249 607 -243 613 -235 ct 620 -227 624 -217 627 -205 ct 628 -198 629 -184 629 -165 ct |
629 -107 l 629 -67 630 -41 632 -31 ct 634 -20 637 -10 643 0 ct 597 0 l 593 -9 590 -19 589 -31 ct |
p |
585 -128 m 569 -122 546 -117 514 -112 ct 496 -109 484 -107 476 -103 ct 469 -100 463 -95 459 -89 ct |
455 -83 453 -76 453 -69 ct 453 -57 458 -47 466 -40 ct 475 -32 488 -28 505 -28 ct |
522 -28 536 -32 549 -39 ct 562 -46 572 -56 578 -69 ct 583 -79 585 -93 585 -113 ct |
585 -128 l p ef |
792 -39 m 799 -1 l 786 2 775 3 766 3 ct 750 3 738 0 729 -4 ct 720 -9 714 -16 711 -24 ct |
707 -32 706 -49 706 -75 ct 706 -223 l 674 -223 l 674 -257 l 706 -257 l |
706 -320 l 749 -346 l 749 -257 l 792 -257 l 792 -223 l 749 -223 l |
749 -73 l 749 -61 749 -53 751 -49 ct 753 -46 755 -43 758 -41 ct 762 -39 767 -38 773 -38 ct |
778 -38 784 -38 792 -39 ct p ef |
837 -304 m 837 -354 l 880 -354 l 880 -304 l 837 -304 l p |
837 0 m 837 -256 l 880 -256 l 880 0 l 837 0 l p ef |
1114 -94 m 1156 -88 l 1152 -59 1140 -36 1121 -19 ct 1101 -2 1078 6 1050 6 ct |
1015 6 987 -5 965 -28 ct 944 -51 933 -84 933 -127 ct 933 -155 938 -179 947 -199 ct |
956 -220 970 -236 989 -246 ct 1008 -257 1028 -262 1050 -262 ct 1078 -262 1101 -255 1118 -241 ct |
1136 -227 1147 -207 1152 -181 ct 1110 -174 l 1106 -191 1099 -204 1089 -213 ct |
1079 -222 1066 -226 1052 -226 ct 1030 -226 1012 -218 998 -202 ct 985 -187 978 -162 978 -128 ct |
978 -94 985 -69 998 -53 ct 1011 -38 1028 -30 1049 -30 ct 1066 -30 1081 -35 1092 -45 ct |
1103 -56 1111 -72 1114 -94 ct p ef |
1504 -31 m 1488 -18 1472 -8 1457 -2 ct 1442 3 1426 6 1409 6 ct 1381 6 1360 -1 1345 -15 ct |
1329 -28 1322 -46 1322 -67 ct 1322 -80 1325 -91 1330 -102 ct 1336 -112 1344 -120 1353 -127 ct |
1362 -133 1373 -138 1384 -141 ct 1393 -143 1405 -145 1423 -148 ct 1458 -152 1484 -157 1500 -163 ct |
1500 -168 1500 -172 1500 -174 ct 1500 -192 1496 -204 1488 -211 ct 1477 -221 1460 -226 1439 -226 ct |
1418 -226 1403 -222 1393 -215 ct 1384 -208 1376 -195 1372 -177 ct 1329 -183 l |
1333 -201 1340 -216 1348 -227 ct 1357 -238 1370 -247 1387 -253 ct 1403 -259 1423 -262 1445 -262 ct |
1467 -262 1485 -259 1498 -254 ct 1512 -249 1522 -243 1528 -235 ct 1535 -227 1539 -217 1542 -205 ct |
1543 -198 1544 -184 1544 -165 ct 1544 -107 l 1544 -67 1545 -41 1547 -31 ct |
1549 -20 1552 -10 1558 0 ct 1512 0 l 1508 -9 1505 -19 1504 -31 ct p |
1500 -128 m 1484 -122 1461 -117 1429 -112 ct 1411 -109 1399 -107 1391 -103 ct |
1384 -100 1378 -95 1374 -89 ct 1370 -83 1368 -76 1368 -69 ct 1368 -57 1373 -47 1381 -40 ct |
1390 -32 1403 -28 1420 -28 ct 1437 -28 1451 -32 1464 -39 ct 1477 -46 1487 -56 1493 -69 ct |
1498 -79 1500 -93 1500 -113 ct 1500 -128 l p ef |
1612 0 m 1612 -256 l 1651 -256 l 1651 -220 l 1669 -248 1697 -262 1732 -262 ct |
1748 -262 1762 -259 1775 -254 ct 1788 -248 1797 -241 1804 -232 ct 1810 -223 1815 -212 1817 -200 ct |
1819 -192 1820 -178 1820 -158 ct 1820 0 l 1776 0 l 1776 -156 l 1776 -174 1775 -187 1771 -196 ct |
1768 -204 1762 -211 1753 -217 ct 1745 -222 1735 -224 1723 -224 ct 1705 -224 1689 -218 1675 -207 ct |
1662 -195 1655 -173 1655 -140 ct 1655 0 l 1612 0 l p ef |
2054 -31 m 2038 -18 2022 -8 2007 -2 ct 1992 3 1976 6 1959 6 ct 1931 6 1910 -1 1895 -15 ct |
1879 -28 1872 -46 1872 -67 ct 1872 -80 1875 -91 1880 -102 ct 1886 -112 1894 -120 1903 -127 ct |
1912 -133 1923 -138 1934 -141 ct 1943 -143 1955 -145 1973 -148 ct 2008 -152 2034 -157 2050 -163 ct |
2050 -168 2050 -172 2050 -174 ct 2050 -192 2046 -204 2038 -211 ct 2027 -221 2010 -226 1989 -226 ct |
1968 -226 1953 -222 1943 -215 ct 1934 -208 1926 -195 1922 -177 ct 1879 -183 l |
1883 -201 1890 -216 1898 -227 ct 1907 -238 1920 -247 1937 -253 ct 1953 -259 1973 -262 1995 -262 ct |
2017 -262 2035 -259 2048 -254 ct 2062 -249 2072 -243 2078 -235 ct 2085 -227 2089 -217 2092 -205 ct |
2093 -198 2094 -184 2094 -165 ct 2094 -107 l 2094 -67 2095 -41 2097 -31 ct |
2099 -20 2102 -10 2108 0 ct 2062 0 l 2058 -9 2055 -19 2054 -31 ct p |
2050 -128 m 2034 -122 2011 -117 1979 -112 ct 1961 -109 1949 -107 1941 -103 ct |
1934 -100 1928 -95 1924 -89 ct 1920 -83 1918 -76 1918 -69 ct 1918 -57 1923 -47 1931 -40 ct |
1940 -32 1953 -28 1970 -28 ct 1987 -28 2001 -32 2014 -39 ct 2027 -46 2037 -56 2043 -69 ct |
2048 -79 2050 -93 2050 -113 ct 2050 -128 l p ef |
2161 0 m 2161 -354 l 2204 -354 l 2204 0 l 2161 0 l p ef |
2270 99 m 2265 58 l 2274 60 2283 62 2290 62 ct 2299 62 2307 60 2313 57 ct |
2319 54 2323 49 2327 43 ct 2330 39 2334 28 2340 11 ct 2341 9 2342 5 2344 1 ct 2247 -256 l |
2294 -256 l 2347 -108 l 2354 -89 2360 -69 2366 -48 ct 2371 -68 2377 -88 2383 -107 ct |
2438 -256 l 2482 -256 l 2384 4 l 2374 33 2366 52 2360 63 ct 2352 77 2343 87 2333 94 ct |
2323 101 2311 104 2298 104 ct 2289 104 2280 102 2270 99 ct p ef |
2504 -76 m 2547 -83 l 2550 -66 2556 -53 2567 -43 ct 2578 -34 2594 -30 2613 -30 ct |
2633 -30 2648 -34 2658 -42 ct 2668 -50 2672 -60 2672 -70 ct 2672 -80 2668 -88 2660 -94 ct |
2654 -97 2639 -102 2615 -108 ct 2583 -116 2561 -123 2549 -129 ct 2537 -135 2527 -143 2521 -154 ct |
2515 -164 2511 -175 2511 -188 ct 2511 -199 2514 -210 2519 -220 ct 2525 -229 2532 -237 2541 -244 ct |
2547 -249 2557 -253 2568 -257 ct 2580 -260 2592 -262 2606 -262 ct 2626 -262 2643 -259 2659 -253 ct |
2674 -247 2685 -239 2692 -230 ct 2700 -220 2705 -206 2707 -190 ct 2665 -184 l |
2663 -197 2657 -208 2648 -215 ct 2639 -222 2626 -226 2609 -226 ct 2589 -226 2575 -223 2566 -216 ct |
2558 -210 2553 -202 2553 -193 ct 2553 -187 2555 -182 2559 -178 ct 2562 -173 2568 -169 2575 -166 ct |
2580 -165 2592 -161 2614 -155 ct 2644 -147 2666 -140 2678 -135 ct 2690 -130 2700 -122 2707 -112 ct |
2713 -102 2717 -90 2717 -75 ct 2717 -61 2713 -47 2704 -34 ct 2696 -21 2684 -11 2668 -4 ct |
2652 2 2634 6 2614 6 ct 2580 6 2555 -1 2538 -15 ct 2520 -29 2509 -49 2504 -76 ct |
p ef |
2947 -82 m 2992 -77 l 2985 -51 2972 -30 2952 -16 ct 2933 -1 2909 6 2879 6 ct |
2842 6 2812 -6 2790 -29 ct 2768 -52 2757 -84 2757 -126 ct 2757 -169 2768 -202 2790 -226 ct |
2813 -250 2841 -262 2877 -262 ct 2911 -262 2939 -250 2961 -227 ct 2982 -204 2993 -171 2993 -129 ct |
2993 -126 2993 -122 2993 -117 ct 2802 -117 l 2804 -89 2812 -67 2826 -52 ct |
2840 -37 2858 -30 2879 -30 ct 2895 -30 2909 -34 2920 -42 ct 2931 -51 2940 -64 2947 -82 ct |
p |
2804 -153 m 2947 -153 l 2945 -174 2940 -190 2931 -201 ct 2917 -218 2899 -226 2877 -226 ct |
2857 -226 2841 -219 2827 -206 ct 2813 -193 2806 -175 2804 -153 ct p ef |
3046 0 m 3046 -256 l 3085 -256 l 3085 -217 l 3095 -236 3104 -248 3113 -253 ct |
3121 -259 3131 -262 3141 -262 ct 3155 -262 3170 -257 3185 -248 ct 3170 -208 l |
3160 -214 3149 -217 3138 -217 ct 3129 -217 3120 -214 3113 -209 ct 3105 -203 3100 -195 3097 -185 ct |
3092 -169 3090 -152 3090 -134 ct 3090 0 l 3046 0 l p ef |
3435 104 m 3411 74 3390 38 3374 -2 ct 3357 -43 3349 -85 3349 -128 ct 3349 -166 3355 -203 3367 -238 ct |
3382 -279 3404 -319 3435 -360 ct 3466 -360 l 3446 -326 3433 -302 3427 -288 ct |
3417 -266 3410 -243 3404 -219 ct 3397 -188 3394 -158 3394 -128 ct 3394 -50 3418 27 3466 104 ct |
3435 104 l p ef |
pom |
pum |
7406 2126 t |
298 -125 m 345 -118 l 330 -77 308 -46 280 -25 ct 252 -4 220 6 185 6 ct 142 6 108 -7 83 -33 ct |
57 -60 45 -97 45 -146 ct 45 -210 64 -263 102 -304 ct 136 -341 179 -360 229 -360 ct |
267 -360 297 -350 320 -330 ct 344 -310 357 -283 361 -249 ct 317 -245 l 312 -270 302 -289 288 -302 ct |
273 -315 255 -321 232 -321 ct 188 -321 153 -302 127 -263 ct 103 -230 92 -191 92 -145 ct |
92 -109 101 -81 119 -62 ct 137 -43 160 -33 188 -33 ct 213 -33 235 -41 255 -57 ct |
275 -73 289 -95 298 -125 ct p ef |
384 -97 m 384 -147 399 -188 428 -221 ct 453 -248 484 -262 524 -262 ct 555 -262 580 -252 598 -233 ct |
617 -214 627 -187 627 -155 ct 627 -125 621 -98 609 -73 ct 597 -47 580 -28 558 -14 ct |
536 -1 513 6 489 6 ct 469 6 451 2 434 -7 ct 418 -15 406 -27 397 -43 ct 388 -59 384 -77 384 -97 ct |
p |
428 -101 m 428 -77 434 -59 445 -46 ct 457 -34 471 -28 489 -28 ct 499 -28 508 -30 517 -33 ct |
526 -37 535 -43 543 -51 ct 550 -58 557 -67 563 -77 ct 568 -87 573 -98 576 -109 ct |
581 -125 584 -140 584 -155 ct 584 -178 578 -196 566 -209 ct 554 -222 540 -228 522 -228 ct |
508 -228 496 -225 485 -218 ct 473 -212 463 -202 454 -190 ct 445 -177 438 -163 434 -146 ct |
430 -129 428 -114 428 -101 ct p ef |
716 0 m 674 -256 l 717 -256 l 738 -115 l 741 -100 744 -74 747 -40 ct |
756 -58 766 -79 779 -102 ct 865 -256 l 911 -256 l 765 0 l 716 0 l p ef |
1090 -87 m 1132 -83 l 1126 -61 1112 -41 1090 -22 ct 1068 -3 1042 6 1011 6 ct |
992 6 975 2 959 -7 ct 943 -16 931 -29 923 -45 ct 915 -62 911 -81 911 -103 ct 911 -131 917 -158 930 -184 ct |
943 -210 960 -230 980 -243 ct 1001 -256 1023 -262 1047 -262 ct 1078 -262 1102 -253 1120 -233 ct |
1139 -214 1148 -189 1148 -156 ct 1148 -143 1147 -130 1144 -117 ct 956 -117 l |
955 -112 955 -108 955 -103 ct 955 -80 960 -61 971 -49 ct 982 -36 996 -30 1012 -30 ct |
1027 -30 1041 -35 1056 -44 ct 1070 -54 1082 -68 1090 -87 ct p |
963 -150 m 1106 -150 l 1107 -155 1107 -158 1107 -160 ct 1107 -182 1101 -199 1090 -210 ct |
1079 -222 1065 -228 1048 -228 ct 1029 -228 1012 -222 997 -209 ct 982 -196 970 -176 963 -150 ct |
p ef |
1176 1 m 1230 -256 l 1269 -256 l 1258 -204 l 1271 -223 1284 -238 1296 -248 ct |
1309 -257 1322 -262 1335 -262 ct 1344 -262 1355 -259 1367 -252 ct 1349 -212 l |
1342 -217 1334 -220 1325 -220 ct 1309 -220 1294 -211 1277 -194 ct 1261 -177 1249 -147 1240 -102 ct |
1218 1 l 1176 1 l p ef |
1403 -304 m 1414 -353 l 1457 -353 l 1447 -304 l 1403 -304 l p |
1340 0 m 1393 -256 l 1437 -256 l 1383 0 l 1340 0 l p ef |
1553 -36 m 1546 0 l 1536 3 1526 4 1516 4 ct 1498 4 1485 0 1474 -9 ct 1467 -15 1463 -24 1463 -35 ct |
1463 -41 1465 -54 1469 -74 ct 1500 -223 l 1466 -223 l 1473 -257 l 1507 -257 l |
1520 -320 l 1570 -350 l 1551 -257 l 1594 -257 l 1586 -223 l 1544 -223 l |
1514 -81 l 1510 -63 1509 -52 1509 -49 ct 1509 -44 1510 -40 1513 -37 ct 1516 -34 1521 -33 1528 -33 ct |
1537 -33 1546 -34 1553 -36 ct p ef |
1575 99 m 1578 58 l 1587 60 1595 62 1604 62 ct 1613 62 1620 60 1625 56 ct |
1632 50 1640 40 1649 26 ct 1663 1 l 1620 -256 l 1663 -256 l 1682 -127 l |
1686 -101 1689 -75 1692 -50 ct 1807 -256 l 1852 -256 l 1689 34 l 1673 62 1659 81 1647 90 ct |
1635 99 1621 104 1605 104 ct 1595 104 1585 102 1575 99 ct p ef |
pom |
pum |
9231 2126 t |
61 104 m 30 104 l 78 27 102 -50 102 -128 ct 102 -158 99 -188 92 -218 ct 86 -242 79 -265 69 -287 ct |
62 -302 50 -326 30 -360 ct 61 -360 l 91 -319 114 -279 128 -238 ct 140 -203 147 -166 147 -128 ct |
147 -85 138 -43 122 -2 ct 105 38 85 74 61 104 ct p ef |
pom |
pum |
3372 2681 t |
15 -76 m 58 -83 l 61 -66 67 -53 78 -43 ct 89 -34 105 -30 124 -30 ct 144 -30 159 -34 169 -42 ct |
179 -50 183 -60 183 -70 ct 183 -80 179 -88 171 -94 ct 165 -97 150 -102 126 -108 ct |
94 -116 72 -123 60 -129 ct 48 -135 38 -143 32 -154 ct 26 -164 22 -175 22 -188 ct |
22 -199 25 -210 30 -220 ct 36 -229 43 -237 52 -244 ct 58 -249 68 -253 79 -257 ct |
91 -260 103 -262 117 -262 ct 137 -262 154 -259 170 -253 ct 185 -247 196 -239 203 -230 ct |
211 -220 216 -206 218 -190 ct 176 -184 l 174 -197 168 -208 159 -215 ct 150 -222 137 -226 120 -226 ct |
100 -226 86 -223 77 -216 ct 69 -210 64 -202 64 -193 ct 64 -187 66 -182 70 -178 ct |
73 -173 79 -169 86 -166 ct 91 -165 103 -161 125 -155 ct 155 -147 177 -140 189 -135 ct |
201 -130 211 -122 218 -112 ct 224 -102 228 -90 228 -75 ct 228 -61 224 -47 215 -34 ct |
207 -21 195 -11 179 -4 ct 163 2 145 6 125 6 ct 91 6 66 -1 49 -15 ct 31 -29 20 -49 15 -76 ct |
p ef |
377 -39 m 384 -1 l 371 2 360 3 351 3 ct 335 3 323 0 314 -4 ct 305 -9 299 -16 296 -24 ct |
292 -32 291 -49 291 -75 ct 291 -223 l 259 -223 l 259 -257 l 291 -257 l |
291 -320 l 334 -346 l 334 -257 l 377 -257 l 377 -223 l 334 -223 l |
334 -73 l 334 -61 334 -53 336 -49 ct 338 -46 340 -43 343 -41 ct 347 -39 352 -38 358 -38 ct |
363 -38 369 -38 377 -39 ct p ef |
589 -31 m 573 -18 557 -8 542 -2 ct 527 3 511 6 494 6 ct 466 6 445 -1 430 -15 ct |
414 -28 407 -46 407 -67 ct 407 -80 410 -91 415 -102 ct 421 -112 429 -120 438 -127 ct |
447 -133 458 -138 469 -141 ct 478 -143 490 -145 508 -148 ct 543 -152 569 -157 585 -163 ct |
585 -168 585 -172 585 -174 ct 585 -192 581 -204 573 -211 ct 562 -221 545 -226 524 -226 ct |
503 -226 488 -222 478 -215 ct 469 -208 461 -195 457 -177 ct 414 -183 l 418 -201 425 -216 433 -227 ct |
442 -238 455 -247 472 -253 ct 488 -259 508 -262 530 -262 ct 552 -262 570 -259 583 -254 ct |
597 -249 607 -243 613 -235 ct 620 -227 624 -217 627 -205 ct 628 -198 629 -184 629 -165 ct |
629 -107 l 629 -67 630 -41 632 -31 ct 634 -20 637 -10 643 0 ct 597 0 l 593 -9 590 -19 589 -31 ct |
p |
585 -128 m 569 -122 546 -117 514 -112 ct 496 -109 484 -107 476 -103 ct 469 -100 463 -95 459 -89 ct |
455 -83 453 -76 453 -69 ct 453 -57 458 -47 466 -40 ct 475 -32 488 -28 505 -28 ct |
522 -28 536 -32 549 -39 ct 562 -46 572 -56 578 -69 ct 583 -79 585 -93 585 -113 ct |
585 -128 l p ef |
792 -39 m 799 -1 l 786 2 775 3 766 3 ct 750 3 738 0 729 -4 ct 720 -9 714 -16 711 -24 ct |
707 -32 706 -49 706 -75 ct 706 -223 l 674 -223 l 674 -257 l 706 -257 l |
706 -320 l 749 -346 l 749 -257 l 792 -257 l 792 -223 l 749 -223 l |
749 -73 l 749 -61 749 -53 751 -49 ct 753 -46 755 -43 758 -41 ct 762 -39 767 -38 773 -38 ct |
778 -38 784 -38 792 -39 ct p ef |
837 -304 m 837 -354 l 880 -354 l 880 -304 l 837 -304 l p |
837 0 m 837 -256 l 880 -256 l 880 0 l 837 0 l p ef |
1114 -94 m 1156 -88 l 1152 -59 1140 -36 1121 -19 ct 1101 -2 1078 6 1050 6 ct |
1015 6 987 -5 965 -28 ct 944 -51 933 -84 933 -127 ct 933 -155 938 -179 947 -199 ct |
956 -220 970 -236 989 -246 ct 1008 -257 1028 -262 1050 -262 ct 1078 -262 1101 -255 1118 -241 ct |
1136 -227 1147 -207 1152 -181 ct 1110 -174 l 1106 -191 1099 -204 1089 -213 ct |
1079 -222 1066 -226 1052 -226 ct 1030 -226 1012 -218 998 -202 ct 985 -187 978 -162 978 -128 ct |
978 -94 985 -69 998 -53 ct 1011 -38 1028 -30 1049 -30 ct 1066 -30 1081 -35 1092 -45 ct |
1103 -56 1111 -72 1114 -94 ct p ef |
1504 -94 m 1546 -88 l 1542 -59 1530 -36 1511 -19 ct 1491 -2 1468 6 1440 6 ct |
1405 6 1377 -5 1355 -28 ct 1334 -51 1323 -84 1323 -127 ct 1323 -155 1328 -179 1337 -199 ct |
1346 -220 1360 -236 1379 -246 ct 1398 -257 1418 -262 1440 -262 ct 1468 -262 1491 -255 1508 -241 ct |
1526 -227 1537 -207 1542 -181 ct 1500 -174 l 1496 -191 1489 -204 1479 -213 ct |
1469 -222 1456 -226 1442 -226 ct 1420 -226 1402 -218 1388 -202 ct 1375 -187 1368 -162 1368 -128 ct |
1368 -94 1375 -69 1388 -53 ct 1401 -38 1418 -30 1439 -30 ct 1456 -30 1471 -35 1482 -45 ct |
1493 -56 1501 -72 1504 -94 ct p ef |
1587 0 m 1587 -354 l 1630 -354 l 1630 -227 l 1650 -250 1676 -262 1707 -262 ct |
1726 -262 1742 -258 1756 -251 ct 1770 -243 1780 -233 1786 -220 ct 1792 -207 1795 -187 1795 -162 ct |
1795 0 l 1752 0 l 1752 -162 l 1752 -184 1747 -200 1738 -210 ct 1728 -220 1715 -225 1698 -225 ct |
1685 -225 1673 -221 1661 -215 ct 1650 -208 1642 -199 1637 -187 ct 1632 -176 1630 -160 1630 -140 ct |
1630 0 l 1587 0 l p ef |
2037 -82 m 2082 -77 l 2075 -51 2062 -30 2042 -16 ct 2023 -1 1999 6 1969 6 ct |
1932 6 1902 -6 1880 -29 ct 1858 -52 1847 -84 1847 -126 ct 1847 -169 1858 -202 1880 -226 ct |
1903 -250 1931 -262 1967 -262 ct 2001 -262 2029 -250 2051 -227 ct 2072 -204 2083 -171 2083 -129 ct |
2083 -126 2083 -122 2083 -117 ct 1892 -117 l 1894 -89 1902 -67 1916 -52 ct |
1930 -37 1948 -30 1969 -30 ct 1985 -30 1999 -34 2010 -42 ct 2021 -51 2030 -64 2037 -82 ct |
p |
1894 -153 m 2037 -153 l 2035 -174 2030 -190 2021 -201 ct 2007 -218 1989 -226 1967 -226 ct |
1947 -226 1931 -219 1917 -206 ct 1903 -193 1896 -175 1894 -153 ct p ef |
2304 -94 m 2346 -88 l 2342 -59 2330 -36 2311 -19 ct 2291 -2 2268 6 2240 6 ct |
2205 6 2177 -5 2155 -28 ct 2134 -51 2123 -84 2123 -127 ct 2123 -155 2128 -179 2137 -199 ct |
2146 -220 2160 -236 2179 -246 ct 2198 -257 2218 -262 2240 -262 ct 2268 -262 2291 -255 2308 -241 ct |
2326 -227 2337 -207 2342 -181 ct 2300 -174 l 2296 -191 2289 -204 2279 -213 ct |
2269 -222 2256 -226 2242 -226 ct 2220 -226 2202 -218 2188 -202 ct 2175 -187 2168 -162 2168 -128 ct |
2168 -94 2175 -69 2188 -53 ct 2201 -38 2218 -30 2239 -30 ct 2256 -30 2271 -35 2282 -45 ct |
2293 -56 2301 -72 2304 -94 ct p ef |
2387 0 m 2387 -354 l 2430 -354 l 2430 -152 l 2533 -256 l 2589 -256 l |
2491 -161 l 2599 0 l 2546 0 l 2461 -131 l 2430 -102 l 2430 0 l 2387 0 l |
p ef |
2812 -82 m 2857 -77 l 2850 -51 2837 -30 2817 -16 ct 2798 -1 2774 6 2744 6 ct |
2707 6 2677 -6 2655 -29 ct 2633 -52 2622 -84 2622 -126 ct 2622 -169 2633 -202 2655 -226 ct |
2678 -250 2706 -262 2742 -262 ct 2776 -262 2804 -250 2826 -227 ct 2847 -204 2858 -171 2858 -129 ct |
2858 -126 2858 -122 2858 -117 ct 2667 -117 l 2669 -89 2677 -67 2691 -52 ct |
2705 -37 2723 -30 2744 -30 ct 2760 -30 2774 -34 2785 -42 ct 2796 -51 2805 -64 2812 -82 ct |
p |
2669 -153 m 2812 -153 l 2810 -174 2805 -190 2796 -201 ct 2782 -218 2764 -226 2742 -226 ct |
2722 -226 2706 -219 2692 -206 ct 2678 -193 2671 -175 2669 -153 ct p ef |
2911 0 m 2911 -256 l 2950 -256 l 2950 -217 l 2960 -236 2969 -248 2978 -253 ct |
2986 -259 2996 -262 3006 -262 ct 3020 -262 3035 -257 3050 -248 ct 3035 -208 l |
3025 -214 3014 -217 3003 -217 ct 2994 -217 2985 -214 2978 -209 ct 2970 -203 2965 -195 2962 -185 ct |
2957 -169 2955 -152 2955 -134 ct 2955 0 l 2911 0 l p ef |
3299 104 m 3275 74 3254 38 3238 -2 ct 3221 -43 3213 -85 3213 -128 ct 3213 -166 3219 -203 3231 -238 ct |
3246 -279 3268 -319 3299 -360 ct 3330 -360 l 3310 -326 3297 -302 3291 -288 ct |
3281 -266 3274 -243 3268 -219 ct 3261 -188 3258 -158 3258 -128 ct 3258 -50 3282 27 3330 104 ct |
3299 104 l p ef |
pom |
pum |
6721 2681 t |
22 1 m 96 -353 l 326 -353 l 318 -313 l 135 -313 l 112 -200 l 298 -200 l |
289 -160 l 103 -160 l 70 1 l 22 1 l p ef |
317 1 m 371 -256 l 410 -256 l 399 -204 l 412 -223 425 -238 437 -248 ct |
450 -257 463 -262 476 -262 ct 485 -262 496 -259 508 -252 ct 490 -212 l 483 -217 475 -220 466 -220 ct |
450 -220 435 -211 418 -194 ct 402 -177 390 -147 381 -102 ct 359 1 l 317 1 l |
p ef |
655 -32 m 640 -19 625 -9 611 -3 ct 597 3 583 6 567 6 ct 543 6 524 -1 509 -15 ct |
495 -29 488 -47 488 -69 ct 488 -84 491 -96 497 -107 ct 504 -119 513 -128 523 -134 ct |
534 -141 547 -146 563 -149 ct 573 -151 591 -152 619 -152 ct 646 -152 666 -154 678 -159 ct |
681 -171 683 -181 683 -189 ct 683 -200 679 -208 672 -214 ct 662 -222 647 -226 627 -226 ct |
609 -226 594 -222 582 -214 ct 571 -206 562 -194 557 -179 ct 513 -183 l 522 -208 536 -228 556 -241 ct |
575 -255 600 -262 630 -262 ct 661 -262 686 -254 705 -239 ct 719 -228 726 -213 726 -195 ct |
726 -181 724 -166 720 -148 ct 706 -84 l 701 -64 699 -47 699 -35 ct 699 -26 701 -15 704 0 ct |
660 0 l 658 -8 656 -19 655 -32 ct p |
671 -130 m 665 -127 659 -125 652 -124 ct 645 -123 633 -121 617 -120 ct 591 -118 573 -115 563 -111 ct |
552 -108 544 -102 539 -95 ct 534 -87 531 -79 531 -70 ct 531 -58 535 -47 544 -40 ct |
552 -32 564 -28 580 -28 ct 594 -28 608 -32 622 -39 ct 635 -47 645 -58 653 -71 ct |
661 -85 667 -104 671 -130 ct p ef |
757 0 m 811 -256 l 854 -256 l 845 -214 l 862 -232 876 -245 889 -252 ct |
902 -258 916 -262 931 -262 ct 947 -262 960 -258 971 -249 ct 981 -241 988 -229 992 -214 ct |
1005 -230 1018 -242 1033 -250 ct 1047 -258 1062 -262 1078 -262 ct 1100 -262 1116 -257 1126 -247 ct |
1137 -237 1142 -222 1142 -204 ct 1142 -196 1141 -183 1137 -165 ct 1102 0 l 1059 0 l |
1094 -169 l 1097 -183 1098 -193 1098 -199 ct 1098 -207 1096 -214 1091 -219 ct |
1085 -224 1078 -226 1068 -226 ct 1055 -226 1042 -222 1028 -214 ct 1015 -206 1004 -196 997 -183 ct |
989 -170 983 -151 977 -124 ct 951 0 l 907 0 l 944 -173 l 946 -185 947 -193 947 -198 ct |
947 -206 945 -213 940 -218 ct 934 -223 928 -226 919 -226 ct 907 -226 894 -222 880 -214 ct |
867 -206 856 -195 847 -181 ct 839 -167 832 -147 826 -121 ct 801 0 l 757 0 l |
p ef |
1340 -32 m 1325 -19 1310 -9 1296 -3 ct 1282 3 1268 6 1252 6 ct 1228 6 1209 -1 1194 -15 ct |
1180 -29 1173 -47 1173 -69 ct 1173 -84 1176 -96 1182 -107 ct 1189 -119 1198 -128 1208 -134 ct |
1219 -141 1232 -146 1248 -149 ct 1258 -151 1276 -152 1304 -152 ct 1331 -152 1351 -154 1363 -159 ct |
1366 -171 1368 -181 1368 -189 ct 1368 -200 1364 -208 1357 -214 ct 1347 -222 1332 -226 1312 -226 ct |
1294 -226 1279 -222 1267 -214 ct 1256 -206 1247 -194 1242 -179 ct 1198 -183 l |
1207 -208 1221 -228 1241 -241 ct 1260 -255 1285 -262 1315 -262 ct 1346 -262 1371 -254 1390 -239 ct |
1404 -228 1411 -213 1411 -195 ct 1411 -181 1409 -166 1405 -148 ct 1391 -84 l |
1386 -64 1384 -47 1384 -35 ct 1384 -26 1386 -15 1389 0 ct 1345 0 l 1343 -8 1341 -19 1340 -32 ct |
p |
1356 -130 m 1350 -127 1344 -125 1337 -124 ct 1330 -123 1318 -121 1302 -120 ct |
1276 -118 1258 -115 1248 -111 ct 1237 -108 1229 -102 1224 -95 ct 1219 -87 1216 -79 1216 -70 ct |
1216 -58 1220 -47 1229 -40 ct 1237 -32 1249 -28 1265 -28 ct 1279 -28 1293 -32 1307 -39 ct |
1320 -47 1330 -58 1338 -71 ct 1346 -85 1352 -104 1356 -130 ct p ef |
1450 -106 m 1459 -150 l 1592 -150 l 1583 -106 l 1450 -106 l p ef |
1890 -125 m 1937 -118 l 1922 -77 1900 -46 1872 -25 ct 1844 -4 1812 6 1777 6 ct |
1734 6 1700 -7 1675 -33 ct 1649 -60 1637 -97 1637 -146 ct 1637 -210 1656 -263 1694 -304 ct |
1728 -341 1771 -360 1821 -360 ct 1859 -360 1889 -350 1912 -330 ct 1936 -310 1949 -283 1953 -249 ct |
1909 -245 l 1904 -270 1894 -289 1880 -302 ct 1865 -315 1847 -321 1824 -321 ct |
1780 -321 1745 -302 1719 -263 ct 1695 -230 1684 -191 1684 -145 ct 1684 -109 1693 -81 1711 -62 ct |
1729 -43 1752 -33 1780 -33 ct 1805 -33 1827 -41 1847 -57 ct 1867 -73 1881 -95 1890 -125 ct |
p ef |
pom |
pum |
8673 2681 t |
44 0 m 44 -49 l 93 -49 l 93 0 l 93 18 90 33 84 44 ct 77 55 67 64 53 70 ct |
41 51 l 50 47 57 41 61 34 ct 66 26 68 15 69 0 ct 44 0 l p ef |
pom |
pum |
8952 2681 t |
129 0 m 61 -354 l 107 -354 l 148 -143 l 155 -104 160 -74 163 -50 ct 177 -80 190 -104 199 -122 ct |
325 -354 l 374 -354 l 180 0 l 129 0 l p ef |
523 -93 m 567 -89 l 556 -57 540 -33 520 -17 ct 500 -2 477 6 451 6 ct 424 6 401 -3 384 -21 ct |
366 -39 358 -64 358 -97 ct 358 -125 363 -152 374 -179 ct 385 -206 401 -227 422 -241 ct |
443 -255 466 -262 493 -262 ct 520 -262 542 -254 558 -238 ct 574 -222 582 -202 582 -176 ct |
539 -176 l 539 -191 535 -204 525 -213 ct 516 -222 504 -226 489 -226 ct 471 -226 456 -220 443 -209 ct |
430 -198 420 -181 413 -159 ct 406 -136 402 -114 402 -93 ct 402 -72 407 -55 416 -44 ct |
426 -33 438 -28 452 -28 ct 466 -28 480 -33 493 -44 ct 506 -55 516 -71 523 -93 ct |
p ef |
773 -93 m 817 -89 l 806 -57 790 -33 770 -17 ct 750 -2 727 6 701 6 ct 674 6 651 -3 634 -21 ct |
616 -39 608 -64 608 -97 ct 608 -125 613 -152 624 -179 ct 635 -206 651 -227 672 -241 ct |
693 -255 716 -262 743 -262 ct 770 -262 792 -254 808 -238 ct 824 -222 832 -202 832 -176 ct |
789 -176 l 789 -191 785 -204 775 -213 ct 766 -222 754 -226 739 -226 ct 721 -226 706 -220 693 -209 ct |
680 -198 670 -181 663 -159 ct 656 -136 652 -114 652 -93 ct 652 -72 657 -55 666 -44 ct |
676 -33 688 -28 702 -28 ct 716 -28 730 -33 743 -44 ct 756 -55 766 -71 773 -93 ct |
p ef |
pom |
pum |
9782 2681 t |
61 104 m 30 104 l 78 27 102 -50 102 -128 ct 102 -158 99 -188 92 -218 ct 86 -242 79 -265 69 -287 ct |
62 -302 50 -326 30 -360 ct 61 -360 l 91 -319 114 -279 128 -238 ct 140 -203 147 -166 147 -128 ct |
147 -85 138 -43 122 -2 ct 105 38 85 74 61 104 ct p ef |
pom |
1.000 0.503 0.503 c 22159 2716 m 17581 2716 l 17581 176 l 26737 176 l |
26737 2716 l 22159 2716 l p ef |
0.003 0.003 0.503 c 22159 2716 m 17581 2716 l 17581 176 l 26737 176 l |
26737 2716 l 22159 2716 l pc |
pum |
18101 1311 t |
0.003 0.003 0.003 c 46 0 m 46 -455 l 383 -455 l 383 -378 l 138 -378 l |
138 -277 l 366 -277 l 366 -200 l 138 -200 l 138 -77 l 392 -77 l 392 0 l |
46 0 l p ef |
427 0 m 545 -170 l 432 -330 l 538 -330 l 596 -239 l 658 -330 l 760 -330 l |
648 -173 l 770 0 l 663 0 l 596 -102 l 529 0 l 427 0 l p ef |
972 -330 m 972 -260 l 912 -260 l 912 -128 l 912 -101 913 -85 914 -81 ct |
915 -76 917 -73 922 -70 ct 926 -67 930 -65 936 -65 ct 944 -65 956 -68 971 -74 ct |
979 -6 l 958 3 936 7 910 7 ct 894 7 880 4 867 -1 ct 855 -6 846 -13 840 -21 ct |
834 -30 830 -41 827 -55 ct 826 -66 825 -86 825 -117 ct 825 -260 l 785 -260 l |
785 -330 l 825 -330 l 825 -395 l 912 -446 l 912 -330 l 972 -330 l |
p ef |
1115 0 m 1028 0 l 1028 -330 l 1109 -330 l 1109 -283 l 1123 -305 1135 -319 1146 -326 ct |
1157 -333 1170 -337 1184 -337 ct 1204 -337 1223 -332 1241 -321 ct 1214 -245 l |
1200 -254 1186 -259 1173 -259 ct 1161 -259 1151 -255 1142 -249 ct 1134 -242 1127 -230 1122 -212 ct |
1117 -195 1115 -158 1115 -102 ct 1115 0 l p ef |
1343 -230 m 1264 -244 l 1273 -276 1288 -299 1310 -315 ct 1331 -330 1363 -338 1406 -338 ct |
1445 -338 1474 -333 1493 -324 ct 1512 -315 1525 -303 1533 -289 ct 1541 -275 1545 -249 1545 -211 ct |
1544 -109 l 1544 -80 1545 -58 1548 -45 ct 1551 -31 1556 -16 1564 0 ct 1478 0 l |
1475 -6 1473 -15 1469 -26 ct 1468 -31 1467 -35 1466 -36 ct 1451 -22 1435 -11 1418 -4 ct |
1401 3 1383 7 1364 7 ct 1330 7 1303 -2 1284 -21 ct 1264 -39 1255 -62 1255 -91 ct |
1255 -109 1259 -126 1268 -140 ct 1277 -155 1289 -166 1305 -174 ct 1321 -182 1344 -188 1375 -194 ct |
1415 -202 1444 -209 1459 -216 ct 1459 -224 l 1459 -241 1455 -253 1447 -260 ct |
1439 -267 1423 -271 1400 -271 ct 1385 -271 1372 -268 1364 -262 ct 1355 -256 1348 -245 1343 -230 ct |
p |
1459 -159 m 1448 -155 1430 -151 1406 -145 ct 1382 -140 1366 -135 1359 -130 ct |
1347 -122 1342 -112 1342 -99 ct 1342 -87 1346 -77 1355 -68 ct 1365 -59 1376 -54 1390 -54 ct |
1406 -54 1421 -60 1435 -70 ct 1446 -78 1453 -87 1456 -99 ct 1458 -106 1459 -121 1459 -141 ct |
1459 -159 l p ef |
1619 -121 m 1619 -208 l 1790 -208 l 1790 -121 l 1619 -121 l p ef |
1802 -330 m 1851 -330 l 1851 -354 l 1851 -382 1854 -403 1860 -417 ct 1866 -430 1876 -441 1892 -450 ct |
1908 -459 1928 -463 1952 -463 ct 1977 -463 2001 -459 2025 -452 ct 2013 -391 l |
1999 -394 1986 -396 1973 -396 ct 1961 -396 1952 -393 1946 -387 ct 1941 -381 1938 -370 1938 -353 ct |
1938 -330 l 2003 -330 l 2003 -261 l 1938 -261 l 1938 0 l 1851 0 l |
1851 -261 l 1802 -261 l 1802 -330 l p ef |
2269 0 m 2269 -50 l 2257 -32 2242 -18 2222 -8 ct 2202 2 2182 7 2160 7 ct 2138 7 2118 2 2101 -8 ct |
2083 -17 2070 -31 2063 -49 ct 2055 -66 2051 -90 2051 -121 ct 2051 -330 l 2138 -330 l |
2138 -179 l 2138 -132 2139 -104 2143 -93 ct 2146 -83 2152 -75 2160 -69 ct 2169 -62 2179 -59 2192 -59 ct |
2207 -59 2221 -63 2232 -72 ct 2244 -80 2252 -90 2257 -102 ct 2261 -114 2263 -144 2263 -191 ct |
2263 -330 l 2350 -330 l 2350 0 l 2269 0 l p ef |
2741 0 m 2654 0 l 2654 -168 l 2654 -204 2652 -227 2648 -237 ct 2645 -248 2639 -256 2630 -262 ct |
2622 -267 2612 -270 2600 -270 ct 2585 -270 2571 -266 2559 -258 ct 2547 -250 2539 -239 2535 -225 ct |
2530 -211 2528 -186 2528 -149 ct 2528 0 l 2441 0 l 2441 -330 l 2522 -330 l |
2522 -281 l 2551 -318 2587 -337 2630 -337 ct 2650 -337 2667 -334 2683 -327 ct |
2699 -320 2711 -311 2719 -300 ct 2727 -289 2733 -277 2736 -263 ct 2739 -250 2741 -230 2741 -205 ct |
2741 0 l p ef |
3119 -233 m 3033 -217 l 3030 -234 3023 -247 3013 -256 ct 3003 -265 2990 -269 2973 -269 ct |
2952 -269 2934 -262 2921 -246 ct 2908 -231 2902 -206 2902 -171 ct 2902 -132 2909 -104 2922 -88 ct |
2935 -72 2952 -64 2975 -64 ct 2991 -64 3005 -69 3015 -78 ct 3026 -88 3033 -104 3037 -127 ct |
3123 -112 l 3114 -73 3097 -43 3072 -23 ct 3047 -3 3013 7 2970 7 ct 2922 7 2884 -8 2855 -39 ct |
2827 -69 2812 -111 2812 -165 ct 2812 -219 2827 -262 2855 -292 ct 2884 -322 2923 -338 2972 -338 ct |
3012 -338 3044 -329 3068 -312 ct 3091 -294 3108 -268 3119 -233 ct p ef |
3334 -330 m 3334 -260 l 3274 -260 l 3274 -128 l 3274 -101 3275 -85 3276 -81 ct |
3277 -76 3279 -73 3284 -70 ct 3288 -67 3292 -65 3298 -65 ct 3306 -65 3318 -68 3333 -74 ct |
3341 -6 l 3320 3 3298 7 3272 7 ct 3256 7 3242 4 3229 -1 ct 3217 -6 3208 -13 3202 -21 ct |
3196 -30 3192 -41 3189 -55 ct 3188 -66 3187 -86 3187 -117 ct 3187 -260 l 3147 -260 l |
3147 -330 l 3187 -330 l 3187 -395 l 3274 -446 l 3274 -330 l 3334 -330 l |
p ef |
3395 -374 m 3395 -455 l 3482 -455 l 3482 -374 l 3395 -374 l p |
3395 0 m 3395 -330 l 3482 -330 l 3482 0 l 3395 0 l p ef |
3551 -170 m 3551 -199 3559 -227 3573 -254 ct 3587 -281 3607 -301 3633 -316 ct |
3660 -330 3689 -337 3721 -337 ct 3771 -337 3812 -321 3844 -289 ct 3875 -256 3891 -215 3891 -166 ct |
3891 -116 3875 -75 3843 -42 ct 3811 -9 3770 7 3722 7 ct 3691 7 3663 0 3635 -13 ct |
3608 -27 3587 -47 3573 -73 ct 3559 -100 3551 -132 3551 -170 ct p |
3641 -165 m 3641 -132 3648 -107 3664 -90 ct 3679 -73 3699 -64 3721 -64 ct 3744 -64 3763 -73 3779 -90 ct |
3794 -107 3802 -133 3802 -166 ct 3802 -198 3794 -223 3779 -240 ct 3763 -257 3744 -266 3721 -266 ct |
3699 -266 3679 -257 3664 -240 ct 3648 -223 3641 -198 3641 -165 ct p ef |
4261 0 m 4174 0 l 4174 -168 l 4174 -204 4172 -227 4168 -237 ct 4165 -248 4159 -256 4150 -262 ct |
4142 -267 4132 -270 4120 -270 ct 4105 -270 4091 -266 4079 -258 ct 4067 -250 4059 -239 4055 -225 ct |
4050 -211 4048 -186 4048 -149 ct 4048 0 l 3961 0 l 3961 -330 l 4042 -330 l |
4042 -281 l 4071 -318 4107 -337 4150 -337 ct 4170 -337 4187 -334 4203 -327 ct |
4219 -320 4231 -311 4239 -300 ct 4247 -289 4253 -277 4256 -263 ct 4259 -250 4261 -230 4261 -205 ct |
4261 0 l p ef |
4416 -230 m 4337 -244 l 4346 -276 4361 -299 4383 -315 ct 4404 -330 4436 -338 4479 -338 ct |
4518 -338 4547 -333 4566 -324 ct 4585 -315 4598 -303 4606 -289 ct 4614 -275 4618 -249 4618 -211 ct |
4617 -109 l 4617 -80 4618 -58 4621 -45 ct 4624 -31 4629 -16 4637 0 ct 4551 0 l |
4548 -6 4546 -15 4542 -26 ct 4541 -31 4540 -35 4539 -36 ct 4524 -22 4508 -11 4491 -4 ct |
4474 3 4456 7 4437 7 ct 4403 7 4376 -2 4357 -21 ct 4337 -39 4328 -62 4328 -91 ct |
4328 -109 4332 -126 4341 -140 ct 4350 -155 4362 -166 4378 -174 ct 4394 -182 4417 -188 4448 -194 ct |
4488 -202 4517 -209 4532 -216 ct 4532 -224 l 4532 -241 4528 -253 4520 -260 ct |
4512 -267 4496 -271 4473 -271 ct 4458 -271 4445 -268 4437 -262 ct 4428 -256 4421 -245 4416 -230 ct |
p |
4532 -159 m 4521 -155 4503 -151 4479 -145 ct 4455 -140 4439 -135 4432 -130 ct |
4420 -122 4415 -112 4415 -99 ct 4415 -87 4419 -77 4428 -68 ct 4438 -59 4449 -54 4463 -54 ct |
4479 -54 4494 -60 4508 -70 ct 4519 -78 4526 -87 4529 -99 ct 4531 -106 4532 -121 4532 -141 ct |
4532 -159 l p ef |
4703 0 m 4703 -455 l 4790 -455 l 4790 0 l 4703 0 l p ef |
5055 -330 m 5136 -330 l 5136 -281 l 5147 -298 5161 -311 5179 -322 ct 5197 -332 5217 -337 5239 -337 ct |
5277 -337 5310 -322 5336 -292 ct 5363 -262 5376 -220 5376 -167 ct 5376 -112 5363 -69 5336 -39 ct |
5309 -8 5277 7 5238 7 ct 5220 7 5204 3 5189 -4 ct 5174 -11 5159 -24 5142 -41 ct |
5142 125 l 5055 125 l 5055 -330 l p |
5141 -171 m 5141 -134 5149 -106 5163 -89 ct 5178 -71 5196 -62 5217 -62 ct 5237 -62 5254 -70 5267 -87 ct |
5281 -103 5288 -129 5288 -166 ct 5288 -201 5281 -226 5267 -243 ct 5253 -260 5236 -268 5215 -268 ct |
5194 -268 5176 -260 5162 -244 ct 5148 -227 5141 -203 5141 -171 ct p ef |
5531 0 m 5444 0 l 5444 -330 l 5525 -330 l 5525 -283 l 5539 -305 5551 -319 5562 -326 ct |
5573 -333 5586 -337 5600 -337 ct 5620 -337 5639 -332 5657 -321 ct 5630 -245 l |
5616 -254 5602 -259 5589 -259 ct 5577 -259 5567 -255 5558 -249 ct 5550 -242 5543 -230 5538 -212 ct |
5533 -195 5531 -158 5531 -102 ct 5531 0 l p ef |
5672 -170 m 5672 -199 5680 -227 5694 -254 ct 5708 -281 5728 -301 5754 -316 ct |
5781 -330 5810 -337 5842 -337 ct 5892 -337 5933 -321 5965 -289 ct 5996 -256 6012 -215 6012 -166 ct |
6012 -116 5996 -75 5964 -42 ct 5932 -9 5891 7 5843 7 ct 5812 7 5784 0 5756 -13 ct |
5729 -27 5708 -47 5694 -73 ct 5680 -100 5672 -132 5672 -170 ct p |
5762 -165 m 5762 -132 5769 -107 5785 -90 ct 5800 -73 5820 -64 5842 -64 ct 5865 -64 5884 -73 5900 -90 ct |
5915 -107 5923 -133 5923 -166 ct 5923 -198 5915 -223 5900 -240 ct 5884 -257 5865 -266 5842 -266 ct |
5820 -266 5800 -257 5785 -240 ct 5769 -223 5762 -198 5762 -165 ct p ef |
6080 -330 m 6161 -330 l 6161 -281 l 6172 -298 6186 -311 6204 -322 ct 6222 -332 6242 -337 6264 -337 ct |
6302 -337 6335 -322 6361 -292 ct 6388 -262 6401 -220 6401 -167 ct 6401 -112 6388 -69 6361 -39 ct |
6334 -8 6302 7 6263 7 ct 6245 7 6229 3 6214 -4 ct 6199 -11 6184 -24 6167 -41 ct |
6167 125 l 6080 125 l 6080 -330 l p |
6166 -171 m 6166 -134 6174 -106 6188 -89 ct 6203 -71 6221 -62 6242 -62 ct 6262 -62 6279 -70 6292 -87 ct |
6306 -103 6313 -129 6313 -166 ct 6313 -201 6306 -226 6292 -243 ct 6278 -260 6261 -268 6240 -268 ct |
6219 -268 6201 -260 6187 -244 ct 6173 -227 6166 -203 6166 -171 ct p ef |
6662 -105 m 6749 -91 l 6738 -59 6720 -35 6696 -18 ct 6672 -1 6642 7 6606 7 ct |
6549 7 6506 -12 6479 -49 ct 6457 -79 6446 -117 6446 -163 ct 6446 -218 6460 -260 6489 -291 ct |
6517 -322 6554 -338 6597 -338 ct 6646 -338 6685 -322 6713 -289 ct 6741 -257 6755 -207 6754 -140 ct |
6535 -140 l 6536 -114 6543 -94 6557 -80 ct 6570 -65 6587 -58 6607 -58 ct 6620 -58 6632 -62 6641 -69 ct |
6650 -77 6658 -89 6662 -105 ct p |
6667 -193 m 6667 -219 6660 -238 6648 -251 ct 6635 -264 6620 -271 6602 -271 ct |
6583 -271 6568 -264 6555 -250 ct 6543 -236 6537 -217 6537 -193 ct 6667 -193 l |
p ef |
6907 0 m 6820 0 l 6820 -330 l 6901 -330 l 6901 -283 l 6915 -305 6927 -319 6938 -326 ct |
6949 -333 6962 -337 6976 -337 ct 6996 -337 7015 -332 7033 -321 ct 7006 -245 l |
6992 -254 6978 -259 6965 -259 ct 6953 -259 6943 -255 6934 -249 ct 6926 -242 6919 -230 6914 -212 ct |
6909 -195 6907 -158 6907 -102 ct 6907 0 l p ef |
7220 -330 m 7220 -260 l 7160 -260 l 7160 -128 l 7160 -101 7161 -85 7162 -81 ct |
7163 -76 7165 -73 7170 -70 ct 7174 -67 7178 -65 7184 -65 ct 7192 -65 7204 -68 7219 -74 ct |
7227 -6 l 7206 3 7184 7 7158 7 ct 7142 7 7128 4 7115 -1 ct 7103 -6 7094 -13 7088 -21 ct |
7082 -30 7078 -41 7075 -55 ct 7074 -66 7073 -86 7073 -117 ct 7073 -260 l 7033 -260 l |
7033 -330 l 7073 -330 l 7073 -395 l 7160 -446 l 7160 -330 l 7220 -330 l |
p ef |
7281 -374 m 7281 -455 l 7368 -455 l 7368 -374 l 7281 -374 l p |
7281 0 m 7281 -330 l 7368 -330 l 7368 0 l 7281 0 l p ef |
7649 -105 m 7736 -91 l 7725 -59 7707 -35 7683 -18 ct 7659 -1 7629 7 7593 7 ct |
7536 7 7493 -12 7466 -49 ct 7444 -79 7433 -117 7433 -163 ct 7433 -218 7447 -260 7476 -291 ct |
7504 -322 7541 -338 7584 -338 ct 7633 -338 7672 -322 7700 -289 ct 7728 -257 7742 -207 7741 -140 ct |
7522 -140 l 7523 -114 7530 -94 7544 -80 ct 7557 -65 7574 -58 7594 -58 ct 7607 -58 7619 -62 7628 -69 ct |
7637 -77 7645 -89 7649 -105 ct p |
7654 -193 m 7654 -219 7647 -238 7635 -251 ct 7622 -264 7607 -271 7589 -271 ct |
7570 -271 7555 -264 7542 -250 ct 7530 -236 7524 -217 7524 -193 ct 7654 -193 l |
p ef |
7779 -95 m 7866 -108 l 7870 -91 7878 -78 7889 -69 ct 7900 -60 7916 -56 7937 -56 ct |
7959 -56 7976 -60 7988 -68 ct 7995 -74 7999 -82 7999 -92 ct 7999 -98 7997 -104 7993 -108 ct |
7988 -112 7979 -116 7964 -120 ct 7893 -135 7849 -149 7830 -162 ct 7804 -180 7791 -205 7791 -236 ct |
7791 -265 7802 -289 7825 -308 ct 7847 -328 7882 -338 7930 -338 ct 7975 -338 8008 -330 8030 -316 ct |
8052 -301 8067 -279 8075 -250 ct 7993 -235 l 7990 -248 7983 -258 7973 -265 ct |
7963 -272 7949 -275 7931 -275 ct 7908 -275 7892 -272 7882 -265 ct 7875 -261 7872 -255 7872 -248 ct |
7872 -241 7875 -236 7881 -232 ct 7888 -226 7916 -218 7962 -207 ct 8008 -197 8041 -184 8059 -168 ct |
8077 -153 8086 -131 8086 -104 ct 8086 -73 8074 -47 8049 -26 ct 8023 -4 7986 7 7937 7 ct |
7892 7 7856 -2 7830 -20 ct 7804 -39 7787 -63 7779 -95 ct p ef |
pom |
pum |
20269 2022 t |
190 134 m 130 134 l 99 86 75 37 58 -15 ct 41 -66 33 -116 33 -165 ct 33 -224 43 -281 64 -334 ct |
82 -381 104 -423 131 -462 ct 191 -462 l 163 -400 143 -346 133 -302 ct 122 -259 117 -212 117 -163 ct |
117 -129 120 -94 126 -58 ct 132 -23 141 11 152 43 ct 159 64 172 94 190 134 ct p ef |
409 -330 m 409 -260 l 349 -260 l 349 -128 l 349 -101 350 -85 351 -81 ct |
352 -76 354 -73 359 -70 ct 363 -67 367 -65 373 -65 ct 381 -65 393 -68 408 -74 ct |
416 -6 l 395 3 373 7 347 7 ct 331 7 317 4 304 -1 ct 292 -6 283 -13 277 -21 ct |
271 -30 267 -41 264 -55 ct 263 -66 262 -86 262 -117 ct 262 -260 l 222 -260 l |
222 -330 l 262 -330 l 262 -395 l 349 -446 l 349 -330 l 409 -330 l |
p ef |
469 -374 m 469 -455 l 556 -455 l 556 -374 l 469 -374 l p |
469 0 m 469 -330 l 556 -330 l 556 0 l 469 0 l p ef |
640 -330 m 720 -330 l 720 -285 l 749 -320 783 -337 823 -337 ct 844 -337 862 -333 878 -324 ct |
893 -315 906 -302 916 -285 ct 930 -302 946 -315 963 -324 ct 980 -333 997 -337 1016 -337 ct |
1041 -337 1061 -332 1078 -322 ct 1095 -312 1107 -298 1115 -279 ct 1121 -265 1124 -242 1124 -211 ct |
1124 0 l 1037 0 l 1037 -188 l 1037 -221 1034 -242 1028 -252 ct 1020 -264 1008 -270 991 -270 ct |
979 -270 967 -267 957 -259 ct 946 -252 938 -241 933 -226 ct 929 -212 926 -189 926 -158 ct |
926 0 l 839 0 l 839 -181 l 839 -213 838 -233 834 -243 ct 831 -252 827 -259 820 -263 ct |
814 -268 805 -270 794 -270 ct 780 -270 768 -267 757 -259 ct 747 -252 739 -242 734 -228 ct |
730 -214 727 -192 727 -160 ct 727 0 l 640 0 l 640 -330 l p ef |
1210 -374 m 1210 -455 l 1297 -455 l 1297 -374 l 1210 -374 l p |
1210 0 m 1210 -330 l 1297 -330 l 1297 0 l 1210 0 l p ef |
1687 0 m 1600 0 l 1600 -168 l 1600 -204 1598 -227 1594 -237 ct 1591 -248 1585 -256 1576 -262 ct |
1568 -267 1558 -270 1546 -270 ct 1531 -270 1517 -266 1505 -258 ct 1493 -250 1485 -239 1481 -225 ct |
1476 -211 1474 -186 1474 -149 ct 1474 0 l 1387 0 l 1387 -330 l 1468 -330 l |
1468 -281 l 1497 -318 1533 -337 1576 -337 ct 1596 -337 1613 -334 1629 -327 ct |
1645 -320 1657 -311 1665 -300 ct 1673 -289 1679 -277 1682 -263 ct 1685 -250 1687 -230 1687 -205 ct |
1687 0 l p ef |
1769 22 m 1868 34 l 1870 46 1874 54 1880 58 ct 1888 64 1901 67 1919 67 ct |
1941 67 1958 64 1970 57 ct 1977 53 1983 45 1987 35 ct 1990 28 1991 14 1991 -5 ct |
1991 -53 l 1965 -17 1932 0 1893 0 ct 1848 0 1813 -18 1787 -56 ct 1767 -85 1757 -122 1757 -166 ct |
1757 -222 1770 -264 1797 -293 ct 1823 -322 1856 -337 1896 -337 ct 1937 -337 1970 -319 1997 -283 ct |
1997 -329 l 2078 -329 l 2078 -34 l 2078 5 2075 34 2069 54 ct 2062 73 2053 88 2042 99 ct |
2030 110 2015 118 1995 125 ct 1976 131 1952 134 1922 134 ct 1866 134 1827 124 1803 105 ct |
1780 86 1768 62 1768 33 ct 1768 30 1768 26 1769 22 ct p |
1846 -171 m 1846 -136 1853 -111 1867 -94 ct 1880 -78 1897 -70 1917 -70 ct 1938 -70 1956 -78 1971 -95 ct |
1985 -112 1993 -136 1993 -169 ct 1993 -203 1986 -229 1972 -245 ct 1958 -262 1940 -270 1918 -270 ct |
1897 -270 1880 -262 1867 -246 ct 1853 -229 1846 -205 1846 -171 ct p ef |
2164 -87 m 2252 -87 l 2252 -25 l 2252 0 2249 20 2245 35 ct 2241 49 2232 63 2220 74 ct |
2208 86 2193 95 2174 101 ct 2157 65 l 2175 60 2187 52 2195 42 ct 2202 31 2206 18 2207 0 ct |
2164 0 l 2164 -87 l p ef |
2713 -105 m 2800 -91 l 2789 -59 2771 -35 2747 -18 ct 2723 -1 2693 7 2657 7 ct |
2600 7 2557 -12 2530 -49 ct 2508 -79 2497 -117 2497 -163 ct 2497 -218 2511 -260 2540 -291 ct |
2568 -322 2605 -338 2648 -338 ct 2697 -338 2736 -322 2764 -289 ct 2792 -257 2806 -207 2805 -140 ct |
2586 -140 l 2587 -114 2594 -94 2608 -80 ct 2621 -65 2638 -58 2658 -58 ct 2671 -58 2683 -62 2692 -69 ct |
2701 -77 2709 -89 2713 -105 ct p |
2718 -193 m 2718 -219 2711 -238 2699 -251 ct 2686 -264 2671 -271 2653 -271 ct |
2634 -271 2619 -264 2606 -250 ct 2594 -236 2588 -217 2588 -193 ct 2718 -193 l |
p ef |
3025 -330 m 3025 -260 l 2965 -260 l 2965 -128 l 2965 -101 2966 -85 2967 -81 ct |
2968 -76 2970 -73 2975 -70 ct 2979 -67 2983 -65 2989 -65 ct 2997 -65 3009 -68 3024 -74 ct |
3032 -6 l 3011 3 2989 7 2963 7 ct 2947 7 2933 4 2920 -1 ct 2908 -6 2899 -13 2893 -21 ct |
2887 -30 2883 -41 2880 -55 ct 2879 -66 2878 -86 2878 -117 ct 2878 -260 l 2838 -260 l |
2838 -330 l 2878 -330 l 2878 -395 l 2965 -446 l 2965 -330 l 3025 -330 l |
p ef |
3373 -233 m 3287 -217 l 3284 -234 3277 -247 3267 -256 ct 3257 -265 3244 -269 3227 -269 ct |
3206 -269 3188 -262 3175 -246 ct 3162 -231 3156 -206 3156 -171 ct 3156 -132 3163 -104 3176 -88 ct |
3189 -72 3206 -64 3229 -64 ct 3245 -64 3259 -69 3269 -78 ct 3280 -88 3287 -104 3291 -127 ct |
3377 -112 l 3368 -73 3351 -43 3326 -23 ct 3301 -3 3267 7 3224 7 ct 3176 7 3138 -8 3109 -39 ct |
3081 -69 3066 -111 3066 -165 ct 3066 -219 3081 -262 3109 -292 ct 3138 -322 3177 -338 3226 -338 ct |
3266 -338 3298 -329 3322 -312 ct 3345 -294 3362 -268 3373 -233 ct p ef |
3437 0 m 3437 -87 l 3524 -87 l 3524 0 l 3437 0 l p ef |
3590 134 m 3608 97 3620 69 3627 49 ct 3634 30 3640 7 3646 -19 ct 3652 -44 3657 -69 3660 -92 ct |
3662 -115 3664 -138 3664 -163 ct 3664 -212 3659 -259 3648 -302 ct 3638 -346 3618 -400 3590 -462 ct |
3649 -462 l 3680 -418 3704 -371 3722 -321 ct 3739 -271 3748 -220 3748 -169 ct |
3748 -126 3741 -80 3727 -30 ct 3712 25 3686 80 3651 134 ct 3590 134 l p ef |
pom |
0.800 0.800 0.800 c 22159 6316 m 17581 6316 l 17581 3776 l 26737 3776 l |
26737 6316 l 22159 6316 l p ef |
0.003 0.003 0.503 c 22159 6316 m 17581 6316 l 17581 3776 l 26737 3776 l |
26737 6316 l 22159 6316 l pc |
pum |
19600 4989 t |
0.003 0.003 0.003 c 45 0 m 45 -455 l 182 -455 l 265 -145 l 346 -455 l |
484 -455 l 484 0 l 399 0 l 399 -358 l 309 0 l 220 0 l 130 -358 l |
130 0 l 45 0 l p ef |
554 -170 m 554 -199 562 -227 576 -254 ct 590 -281 610 -301 636 -316 ct 663 -330 692 -337 724 -337 ct |
774 -337 815 -321 847 -289 ct 878 -256 894 -215 894 -166 ct 894 -116 878 -75 846 -42 ct |
814 -9 773 7 725 7 ct 694 7 666 0 638 -13 ct 611 -27 590 -47 576 -73 ct 562 -100 554 -132 554 -170 ct |
p |
644 -165 m 644 -132 651 -107 667 -90 ct 682 -73 702 -64 724 -64 ct 747 -64 766 -73 782 -90 ct |
797 -107 805 -133 805 -166 ct 805 -198 797 -223 782 -240 ct 766 -257 747 -266 724 -266 ct |
702 -266 682 -257 667 -240 ct 651 -223 644 -198 644 -165 ct p ef |
1267 0 m 1186 0 l 1186 -49 l 1172 -30 1156 -16 1138 -7 ct 1120 2 1101 7 1083 7 ct |
1045 7 1012 -8 986 -39 ct 959 -69 945 -112 945 -167 ct 945 -223 958 -265 984 -294 ct |
1011 -323 1044 -338 1084 -338 ct 1121 -338 1153 -322 1179 -292 ct 1179 -455 l |
1267 -455 l 1267 0 l p |
1034 -173 m 1034 -137 1039 -112 1049 -96 ct 1063 -73 1082 -62 1108 -62 ct 1128 -62 1145 -70 1159 -88 ct |
1173 -105 1180 -130 1180 -164 ct 1180 -202 1173 -229 1159 -246 ct 1146 -263 1128 -271 1107 -271 ct |
1086 -271 1069 -263 1055 -246 ct 1041 -230 1034 -205 1034 -173 ct p ef |
1544 -105 m 1631 -91 l 1620 -59 1602 -35 1578 -18 ct 1554 -1 1524 7 1488 7 ct |
1431 7 1388 -12 1361 -49 ct 1339 -79 1328 -117 1328 -163 ct 1328 -218 1342 -260 1371 -291 ct |
1399 -322 1436 -338 1479 -338 ct 1528 -338 1567 -322 1595 -289 ct 1623 -257 1637 -207 1636 -140 ct |
1417 -140 l 1418 -114 1425 -94 1439 -80 ct 1452 -65 1469 -58 1489 -58 ct 1502 -58 1514 -62 1523 -69 ct |
1532 -77 1540 -89 1544 -105 ct p |
1549 -193 m 1549 -219 1542 -238 1530 -251 ct 1517 -264 1502 -271 1484 -271 ct |
1465 -271 1450 -264 1437 -250 ct 1425 -236 1419 -217 1419 -193 ct 1549 -193 l |
p ef |
1705 0 m 1705 -455 l 1792 -455 l 1792 0 l 1705 0 l p ef |
2058 -330 m 2139 -330 l 2139 -281 l 2150 -298 2164 -311 2182 -322 ct 2200 -332 2220 -337 2242 -337 ct |
2280 -337 2313 -322 2339 -292 ct 2366 -262 2379 -220 2379 -167 ct 2379 -112 2366 -69 2339 -39 ct |
2312 -8 2280 7 2241 7 ct 2223 7 2207 3 2192 -4 ct 2177 -11 2162 -24 2145 -41 ct |
2145 125 l 2058 125 l 2058 -330 l p |
2144 -171 m 2144 -134 2152 -106 2166 -89 ct 2181 -71 2199 -62 2220 -62 ct 2240 -62 2257 -70 2270 -87 ct |
2284 -103 2291 -129 2291 -166 ct 2291 -201 2284 -226 2270 -243 ct 2256 -260 2239 -268 2218 -268 ct |
2197 -268 2179 -260 2165 -244 ct 2151 -227 2144 -203 2144 -171 ct p ef |
2534 0 m 2447 0 l 2447 -330 l 2528 -330 l 2528 -283 l 2542 -305 2554 -319 2565 -326 ct |
2576 -333 2589 -337 2603 -337 ct 2623 -337 2642 -332 2660 -321 ct 2633 -245 l |
2619 -254 2605 -259 2592 -259 ct 2580 -259 2570 -255 2561 -249 ct 2553 -242 2546 -230 2541 -212 ct |
2536 -195 2534 -158 2534 -102 ct 2534 0 l p ef |
2675 -170 m 2675 -199 2683 -227 2697 -254 ct 2711 -281 2731 -301 2757 -316 ct |
2784 -330 2813 -337 2845 -337 ct 2895 -337 2936 -321 2968 -289 ct 2999 -256 3015 -215 3015 -166 ct |
3015 -116 2999 -75 2967 -42 ct 2935 -9 2894 7 2846 7 ct 2815 7 2787 0 2759 -13 ct |
2732 -27 2711 -47 2697 -73 ct 2683 -100 2675 -132 2675 -170 ct p |
2765 -165 m 2765 -132 2772 -107 2788 -90 ct 2803 -73 2823 -64 2845 -64 ct 2868 -64 2887 -73 2903 -90 ct |
2918 -107 2926 -133 2926 -166 ct 2926 -198 2918 -223 2903 -240 ct 2887 -257 2868 -266 2845 -266 ct |
2823 -266 2803 -257 2788 -240 ct 2772 -223 2765 -198 2765 -165 ct p ef |
3083 -330 m 3164 -330 l 3164 -281 l 3175 -298 3189 -311 3207 -322 ct 3225 -332 3245 -337 3267 -337 ct |
3305 -337 3338 -322 3364 -292 ct 3391 -262 3404 -220 3404 -167 ct 3404 -112 3391 -69 3364 -39 ct |
3337 -8 3305 7 3266 7 ct 3248 7 3232 3 3217 -4 ct 3202 -11 3187 -24 3170 -41 ct |
3170 125 l 3083 125 l 3083 -330 l p |
3169 -171 m 3169 -134 3177 -106 3191 -89 ct 3206 -71 3224 -62 3245 -62 ct 3265 -62 3282 -70 3295 -87 ct |
3309 -103 3316 -129 3316 -166 ct 3316 -201 3309 -226 3295 -243 ct 3281 -260 3264 -268 3243 -268 ct |
3222 -268 3204 -260 3190 -244 ct 3176 -227 3169 -203 3169 -171 ct p ef |
3665 -105 m 3752 -91 l 3741 -59 3723 -35 3699 -18 ct 3675 -1 3645 7 3609 7 ct |
3552 7 3509 -12 3482 -49 ct 3460 -79 3449 -117 3449 -163 ct 3449 -218 3463 -260 3492 -291 ct |
3520 -322 3557 -338 3600 -338 ct 3649 -338 3688 -322 3716 -289 ct 3744 -257 3758 -207 3757 -140 ct |
3538 -140 l 3539 -114 3546 -94 3560 -80 ct 3573 -65 3590 -58 3610 -58 ct 3623 -58 3635 -62 3644 -69 ct |
3653 -77 3661 -89 3665 -105 ct p |
3670 -193 m 3670 -219 3663 -238 3651 -251 ct 3638 -264 3623 -271 3605 -271 ct |
3586 -271 3571 -264 3558 -250 ct 3546 -236 3540 -217 3540 -193 ct 3670 -193 l |
p ef |
3909 0 m 3822 0 l 3822 -330 l 3903 -330 l 3903 -283 l 3917 -305 3929 -319 3940 -326 ct |
3951 -333 3964 -337 3978 -337 ct 3998 -337 4017 -332 4035 -321 ct 4008 -245 l |
3994 -254 3980 -259 3967 -259 ct 3955 -259 3945 -255 3936 -249 ct 3928 -242 3921 -230 3916 -212 ct |
3911 -195 3909 -158 3909 -102 ct 3909 0 l p ef |
4223 -330 m 4223 -260 l 4163 -260 l 4163 -128 l 4163 -101 4164 -85 4165 -81 ct |
4166 -76 4168 -73 4173 -70 ct 4177 -67 4181 -65 4187 -65 ct 4195 -65 4207 -68 4222 -74 ct |
4230 -6 l 4209 3 4187 7 4161 7 ct 4145 7 4131 4 4118 -1 ct 4106 -6 4097 -13 4091 -21 ct |
4085 -30 4081 -41 4078 -55 ct 4077 -66 4076 -86 4076 -117 ct 4076 -260 l 4036 -260 l |
4036 -330 l 4076 -330 l 4076 -395 l 4163 -446 l 4163 -330 l 4223 -330 l |
p ef |
4284 -374 m 4284 -455 l 4371 -455 l 4371 -374 l 4284 -374 l p |
4284 0 m 4284 -330 l 4371 -330 l 4371 0 l 4284 0 l p ef |
4651 -105 m 4738 -91 l 4727 -59 4709 -35 4685 -18 ct 4661 -1 4631 7 4595 7 ct |
4538 7 4495 -12 4468 -49 ct 4446 -79 4435 -117 4435 -163 ct 4435 -218 4449 -260 4478 -291 ct |
4506 -322 4543 -338 4586 -338 ct 4635 -338 4674 -322 4702 -289 ct 4730 -257 4744 -207 4743 -140 ct |
4524 -140 l 4525 -114 4532 -94 4546 -80 ct 4559 -65 4576 -58 4596 -58 ct 4609 -58 4621 -62 4630 -69 ct |
4639 -77 4647 -89 4651 -105 ct p |
4656 -193 m 4656 -219 4649 -238 4637 -251 ct 4624 -264 4609 -271 4591 -271 ct |
4572 -271 4557 -264 4544 -250 ct 4532 -236 4526 -217 4526 -193 ct 4656 -193 l |
p ef |
4782 -95 m 4869 -108 l 4873 -91 4881 -78 4892 -69 ct 4903 -60 4919 -56 4940 -56 ct |
4962 -56 4979 -60 4991 -68 ct 4998 -74 5002 -82 5002 -92 ct 5002 -98 5000 -104 4996 -108 ct |
4991 -112 4982 -116 4967 -120 ct 4896 -135 4852 -149 4833 -162 ct 4807 -180 4794 -205 4794 -236 ct |
4794 -265 4805 -289 4828 -308 ct 4850 -328 4885 -338 4933 -338 ct 4978 -338 5011 -330 5033 -316 ct |
5055 -301 5070 -279 5078 -250 ct 4996 -235 l 4993 -248 4986 -258 4976 -265 ct |
4966 -272 4952 -275 4934 -275 ct 4911 -275 4895 -272 4885 -265 ct 4878 -261 4875 -255 4875 -248 ct |
4875 -241 4878 -236 4884 -232 ct 4891 -226 4919 -218 4965 -207 ct 5011 -197 5044 -184 5062 -168 ct |
5080 -153 5089 -131 5089 -104 ct 5089 -73 5077 -47 5052 -26 ct 5026 -4 4989 7 4940 7 ct |
4895 7 4859 -2 4833 -20 ct 4807 -39 4790 -63 4782 -95 ct p ef |
pom |
pum |
19621 5573 t |
33 0 m 33 -256 l 71 -256 l 71 -220 l 79 -233 90 -243 103 -251 ct 117 -258 132 -262 149 -262 ct |
168 -262 184 -258 196 -250 ct 208 -242 216 -231 221 -217 ct 242 -247 268 -262 301 -262 ct |
326 -262 345 -255 359 -241 ct 373 -227 380 -205 380 -176 ct 380 0 l 336 0 l |
336 -161 l 336 -179 335 -191 332 -199 ct 329 -207 324 -213 317 -217 ct 310 -222 301 -224 291 -224 ct |
273 -224 258 -218 246 -206 ct 234 -194 228 -175 228 -149 ct 228 0 l 185 0 l |
185 -166 l 185 -186 181 -200 174 -210 ct 167 -220 156 -224 139 -224 ct 127 -224 116 -221 106 -215 ct |
95 -208 88 -199 83 -186 ct 78 -174 76 -156 76 -133 ct 76 0 l 33 0 l p ef |
427 -128 m 427 -175 441 -211 467 -233 ct 489 -252 516 -262 548 -262 ct 583 -262 612 -250 634 -227 ct |
656 -204 667 -172 667 -132 ct 667 -99 662 -73 653 -54 ct 643 -35 628 -20 609 -10 ct |
591 1 570 6 548 6 ct 512 6 483 -6 461 -29 ct 438 -52 427 -85 427 -128 ct p |
472 -128 m 472 -95 479 -71 494 -54 ct 508 -38 526 -30 548 -30 ct 569 -30 587 -38 601 -54 ct |
616 -71 623 -96 623 -129 ct 623 -161 616 -185 601 -201 ct 587 -218 569 -226 548 -226 ct |
526 -226 508 -218 494 -202 ct 479 -185 472 -161 472 -128 ct p ef |
885 0 m 885 -32 l 869 -7 845 6 813 6 ct 793 6 774 0 757 -11 ct 740 -22 726 -38 717 -58 ct |
708 -78 703 -102 703 -128 ct 703 -153 707 -177 716 -197 ct 724 -218 737 -234 754 -245 ct |
771 -256 790 -262 811 -262 ct 827 -262 840 -259 852 -252 ct 865 -246 874 -237 882 -227 ct |
882 -354 l 925 -354 l 925 0 l 885 0 l p |
748 -128 m 748 -95 754 -70 768 -54 ct 782 -38 798 -30 817 -30 ct 836 -30 852 -37 866 -53 ct |
879 -69 885 -92 885 -124 ct 885 -159 879 -185 865 -201 ct 852 -218 835 -226 815 -226 ct |
796 -226 780 -218 767 -202 ct 754 -187 748 -162 748 -128 ct p ef |
1169 -82 m 1214 -77 l 1207 -51 1194 -30 1174 -16 ct 1155 -1 1131 6 1101 6 ct |
1064 6 1034 -6 1012 -29 ct 990 -52 979 -84 979 -126 ct 979 -169 990 -202 1012 -226 ct |
1035 -250 1063 -262 1099 -262 ct 1133 -262 1161 -250 1183 -227 ct 1204 -204 1215 -171 1215 -129 ct |
1215 -126 1215 -122 1215 -117 ct 1024 -117 l 1026 -89 1034 -67 1048 -52 ct |
1062 -37 1080 -30 1101 -30 ct 1117 -30 1131 -34 1142 -42 ct 1153 -51 1162 -64 1169 -82 ct |
p |
1026 -153 m 1169 -153 l 1167 -174 1162 -190 1153 -201 ct 1139 -218 1121 -226 1099 -226 ct |
1079 -226 1063 -219 1049 -206 ct 1035 -193 1028 -175 1026 -153 ct p ef |
1268 0 m 1268 -354 l 1311 -354 l 1311 0 l 1268 0 l p ef |
1686 -94 m 1728 -88 l 1724 -59 1712 -36 1693 -19 ct 1673 -2 1650 6 1622 6 ct |
1587 6 1559 -5 1537 -28 ct 1516 -51 1505 -84 1505 -127 ct 1505 -155 1510 -179 1519 -199 ct |
1528 -220 1542 -236 1561 -246 ct 1580 -257 1600 -262 1622 -262 ct 1650 -262 1673 -255 1690 -241 ct |
1708 -227 1719 -207 1724 -181 ct 1682 -174 l 1678 -191 1671 -204 1661 -213 ct |
1651 -222 1638 -226 1624 -226 ct 1602 -226 1584 -218 1570 -202 ct 1557 -187 1550 -162 1550 -128 ct |
1550 -94 1557 -69 1570 -53 ct 1583 -38 1600 -30 1621 -30 ct 1638 -30 1653 -35 1664 -45 ct |
1675 -56 1683 -72 1686 -94 ct p ef |
1769 0 m 1769 -354 l 1812 -354 l 1812 -227 l 1832 -250 1858 -262 1889 -262 ct |
1908 -262 1924 -258 1938 -251 ct 1952 -243 1962 -233 1968 -220 ct 1974 -207 1977 -187 1977 -162 ct |
1977 0 l 1934 0 l 1934 -162 l 1934 -184 1929 -200 1920 -210 ct 1910 -220 1897 -225 1880 -225 ct |
1867 -225 1855 -221 1843 -215 ct 1832 -208 1824 -199 1819 -187 ct 1814 -176 1812 -160 1812 -140 ct |
1812 0 l 1769 0 l p ef |
2219 -82 m 2264 -77 l 2257 -51 2244 -30 2224 -16 ct 2205 -1 2181 6 2151 6 ct |
2114 6 2084 -6 2062 -29 ct 2040 -52 2029 -84 2029 -126 ct 2029 -169 2040 -202 2062 -226 ct |
2085 -250 2113 -262 2149 -262 ct 2183 -262 2211 -250 2233 -227 ct 2254 -204 2265 -171 2265 -129 ct |
2265 -126 2265 -122 2265 -117 ct 2074 -117 l 2076 -89 2084 -67 2098 -52 ct |
2112 -37 2130 -30 2151 -30 ct 2167 -30 2181 -34 2192 -42 ct 2203 -51 2212 -64 2219 -82 ct |
p |
2076 -153 m 2219 -153 l 2217 -174 2212 -190 2203 -201 ct 2189 -218 2171 -226 2149 -226 ct |
2129 -226 2113 -219 2099 -206 ct 2085 -193 2078 -175 2076 -153 ct p ef |
2486 -94 m 2528 -88 l 2524 -59 2512 -36 2493 -19 ct 2473 -2 2450 6 2422 6 ct |
2387 6 2359 -5 2337 -28 ct 2316 -51 2305 -84 2305 -127 ct 2305 -155 2310 -179 2319 -199 ct |
2328 -220 2342 -236 2361 -246 ct 2380 -257 2400 -262 2422 -262 ct 2450 -262 2473 -255 2490 -241 ct |
2508 -227 2519 -207 2524 -181 ct 2482 -174 l 2478 -191 2471 -204 2461 -213 ct |
2451 -222 2438 -226 2424 -226 ct 2402 -226 2384 -218 2370 -202 ct 2357 -187 2350 -162 2350 -128 ct |
2350 -94 2357 -69 2370 -53 ct 2383 -38 2400 -30 2421 -30 ct 2438 -30 2453 -35 2464 -45 ct |
2475 -56 2483 -72 2486 -94 ct p ef |
2569 0 m 2569 -354 l 2612 -354 l 2612 -152 l 2715 -256 l 2771 -256 l |
2673 -161 l 2781 0 l 2728 0 l 2643 -131 l 2612 -102 l 2612 0 l 2569 0 l |
p ef |
2819 -304 m 2819 -354 l 2862 -354 l 2862 -304 l 2819 -304 l p |
2819 0 m 2819 -256 l 2862 -256 l 2862 0 l 2819 0 l p ef |
2929 0 m 2929 -256 l 2968 -256 l 2968 -220 l 2986 -248 3014 -262 3049 -262 ct |
3065 -262 3079 -259 3092 -254 ct 3105 -248 3114 -241 3121 -232 ct 3127 -223 3132 -212 3134 -200 ct |
3136 -192 3137 -178 3137 -158 ct 3137 0 l 3093 0 l 3093 -156 l 3093 -174 3092 -187 3088 -196 ct |
3085 -204 3079 -211 3070 -217 ct 3062 -222 3052 -224 3040 -224 ct 3022 -224 3006 -218 2992 -207 ct |
2979 -195 2972 -173 2972 -140 ct 2972 0 l 2929 0 l p ef |
3196 21 m 3238 28 l 3240 41 3244 50 3253 56 ct 3263 64 3278 68 3297 68 ct |
3317 68 3332 64 3343 56 ct 3354 48 3362 37 3365 22 ct 3368 13 3369 -5 3369 -34 ct |
3350 -11 3326 0 3298 0 ct 3262 0 3235 -13 3216 -38 ct 3197 -64 3187 -94 3187 -130 ct |
3187 -154 3191 -177 3200 -197 ct 3209 -218 3222 -234 3239 -245 ct 3255 -256 3275 -262 3298 -262 ct |
3328 -262 3353 -250 3373 -225 ct 3373 -256 l 3413 -256 l 3413 -35 l 3413 5 3409 33 3401 50 ct |
3392 67 3380 80 3362 90 ct 3344 99 3323 104 3297 104 ct 3266 104 3242 97 3223 83 ct |
3204 70 3195 49 3196 21 ct p |
3232 -133 m 3232 -99 3238 -75 3252 -59 ct 3265 -44 3282 -36 3302 -36 ct 3322 -36 3338 -44 3352 -59 ct |
3365 -74 3372 -98 3372 -131 ct 3372 -163 3365 -186 3351 -202 ct 3337 -218 3321 -226 3301 -226 ct |
3282 -226 3265 -218 3252 -203 ct 3238 -187 3232 -164 3232 -133 ct p ef |
3702 104 m 3678 74 3657 38 3641 -2 ct 3624 -43 3616 -85 3616 -128 ct 3616 -166 3622 -203 3634 -238 ct |
3649 -279 3671 -319 3702 -360 ct 3733 -360 l 3713 -326 3700 -302 3694 -288 ct |
3684 -266 3677 -243 3671 -219 ct 3664 -188 3661 -158 3661 -128 ct 3661 -50 3685 27 3733 104 ct |
3702 104 l p ef |
pom |
pum |
23372 5573 t |
35 -114 m 81 -119 l 81 -106 l 81 -93 84 -80 90 -69 ct 96 -58 107 -49 121 -43 ct |
136 -36 153 -33 173 -33 ct 201 -33 223 -40 237 -52 ct 252 -64 260 -78 260 -94 ct |
260 -106 256 -116 248 -125 ct 240 -134 218 -146 182 -162 ct 154 -174 135 -183 125 -189 ct |
109 -200 98 -211 90 -223 ct 82 -236 79 -250 79 -266 ct 79 -284 84 -300 94 -315 ct |
104 -330 118 -341 137 -348 ct 157 -356 178 -360 202 -360 ct 231 -360 255 -355 275 -346 ct |
295 -336 309 -323 318 -307 ct 327 -291 332 -275 332 -261 ct 332 -259 332 -257 331 -254 ct |
286 -250 l 286 -260 285 -268 283 -273 ct 280 -283 275 -291 268 -298 ct 261 -305 252 -310 240 -315 ct |
229 -319 215 -321 201 -321 ct 175 -321 155 -315 141 -303 ct 130 -294 124 -283 124 -268 ct |
124 -259 126 -252 131 -245 ct 135 -238 144 -231 155 -225 ct 164 -220 184 -211 215 -197 ct |
240 -186 258 -177 268 -170 ct 280 -162 290 -151 297 -139 ct 304 -127 308 -113 308 -98 ct |
308 -79 302 -61 290 -45 ct 278 -29 262 -16 242 -7 ct 221 2 198 6 171 6 ct 131 6 98 -3 73 -20 ct |
48 -38 35 -69 35 -114 ct p ef |
351 -1 m 425 -354 l 573 -354 l 598 -354 618 -351 630 -345 ct 643 -339 654 -329 662 -315 ct |
671 -301 675 -285 675 -267 ct 675 -253 672 -238 666 -223 ct 660 -207 652 -195 643 -185 ct |
634 -175 625 -168 616 -163 ct 606 -158 596 -154 586 -152 ct 563 -147 540 -144 517 -144 ct |
428 -144 l 399 -1 l 351 -1 l p |
437 -184 m 515 -184 l 545 -184 567 -187 581 -194 ct 595 -200 607 -210 615 -224 ct |
624 -237 628 -251 628 -266 ct 628 -278 626 -287 621 -294 ct 617 -302 611 -307 602 -310 ct |
594 -314 578 -316 555 -316 ct 464 -316 l 437 -184 l p ef |
688 0 m 762 -354 l 809 -354 l 736 0 l 688 0 l p ef |
824 0 m 898 -354 l 944 -354 l 1004 -221 l 1022 -180 1036 -146 1047 -119 ct |
1053 -103 1060 -81 1068 -54 ct 1072 -83 1078 -114 1084 -146 ct 1128 -354 l 1174 -354 l |
1100 0 l 1053 0 l 965 -204 l 950 -240 938 -272 929 -299 ct 927 -277 922 -248 915 -215 ct |
870 0 l 824 0 l p ef |
pom |
pum |
24532 5573 t |
61 104 m 30 104 l 78 27 102 -50 102 -128 ct 102 -158 99 -188 92 -218 ct 86 -242 79 -265 69 -287 ct |
62 -302 50 -326 30 -360 ct 61 -360 l 91 -319 114 -279 128 -238 ct 140 -203 147 -166 147 -128 ct |
147 -85 138 -43 122 -2 ct 105 38 85 74 61 104 ct p ef |
pom |
gr |
gs |
0 0 m 27939 0 l 27939 18592 l 0 18592 l 0 0 l eoclip newpath |
gr |
gr |
0 18593 t |
pom |
count op_count sub {pop} repeat countdictstack dict_count sub {end} repeat b4_inc_state restore |
%%PageTrailer |
%%Trailer |
%%EOF |
/papers/isarcs10/diag.odg |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/papers/isarcs10/latex.sh |
---|
0,0 → 1,21 |
#! /bin/bash |
RUBBER="`which rubber 2> /dev/null`" |
BASENAME="`basename "$1" .tex`" |
if [ -n "$RUBBER" ] ; then |
"$RUBBER" -fvpd -W all "$1" |
else |
for i in `seq 1 3` ; do |
latex -halt-on-error "$1" |
done |
dvips -t letter -o "${BASENAME}.ps" "${BASENAME}.dvi" |
ps2pdf "${BASENAME}.ps" "${BASENAME}.pdf" |
fi |
if [ -e "${BASENAME}.todo" ] ; then |
TODOS="`wc -l "${BASENAME}.todo" | cut -d' ' -f1`" |
if [ "$TODOS" -gt 0 ] ; then |
echo "Warning: $TODOS unresolved TODOs, see ${BASENAME}.todo for details" |
fi |
fi |
Property changes: |
Added: svn:executable |
+* |
\ No newline at end of property |
/papers/isarcs10/llncs.cls |
---|
0,0 → 1,1190 |
% LLNCS DOCUMENT CLASS -- version 2.14 (17-Aug-2004) |
% Springer Verlag LaTeX2e support for Lecture Notes in Computer Science |
% |
%% |
%% \CharacterTable |
%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z |
%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z |
%% Digits \0\1\2\3\4\5\6\7\8\9 |
%% Exclamation \! Double quote \" Hash (number) \# |
%% Dollar \$ Percent \% Ampersand \& |
%% Acute accent \' Left paren \( Right paren \) |
%% Asterisk \* Plus \+ Comma \, |
%% Minus \- Point \. Solidus \/ |
%% Colon \: Semicolon \; Less than \< |
%% Equals \= Greater than \> Question mark \? |
%% Commercial at \@ Left bracket \[ Backslash \\ |
%% Right bracket \] Circumflex \^ Underscore \_ |
%% Grave accent \` Left brace \{ Vertical bar \| |
%% Right brace \} Tilde \~} |
%% |
\NeedsTeXFormat{LaTeX2e}[1995/12/01] |
\ProvidesClass{llncs}[2004/08/17 v2.14 |
^^J LaTeX document class for Lecture Notes in Computer Science] |
% Options |
\let\if@envcntreset\iffalse |
\DeclareOption{envcountreset}{\let\if@envcntreset\iftrue} |
\DeclareOption{citeauthoryear}{\let\citeauthoryear=Y} |
\DeclareOption{oribibl}{\let\oribibl=Y} |
\let\if@custvec\iftrue |
\DeclareOption{orivec}{\let\if@custvec\iffalse} |
\let\if@envcntsame\iffalse |
\DeclareOption{envcountsame}{\let\if@envcntsame\iftrue} |
\let\if@envcntsect\iffalse |
\DeclareOption{envcountsect}{\let\if@envcntsect\iftrue} |
\let\if@runhead\iffalse |
\DeclareOption{runningheads}{\let\if@runhead\iftrue} |
\let\if@openbib\iffalse |
\DeclareOption{openbib}{\let\if@openbib\iftrue} |
% languages |
\let\switcht@@therlang\relax |
\def\ds@deutsch{\def\switcht@@therlang{\switcht@deutsch}} |
\def\ds@francais{\def\switcht@@therlang{\switcht@francais}} |
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}} |
\ProcessOptions |
\LoadClass[twoside]{article} |
\RequirePackage{multicol} % needed for the list of participants, index |
\setlength{\textwidth}{12.2cm} |
\setlength{\textheight}{19.3cm} |
\renewcommand\@pnumwidth{2em} |
\renewcommand\@tocrmarg{3.5em} |
% |
\def\@dottedtocline#1#2#3#4#5{% |
\ifnum #1>\c@tocdepth \else |
\vskip \z@ \@plus.2\p@ |
{\leftskip #2\relax \rightskip \@tocrmarg \advance\rightskip by 0pt plus 2cm |
\parfillskip -\rightskip \pretolerance=10000 |
\parindent #2\relax\@afterindenttrue |
\interlinepenalty\@M |
\leavevmode |
\@tempdima #3\relax |
\advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip |
{#4}\nobreak |
\leaders\hbox{$\m@th |
\mkern \@dotsep mu\hbox{.}\mkern \@dotsep |
mu$}\hfill |
\nobreak |
\hb@xt@\@pnumwidth{\hfil\normalfont \normalcolor #5}% |
\par}% |
\fi} |
% |
\def\switcht@albion{% |
\def\abstractname{Abstract.} |
\def\ackname{Acknowledgement.} |
\def\andname{and} |
\def\lastandname{\unskip, and} |
\def\appendixname{Appendix} |
\def\chaptername{Chapter} |
\def\claimname{Claim} |
\def\conjecturename{Conjecture} |
\def\contentsname{Table of Contents} |
\def\corollaryname{Corollary} |
\def\definitionname{Definition} |
\def\examplename{Example} |
\def\exercisename{Exercise} |
\def\figurename{Fig.} |
\def\keywordname{{\bf Key words:}} |
\def\indexname{Index} |
\def\lemmaname{Lemma} |
\def\contriblistname{List of Contributors} |
\def\listfigurename{List of Figures} |
\def\listtablename{List of Tables} |
\def\mailname{{\it Correspondence to\/}:} |
\def\noteaddname{Note added in proof} |
\def\notename{Note} |
\def\partname{Part} |
\def\problemname{Problem} |
\def\proofname{Proof} |
\def\propertyname{Property} |
\def\propositionname{Proposition} |
\def\questionname{Question} |
\def\remarkname{Remark} |
\def\seename{see} |
\def\solutionname{Solution} |
\def\subclassname{{\it Subject Classifications\/}:} |
\def\tablename{Table} |
\def\theoremname{Theorem}} |
\switcht@albion |
% Names of theorem like environments are already defined |
% but must be translated if another language is chosen |
% |
% French section |
\def\switcht@francais{%\typeout{On parle francais.}% |
\def\abstractname{R\'esum\'e.}% |
\def\ackname{Remerciements.}% |
\def\andname{et}% |
\def\lastandname{ et}% |
\def\appendixname{Appendice} |
\def\chaptername{Chapitre}% |
\def\claimname{Pr\'etention}% |
\def\conjecturename{Hypoth\`ese}% |
\def\contentsname{Table des mati\`eres}% |
\def\corollaryname{Corollaire}% |
\def\definitionname{D\'efinition}% |
\def\examplename{Exemple}% |
\def\exercisename{Exercice}% |
\def\figurename{Fig.}% |
\def\keywordname{{\bf Mots-cl\'e:}} |
\def\indexname{Index} |
\def\lemmaname{Lemme}% |
\def\contriblistname{Liste des contributeurs} |
\def\listfigurename{Liste des figures}% |
\def\listtablename{Liste des tables}% |
\def\mailname{{\it Correspondence to\/}:} |
\def\noteaddname{Note ajout\'ee \`a l'\'epreuve}% |
\def\notename{Remarque}% |
\def\partname{Partie}% |
\def\problemname{Probl\`eme}% |
\def\proofname{Preuve}% |
\def\propertyname{Caract\'eristique}% |
%\def\propositionname{Proposition}% |
\def\questionname{Question}% |
\def\remarkname{Remarque}% |
\def\seename{voir} |
\def\solutionname{Solution}% |
\def\subclassname{{\it Subject Classifications\/}:} |
\def\tablename{Tableau}% |
\def\theoremname{Th\'eor\`eme}% |
} |
% |
% German section |
\def\switcht@deutsch{%\typeout{Man spricht deutsch.}% |
\def\abstractname{Zusammenfassung.}% |
\def\ackname{Danksagung.}% |
\def\andname{und}% |
\def\lastandname{ und}% |
\def\appendixname{Anhang}% |
\def\chaptername{Kapitel}% |
\def\claimname{Behauptung}% |
\def\conjecturename{Hypothese}% |
\def\contentsname{Inhaltsverzeichnis}% |
\def\corollaryname{Korollar}% |
%\def\definitionname{Definition}% |
\def\examplename{Beispiel}% |
\def\exercisename{\"Ubung}% |
\def\figurename{Abb.}% |
\def\keywordname{{\bf Schl\"usselw\"orter:}} |
\def\indexname{Index} |
%\def\lemmaname{Lemma}% |
\def\contriblistname{Mitarbeiter} |
\def\listfigurename{Abbildungsverzeichnis}% |
\def\listtablename{Tabellenverzeichnis}% |
\def\mailname{{\it Correspondence to\/}:} |
\def\noteaddname{Nachtrag}% |
\def\notename{Anmerkung}% |
\def\partname{Teil}% |
%\def\problemname{Problem}% |
\def\proofname{Beweis}% |
\def\propertyname{Eigenschaft}% |
%\def\propositionname{Proposition}% |
\def\questionname{Frage}% |
\def\remarkname{Anmerkung}% |
\def\seename{siehe} |
\def\solutionname{L\"osung}% |
\def\subclassname{{\it Subject Classifications\/}:} |
\def\tablename{Tabelle}% |
%\def\theoremname{Theorem}% |
} |
% Ragged bottom for the actual page |
\def\thisbottomragged{\def\@textbottom{\vskip\z@ plus.0001fil |
\global\let\@textbottom\relax}} |
\renewcommand\small{% |
\@setfontsize\small\@ixpt{11}% |
\abovedisplayskip 8.5\p@ \@plus3\p@ \@minus4\p@ |
\abovedisplayshortskip \z@ \@plus2\p@ |
\belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@ |
\def\@listi{\leftmargin\leftmargini |
\parsep 0\p@ \@plus1\p@ \@minus\p@ |
\topsep 8\p@ \@plus2\p@ \@minus4\p@ |
\itemsep0\p@}% |
\belowdisplayskip \abovedisplayskip |
} |
\frenchspacing |
\widowpenalty=10000 |
\clubpenalty=10000 |
\setlength\oddsidemargin {63\p@} |
\setlength\evensidemargin {63\p@} |
\setlength\marginparwidth {90\p@} |
\setlength\headsep {16\p@} |
\setlength\footnotesep{7.7\p@} |
\setlength\textfloatsep{8mm\@plus 2\p@ \@minus 4\p@} |
\setlength\intextsep {8mm\@plus 2\p@ \@minus 2\p@} |
\setcounter{secnumdepth}{2} |
\newcounter {chapter} |
\renewcommand\thechapter {\@arabic\c@chapter} |
\newif\if@mainmatter \@mainmattertrue |
\newcommand\frontmatter{\cleardoublepage |
\@mainmatterfalse\pagenumbering{Roman}} |
\newcommand\mainmatter{\cleardoublepage |
\@mainmattertrue\pagenumbering{arabic}} |
\newcommand\backmatter{\if@openright\cleardoublepage\else\clearpage\fi |
\@mainmatterfalse} |
\renewcommand\part{\cleardoublepage |
\thispagestyle{empty}% |
\if@twocolumn |
\onecolumn |
\@tempswatrue |
\else |
\@tempswafalse |
\fi |
\null\vfil |
\secdef\@part\@spart} |
\def\@part[#1]#2{% |
\ifnum \c@secnumdepth >-2\relax |
\refstepcounter{part}% |
\addcontentsline{toc}{part}{\thepart\hspace{1em}#1}% |
\else |
\addcontentsline{toc}{part}{#1}% |
\fi |
\markboth{}{}% |
{\centering |
\interlinepenalty \@M |
\normalfont |
\ifnum \c@secnumdepth >-2\relax |
\huge\bfseries \partname~\thepart |
\par |
\vskip 20\p@ |
\fi |
\Huge \bfseries #2\par}% |
\@endpart} |
\def\@spart#1{% |
{\centering |
\interlinepenalty \@M |
\normalfont |
\Huge \bfseries #1\par}% |
\@endpart} |
\def\@endpart{\vfil\newpage |
\if@twoside |
\null |
\thispagestyle{empty}% |
\newpage |
\fi |
\if@tempswa |
\twocolumn |
\fi} |
\newcommand\chapter{\clearpage |
\thispagestyle{empty}% |
\global\@topnum\z@ |
\@afterindentfalse |
\secdef\@chapter\@schapter} |
\def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne |
\if@mainmatter |
\refstepcounter{chapter}% |
\typeout{\@chapapp\space\thechapter.}% |
\addcontentsline{toc}{chapter}% |
{\protect\numberline{\thechapter}#1}% |
\else |
\addcontentsline{toc}{chapter}{#1}% |
\fi |
\else |
\addcontentsline{toc}{chapter}{#1}% |
\fi |
\chaptermark{#1}% |
\addtocontents{lof}{\protect\addvspace{10\p@}}% |
\addtocontents{lot}{\protect\addvspace{10\p@}}% |
\if@twocolumn |
\@topnewpage[\@makechapterhead{#2}]% |
\else |
\@makechapterhead{#2}% |
\@afterheading |
\fi} |
\def\@makechapterhead#1{% |
% \vspace*{50\p@}% |
{\centering |
\ifnum \c@secnumdepth >\m@ne |
\if@mainmatter |
\large\bfseries \@chapapp{} \thechapter |
\par\nobreak |
\vskip 20\p@ |
\fi |
\fi |
\interlinepenalty\@M |
\Large \bfseries #1\par\nobreak |
\vskip 40\p@ |
}} |
\def\@schapter#1{\if@twocolumn |
\@topnewpage[\@makeschapterhead{#1}]% |
\else |
\@makeschapterhead{#1}% |
\@afterheading |
\fi} |
\def\@makeschapterhead#1{% |
% \vspace*{50\p@}% |
{\centering |
\normalfont |
\interlinepenalty\@M |
\Large \bfseries #1\par\nobreak |
\vskip 40\p@ |
}} |
\renewcommand\section{\@startsection{section}{1}{\z@}% |
{-18\p@ \@plus -4\p@ \@minus -4\p@}% |
{12\p@ \@plus 4\p@ \@minus 4\p@}% |
{\normalfont\large\bfseries\boldmath |
\rightskip=\z@ \@plus 8em\pretolerance=10000 }} |
\renewcommand\subsection{\@startsection{subsection}{2}{\z@}% |
{-18\p@ \@plus -4\p@ \@minus -4\p@}% |
{8\p@ \@plus 4\p@ \@minus 4\p@}% |
{\normalfont\normalsize\bfseries\boldmath |
\rightskip=\z@ \@plus 8em\pretolerance=10000 }} |
\renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}% |
{-18\p@ \@plus -4\p@ \@minus -4\p@}% |
{-0.5em \@plus -0.22em \@minus -0.1em}% |
{\normalfont\normalsize\bfseries\boldmath}} |
\renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}% |
{-12\p@ \@plus -4\p@ \@minus -4\p@}% |
{-0.5em \@plus -0.22em \@minus -0.1em}% |
{\normalfont\normalsize\itshape}} |
\renewcommand\subparagraph[1]{\typeout{LLNCS warning: You should not use |
\string\subparagraph\space with this class}\vskip0.5cm |
You should not use \verb|\subparagraph| with this class.\vskip0.5cm} |
\DeclareMathSymbol{\Gamma}{\mathalpha}{letters}{"00} |
\DeclareMathSymbol{\Delta}{\mathalpha}{letters}{"01} |
\DeclareMathSymbol{\Theta}{\mathalpha}{letters}{"02} |
\DeclareMathSymbol{\Lambda}{\mathalpha}{letters}{"03} |
\DeclareMathSymbol{\Xi}{\mathalpha}{letters}{"04} |
\DeclareMathSymbol{\Pi}{\mathalpha}{letters}{"05} |
\DeclareMathSymbol{\Sigma}{\mathalpha}{letters}{"06} |
\DeclareMathSymbol{\Upsilon}{\mathalpha}{letters}{"07} |
\DeclareMathSymbol{\Phi}{\mathalpha}{letters}{"08} |
\DeclareMathSymbol{\Psi}{\mathalpha}{letters}{"09} |
\DeclareMathSymbol{\Omega}{\mathalpha}{letters}{"0A} |
\let\footnotesize\small |
\if@custvec |
\def\vec#1{\mathchoice{\mbox{\boldmath$\displaystyle#1$}} |
{\mbox{\boldmath$\textstyle#1$}} |
{\mbox{\boldmath$\scriptstyle#1$}} |
{\mbox{\boldmath$\scriptscriptstyle#1$}}} |
\fi |
\def\squareforqed{\hbox{\rlap{$\sqcap$}$\sqcup$}} |
\def\qed{\ifmmode\squareforqed\else{\unskip\nobreak\hfil |
\penalty50\hskip1em\null\nobreak\hfil\squareforqed |
\parfillskip=0pt\finalhyphendemerits=0\endgraf}\fi} |
\def\getsto{\mathrel{\mathchoice {\vcenter{\offinterlineskip |
\halign{\hfil |
$\displaystyle##$\hfil\cr\gets\cr\to\cr}}} |
{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr\gets |
\cr\to\cr}}} |
{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr\gets |
\cr\to\cr}}} |
{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr |
\gets\cr\to\cr}}}}} |
\def\lid{\mathrel{\mathchoice {\vcenter{\offinterlineskip\halign{\hfil |
$\displaystyle##$\hfil\cr<\cr\noalign{\vskip1.2pt}=\cr}}} |
{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr<\cr |
\noalign{\vskip1.2pt}=\cr}}} |
{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr<\cr |
\noalign{\vskip1pt}=\cr}}} |
{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr |
<\cr |
\noalign{\vskip0.9pt}=\cr}}}}} |
\def\gid{\mathrel{\mathchoice {\vcenter{\offinterlineskip\halign{\hfil |
$\displaystyle##$\hfil\cr>\cr\noalign{\vskip1.2pt}=\cr}}} |
{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr>\cr |
\noalign{\vskip1.2pt}=\cr}}} |
{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr>\cr |
\noalign{\vskip1pt}=\cr}}} |
{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr |
>\cr |
\noalign{\vskip0.9pt}=\cr}}}}} |
\def\grole{\mathrel{\mathchoice {\vcenter{\offinterlineskip |
\halign{\hfil |
$\displaystyle##$\hfil\cr>\cr\noalign{\vskip-1pt}<\cr}}} |
{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr |
>\cr\noalign{\vskip-1pt}<\cr}}} |
{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr |
>\cr\noalign{\vskip-0.8pt}<\cr}}} |
{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr |
>\cr\noalign{\vskip-0.3pt}<\cr}}}}} |
\def\bbbr{{\rm I\!R}} %reelle Zahlen |
\def\bbbm{{\rm I\!M}} |
\def\bbbn{{\rm I\!N}} %natuerliche Zahlen |
\def\bbbf{{\rm I\!F}} |
\def\bbbh{{\rm I\!H}} |
\def\bbbk{{\rm I\!K}} |
\def\bbbp{{\rm I\!P}} |
\def\bbbone{{\mathchoice {\rm 1\mskip-4mu l} {\rm 1\mskip-4mu l} |
{\rm 1\mskip-4.5mu l} {\rm 1\mskip-5mu l}}} |
\def\bbbc{{\mathchoice {\setbox0=\hbox{$\displaystyle\rm C$}\hbox{\hbox |
to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}} |
{\setbox0=\hbox{$\textstyle\rm C$}\hbox{\hbox |
to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}} |
{\setbox0=\hbox{$\scriptstyle\rm C$}\hbox{\hbox |
to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}} |
{\setbox0=\hbox{$\scriptscriptstyle\rm C$}\hbox{\hbox |
to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}}}} |
\def\bbbq{{\mathchoice {\setbox0=\hbox{$\displaystyle\rm |
Q$}\hbox{\raise |
0.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.8\ht0\hss}\box0}} |
{\setbox0=\hbox{$\textstyle\rm Q$}\hbox{\raise |
0.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.8\ht0\hss}\box0}} |
{\setbox0=\hbox{$\scriptstyle\rm Q$}\hbox{\raise |
0.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.7\ht0\hss}\box0}} |
{\setbox0=\hbox{$\scriptscriptstyle\rm Q$}\hbox{\raise |
0.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.7\ht0\hss}\box0}}}} |
\def\bbbt{{\mathchoice {\setbox0=\hbox{$\displaystyle\rm |
T$}\hbox{\hbox to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}} |
{\setbox0=\hbox{$\textstyle\rm T$}\hbox{\hbox |
to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}} |
{\setbox0=\hbox{$\scriptstyle\rm T$}\hbox{\hbox |
to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}} |
{\setbox0=\hbox{$\scriptscriptstyle\rm T$}\hbox{\hbox |
to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}}}} |
\def\bbbs{{\mathchoice |
{\setbox0=\hbox{$\displaystyle \rm S$}\hbox{\raise0.5\ht0\hbox |
to0pt{\kern0.35\wd0\vrule height0.45\ht0\hss}\hbox |
to0pt{\kern0.55\wd0\vrule height0.5\ht0\hss}\box0}} |
{\setbox0=\hbox{$\textstyle \rm S$}\hbox{\raise0.5\ht0\hbox |
to0pt{\kern0.35\wd0\vrule height0.45\ht0\hss}\hbox |
to0pt{\kern0.55\wd0\vrule height0.5\ht0\hss}\box0}} |
{\setbox0=\hbox{$\scriptstyle \rm S$}\hbox{\raise0.5\ht0\hbox |
to0pt{\kern0.35\wd0\vrule height0.45\ht0\hss}\raise0.05\ht0\hbox |
to0pt{\kern0.5\wd0\vrule height0.45\ht0\hss}\box0}} |
{\setbox0=\hbox{$\scriptscriptstyle\rm S$}\hbox{\raise0.5\ht0\hbox |
to0pt{\kern0.4\wd0\vrule height0.45\ht0\hss}\raise0.05\ht0\hbox |
to0pt{\kern0.55\wd0\vrule height0.45\ht0\hss}\box0}}}} |
\def\bbbz{{\mathchoice {\hbox{$\mathsf\textstyle Z\kern-0.4em Z$}} |
{\hbox{$\mathsf\textstyle Z\kern-0.4em Z$}} |
{\hbox{$\mathsf\scriptstyle Z\kern-0.3em Z$}} |
{\hbox{$\mathsf\scriptscriptstyle Z\kern-0.2em Z$}}}} |
\let\ts\, |
\setlength\leftmargini {17\p@} |
\setlength\leftmargin {\leftmargini} |
\setlength\leftmarginii {\leftmargini} |
\setlength\leftmarginiii {\leftmargini} |
\setlength\leftmarginiv {\leftmargini} |
\setlength \labelsep {.5em} |
\setlength \labelwidth{\leftmargini} |
\addtolength\labelwidth{-\labelsep} |
\def\@listI{\leftmargin\leftmargini |
\parsep 0\p@ \@plus1\p@ \@minus\p@ |
\topsep 8\p@ \@plus2\p@ \@minus4\p@ |
\itemsep0\p@} |
\let\@listi\@listI |
\@listi |
\def\@listii {\leftmargin\leftmarginii |
\labelwidth\leftmarginii |
\advance\labelwidth-\labelsep |
\topsep 0\p@ \@plus2\p@ \@minus\p@} |
\def\@listiii{\leftmargin\leftmarginiii |
\labelwidth\leftmarginiii |
\advance\labelwidth-\labelsep |
\topsep 0\p@ \@plus\p@\@minus\p@ |
\parsep \z@ |
\partopsep \p@ \@plus\z@ \@minus\p@} |
\renewcommand\labelitemi{\normalfont\bfseries --} |
\renewcommand\labelitemii{$\m@th\bullet$} |
\setlength\arraycolsep{1.4\p@} |
\setlength\tabcolsep{1.4\p@} |
\def\tableofcontents{\chapter*{\contentsname\@mkboth{{\contentsname}}% |
{{\contentsname}}} |
\def\authcount##1{\setcounter{auco}{##1}\setcounter{@auth}{1}} |
\def\lastand{\ifnum\value{auco}=2\relax |
\unskip{} \andname\ |
\else |
\unskip \lastandname\ |
\fi}% |
\def\and{\stepcounter{@auth}\relax |
\ifnum\value{@auth}=\value{auco}% |
\lastand |
\else |
\unskip, |
\fi}% |
\@starttoc{toc}\if@restonecol\twocolumn\fi} |
\def\l@part#1#2{\addpenalty{\@secpenalty}% |
\addvspace{2em plus\p@}% % space above part line |
\begingroup |
\parindent \z@ |
\rightskip \z@ plus 5em |
\hrule\vskip5pt |
\large % same size as for a contribution heading |
\bfseries\boldmath % set line in boldface |
\leavevmode % TeX command to enter horizontal mode. |
#1\par |
\vskip5pt |
\hrule |
\vskip1pt |
\nobreak % Never break after part entry |
\endgroup} |
\def\@dotsep{2} |
\def\hyperhrefextend{\ifx\hyper@anchor\@undefined\else |
{chapter.\thechapter}\fi} |
\def\addnumcontentsmark#1#2#3{% |
\addtocontents{#1}{\protect\contentsline{#2}{\protect\numberline |
{\thechapter}#3}{\thepage}\hyperhrefextend}} |
\def\addcontentsmark#1#2#3{% |
\addtocontents{#1}{\protect\contentsline{#2}{#3}{\thepage}\hyperhrefextend}} |
\def\addcontentsmarkwop#1#2#3{% |
\addtocontents{#1}{\protect\contentsline{#2}{#3}{0}\hyperhrefextend}} |
\def\@adcmk[#1]{\ifcase #1 \or |
\def\@gtempa{\addnumcontentsmark}% |
\or \def\@gtempa{\addcontentsmark}% |
\or \def\@gtempa{\addcontentsmarkwop}% |
\fi\@gtempa{toc}{chapter}} |
\def\addtocmark{\@ifnextchar[{\@adcmk}{\@adcmk[3]}} |
\def\l@chapter#1#2{\addpenalty{-\@highpenalty} |
\vskip 1.0em plus 1pt \@tempdima 1.5em \begingroup |
\parindent \z@ \rightskip \@tocrmarg |
\advance\rightskip by 0pt plus 2cm |
\parfillskip -\rightskip \pretolerance=10000 |
\leavevmode \advance\leftskip\@tempdima \hskip -\leftskip |
{\large\bfseries\boldmath#1}\ifx0#2\hfil\null |
\else |
\nobreak |
\leaders\hbox{$\m@th \mkern \@dotsep mu.\mkern |
\@dotsep mu$}\hfill |
\nobreak\hbox to\@pnumwidth{\hss #2}% |
\fi\par |
\penalty\@highpenalty \endgroup} |
\def\l@title#1#2{\addpenalty{-\@highpenalty} |
\addvspace{8pt plus 1pt} |
\@tempdima \z@ |
\begingroup |
\parindent \z@ \rightskip \@tocrmarg |
\advance\rightskip by 0pt plus 2cm |
\parfillskip -\rightskip \pretolerance=10000 |
\leavevmode \advance\leftskip\@tempdima \hskip -\leftskip |
#1\nobreak |
\leaders\hbox{$\m@th \mkern \@dotsep mu.\mkern |
\@dotsep mu$}\hfill |
\nobreak\hbox to\@pnumwidth{\hss #2}\par |
\penalty\@highpenalty \endgroup} |
\def\l@author#1#2{\addpenalty{\@highpenalty} |
\@tempdima=15\p@ %\z@ |
\begingroup |
\parindent \z@ \rightskip \@tocrmarg |
\advance\rightskip by 0pt plus 2cm |
\pretolerance=10000 |
\leavevmode \advance\leftskip\@tempdima %\hskip -\leftskip |
\textit{#1}\par |
\penalty\@highpenalty \endgroup} |
\setcounter{tocdepth}{0} |
\newdimen\tocchpnum |
\newdimen\tocsecnum |
\newdimen\tocsectotal |
\newdimen\tocsubsecnum |
\newdimen\tocsubsectotal |
\newdimen\tocsubsubsecnum |
\newdimen\tocsubsubsectotal |
\newdimen\tocparanum |
\newdimen\tocparatotal |
\newdimen\tocsubparanum |
\tocchpnum=\z@ % no chapter numbers |
\tocsecnum=15\p@ % section 88. plus 2.222pt |
\tocsubsecnum=23\p@ % subsection 88.8 plus 2.222pt |
\tocsubsubsecnum=27\p@ % subsubsection 88.8.8 plus 1.444pt |
\tocparanum=35\p@ % paragraph 88.8.8.8 plus 1.666pt |
\tocsubparanum=43\p@ % subparagraph 88.8.8.8.8 plus 1.888pt |
\def\calctocindent{% |
\tocsectotal=\tocchpnum |
\advance\tocsectotal by\tocsecnum |
\tocsubsectotal=\tocsectotal |
\advance\tocsubsectotal by\tocsubsecnum |
\tocsubsubsectotal=\tocsubsectotal |
\advance\tocsubsubsectotal by\tocsubsubsecnum |
\tocparatotal=\tocsubsubsectotal |
\advance\tocparatotal by\tocparanum} |
\calctocindent |
\def\l@section{\@dottedtocline{1}{\tocchpnum}{\tocsecnum}} |
\def\l@subsection{\@dottedtocline{2}{\tocsectotal}{\tocsubsecnum}} |
\def\l@subsubsection{\@dottedtocline{3}{\tocsubsectotal}{\tocsubsubsecnum}} |
\def\l@paragraph{\@dottedtocline{4}{\tocsubsubsectotal}{\tocparanum}} |
\def\l@subparagraph{\@dottedtocline{5}{\tocparatotal}{\tocsubparanum}} |
\def\listoffigures{\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn |
\fi\section*{\listfigurename\@mkboth{{\listfigurename}}{{\listfigurename}}} |
\@starttoc{lof}\if@restonecol\twocolumn\fi} |
\def\l@figure{\@dottedtocline{1}{0em}{1.5em}} |
\def\listoftables{\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn |
\fi\section*{\listtablename\@mkboth{{\listtablename}}{{\listtablename}}} |
\@starttoc{lot}\if@restonecol\twocolumn\fi} |
\let\l@table\l@figure |
\renewcommand\listoffigures{% |
\section*{\listfigurename |
\@mkboth{\listfigurename}{\listfigurename}}% |
\@starttoc{lof}% |
} |
\renewcommand\listoftables{% |
\section*{\listtablename |
\@mkboth{\listtablename}{\listtablename}}% |
\@starttoc{lot}% |
} |
\ifx\oribibl\undefined |
\ifx\citeauthoryear\undefined |
\renewenvironment{thebibliography}[1] |
{\section*{\refname} |
\def\@biblabel##1{##1.} |
\small |
\list{\@biblabel{\@arabic\c@enumiv}}% |
{\settowidth\labelwidth{\@biblabel{#1}}% |
\leftmargin\labelwidth |
\advance\leftmargin\labelsep |
\if@openbib |
\advance\leftmargin\bibindent |
\itemindent -\bibindent |
\listparindent \itemindent |
\parsep \z@ |
\fi |
\usecounter{enumiv}% |
\let\p@enumiv\@empty |
\renewcommand\theenumiv{\@arabic\c@enumiv}}% |
\if@openbib |
\renewcommand\newblock{\par}% |
\else |
\renewcommand\newblock{\hskip .11em \@plus.33em \@minus.07em}% |
\fi |
\sloppy\clubpenalty4000\widowpenalty4000% |
\sfcode`\.=\@m} |
{\def\@noitemerr |
{\@latex@warning{Empty `thebibliography' environment}}% |
\endlist} |
\def\@lbibitem[#1]#2{\item[{[#1]}\hfill]\if@filesw |
{\let\protect\noexpand\immediate |
\write\@auxout{\string\bibcite{#2}{#1}}}\fi\ignorespaces} |
\newcount\@tempcntc |
\def\@citex[#1]#2{\if@filesw\immediate\write\@auxout{\string\citation{#2}}\fi |
\@tempcnta\z@\@tempcntb\m@ne\def\@citea{}\@cite{\@for\@citeb:=#2\do |
{\@ifundefined |
{b@\@citeb}{\@citeo\@tempcntb\m@ne\@citea\def\@citea{,}{\bfseries |
?}\@warning |
{Citation `\@citeb' on page \thepage \space undefined}}% |
{\setbox\z@\hbox{\global\@tempcntc0\csname b@\@citeb\endcsname\relax}% |
\ifnum\@tempcntc=\z@ \@citeo\@tempcntb\m@ne |
\@citea\def\@citea{,}\hbox{\csname b@\@citeb\endcsname}% |
\else |
\advance\@tempcntb\@ne |
\ifnum\@tempcntb=\@tempcntc |
\else\advance\@tempcntb\m@ne\@citeo |
\@tempcnta\@tempcntc\@tempcntb\@tempcntc\fi\fi}}\@citeo}{#1}} |
\def\@citeo{\ifnum\@tempcnta>\@tempcntb\else |
\@citea\def\@citea{,\,\hskip\z@skip}% |
\ifnum\@tempcnta=\@tempcntb\the\@tempcnta\else |
{\advance\@tempcnta\@ne\ifnum\@tempcnta=\@tempcntb \else |
\def\@citea{--}\fi |
\advance\@tempcnta\m@ne\the\@tempcnta\@citea\the\@tempcntb}\fi\fi} |
\else |
\renewenvironment{thebibliography}[1] |
{\section*{\refname} |
\small |
\list{}% |
{\settowidth\labelwidth{}% |
\leftmargin\parindent |
\itemindent=-\parindent |
\labelsep=\z@ |
\if@openbib |
\advance\leftmargin\bibindent |
\itemindent -\bibindent |
\listparindent \itemindent |
\parsep \z@ |
\fi |
\usecounter{enumiv}% |
\let\p@enumiv\@empty |
\renewcommand\theenumiv{}}% |
\if@openbib |
\renewcommand\newblock{\par}% |
\else |
\renewcommand\newblock{\hskip .11em \@plus.33em \@minus.07em}% |
\fi |
\sloppy\clubpenalty4000\widowpenalty4000% |
\sfcode`\.=\@m} |
{\def\@noitemerr |
{\@latex@warning{Empty `thebibliography' environment}}% |
\endlist} |
\def\@cite#1{#1}% |
\def\@lbibitem[#1]#2{\item[]\if@filesw |
{\def\protect##1{\string ##1\space}\immediate |
\write\@auxout{\string\bibcite{#2}{#1}}}\fi\ignorespaces} |
\fi |
\else |
\@cons\@openbib@code{\noexpand\small} |
\fi |
\def\idxquad{\hskip 10\p@}% space that divides entry from number |
\def\@idxitem{\par\hangindent 10\p@} |
\def\subitem{\par\setbox0=\hbox{--\enspace}% second order |
\noindent\hangindent\wd0\box0}% index entry |
\def\subsubitem{\par\setbox0=\hbox{--\,--\enspace}% third |
\noindent\hangindent\wd0\box0}% order index entry |
\def\indexspace{\par \vskip 10\p@ plus5\p@ minus3\p@\relax} |
\renewenvironment{theindex} |
{\@mkboth{\indexname}{\indexname}% |
\thispagestyle{empty}\parindent\z@ |
\parskip\z@ \@plus .3\p@\relax |
\let\item\par |
\def\,{\relax\ifmmode\mskip\thinmuskip |
\else\hskip0.2em\ignorespaces\fi}% |
\normalfont\small |
\begin{multicols}{2}[\@makeschapterhead{\indexname}]% |
} |
{\end{multicols}} |
\renewcommand\footnoterule{% |
\kern-3\p@ |
\hrule\@width 2truecm |
\kern2.6\p@} |
\newdimen\fnindent |
\fnindent1em |
\long\def\@makefntext#1{% |
\parindent \fnindent% |
\leftskip \fnindent% |
\noindent |
\llap{\hb@xt@1em{\hss\@makefnmark\ }}\ignorespaces#1} |
\long\def\@makecaption#1#2{% |
\vskip\abovecaptionskip |
\sbox\@tempboxa{{\bfseries #1.} #2}% |
\ifdim \wd\@tempboxa >\hsize |
{\bfseries #1.} #2\par |
\else |
\global \@minipagefalse |
\hb@xt@\hsize{\hfil\box\@tempboxa\hfil}% |
\fi |
\vskip\belowcaptionskip} |
\def\fps@figure{htbp} |
\def\fnum@figure{\figurename\thinspace\thefigure} |
\def \@floatboxreset {% |
\reset@font |
\small |
\@setnobreak |
\@setminipage |
} |
\def\fps@table{htbp} |
\def\fnum@table{\tablename~\thetable} |
\renewenvironment{table} |
{\setlength\abovecaptionskip{0\p@}% |
\setlength\belowcaptionskip{10\p@}% |
\@float{table}} |
{\end@float} |
\renewenvironment{table*} |
{\setlength\abovecaptionskip{0\p@}% |
\setlength\belowcaptionskip{10\p@}% |
\@dblfloat{table}} |
{\end@dblfloat} |
\long\def\@caption#1[#2]#3{\par\addcontentsline{\csname |
ext@#1\endcsname}{#1}{\protect\numberline{\csname |
the#1\endcsname}{\ignorespaces #2}}\begingroup |
\@parboxrestore |
\@makecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\par |
\endgroup} |
% LaTeX does not provide a command to enter the authors institute |
% addresses. The \institute command is defined here. |
\newcounter{@inst} |
\newcounter{@auth} |
\newcounter{auco} |
\newdimen\instindent |
\newbox\authrun |
\newtoks\authorrunning |
\newtoks\tocauthor |
\newbox\titrun |
\newtoks\titlerunning |
\newtoks\toctitle |
\def\clearheadinfo{\gdef\@author{No Author Given}% |
\gdef\@title{No Title Given}% |
\gdef\@subtitle{}% |
\gdef\@institute{No Institute Given}% |
\gdef\@thanks{}% |
\global\titlerunning={}\global\authorrunning={}% |
\global\toctitle={}\global\tocauthor={}} |
\def\institute#1{\gdef\@institute{#1}} |
\def\institutename{\par |
\begingroup |
\parskip=\z@ |
\parindent=\z@ |
\setcounter{@inst}{1}% |
\def\and{\par\stepcounter{@inst}% |
\noindent$^{\the@inst}$\enspace\ignorespaces}% |
\setbox0=\vbox{\def\thanks##1{}\@institute}% |
\ifnum\c@@inst=1\relax |
\gdef\fnnstart{0}% |
\else |
\xdef\fnnstart{\c@@inst}% |
\setcounter{@inst}{1}% |
\noindent$^{\the@inst}$\enspace |
\fi |
\ignorespaces |
\@institute\par |
\endgroup} |
\def\@fnsymbol#1{\ensuremath{\ifcase#1\or\star\or{\star\star}\or |
{\star\star\star}\or \dagger\or \ddagger\or |
\mathchar "278\or \mathchar "27B\or \|\or **\or \dagger\dagger |
\or \ddagger\ddagger \else\@ctrerr\fi}} |
\def\inst#1{\unskip$^{#1}$} |
\def\fnmsep{\unskip$^,$} |
\def\email#1{{\tt#1}} |
\AtBeginDocument{\@ifundefined{url}{\def\url#1{#1}}{}% |
\@ifpackageloaded{babel}{% |
\@ifundefined{extrasenglish}{}{\addto\extrasenglish{\switcht@albion}}% |
\@ifundefined{extrasfrenchb}{}{\addto\extrasfrenchb{\switcht@francais}}% |
\@ifundefined{extrasgerman}{}{\addto\extrasgerman{\switcht@deutsch}}% |
}{\switcht@@therlang}% |
} |
\def\homedir{\~{ }} |
\def\subtitle#1{\gdef\@subtitle{#1}} |
\clearheadinfo |
% |
\renewcommand\maketitle{\newpage |
\refstepcounter{chapter}% |
\stepcounter{section}% |
\setcounter{section}{0}% |
\setcounter{subsection}{0}% |
\setcounter{figure}{0} |
\setcounter{table}{0} |
\setcounter{equation}{0} |
\setcounter{footnote}{0}% |
\begingroup |
\parindent=\z@ |
\renewcommand\thefootnote{\@fnsymbol\c@footnote}% |
\if@twocolumn |
\ifnum \col@number=\@ne |
\@maketitle |
\else |
\twocolumn[\@maketitle]% |
\fi |
\else |
\newpage |
\global\@topnum\z@ % Prevents figures from going at top of page. |
\@maketitle |
\fi |
\thispagestyle{empty}\@thanks |
% |
\def\\{\unskip\ \ignorespaces}\def\inst##1{\unskip{}}% |
\def\thanks##1{\unskip{}}\def\fnmsep{\unskip}% |
\instindent=\hsize |
\advance\instindent by-\headlineindent |
\if!\the\toctitle!\addcontentsline{toc}{title}{\@title}\else |
\addcontentsline{toc}{title}{\the\toctitle}\fi |
\if@runhead |
\if!\the\titlerunning!\else |
\edef\@title{\the\titlerunning}% |
\fi |
\global\setbox\titrun=\hbox{\small\rm\unboldmath\ignorespaces\@title}% |
\ifdim\wd\titrun>\instindent |
\typeout{Title too long for running head. Please supply}% |
\typeout{a shorter form with \string\titlerunning\space prior to |
\string\maketitle}% |
\global\setbox\titrun=\hbox{\small\rm |
Title Suppressed Due to Excessive Length}% |
\fi |
\xdef\@title{\copy\titrun}% |
\fi |
% |
\if!\the\tocauthor!\relax |
{\def\and{\noexpand\protect\noexpand\and}% |
\protected@xdef\toc@uthor{\@author}}% |
\else |
\def\\{\noexpand\protect\noexpand\newline}% |
\protected@xdef\scratch{\the\tocauthor}% |
\protected@xdef\toc@uthor{\scratch}% |
\fi |
\addtocontents{toc}{\noexpand\protect\noexpand\authcount{\the\c@auco}}% |
\addcontentsline{toc}{author}{\toc@uthor}% |
\if@runhead |
\if!\the\authorrunning! |
\value{@inst}=\value{@auth}% |
\setcounter{@auth}{1}% |
\else |
\edef\@author{\the\authorrunning}% |
\fi |
\global\setbox\authrun=\hbox{\small\unboldmath\@author\unskip}% |
\ifdim\wd\authrun>\instindent |
\typeout{Names of authors too long for running head. Please supply}% |
\typeout{a shorter form with \string\authorrunning\space prior to |
\string\maketitle}% |
\global\setbox\authrun=\hbox{\small\rm |
Authors Suppressed Due to Excessive Length}% |
\fi |
\xdef\@author{\copy\authrun}% |
\markboth{\@author}{\@title}% |
\fi |
\endgroup |
\setcounter{footnote}{\fnnstart}% |
\clearheadinfo} |
% |
\def\@maketitle{\newpage |
\markboth{}{}% |
\def\lastand{\ifnum\value{@inst}=2\relax |
\unskip{} \andname\ |
\else |
\unskip \lastandname\ |
\fi}% |
\def\and{\stepcounter{@auth}\relax |
\ifnum\value{@auth}=\value{@inst}% |
\lastand |
\else |
\unskip, |
\fi}% |
\begin{center}% |
\let\newline\\ |
{\Large \bfseries\boldmath |
\pretolerance=10000 |
\@title \par}\vskip .8cm |
\if!\@subtitle!\else {\large \bfseries\boldmath |
\vskip -.65cm |
\pretolerance=10000 |
\@subtitle \par}\vskip .8cm\fi |
\setbox0=\vbox{\setcounter{@auth}{1}\def\and{\stepcounter{@auth}}% |
\def\thanks##1{}\@author}% |
\global\value{@inst}=\value{@auth}% |
\global\value{auco}=\value{@auth}% |
\setcounter{@auth}{1}% |
{\lineskip .5em |
\noindent\ignorespaces |
\@author\vskip.35cm} |
{\small\institutename} |
\end{center}% |
} |
% definition of the "\spnewtheorem" command. |
% |
% Usage: |
% |
% \spnewtheorem{env_nam}{caption}[within]{cap_font}{body_font} |
% or \spnewtheorem{env_nam}[numbered_like]{caption}{cap_font}{body_font} |
% or \spnewtheorem*{env_nam}{caption}{cap_font}{body_font} |
% |
% New is "cap_font" and "body_font". It stands for |
% fontdefinition of the caption and the text itself. |
% |
% "\spnewtheorem*" gives a theorem without number. |
% |
% A defined spnewthoerem environment is used as described |
% by Lamport. |
% |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
\def\@thmcountersep{} |
\def\@thmcounterend{.} |
\def\spnewtheorem{\@ifstar{\@sthm}{\@Sthm}} |
% definition of \spnewtheorem with number |
\def\@spnthm#1#2{% |
\@ifnextchar[{\@spxnthm{#1}{#2}}{\@spynthm{#1}{#2}}} |
\def\@Sthm#1{\@ifnextchar[{\@spothm{#1}}{\@spnthm{#1}}} |
\def\@spxnthm#1#2[#3]#4#5{\expandafter\@ifdefinable\csname #1\endcsname |
{\@definecounter{#1}\@addtoreset{#1}{#3}% |
\expandafter\xdef\csname the#1\endcsname{\expandafter\noexpand |
\csname the#3\endcsname \noexpand\@thmcountersep \@thmcounter{#1}}% |
\expandafter\xdef\csname #1name\endcsname{#2}% |
\global\@namedef{#1}{\@spthm{#1}{\csname #1name\endcsname}{#4}{#5}}% |
\global\@namedef{end#1}{\@endtheorem}}} |
\def\@spynthm#1#2#3#4{\expandafter\@ifdefinable\csname #1\endcsname |
{\@definecounter{#1}% |
\expandafter\xdef\csname the#1\endcsname{\@thmcounter{#1}}% |
\expandafter\xdef\csname #1name\endcsname{#2}% |
\global\@namedef{#1}{\@spthm{#1}{\csname #1name\endcsname}{#3}{#4}}% |
\global\@namedef{end#1}{\@endtheorem}}} |
\def\@spothm#1[#2]#3#4#5{% |
\@ifundefined{c@#2}{\@latexerr{No theorem environment `#2' defined}\@eha}% |
{\expandafter\@ifdefinable\csname #1\endcsname |
{\global\@namedef{the#1}{\@nameuse{the#2}}% |
\expandafter\xdef\csname #1name\endcsname{#3}% |
\global\@namedef{#1}{\@spthm{#2}{\csname #1name\endcsname}{#4}{#5}}% |
\global\@namedef{end#1}{\@endtheorem}}}} |
\def\@spthm#1#2#3#4{\topsep 7\p@ \@plus2\p@ \@minus4\p@ |
\refstepcounter{#1}% |
\@ifnextchar[{\@spythm{#1}{#2}{#3}{#4}}{\@spxthm{#1}{#2}{#3}{#4}}} |
\def\@spxthm#1#2#3#4{\@spbegintheorem{#2}{\csname the#1\endcsname}{#3}{#4}% |
\ignorespaces} |
\def\@spythm#1#2#3#4[#5]{\@spopargbegintheorem{#2}{\csname |
the#1\endcsname}{#5}{#3}{#4}\ignorespaces} |
\def\@spbegintheorem#1#2#3#4{\trivlist |
\item[\hskip\labelsep{#3#1\ #2\@thmcounterend}]#4} |
\def\@spopargbegintheorem#1#2#3#4#5{\trivlist |
\item[\hskip\labelsep{#4#1\ #2}]{#4(#3)\@thmcounterend\ }#5} |
% definition of \spnewtheorem* without number |
\def\@sthm#1#2{\@Ynthm{#1}{#2}} |
\def\@Ynthm#1#2#3#4{\expandafter\@ifdefinable\csname #1\endcsname |
{\global\@namedef{#1}{\@Thm{\csname #1name\endcsname}{#3}{#4}}% |
\expandafter\xdef\csname #1name\endcsname{#2}% |
\global\@namedef{end#1}{\@endtheorem}}} |
\def\@Thm#1#2#3{\topsep 7\p@ \@plus2\p@ \@minus4\p@ |
\@ifnextchar[{\@Ythm{#1}{#2}{#3}}{\@Xthm{#1}{#2}{#3}}} |
\def\@Xthm#1#2#3{\@Begintheorem{#1}{#2}{#3}\ignorespaces} |
\def\@Ythm#1#2#3[#4]{\@Opargbegintheorem{#1} |
{#4}{#2}{#3}\ignorespaces} |
\def\@Begintheorem#1#2#3{#3\trivlist |
\item[\hskip\labelsep{#2#1\@thmcounterend}]} |
\def\@Opargbegintheorem#1#2#3#4{#4\trivlist |
\item[\hskip\labelsep{#3#1}]{#3(#2)\@thmcounterend\ }} |
\if@envcntsect |
\def\@thmcountersep{.} |
\spnewtheorem{theorem}{Theorem}[section]{\bfseries}{\itshape} |
\else |
\spnewtheorem{theorem}{Theorem}{\bfseries}{\itshape} |
\if@envcntreset |
\@addtoreset{theorem}{section} |
\else |
\@addtoreset{theorem}{chapter} |
\fi |
\fi |
%definition of divers theorem environments |
\spnewtheorem*{claim}{Claim}{\itshape}{\rmfamily} |
\spnewtheorem*{proof}{Proof}{\itshape}{\rmfamily} |
\if@envcntsame % alle Umgebungen wie Theorem. |
\def\spn@wtheorem#1#2#3#4{\@spothm{#1}[theorem]{#2}{#3}{#4}} |
\else % alle Umgebungen mit eigenem Zaehler |
\if@envcntsect % mit section numeriert |
\def\spn@wtheorem#1#2#3#4{\@spxnthm{#1}{#2}[section]{#3}{#4}} |
\else % nicht mit section numeriert |
\if@envcntreset |
\def\spn@wtheorem#1#2#3#4{\@spynthm{#1}{#2}{#3}{#4} |
\@addtoreset{#1}{section}} |
\else |
\def\spn@wtheorem#1#2#3#4{\@spynthm{#1}{#2}{#3}{#4} |
\@addtoreset{#1}{chapter}}% |
\fi |
\fi |
\fi |
\spn@wtheorem{case}{Case}{\itshape}{\rmfamily} |
\spn@wtheorem{conjecture}{Conjecture}{\itshape}{\rmfamily} |
\spn@wtheorem{corollary}{Corollary}{\bfseries}{\itshape} |
\spn@wtheorem{definition}{Definition}{\bfseries}{\itshape} |
\spn@wtheorem{example}{Example}{\itshape}{\rmfamily} |
\spn@wtheorem{exercise}{Exercise}{\itshape}{\rmfamily} |
\spn@wtheorem{lemma}{Lemma}{\bfseries}{\itshape} |
\spn@wtheorem{note}{Note}{\itshape}{\rmfamily} |
\spn@wtheorem{problem}{Problem}{\itshape}{\rmfamily} |
\spn@wtheorem{property}{Property}{\itshape}{\rmfamily} |
\spn@wtheorem{proposition}{Proposition}{\bfseries}{\itshape} |
\spn@wtheorem{question}{Question}{\itshape}{\rmfamily} |
\spn@wtheorem{solution}{Solution}{\itshape}{\rmfamily} |
\spn@wtheorem{remark}{Remark}{\itshape}{\rmfamily} |
\def\@takefromreset#1#2{% |
\def\@tempa{#1}% |
\let\@tempd\@elt |
\def\@elt##1{% |
\def\@tempb{##1}% |
\ifx\@tempa\@tempb\else |
\@addtoreset{##1}{#2}% |
\fi}% |
\expandafter\expandafter\let\expandafter\@tempc\csname cl@#2\endcsname |
\expandafter\def\csname cl@#2\endcsname{}% |
\@tempc |
\let\@elt\@tempd} |
\def\theopargself{\def\@spopargbegintheorem##1##2##3##4##5{\trivlist |
\item[\hskip\labelsep{##4##1\ ##2}]{##4##3\@thmcounterend\ }##5} |
\def\@Opargbegintheorem##1##2##3##4{##4\trivlist |
\item[\hskip\labelsep{##3##1}]{##3##2\@thmcounterend\ }} |
} |
\renewenvironment{abstract}{% |
\list{}{\advance\topsep by0.35cm\relax\small |
\leftmargin=1cm |
\labelwidth=\z@ |
\listparindent=\z@ |
\itemindent\listparindent |
\rightmargin\leftmargin}\item[\hskip\labelsep |
\bfseries\abstractname]} |
{\endlist} |
\newdimen\headlineindent % dimension for space between |
\headlineindent=1.166cm % number and text of headings. |
\def\ps@headings{\let\@mkboth\@gobbletwo |
\let\@oddfoot\@empty\let\@evenfoot\@empty |
\def\@evenhead{\normalfont\small\rlap{\thepage}\hspace{\headlineindent}% |
\leftmark\hfil} |
\def\@oddhead{\normalfont\small\hfil\rightmark\hspace{\headlineindent}% |
\llap{\thepage}} |
\def\chaptermark##1{}% |
\def\sectionmark##1{}% |
\def\subsectionmark##1{}} |
\def\ps@titlepage{\let\@mkboth\@gobbletwo |
\let\@oddfoot\@empty\let\@evenfoot\@empty |
\def\@evenhead{\normalfont\small\rlap{\thepage}\hspace{\headlineindent}% |
\hfil} |
\def\@oddhead{\normalfont\small\hfil\hspace{\headlineindent}% |
\llap{\thepage}} |
\def\chaptermark##1{}% |
\def\sectionmark##1{}% |
\def\subsectionmark##1{}} |
\if@runhead\ps@headings\else |
\ps@empty\fi |
\setlength\arraycolsep{1.4\p@} |
\setlength\tabcolsep{1.4\p@} |
\endinput |
%end of file llncs.cls |
/papers/isarcs10/Makefile |
---|
0,0 → 1,11 |
DOCUMENT = isarcs10 |
.PHONY: all clean |
all: $(DOCUMENT).pdf |
$(DOCUMENT).pdf: clean $(DOCUMENT).tex |
./latex.sh $(DOCUMENT).tex |
clean: |
rm -f $(DOCUMENT).toc $(DOCUMENT).log $(DOCUMENT).aux $(DOCUMENT).out $(DOCUMENT).dvi $(DOCUMENT).ps $(DOCUMENT).pdf |
/papers/architecture.uxf |
---|
0,0 → 1,143 |
<?xml version="1.0" encoding="UTF-8" standalone="no"?> |
<umlet_diagram><help_text/> |
<element><type>com.umlet.element.base.Relation</type><coordinates><x>1410</x><y>350</y><w>440</w><h>140</h></coordinates><panel_attributes>lt=<[ipc] - (() - [ipc]></panel_attributes><additional_attributes>420;20;310;20;60;20;60;120;20;120</additional_attributes></element> |
<element><type>com.umlet.element.base.Relation</type><coordinates><x>1240</x><y>450</y><w>330</w><h>280</h></coordinates><panel_attributes>lt=<[ns] - (() - [ns]></panel_attributes><additional_attributes>40;20;20;50;20;150;310;150;310;260;280;260</additional_attributes></element> |
<element><type>com.umlet.element.base.Relation</type><coordinates><x>1500</x><y>350</y><w>350</w><h>420</h></coordinates><panel_attributes>lt=<[ipc] - (() - [ipc]></panel_attributes><additional_attributes>330;20;220;40;220;400;20;400</additional_attributes></element> |
<element><type>com.umlet.element.base.Relation</type><coordinates><x>1500</x><y>500</y><w>350</w><h>310</h></coordinates><panel_attributes>lt=<[ddi] - (() - [ddi]></panel_attributes><additional_attributes>330;20;260;50;260;290;20;290</additional_attributes></element> |
<element><type>com.umlet.element.base.Relation</type><coordinates><x>1190</x><y>190</y><w>110</w><h>300</h></coordinates><panel_attributes>lt=<[ns] - (() - [ns]></panel_attributes><additional_attributes>90;280;70;260;70;20;20;20</additional_attributes></element> |
<element><type>com.umlet.element.base.Relation</type><coordinates><x>1190</x><y>150</y><w>660</w><h>240</h></coordinates><panel_attributes>lt=<[ipc] - (() - [ipc]></panel_attributes><additional_attributes>640;220;410;20;20;20</additional_attributes></element> |
<element><type>com.umlet.element.base.Relation</type><coordinates><x>620</x><y>80</y><w>460</w><h>110</h></coordinates><panel_attributes>lt=<[dr] - (() - [dr]></panel_attributes><additional_attributes>440;90;400;90;400;20;20;20</additional_attributes></element> |
<element><type>com.umlet.element.base.Relation</type><coordinates><x>620</x><y>120</y><w>680</w><h>370</h></coordinates><panel_attributes>lt=<[ns] - (() - [ns]></panel_attributes><additional_attributes>660;350;120;350;120;20;20;20</additional_attributes></element> |
<element><type>com.umlet.element.base.Relation</type><coordinates><x>620</x><y>40</y><w>1230</w><h>350</h></coordinates><panel_attributes>lt=<[ipc] - (() - [ipc]></panel_attributes><additional_attributes>1210;330;1020;20;20;20</additional_attributes></element> |
<element><type>com.umlet.element.base.Relation</type><coordinates><x>620</x><y>160</y><w>1230</w><h>480</h></coordinates><panel_attributes>lt=<[ddi] - (() - [ddi]></panel_attributes><additional_attributes>1210;360;890;360;890;460;80;460;80;20;20;20</additional_attributes></element> |
<element><type>com.umlet.element.base.Relation</type><coordinates><x>710</x><y>60</y><w>1140</w><h>1050</h></coordinates><panel_attributes>lt=<[ipc] - (() - [ipc]></panel_attributes><additional_attributes>1120;310;890;20;120;20;120;1030;20;1030</additional_attributes></element> |
<element><type>com.umlet.element.base.Relation</type><coordinates><x>710</x><y>190</y><w>370</w><h>960</h></coordinates><panel_attributes>lt=<[dq] - (() - [dq]></panel_attributes><additional_attributes>350;20;150;20;150;940;20;940</additional_attributes></element> |
<element><type>com.umlet.element.base.Relation</type><coordinates><x>0</x><y>40</y><w>780</w><h>1150</h></coordinates><panel_attributes>lt=<[bio] - (() - [vio]></panel_attributes><additional_attributes>50;20;20;20;20;970;760;970;760;1130;730;1130</additional_attributes></element> |
<element><type>com.umlet.element.base.Relation</type><coordinates><x>960</x><y>920</y><w>350</w><h>500</h></coordinates><panel_attributes>lt=<[tui] - (() - [tui]></panel_attributes><additional_attributes>70;20;20;20;20;310;330;310;330;480;290;480</additional_attributes></element> |
<element><type>com.umlet.element.base.Relation</type><coordinates><x>940</x><y>450</y><w>410</w><h>1050</h></coordinates><panel_attributes>lt=<[ns] - (() - [ns]></panel_attributes><additional_attributes>340;20;20;80;20;870;390;870;390;1030;310;1030</additional_attributes></element> |
<element><type>com.umlet.element.base.Relation</type><coordinates><x>1230</x><y>350</y><w>620</w><h>1190</h></coordinates><panel_attributes>lt=<[ipc] - (() - [ipc]></panel_attributes><additional_attributes>600;20;510;70;510;1170;20;1170</additional_attributes></element> |
<element><type>com.umlet.element.base.Relation</type><coordinates><x>50</x><y>1070</y><w>1280</w><h>590</h></coordinates><panel_attributes>lt=<[fsio] - (() - [fsio]></panel_attributes><additional_attributes>60;20;20;20;20;570;1260;570;1260;490;1200;490</additional_attributes></element> |
<element><type>com.umlet.element.base.Relation</type><coordinates><x>1170</x><y>900</y><w>140</w><h>180</h></coordinates><panel_attributes>lt=<[kbd] - (() - [kbd]></panel_attributes><additional_attributes>120;20;80;20;80;160;20;160</additional_attributes></element> |
<element><type>com.umlet.element.base.Relation</type><coordinates><x>1040</x><y>800</y><w>200</w><h>240</h></coordinates><panel_attributes>lt=<[fb] - (() - [fb]></panel_attributes><additional_attributes>50;20;20;20;20;150;180;150;180;220;150;220</additional_attributes></element> |
<element><type>com.umlet.element.base.Relation</type><coordinates><x>150</x><y>1150</y><w>250</w><h>320</h></coordinates><panel_attributes>lt=<[ctrl] - (() - [ctrl]></panel_attributes><additional_attributes>70;20;20;20;20;250;230;250;230;280;200;300</additional_attributes></element> |
<element><type>com.umlet.element.base.Relation</type><coordinates><x>330</x><y>1360</y><w>160</w><h>110</h></coordinates><panel_attributes>lt=<[ctrl] - (() - [ctrl]></panel_attributes><additional_attributes>140;20;100;20;100;90;20;90</additional_attributes></element> |
<element><type>com.umlet.element.base.Relation</type><coordinates><x>180</x><y>1190</y><w>240</w><h>320</h></coordinates><panel_attributes>lt=<[io] - (() - [io]></panel_attributes><additional_attributes>40;20;20;20;20;180;220;180;220;270;170;300</additional_attributes></element> |
<element><type>com.umlet.element.base.Relation</type><coordinates><x>330</x><y>1400</y><w>160</w><h>110</h></coordinates><panel_attributes>lt=<[io] - (() - [io]></panel_attributes><additional_attributes>140;20;120;20;120;90;20;90</additional_attributes></element> |
<element><type>com.umlet.element.base.Relation</type><coordinates><x>2020</x><y>630</y><w>150</w><h>180</h></coordinates><panel_attributes>lt=<[mis] - (() - [mis]></panel_attributes><additional_attributes>130;20;90;20;90;160;20;160</additional_attributes></element> |
<element><type>com.umlet.element.base.Relation</type><coordinates><x>620</x><y>200</y><w>430</w><h>950</h></coordinates><panel_attributes>lt=<[con] - (() - [con]></panel_attributes><additional_attributes>410;930;300;900;300;530;60;530;60;20;20;20</additional_attributes></element> |
<element><type>com.umlet.element.base.Relation</type><coordinates><x>710</x><y>1110</y><w>340</w><h>120</h></coordinates><panel_attributes>lt=<[con] - (() - [con]></panel_attributes><additional_attributes>320;20;230;50;230;100;20;100</additional_attributes></element> |
<element><type>com.umlet.element.base.Relation</type><coordinates><x>1500</x><y>670</y><w>350</w><h>180</h></coordinates><panel_attributes>lt=<[sc] - (() - [sc]></panel_attributes><additional_attributes>330;20;280;20;280;160;20;160</additional_attributes></element> |
<element><type>com.umlet.element.base.Relation</type><coordinates><x>980</x><y>1110</y><w>350</w><h>350</h></coordinates><panel_attributes>lt=<[con] - (() - [con]></panel_attributes><additional_attributes>50;20;20;40;20;80;330;80;330;330;270;330</additional_attributes></element> |
<element><type>com.umlet.element.base.Relation</type><coordinates><x>980</x><y>490</y><w>510</w><h>660</h></coordinates><panel_attributes>lt=<[con] - (() - [con]></panel_attributes><additional_attributes>50;640;20;620;20;90;490;90;490;20;450;20</additional_attributes></element> |
<element><type>com.umlet.element.base.Relation</type><coordinates><x>920</x><y>230</y><w>340</w><h>920</h></coordinates><panel_attributes>lt=<[con] - (() - [con]></panel_attributes><additional_attributes>110;900;20;860;20;70;320;70;320;20;290;20</additional_attributes></element> |
<element><type>com.umlet.element.base.Relation</type><coordinates><x>2020</x><y>450</y><w>150</w><h>320</h></coordinates><panel_attributes>lt=<[con] - (() - [con]></panel_attributes><additional_attributes>130;20;70;20;70;300;20;300</additional_attributes></element> |
<element><type>com.umlet.element.base.Relation</type><coordinates><x>580</x><y>790</y><w>470</w><h>360</h></coordinates><panel_attributes>lt=<[con] - (() - [con]></panel_attributes><additional_attributes>450;340;320;340;320;20;20;20</additional_attributes></element> |
<element><type>com.umlet.element.base.Relation</type><coordinates><x>580</x><y>450</y><w>720</w><h>340</h></coordinates><panel_attributes>lt=<[ns] - (() - [ns]></panel_attributes><additional_attributes>700;20;140;70;140;320;20;320</additional_attributes></element> |
<element><type>com.umlet.element.base.Relation</type><coordinates><x>50</x><y>870</y><w>630</w><h>240</h></coordinates><panel_attributes>lt=<[fsio] - (() - [fsio]></panel_attributes><additional_attributes>60;220;20;190;20;110;610;110;610;20;550;20</additional_attributes></element> |
<element><type>com.umlet.element.base.Relation</type><coordinates><x>580</x><y>10</y><w>1270</w><h>860</h></coordinates><panel_attributes>lt=<[ipc] - (() - [ipc]></panel_attributes><additional_attributes>1250;360;1080;20;180;20;180;840;20;840</additional_attributes></element> |
<element><type>com.umlet.element.base.Relation</type><coordinates><x>1380</x><y>690</y><w>160</w><h>250</h></coordinates><panel_attributes>lt=<[>] - (() - [ns]></panel_attributes><additional_attributes>140;20;20;230</additional_attributes></element> |
<element><type>com.umlet.element.base.Relation</type><coordinates><x>1380</x><y>730</y><w>160</w><h>250</h></coordinates><panel_attributes>lt=<[>] - (() - [ipc]></panel_attributes><additional_attributes>140;20;20;230</additional_attributes></element> |
<element><type>com.umlet.element.base.Relation</type><coordinates><x>1380</x><y>770</y><w>160</w><h>250</h></coordinates><panel_attributes>lt=<[>] - (() - [ddi]></panel_attributes><additional_attributes>140;20;20;230</additional_attributes></element> |
<element><type>com.umlet.element.base.Relation</type><coordinates><x>1180</x><y>690</y><w>360</w><h>150</h></coordinates><panel_attributes>lt=<[>] - (() - [ns]></panel_attributes><additional_attributes>340;20;50;20;50;130;20;130</additional_attributes></element> |
<element><type>com.umlet.element.base.Relation</type><coordinates><x>1180</x><y>730</y><w>360</w><h>150</h></coordinates><panel_attributes>lt=<[>] - (() - [ipc]></panel_attributes><additional_attributes>340;20;70;20;70;130;20;130</additional_attributes></element> |
<element><type>com.umlet.element.base.Relation</type><coordinates><x>1180</x><y>770</y><w>360</w><h>150</h></coordinates><panel_attributes>lt=<[>] - (() - [ddi]></panel_attributes><additional_attributes>340;20;90;20;90;130;20;130</additional_attributes></element> |
<element><type>com.umlet.element.base.Relation</type><coordinates><x>430</x><y>40</y><w>230</w><h>410</h></coordinates><panel_attributes>lt=<[>] - (() - [ipc]></panel_attributes><additional_attributes>210;20;20;390</additional_attributes></element> |
<element><type>com.umlet.element.base.Relation</type><coordinates><x>430</x><y>80</y><w>230</w><h>410</h></coordinates><panel_attributes>lt=<[>] - (() - [dr]></panel_attributes><additional_attributes>210;20;20;390</additional_attributes></element> |
<element><type>com.umlet.element.base.Relation</type><coordinates><x>430</x><y>120</y><w>230</w><h>410</h></coordinates><panel_attributes>lt=<[>] - (() - [ns]></panel_attributes><additional_attributes>210;20;20;390</additional_attributes></element> |
<element><type>com.umlet.element.base.Relation</type><coordinates><x>430</x><y>160</y><w>230</w><h>410</h></coordinates><panel_attributes>lt=<[>] - (() - [ddi]></panel_attributes><additional_attributes>210;20;20;390</additional_attributes></element> |
<element><type>com.umlet.element.base.Relation</type><coordinates><x>250</x><y>160</y><w>410</w><h>150</h></coordinates><panel_attributes>lt=<[>] - (() - [ddi]></panel_attributes><additional_attributes>390;20;120;20;120;130;20;130</additional_attributes></element> |
<element><type>com.umlet.element.base.Relation</type><coordinates><x>250</x><y>120</y><w>410</w><h>150</h></coordinates><panel_attributes>lt=<[>] - (() - [ns]></panel_attributes><additional_attributes>390;20;100;20;100;130;20;130</additional_attributes></element> |
<element><type>com.umlet.element.base.Relation</type><coordinates><x>250</x><y>80</y><w>410</w><h>150</h></coordinates><panel_attributes>lt=<[>] - (() - [dr]></panel_attributes><additional_attributes>390;20;80;20;80;130;20;130</additional_attributes></element> |
<element><type>com.umlet.element.base.Relation</type><coordinates><x>250</x><y>40</y><w>410</w><h>150</h></coordinates><panel_attributes>lt=<[>] - (() - [ipc]></panel_attributes><additional_attributes>390;20;60;20;60;130;20;130</additional_attributes></element> |
<element><type>com.umlet.element.base.Relation</type><coordinates><x>580</x><y>1070</y><w>170</w><h>330</h></coordinates><panel_attributes>lt=<[>] - (() - [ipc]></panel_attributes><additional_attributes>150;20;20;310</additional_attributes></element> |
<element><type>com.umlet.element.base.Relation</type><coordinates><x>580</x><y>1110</y><w>170</w><h>330</h></coordinates><panel_attributes>lt=<[>] - (() - [dq]></panel_attributes><additional_attributes>150;20;20;310</additional_attributes></element> |
<element><type>com.umlet.element.base.Relation</type><coordinates><x>580</x><y>1150</y><w>170</w><h>330</h></coordinates><panel_attributes>lt=<[>] - (() - [bio]></panel_attributes><additional_attributes>150;20;20;310</additional_attributes></element> |
<element><type>com.umlet.element.base.Relation</type><coordinates><x>330</x><y>1070</y><w>420</w><h>120</h></coordinates><panel_attributes>lt=<[>] - (() - [ipc]></panel_attributes><additional_attributes>400;20;60;20;60;100;20;100</additional_attributes></element> |
<element><type>com.umlet.element.base.Relation</type><coordinates><x>330</x><y>1150</y><w>420</w><h>120</h></coordinates><panel_attributes>lt=<[>] - (() - [bio]></panel_attributes><additional_attributes>400;20;100;20;100;100;20;100</additional_attributes></element> |
<element><type>com.umlet.element.base.Relation</type><coordinates><x>330</x><y>1110</y><w>420</w><h>120</h></coordinates><panel_attributes>lt=<[>] - (() - [dq]></panel_attributes><additional_attributes>400;20;80;20;80;100;20;100</additional_attributes></element> |
<element><type>com.umlet.element.base.Relation</type><coordinates><x>1170</x><y>810</y><w>370</w><h>310</h></coordinates><panel_attributes>lt=<[>] - (() - [sc]></panel_attributes><additional_attributes>350;20;260;190;260;290;20;290</additional_attributes></element> |
<element><type>com.umlet.element.base.Relation</type><coordinates><x>430</x><y>200</y><w>230</w><h>410</h></coordinates><panel_attributes>lt=<[>] - (() - [con]></panel_attributes><additional_attributes>210;20;20;390</additional_attributes></element> |
<element><type>com.umlet.element.base.Relation</type><coordinates><x>250</x><y>200</y><w>410</w><h>150</h></coordinates><panel_attributes>lt=<[>] - (() - [con]></panel_attributes><additional_attributes>390;20;140;20;140;130;20;130</additional_attributes></element> |
<element><type>com.umlet.element.base.Relation</type><coordinates><x>580</x><y>1190</y><w>170</w><h>330</h></coordinates><panel_attributes>lt=<[>] - (() - [con]></panel_attributes><additional_attributes>150;20;20;310</additional_attributes></element> |
<element><type>com.umlet.element.base.Relation</type><coordinates><x>330</x><y>1190</y><w>420</w><h>120</h></coordinates><panel_attributes>lt=<[>] - (() - [con]></panel_attributes><additional_attributes>400;20;120;20;120;100;20;100</additional_attributes></element> |
<element><type>com.umlet.element.base.Relation</type><coordinates><x>330</x><y>1190</y><w>420</w><h>420</h></coordinates><panel_attributes>lt=<[>] - (() - [con]></panel_attributes><additional_attributes>400;20;300;400;70;400;70;340;20;340</additional_attributes></element> |
<element><type>com.umlet.element.base.Relation</type><coordinates><x>1810</x><y>670</y><w>120</w><h>100</h></coordinates><panel_attributes>lt=<[sc] - (() - [>]></panel_attributes><additional_attributes>100;80;20;20</additional_attributes></element> |
<element><type>com.umlet.element.base.Relation</type><coordinates><x>30</x><y>40</y><w>310</w><h>410</h></coordinates><panel_attributes>lt=<[bio] - (() - [>]></panel_attributes><additional_attributes>290;390;60;390;60;40;20;20</additional_attributes></element> |
<element><type>com.umlet.element.base.Relation</type><coordinates><x>30</x><y>40</y><w>130</w><h>150</h></coordinates><panel_attributes>lt=<[bio] - (() - [>]></panel_attributes><additional_attributes>110;130;80;130;80;20;20;20</additional_attributes></element> |
<element><type>com.umlet.element.base.Relation</type><coordinates><x>1010</x><y>920</y><w>90</w><h>120</h></coordinates><panel_attributes>lt=<[tui] - (() - [>]></panel_attributes><additional_attributes>70;100;20;20</additional_attributes></element> |
<element><type>com.umlet.element.base.Relation</type><coordinates><x>90</x><y>1070</y><w>150</w><h>400</h></coordinates><panel_attributes>lt=<[fsio] - (() - [>]></panel_attributes><additional_attributes>130;380;50;380;50;20;20;20</additional_attributes></element> |
<element><type>com.umlet.element.base.Relation</type><coordinates><x>1810</x><y>350</y><w>120</w><h>130</h></coordinates><panel_attributes>lt=<[ipc] - (() - [>]></panel_attributes><additional_attributes>100;110;20;20</additional_attributes></element> |
<element><type>com.umlet.element.base.Relation</type><coordinates><x>1810</x><y>500</y><w>120</w><h>120</h></coordinates><panel_attributes>lt=<[ddi] - (() - [>]></panel_attributes><additional_attributes>100;100;20;20</additional_attributes></element> |
<element><type>com.umlet.element.base.Relation</type><coordinates><x>1010</x><y>1040</y><w>90</w><h>110</h></coordinates><panel_attributes>lt=<[con] - (() - [>]></panel_attributes><additional_attributes>70;20;20;90</additional_attributes></element> |
<element><type>com.umlet.element.base.Relation</type><coordinates><x>1735</x><y>670</y><w>130</w><h>420</h></coordinates><panel_attributes>lt=<[].>()- |
<<implicit>></panel_attributes><additional_attributes>65;400;65;370;65;60;95;20</additional_attributes></element> |
<element><type>com.umlet.element.custom.Component</type><coordinates><x>1280</x><y>420</y><w>150</w><h>130</h></coordinates><panel_attributes>Naming Service |
bg=orange |
fg=red</panel_attributes><additional_attributes/></element> |
<element><type>com.umlet.element.custom.Component</type><coordinates><x>1910</x><y>410</y><w>130</w><h>90</h></coordinates><panel_attributes>IPC Subsystem |
fg=red |
bg=orange</panel_attributes><additional_attributes/></element> |
<element><type>com.umlet.element.custom.Component</type><coordinates><x>1830</x><y>320</y><w>470</w><h>550</h></coordinates><panel_attributes>'Kernel |
fg=red</panel_attributes><additional_attributes/></element> |
<element><type>com.umlet.element.custom.Component</type><coordinates><x>1030</x><y>660</y><w>490</w><h>510</h></coordinates><panel_attributes>'Console |
fg=red</panel_attributes><additional_attributes/></element> |
<element><type>com.umlet.element.custom.Component</type><coordinates><x>1090</x><y>770</y><w>110</w><h>160</h></coordinates><panel_attributes>Framebuffer |
driver |
bg=orange |
fg=red</panel_attributes><additional_attributes/></element> |
<element><type>com.umlet.element.custom.Component</type><coordinates><x>1290</x><y>870</y><w>110</w><h>160</h></coordinates><panel_attributes>Keyboard |
driver |
bg=orange |
fg=red</panel_attributes><additional_attributes/></element> |
<element><type>com.umlet.element.custom.Component</type><coordinates><x>1910</x><y>540</y><w>130</w><h>120</h></coordinates><panel_attributes>Device Driver |
Infrastructure |
fg=red |
bg=orange</panel_attributes><additional_attributes/></element> |
<element><type>com.umlet.element.custom.Component</type><coordinates><x>1060</x><y>120</y><w>150</w><h>160</h></coordinates><panel_attributes>Device Mapper |
bg=orange |
fg=red</panel_attributes><additional_attributes/></element> |
<element><type>com.umlet.element.custom.Component</type><coordinates><x>140</x><y>120</y><w>130</w><h>240</h></coordinates><panel_attributes>RAM Disk |
driver |
bg=orange |
fg=red</panel_attributes><additional_attributes/></element> |
<element><type>com.umlet.element.custom.Component</type><coordinates><x>320</x><y>380</y><w>130</w><h>240</h></coordinates><panel_attributes>ATA Disk |
driver |
bg=orange |
fg=red</panel_attributes><additional_attributes/></element> |
<element><type>com.umlet.element.custom.Component</type><coordinates><x>110</x><y>1040</y><w>620</w><h>580</h></coordinates><panel_attributes>'VFS |
fg=red</panel_attributes><additional_attributes/></element> |
<element><type>com.umlet.element.custom.Component</type><coordinates><x>50</x><y>10</y><w>590</w><h>630</h></coordinates><panel_attributes>'Block Device Infrastructure |
fg=red</panel_attributes><additional_attributes/></element> |
<element><type>com.umlet.element.custom.Component</type><coordinates><x>220</x><y>1120</y><w>130</w><h>200</h></coordinates><panel_attributes>tmpfs |
bg=orange |
fg=red</panel_attributes><additional_attributes/></element> |
<element><type>com.umlet.element.custom.Component</type><coordinates><x>1050</x><y>1350</y><w>200</w><h>250</h></coordinates><panel_attributes>generic |
user application |
bg=orange |
fg=red</panel_attributes><additional_attributes/></element> |
<element><type>com.umlet.element.custom.Component</type><coordinates><x>470</x><y>1330</y><w>130</w><h>200</h></coordinates><panel_attributes>FAT |
bg=orange |
fg=red</panel_attributes><additional_attributes/></element> |
<element><type>com.umlet.element.custom.Component</type><coordinates><x>1080</x><y>970</y><w>110</w><h>160</h></coordinates><panel_attributes>Console |
multiplexer |
bg=orange |
fg=red</panel_attributes><additional_attributes/></element> |
<element><type>com.umlet.element.custom.Component</type><coordinates><x>220</x><y>1420</y><w>130</w><h>140</h></coordinates><panel_attributes>VFS |
multiplexer |
bg=orange |
fg=red</panel_attributes><additional_attributes/></element> |
<element><type>com.umlet.element.custom.Component</type><coordinates><x>1910</x><y>700</y><w>130</w><h>130</h></coordinates><panel_attributes>Syscall API |
fg=red |
bg=orange</panel_attributes><additional_attributes/></element> |
<element><type>com.umlet.element.custom.Component</type><coordinates><x>2150</x><y>420</y><w>130</w><h>120</h></coordinates><panel_attributes>Kernel |
Console |
fg=red |
bg=orange</panel_attributes><additional_attributes/></element> |
<element><type>com.umlet.element.custom.Component</type><coordinates><x>2150</x><y>600</y><w>130</w><h>120</h></coordinates><panel_attributes>other kernel |
subsystems |
fg=red |
bg=orange</panel_attributes><additional_attributes/></element> |
<element><type>com.umlet.element.custom.Component</type><coordinates><x>400</x><y>710</y><w>200</w><h>220</h></coordinates><panel_attributes>Loader |
bg=orange |
fg=red</panel_attributes><additional_attributes/></element> |
</umlet_diagram> |
/refman/trunk/Doxyfile-generic-kernel |
---|
File deleted |
/refman/trunk/Doxyfile-ppc32-kernel |
---|
File deleted |
/refman/trunk/Doxyfile-amd64-kernel |
---|
File deleted |
/refman/trunk/Doxyfile-amd64-uspace |
---|
File deleted |
/refman/trunk/Doxyfile-generic-uspace |
---|
File deleted |
/refman/trunk/Doxyfile-ia32-kernel |
---|
File deleted |
/refman/trunk/Doxyfile-ia32-uspace |
---|
File deleted |
/refman/trunk/Doxyfile-ia64-kernel |
---|
File deleted |
/refman/trunk/Doxyfile-ia64-uspace |
---|
File deleted |
/refman/trunk/build |
---|
File deleted |
Property changes: |
Deleted: svn:executable |
/refman/trunk/Doxyfile-sparc64-kernel |
---|
File deleted |
/refman/trunk/Doxyfile-mips32-kernel |
---|
File deleted |
/refman/trunk/Doxyfile-mips32-uspace |
---|
File deleted |
/refman/trunk/Doxyfile-kernel-sparc64 |
---|
0,0 → 1,238 |
# Doxyfile 1.4.2 |
#--------------------------------------------------------------------------- |
# Project related configuration options |
#--------------------------------------------------------------------------- |
PROJECT_NAME = "HelenOS Kernel (sparc64)" |
PROJECT_NUMBER = "0.2.0" |
OUTPUT_DIRECTORY = $(DOCDIR)/doc/kernel-sparc64 |
CREATE_SUBDIRS = NO |
OUTPUT_LANGUAGE = English |
USE_WINDOWS_ENCODING = NO |
BRIEF_MEMBER_DESC = YES |
REPEAT_BRIEF = NO |
ABBREVIATE_BRIEF = "The $name class" \ |
"The $name widget" \ |
"The $name file" \ |
is \ |
provides \ |
specifies \ |
contains \ |
represents \ |
a \ |
an \ |
the |
ALWAYS_DETAILED_SEC = NO |
INLINE_INHERITED_MEMB = NO |
FULL_PATH_NAMES = YES |
STRIP_FROM_PATH = |
STRIP_FROM_INC_PATH = |
SHORT_NAMES = NO |
JAVADOC_AUTOBRIEF = NO |
MULTILINE_CPP_IS_BRIEF = NO |
DETAILS_AT_TOP = NO |
INHERIT_DOCS = NO |
DISTRIBUTE_GROUP_DOC = NO |
SEPARATE_MEMBER_PAGES = NO |
TAB_SIZE = 8 |
ALIASES = |
OPTIMIZE_OUTPUT_FOR_C = YES |
OPTIMIZE_OUTPUT_JAVA = NO |
SUBGROUPING = NO |
#--------------------------------------------------------------------------- |
# Build related configuration options |
#--------------------------------------------------------------------------- |
EXTRACT_ALL = NO |
EXTRACT_PRIVATE = NO |
EXTRACT_STATIC = YES |
EXTRACT_LOCAL_CLASSES = YES |
EXTRACT_LOCAL_METHODS = YES |
HIDE_UNDOC_MEMBERS = YES |
HIDE_UNDOC_CLASSES = YES |
HIDE_FRIEND_COMPOUNDS = NO |
HIDE_IN_BODY_DOCS = NO |
INTERNAL_DOCS = NO |
CASE_SENSE_NAMES = YES |
HIDE_SCOPE_NAMES = YES |
SHOW_INCLUDE_FILES = NO |
INLINE_INFO = NO |
SORT_MEMBER_DOCS = YES |
SORT_BRIEF_DOCS = NO |
SORT_BY_SCOPE_NAME = YES |
GENERATE_TODOLIST = YES |
GENERATE_TESTLIST = NO |
GENERATE_BUGLIST = YES |
GENERATE_DEPRECATEDLIST= NO |
ENABLED_SECTIONS = sparc64 |
MAX_INITIALIZER_LINES = 30 |
SHOW_USED_FILES = NO |
SHOW_DIRECTORIES = YES |
FILE_VERSION_FILTER = |
#--------------------------------------------------------------------------- |
# configuration options related to warning and progress messages |
#--------------------------------------------------------------------------- |
QUIET = NO |
WARNINGS = YES |
WARN_IF_UNDOCUMENTED = NO |
WARN_IF_DOC_ERROR = YES |
WARN_NO_PARAMDOC = NO |
WARN_FORMAT = "$file:$line: $text" |
WARN_LOGFILE = |
#--------------------------------------------------------------------------- |
# configuration options related to the input files |
#--------------------------------------------------------------------------- |
INPUT = $(SRCDIR)/kernel/doc \ |
$(SRCDIR)/kernel/generic \ |
$(SRCDIR)/kernel/genarch \ |
$(SRCDIR)/kernel/arch/sparc64 |
FILE_PATTERNS = *.c \ |
*.h |
RECURSIVE = YES |
EXCLUDE = |
EXCLUDE_SYMLINKS = YES |
EXCLUDE_PATTERNS = *_pt* \ |
*acpi* \ |
*softint* |
EXAMPLE_PATH = |
EXAMPLE_PATTERNS = * |
EXAMPLE_RECURSIVE = NO |
IMAGE_PATH = |
INPUT_FILTER = |
FILTER_PATTERNS = |
FILTER_SOURCE_FILES = NO |
#--------------------------------------------------------------------------- |
# configuration options related to source browsing |
#--------------------------------------------------------------------------- |
SOURCE_BROWSER = NO |
INLINE_SOURCES = NO |
STRIP_CODE_COMMENTS = YES |
REFERENCED_BY_RELATION = NO |
REFERENCES_RELATION = NO |
VERBATIM_HEADERS = NO |
#--------------------------------------------------------------------------- |
# configuration options related to the alphabetical class index |
#--------------------------------------------------------------------------- |
ALPHABETICAL_INDEX = YES |
COLS_IN_ALPHA_INDEX = 5 |
IGNORE_PREFIX = |
#--------------------------------------------------------------------------- |
# configuration options related to the HTML output |
#--------------------------------------------------------------------------- |
GENERATE_HTML = YES |
HTML_OUTPUT = html |
HTML_FILE_EXTENSION = .html |
HTML_HEADER = |
HTML_FOOTER = |
HTML_STYLESHEET = |
HTML_ALIGN_MEMBERS = YES |
GENERATE_HTMLHELP = NO |
CHM_FILE = |
HHC_LOCATION = |
GENERATE_CHI = NO |
BINARY_TOC = NO |
TOC_EXPAND = NO |
DISABLE_INDEX = NO |
ENUM_VALUES_PER_LINE = 4 |
GENERATE_TREEVIEW = NO |
TREEVIEW_WIDTH = 250 |
#--------------------------------------------------------------------------- |
# configuration options related to the LaTeX output |
#--------------------------------------------------------------------------- |
GENERATE_LATEX = NO |
LATEX_OUTPUT = latex |
LATEX_CMD_NAME = latex |
MAKEINDEX_CMD_NAME = makeindex |
COMPACT_LATEX = NO |
PAPER_TYPE = a4wide |
EXTRA_PACKAGES = |
LATEX_HEADER = |
PDF_HYPERLINKS = YES |
USE_PDFLATEX = YES |
LATEX_BATCHMODE = NO |
LATEX_HIDE_INDICES = NO |
#--------------------------------------------------------------------------- |
# configuration options related to the RTF output |
#--------------------------------------------------------------------------- |
GENERATE_RTF = NO |
RTF_OUTPUT = rtf |
COMPACT_RTF = NO |
RTF_HYPERLINKS = NO |
RTF_STYLESHEET_FILE = |
RTF_EXTENSIONS_FILE = |
#--------------------------------------------------------------------------- |
# configuration options related to the man page output |
#--------------------------------------------------------------------------- |
GENERATE_MAN = NO |
MAN_OUTPUT = man |
MAN_EXTENSION = .2 |
MAN_LINKS = YES |
#--------------------------------------------------------------------------- |
# configuration options related to the XML output |
#--------------------------------------------------------------------------- |
GENERATE_XML = NO |
XML_OUTPUT = xml |
XML_SCHEMA = |
XML_DTD = |
XML_PROGRAMLISTING = YES |
#--------------------------------------------------------------------------- |
# configuration options for the AutoGen Definitions output |
#--------------------------------------------------------------------------- |
GENERATE_AUTOGEN_DEF = NO |
#--------------------------------------------------------------------------- |
# configuration options related to the Perl module output |
#--------------------------------------------------------------------------- |
GENERATE_PERLMOD = NO |
PERLMOD_LATEX = NO |
PERLMOD_PRETTY = YES |
PERLMOD_MAKEVAR_PREFIX = |
#--------------------------------------------------------------------------- |
# Configuration options related to the preprocessor |
#--------------------------------------------------------------------------- |
ENABLE_PREPROCESSING = YES |
MACRO_EXPANSION = NO |
EXPAND_ONLY_PREDEF = NO |
SEARCH_INCLUDES = YES |
INCLUDE_PATH = |
INCLUDE_FILE_PATTERNS = |
PREDEFINED = CONFIG_SMP \ |
CONFIG_HT |
EXPAND_AS_DEFINED = |
SKIP_FUNCTION_MACROS = NO |
#--------------------------------------------------------------------------- |
# Configuration::additions related to external references |
#--------------------------------------------------------------------------- |
TAGFILES = |
GENERATE_TAGFILE = |
ALLEXTERNALS = NO |
EXTERNAL_GROUPS = YES |
PERL_PATH = /usr/bin/perl |
#--------------------------------------------------------------------------- |
# Configuration options related to the dot tool |
#--------------------------------------------------------------------------- |
CLASS_DIAGRAMS = NO |
HIDE_UNDOC_RELATIONS = YES |
HAVE_DOT = $(DOT) |
CLASS_GRAPH = NO |
COLLABORATION_GRAPH = NO |
GROUP_GRAPHS = NO |
UML_LOOK = NO |
TEMPLATE_RELATIONS = NO |
INCLUDE_GRAPH = YES |
INCLUDED_BY_GRAPH = YES |
CALL_GRAPH = YES |
GRAPHICAL_HIERARCHY = NO |
DIRECTORY_GRAPH = NO |
DOT_IMAGE_FORMAT = png |
DOT_PATH = |
DOTFILE_DIRS = |
MAX_DOT_GRAPH_WIDTH = 1024 |
MAX_DOT_GRAPH_HEIGHT = 1024 |
MAX_DOT_GRAPH_DEPTH = 1000 |
DOT_TRANSPARENT = NO |
DOT_MULTI_TARGETS = NO |
GENERATE_LEGEND = YES |
DOT_CLEANUP = YES |
#--------------------------------------------------------------------------- |
# Configuration::additions related to the search engine |
#--------------------------------------------------------------------------- |
SEARCHENGINE = NO |
/refman/trunk/Doxyfile-kernel-ia64 |
---|
0,0 → 1,240 |
# Doxyfile 1.4.2 |
#--------------------------------------------------------------------------- |
# Project related configuration options |
#--------------------------------------------------------------------------- |
PROJECT_NAME = "HelenOS Kernel (ia64)" |
PROJECT_NUMBER = "0.2.0" |
OUTPUT_DIRECTORY = $(DOCDIR)/doc/kernel-ia64 |
CREATE_SUBDIRS = NO |
OUTPUT_LANGUAGE = English |
USE_WINDOWS_ENCODING = NO |
BRIEF_MEMBER_DESC = YES |
REPEAT_BRIEF = NO |
ABBREVIATE_BRIEF = "The $name class" \ |
"The $name widget" \ |
"The $name file" \ |
is \ |
provides \ |
specifies \ |
contains \ |
represents \ |
a \ |
an \ |
the |
ALWAYS_DETAILED_SEC = NO |
INLINE_INHERITED_MEMB = NO |
FULL_PATH_NAMES = YES |
STRIP_FROM_PATH = |
STRIP_FROM_INC_PATH = |
SHORT_NAMES = NO |
JAVADOC_AUTOBRIEF = NO |
MULTILINE_CPP_IS_BRIEF = NO |
DETAILS_AT_TOP = NO |
INHERIT_DOCS = NO |
DISTRIBUTE_GROUP_DOC = NO |
SEPARATE_MEMBER_PAGES = NO |
TAB_SIZE = 8 |
ALIASES = |
OPTIMIZE_OUTPUT_FOR_C = YES |
OPTIMIZE_OUTPUT_JAVA = NO |
SUBGROUPING = NO |
#--------------------------------------------------------------------------- |
# Build related configuration options |
#--------------------------------------------------------------------------- |
EXTRACT_ALL = NO |
EXTRACT_PRIVATE = NO |
EXTRACT_STATIC = YES |
EXTRACT_LOCAL_CLASSES = YES |
EXTRACT_LOCAL_METHODS = YES |
HIDE_UNDOC_MEMBERS = YES |
HIDE_UNDOC_CLASSES = YES |
HIDE_FRIEND_COMPOUNDS = NO |
HIDE_IN_BODY_DOCS = NO |
INTERNAL_DOCS = NO |
CASE_SENSE_NAMES = YES |
HIDE_SCOPE_NAMES = YES |
SHOW_INCLUDE_FILES = NO |
INLINE_INFO = NO |
SORT_MEMBER_DOCS = YES |
SORT_BRIEF_DOCS = NO |
SORT_BY_SCOPE_NAME = YES |
GENERATE_TODOLIST = YES |
GENERATE_TESTLIST = NO |
GENERATE_BUGLIST = YES |
GENERATE_DEPRECATEDLIST= NO |
ENABLED_SECTIONS = ia64 |
MAX_INITIALIZER_LINES = 30 |
SHOW_USED_FILES = NO |
SHOW_DIRECTORIES = YES |
FILE_VERSION_FILTER = |
#--------------------------------------------------------------------------- |
# configuration options related to warning and progress messages |
#--------------------------------------------------------------------------- |
QUIET = NO |
WARNINGS = YES |
WARN_IF_UNDOCUMENTED = NO |
WARN_IF_DOC_ERROR = YES |
WARN_NO_PARAMDOC = NO |
WARN_FORMAT = "$file:$line: $text" |
WARN_LOGFILE = |
#--------------------------------------------------------------------------- |
# configuration options related to the input files |
#--------------------------------------------------------------------------- |
INPUT = $(SRCDIR)/kernel/doc \ |
$(SRCDIR)/kernel/generic \ |
$(SRCDIR)/kernel/genarch \ |
$(SRCDIR)/kernel/arch/ia64 |
FILE_PATTERNS = *.c \ |
*.h |
RECURSIVE = YES |
EXCLUDE = |
EXCLUDE_SYMLINKS = YES |
EXCLUDE_PATTERNS = *ofw* \ |
*_pt* \ |
*acpi* \ |
*i8042* \ |
*fb* |
EXAMPLE_PATH = |
EXAMPLE_PATTERNS = * |
EXAMPLE_RECURSIVE = NO |
IMAGE_PATH = |
INPUT_FILTER = |
FILTER_PATTERNS = |
FILTER_SOURCE_FILES = NO |
#--------------------------------------------------------------------------- |
# configuration options related to source browsing |
#--------------------------------------------------------------------------- |
SOURCE_BROWSER = NO |
INLINE_SOURCES = NO |
STRIP_CODE_COMMENTS = YES |
REFERENCED_BY_RELATION = NO |
REFERENCES_RELATION = NO |
VERBATIM_HEADERS = NO |
#--------------------------------------------------------------------------- |
# configuration options related to the alphabetical class index |
#--------------------------------------------------------------------------- |
ALPHABETICAL_INDEX = YES |
COLS_IN_ALPHA_INDEX = 5 |
IGNORE_PREFIX = |
#--------------------------------------------------------------------------- |
# configuration options related to the HTML output |
#--------------------------------------------------------------------------- |
GENERATE_HTML = YES |
HTML_OUTPUT = html |
HTML_FILE_EXTENSION = .html |
HTML_HEADER = |
HTML_FOOTER = |
HTML_STYLESHEET = |
HTML_ALIGN_MEMBERS = YES |
GENERATE_HTMLHELP = NO |
CHM_FILE = |
HHC_LOCATION = |
GENERATE_CHI = NO |
BINARY_TOC = NO |
TOC_EXPAND = NO |
DISABLE_INDEX = NO |
ENUM_VALUES_PER_LINE = 4 |
GENERATE_TREEVIEW = NO |
TREEVIEW_WIDTH = 250 |
#--------------------------------------------------------------------------- |
# configuration options related to the LaTeX output |
#--------------------------------------------------------------------------- |
GENERATE_LATEX = NO |
LATEX_OUTPUT = latex |
LATEX_CMD_NAME = latex |
MAKEINDEX_CMD_NAME = makeindex |
COMPACT_LATEX = NO |
PAPER_TYPE = a4wide |
EXTRA_PACKAGES = |
LATEX_HEADER = |
PDF_HYPERLINKS = YES |
USE_PDFLATEX = YES |
LATEX_BATCHMODE = NO |
LATEX_HIDE_INDICES = NO |
#--------------------------------------------------------------------------- |
# configuration options related to the RTF output |
#--------------------------------------------------------------------------- |
GENERATE_RTF = NO |
RTF_OUTPUT = rtf |
COMPACT_RTF = NO |
RTF_HYPERLINKS = NO |
RTF_STYLESHEET_FILE = |
RTF_EXTENSIONS_FILE = |
#--------------------------------------------------------------------------- |
# configuration options related to the man page output |
#--------------------------------------------------------------------------- |
GENERATE_MAN = NO |
MAN_OUTPUT = man |
MAN_EXTENSION = .2 |
MAN_LINKS = YES |
#--------------------------------------------------------------------------- |
# configuration options related to the XML output |
#--------------------------------------------------------------------------- |
GENERATE_XML = NO |
XML_OUTPUT = xml |
XML_SCHEMA = |
XML_DTD = |
XML_PROGRAMLISTING = YES |
#--------------------------------------------------------------------------- |
# configuration options for the AutoGen Definitions output |
#--------------------------------------------------------------------------- |
GENERATE_AUTOGEN_DEF = NO |
#--------------------------------------------------------------------------- |
# configuration options related to the Perl module output |
#--------------------------------------------------------------------------- |
GENERATE_PERLMOD = NO |
PERLMOD_LATEX = NO |
PERLMOD_PRETTY = YES |
PERLMOD_MAKEVAR_PREFIX = |
#--------------------------------------------------------------------------- |
# Configuration options related to the preprocessor |
#--------------------------------------------------------------------------- |
ENABLE_PREPROCESSING = YES |
MACRO_EXPANSION = NO |
EXPAND_ONLY_PREDEF = NO |
SEARCH_INCLUDES = YES |
INCLUDE_PATH = |
INCLUDE_FILE_PATTERNS = |
PREDEFINED = CONFIG_SMP \ |
CONFIG_HT |
EXPAND_AS_DEFINED = |
SKIP_FUNCTION_MACROS = NO |
#--------------------------------------------------------------------------- |
# Configuration::additions related to external references |
#--------------------------------------------------------------------------- |
TAGFILES = |
GENERATE_TAGFILE = |
ALLEXTERNALS = NO |
EXTERNAL_GROUPS = YES |
PERL_PATH = /usr/bin/perl |
#--------------------------------------------------------------------------- |
# Configuration options related to the dot tool |
#--------------------------------------------------------------------------- |
CLASS_DIAGRAMS = NO |
HIDE_UNDOC_RELATIONS = YES |
HAVE_DOT = $(DOT) |
CLASS_GRAPH = NO |
COLLABORATION_GRAPH = NO |
GROUP_GRAPHS = NO |
UML_LOOK = NO |
TEMPLATE_RELATIONS = NO |
INCLUDE_GRAPH = YES |
INCLUDED_BY_GRAPH = YES |
CALL_GRAPH = YES |
GRAPHICAL_HIERARCHY = NO |
DIRECTORY_GRAPH = NO |
DOT_IMAGE_FORMAT = png |
DOT_PATH = |
DOTFILE_DIRS = |
MAX_DOT_GRAPH_WIDTH = 1024 |
MAX_DOT_GRAPH_HEIGHT = 1024 |
MAX_DOT_GRAPH_DEPTH = 1000 |
DOT_TRANSPARENT = NO |
DOT_MULTI_TARGETS = NO |
GENERATE_LEGEND = YES |
DOT_CLEANUP = YES |
#--------------------------------------------------------------------------- |
# Configuration::additions related to the search engine |
#--------------------------------------------------------------------------- |
SEARCHENGINE = NO |
/refman/trunk/Doxyfile-uspace-ia64 |
---|
0,0 → 1,253 |
# Doxyfile 1.4.2 |
#--------------------------------------------------------------------------- |
# Project related configuration options |
#--------------------------------------------------------------------------- |
PROJECT_NAME = "HelenOS Userspace (ia64)" |
PROJECT_NUMBER = "0.2.0" |
OUTPUT_DIRECTORY = $(DOCDIR)/doc/uspace-ia64 |
CREATE_SUBDIRS = NO |
OUTPUT_LANGUAGE = English |
USE_WINDOWS_ENCODING = NO |
BRIEF_MEMBER_DESC = YES |
REPEAT_BRIEF = NO |
ABBREVIATE_BRIEF = "The $name class" \ |
"The $name widget" \ |
"The $name file" \ |
is \ |
provides \ |
specifies \ |
contains \ |
represents \ |
a \ |
an \ |
the |
ALWAYS_DETAILED_SEC = NO |
INLINE_INHERITED_MEMB = NO |
FULL_PATH_NAMES = NO |
STRIP_FROM_PATH = |
STRIP_FROM_INC_PATH = |
SHORT_NAMES = NO |
JAVADOC_AUTOBRIEF = NO |
MULTILINE_CPP_IS_BRIEF = NO |
DETAILS_AT_TOP = NO |
INHERIT_DOCS = NO |
DISTRIBUTE_GROUP_DOC = NO |
SEPARATE_MEMBER_PAGES = NO |
TAB_SIZE = 8 |
ALIASES = |
OPTIMIZE_OUTPUT_FOR_C = YES |
OPTIMIZE_OUTPUT_JAVA = NO |
SUBGROUPING = NO |
#--------------------------------------------------------------------------- |
# Build related configuration options |
#--------------------------------------------------------------------------- |
EXTRACT_ALL = NO |
EXTRACT_PRIVATE = NO |
EXTRACT_STATIC = YES |
EXTRACT_LOCAL_CLASSES = YES |
EXTRACT_LOCAL_METHODS = YES |
HIDE_UNDOC_MEMBERS = YES |
HIDE_UNDOC_CLASSES = YES |
HIDE_FRIEND_COMPOUNDS = NO |
HIDE_IN_BODY_DOCS = NO |
INTERNAL_DOCS = NO |
CASE_SENSE_NAMES = YES |
HIDE_SCOPE_NAMES = YES |
SHOW_INCLUDE_FILES = NO |
INLINE_INFO = NO |
SORT_MEMBER_DOCS = NO |
SORT_BRIEF_DOCS = NO |
SORT_BY_SCOPE_NAME = NO |
GENERATE_TODOLIST = YES |
GENERATE_TESTLIST = NO |
GENERATE_BUGLIST = YES |
GENERATE_DEPRECATEDLIST= NO |
ENABLED_SECTIONS = ia64 |
MAX_INITIALIZER_LINES = 30 |
SHOW_USED_FILES = NO |
SHOW_DIRECTORIES = YES |
FILE_VERSION_FILTER = |
#--------------------------------------------------------------------------- |
# configuration options related to warning and progress messages |
#--------------------------------------------------------------------------- |
QUIET = NO |
WARNINGS = YES |
WARN_IF_UNDOCUMENTED = NO |
WARN_IF_DOC_ERROR = YES |
WARN_NO_PARAMDOC = NO |
WARN_FORMAT = "$file:$line: $text" |
WARN_LOGFILE = |
#--------------------------------------------------------------------------- |
# configuration options related to the input files |
#--------------------------------------------------------------------------- |
INPUT = $(SRCDIR)/uspace/doc \ |
$(SRCDIR)/uspace/console \ |
$(SRCDIR)/uspace/fb \ |
$(SRCDIR)/uspace/ipcc \ |
$(SRCDIR)/uspace/kbd/arch/ia64 \ |
$(SRCDIR)/uspace/kbd/include \ |
$(SRCDIR)/uspace/kbd/generic \ |
$(SRCDIR)/uspace/klog \ |
$(SRCDIR)/uspace/libc/arch/ia64 \ |
$(SRCDIR)/uspace/libc/include \ |
$(SRCDIR)/uspace/libc/generic \ |
$(SRCDIR)/uspace/libc/malloc \ |
$(SRCDIR)/uspace/ns \ |
$(SRCDIR)/uspace/softfloat/arch/ia64 \ |
$(SRCDIR)/uspace/softfloat/include \ |
$(SRCDIR)/uspace/softfloat/generic \ |
$(SRCDIR)/uspace/softint |
FILE_PATTERNS = *.c \ |
*.h |
RECURSIVE = YES |
EXCLUDE = |
EXCLUDE_SYMLINKS = YES |
EXCLUDE_PATTERNS = *ega* \ |
fb.[ch] \ |
*font* \ |
*libpci* |
EXAMPLE_PATH = |
EXAMPLE_PATTERNS = * |
EXAMPLE_RECURSIVE = NO |
IMAGE_PATH = |
INPUT_FILTER = |
FILTER_PATTERNS = |
FILTER_SOURCE_FILES = NO |
#--------------------------------------------------------------------------- |
# configuration options related to source browsing |
#--------------------------------------------------------------------------- |
SOURCE_BROWSER = NO |
INLINE_SOURCES = NO |
STRIP_CODE_COMMENTS = YES |
REFERENCED_BY_RELATION = NO |
REFERENCES_RELATION = NO |
VERBATIM_HEADERS = NO |
#--------------------------------------------------------------------------- |
# configuration options related to the alphabetical class index |
#--------------------------------------------------------------------------- |
ALPHABETICAL_INDEX = YES |
COLS_IN_ALPHA_INDEX = 5 |
IGNORE_PREFIX = |
#--------------------------------------------------------------------------- |
# configuration options related to the HTML output |
#--------------------------------------------------------------------------- |
GENERATE_HTML = YES |
HTML_OUTPUT = html |
HTML_FILE_EXTENSION = .html |
HTML_HEADER = |
HTML_FOOTER = |
HTML_STYLESHEET = |
HTML_ALIGN_MEMBERS = YES |
GENERATE_HTMLHELP = NO |
CHM_FILE = |
HHC_LOCATION = |
GENERATE_CHI = NO |
BINARY_TOC = NO |
TOC_EXPAND = NO |
DISABLE_INDEX = NO |
ENUM_VALUES_PER_LINE = 4 |
GENERATE_TREEVIEW = NO |
TREEVIEW_WIDTH = 250 |
#--------------------------------------------------------------------------- |
# configuration options related to the LaTeX output |
#--------------------------------------------------------------------------- |
GENERATE_LATEX = NO |
LATEX_OUTPUT = latex |
LATEX_CMD_NAME = latex |
MAKEINDEX_CMD_NAME = makeindex |
COMPACT_LATEX = NO |
PAPER_TYPE = a4wide |
EXTRA_PACKAGES = |
LATEX_HEADER = |
PDF_HYPERLINKS = YES |
USE_PDFLATEX = YES |
LATEX_BATCHMODE = NO |
LATEX_HIDE_INDICES = NO |
#--------------------------------------------------------------------------- |
# configuration options related to the RTF output |
#--------------------------------------------------------------------------- |
GENERATE_RTF = NO |
RTF_OUTPUT = rtf |
COMPACT_RTF = NO |
RTF_HYPERLINKS = NO |
RTF_STYLESHEET_FILE = |
RTF_EXTENSIONS_FILE = |
#--------------------------------------------------------------------------- |
# configuration options related to the man page output |
#--------------------------------------------------------------------------- |
GENERATE_MAN = NO |
MAN_OUTPUT = man |
MAN_EXTENSION = .2 |
MAN_LINKS = YES |
#--------------------------------------------------------------------------- |
# configuration options related to the XML output |
#--------------------------------------------------------------------------- |
GENERATE_XML = NO |
XML_OUTPUT = xml |
XML_SCHEMA = |
XML_DTD = |
XML_PROGRAMLISTING = YES |
#--------------------------------------------------------------------------- |
# configuration options for the AutoGen Definitions output |
#--------------------------------------------------------------------------- |
GENERATE_AUTOGEN_DEF = NO |
#--------------------------------------------------------------------------- |
# configuration options related to the Perl module output |
#--------------------------------------------------------------------------- |
GENERATE_PERLMOD = NO |
PERLMOD_LATEX = NO |
PERLMOD_PRETTY = YES |
PERLMOD_MAKEVAR_PREFIX = |
#--------------------------------------------------------------------------- |
# Configuration options related to the preprocessor |
#--------------------------------------------------------------------------- |
ENABLE_PREPROCESSING = YES |
MACRO_EXPANSION = NO |
EXPAND_ONLY_PREDEF = NO |
SEARCH_INCLUDES = YES |
INCLUDE_PATH = |
INCLUDE_FILE_PATTERNS = |
PREDEFINED = CONFIG_SMP \ |
CONFIG_HT |
EXPAND_AS_DEFINED = |
SKIP_FUNCTION_MACROS = NO |
#--------------------------------------------------------------------------- |
# Configuration::additions related to external references |
#--------------------------------------------------------------------------- |
TAGFILES = |
GENERATE_TAGFILE = |
ALLEXTERNALS = NO |
EXTERNAL_GROUPS = YES |
PERL_PATH = /usr/bin/perl |
#--------------------------------------------------------------------------- |
# Configuration options related to the dot tool |
#--------------------------------------------------------------------------- |
CLASS_DIAGRAMS = NO |
HIDE_UNDOC_RELATIONS = YES |
HAVE_DOT = $(DOT) |
CLASS_GRAPH = NO |
COLLABORATION_GRAPH = NO |
GROUP_GRAPHS = NO |
UML_LOOK = NO |
TEMPLATE_RELATIONS = NO |
INCLUDE_GRAPH = YES |
INCLUDED_BY_GRAPH = YES |
CALL_GRAPH = YES |
GRAPHICAL_HIERARCHY = NO |
DIRECTORY_GRAPH = NO |
DOT_IMAGE_FORMAT = png |
DOT_PATH = |
DOTFILE_DIRS = |
MAX_DOT_GRAPH_WIDTH = 1024 |
MAX_DOT_GRAPH_HEIGHT = 1024 |
MAX_DOT_GRAPH_DEPTH = 1000 |
DOT_TRANSPARENT = NO |
DOT_MULTI_TARGETS = NO |
GENERATE_LEGEND = YES |
DOT_CLEANUP = YES |
#--------------------------------------------------------------------------- |
# Configuration::additions related to the search engine |
#--------------------------------------------------------------------------- |
SEARCHENGINE = NO |
/refman/trunk/Doxyfile-kernel-ppc32 |
---|
0,0 → 1,239 |
# Doxyfile 1.4.2 |
#--------------------------------------------------------------------------- |
# Project related configuration options |
#--------------------------------------------------------------------------- |
PROJECT_NAME = "HelenOS Kernel (ppc32)" |
PROJECT_NUMBER = "0.2.0" |
OUTPUT_DIRECTORY = $(DOCDIR)/doc/kernel-ppc32 |
CREATE_SUBDIRS = NO |
OUTPUT_LANGUAGE = English |
USE_WINDOWS_ENCODING = NO |
BRIEF_MEMBER_DESC = YES |
REPEAT_BRIEF = NO |
ABBREVIATE_BRIEF = "The $name class" \ |
"The $name widget" \ |
"The $name file" \ |
is \ |
provides \ |
specifies \ |
contains \ |
represents \ |
a \ |
an \ |
the |
ALWAYS_DETAILED_SEC = NO |
INLINE_INHERITED_MEMB = NO |
FULL_PATH_NAMES = YES |
STRIP_FROM_PATH = |
STRIP_FROM_INC_PATH = |
SHORT_NAMES = NO |
JAVADOC_AUTOBRIEF = NO |
MULTILINE_CPP_IS_BRIEF = NO |
DETAILS_AT_TOP = NO |
INHERIT_DOCS = NO |
DISTRIBUTE_GROUP_DOC = NO |
SEPARATE_MEMBER_PAGES = NO |
TAB_SIZE = 8 |
ALIASES = |
OPTIMIZE_OUTPUT_FOR_C = YES |
OPTIMIZE_OUTPUT_JAVA = NO |
SUBGROUPING = NO |
#--------------------------------------------------------------------------- |
# Build related configuration options |
#--------------------------------------------------------------------------- |
EXTRACT_ALL = NO |
EXTRACT_PRIVATE = NO |
EXTRACT_STATIC = YES |
EXTRACT_LOCAL_CLASSES = YES |
EXTRACT_LOCAL_METHODS = YES |
HIDE_UNDOC_MEMBERS = YES |
HIDE_UNDOC_CLASSES = YES |
HIDE_FRIEND_COMPOUNDS = NO |
HIDE_IN_BODY_DOCS = NO |
INTERNAL_DOCS = NO |
CASE_SENSE_NAMES = YES |
HIDE_SCOPE_NAMES = YES |
SHOW_INCLUDE_FILES = NO |
INLINE_INFO = NO |
SORT_MEMBER_DOCS = YES |
SORT_BRIEF_DOCS = NO |
SORT_BY_SCOPE_NAME = YES |
GENERATE_TODOLIST = YES |
GENERATE_TESTLIST = NO |
GENERATE_BUGLIST = YES |
GENERATE_DEPRECATEDLIST= NO |
ENABLED_SECTIONS = ppc32 |
MAX_INITIALIZER_LINES = 30 |
SHOW_USED_FILES = NO |
SHOW_DIRECTORIES = YES |
FILE_VERSION_FILTER = |
#--------------------------------------------------------------------------- |
# configuration options related to warning and progress messages |
#--------------------------------------------------------------------------- |
QUIET = NO |
WARNINGS = YES |
WARN_IF_UNDOCUMENTED = NO |
WARN_IF_DOC_ERROR = YES |
WARN_NO_PARAMDOC = NO |
WARN_FORMAT = "$file:$line: $text" |
WARN_LOGFILE = |
#--------------------------------------------------------------------------- |
# configuration options related to the input files |
#--------------------------------------------------------------------------- |
INPUT = $(SRCDIR)/kernel/doc \ |
$(SRCDIR)/kernel/generic \ |
$(SRCDIR)/kernel/genarch \ |
$(SRCDIR)/kernel/arch/ppc32 |
FILE_PATTERNS = *.c \ |
*.h |
RECURSIVE = YES |
EXCLUDE = |
EXCLUDE_SYMLINKS = YES |
EXCLUDE_PATTERNS = *ofw* \ |
*_ht* \ |
*acpi* \ |
*i8042* |
EXAMPLE_PATH = |
EXAMPLE_PATTERNS = * |
EXAMPLE_RECURSIVE = NO |
IMAGE_PATH = |
INPUT_FILTER = |
FILTER_PATTERNS = |
FILTER_SOURCE_FILES = NO |
#--------------------------------------------------------------------------- |
# configuration options related to source browsing |
#--------------------------------------------------------------------------- |
SOURCE_BROWSER = NO |
INLINE_SOURCES = NO |
STRIP_CODE_COMMENTS = YES |
REFERENCED_BY_RELATION = NO |
REFERENCES_RELATION = NO |
VERBATIM_HEADERS = NO |
#--------------------------------------------------------------------------- |
# configuration options related to the alphabetical class index |
#--------------------------------------------------------------------------- |
ALPHABETICAL_INDEX = YES |
COLS_IN_ALPHA_INDEX = 5 |
IGNORE_PREFIX = |
#--------------------------------------------------------------------------- |
# configuration options related to the HTML output |
#--------------------------------------------------------------------------- |
GENERATE_HTML = YES |
HTML_OUTPUT = html |
HTML_FILE_EXTENSION = .html |
HTML_HEADER = |
HTML_FOOTER = |
HTML_STYLESHEET = |
HTML_ALIGN_MEMBERS = YES |
GENERATE_HTMLHELP = NO |
CHM_FILE = |
HHC_LOCATION = |
GENERATE_CHI = NO |
BINARY_TOC = NO |
TOC_EXPAND = NO |
DISABLE_INDEX = NO |
ENUM_VALUES_PER_LINE = 4 |
GENERATE_TREEVIEW = NO |
TREEVIEW_WIDTH = 250 |
#--------------------------------------------------------------------------- |
# configuration options related to the LaTeX output |
#--------------------------------------------------------------------------- |
GENERATE_LATEX = NO |
LATEX_OUTPUT = latex |
LATEX_CMD_NAME = latex |
MAKEINDEX_CMD_NAME = makeindex |
COMPACT_LATEX = NO |
PAPER_TYPE = a4wide |
EXTRA_PACKAGES = |
LATEX_HEADER = |
PDF_HYPERLINKS = YES |
USE_PDFLATEX = YES |
LATEX_BATCHMODE = NO |
LATEX_HIDE_INDICES = NO |
#--------------------------------------------------------------------------- |
# configuration options related to the RTF output |
#--------------------------------------------------------------------------- |
GENERATE_RTF = NO |
RTF_OUTPUT = rtf |
COMPACT_RTF = NO |
RTF_HYPERLINKS = NO |
RTF_STYLESHEET_FILE = |
RTF_EXTENSIONS_FILE = |
#--------------------------------------------------------------------------- |
# configuration options related to the man page output |
#--------------------------------------------------------------------------- |
GENERATE_MAN = NO |
MAN_OUTPUT = man |
MAN_EXTENSION = .2 |
MAN_LINKS = YES |
#--------------------------------------------------------------------------- |
# configuration options related to the XML output |
#--------------------------------------------------------------------------- |
GENERATE_XML = NO |
XML_OUTPUT = xml |
XML_SCHEMA = |
XML_DTD = |
XML_PROGRAMLISTING = YES |
#--------------------------------------------------------------------------- |
# configuration options for the AutoGen Definitions output |
#--------------------------------------------------------------------------- |
GENERATE_AUTOGEN_DEF = NO |
#--------------------------------------------------------------------------- |
# configuration options related to the Perl module output |
#--------------------------------------------------------------------------- |
GENERATE_PERLMOD = NO |
PERLMOD_LATEX = NO |
PERLMOD_PRETTY = YES |
PERLMOD_MAKEVAR_PREFIX = |
#--------------------------------------------------------------------------- |
# Configuration options related to the preprocessor |
#--------------------------------------------------------------------------- |
ENABLE_PREPROCESSING = YES |
MACRO_EXPANSION = NO |
EXPAND_ONLY_PREDEF = NO |
SEARCH_INCLUDES = YES |
INCLUDE_PATH = |
INCLUDE_FILE_PATTERNS = |
PREDEFINED = CONFIG_SMP \ |
CONFIG_HT |
EXPAND_AS_DEFINED = |
SKIP_FUNCTION_MACROS = NO |
#--------------------------------------------------------------------------- |
# Configuration::additions related to external references |
#--------------------------------------------------------------------------- |
TAGFILES = |
GENERATE_TAGFILE = |
ALLEXTERNALS = NO |
EXTERNAL_GROUPS = YES |
PERL_PATH = /usr/bin/perl |
#--------------------------------------------------------------------------- |
# Configuration options related to the dot tool |
#--------------------------------------------------------------------------- |
CLASS_DIAGRAMS = NO |
HIDE_UNDOC_RELATIONS = YES |
HAVE_DOT = $(DOT) |
CLASS_GRAPH = NO |
COLLABORATION_GRAPH = NO |
GROUP_GRAPHS = NO |
UML_LOOK = NO |
TEMPLATE_RELATIONS = NO |
INCLUDE_GRAPH = YES |
INCLUDED_BY_GRAPH = YES |
CALL_GRAPH = YES |
GRAPHICAL_HIERARCHY = NO |
DIRECTORY_GRAPH = NO |
DOT_IMAGE_FORMAT = png |
DOT_PATH = |
DOTFILE_DIRS = |
MAX_DOT_GRAPH_WIDTH = 1024 |
MAX_DOT_GRAPH_HEIGHT = 1024 |
MAX_DOT_GRAPH_DEPTH = 1000 |
DOT_TRANSPARENT = NO |
DOT_MULTI_TARGETS = NO |
GENERATE_LEGEND = YES |
DOT_CLEANUP = YES |
#--------------------------------------------------------------------------- |
# Configuration::additions related to the search engine |
#--------------------------------------------------------------------------- |
SEARCHENGINE = NO |
/refman/trunk/Doxyfile-uspace-ppc32 |
---|
0,0 → 1,252 |
# Doxyfile 1.4.2 |
#--------------------------------------------------------------------------- |
# Project related configuration options |
#--------------------------------------------------------------------------- |
PROJECT_NAME = "HelenOS Userspace (ppc32)" |
PROJECT_NUMBER = "0.2.0" |
OUTPUT_DIRECTORY = $(DOCDIR)/doc/uspace-ppc32 |
CREATE_SUBDIRS = NO |
OUTPUT_LANGUAGE = English |
USE_WINDOWS_ENCODING = NO |
BRIEF_MEMBER_DESC = YES |
REPEAT_BRIEF = NO |
ABBREVIATE_BRIEF = "The $name class" \ |
"The $name widget" \ |
"The $name file" \ |
is \ |
provides \ |
specifies \ |
contains \ |
represents \ |
a \ |
an \ |
the |
ALWAYS_DETAILED_SEC = NO |
INLINE_INHERITED_MEMB = NO |
FULL_PATH_NAMES = NO |
STRIP_FROM_PATH = |
STRIP_FROM_INC_PATH = |
SHORT_NAMES = NO |
JAVADOC_AUTOBRIEF = NO |
MULTILINE_CPP_IS_BRIEF = NO |
DETAILS_AT_TOP = NO |
INHERIT_DOCS = NO |
DISTRIBUTE_GROUP_DOC = NO |
SEPARATE_MEMBER_PAGES = NO |
TAB_SIZE = 8 |
ALIASES = |
OPTIMIZE_OUTPUT_FOR_C = YES |
OPTIMIZE_OUTPUT_JAVA = NO |
SUBGROUPING = NO |
#--------------------------------------------------------------------------- |
# Build related configuration options |
#--------------------------------------------------------------------------- |
EXTRACT_ALL = NO |
EXTRACT_PRIVATE = NO |
EXTRACT_STATIC = YES |
EXTRACT_LOCAL_CLASSES = YES |
EXTRACT_LOCAL_METHODS = YES |
HIDE_UNDOC_MEMBERS = YES |
HIDE_UNDOC_CLASSES = YES |
HIDE_FRIEND_COMPOUNDS = NO |
HIDE_IN_BODY_DOCS = NO |
INTERNAL_DOCS = NO |
CASE_SENSE_NAMES = YES |
HIDE_SCOPE_NAMES = YES |
SHOW_INCLUDE_FILES = NO |
INLINE_INFO = NO |
SORT_MEMBER_DOCS = NO |
SORT_BRIEF_DOCS = NO |
SORT_BY_SCOPE_NAME = NO |
GENERATE_TODOLIST = YES |
GENERATE_TESTLIST = NO |
GENERATE_BUGLIST = YES |
GENERATE_DEPRECATEDLIST= NO |
ENABLED_SECTIONS = ppc32 |
MAX_INITIALIZER_LINES = 30 |
SHOW_USED_FILES = NO |
SHOW_DIRECTORIES = YES |
FILE_VERSION_FILTER = |
#--------------------------------------------------------------------------- |
# configuration options related to warning and progress messages |
#--------------------------------------------------------------------------- |
QUIET = NO |
WARNINGS = YES |
WARN_IF_UNDOCUMENTED = NO |
WARN_IF_DOC_ERROR = YES |
WARN_NO_PARAMDOC = NO |
WARN_FORMAT = "$file:$line: $text" |
WARN_LOGFILE = |
#--------------------------------------------------------------------------- |
# configuration options related to the input files |
#--------------------------------------------------------------------------- |
INPUT = $(SRCDIR)/uspace/doc \ |
$(SRCDIR)/uspace/console \ |
$(SRCDIR)/uspace/fb \ |
$(SRCDIR)/uspace/ipcc \ |
$(SRCDIR)/uspace/kbd/arch/ppc32 \ |
$(SRCDIR)/uspace/kbd/include \ |
$(SRCDIR)/uspace/kbd/generic \ |
$(SRCDIR)/uspace/klog \ |
$(SRCDIR)/uspace/libc/arch/ppc32 \ |
$(SRCDIR)/uspace/libc/include \ |
$(SRCDIR)/uspace/libc/generic \ |
$(SRCDIR)/uspace/libc/malloc \ |
$(SRCDIR)/uspace/ns \ |
$(SRCDIR)/uspace/softfloat/arch/ppc32 \ |
$(SRCDIR)/uspace/softfloat/include \ |
$(SRCDIR)/uspace/softfloat/generic \ |
$(SRCDIR)/uspace/softint |
FILE_PATTERNS = *.c \ |
*.h |
RECURSIVE = YES |
EXCLUDE = |
EXCLUDE_SYMLINKS = YES |
EXCLUDE_PATTERNS = *ega* \ |
*sysio* |
*libpci* |
EXAMPLE_PATH = |
EXAMPLE_PATTERNS = * |
EXAMPLE_RECURSIVE = NO |
IMAGE_PATH = |
INPUT_FILTER = |
FILTER_PATTERNS = |
FILTER_SOURCE_FILES = NO |
#--------------------------------------------------------------------------- |
# configuration options related to source browsing |
#--------------------------------------------------------------------------- |
SOURCE_BROWSER = NO |
INLINE_SOURCES = NO |
STRIP_CODE_COMMENTS = YES |
REFERENCED_BY_RELATION = NO |
REFERENCES_RELATION = NO |
VERBATIM_HEADERS = NO |
#--------------------------------------------------------------------------- |
# configuration options related to the alphabetical class index |
#--------------------------------------------------------------------------- |
ALPHABETICAL_INDEX = YES |
COLS_IN_ALPHA_INDEX = 5 |
IGNORE_PREFIX = |
#--------------------------------------------------------------------------- |
# configuration options related to the HTML output |
#--------------------------------------------------------------------------- |
GENERATE_HTML = YES |
HTML_OUTPUT = html |
HTML_FILE_EXTENSION = .html |
HTML_HEADER = |
HTML_FOOTER = |
HTML_STYLESHEET = |
HTML_ALIGN_MEMBERS = YES |
GENERATE_HTMLHELP = NO |
CHM_FILE = |
HHC_LOCATION = |
GENERATE_CHI = NO |
BINARY_TOC = NO |
TOC_EXPAND = NO |
DISABLE_INDEX = NO |
ENUM_VALUES_PER_LINE = 4 |
GENERATE_TREEVIEW = NO |
TREEVIEW_WIDTH = 250 |
#--------------------------------------------------------------------------- |
# configuration options related to the LaTeX output |
#--------------------------------------------------------------------------- |
GENERATE_LATEX = NO |
LATEX_OUTPUT = latex |
LATEX_CMD_NAME = latex |
MAKEINDEX_CMD_NAME = makeindex |
COMPACT_LATEX = NO |
PAPER_TYPE = a4wide |
EXTRA_PACKAGES = |
LATEX_HEADER = |
PDF_HYPERLINKS = YES |
USE_PDFLATEX = YES |
LATEX_BATCHMODE = NO |
LATEX_HIDE_INDICES = NO |
#--------------------------------------------------------------------------- |
# configuration options related to the RTF output |
#--------------------------------------------------------------------------- |
GENERATE_RTF = NO |
RTF_OUTPUT = rtf |
COMPACT_RTF = NO |
RTF_HYPERLINKS = NO |
RTF_STYLESHEET_FILE = |
RTF_EXTENSIONS_FILE = |
#--------------------------------------------------------------------------- |
# configuration options related to the man page output |
#--------------------------------------------------------------------------- |
GENERATE_MAN = NO |
MAN_OUTPUT = man |
MAN_EXTENSION = .2 |
MAN_LINKS = YES |
#--------------------------------------------------------------------------- |
# configuration options related to the XML output |
#--------------------------------------------------------------------------- |
GENERATE_XML = NO |
XML_OUTPUT = xml |
XML_SCHEMA = |
XML_DTD = |
XML_PROGRAMLISTING = YES |
#--------------------------------------------------------------------------- |
# configuration options for the AutoGen Definitions output |
#--------------------------------------------------------------------------- |
GENERATE_AUTOGEN_DEF = NO |
#--------------------------------------------------------------------------- |
# configuration options related to the Perl module output |
#--------------------------------------------------------------------------- |
GENERATE_PERLMOD = NO |
PERLMOD_LATEX = NO |
PERLMOD_PRETTY = YES |
PERLMOD_MAKEVAR_PREFIX = |
#--------------------------------------------------------------------------- |
# Configuration options related to the preprocessor |
#--------------------------------------------------------------------------- |
ENABLE_PREPROCESSING = YES |
MACRO_EXPANSION = NO |
EXPAND_ONLY_PREDEF = NO |
SEARCH_INCLUDES = YES |
INCLUDE_PATH = |
INCLUDE_FILE_PATTERNS = |
PREDEFINED = CONFIG_SMP \ |
CONFIG_HT |
EXPAND_AS_DEFINED = |
SKIP_FUNCTION_MACROS = NO |
#--------------------------------------------------------------------------- |
# Configuration::additions related to external references |
#--------------------------------------------------------------------------- |
TAGFILES = |
GENERATE_TAGFILE = |
ALLEXTERNALS = NO |
EXTERNAL_GROUPS = YES |
PERL_PATH = /usr/bin/perl |
#--------------------------------------------------------------------------- |
# Configuration options related to the dot tool |
#--------------------------------------------------------------------------- |
CLASS_DIAGRAMS = NO |
HIDE_UNDOC_RELATIONS = YES |
HAVE_DOT = $(DOT) |
CLASS_GRAPH = NO |
COLLABORATION_GRAPH = NO |
GROUP_GRAPHS = NO |
UML_LOOK = NO |
TEMPLATE_RELATIONS = NO |
INCLUDE_GRAPH = YES |
INCLUDED_BY_GRAPH = YES |
CALL_GRAPH = YES |
GRAPHICAL_HIERARCHY = NO |
DIRECTORY_GRAPH = NO |
DOT_IMAGE_FORMAT = png |
DOT_PATH = |
DOTFILE_DIRS = |
MAX_DOT_GRAPH_WIDTH = 1024 |
MAX_DOT_GRAPH_HEIGHT = 1024 |
MAX_DOT_GRAPH_DEPTH = 1000 |
DOT_TRANSPARENT = NO |
DOT_MULTI_TARGETS = NO |
GENERATE_LEGEND = YES |
DOT_CLEANUP = YES |
#--------------------------------------------------------------------------- |
# Configuration::additions related to the search engine |
#--------------------------------------------------------------------------- |
SEARCHENGINE = NO |
/refman/trunk/Doxyfile-kernel-amd64 |
---|
0,0 → 1,239 |
# Doxyfile 1.4.2 |
#--------------------------------------------------------------------------- |
# Project related configuration options |
#--------------------------------------------------------------------------- |
PROJECT_NAME = "HelenOS Kernel (amd64)" |
PROJECT_NUMBER = "0.2.0" |
OUTPUT_DIRECTORY = $(DOCDIR)/doc/kernel-amd64 |
CREATE_SUBDIRS = NO |
OUTPUT_LANGUAGE = English |
USE_WINDOWS_ENCODING = NO |
BRIEF_MEMBER_DESC = YES |
REPEAT_BRIEF = NO |
ABBREVIATE_BRIEF = "The $name class" \ |
"The $name widget" \ |
"The $name file" \ |
is \ |
provides \ |
specifies \ |
contains \ |
represents \ |
a \ |
an \ |
the |
ALWAYS_DETAILED_SEC = NO |
INLINE_INHERITED_MEMB = NO |
FULL_PATH_NAMES = YES |
STRIP_FROM_PATH = |
STRIP_FROM_INC_PATH = |
SHORT_NAMES = NO |
JAVADOC_AUTOBRIEF = NO |
MULTILINE_CPP_IS_BRIEF = NO |
DETAILS_AT_TOP = NO |
INHERIT_DOCS = NO |
DISTRIBUTE_GROUP_DOC = NO |
SEPARATE_MEMBER_PAGES = NO |
TAB_SIZE = 8 |
ALIASES = |
OPTIMIZE_OUTPUT_FOR_C = YES |
OPTIMIZE_OUTPUT_JAVA = NO |
SUBGROUPING = NO |
#--------------------------------------------------------------------------- |
# Build related configuration options |
#--------------------------------------------------------------------------- |
EXTRACT_ALL = NO |
EXTRACT_PRIVATE = NO |
EXTRACT_STATIC = YES |
EXTRACT_LOCAL_CLASSES = YES |
EXTRACT_LOCAL_METHODS = YES |
HIDE_UNDOC_MEMBERS = YES |
HIDE_UNDOC_CLASSES = YES |
HIDE_FRIEND_COMPOUNDS = NO |
HIDE_IN_BODY_DOCS = NO |
INTERNAL_DOCS = NO |
CASE_SENSE_NAMES = YES |
HIDE_SCOPE_NAMES = YES |
SHOW_INCLUDE_FILES = NO |
INLINE_INFO = NO |
SORT_MEMBER_DOCS = YES |
SORT_BRIEF_DOCS = NO |
SORT_BY_SCOPE_NAME = YES |
GENERATE_TODOLIST = YES |
GENERATE_TESTLIST = NO |
GENERATE_BUGLIST = YES |
GENERATE_DEPRECATEDLIST= NO |
ENABLED_SECTIONS = amd64 |
MAX_INITIALIZER_LINES = 30 |
SHOW_USED_FILES = NO |
SHOW_DIRECTORIES = YES |
FILE_VERSION_FILTER = |
#--------------------------------------------------------------------------- |
# configuration options related to warning and progress messages |
#--------------------------------------------------------------------------- |
QUIET = NO |
WARNINGS = YES |
WARN_IF_UNDOCUMENTED = NO |
WARN_IF_DOC_ERROR = YES |
WARN_NO_PARAMDOC = NO |
WARN_FORMAT = "$file:$line: $text" |
WARN_LOGFILE = |
#--------------------------------------------------------------------------- |
# configuration options related to the input files |
#--------------------------------------------------------------------------- |
INPUT = $(SRCDIR)/kernel/doc \ |
$(SRCDIR)/kernel/generic \ |
$(SRCDIR)/kernel/genarch \ |
$(SRCDIR)/kernel/arch/amd64 |
FILE_PATTERNS = *.c \ |
*.h |
RECURSIVE = YES |
EXCLUDE = |
EXCLUDE_SYMLINKS = YES |
EXCLUDE_PATTERNS = *ofw* \ |
*_ht* \ |
*softint* \ |
*asid* |
EXAMPLE_PATH = |
EXAMPLE_PATTERNS = * |
EXAMPLE_RECURSIVE = NO |
IMAGE_PATH = |
INPUT_FILTER = |
FILTER_PATTERNS = |
FILTER_SOURCE_FILES = NO |
#--------------------------------------------------------------------------- |
# configuration options related to source browsing |
#--------------------------------------------------------------------------- |
SOURCE_BROWSER = NO |
INLINE_SOURCES = NO |
STRIP_CODE_COMMENTS = YES |
REFERENCED_BY_RELATION = NO |
REFERENCES_RELATION = NO |
VERBATIM_HEADERS = NO |
#--------------------------------------------------------------------------- |
# configuration options related to the alphabetical class index |
#--------------------------------------------------------------------------- |
ALPHABETICAL_INDEX = YES |
COLS_IN_ALPHA_INDEX = 5 |
IGNORE_PREFIX = |
#--------------------------------------------------------------------------- |
# configuration options related to the HTML output |
#--------------------------------------------------------------------------- |
GENERATE_HTML = YES |
HTML_OUTPUT = html |
HTML_FILE_EXTENSION = .html |
HTML_HEADER = |
HTML_FOOTER = |
HTML_STYLESHEET = |
HTML_ALIGN_MEMBERS = YES |
GENERATE_HTMLHELP = NO |
CHM_FILE = |
HHC_LOCATION = |
GENERATE_CHI = NO |
BINARY_TOC = NO |
TOC_EXPAND = NO |
DISABLE_INDEX = NO |
ENUM_VALUES_PER_LINE = 4 |
GENERATE_TREEVIEW = NO |
TREEVIEW_WIDTH = 250 |
#--------------------------------------------------------------------------- |
# configuration options related to the LaTeX output |
#--------------------------------------------------------------------------- |
GENERATE_LATEX = NO |
LATEX_OUTPUT = latex |
LATEX_CMD_NAME = latex |
MAKEINDEX_CMD_NAME = makeindex |
COMPACT_LATEX = NO |
PAPER_TYPE = a4wide |
EXTRA_PACKAGES = |
LATEX_HEADER = |
PDF_HYPERLINKS = YES |
USE_PDFLATEX = YES |
LATEX_BATCHMODE = NO |
LATEX_HIDE_INDICES = NO |
#--------------------------------------------------------------------------- |
# configuration options related to the RTF output |
#--------------------------------------------------------------------------- |
GENERATE_RTF = NO |
RTF_OUTPUT = rtf |
COMPACT_RTF = NO |
RTF_HYPERLINKS = NO |
RTF_STYLESHEET_FILE = |
RTF_EXTENSIONS_FILE = |
#--------------------------------------------------------------------------- |
# configuration options related to the man page output |
#--------------------------------------------------------------------------- |
GENERATE_MAN = NO |
MAN_OUTPUT = man |
MAN_EXTENSION = .2 |
MAN_LINKS = YES |
#--------------------------------------------------------------------------- |
# configuration options related to the XML output |
#--------------------------------------------------------------------------- |
GENERATE_XML = NO |
XML_OUTPUT = xml |
XML_SCHEMA = |
XML_DTD = |
XML_PROGRAMLISTING = YES |
#--------------------------------------------------------------------------- |
# configuration options for the AutoGen Definitions output |
#--------------------------------------------------------------------------- |
GENERATE_AUTOGEN_DEF = NO |
#--------------------------------------------------------------------------- |
# configuration options related to the Perl module output |
#--------------------------------------------------------------------------- |
GENERATE_PERLMOD = NO |
PERLMOD_LATEX = NO |
PERLMOD_PRETTY = YES |
PERLMOD_MAKEVAR_PREFIX = |
#--------------------------------------------------------------------------- |
# Configuration options related to the preprocessor |
#--------------------------------------------------------------------------- |
ENABLE_PREPROCESSING = YES |
MACRO_EXPANSION = NO |
EXPAND_ONLY_PREDEF = NO |
SEARCH_INCLUDES = YES |
INCLUDE_PATH = |
INCLUDE_FILE_PATTERNS = |
PREDEFINED = CONFIG_SMP \ |
CONFIG_HT |
EXPAND_AS_DEFINED = |
SKIP_FUNCTION_MACROS = NO |
#--------------------------------------------------------------------------- |
# Configuration::additions related to external references |
#--------------------------------------------------------------------------- |
TAGFILES = |
GENERATE_TAGFILE = |
ALLEXTERNALS = NO |
EXTERNAL_GROUPS = YES |
PERL_PATH = /usr/bin/perl |
#--------------------------------------------------------------------------- |
# Configuration options related to the dot tool |
#--------------------------------------------------------------------------- |
CLASS_DIAGRAMS = NO |
HIDE_UNDOC_RELATIONS = YES |
HAVE_DOT = $(DOT) |
CLASS_GRAPH = NO |
COLLABORATION_GRAPH = NO |
GROUP_GRAPHS = NO |
UML_LOOK = NO |
TEMPLATE_RELATIONS = NO |
INCLUDE_GRAPH = YES |
INCLUDED_BY_GRAPH = YES |
CALL_GRAPH = YES |
GRAPHICAL_HIERARCHY = NO |
DIRECTORY_GRAPH = NO |
DOT_IMAGE_FORMAT = png |
DOT_PATH = |
DOTFILE_DIRS = |
MAX_DOT_GRAPH_WIDTH = 1024 |
MAX_DOT_GRAPH_HEIGHT = 1024 |
MAX_DOT_GRAPH_DEPTH = 1000 |
DOT_TRANSPARENT = NO |
DOT_MULTI_TARGETS = NO |
GENERATE_LEGEND = YES |
DOT_CLEANUP = YES |
#--------------------------------------------------------------------------- |
# Configuration::additions related to the search engine |
#--------------------------------------------------------------------------- |
SEARCHENGINE = NO |
/refman/trunk/Doxyfile-uspace-amd64 |
---|
0,0 → 1,252 |
# Doxyfile 1.4.2 |
#--------------------------------------------------------------------------- |
# Project related configuration options |
#--------------------------------------------------------------------------- |
PROJECT_NAME = "HelenOS Userspace (amd64)" |
PROJECT_NUMBER = "0.2.0" |
OUTPUT_DIRECTORY = $(DOCDIR)/doc/uspace-amd64 |
CREATE_SUBDIRS = NO |
OUTPUT_LANGUAGE = English |
USE_WINDOWS_ENCODING = NO |
BRIEF_MEMBER_DESC = YES |
REPEAT_BRIEF = NO |
ABBREVIATE_BRIEF = "The $name class" \ |
"The $name widget" \ |
"The $name file" \ |
is \ |
provides \ |
specifies \ |
contains \ |
represents \ |
a \ |
an \ |
the |
ALWAYS_DETAILED_SEC = NO |
INLINE_INHERITED_MEMB = NO |
FULL_PATH_NAMES = NO |
STRIP_FROM_PATH = |
STRIP_FROM_INC_PATH = |
SHORT_NAMES = NO |
JAVADOC_AUTOBRIEF = NO |
MULTILINE_CPP_IS_BRIEF = NO |
DETAILS_AT_TOP = NO |
INHERIT_DOCS = NO |
DISTRIBUTE_GROUP_DOC = NO |
SEPARATE_MEMBER_PAGES = NO |
TAB_SIZE = 8 |
ALIASES = |
OPTIMIZE_OUTPUT_FOR_C = YES |
OPTIMIZE_OUTPUT_JAVA = NO |
SUBGROUPING = NO |
#--------------------------------------------------------------------------- |
# Build related configuration options |
#--------------------------------------------------------------------------- |
EXTRACT_ALL = NO |
EXTRACT_PRIVATE = NO |
EXTRACT_STATIC = YES |
EXTRACT_LOCAL_CLASSES = YES |
EXTRACT_LOCAL_METHODS = YES |
HIDE_UNDOC_MEMBERS = YES |
HIDE_UNDOC_CLASSES = YES |
HIDE_FRIEND_COMPOUNDS = NO |
HIDE_IN_BODY_DOCS = NO |
INTERNAL_DOCS = NO |
CASE_SENSE_NAMES = YES |
HIDE_SCOPE_NAMES = YES |
SHOW_INCLUDE_FILES = NO |
INLINE_INFO = NO |
SORT_MEMBER_DOCS = NO |
SORT_BRIEF_DOCS = NO |
SORT_BY_SCOPE_NAME = NO |
GENERATE_TODOLIST = YES |
GENERATE_TESTLIST = NO |
GENERATE_BUGLIST = YES |
GENERATE_DEPRECATEDLIST= NO |
ENABLED_SECTIONS = amd64 |
MAX_INITIALIZER_LINES = 30 |
SHOW_USED_FILES = NO |
SHOW_DIRECTORIES = YES |
FILE_VERSION_FILTER = |
#--------------------------------------------------------------------------- |
# configuration options related to warning and progress messages |
#--------------------------------------------------------------------------- |
QUIET = NO |
WARNINGS = YES |
WARN_IF_UNDOCUMENTED = NO |
WARN_IF_DOC_ERROR = YES |
WARN_NO_PARAMDOC = NO |
WARN_FORMAT = "$file:$line: $text" |
WARN_LOGFILE = |
#--------------------------------------------------------------------------- |
# configuration options related to the input files |
#--------------------------------------------------------------------------- |
INPUT = $(SRCDIR)/uspace/doc \ |
$(SRCDIR)/uspace/console \ |
$(SRCDIR)/uspace/fb \ |
$(SRCDIR)/uspace/ipcc \ |
$(SRCDIR)/uspace/kbd/arch/amd64 \ |
$(SRCDIR)/uspace/kbd/include \ |
$(SRCDIR)/uspace/kbd/generic \ |
$(SRCDIR)/uspace/klog \ |
$(SRCDIR)/uspace/libc/arch/amd64 \ |
$(SRCDIR)/uspace/libc/include \ |
$(SRCDIR)/uspace/libc/generic \ |
$(SRCDIR)/uspace/libc/malloc \ |
$(SRCDIR)/uspace/ns \ |
$(SRCDIR)/uspace/softfloat/arch/amd64 \ |
$(SRCDIR)/uspace/softfloat/include \ |
$(SRCDIR)/uspace/softfloat/generic \ |
$(SRCDIR)/uspace/softint \ |
$(SRCDIR)/uspace/pci |
FILE_PATTERNS = *.c \ |
*.h |
RECURSIVE = YES |
EXCLUDE = |
EXCLUDE_SYMLINKS = YES |
EXCLUDE_PATTERNS = *sysio* \ |
*libpci* |
EXAMPLE_PATH = |
EXAMPLE_PATTERNS = * |
EXAMPLE_RECURSIVE = NO |
IMAGE_PATH = |
INPUT_FILTER = |
FILTER_PATTERNS = |
FILTER_SOURCE_FILES = NO |
#--------------------------------------------------------------------------- |
# configuration options related to source browsing |
#--------------------------------------------------------------------------- |
SOURCE_BROWSER = NO |
INLINE_SOURCES = NO |
STRIP_CODE_COMMENTS = YES |
REFERENCED_BY_RELATION = NO |
REFERENCES_RELATION = NO |
VERBATIM_HEADERS = NO |
#--------------------------------------------------------------------------- |
# configuration options related to the alphabetical class index |
#--------------------------------------------------------------------------- |
ALPHABETICAL_INDEX = YES |
COLS_IN_ALPHA_INDEX = 5 |
IGNORE_PREFIX = |
#--------------------------------------------------------------------------- |
# configuration options related to the HTML output |
#--------------------------------------------------------------------------- |
GENERATE_HTML = YES |
HTML_OUTPUT = html |
HTML_FILE_EXTENSION = .html |
HTML_HEADER = |
HTML_FOOTER = |
HTML_STYLESHEET = |
HTML_ALIGN_MEMBERS = YES |
GENERATE_HTMLHELP = NO |
CHM_FILE = |
HHC_LOCATION = |
GENERATE_CHI = NO |
BINARY_TOC = NO |
TOC_EXPAND = NO |
DISABLE_INDEX = NO |
ENUM_VALUES_PER_LINE = 4 |
GENERATE_TREEVIEW = NO |
TREEVIEW_WIDTH = 250 |
#--------------------------------------------------------------------------- |
# configuration options related to the LaTeX output |
#--------------------------------------------------------------------------- |
GENERATE_LATEX = NO |
LATEX_OUTPUT = latex |
LATEX_CMD_NAME = latex |
MAKEINDEX_CMD_NAME = makeindex |
COMPACT_LATEX = NO |
PAPER_TYPE = a4wide |
EXTRA_PACKAGES = |
LATEX_HEADER = |
PDF_HYPERLINKS = YES |
USE_PDFLATEX = YES |
LATEX_BATCHMODE = NO |
LATEX_HIDE_INDICES = NO |
#--------------------------------------------------------------------------- |
# configuration options related to the RTF output |
#--------------------------------------------------------------------------- |
GENERATE_RTF = NO |
RTF_OUTPUT = rtf |
COMPACT_RTF = NO |
RTF_HYPERLINKS = NO |
RTF_STYLESHEET_FILE = |
RTF_EXTENSIONS_FILE = |
#--------------------------------------------------------------------------- |
# configuration options related to the man page output |
#--------------------------------------------------------------------------- |
GENERATE_MAN = NO |
MAN_OUTPUT = man |
MAN_EXTENSION = .2 |
MAN_LINKS = YES |
#--------------------------------------------------------------------------- |
# configuration options related to the XML output |
#--------------------------------------------------------------------------- |
GENERATE_XML = NO |
XML_OUTPUT = xml |
XML_SCHEMA = |
XML_DTD = |
XML_PROGRAMLISTING = YES |
#--------------------------------------------------------------------------- |
# configuration options for the AutoGen Definitions output |
#--------------------------------------------------------------------------- |
GENERATE_AUTOGEN_DEF = NO |
#--------------------------------------------------------------------------- |
# configuration options related to the Perl module output |
#--------------------------------------------------------------------------- |
GENERATE_PERLMOD = NO |
PERLMOD_LATEX = NO |
PERLMOD_PRETTY = YES |
PERLMOD_MAKEVAR_PREFIX = |
#--------------------------------------------------------------------------- |
# Configuration options related to the preprocessor |
#--------------------------------------------------------------------------- |
ENABLE_PREPROCESSING = YES |
MACRO_EXPANSION = NO |
EXPAND_ONLY_PREDEF = NO |
SEARCH_INCLUDES = YES |
INCLUDE_PATH = |
INCLUDE_FILE_PATTERNS = |
PREDEFINED = CONFIG_SMP \ |
CONFIG_HT |
EXPAND_AS_DEFINED = |
SKIP_FUNCTION_MACROS = NO |
#--------------------------------------------------------------------------- |
# Configuration::additions related to external references |
#--------------------------------------------------------------------------- |
TAGFILES = |
GENERATE_TAGFILE = |
ALLEXTERNALS = NO |
EXTERNAL_GROUPS = YES |
PERL_PATH = /usr/bin/perl |
#--------------------------------------------------------------------------- |
# Configuration options related to the dot tool |
#--------------------------------------------------------------------------- |
CLASS_DIAGRAMS = NO |
HIDE_UNDOC_RELATIONS = YES |
HAVE_DOT = $(DOT) |
CLASS_GRAPH = NO |
COLLABORATION_GRAPH = NO |
GROUP_GRAPHS = NO |
UML_LOOK = NO |
TEMPLATE_RELATIONS = NO |
INCLUDE_GRAPH = YES |
INCLUDED_BY_GRAPH = YES |
CALL_GRAPH = YES |
GRAPHICAL_HIERARCHY = NO |
DIRECTORY_GRAPH = NO |
DOT_IMAGE_FORMAT = png |
DOT_PATH = |
DOTFILE_DIRS = |
MAX_DOT_GRAPH_WIDTH = 1024 |
MAX_DOT_GRAPH_HEIGHT = 1024 |
MAX_DOT_GRAPH_DEPTH = 1000 |
DOT_TRANSPARENT = NO |
DOT_MULTI_TARGETS = NO |
GENERATE_LEGEND = YES |
DOT_CLEANUP = YES |
#--------------------------------------------------------------------------- |
# Configuration::additions related to the search engine |
#--------------------------------------------------------------------------- |
SEARCHENGINE = NO |
/refman/trunk/Doxyfile-kernel-ppc64 |
---|
0,0 → 1,239 |
# Doxyfile 1.4.2 |
#--------------------------------------------------------------------------- |
# Project related configuration options |
#--------------------------------------------------------------------------- |
PROJECT_NAME = "HelenOS Kernel (ppc64)" |
PROJECT_NUMBER = "0.2.0" |
OUTPUT_DIRECTORY = $(DOCDIR)/doc/kernel-ppc64 |
CREATE_SUBDIRS = NO |
OUTPUT_LANGUAGE = English |
USE_WINDOWS_ENCODING = NO |
BRIEF_MEMBER_DESC = YES |
REPEAT_BRIEF = NO |
ABBREVIATE_BRIEF = "The $name class" \ |
"The $name widget" \ |
"The $name file" \ |
is \ |
provides \ |
specifies \ |
contains \ |
represents \ |
a \ |
an \ |
the |
ALWAYS_DETAILED_SEC = NO |
INLINE_INHERITED_MEMB = NO |
FULL_PATH_NAMES = YES |
STRIP_FROM_PATH = |
STRIP_FROM_INC_PATH = |
SHORT_NAMES = NO |
JAVADOC_AUTOBRIEF = NO |
MULTILINE_CPP_IS_BRIEF = NO |
DETAILS_AT_TOP = NO |
INHERIT_DOCS = NO |
DISTRIBUTE_GROUP_DOC = NO |
SEPARATE_MEMBER_PAGES = NO |
TAB_SIZE = 8 |
ALIASES = |
OPTIMIZE_OUTPUT_FOR_C = YES |
OPTIMIZE_OUTPUT_JAVA = NO |
SUBGROUPING = NO |
#--------------------------------------------------------------------------- |
# Build related configuration options |
#--------------------------------------------------------------------------- |
EXTRACT_ALL = NO |
EXTRACT_PRIVATE = NO |
EXTRACT_STATIC = YES |
EXTRACT_LOCAL_CLASSES = YES |
EXTRACT_LOCAL_METHODS = YES |
HIDE_UNDOC_MEMBERS = YES |
HIDE_UNDOC_CLASSES = YES |
HIDE_FRIEND_COMPOUNDS = NO |
HIDE_IN_BODY_DOCS = NO |
INTERNAL_DOCS = NO |
CASE_SENSE_NAMES = YES |
HIDE_SCOPE_NAMES = YES |
SHOW_INCLUDE_FILES = NO |
INLINE_INFO = NO |
SORT_MEMBER_DOCS = YES |
SORT_BRIEF_DOCS = NO |
SORT_BY_SCOPE_NAME = YES |
GENERATE_TODOLIST = YES |
GENERATE_TESTLIST = NO |
GENERATE_BUGLIST = YES |
GENERATE_DEPRECATEDLIST= NO |
ENABLED_SECTIONS = ppc64 |
MAX_INITIALIZER_LINES = 30 |
SHOW_USED_FILES = NO |
SHOW_DIRECTORIES = YES |
FILE_VERSION_FILTER = |
#--------------------------------------------------------------------------- |
# configuration options related to warning and progress messages |
#--------------------------------------------------------------------------- |
QUIET = NO |
WARNINGS = YES |
WARN_IF_UNDOCUMENTED = NO |
WARN_IF_DOC_ERROR = YES |
WARN_NO_PARAMDOC = NO |
WARN_FORMAT = "$file:$line: $text" |
WARN_LOGFILE = |
#--------------------------------------------------------------------------- |
# configuration options related to the input files |
#--------------------------------------------------------------------------- |
INPUT = $(SRCDIR)/kernel/doc \ |
$(SRCDIR)/kernel/generic \ |
$(SRCDIR)/kernel/genarch \ |
$(SRCDIR)/kernel/arch/ppc64 |
FILE_PATTERNS = *.c \ |
*.h |
RECURSIVE = YES |
EXCLUDE = |
EXCLUDE_SYMLINKS = YES |
EXCLUDE_PATTERNS = *ofw* \ |
*_ht* \ |
*acpi* \ |
*i8042* |
EXAMPLE_PATH = |
EXAMPLE_PATTERNS = * |
EXAMPLE_RECURSIVE = NO |
IMAGE_PATH = |
INPUT_FILTER = |
FILTER_PATTERNS = |
FILTER_SOURCE_FILES = NO |
#--------------------------------------------------------------------------- |
# configuration options related to source browsing |
#--------------------------------------------------------------------------- |
SOURCE_BROWSER = NO |
INLINE_SOURCES = NO |
STRIP_CODE_COMMENTS = YES |
REFERENCED_BY_RELATION = NO |
REFERENCES_RELATION = NO |
VERBATIM_HEADERS = NO |
#--------------------------------------------------------------------------- |
# configuration options related to the alphabetical class index |
#--------------------------------------------------------------------------- |
ALPHABETICAL_INDEX = YES |
COLS_IN_ALPHA_INDEX = 5 |
IGNORE_PREFIX = |
#--------------------------------------------------------------------------- |
# configuration options related to the HTML output |
#--------------------------------------------------------------------------- |
GENERATE_HTML = YES |
HTML_OUTPUT = html |
HTML_FILE_EXTENSION = .html |
HTML_HEADER = |
HTML_FOOTER = |
HTML_STYLESHEET = |
HTML_ALIGN_MEMBERS = YES |
GENERATE_HTMLHELP = NO |
CHM_FILE = |
HHC_LOCATION = |
GENERATE_CHI = NO |
BINARY_TOC = NO |
TOC_EXPAND = NO |
DISABLE_INDEX = NO |
ENUM_VALUES_PER_LINE = 4 |
GENERATE_TREEVIEW = NO |
TREEVIEW_WIDTH = 250 |
#--------------------------------------------------------------------------- |
# configuration options related to the LaTeX output |
#--------------------------------------------------------------------------- |
GENERATE_LATEX = NO |
LATEX_OUTPUT = latex |
LATEX_CMD_NAME = latex |
MAKEINDEX_CMD_NAME = makeindex |
COMPACT_LATEX = NO |
PAPER_TYPE = a4wide |
EXTRA_PACKAGES = |
LATEX_HEADER = |
PDF_HYPERLINKS = YES |
USE_PDFLATEX = YES |
LATEX_BATCHMODE = NO |
LATEX_HIDE_INDICES = NO |
#--------------------------------------------------------------------------- |
# configuration options related to the RTF output |
#--------------------------------------------------------------------------- |
GENERATE_RTF = NO |
RTF_OUTPUT = rtf |
COMPACT_RTF = NO |
RTF_HYPERLINKS = NO |
RTF_STYLESHEET_FILE = |
RTF_EXTENSIONS_FILE = |
#--------------------------------------------------------------------------- |
# configuration options related to the man page output |
#--------------------------------------------------------------------------- |
GENERATE_MAN = NO |
MAN_OUTPUT = man |
MAN_EXTENSION = .2 |
MAN_LINKS = YES |
#--------------------------------------------------------------------------- |
# configuration options related to the XML output |
#--------------------------------------------------------------------------- |
GENERATE_XML = NO |
XML_OUTPUT = xml |
XML_SCHEMA = |
XML_DTD = |
XML_PROGRAMLISTING = YES |
#--------------------------------------------------------------------------- |
# configuration options for the AutoGen Definitions output |
#--------------------------------------------------------------------------- |
GENERATE_AUTOGEN_DEF = NO |
#--------------------------------------------------------------------------- |
# configuration options related to the Perl module output |
#--------------------------------------------------------------------------- |
GENERATE_PERLMOD = NO |
PERLMOD_LATEX = NO |
PERLMOD_PRETTY = YES |
PERLMOD_MAKEVAR_PREFIX = |
#--------------------------------------------------------------------------- |
# Configuration options related to the preprocessor |
#--------------------------------------------------------------------------- |
ENABLE_PREPROCESSING = YES |
MACRO_EXPANSION = NO |
EXPAND_ONLY_PREDEF = NO |
SEARCH_INCLUDES = YES |
INCLUDE_PATH = |
INCLUDE_FILE_PATTERNS = |
PREDEFINED = CONFIG_SMP \ |
CONFIG_HT |
EXPAND_AS_DEFINED = |
SKIP_FUNCTION_MACROS = NO |
#--------------------------------------------------------------------------- |
# Configuration::additions related to external references |
#--------------------------------------------------------------------------- |
TAGFILES = |
GENERATE_TAGFILE = |
ALLEXTERNALS = NO |
EXTERNAL_GROUPS = YES |
PERL_PATH = /usr/bin/perl |
#--------------------------------------------------------------------------- |
# Configuration options related to the dot tool |
#--------------------------------------------------------------------------- |
CLASS_DIAGRAMS = NO |
HIDE_UNDOC_RELATIONS = YES |
HAVE_DOT = $(DOT) |
CLASS_GRAPH = NO |
COLLABORATION_GRAPH = NO |
GROUP_GRAPHS = NO |
UML_LOOK = NO |
TEMPLATE_RELATIONS = NO |
INCLUDE_GRAPH = YES |
INCLUDED_BY_GRAPH = YES |
CALL_GRAPH = YES |
GRAPHICAL_HIERARCHY = NO |
DIRECTORY_GRAPH = NO |
DOT_IMAGE_FORMAT = png |
DOT_PATH = |
DOTFILE_DIRS = |
MAX_DOT_GRAPH_WIDTH = 1024 |
MAX_DOT_GRAPH_HEIGHT = 1024 |
MAX_DOT_GRAPH_DEPTH = 1000 |
DOT_TRANSPARENT = NO |
DOT_MULTI_TARGETS = NO |
GENERATE_LEGEND = YES |
DOT_CLEANUP = YES |
#--------------------------------------------------------------------------- |
# Configuration::additions related to the search engine |
#--------------------------------------------------------------------------- |
SEARCHENGINE = NO |
/refman/trunk/Doxyfile-kernel-mips32 |
---|
0,0 → 1,240 |
# Doxyfile 1.4.2 |
#--------------------------------------------------------------------------- |
# Project related configuration options |
#--------------------------------------------------------------------------- |
PROJECT_NAME = "HelenOS Kernel (mips32)" |
PROJECT_NUMBER = "0.2.0" |
OUTPUT_DIRECTORY = $(DOCDIR)/doc/kernel-mips32 |
CREATE_SUBDIRS = NO |
OUTPUT_LANGUAGE = English |
USE_WINDOWS_ENCODING = NO |
BRIEF_MEMBER_DESC = YES |
REPEAT_BRIEF = NO |
ABBREVIATE_BRIEF = "The $name class" \ |
"The $name widget" \ |
"The $name file" \ |
is \ |
provides \ |
specifies \ |
contains \ |
represents \ |
a \ |
an \ |
the |
ALWAYS_DETAILED_SEC = NO |
INLINE_INHERITED_MEMB = NO |
FULL_PATH_NAMES = YES |
STRIP_FROM_PATH = |
STRIP_FROM_INC_PATH = |
SHORT_NAMES = NO |
JAVADOC_AUTOBRIEF = NO |
MULTILINE_CPP_IS_BRIEF = NO |
DETAILS_AT_TOP = NO |
INHERIT_DOCS = NO |
DISTRIBUTE_GROUP_DOC = NO |
SEPARATE_MEMBER_PAGES = NO |
TAB_SIZE = 8 |
ALIASES = |
OPTIMIZE_OUTPUT_FOR_C = YES |
OPTIMIZE_OUTPUT_JAVA = NO |
SUBGROUPING = NO |
#--------------------------------------------------------------------------- |
# Build related configuration options |
#--------------------------------------------------------------------------- |
EXTRACT_ALL = NO |
EXTRACT_PRIVATE = NO |
EXTRACT_STATIC = YES |
EXTRACT_LOCAL_CLASSES = YES |
EXTRACT_LOCAL_METHODS = YES |
HIDE_UNDOC_MEMBERS = YES |
HIDE_UNDOC_CLASSES = YES |
HIDE_FRIEND_COMPOUNDS = NO |
HIDE_IN_BODY_DOCS = NO |
INTERNAL_DOCS = NO |
CASE_SENSE_NAMES = YES |
HIDE_SCOPE_NAMES = YES |
SHOW_INCLUDE_FILES = NO |
INLINE_INFO = NO |
SORT_MEMBER_DOCS = YES |
SORT_BRIEF_DOCS = NO |
SORT_BY_SCOPE_NAME = YES |
GENERATE_TODOLIST = YES |
GENERATE_TESTLIST = NO |
GENERATE_BUGLIST = YES |
GENERATE_DEPRECATEDLIST= NO |
ENABLED_SECTIONS = mips32 |
MAX_INITIALIZER_LINES = 30 |
SHOW_USED_FILES = NO |
SHOW_DIRECTORIES = YES |
FILE_VERSION_FILTER = |
#--------------------------------------------------------------------------- |
# configuration options related to warning and progress messages |
#--------------------------------------------------------------------------- |
QUIET = NO |
WARNINGS = YES |
WARN_IF_UNDOCUMENTED = NO |
WARN_IF_DOC_ERROR = YES |
WARN_NO_PARAMDOC = NO |
WARN_FORMAT = "$file:$line: $text" |
WARN_LOGFILE = |
#--------------------------------------------------------------------------- |
# configuration options related to the input files |
#--------------------------------------------------------------------------- |
INPUT = $(SRCDIR)/kernel/doc \ |
$(SRCDIR)/kernel/generic \ |
$(SRCDIR)/kernel/genarch \ |
$(SRCDIR)/kernel/arch/mips32 |
FILE_PATTERNS = *.c \ |
*.h |
RECURSIVE = YES |
EXCLUDE = |
EXCLUDE_SYMLINKS = YES |
EXCLUDE_PATTERNS = *ofw* \ |
*_ht* \ |
*acpi* \ |
*i8042* \ |
*softint* |
EXAMPLE_PATH = |
EXAMPLE_PATTERNS = * |
EXAMPLE_RECURSIVE = NO |
IMAGE_PATH = |
INPUT_FILTER = |
FILTER_PATTERNS = |
FILTER_SOURCE_FILES = NO |
#--------------------------------------------------------------------------- |
# configuration options related to source browsing |
#--------------------------------------------------------------------------- |
SOURCE_BROWSER = NO |
INLINE_SOURCES = NO |
STRIP_CODE_COMMENTS = YES |
REFERENCED_BY_RELATION = NO |
REFERENCES_RELATION = NO |
VERBATIM_HEADERS = NO |
#--------------------------------------------------------------------------- |
# configuration options related to the alphabetical class index |
#--------------------------------------------------------------------------- |
ALPHABETICAL_INDEX = YES |
COLS_IN_ALPHA_INDEX = 5 |
IGNORE_PREFIX = |
#--------------------------------------------------------------------------- |
# configuration options related to the HTML output |
#--------------------------------------------------------------------------- |
GENERATE_HTML = YES |
HTML_OUTPUT = html |
HTML_FILE_EXTENSION = .html |
HTML_HEADER = |
HTML_FOOTER = |
HTML_STYLESHEET = |
HTML_ALIGN_MEMBERS = YES |
GENERATE_HTMLHELP = NO |
CHM_FILE = |
HHC_LOCATION = |
GENERATE_CHI = NO |
BINARY_TOC = NO |
TOC_EXPAND = NO |
DISABLE_INDEX = NO |
ENUM_VALUES_PER_LINE = 4 |
GENERATE_TREEVIEW = NO |
TREEVIEW_WIDTH = 250 |
#--------------------------------------------------------------------------- |
# configuration options related to the LaTeX output |
#--------------------------------------------------------------------------- |
GENERATE_LATEX = NO |
LATEX_OUTPUT = latex |
LATEX_CMD_NAME = latex |
MAKEINDEX_CMD_NAME = makeindex |
COMPACT_LATEX = NO |
PAPER_TYPE = a4wide |
EXTRA_PACKAGES = |
LATEX_HEADER = |
PDF_HYPERLINKS = YES |
USE_PDFLATEX = YES |
LATEX_BATCHMODE = NO |
LATEX_HIDE_INDICES = NO |
#--------------------------------------------------------------------------- |
# configuration options related to the RTF output |
#--------------------------------------------------------------------------- |
GENERATE_RTF = NO |
RTF_OUTPUT = rtf |
COMPACT_RTF = NO |
RTF_HYPERLINKS = NO |
RTF_STYLESHEET_FILE = |
RTF_EXTENSIONS_FILE = |
#--------------------------------------------------------------------------- |
# configuration options related to the man page output |
#--------------------------------------------------------------------------- |
GENERATE_MAN = NO |
MAN_OUTPUT = man |
MAN_EXTENSION = .2 |
MAN_LINKS = YES |
#--------------------------------------------------------------------------- |
# configuration options related to the XML output |
#--------------------------------------------------------------------------- |
GENERATE_XML = NO |
XML_OUTPUT = xml |
XML_SCHEMA = |
XML_DTD = |
XML_PROGRAMLISTING = YES |
#--------------------------------------------------------------------------- |
# configuration options for the AutoGen Definitions output |
#--------------------------------------------------------------------------- |
GENERATE_AUTOGEN_DEF = NO |
#--------------------------------------------------------------------------- |
# configuration options related to the Perl module output |
#--------------------------------------------------------------------------- |
GENERATE_PERLMOD = NO |
PERLMOD_LATEX = NO |
PERLMOD_PRETTY = YES |
PERLMOD_MAKEVAR_PREFIX = |
#--------------------------------------------------------------------------- |
# Configuration options related to the preprocessor |
#--------------------------------------------------------------------------- |
ENABLE_PREPROCESSING = YES |
MACRO_EXPANSION = NO |
EXPAND_ONLY_PREDEF = NO |
SEARCH_INCLUDES = YES |
INCLUDE_PATH = |
INCLUDE_FILE_PATTERNS = |
PREDEFINED = CONFIG_SMP \ |
CONFIG_HT |
EXPAND_AS_DEFINED = |
SKIP_FUNCTION_MACROS = NO |
#--------------------------------------------------------------------------- |
# Configuration::additions related to external references |
#--------------------------------------------------------------------------- |
TAGFILES = |
GENERATE_TAGFILE = |
ALLEXTERNALS = NO |
EXTERNAL_GROUPS = YES |
PERL_PATH = /usr/bin/perl |
#--------------------------------------------------------------------------- |
# Configuration options related to the dot tool |
#--------------------------------------------------------------------------- |
CLASS_DIAGRAMS = NO |
HIDE_UNDOC_RELATIONS = YES |
HAVE_DOT = $(DOT) |
CLASS_GRAPH = NO |
COLLABORATION_GRAPH = NO |
GROUP_GRAPHS = NO |
UML_LOOK = NO |
TEMPLATE_RELATIONS = NO |
INCLUDE_GRAPH = YES |
INCLUDED_BY_GRAPH = YES |
CALL_GRAPH = YES |
GRAPHICAL_HIERARCHY = NO |
DIRECTORY_GRAPH = NO |
DOT_IMAGE_FORMAT = png |
DOT_PATH = |
DOTFILE_DIRS = |
MAX_DOT_GRAPH_WIDTH = 1024 |
MAX_DOT_GRAPH_HEIGHT = 1024 |
MAX_DOT_GRAPH_DEPTH = 1000 |
DOT_TRANSPARENT = NO |
DOT_MULTI_TARGETS = NO |
GENERATE_LEGEND = YES |
DOT_CLEANUP = YES |
#--------------------------------------------------------------------------- |
# Configuration::additions related to the search engine |
#--------------------------------------------------------------------------- |
SEARCHENGINE = NO |
/refman/trunk/Doxyfile-uspace-mips32 |
---|
0,0 → 1,251 |
# Doxyfile 1.4.2 |
#--------------------------------------------------------------------------- |
# Project related configuration options |
#--------------------------------------------------------------------------- |
PROJECT_NAME = "HelenOS Userspace (mips32)" |
PROJECT_NUMBER = "0.2.0" |
OUTPUT_DIRECTORY = $(DOCDIR)/doc/uspace-mips32 |
CREATE_SUBDIRS = NO |
OUTPUT_LANGUAGE = English |
USE_WINDOWS_ENCODING = NO |
BRIEF_MEMBER_DESC = YES |
REPEAT_BRIEF = NO |
ABBREVIATE_BRIEF = "The $name class" \ |
"The $name widget" \ |
"The $name file" \ |
is \ |
provides \ |
specifies \ |
contains \ |
represents \ |
a \ |
an \ |
the |
ALWAYS_DETAILED_SEC = NO |
INLINE_INHERITED_MEMB = NO |
FULL_PATH_NAMES = NO |
STRIP_FROM_PATH = |
STRIP_FROM_INC_PATH = |
SHORT_NAMES = NO |
JAVADOC_AUTOBRIEF = NO |
MULTILINE_CPP_IS_BRIEF = NO |
DETAILS_AT_TOP = NO |
INHERIT_DOCS = NO |
DISTRIBUTE_GROUP_DOC = NO |
SEPARATE_MEMBER_PAGES = NO |
TAB_SIZE = 8 |
ALIASES = |
OPTIMIZE_OUTPUT_FOR_C = YES |
OPTIMIZE_OUTPUT_JAVA = NO |
SUBGROUPING = NO |
#--------------------------------------------------------------------------- |
# Build related configuration options |
#--------------------------------------------------------------------------- |
EXTRACT_ALL = NO |
EXTRACT_PRIVATE = NO |
EXTRACT_STATIC = YES |
EXTRACT_LOCAL_CLASSES = YES |
EXTRACT_LOCAL_METHODS = YES |
HIDE_UNDOC_MEMBERS = YES |
HIDE_UNDOC_CLASSES = YES |
HIDE_FRIEND_COMPOUNDS = NO |
HIDE_IN_BODY_DOCS = NO |
INTERNAL_DOCS = NO |
CASE_SENSE_NAMES = YES |
HIDE_SCOPE_NAMES = YES |
SHOW_INCLUDE_FILES = NO |
INLINE_INFO = NO |
SORT_MEMBER_DOCS = NO |
SORT_BRIEF_DOCS = NO |
SORT_BY_SCOPE_NAME = NO |
GENERATE_TODOLIST = YES |
GENERATE_TESTLIST = NO |
GENERATE_BUGLIST = YES |
GENERATE_DEPRECATEDLIST= NO |
ENABLED_SECTIONS = mips32 |
MAX_INITIALIZER_LINES = 30 |
SHOW_USED_FILES = NO |
SHOW_DIRECTORIES = YES |
FILE_VERSION_FILTER = |
#--------------------------------------------------------------------------- |
# configuration options related to warning and progress messages |
#--------------------------------------------------------------------------- |
QUIET = NO |
WARNINGS = YES |
WARN_IF_UNDOCUMENTED = NO |
WARN_IF_DOC_ERROR = YES |
WARN_NO_PARAMDOC = NO |
WARN_FORMAT = "$file:$line: $text" |
WARN_LOGFILE = |
#--------------------------------------------------------------------------- |
# configuration options related to the input files |
#--------------------------------------------------------------------------- |
INPUT = $(SRCDIR)/uspace/doc \ |
$(SRCDIR)/uspace/console \ |
$(SRCDIR)/uspace/fb \ |
$(SRCDIR)/uspace/ipcc \ |
$(SRCDIR)/uspace/kbd/arch/mips32 \ |
$(SRCDIR)/uspace/kbd/include \ |
$(SRCDIR)/uspace/kbd/generic \ |
$(SRCDIR)/uspace/klog \ |
$(SRCDIR)/uspace/libc/arch/mips32 \ |
$(SRCDIR)/uspace/libc/include \ |
$(SRCDIR)/uspace/libc/generic \ |
$(SRCDIR)/uspace/libc/malloc \ |
$(SRCDIR)/uspace/ns \ |
$(SRCDIR)/uspace/softfloat/arch/mips32 \ |
$(SRCDIR)/uspace/softfloat/include \ |
$(SRCDIR)/uspace/softfloat/generic \ |
$(SRCDIR)/uspace/softint |
FILE_PATTERNS = *.c \ |
*.h |
RECURSIVE = YES |
EXCLUDE = |
EXCLUDE_SYMLINKS = YES |
EXCLUDE_PATTERNS = *ega* \ |
*libpci* |
EXAMPLE_PATH = |
EXAMPLE_PATTERNS = * |
EXAMPLE_RECURSIVE = NO |
IMAGE_PATH = |
INPUT_FILTER = |
FILTER_PATTERNS = |
FILTER_SOURCE_FILES = NO |
#--------------------------------------------------------------------------- |
# configuration options related to source browsing |
#--------------------------------------------------------------------------- |
SOURCE_BROWSER = NO |
INLINE_SOURCES = NO |
STRIP_CODE_COMMENTS = YES |
REFERENCED_BY_RELATION = NO |
REFERENCES_RELATION = NO |
VERBATIM_HEADERS = NO |
#--------------------------------------------------------------------------- |
# configuration options related to the alphabetical class index |
#--------------------------------------------------------------------------- |
ALPHABETICAL_INDEX = YES |
COLS_IN_ALPHA_INDEX = 5 |
IGNORE_PREFIX = |
#--------------------------------------------------------------------------- |
# configuration options related to the HTML output |
#--------------------------------------------------------------------------- |
GENERATE_HTML = YES |
HTML_OUTPUT = html |
HTML_FILE_EXTENSION = .html |
HTML_HEADER = |
HTML_FOOTER = |
HTML_STYLESHEET = |
HTML_ALIGN_MEMBERS = YES |
GENERATE_HTMLHELP = NO |
CHM_FILE = |
HHC_LOCATION = |
GENERATE_CHI = NO |
BINARY_TOC = NO |
TOC_EXPAND = NO |
DISABLE_INDEX = NO |
ENUM_VALUES_PER_LINE = 4 |
GENERATE_TREEVIEW = NO |
TREEVIEW_WIDTH = 250 |
#--------------------------------------------------------------------------- |
# configuration options related to the LaTeX output |
#--------------------------------------------------------------------------- |
GENERATE_LATEX = NO |
LATEX_OUTPUT = latex |
LATEX_CMD_NAME = latex |
MAKEINDEX_CMD_NAME = makeindex |
COMPACT_LATEX = NO |
PAPER_TYPE = a4wide |
EXTRA_PACKAGES = |
LATEX_HEADER = |
PDF_HYPERLINKS = YES |
USE_PDFLATEX = YES |
LATEX_BATCHMODE = NO |
LATEX_HIDE_INDICES = NO |
#--------------------------------------------------------------------------- |
# configuration options related to the RTF output |
#--------------------------------------------------------------------------- |
GENERATE_RTF = NO |
RTF_OUTPUT = rtf |
COMPACT_RTF = NO |
RTF_HYPERLINKS = NO |
RTF_STYLESHEET_FILE = |
RTF_EXTENSIONS_FILE = |
#--------------------------------------------------------------------------- |
# configuration options related to the man page output |
#--------------------------------------------------------------------------- |
GENERATE_MAN = NO |
MAN_OUTPUT = man |
MAN_EXTENSION = .2 |
MAN_LINKS = YES |
#--------------------------------------------------------------------------- |
# configuration options related to the XML output |
#--------------------------------------------------------------------------- |
GENERATE_XML = NO |
XML_OUTPUT = xml |
XML_SCHEMA = |
XML_DTD = |
XML_PROGRAMLISTING = YES |
#--------------------------------------------------------------------------- |
# configuration options for the AutoGen Definitions output |
#--------------------------------------------------------------------------- |
GENERATE_AUTOGEN_DEF = NO |
#--------------------------------------------------------------------------- |
# configuration options related to the Perl module output |
#--------------------------------------------------------------------------- |
GENERATE_PERLMOD = NO |
PERLMOD_LATEX = NO |
PERLMOD_PRETTY = YES |
PERLMOD_MAKEVAR_PREFIX = |
#--------------------------------------------------------------------------- |
# Configuration options related to the preprocessor |
#--------------------------------------------------------------------------- |
ENABLE_PREPROCESSING = YES |
MACRO_EXPANSION = NO |
EXPAND_ONLY_PREDEF = NO |
SEARCH_INCLUDES = YES |
INCLUDE_PATH = |
INCLUDE_FILE_PATTERNS = |
PREDEFINED = CONFIG_SMP \ |
CONFIG_HT |
EXPAND_AS_DEFINED = |
SKIP_FUNCTION_MACROS = NO |
#--------------------------------------------------------------------------- |
# Configuration::additions related to external references |
#--------------------------------------------------------------------------- |
TAGFILES = |
GENERATE_TAGFILE = |
ALLEXTERNALS = NO |
EXTERNAL_GROUPS = YES |
PERL_PATH = /usr/bin/perl |
#--------------------------------------------------------------------------- |
# Configuration options related to the dot tool |
#--------------------------------------------------------------------------- |
CLASS_DIAGRAMS = NO |
HIDE_UNDOC_RELATIONS = YES |
HAVE_DOT = $(DOT) |
CLASS_GRAPH = NO |
COLLABORATION_GRAPH = NO |
GROUP_GRAPHS = NO |
UML_LOOK = NO |
TEMPLATE_RELATIONS = NO |
INCLUDE_GRAPH = YES |
INCLUDED_BY_GRAPH = YES |
CALL_GRAPH = YES |
GRAPHICAL_HIERARCHY = NO |
DIRECTORY_GRAPH = NO |
DOT_IMAGE_FORMAT = png |
DOT_PATH = |
DOTFILE_DIRS = |
MAX_DOT_GRAPH_WIDTH = 1024 |
MAX_DOT_GRAPH_HEIGHT = 1024 |
MAX_DOT_GRAPH_DEPTH = 1000 |
DOT_TRANSPARENT = NO |
DOT_MULTI_TARGETS = NO |
GENERATE_LEGEND = YES |
DOT_CLEANUP = YES |
#--------------------------------------------------------------------------- |
# Configuration::additions related to the search engine |
#--------------------------------------------------------------------------- |
SEARCHENGINE = NO |
/refman/trunk/Doxyfile-kernel-ia32 |
---|
0,0 → 1,239 |
# Doxyfile 1.4.2 |
#--------------------------------------------------------------------------- |
# Project related configuration options |
#--------------------------------------------------------------------------- |
PROJECT_NAME = "HelenOS Kernel (ia32)" |
PROJECT_NUMBER = "0.2.0" |
OUTPUT_DIRECTORY = $(DOCDIR)/doc/kernel-ia32 |
CREATE_SUBDIRS = NO |
OUTPUT_LANGUAGE = English |
USE_WINDOWS_ENCODING = NO |
BRIEF_MEMBER_DESC = YES |
REPEAT_BRIEF = NO |
ABBREVIATE_BRIEF = "The $name class" \ |
"The $name widget" \ |
"The $name file" \ |
is \ |
provides \ |
specifies \ |
contains \ |
represents \ |
a \ |
an \ |
the |
ALWAYS_DETAILED_SEC = NO |
INLINE_INHERITED_MEMB = NO |
FULL_PATH_NAMES = YES |
STRIP_FROM_PATH = |
STRIP_FROM_INC_PATH = |
SHORT_NAMES = NO |
JAVADOC_AUTOBRIEF = NO |
MULTILINE_CPP_IS_BRIEF = NO |
DETAILS_AT_TOP = NO |
INHERIT_DOCS = NO |
DISTRIBUTE_GROUP_DOC = NO |
SEPARATE_MEMBER_PAGES = NO |
TAB_SIZE = 8 |
ALIASES = |
OPTIMIZE_OUTPUT_FOR_C = YES |
OPTIMIZE_OUTPUT_JAVA = NO |
SUBGROUPING = NO |
#--------------------------------------------------------------------------- |
# Build related configuration options |
#--------------------------------------------------------------------------- |
EXTRACT_ALL = NO |
EXTRACT_PRIVATE = NO |
EXTRACT_STATIC = YES |
EXTRACT_LOCAL_CLASSES = YES |
EXTRACT_LOCAL_METHODS = YES |
HIDE_UNDOC_MEMBERS = YES |
HIDE_UNDOC_CLASSES = YES |
HIDE_FRIEND_COMPOUNDS = NO |
HIDE_IN_BODY_DOCS = NO |
INTERNAL_DOCS = NO |
CASE_SENSE_NAMES = YES |
HIDE_SCOPE_NAMES = YES |
SHOW_INCLUDE_FILES = NO |
INLINE_INFO = NO |
SORT_MEMBER_DOCS = YES |
SORT_BRIEF_DOCS = NO |
SORT_BY_SCOPE_NAME = YES |
GENERATE_TODOLIST = YES |
GENERATE_TESTLIST = NO |
GENERATE_BUGLIST = YES |
GENERATE_DEPRECATEDLIST= NO |
ENABLED_SECTIONS = ia32 |
MAX_INITIALIZER_LINES = 30 |
SHOW_USED_FILES = NO |
SHOW_DIRECTORIES = YES |
FILE_VERSION_FILTER = |
#--------------------------------------------------------------------------- |
# configuration options related to warning and progress messages |
#--------------------------------------------------------------------------- |
QUIET = NO |
WARNINGS = YES |
WARN_IF_UNDOCUMENTED = NO |
WARN_IF_DOC_ERROR = YES |
WARN_NO_PARAMDOC = NO |
WARN_FORMAT = "$file:$line: $text" |
WARN_LOGFILE = |
#--------------------------------------------------------------------------- |
# configuration options related to the input files |
#--------------------------------------------------------------------------- |
INPUT = $(SRCDIR)/kernel/doc \ |
$(SRCDIR)/kernel/generic \ |
$(SRCDIR)/kernel/genarch \ |
$(SRCDIR)/kernel/arch/ia32 |
FILE_PATTERNS = *.c \ |
*.h |
RECURSIVE = YES |
EXCLUDE = |
EXCLUDE_SYMLINKS = YES |
EXCLUDE_PATTERNS = *ofw* \ |
*_ht* \ |
*softint* \ |
*asid* |
EXAMPLE_PATH = |
EXAMPLE_PATTERNS = * |
EXAMPLE_RECURSIVE = NO |
IMAGE_PATH = |
INPUT_FILTER = |
FILTER_PATTERNS = |
FILTER_SOURCE_FILES = NO |
#--------------------------------------------------------------------------- |
# configuration options related to source browsing |
#--------------------------------------------------------------------------- |
SOURCE_BROWSER = NO |
INLINE_SOURCES = NO |
STRIP_CODE_COMMENTS = YES |
REFERENCED_BY_RELATION = NO |
REFERENCES_RELATION = NO |
VERBATIM_HEADERS = NO |
#--------------------------------------------------------------------------- |
# configuration options related to the alphabetical class index |
#--------------------------------------------------------------------------- |
ALPHABETICAL_INDEX = YES |
COLS_IN_ALPHA_INDEX = 5 |
IGNORE_PREFIX = |
#--------------------------------------------------------------------------- |
# configuration options related to the HTML output |
#--------------------------------------------------------------------------- |
GENERATE_HTML = YES |
HTML_OUTPUT = html |
HTML_FILE_EXTENSION = .html |
HTML_HEADER = |
HTML_FOOTER = |
HTML_STYLESHEET = |
HTML_ALIGN_MEMBERS = YES |
GENERATE_HTMLHELP = NO |
CHM_FILE = |
HHC_LOCATION = |
GENERATE_CHI = NO |
BINARY_TOC = NO |
TOC_EXPAND = NO |
DISABLE_INDEX = NO |
ENUM_VALUES_PER_LINE = 4 |
GENERATE_TREEVIEW = NO |
TREEVIEW_WIDTH = 250 |
#--------------------------------------------------------------------------- |
# configuration options related to the LaTeX output |
#--------------------------------------------------------------------------- |
GENERATE_LATEX = NO |
LATEX_OUTPUT = latex |
LATEX_CMD_NAME = latex |
MAKEINDEX_CMD_NAME = makeindex |
COMPACT_LATEX = NO |
PAPER_TYPE = a4wide |
EXTRA_PACKAGES = |
LATEX_HEADER = |
PDF_HYPERLINKS = YES |
USE_PDFLATEX = YES |
LATEX_BATCHMODE = NO |
LATEX_HIDE_INDICES = NO |
#--------------------------------------------------------------------------- |
# configuration options related to the RTF output |
#--------------------------------------------------------------------------- |
GENERATE_RTF = NO |
RTF_OUTPUT = rtf |
COMPACT_RTF = NO |
RTF_HYPERLINKS = NO |
RTF_STYLESHEET_FILE = |
RTF_EXTENSIONS_FILE = |
#--------------------------------------------------------------------------- |
# configuration options related to the man page output |
#--------------------------------------------------------------------------- |
GENERATE_MAN = NO |
MAN_OUTPUT = man |
MAN_EXTENSION = .2 |
MAN_LINKS = YES |
#--------------------------------------------------------------------------- |
# configuration options related to the XML output |
#--------------------------------------------------------------------------- |
GENERATE_XML = NO |
XML_OUTPUT = xml |
XML_SCHEMA = |
XML_DTD = |
XML_PROGRAMLISTING = YES |
#--------------------------------------------------------------------------- |
# configuration options for the AutoGen Definitions output |
#--------------------------------------------------------------------------- |
GENERATE_AUTOGEN_DEF = NO |
#--------------------------------------------------------------------------- |
# configuration options related to the Perl module output |
#--------------------------------------------------------------------------- |
GENERATE_PERLMOD = NO |
PERLMOD_LATEX = NO |
PERLMOD_PRETTY = YES |
PERLMOD_MAKEVAR_PREFIX = |
#--------------------------------------------------------------------------- |
# Configuration options related to the preprocessor |
#--------------------------------------------------------------------------- |
ENABLE_PREPROCESSING = YES |
MACRO_EXPANSION = NO |
EXPAND_ONLY_PREDEF = NO |
SEARCH_INCLUDES = YES |
INCLUDE_PATH = |
INCLUDE_FILE_PATTERNS = |
PREDEFINED = CONFIG_SMP \ |
CONFIG_HT |
EXPAND_AS_DEFINED = |
SKIP_FUNCTION_MACROS = NO |
#--------------------------------------------------------------------------- |
# Configuration::additions related to external references |
#--------------------------------------------------------------------------- |
TAGFILES = |
GENERATE_TAGFILE = |
ALLEXTERNALS = NO |
EXTERNAL_GROUPS = YES |
PERL_PATH = /usr/bin/perl |
#--------------------------------------------------------------------------- |
# Configuration options related to the dot tool |
#--------------------------------------------------------------------------- |
CLASS_DIAGRAMS = NO |
HIDE_UNDOC_RELATIONS = YES |
HAVE_DOT = $(DOT) |
CLASS_GRAPH = NO |
COLLABORATION_GRAPH = NO |
GROUP_GRAPHS = NO |
UML_LOOK = NO |
TEMPLATE_RELATIONS = NO |
INCLUDE_GRAPH = YES |
INCLUDED_BY_GRAPH = YES |
CALL_GRAPH = YES |
GRAPHICAL_HIERARCHY = NO |
DIRECTORY_GRAPH = NO |
DOT_IMAGE_FORMAT = png |
DOT_PATH = |
DOTFILE_DIRS = |
MAX_DOT_GRAPH_WIDTH = 1024 |
MAX_DOT_GRAPH_HEIGHT = 1024 |
MAX_DOT_GRAPH_DEPTH = 1000 |
DOT_TRANSPARENT = NO |
DOT_MULTI_TARGETS = NO |
GENERATE_LEGEND = YES |
DOT_CLEANUP = YES |
#--------------------------------------------------------------------------- |
# Configuration::additions related to the search engine |
#--------------------------------------------------------------------------- |
SEARCHENGINE = NO |
/refman/trunk/Doxyfile-uspace-ia32 |
---|
0,0 → 1,252 |
# Doxyfile 1.4.2 |
#--------------------------------------------------------------------------- |
# Project related configuration options |
#--------------------------------------------------------------------------- |
PROJECT_NAME = "HelenOS Userspace (ia32)" |
PROJECT_NUMBER = "0.2.0" |
OUTPUT_DIRECTORY = $(DOCDIR)/doc/uspace-ia32 |
CREATE_SUBDIRS = NO |
OUTPUT_LANGUAGE = English |
USE_WINDOWS_ENCODING = NO |
BRIEF_MEMBER_DESC = YES |
REPEAT_BRIEF = NO |
ABBREVIATE_BRIEF = "The $name class" \ |
"The $name widget" \ |
"The $name file" \ |
is \ |
provides \ |
specifies \ |
contains \ |
represents \ |
a \ |
an \ |
the |
ALWAYS_DETAILED_SEC = NO |
INLINE_INHERITED_MEMB = NO |
FULL_PATH_NAMES = NO |
STRIP_FROM_PATH = |
STRIP_FROM_INC_PATH = |
SHORT_NAMES = NO |
JAVADOC_AUTOBRIEF = NO |
MULTILINE_CPP_IS_BRIEF = NO |
DETAILS_AT_TOP = NO |
INHERIT_DOCS = NO |
DISTRIBUTE_GROUP_DOC = NO |
SEPARATE_MEMBER_PAGES = NO |
TAB_SIZE = 8 |
ALIASES = |
OPTIMIZE_OUTPUT_FOR_C = YES |
OPTIMIZE_OUTPUT_JAVA = NO |
SUBGROUPING = NO |
#--------------------------------------------------------------------------- |
# Build related configuration options |
#--------------------------------------------------------------------------- |
EXTRACT_ALL = NO |
EXTRACT_PRIVATE = NO |
EXTRACT_STATIC = YES |
EXTRACT_LOCAL_CLASSES = YES |
EXTRACT_LOCAL_METHODS = YES |
HIDE_UNDOC_MEMBERS = YES |
HIDE_UNDOC_CLASSES = YES |
HIDE_FRIEND_COMPOUNDS = NO |
HIDE_IN_BODY_DOCS = NO |
INTERNAL_DOCS = NO |
CASE_SENSE_NAMES = YES |
HIDE_SCOPE_NAMES = YES |
SHOW_INCLUDE_FILES = NO |
INLINE_INFO = NO |
SORT_MEMBER_DOCS = NO |
SORT_BRIEF_DOCS = NO |
SORT_BY_SCOPE_NAME = NO |
GENERATE_TODOLIST = YES |
GENERATE_TESTLIST = NO |
GENERATE_BUGLIST = YES |
GENERATE_DEPRECATEDLIST= NO |
ENABLED_SECTIONS = ia32 |
MAX_INITIALIZER_LINES = 30 |
SHOW_USED_FILES = NO |
SHOW_DIRECTORIES = YES |
FILE_VERSION_FILTER = |
#--------------------------------------------------------------------------- |
# configuration options related to warning and progress messages |
#--------------------------------------------------------------------------- |
QUIET = NO |
WARNINGS = YES |
WARN_IF_UNDOCUMENTED = NO |
WARN_IF_DOC_ERROR = YES |
WARN_NO_PARAMDOC = NO |
WARN_FORMAT = "$file:$line: $text" |
WARN_LOGFILE = |
#--------------------------------------------------------------------------- |
# configuration options related to the input files |
#--------------------------------------------------------------------------- |
INPUT = $(SRCDIR)/uspace/doc \ |
$(SRCDIR)/uspace/console \ |
$(SRCDIR)/uspace/fb \ |
$(SRCDIR)/uspace/ipcc \ |
$(SRCDIR)/uspace/kbd/arch/ia32 \ |
$(SRCDIR)/uspace/kbd/include \ |
$(SRCDIR)/uspace/kbd/generic \ |
$(SRCDIR)/uspace/klog \ |
$(SRCDIR)/uspace/libc/arch/ia32 \ |
$(SRCDIR)/uspace/libc/include \ |
$(SRCDIR)/uspace/libc/generic \ |
$(SRCDIR)/uspace/libc/malloc \ |
$(SRCDIR)/uspace/ns \ |
$(SRCDIR)/uspace/softfloat/arch/ia32 \ |
$(SRCDIR)/uspace/softfloat/include \ |
$(SRCDIR)/uspace/softfloat/generic \ |
$(SRCDIR)/uspace/softint \ |
$(SRCDIR)/uspace/pci |
FILE_PATTERNS = *.c \ |
*.h |
RECURSIVE = YES |
EXCLUDE = |
EXCLUDE_SYMLINKS = YES |
EXCLUDE_PATTERNS = *sysio* \ |
*libpci* |
EXAMPLE_PATH = |
EXAMPLE_PATTERNS = * |
EXAMPLE_RECURSIVE = NO |
IMAGE_PATH = |
INPUT_FILTER = |
FILTER_PATTERNS = |
FILTER_SOURCE_FILES = NO |
#--------------------------------------------------------------------------- |
# configuration options related to source browsing |
#--------------------------------------------------------------------------- |
SOURCE_BROWSER = NO |
INLINE_SOURCES = NO |
STRIP_CODE_COMMENTS = YES |
REFERENCED_BY_RELATION = NO |
REFERENCES_RELATION = NO |
VERBATIM_HEADERS = NO |
#--------------------------------------------------------------------------- |
# configuration options related to the alphabetical class index |
#--------------------------------------------------------------------------- |
ALPHABETICAL_INDEX = YES |
COLS_IN_ALPHA_INDEX = 5 |
IGNORE_PREFIX = |
#--------------------------------------------------------------------------- |
# configuration options related to the HTML output |
#--------------------------------------------------------------------------- |
GENERATE_HTML = YES |
HTML_OUTPUT = html |
HTML_FILE_EXTENSION = .html |
HTML_HEADER = |
HTML_FOOTER = |
HTML_STYLESHEET = |
HTML_ALIGN_MEMBERS = YES |
GENERATE_HTMLHELP = NO |
CHM_FILE = |
HHC_LOCATION = |
GENERATE_CHI = NO |
BINARY_TOC = NO |
TOC_EXPAND = NO |
DISABLE_INDEX = NO |
ENUM_VALUES_PER_LINE = 4 |
GENERATE_TREEVIEW = NO |
TREEVIEW_WIDTH = 250 |
#--------------------------------------------------------------------------- |
# configuration options related to the LaTeX output |
#--------------------------------------------------------------------------- |
GENERATE_LATEX = NO |
LATEX_OUTPUT = latex |
LATEX_CMD_NAME = latex |
MAKEINDEX_CMD_NAME = makeindex |
COMPACT_LATEX = NO |
PAPER_TYPE = a4wide |
EXTRA_PACKAGES = |
LATEX_HEADER = |
PDF_HYPERLINKS = YES |
USE_PDFLATEX = YES |
LATEX_BATCHMODE = NO |
LATEX_HIDE_INDICES = NO |
#--------------------------------------------------------------------------- |
# configuration options related to the RTF output |
#--------------------------------------------------------------------------- |
GENERATE_RTF = NO |
RTF_OUTPUT = rtf |
COMPACT_RTF = NO |
RTF_HYPERLINKS = NO |
RTF_STYLESHEET_FILE = |
RTF_EXTENSIONS_FILE = |
#--------------------------------------------------------------------------- |
# configuration options related to the man page output |
#--------------------------------------------------------------------------- |
GENERATE_MAN = NO |
MAN_OUTPUT = man |
MAN_EXTENSION = .2 |
MAN_LINKS = YES |
#--------------------------------------------------------------------------- |
# configuration options related to the XML output |
#--------------------------------------------------------------------------- |
GENERATE_XML = NO |
XML_OUTPUT = xml |
XML_SCHEMA = |
XML_DTD = |
XML_PROGRAMLISTING = YES |
#--------------------------------------------------------------------------- |
# configuration options for the AutoGen Definitions output |
#--------------------------------------------------------------------------- |
GENERATE_AUTOGEN_DEF = NO |
#--------------------------------------------------------------------------- |
# configuration options related to the Perl module output |
#--------------------------------------------------------------------------- |
GENERATE_PERLMOD = NO |
PERLMOD_LATEX = NO |
PERLMOD_PRETTY = YES |
PERLMOD_MAKEVAR_PREFIX = |
#--------------------------------------------------------------------------- |
# Configuration options related to the preprocessor |
#--------------------------------------------------------------------------- |
ENABLE_PREPROCESSING = YES |
MACRO_EXPANSION = NO |
EXPAND_ONLY_PREDEF = NO |
SEARCH_INCLUDES = YES |
INCLUDE_PATH = |
INCLUDE_FILE_PATTERNS = |
PREDEFINED = CONFIG_SMP \ |
CONFIG_HT |
EXPAND_AS_DEFINED = |
SKIP_FUNCTION_MACROS = NO |
#--------------------------------------------------------------------------- |
# Configuration::additions related to external references |
#--------------------------------------------------------------------------- |
TAGFILES = |
GENERATE_TAGFILE = |
ALLEXTERNALS = NO |
EXTERNAL_GROUPS = YES |
PERL_PATH = /usr/bin/perl |
#--------------------------------------------------------------------------- |
# Configuration options related to the dot tool |
#--------------------------------------------------------------------------- |
CLASS_DIAGRAMS = NO |
HIDE_UNDOC_RELATIONS = YES |
HAVE_DOT = $(DOT) |
CLASS_GRAPH = NO |
COLLABORATION_GRAPH = NO |
GROUP_GRAPHS = NO |
UML_LOOK = NO |
TEMPLATE_RELATIONS = NO |
INCLUDE_GRAPH = YES |
INCLUDED_BY_GRAPH = YES |
CALL_GRAPH = YES |
GRAPHICAL_HIERARCHY = NO |
DIRECTORY_GRAPH = NO |
DOT_IMAGE_FORMAT = png |
DOT_PATH = |
DOTFILE_DIRS = |
MAX_DOT_GRAPH_WIDTH = 1024 |
MAX_DOT_GRAPH_HEIGHT = 1024 |
MAX_DOT_GRAPH_DEPTH = 1000 |
DOT_TRANSPARENT = NO |
DOT_MULTI_TARGETS = NO |
GENERATE_LEGEND = YES |
DOT_CLEANUP = YES |
#--------------------------------------------------------------------------- |
# Configuration::additions related to the search engine |
#--------------------------------------------------------------------------- |
SEARCHENGINE = NO |
/refman/trunk/Makefile |
---|
0,0 → 1,36 |
# |
# Set DOT to YES if you want to have graphs in the documentation. |
# |
DOT=NO |
#DOT=YES |
SRCDIR=$(shell cd ../../HelenOS/; pwd) |
DOCDIR=$(shell pwd) |
KERNEL_TARGETS=kernel-amd64 kernel-ia32 kernel-ia64 kernel-mips32 kernel-ppc32 kernel-ppc64 kernel-sparc64 |
USPACE_TARGETS=uspace-amd64 uspace-ia32 uspace-ia64 uspace-mips32 uspace-ppc32 |
TARGETS=$(KERNEL_TARGETS) $(USPACE_TARGETS) |
CLEAN_TARGETS := $(addprefix clean-, $(TARGETS)) |
.PHONY: default all $(TARGETS) $(CLEAN_TARGETS) clean |
usage: |
@echo Usage: make TARGET |
@echo List of available TARGETs: |
@echo all clean $(TARGETS) $(CLEAN_TARGETS) |
all: $(TARGETS) |
clean: $(CLEAN_TARGETS) |
kernel: $(KERNEL_TARGETS) |
uspace: $(USPACE_TARGETS) |
$(TARGETS): |
cd $(SRCDIR); DOCDIR=$(DOCDIR) SRCDIR=$(SRCDIR) DOT=$(DOT) doxygen $(DOCDIR)/Doxyfile-$@ |
$(CLEAN_TARGETS): |
rm -rf $(DOCDIR)/doc/$(shell echo $@ | sed -n "s/^clean-\(.*\)$$/\1/p")/* |
/usrman/trunk/running/running.tex |
---|
0,0 → 1,147 |
\chapter{Running HelenOS} |
\section{Kernel Start} |
When the HelenOS kernel starts up, it configures its output device |
and starts booting. During the boot process it writes out some some |
lines regarding memory size and available CPUs. The userspace |
drivers and tasks take over the console as soon as the start-up activities are finished. |
When kernel tests are compiled in, the userspace layer is not started. |
The console driver provides 12 virtual consoles, 11 are used |
for applications, console 12 is reserved for kernel console. Pressing |
function keys F1-F12 switches between the consoles. |
If the architecture supports framebuffer device with |
at least 800x600 resolution, a nice graphical console is shown. At the top |
of the screen, a row of buttons for the virtual console is drawn. If |
the button contains console number, an application is connected to it. |
The red button means that there was an activity on the terminal |
since it was last shown to the user. |
\section{Kernel Console} |
{\em kconsole} is a kernel thread operating completely in priviledged mode. |
It allows the user to interact directly with the kernel and even start directly |
functions inside the kernel. |
The kernel console is shown by switching to console number 12. On some platforms |
the kconsole screen is not restored to its previous contents. Press |
enter to see {\em kconsole}'s prompt. The function keys for switching terminals |
do not work in the console. In order to switch back to other consoles, use |
the {\em continue} command. After executing the command, press a function key |
to switch to the console of your choice. |
The basic editing facilities are very similar to {\em readline} conventions. |
The left and right arrows, backspace and delete keys allow convenient |
editing of text. The history of last ten commands can be retrieved |
using up and down arrows. The kernel console supports tab completion, double tab |
shows a list of available commands. |
The first class of commands prints useful statistics from the running |
operating systems. The commands are: |
\begin{description} |
\item[zones] --- Prints a list of memory zones. |
\item[zone $<$zone number$>$] --- Prints a detailed statistics about the frame allocator. |
\item[slabs] --- Prints detailed statistics about the slab allocator. |
\item[scheduler] --- Prints out the contents of scheduler run queues for all cpus. |
\item[threads] --- Prints list of existing threads, including information about |
their state. |
\item[tasks] --- Prints list of tasks along with some basic IPC information. |
\item[ipc\_task $<$taskid$>$] --- Prints detailed information about IPC queues of a particular task. |
\item[tlb] --- Prints contents of the Translation Lookaside Buffer on a processor (supported only on some platforms). |
\item[exc] --- Prints table of registered exception handlers. |
\end{description} |
The kernel contains a searchable version of its symbol table. This is used |
in error processing as well as for extending functionality of the kernel console. |
The following commands are supported: |
\begin{description} |
\item[symaddr $<$address$>$] --- Finds an address in symbol table and prints the appropriate |
symbol name. |
\item[call0, call1... $<$function$>$ $<$args...$>$] --- Calls a C function {\em function(args...)}. |
Note that the tab-completion also works for function names. Because |
of architecture calling convention, this command does not work correctly |
on the ia64 platform. The arguments can be specified |
\begin{itemize} |
\item as a number or hexadecimal number: call1 task\_kill 8 |
\item as a string: call1 printf "Hello world" |
\item as a hexadecimal number preceeded by '*'. The argument is then read from |
the given address: call2 printf "%X" *0x8000000 |
\item as a symbol name. In such case, the value located in the memory |
location corresponding to the symbol name is used: call2 printf "%d" task_counter |
\item as a symbol name preceeded by '\&'. The address is used. |
\item as a symbol name preceeded by '*'. In such case, the symbol is dereferenced. |
\end{itemize} |
\item[set4 <address|symbol name>] --- Stores a 4-byte value into a given address. |
\end{description} |
The mips32, ia32 and amd64 platforms provide additional commands regarding |
debugging facility - set and clear hardware breakpoints and watchpoints. |
\section{Kernel Console Task Control} |
The kconsole {\em call} commands can be used to start and kill tasks. |
To repeatably start a task, the following procedure should be used: |
\begin{verbatim} |
.... kernel boot data .... |
init[8].addr=0x8027b000, init[8].size=86016 |
.... rest of boot data ... |
kconsole> call2 task_run_program 0x8027b000 0 |
Calling f(0x8027b000,0): 0x80119283: generic/src/proc/task.o:task_run_program |
Result: 0x80086500 |
\end{verbatim} |
To kill a task, use of the function {\em task\_kill} is appropriate. The {\em taskid} |
parameter is a 64-bit number on all platforms, thus on the 32-bit platforms |
call2 should be used with 2 32-bit parameters instead. |
\begin{verbatim} |
kconsole> call2 task_kill 8 0 |
Calling f(0x8,0x0): 0x801197e8: generic/src/proc/task.o:task_kill |
Result: 0x0 |
\end{verbatim} |
\section{Emergency Functions} |
It may happen that the IPC communication dies or that some |
problems arise in the communication chain |
{\em keboard driver} - {\em console} - {\em output driver}. |
As long as at least the keyboard driver works, pressing Escape key three |
times transfers control to the kernel console immediately. Because the screen is not |
updated, the user should press Enter to see the kconsole prompt. |
If a kernel panic occurs, the error handling automatially switches control |
to the KConsole and allows users to inspect the failed kernel online. |
On the SMP system the other processors are halted immediately. The kernel |
contains its symbol table, so you can probably read some useful information |
about the exact place where the panic occured. |
\section{How to Do a Kernel Panic} |
Kernel panic is extremely rare in HelenOS. However, if the user wishes to |
simulate it, the kernel console contains proper commands. For example, the following |
command simulates a write to the unmapped address 0x4: |
\begin{verbatim} |
kconsole> set4 4 0 |
\end{verbatim} |
To test the autodebugging possibilities of the ia32 platform, the following |
sequence can be executed: |
\begin{verbatim} |
kconsole> bkpts |
0. 0x80032010 in (NULL) |
Count(0) |
kconsole> set4 0x80032010 0 |
**** Found ZERO on address 0x0 **** |
Reached breakpoint 0:0x8011552a(generic/src/console/cmd.o:cmd_set4) |
***Type 'exit' to exit kconsole. |
debug> |
\end{verbatim} |
\section{KLog} |
In order to avoid disturbing the framebuffer driver with kernel messages, a circular |
buffer communication between the kernel and the userspace area is established. |
Non-critical messages are sent to the KLog application. The user can see messages about |
task faults and task cleanup completion. |
\section{IPCC - testing application} |
For the sake of thourough testing of some aspects of task activities, IPCC application |
allows the user to generate faulting behaviour such as page faults and unaligned references\footnote{Some architectures |
do not fault on an unaligned memory reference.}. |
/usrman/trunk/usrman.tex |
---|
0,0 → 1,27 |
\documentclass[onecolumn,twoside,12pt]{report} |
\usepackage[colorlinks=true, pdfstartview=FitV, linkcolor=blue, |
citecolor=blue, urlcolor=blue]{hyperref} |
\usepackage{a4} |
\usepackage{fancyhdr} |
%\pagestyle{fancy} |
\title{ |
\Huge{\bf HelenOS project}\\ |
\LARGE{\it user manual} |
} |
\date{} |
\begin{document} |
\maketitle |
\newpage |
\setcounter{page}{2} |
\newpage |
\addcontentsline{toc}{chapter}{Contents} |
\tableofcontents |
\newpage |
\include{intro/intro} |
\include{building/building} |
\include{boot/boot} |
\include{running/running} |
\end{document} |
/usrman/trunk/intro/intro.tex |
---|
0,0 → 1,24 |
\chapter{Introduction} |
HelenOS is a development operating system intended to |
be a testbed for research in the field of operating |
systems and system-level programming. This manual is |
a guide for building, running and enhancing HelenOS. |
The system, as any other operating system, can be divided |
into platform independent and platform dependent parts. |
A user space program could be written in such |
a way that it can be compiled and executed on any |
of the platforms HelenOS supports without any modifications. |
However it might work as a device driver or perform |
other special tasks and thus become platform dependent. |
\section{Structure of HelenOS} |
The HelenOS operating system consists of three major parts: |
\begin{itemize} |
\item Kernel |
\item User space layer |
\item Boot infrastructure |
\end{itemize} |
/usrman/trunk/building/building.tex |
---|
0,0 → 1,25 |
\chapter{Building HelenOS} |
\section{Requirements} |
To build HelenOS, the following build tools must be installed: |
\begin{itemize} |
\item GCC 4.1.1 + binutils 2.16.1 cross compiler environment for target platform |
\item python 2.3 or higher |
\item GNU make |
\item mkisofs |
\end{itemize} |
The GNU build environment is best downloaded, compiled and installed |
automatically using the shell scripts located in the |
{\em kernel/contrib/toolchain} directory. |
\section{Building} |
HelenOS features a user friendly configuration system. Once |
a {\em make} command is run from the {\em boot/} directory, a |
{\em dialog} driven application is started and the developer is asked several |
questions regarding build configuration parameters. The answers are saved |
in the file {\em Makefile.config} in the boot/, kernel/ and uspace/ |
directories and are automatically used for each subsequent build. |
In order to modify the parameters, the user should change to the particular subsystem |
directory and type {\em make config}. When the build configuration parameters |
are changed, the whole subsystem should be completely rebuilt. The |
configuration system offers to do this automatically for the user. |
/usrman/trunk/boot/boot.tex |
---|
0,0 → 1,133 |
\chapter{Boot Loading Process} |
The startup of HelenOS happens in several steps. |
Depending on the platform, these steps can be either |
described as \textit{piggybacker loading}: |
\begin{enumerate} |
\item Platform boot loader loads the piggybacker image |
and jumps to its entry point. |
\item The piggybacker unwraps the kernel image and |
the images of the initial user space tasks, creates |
a boot information structure and jumps to the |
entry point of the kernel. |
\item The kernel initializes and runs the initial tasks |
according the boot information structure from the |
piggybacker. |
\end{enumerate} |
If the platform supports a more sophisticated native boot loader, |
the \textit{multiboot loading} consists of the following steps: |
\begin{enumerate} |
\item Platform boot loader loads the kernel image and initial |
user space tasks, creates a boot information structure |
and jumps to the entry point of the kernel. |
\item The kernel initializes and runs the initial tasks |
according the the boot information structure from the |
boot loader. |
\end{enumerate} |
A third kind of boot loading occurs on platforms with no support |
from boot loader. It is called \textit{image loading} and is |
used mostly on simulated architectures. |
\begin{enumerate} |
\item The kernel and initial user space images are placed |
on well-known physical memory locations (usually |
by a simulator configuration file). The execution |
starts directly on the kernel entry point. |
\item The kernel initializes and spawns compiled-in |
number of initial user space tasks. |
\end{enumerate} |
The following sections describe the particular features of the |
boot loading process on the supported platforms. Sample |
configuration files for all simulators are in the directory |
{\em kernel/contrib/conf}. |
\section{IA-32 and AMD64} |
On both platforms, HelenOS depends on a boot loader which |
supports the Multiboot Specification (e.g. GRUB). The kernel |
image (usually called \texttt{image.iso}) is loaded by the |
boot loader just above the 1st megabyte of the physical |
memory (the exact location is 1081344 bytes). Modules loaded by |
GRUB are automatically detected by the kernel and after initialization |
they are started as userspace tasks. The GRUB loading is the |
easiest in terms of using userspace tasks. |
An example GRUB configuration file {\em menu.lst}: |
\begin{verbatim} |
title=HelenOS |
root (cd) |
kernel /boot/kernel.bin |
module /boot/ns |
module /boot/init |
module /boot/pci |
module /boot/fb |
module /boot/kbd |
module /boot/console |
module /boot/tetris |
module /boot/ipcc |
module /boot/klog |
\end{verbatim} |
\section{32-bit MIPS} |
The MIPS port is fully supported in the {\em msim} and {\em gxemul} simulators. |
These simulators allow to specify a memory contents of the simulated |
computer. Unfortunately, the autodetection of loaded modules does |
not work. In order to change number of loaded modules, the file |
kernel/arch/mips32/src/mips32.c must be modified. |
Sample msim configuration file: |
\begin{verbatim} |
add dcpu mips1 |
add rwm mainmem 0x0 8M load "/dev/zero" |
add rom startmem 0x1fc00000 1024k load "image.boot" |
add rwm ns 0x01000000 1M load "ns" |
add rwm kbd 0x01100000 1M load "fb" |
add rwm fb 0x01200000 1M load "kbd" |
add rwm console 0x01300000 1M load "console" |
add rwm init 0x01400000 1M load "init" |
add rwm tetris 0x01500000 1M load "tetris" |
\end{verbatim} |
Sample gxemul command line arguments: |
\begin{verbatim} |
gxemul -E testmips -X 0x81800000:../uspace/ns/ns 0x81900000:../uspace/kbd/kbd \ |
0x81a00000:../uspace/fb/fb 0x81b00000:../uspace/init/init \ |
0x81c00000:../uspace/console/console 0x81d00000:../uspace/tetris/tetris kernel.bin |
\end{verbatim} |
The kernel can boot on the SGI Indy (and probably other SGI computers |
with 32-bit ARC firmware). It uses ARC for output and input. When |
the kernel is compiled to be loaded on the SGI Indy, an ECOFF image |
is created which can be later loaded directly with ARC boot loader |
e.g. using BOOTP protocol. |
\section{IA-64} |
The IA-64 port is supported on the Ski simulator. The situation is very similar |
to the MIPS loader - the loaded modules must be loaded on correct addresses in |
the Ski configuration file and specified in the file |
kernel/arch/ia64/src/ia64.c. |
Sample IA-64 configuration file: |
\begin{verbatim} |
load kernel.bin |
romload ../uspace/ns/ns 0x400000 |
romload ../uspace/init/init 0x800000 |
romload ../uspace/console/console 0xc00000 |
romload ../uspace/fb/fb 0x1000000 |
romload ../uspace/kbd/kbd 0x1400000 |
romload ../uspace/tetris/tetris 0x1800000 |
romload ../uspace/klog/klog 0x1c00000 |
romload ../uspace/ipcc/ipcc 0x2000000 |
\end{verbatim} |
\section{Power PC} |
The PowerPC boot image contains complete kernel with user tasks. |
The loader build system automatically creates such image using information |
residing in boot/arch/ppc32/loader/Makefile.inc. The variable COMPONENTS |
specifies, which tasks will be loaded into the image. |
/usrman/trunk/enhancing/enhancing.tex |
---|
0,0 → 1,3 |
\chapter{Enhancing HelenOS} |
HelenOS .. |
/usrman/trunk/Makefile |
---|
0,0 → 1,10 |
# Makefile |
# ----------------------------------------------- |
source=usrman |
all: |
pdflatex $(source).tex |
clean: |
-rm $(source).pdf *.log *.aux *.out *.dvi |
/prjdoc/trunk/project/project.tex |
---|
0,0 → 1,78 |
\chapter{Project} |
\label{project} |
The HelenOS project was formed in late October 2004, when the six |
developers grouped and decided to adopt previous work of {\JJ} on the |
SPARTAN kernel\footnote{The SPARTAN kernel has been developed by {\JJ} |
since 2001.} as a foundation for their new operating system. |
\section{Specification} |
The team had then worked on a specification\cite{helenos-spec} until |
March 8, 2005. The specification was based on \MD's draft and |
incorporated many suggestions from other members of the team. The |
biggest part of the discussion was concerned about how many and what |
processor architectures we will support. At that time, the SPARTAN |
kernel supported ia32 and mips32 to the extent that kernel threads could |
be scheduled. The ia32 port could do some very basic virtual memory |
operations and was capable of SMP service. Moreover, the mips32 port ran |
only in the msim simulator. None of them supported userspace threads. |
We realized the need to support at least one 64-bit architecture and |
have long discussed whether it should be amd64 or ia64. We also considered |
ppc64. At the end, we decided to declare support for three new architectures, |
five architectures in total. Both amd64 and ia64 made it to the specifications, |
as well as PowerPC. As for PowerPC, the specification didn't say whether ppc32 |
or ppc64 or both will be supported.\footnote{This has later proven a bit problematic |
because it is not very clear what ppc32 should be (i.e. the 32-bit G4 processor is not |
compatible with the 32-bit mode of the G5 processor.} |
It is worth noting that we wanted to be sure of access to respective hardware |
or at least simulator, prior to committing to support particular architecture. |
The decision to support almost all suggested architectures\footnote{Namely, we didn't declare |
support for sparc64, but it got supported anyway as part of \JJ's master thesis.} came after |
we had known for sure the above condition was satisfied. |
We constructed our specification so that it contained a well defined |
set of mandatory features of the kernel and the userspace layer |
that had to be implemented. Besides the mandatory features, there |
was also an optional part comprising of three research or experimental |
topics. We hoped to eventually find time to work on them. |
\section{Project meetings} |
After adopting our specification, we started to meet regularily every two weeks |
for the sake of consultations. The regular meetings were cancelled only during |
the exam periods and summer holiday. The first meeting took place on April 28, |
2005. There were exactly twenty two project meetings before 0.2.0 release. |
The Faculty of Mathematics and Physics officially opened our project on June 10, |
2005. However, serious collective work on the project, preceeded by individual |
efforts of some team members, began two months later. |
\section{Planning work} |
In the beginning, we structured our work by creating three two-member teams, |
each dedicated to one new architecture (i.e. amd64, ia64 and ppc32). However, |
dividing into couples didn't work out for the amd64 and ppc32 teams. In the end, |
both of those architectures were supported only with one member of respective |
team. This might have been because of two factors. First, the collective responsibility |
for the project allowed the less motivated members to work less than others. |
Second, over the time, some developers profiled out to be good at specific tasks to which |
they later adhered and were forwarded more similar work. It was generally accepted |
within the team if one of the couple traded one architecure-specific task for another task |
on HelenOS. |
\section{Kernel camps} |
There were two really important moments in our development process. Both of them |
took place in Harrachov, Czech Republic, where five team members moved two times, each |
time for a week of full-time intensive HelenOS development. These actions were |
called Kernel Camp 2005 and Winter Camp 2006. The former camp took place in August 2005 |
and was focused on getting all the architectures into our source tree and deepening |
their support. The latter camp took place in March 2006 and was dedicated to userspace |
support. In fact, we made the second camp the deadline for userspace milestone. With the |
exception of ppc32, all ports had some support for userspace prior to the second camp. |
Both of the camps moved the project miles ahead. |
\section{Coding style} |
We have adopted common coding style specification in order to improve code readibility and |
maintainability. Even though the specification relates only to stylistic matters, |
following it has the potential to encourage and improve cooperation within the team and |
provide good preconditions for future project growth. |
/prjdoc/trunk/developers/developers.tex |
---|
0,0 → 1,63 |
\chapter{Developers} |
\label{developers} |
\section{\JJ} |
Jakub is the original author of the SPARTAN kernel and the initiator of |
the idea to start the HelenOS project. Once the team was composed, he |
implemented considerable parts of the ia64 code and he also worked on |
the mips32 memory management. On the generic front, Jakub designed the |
generic virtual address translation interface for the 4-level |
hierarchical page table translation mechanism as well as the global page |
hash table translation mechanism. He has been involved in the address |
space management functions and userspace synchronization through |
futexes. Other areas in which he contributed include the kernel console |
and the kernel ELF loader. Jakub is also the author of the generic buddy |
system framework as well as the B+tree implementation. His latest |
contribution is the userspace PCI driver. |
\section{\OP} |
{\Ondrej} has completely created the amd64 port and completed the mips32 port |
to the extent that it runs on a real MIPS machine\footnote{SGI Indy}. |
Besides the architecture specific involvement, {\Ondrej} programmed the slab |
allocator and modified the frame allocator to be self-contained which in |
turn let the old and very limited heap manager be removed from the |
kernel entirely. He also created architecture independent FPU lazy |
switching framework. Other example of his activity is the IPC subsystem |
and partial TLS\footnote{Thread local storage.} support. Lastly, {\Ondrej} |
equipped the kernel console with features found in userspace command |
shells (e.g. tab completion of commands and command history through |
keyboard arrows) and wrote the kernel configuration software. |
\section{\MD} |
Right from the beginning, Martin has cared about project's code purity |
and readibility. He was the first developer to start writing |
Doxygen-style comments. He has promoted the proper use of C language |
{\tt const} keywords and extensive typedefing. On the tools front, he |
has rewritten the initial build system and created all our toolchain |
build scripts. |
Martin worked and much improved the ia32 and amd64 kernel booting using |
the Grub bootloader and Multiboot specification. He also created |
specialized boot loaders for mips32 and ppc32 --- architectures that |
don't provide many other ways to load userspace init tasks. Finally, |
Martin bacame the sole author of the entire ppc32 port and has |
encountered partial success in booting ppc64 port to real |
hardware\footnote{Apple G5.}. |
\section{\JV} |
Jakub has worked on ia32 and the ia64 FPU context switching and passive |
ia32 and active and passive ia64 console. He has relocated the ia64 |
kernel to region 7 (i.e. to the highest addresses) and has first coped |
with ia64 interrupts. Lastly, Jakub programmed the VESA frame buffer |
support for ia32 and amd64 and created the userspace framebuffer driver. |
\section{\JC} |
Josef has worked on ia32 memory map detection, softfloat and softint |
libraries and printf() standards conformance. He also ported several |
kernel libraries to userspace and implemented considerable parts of |
HelenOS libc. Josef is the author of the userspace keyboard driver. |
\section{\SB} |
Sergey implemented sorting library functions and implemented the buddy |
allocator interface for the frame allocator. He edited project |
documentation. |
/prjdoc/trunk/spec/spec.tex |
---|
0,0 → 1,191 |
\chapter{Goals and Achievements} |
\section{Overall Conception} |
General-purpose and portable operating system with elements of |
microkernel design and fully preemptive kernel. |
SPARTAN kernel created by Jakub Jermar will be used as a basis for |
further kernel development. |
Detailed description of the features: |
\begin{itemize} |
\item General-purpose: Ready to run standard (non real-time) server and |
workstation applications. Support for common programming |
abstractions (threads, synchronization, physical and virtual |
memory management). |
\item Portable: Except small platform-specific kernel parts the system |
will be implemented in higher programming languages to be portable |
to different hardware platforms (PCs and similar). |
\item Fully preemptive kernel: The basic scheduling element will be a |
thread (more threads eventually grouped into a task) and the task |
switching will be preemptive in both user-space and kernel-space. |
However no real-time scheduling will be attempted. |
\item Fine grained locking in kernel: The kernel will not contain |
anything such as "big kernel lock", all critical sections will be |
handled with small granularity locking. |
\item Elements of microkernel design: The code running in kernel-space |
will be limited to a much smaller size compared for example to the |
traditional Unix design. The kernel will contain mostly just the |
code which is necessary to run in kernel-space (scheduling, memory |
management and protection, hardware resource management, IPC). |
Device drivers, filesystems, network stacks, etc. will be |
implemented in user-space. |
\end{itemize} |
{\em The overall conecption of the kernel design was completely met. The kernel |
is fully preemptible, SMP ready with fine-grained locking. If possible, |
device drivers are implemented as standalone userspace tasks. HelenOS |
fully supports statically linked tasks. Both userspace tasks and kernel |
tasks are supported (N:M multithreading model). |
The kernel was successfully ported to 5 architectures with one other |
architecture to come. The interfaces in the kernel are designed in such |
a way to fully utilize specifics of every platform, e.g. ASID and RID |
allocation in MIPS and IA64, two stacks for IA64 and SMP routines. |
} |
\section[1a]{Research Domains} |
Following features can be eventually implemented as research subjects, |
but are optional to the overall design of the system: |
\begin{itemize} |
\item Kernel-level virtualization: Apart from some standard security |
model (i.e. unix-like or any other) the OS might support |
kernel-level context separation allowing to run more virtual |
operating environments on a single physical machine. |
{\em Kernel-level virtualization was not attempted, although the microkernel |
design by itself allows completely different namespace simply by connecting |
the task to different name service daemon. Because new IPC connections can |
be created only through existing paths in the graph of the connections, |
messages can never flow between unconnected components of the graph. |
} |
\item Framework for running GNU/Linux applications: There should be no |
syscall or native API compatibility, but rather some kind of |
compile-time layer (libc and other shared libraries) allowing to |
compile common GNU/Linux applications from sources. |
{\em Two applications were ported with little effort - libpci and tetris. The |
porting of the tetris consisted mainly in rewriting termios dependent |
code. The libc library contains emulation layer for the most common functions.} |
\item Object/message paradigm: In the contrary to Unix file paradigm |
(where every object in the system is represented by a file - even |
if there is no consistent mapping from the given object's methods |
to generic file methods), HelenOS might have a tree of objects |
instead of a tree of files. Each object in the tree can support an |
arbitrary set of messages and files are those objects which |
support the set of messages representing file methods (i.e. open, |
close, read, write, seek, etc.). All objects might support several |
compulsory messages (GetName, GetSupportedMessages, etc.). The |
message passing mechanism will be synchronous. |
{\em Every IPC message contains a field that specifies method number. However, |
tree of objects or any more complex functionality were not implemented. } |
\end{itemize} |
{\em However, because we have decided to use asynchronous message passing, |
a framework was needed to facilitate reasonably synchronous application view. |
This framework, heavily using userspace thread switching, allows writing |
transparent applications without the hassle usually connected with |
asynchronous applications, at the same time being easily portable to |
kernel-threaded environment. } |
\section{Particular features} |
\begin{itemize} |
\item Kernel features |
\begin{itemize} |
\item Preemptive multiprocessing, SMP support, threads (tasks) |
\begin{itemize} |
\item Simple scheduler (but more complex than round-robin), |
with threads as basic scheduling element. {\em Achieved.} |
\item Support for thread priorities (possibly classes of |
priorities for user-space tasks). {\em Achieved} |
\item Support for SMP CPU bounding. {\em Achieved.} |
\item Utilization of non-boot CPU(s). {\em Achieved.} |
\item Support for user-space threads (tasks as sets of |
threads). {\em Achieved.} |
\item Support for kernel threads (independent code executed |
within the kernel) {\em Achieved.} |
\end{itemize} |
\item Kernel synchronization primitives, small granularity |
synchronization (preemptive kernel) |
\begin{itemize} |
\item Semaphores, mutexes, condition variables, RW-locks, |
spin-locks, etc. {\em Achieved.} |
\item No "big kernel lock". {\em Achieved.} |
\end{itemize} |
\item Physical and virtual memory management |
\begin{itemize} |
\item Proper handling of physical memory regions. {\em Achieved.} |
\item Physical memory heap (allocating of continuous blocks of |
physical memory). {\em Achieved.} |
\item Arbitrary number of independent virtual memory mappings |
(both for threads and internal kernel usage). {\em Achieved.} |
\item Kernel allocator in virtual memory (buddy/slab). {\em Achieved.} |
\item Named (text, stack, heap) and unnamed virtual memory |
areas. {\em Achieved.} |
\item Copying and sharing pages between different memory |
mappings. {\em Achieved.} |
\end{itemize} |
\item Basic hardware handling |
\begin{itemize} |
\item Handling of basic boot-time hardware (CPU, PCI buses, |
memory, display, keyboard, RTC, etc.) in kernel. {\em Achieved.} |
\item Handling of specific hardware resources which are |
fundamentaly unreachable from user-space on given |
platform. {\em Achieved.} |
\end{itemize} |
\item IPC, user-space hardware access framework |
\begin{itemize} |
\item Abstraction for implementing inter-process communication |
(message passing, etc.). {\em Achieved.} |
\item Interface for enabling the user-space threads to gain |
access and manage hardware resources (with kernel |
modules where needed). {\em Achieved.} |
\end{itemize} |
\item User-space features |
\begin{itemize} |
\item Basic API |
\begin{itemize} |
\item Memory management API (memory regions creation, |
descruction, resizing). {\em Achieved.} |
\item Task/thread management API. {\em Achieved.} |
\item Synchronization API. {\em Futexes implemented.} |
\end{itemize} |
\end{itemize} |
\end{itemize} |
\end{itemize} |
\section{Implementation details} |
\begin{itemize} |
\item Supported platforms |
\begin{itemize} |
\item Real hardware support |
\begin{itemize} |
\item IA-32 (will be tested on multiple consumer Intel Pentium~4, |
Intel Pentium~M, AMD Athlon~XP and AMD Athlon~MP machines) |
{\em Runs on comodity hardware. Tested on several multiprocessor computers.} |
\item PowerPC (will be tested on a consumer IBM PowerPC G5 machine) |
{\em To some extent runs on the G4 machine. G5 machine is a 64-bit architecture completely different from 32-bit port that was attampted. } |
\end{itemize} |
\item Emulated support |
\begin{itemize} |
\item MIPS (will be tested in MSIM R4000 simulator) |
{\em Tested in msim, gxemul and partially in simics simulators. Booted kernel on SGI Indy, however no real hardware input/output support was attempted.} |
\item IA-64 (will be tested in Ski simulator) |
{\em Tested in Ski simulator.} |
\item AMD64 (will be tested in Simics simulator) |
{\em Tested on single-processor computer. Runs in simics, bochs and qemu simulators.} |
\end{itemize} |
\end{itemize} |
\end{itemize} |
/prjdoc/trunk/prjdoc.tex |
---|
0,0 → 1,57 |
\documentclass[onecolumn,twoside,12pt]{report} |
\usepackage[colorlinks=true, pdfstartview=FitV, linkcolor=blue, |
citecolor=blue, urlcolor=blue]{hyperref} |
\usepackage{a4} |
\usepackage{fancyhdr} |
%\pagestyle{fancy} |
\title{ |
\Huge{\bf HelenOS project}\\ |
\LARGE{\it project documentation} |
} |
\date{} |
\newcommand{\JJ}{Jakub Jerm\'{a}\v{r}} |
\newcommand{\OP}{Ond\v{r}ej Palkovsk\'{y}} |
\newcommand{\Ondrej}{Ond\v{r}ej} |
\newcommand{\MD}{Martin D\v{e}ck\'{y}} |
\newcommand{\JV}{Jakub V\'{a}\v{n}a} |
\newcommand{\JC}{Josef \v{C}ejka} |
\newcommand{\SB}{Sergey Bondari} |
\renewcommand{\bibname}{References} |
\begin{document} |
\maketitle |
\newpage |
\setcounter{page}{2} |
\newpage |
\addcontentsline{toc}{chapter}{Contents} |
\tableofcontents |
\newpage |
\include{intro/intro} |
\include{project/project} |
\include{developers/developers} |
\include{tools/tools} |
\appendix |
\include{spec/spec} |
\newpage |
\begin{thebibliography}{99} |
\addcontentsline{toc}{chapter}{References} |
\bibitem{helenos}\href{http://www.helenos.eu}{HelenOS project, http://www.helenos.eu.} |
\bibitem{helenos-spec}\href{http://www.helenos.eu/?reason=specs}{HelenOS specifications} |
\bibitem{binutils}\href{http://www.gnu.org/software/binutils/}{binutils, http://www.gnu.org/software/binutils/} |
\bibitem{gcc}\href{http://gcc.gnu.org/}{gcc, http://gcc.gnu.org/} |
\bibitem{grub}\href{http://www.gnu.org/software/grub/}{GRUB, http://www.gnu.org/software/grub/} |
\bibitem{bochs}\href{http://bochs.sourceforge.net/}{Bochs, http://bochs.sourceforge.net/} |
\bibitem{pearpc}\href{http://pearpc.sourceforge.net/}{PearPC, http://pearpc.sourceforge.net/} |
\bibitem{msim}\href{http://nenya.ms.mff.cuni.cz/~holub/msim}{msim, http://nenya.ms.mff.cuni.cz/$\tilde{~}$holub/msim} |
\bibitem{ski}\href{http://www.hpl.hp.com/research/linux/ski/}{Ski, http://www.hpl.hp.com/research/linux/ski/} |
\bibitem{simics}\href{http://www.virtutech.com/about/research}{Simics, http://www.virtutech.com/about/research} |
\bibitem{vmware}\href{http://www.vmware.com/products/desktop/ws_features.html}{VMware, http://www.vmware.com/products/desktop/ws\_features.html} |
\bibitem{gxemul}\href{http://gavare.se/gxemul/}{GXemul, http://gavare.se/gxemul/} |
\bibitem{qemu}\href{http://fabrice.bellard.free.fr/qemu/}{QEMU, http://fabrice.bellard.free.fr/qemu/} |
\end{thebibliography} |
\end{document} |
/prjdoc/trunk/tools/tools.tex |
---|
0,0 → 1,329 |
\chapter{Software} |
\label{tools} |
During the development of the HelenOS operating system, we came across |
several types of software tools, programs, utilities and libraries. |
Some of the tools were used to develop the system itself while other tools |
were used to faciliate the development process. In some cases, we had a chance |
to try out several versions of the same product. Sometimes the new versions |
contained fixes for bugs we had discovered in previous versions thereof. |
Another group of software we have used has been integrated into HelenOS |
to fill gaps after functionality that the genuine HelenOS code did |
not provide itself. |
There is simply too much third party software that is somehow related to |
HelenOS to be covered all. This chapter attempts to present our experience |
with the key software tools, programs and libraries. |
\section{Communication tools} |
Although the developers know each other in person, the development, with the |
exception of kernel camps, has been pretty much independent as far as locality |
and time goes. In order to work effectively, we have established several communication |
channels: |
\begin{description} |
\item [E-mail] --- We used this basic means of electronic communication for peer-to-peer |
discussion in cases when the other person could not have been reached on-line at |
the time his advice was needed or his attention was demanded. E-mail was also |
used for contacting developers of third party software that we needed to talk to. |
\item [Mailing list] --- As almost every open source project before us, also we opened |
mailing list for technical discussion. The advantage of having a mailing list is |
the fact that it enables multilateral discussions on several topics contemporarily, |
without the need for all the participants be on-line or even at one place. We have kept |
our first development mailing list closed to public so that it seemed natural to us |
to use Czech as our communication language on the list since Czech, with one exception, |
is our native language and all of us speak it very well. Besides all the advantages, |
there are also disadvantages. First, communication over mailing list tends to be rather |
slow, compared for instance to ICQ. Second, because of its implicit collective nature, |
it sometimes tends to be so slow that an answer for a given question never comes. |
Apart from the internal development mailing list, we have also used another mailing list |
for commit log messages which proved handy in keeping developers informed about all changes in |
the repository. |
Finally, we have also established a public mailing list for communication |
about general HelenOS topics in English. |
\item [ICQ] --- Because we divided the whole project into smaller subprojects on which |
only the maximum of two people out of six would work together, the need for communication |
among all six people was significantly smaller than the need to communicate between the two |
developers who tightly cooperated on a specific task. For this reason, we made the biggest |
use of ICQ. |
\end{description} |
\section{Concurrent versions systems} |
At the very beginning, when the SPARTAN kernel was being developed solely |
by \JJ, there was not much sence in using any software for management of |
concurrent versions. However, when the number of developers increased to six, |
we immediately started to think of available solutions. |
We have begun with CVS because it is probably the best known file concurrent |
versions system. We have even had repository of HelenOS using CVS for a short time, |
but when we learned about its weaknesses we sought another solution. There are two |
weaknesses that have prevented us from using CVS: |
\begin{itemize} |
\item it is merely a file concurrent versions system (i.e. CVS is |
good at managing versions of each separate file in the repository |
but has no clue about the project's directory tree as a whole; |
specifically renaming of a file while preserving its revision history |
is next to impossible), |
\item it lacks atomic commits (i.e. should your commit conflict with |
another recent commit of another developer, CVS would not abort the whole operation |
but render the repository inconsistent instead). |
\end{itemize} |
Being aware of these limitations, we decided to go with Subversion. Subversion |
is, simply put, a redesigned CVS with all the limitations fixed. We were |
already familiar with CVS so the switch to Subversion was pretty seamless. |
As for Subversion itself, it has worked for us well and has met all our |
expectations. Despite all its pros, there was a serious problem that |
occurred sometime in the middle of the development process. Because of some locking |
issues related to the default database backend (i.e. {\tt Berkeley DB}), |
our Subversion repository put itself in a peculiar state in which it became |
effectivelly inaccessible by any means of standard usage or administration. |
To mitigate this problem, we had to manually delete orphaned file locks |
and switch to backend called {\tt fsfs} which doesn't suffer this |
problem. |
Other than that, we are happy users of Subversion. The ability to switch |
the entire working copy to particular revision is a great feature |
for debugging. Once we tracked a bug three months into the past by |
moving through revisions until we found the change that caused the bug. |
\section{Web tools} |
On our project website\cite{helenos}, we provided links to different |
web utilities that either functioned to access our Subversion repository |
or mailing list or provided another services: |
\begin{description} |
\item [Chora] is a part of the Horde framework and can be used to comfortably |
browse Subversion repository from the web. We altered it a little bit to also |
show number of commits per developer on our homepage. |
\item [Whups] is another component of the Horde framework. It provides |
feature request and bug tracking features. However, in the light of being rather |
closed group of people, we used this tool only seldomly. On the other hand, |
any possible beta tester of our operating system has had a chance to |
submit bug reports. |
\item [Mailman] is a web interface to the mailing list we utilized. It allows |
to control subsriptions and search mailing list archives on-line. |
\end{description} |
\section{Third party components of HelenOS} |
HelenOS itself contains third party software. In the first place, amd64 and ia32 architectures |
make use of the GNU Grub boot loader. This software replaced the original limited boot loader |
after the Kernel Camp 2005 when {\MD} had made HelenOS Multiboot specification compliant. Because of |
Grub, HelenOS can be booted from several types of devices. More importantly, we use |
Grub to load HelenOS userspace modules as well. |
Another third-party piece of the HelenOS operating system is the userspace {\tt malloc()}. |
Rather than porting our kernel slab allocator to userspace, we have chosen Doug Lea's public |
domain {\tt dlmalloc} instead. This allocator could be easily integrated into our uspace tree |
and has proven itself in other projects as well. Its derivative, {\tt ptmalloc}, has been part of the |
GNU C library for some time. However, the version we are using is not optimized for SMP and multithreading. |
We plan to eventually replace it with another allocator. |
Next, the {\tt pci} userspace task is using the {\tt libpci} library. The |
library was simplified and ported to HelenOS. Even though filesystem |
calls were removed from the library, it still heavily depends on {\tt libc}. |
By porting {\tt libpci} to HelenOS, we demonstrated that applications and libraries |
are, given enough effort, portable to HelenOS. |
Finally, we demonstrated the idea presented in the previous paragraph by porting |
over 13 years old BSD game of {\tt tetris} to HelenOS. This particular version |
of tetris looks almost the same both on other people's operating systems and on HelenOS. |
Similar to {\tt libpci}, {\tt tetris} had to be modified in order to compile and run. |
The filesystem calls were removed or replaced as well as references to terminal I/O |
calls. |
\section{Build tools} |
Assembler, linker and compiler are by all means the very focal point of attention |
of all operating system projects. Quality of these tools influences |
operating system performance and, what is more important, stability. HelenOS has |
been tailored to build with GNU {\tt binutils}\cite{binutils} (i.e. the assembler and linker) and GNU~{\tt gcc}\cite{gcc} |
(i.e. the compiler). There is only little chance that it could be compiled and |
linked using some other tools unless those tools are compatible with the GNU build tools. |
As our project declares support for five different processor architectures, |
we needed to have five different flavors of the build utilities installed. |
Interestingly, flavors of {\tt binutils} and {\tt gcc} for particular architecture |
are not equal from the point of view of cross-binutils and cross-compiler installation. |
All platforms except ia64 require only the {\tt binutils} package and the {\tt gcc} package |
for the cross-tool to be built. On the other hand, ia64 requires also some excerpts from |
the ia64-specific part of {\tt glibc}. |
Formerly, the project could be compiled with almost any version of {\tt binutils} starting with 2.15 |
and {\tt gcc} starting with 2.95, but especially after we added partial thread local storage |
support into our userspace layer, some architectures (e.g. mips32) will not compile even with {\tt gcc} 4.0.1 |
and demand {\tt gcc} 4.1.0 or newer. |
As for the mips32 cross-compiler, {\OP} discovered a bug in {\tt gcc} (ticket \#23824) which caused {\tt gcc} to |
incorrectly generate unaligned data access instructions (i.e. {\tt lwl}, {\tt lwr}, {\tt swl} and {\tt swr}). |
As for the mips32 cross-binutils\footnote{It remains uninvestigated whether this problem also shows with other cross-tools.}, |
we observed that undefined symbols are not reported when we don't link using the standard target. We are still not |
sure whether this was a bug --- {\tt binutils} developers just told us to use the standard target and then use |
{\tt objcopy} to convert the ELF binary into requested output format. |
\section{Virtual environments} |
After the build tools, simulators, emulators and virtualizers were the second focal point |
in our project. These invaluable programs really sped the code-compile-test cycle. |
In some cases, they were, and still are, the only option to actually run HelenOS on certain |
processor architectures, because real hardware was not available to us. Using virtual environment |
for developing our system provided us with deterministic environment on which it is much easier to do |
troubleshooting. Moreover, part of the simulators featured integrated debugging facilities. |
Without them, a lot of bugs would remain unresolved or even go unnoticed. |
Using several virtual environments for testing one architecture is well justified by the |
fact that sometimes HelenOS would run on two and crash on third or vice versa. Sometimes |
we found that it runs on real hardware but fails in a simulator. The opposite case was, |
however, more common. Simply put, the more configurations, no matter whether real or virtual, |
the better. |
From one point of view, we have tested our system on eight different virtual environments: |
\begin{itemize} |
\item Bochs, |
\item GXemul, |
\item msim, |
\item PearPC, |
\item QEMU, |
\item Simics, |
\item Ski, |
\item VMware. |
\end{itemize} |
From the second point of view, we have tested these programs by our operating system. |
Because of the scope and uniqueness of this testing and because we did find some issues, |
we want to dedicate some more space to what we have found. |
\subsection{Bochs} |
Bochs\cite{bochs} has been used to develop the SPARTAN kernel since its beginning in 2001. |
It is capable of emulating ia32 machine and for some time also amd64. |
Bochs is an emulator and thus the slowest from virtual environments capable |
of simulating the same cathegory of hardware. On the other hand, it is extremely |
portable, compared to much faster virtualizers and emulators using dynamic translation |
of instructions. Lately, there have been some plans to develop or port dynamic translation |
to Bochs brewing in its developer community. |
The biggest virtue of Bochs is that it has traditionally supported SMP. For some time, Bochs |
has been our only environment on which we could develop and test SMP code. Unfortunatelly, |
the quality of SMP support in Bochs was different from version to version. Because of SMP |
breakage in Bochs, we had to avoid some versions thereof. So far, Bochs versions 2.2.1 and 2.2.6 |
have been best in this regard. |
Our project has not only used Bochs. We also helped to identify some SMP related problems |
and {\OP} from our team has discovered and also fixed a bug in FXSAVE and FXRSTOR emulation |
(patch \#1282033). |
Bochs has some debugging facilities but those have been very impractical and broken |
in SMP mode. Moreover, it is possible to use the GNU debugger {\tt gbd} to connect to running |
simulation, but this has also proven not very useful as we often needed to debug |
problems that existed only in multiprocessor configurations, which {\tt gdb} |
does not understand. |
\subsection{GXemul} |
GXemul\cite{gxemul} is an emulator of several processor architectures. Nevertheless, we have |
used it only for mips32 emulation in both little-endian and big-endian modes. |
It seems to be pretty featurefull and evolving but we don't use all its functionality. |
GXemul is very user friendly and has debugging features. It is more realistic |
than msim. However, our newly introduced TLS support triggered a bug in the {\tt rdhwr} |
instruction emulation while msim functioned as expected. Fortunatelly, the author |
of GXemul is very cooperative and has fixed the problem for future versions as well as |
provided a quick hack for the old version. |
\subsection{msim} |
msim\cite{msim} has been our first mips32 simulator. It simulates 32-bit side of R4000 processor. |
Its simulated environment is not very realistic, but the processor simulation |
is good enough for operating system development. In this regard, the simulator is |
comparable to HP's ia64 simulator Ski. Another similar aspect of these two is |
relatively strong debugger. |
Msim has been developed on the same alma mater as our own project. |
All members of our team know this program from operating system courses. |
Curiously, this simulator contained the biggest number of defects and inaccuracies |
that we have ever discovered in a simulator. Fortunately, all of them have been |
eventually fixed. |
\subsection{PearPC} |
PearPC\cite{pearpc} is the only emulator on which we have run ppc32 port of HelenOS. It has |
no debugging features, but fortunatelly its sources are available under |
an open source license. This enabled {\OP} and {\MD} to alter its sources |
in a way that this modified version allowed some basic debugging. |
\subsection{QEMU} |
QEMU\cite{qemu} emulates several processor architectures. We have used it to emulate |
ia32 and amd64. It can simulate SMP, but contrary to Bochs, it uses dynamic |
translation of emulated instructions and performs much better because of |
that. |
This emulator seemed to realistically emulate the {\tt hlt} instruction, |
which was nice for those of us who use notebooks as their development |
machine. |
Similar to Bochs, QEMU simulation can be aided by {\tt gdb}. Debugging |
with {\tt gdb} can be pretty comfortable\footnote{Especially when the kernel is |
compiled with {\tt -g3}.} until one needs to debug a SMP kernel running on multiple |
processors. |
\subsection{Simics} |
Virtutech's Simics\cite{simics} simulator can be compared to a Swiss-army knife for operating system debugging. |
This proprietary piece of software was available to us under an academic license for free. |
Simics can be set to simulate many different configurations of many different machines. |
It has the most advanced debugging features we have ever seen. To highlight some, its |
memory access tracing ability has been really helpfull to us. During device driver |
development, we appreciated the possibility to turn logging of the devices to a specified |
verbosity. |
We used it to test and develop amd64 and ia32 architectures in SMP mode and mips32 architecture in UP mode. Simics emulates the 4Kc processor on the MIPS architecture. |
Unfortunately, this processor does not have an exception Reserved Instruction, which |
makes it unusable in an environment with programs using thread local storage. |
Regardless of its invaluable qualities, it has still contained bugs. One of the most |
serious was bug with ticket \#3351. {\OP} discovered that its BIOS rewrites kernel memory |
during application processors start. Another bugs found were related to amd64 and mips32. |
As for amd64, Simics did not report general protection fault when {\tt EFER.NXE} was 0 and a non-executable |
page was found (\#4214). As for mips32, Simics misemulated {\tt MSUB} and {\tt MSUBU} instructions. |
\subsection{Ski} |
The ia64 port of HelenOS has been developed and debugged on the HP's IA-64 Ski\cite{ski} simulator. |
Ski is just an Itanium processor simulator and as such does not simulate a real machine. In fact, there |
is no firmware and no configuration tables (e.g. memory map) present in Ski! On the other hand, the missing parts can be supplied externally\footnote{This |
is actually how Linux runs in this simulator.}. The simulator provides means of interaction with |
host system devices via Simulator SystemCalls (SSC). The simulator itself has graphical interface |
with pretty powerful, but not as good as those of Simics, debugging facilities. |
Ski is a proprietary program with no source code available. Its binaries are available |
for free under a non-free license. It comes packaged with insufficient documentation |
which makes the development pretty problematic. For instance, there is no public documentation |
of all the SSC's. All one can do is to look into Linux/ia64-Ski port, which was written by the |
same people as Ski, and use it as a refernce. We had to look into Linux once more when our kernel |
started to fail in some memory-intensive stress tests. In fact, the problem was that the tests |
hit the IA-32 legacy videoram area. We fixed the problem, in the light of absence of any memory map, by blacklisting |
this piece of memory to our frame allocator. |
The way HelenOS is booted on Ski is by simply loading its ELF image |
and jumping to it. The ELF header contains two fields describing where and how to load the program image into memory: |
VMA and LMA. VMA\footnote{Virtual Memory Address} is an address where the program's segment gets mapped in virtual memory. |
LMA\footnote{Load Memory Address} is the physical address where the segment is loaded in memory. {\JV} discovered |
that Ski confuses VMA and LMA. This, what we believe to be a bug in Ski, has not shown in Linux since Linux always has |
LMA equal to VMA. People from the Ski mailing list had tried to help us but our repeated problem report didn't |
make it far enough for the HP to fix or at least clarify the issue. Finally, we adopted a workaround implemented by {\JJ} |
that simply swaps LMA and the program entry point in the kernel ELF image. |
\subsection{VMware} VMware\cite{vmware} is the only virtualizer we have used in |
HelenOS development. It virtualizes the ia32 host machine. Since VMware |
version 5.5, we made use of its possibility to run the guest system |
(i.e. HelenOS) on multiple processors. VMware has no support for |
debugging but is very useful for compatibility and regression testing |
because it's closest to the real hardware. VMware, being a virtualizer, |
is also the fastest of all the virtual environments we have utilized. |
/prjdoc/trunk/intro/intro.tex |
---|
0,0 → 1,30 |
\chapter{Introduction} |
The HelenOS project\cite{helenos} is an effort to develop |
portable and general purpose operating system. Operating systems |
in general are very non-trivial pieces of software. It takes many |
people, many months and many tools to design and develop even medium size |
and feature-limited kernel and userspace layer. |
This report aims to document the development process of the HelenOS |
operating system as it is specified in \cite{helenos-spec} and as |
it has been carried out by the original six developers (i.e. \JJ, |
\OP, \MD, \JV, {\JC} and \SB) in their work on Software |
project\footnote{Software project is the name of a subject at MFF UK. |
It is supposed to last two semesters at least.} |
at Faculty of Mathematics and Physics at Charles University in |
Prague. Other aspects of the wider HelenOS project (e.g. master theses |
related to the topic) are not discussed here. |
\section{How to read this document} |
Chapter \ref{project} provides an insight into project's timeline, |
planning, development. It also presents some statistic data |
related to the HelenOS project. |
Chapter \ref{developers} evaluates contributions and project dedication of |
each individual developer. |
Chapter \ref{tools} gives thorough coverage of the third-party |
software involved with HelenOS and also experience comming from |
using that software. |
/prjdoc/trunk/Makefile |
---|
0,0 → 1,10 |
# Makefile |
# ----------------------------------------------- |
source=prjdoc |
all: |
pdflatex $(source).tex |
clean: |
-rm $(source).pdf *.log *.aux *.out *.dvi |