From 1226e432cd9d465fb0a83392d3e3dd11a119d794 Mon Sep 17 00:00:00 2001 From: Wander_Lust Date: Thu, 14 May 2026 08:02:24 +0530 Subject: [PATCH] cooked 3 --- 10.c | 84 +++++++++++++++++++++++++++++++++++++++++ 11.c | 95 ++++++++++++++++++++++++++++++++++++++++++++++ 6.c | 75 +++++++++++++++++++++++++++++++++++++ 7.c | 112 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 8.c | 109 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 9.c | 63 +++++++++++++++++++++++++++++++ bankers | Bin 0 -> 16184 bytes ds | Bin 0 -> 16192 bytes lru | Bin 0 -> 16272 bytes ma | Bin 0 -> 16280 bytes pg | Bin 0 -> 16296 bytes segXpage | Bin 0 -> 16200 bytes 12 files changed, 538 insertions(+) create mode 100644 10.c create mode 100644 11.c create mode 100644 6.c create mode 100644 7.c create mode 100644 8.c create mode 100644 9.c create mode 100755 bankers create mode 100755 ds create mode 100755 lru create mode 100755 ma create mode 100755 pg create mode 100755 segXpage diff --git a/10.c b/10.c new file mode 100644 index 0000000..2737891 --- /dev/null +++ b/10.c @@ -0,0 +1,84 @@ +#include +#include + +#define MAX 50 + + +void fcfs(int requests[], int n, int head) { + int total = 0; + + printf("\n--- FCFS ---\n"); + printf("Order: %d", head); + + for (int i = 0; i < n; i++) { + total += abs(requests[i] - head); + head = requests[i]; + printf(" -> %d", head); + } + + printf("\nTotal Head Movement: %d\n", total); +} + +// ── SCAN ────────────────────────────────────────────────────────────────── +void scan(int requests[], int n, int head, int disk_size) { + int total = 0; + int req[MAX]; + + // copy and sort requests + for (int i = 0; i < n; i++) req[i] = requests[i]; + for (int i = 0; i < n - 1; i++) + for (int j = 0; j < n - i - 1; j++) + if (req[j] > req[j+1]) { int t = req[j]; req[j] = req[j+1]; req[j+1] = t; } + + // find where head sits in sorted array + int pos = 0; + while (pos < n && req[pos] < head) pos++; + + printf("\n--- SCAN (moving towards higher tracks first) ---\n"); + printf("Order: %d", head); + + // go right (higher) first + for (int i = pos; i < n; i++) { + total += abs(req[i] - head); + head = req[i]; + printf(" -> %d", head); + } + if (head != disk_size - 1) { + + total += abs((disk_size - 1) - head); + head = disk_size - 1; + + printf(" -> %d", head); + } + + // go left (lower) + for (int i = pos - 1; i >= 0; i--) { + total += abs(req[i] - head); + head = req[i]; + printf(" -> %d", head); + } + + printf("\nTotal Head Movement: %d\n", total); +} + +// ── MAIN ────────────────────────────────────────────────────────────────── +int main() { + int requests[MAX], n, head, disk_size; + + printf("Enter number of requests: "); + scanf("%d", &n); + printf("Enter requests: "); + for (int i = 0; i < n; i++) + scanf("%d", &requests[i]); + + printf("Enter initial head position: "); + scanf("%d", &head); + + printf("Enter disk size: "); + scanf("%d", &disk_size); + + fcfs(requests, n, head); + scan(requests, n, head, disk_size); + + return 0; +} diff --git a/11.c b/11.c new file mode 100644 index 0000000..b84fe5e --- /dev/null +++ b/11.c @@ -0,0 +1,95 @@ +#include + +// ── PAGING ──────────────────────────────────────────────────────────────── +void paging() { + int page_size, num_pages; + printf("\n--- PAGING ---\n"); + printf("Enter page size: "); + scanf("%d", &page_size); + printf("Enter number of pages: "); + scanf("%d", &num_pages); + + int page_table[num_pages]; + printf("Enter frame number for each page:\n"); + for (int i = 0; i < num_pages; i++) { + printf(" Page %d -> Frame: ", i); + scanf("%d", &page_table[i]); + } + + int logical; + printf("Enter logical address: "); + scanf("%d", &logical); + + int page = logical / page_size; // which page + int offset = logical % page_size; // offset within page + + if (page >= num_pages) { + printf("Invalid! Page %d does not exist.\n", page); + return; + } + + int frame = page_table[page]; + int physical = frame * page_size + offset; + + printf("\nPage Number : %d\n", page); + printf("Offset : %d\n", offset); + printf("Frame Number: %d\n", frame); + printf("Physical Address: %d\n", physical); +} + +// ── SEGMENTATION ────────────────────────────────────────────────────────── +void segmentation() { + int num_seg; + printf("\n--- SEGMENTATION ---\n"); + printf("Enter number of segments: "); + scanf("%d", &num_seg); + + int base[num_seg], limit[num_seg]; + printf("Enter base and limit for each segment:\n"); + for (int i = 0; i < num_seg; i++) { + printf(" Segment %d -> Base: ", i); + scanf("%d", &base[i]); + printf(" Segment %d -> Limit: ", i); + scanf("%d", &limit[i]); + } + + int seg, offset; + printf("Enter segment number: "); + scanf("%d", &seg); + printf("Enter offset: "); + scanf("%d", &offset); + + if (seg >= num_seg) { + printf("Invalid! Segment %d does not exist.\n", seg); + return; + } + + if (offset >= limit[seg]) { + printf("Segmentation Fault! Offset %d exceeds limit %d.\n", offset, limit[seg]); + return; + } + + int physical = base[seg] + offset; + printf("\nSegment Base : %d\n", base[seg]); + printf("Segment Limit : %d\n", limit[seg]); + printf("Offset : %d\n", offset); + printf("Physical Address: %d\n", physical); +} + +// ── MAIN ────────────────────────────────────────────────────────────────── +int main() { + int ch; + while (1) { + printf("\n1. Paging"); + printf("\n2. Segmentation"); + printf("\n3. Exit"); + printf("\nEnter choice: "); + scanf("%d", &ch); + + if (ch == 1) paging(); + else if (ch == 2) segmentation(); + else if (ch == 3) break; + else printf("Invalid choice\n"); + } + return 0; +} diff --git a/6.c b/6.c new file mode 100644 index 0000000..32e3ad5 --- /dev/null +++ b/6.c @@ -0,0 +1,75 @@ +#include + +#define MAX 10 + +int main() { + int n, r; + printf("Enter number of processes: "); + scanf("%d", &n); + printf("Enter number of resources: "); + scanf("%d", &r); + + int alloc[MAX][MAX], max[MAX][MAX], need[MAX][MAX]; + int avail[MAX], finish[MAX] = {0}; + int safeSeq[MAX]; + + printf("Enter Allocation matrix:\n"); + for (int i = 0; i < n; i++) + for (int j = 0; j < r; j++) + scanf("%d", &alloc[i][j]); + + printf("Enter Max matrix:\n"); + for (int i = 0; i < n; i++) + for (int j = 0; j < r; j++) + scanf("%d", &max[i][j]); + + printf("Enter Available resources:\n"); + for (int j = 0; j < r; j++) + scanf("%d", &avail[j]); + + + for (int i = 0; i < n; i++) + for (int j = 0; j < r; j++) + need[i][j] = max[i][j] - alloc[i][j]; + + + int count = 0; + while (count < n) { + int found = 0; + for (int i = 0; i < n; i++) { + if (finish[i]) continue; + + + int ok = 1; + for (int j = 0; j < r; j++) { + if (need[i][j] > avail[j]) { + ok = 0; + break; + } + } + + if (ok) { + + for (int j = 0; j < r; j++) + avail[j] += alloc[i][j]; + finish[i] = 1; + safeSeq[count++] = i; + found = 1; + } + } + + if (!found) break; + } + + if (count == n) { + printf("\nSystem is in SAFE state\n"); + printf("Safe sequence: "); + for (int i = 0; i < n; i++) + printf("P%d ", safeSeq[i]); + printf("\n"); + } else { + printf("\nSystem is in UNSAFE state (Deadlock possible)\n"); + } + + return 0; +} diff --git a/7.c b/7.c new file mode 100644 index 0000000..91c4c84 --- /dev/null +++ b/7.c @@ -0,0 +1,112 @@ +#include +#include + +#define MAX 25 + +void firstFit(int blocks[], int m, int process[], int n) { + int alloc[MAX]; + memset(alloc, -1, sizeof(alloc)); + + for (int i = 0; i < n; i++) { + for (int j = 0; j < m; j++) { + if (blocks[j] >= process[i]) { + alloc[i] = j; + blocks[j] -= process[i]; + break; // first block that fits, stop + } + } + } + + printf("\n--- First Fit ---\n"); + printf("Process\tSize\tBlock\n"); + for (int i = 0; i < n; i++) { + if (alloc[i] == -1) + printf("P%d\t%d\tNot Allocated\n", i+1, process[i]); + else + printf("P%d\t%d\tBlock %d\n", i+1, process[i], alloc[i]+1); + } +} + +void bestFit(int blocks[], int m, int process[], int n) { + int alloc[MAX]; + memset(alloc, -1, sizeof(alloc)); + + for (int i = 0; i < n; i++) { + int bestIdx = -1; + for (int j = 0; j < m; j++) { + if (blocks[j] >= process[i]) { + // pick the smallest block that still fits + if (bestIdx == -1 || blocks[j] < blocks[bestIdx]) + bestIdx = j; + } + } + if (bestIdx != -1) { + alloc[i] = bestIdx; + blocks[bestIdx] -= process[i]; + } + } + + printf("\n--- Best Fit ---\n"); + printf("Process\tSize\tBlock\n"); + for (int i = 0; i < n; i++) { + if (alloc[i] == -1) + printf("P%d\t%d\tNot Allocated\n", i+1, process[i]); + else + printf("P%d\t%d\tBlock %d\n", i+1, process[i], alloc[i]+1); + } +} + +void worstFit(int blocks[], int m, int process[], int n) { + int alloc[MAX]; + memset(alloc, -1, sizeof(alloc)); + + for (int i = 0; i < n; i++) { + int worstIdx = -1; + for (int j = 0; j < m; j++) { + if (blocks[j] >= process[i]) { + // pick the largest block + if (worstIdx == -1 || blocks[j] > blocks[worstIdx]) + worstIdx = j; + } + } + if (worstIdx != -1) { + alloc[i] = worstIdx; + blocks[worstIdx] -= process[i]; + } + } + + printf("\n--- Worst Fit ---\n"); + printf("Process\tSize\tBlock\n"); + for (int i = 0; i < n; i++) { + if (alloc[i] == -1) + printf("P%d\t%d\tNot Allocated\n", i+1, process[i]); + else + printf("P%d\t%d\tBlock %d\n", i+1, process[i], alloc[i]+1); + } +} + +int main() { + int m, n; + int blocks[MAX], process[MAX]; + int b1[MAX], b2[MAX], b3[MAX]; + + printf("Enter number of memory blocks: "); + scanf("%d", &m); + printf("Enter block sizes: "); + for (int i = 0; i < m; i++) { + scanf("%d", &blocks[i]); + b1[i] = b2[i] = b3[i] = blocks[i]; // each strategy gets a fresh copy + } + + printf("Enter number of processes: "); + scanf("%d", &n); + printf("Enter process sizes: "); + for (int i = 0; i < n; i++) + scanf("%d", &process[i]); + + firstFit(b1, m, process, n); + bestFit (b2, m, process, n); + worstFit(b3, m, process, n); + + return 0; +} diff --git a/8.c b/8.c new file mode 100644 index 0000000..6de722a --- /dev/null +++ b/8.c @@ -0,0 +1,109 @@ +#include +#include + +#define MAX 50 + +// ── FIFO ────────────────────────────────────────────────────────────────── +void fifo(int pages[], int n, int frames) { + int mem[MAX], front = 0, faults = 0; + memset(mem, -1, sizeof(mem)); + + printf("\n--- FIFO ---\n"); + printf("Page\tFrames\t\t\tFault\n"); + + for (int i = 0; i < n; i++) { + int found = 0; + + // check if page already in memory + for (int j = 0; j < frames; j++) + if (mem[j] == pages[i]) { found = 1; break; } + + printf("%d\t", pages[i]); + + if (!found) { + mem[front] = pages[i]; // replace oldest page + front = (front + 1) % frames; + faults++; + + for (int j = 0; j < frames; j++) + if (mem[j] == -1) printf("- "); else printf("%d ", mem[j]); + printf("\t\tFault"); + } else { + for (int j = 0; j < frames; j++) + if (mem[j] == -1) printf("- "); else printf("%d ", mem[j]); + } + printf("\n"); + } + + printf("Total Page Faults: %d\n", faults); +} + +// ── OPTIMAL ─────────────────────────────────────────────────────────────── +void optimal(int pages[], int n, int frames) { + int mem[MAX], faults = 0, count = 0; + memset(mem, -1, sizeof(mem)); + + printf("\n--- Optimal ---\n"); + printf("Page\tFrames\t\t\tFault\n"); + + for (int i = 0; i < n; i++) { + int found = 0; + + // check if page already in memory + for (int j = 0; j < frames; j++) + if (mem[j] == pages[i]) { found = 1; break; } + + printf("%d\t", pages[i]); + + if (!found) { + if (count < frames) { + // frames not full yet, just fill + mem[count++] = pages[i]; + } else { + // find which page in memory is used farthest in future + int replaceIdx = -1, farthest = -1; + for (int j = 0; j < frames; j++) { + int nextUse = n; // assume never used again + for (int k = i + 1; k < n; k++) { + if (pages[k] == mem[j]) { nextUse = k; break; } + } + if (nextUse > farthest) { + farthest = nextUse; + replaceIdx = j; + } + } + mem[replaceIdx] = pages[i]; + } + faults++; + + for (int j = 0; j < frames; j++) + if (mem[j] == -1) printf("- "); else printf("%d ", mem[j]); + printf("\t\tFault"); + } else { + for (int j = 0; j < frames; j++) + if (mem[j] == -1) printf("- "); else printf("%d ", mem[j]); + } + printf("\n"); + } + + printf("Total Page Faults: %d\n", faults); +} + +// ── MAIN ────────────────────────────────────────────────────────────────── +int main() { + int pages[MAX], n, frames; + + printf("Enter number of pages in reference string: "); + scanf("%d", &n); + printf("Enter reference string: "); + for (int i = 0; i < n; i++) + scanf("%d", &pages[i]); + + printf("Enter number of frames: "); + scanf("%d", &frames); + + fifo(pages, n, frames); + optimal(pages, n, frames); + + return 0; +} diff --git a/9.c b/9.c new file mode 100644 index 0000000..737aa07 --- /dev/null +++ b/9.c @@ -0,0 +1,63 @@ +#include + +#define MAX 50 + +int stack[MAX], top = -1; + +// check if page is in stack +int inStack(int page, int frames) { + for (int i = top; i > top - frames && i >= 0; i--) + if (stack[i] == page) return i; + return -1; +} + +int main() { + int pages[MAX], n, frames; + + printf("Enter number of pages: "); + scanf("%d", &n); + printf("Enter reference string: "); + for (int i = 0; i < n; i++) + scanf("%d", &pages[i]); + printf("Enter number of frames: "); + scanf("%d", &frames); + + int faults = 0; + + printf("\nPage\tFrames\t\t\tFault\n"); + + for (int i = 0; i < n; i++) { + int pos = inStack(pages[i], frames); + + printf("%d\t", pages[i]); + + if (pos == -1) { + // page not found — fault + stack[++top] = pages[i]; + faults++; + + // print current frames (top 'frames' elements) + int start = top - frames + 1; + if (start < 0) start = 0; + for (int j = start; j <= top; j++) + printf("%d ", stack[j]); + printf("\t\tFault"); + } else { + // page found — move it to top (most recently used) + for (int j = pos; j < top; j++) + stack[j] = stack[j + 1]; + stack[top] = pages[i]; + + // print current frames + int start = top - frames + 1; + if (start < 0) start = 0; + for (int j = start; j <= top; j++) + printf("%d ", stack[j]); + } + + printf("\n"); + } + + printf("\nTotal Page Faults: %d\n", faults); + return 0; +} diff --git a/bankers b/bankers new file mode 100755 index 0000000000000000000000000000000000000000..7e924e29333bc9e66d02da8c32a71f1ef423e85b GIT binary patch literal 16184 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 literal 0 HcmV?d00001 diff --git a/lru b/lru new file mode 100755 index 0000000000000000000000000000000000000000..24ca9cbfa5884e7fb04fd585369a4d6e97e48387 GIT binary patch literal 16272 zcmeHOU2GiH6~4Rn20J9N6KtA4$bb@Re!Q`r#Kb_zI?g&1ln^&@B2Y`m>)o}zV!dna z&QhBuU}}t5ZA_t3T3Ypi2Oc7X1O-$gP^gno0##{4Rne$O)QUh|H-UzqqCkze-??+o zcz0qW+K09ebETbg&(C-6nKO50@142#{@{*wug4>}l!;pfal_S?B%lOi za9ky>6!XBBOPQq)SOi+D=w+p}Ldi)?xTlrgNmnX6rW_$r!p&8>F0nLBg*p$y`ADUB zC+(L?A(*n>ZcigHiYAXX)x8$av=~RZIaP1zPi-otafQ1>oj>D9Ot=Y!n@~8LQb43v zl=DeBq2I&GpOda85DHVWr9zZ``KyS#mYF_Ds3GJ@1>5|D?SR zg?m&vbkZACdrY~#PKE1I=jWskD;!fkzi$CY*Wv3H?pC{1dvjg)26f$;s>>*^K@A$C z%eU?Jy|^(R82k99u_K@NUjFXN18vX0`_t?Gwl*H?ZeG7O9;uJV5}CpJ!Hv!J&FlT? zq`yhtv*e5YeciaPf#H%_jQw-S4??cZVo&YP=7(}Pn|#+C@^8!`KMc8spR>FOf#wu~ z58$V|W~p`{W2S{+q|H$HZX?`xx6u=d#UY5Lli{XyMmiiy^avP*`$8#*k@7GZr%aUizgG&&QNzeigtSYlL^(bVVTZqh_my`UgJd{@>>iNt@szDzD#5kpIIKOB+tX(sqpiQ?~j4Smi)AOKCxU=@`iw= zXF2oZn=Lu@3w0|g0pKJseC2^n%>!*3uitobdDRjUH15#L9;$%z8Wn&ZUNkZSUj z%>gFh$A3+W_a>9*$dmf@R2=mE}O~ce9r)t z4Nje1lM7DikLzPKqjU;5$5)`pm3v!)=Q2L%&R#LnKjq2!?uYpLV7?_db>F;^15;w? zaAPbfKV+jg|wZkJT=bs@L@F zpDgV@sr5}`ieMv}AUip_0044ub_382U~-2@q=)~YA3NjKJ;%||s}lCMjjRB2L?S&o z*4xE?7d<5> zvymOusIAR8NpX%P&26xn%N-)4(oe?C|HM{r-6p?6>ac&_#- zX<3w-)o?L#l#VhrvLaJMwd`mej+7drC9!77kxWhY(vs8+{F72c_6YN4ShYyzzL$SR zGsXN>QcXR^?xw_49ef7;ASbUN(%o9>b0t9Xp3!rAFGTd~Yves=`tqNAQ7F7|LfFq& z`-w`I*DY=a+zhxGa5La$z|DZ00XG9~2L3l0@Zc*|TKe=iieP(Kf^`k=JFenxJW=h3#?{484 ztoE!}a7o3ZnADJ*)($)Y>@{St^%D6hY&ELu@vBq5#iHu=MN4n1y7YS$!(#LDo3C59 z`f4&K?04|H6K&#atPrh>svq*UEu81=Kns?BKg5qf{}{d9V13!aGHE~7$!p}^?eneRZo7QgqDUd9ieUaH^=aRq(nleOx3WlO#I#8(aB zrDbq~xyc+ldf`HC(zh)7zU&Wbp`336C#`B|OWHhEX7&t zV~NSDb$-@NNQgmY!Sg|0gGcL0spM6|EU!~M$2~5sgy6M=+&(_<$n$|(n&RuB{mhV zMQ?uA5#LoxKH-qloS*FZz5pxBZ8&)b~PdGm)iFa%RfV9 z2{T1>J`ysU{F{(#MRr_$Udoq=x&TWo+BS!uPROhA)ValB|827OE)@J+VsD{2{Oq4Y z{zEBWAcoYsWce-!&VDk7{VyP=c%1RS0=dRP6wx;!U+i6G-xsXW`H@_gh9yEBoK6^Of(Wpe)0KaxwgO z1uVFY4ao>qO;gs3vPhvrPs5@qup(Lq;@VriO%kDQQG9{ry9L6mbSD%@WfVf0zP`CL$D;VYKgV-5E53w{JDD__Zp+tmsC~V&at4J(iWYW=yFp~oUX^#NYolYyf+%h5KgBbf8IH9!hVb#L8w0#MtDgyii2N9Vzr873qS6S zesuX+?#q8yMB_agBjI+IWv+c>N`2A$U#v_Mcm&z_x%Txjo@|RtGnmgXX5#jF9Lbc& zoBZ75@f-UHpfd9od}f@<5$P_joasOD^nh)!bBEl{2h?en2_;2 z4rF?{!g2g;$Mi1fX^hD{k29H)e=5%SEvXQ3RLD2ud7R61Tp4ov&hx)V;kPI|9yc@P zaW>&8XHNVuWRw#g=iC1W>VJXf6EKm5<6!>#s1)Nhg=5;qhKee+-ONJ{{ID`$`WHuo zjAyq89e5spFy;9Y+dJHeA1OTNUueow(MJ@^#EJhI6m-Z*AfcfEiGanxm~6nfQ#`wPtGfRz(!gX#xbSwelecM!F3ImJ;wBuaL<(#}ar!c^#XkX;dpH1DQY zO;L7CS#Fo-RdV5?=L!_g)M-bt87x!s!J6^3N!zt(%67z(-H^5$(snkb3Xxn>jwi*0 zjy*b_ZhAc#Au%OgN<``CUr5}?sb8Yh=PJ3&8`O4g>ec#8xxDS~SmFPrygF@nMmu!V zRk}Q;TwcAlE7tXN(>>abDYtJc?5H0;ZQ^0IO_!Ie-^&Y>N2a2<$-^Jx90rx(6^OW)(mLQ7)NhN{XXv2a-|8gFeYYpbp*tE%*+627JKnk8TC zPnGiD&o@A2dKR@bFmD!|{AbgrSY^Yvprj500&85C&)poYh&MoyVxAV&?g}JeQvl)&gBfFw0 zE0V0=yf&7IN9uzOu?ULW)trdy3YbbYtD+Dzpb9a53h^grI5~zqKz2aFq|t61|2y2BEcyKj*8o9$bsuAUCI24(9eUOA|+7lzVda60lSAAx)X@)5{KARmEz1o9F1vPR%y$+aIEoo9-TbkV^jLKxix zRzYUa=sZ$ing{jw8+|1U zx?q9|_SJkJh|yQ{0Ff1=)+|*0vQJfga%QMxK?ms_))e|%rT+3;iQIVE=s9N`JiFRB zI9h0Ujv6N~TQlL{gmzGz8EPz9ux`wr>eo>-6}F;v*$$(#W^Y=7OoNBcKrh*G3#in7BOMqG8{bfU zXB7><@lhu8>ftY@%lE_Au|Nm4U?hVRx*tUXl0AQVcdkxDw|8W39J;->^TDo+RrLwB zt;P9Blh?14F1&+?^$~mGs104u` z2Z#OwE(Q#qhpteAXY0QtyIixiU_Z~`5%A*}JTu_#vkso$RINqngoHLEq@>9*`67tcRrNsL}IBCA~#Ti|%$>OaXSR`#22b zltl9~91Ma_?<171-h*!y7@kA8Hp`^t8;G!S_})LDCXF$X?^RZsmD2@_=*Nihz1?2S zEzH8o$@c8+eiqX}r&RW&WkXg-rldClGt^-K>k7L9n@|B%_lRomqf#{1-YrsEwBKnl z7ud1x*K~VNFNd`sC8qZgG_J9JX*Ska0n1KliHcE)Dv-lHK^gF@iUChtQvuS5+B4=CBto`chJw$Ou3}M&(i8kG&qF42DDdw)RXy?k3c>G z`3U4A@Kuh0N4`H2VoF(AnRk6OnX+)Uyx>G#G7*ZTQj@pih1cZTSR!y?C*fNVa<$sJPV4 zUa=@Fl!`>WDb$5vw^@s-t3##{+XBUT<`u522Br5lm4DAp}a@Wiop~J1%50 z&x5}FekSt=&=2tw`9A1O9F#l{Y!jZgQqR0ACl&YOsR!ZojY2j2+&~KJCdpTB*CShr zW8iEivlCQID_uWr_N^sX++W-wR?l7e^<~#DB$#aP#Bm<>7wIX=nrWqv6s(;(vGA-1 zMM(K>z(>w!GBxy6#g2>0|9UaE{MV3Q{veaNW}N+OX%CT1Z~djPs8Ec`cViSE zuYyH6=tu8ioqG`3U4AkdHt< z0{IB!Bk)y=0DqUq-{JAPS*?VHxRM)8i)19c&XQ@uTt(+-p1=2-r+GZLl}W1!{_bzS zOa8&-OoE`}`Xf93cJ7>BfYZGNrC}}SZ}bKgEbj~`J6rQ~f8k8pObqMq{M5aM5N%qC z@6+(;RVMnLl+v&+nDND$=XMQ9Eg|suUnVXek4|NK07_Lnla>4_-7wttNS@=2+epa| zXgQwDN}lVj-T&VSe?RUnxJr+M^_t$UX``n1Y07r|9p{F%Yj5^0#vRs;-ij(;g|EW9 zw0vn*dF8Tl*33>RP7}m=`L4jJL2>tp8G^qf_iEt`&}{k(fEQpiKkKUBbs8UX;dC!f z`g~o0mFZTTJz}n?_A8$I@pg&Nvd6iS3h^K^f-B%FiMwjOh>!g_4m8-Sp+cZ zsOdP|X+8qwb%Wr4De*aCv46a<8hAE88-bUKId=Tns*dyvrV5^y7{5J-pL=uQT{-Z_ zbKt)KPW5ru{}td~u7rc00De`$9KqKGi~dBom}VRC^M?`O6z3QXY$W+i2lPDfQj9~t zpU|=NqSo)w4()iPQLgjKxfm8k6e&z%BvQr1G z0>03}b9O86=>?e0UDuu19!gpjz68E#4>m+iE4WJlXuvn`@$EpzK7Ti@W-~+|z|+_H z;e@#>mS_mZ%&>)rhGwv}O@tE7EwKn5IQq)7YtYyEQ8SoK2HVX@+)B2K#$>QLVuo9r zo7-XH;7n**<5X|*g{WeYc$lhXn(Mc%*&HwfTh^KQ`hMNFwyfE_aV=m>cxJ%RQe)jV zVQ$!TTkV=n=56cOZx7U)^=oQ31x(RM4^r_Q6&9|I1b%ymz$b42plu4aE^QnzBjKPG z6ta>5%j?L%&#xSt;Vs(@gh1ILv%KxEz3Fn+g%T|F5G>N+8O zsrF_o*Z^uJ6>Z{NJYhwAyW*|BhSn(d%0$D$hg}+xWQ&k!Q!v#eeBt&uJSb`EThXqx>jRTx#m1-5NwWyP`v~S#mOgYqDn=)g%6iVGe$mNlb?sux{uaM zxU6N$wVzCjKlXeT-@yq?QMP@q{e5gty3SMu29MqoTt2TSnew`m=T%^S8HRgKkG5Q3vya( zGSBNxrsSWJyZ#Clg5GVAZ?@<4F4F<6$mP4+f1kFm)q1>sX3FbrvZt82?K^-`OnAL- z|1Rj?2fnX>icDM&=D&xG)84D?nC@gnO|{rA<`I{DhgM+P$qRj#J-h97+4DMtDc?7- zzPtWE)b<>I;nkX&j%bz%$B+3RBSYRcp!n`ryvar_Zvq{8;R zZ*E`-SqZUN5&O*LGNmouPJ3SO4{LkBZK*PB$8?Izp4Y>R%auOYlijc#^QEvSjO)+q z%W7@!)~C8U(=1)SR<}iL@18%{-bwk|v5k@WCYP@V%r(I1zJ%+;^FK`wTz6#cw3BWm bk?wFg=W>;l*8bV;U!)&4q-$LUE>`>p$Og!O literal 0 HcmV?d00001 diff --git a/pg b/pg new file mode 100755 index 0000000000000000000000000000000000000000..eff941ed4a5e7aa9b88359b8d4dae451b1055c95 GIT binary patch literal 16296 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 literal 0 HcmV?d00001 diff --git a/segXpage b/segXpage new file mode 100755 index 0000000000000000000000000000000000000000..d4660aeedcb95713d0008c43de3d9dd60a7544d8 GIT binary patch literal 16200 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 Q(;uWiHk6e<1z%JA4RuqzNdN!< literal 0 HcmV?d00001