From 62117ab2ddcbb2231cc30e527ef75695752d042a Mon Sep 17 00:00:00 2001 From: Serxionaft Date: Fri, 17 Oct 2025 16:48:10 +0400 Subject: [PATCH] Lab finished --- kozyrev_sergey_lab_4/README.md | 90 ++++++++++++++++++ kozyrev_sergey_lab_4/app/consumer1_slow.py | 58 +++++++++++ kozyrev_sergey_lab_4/app/consumer2_fast.py | 51 ++++++++++ kozyrev_sergey_lab_4/app/publisher.py | 53 +++++++++++ .../screenshots/Tutorial1.png | Bin 0 -> 24834 bytes .../screenshots/Tutorial2.png | Bin 0 -> 46270 bytes .../screenshots/Tutorial3.png | Bin 0 -> 11199 bytes kozyrev_sergey_lab_4/tut1/receive.py | 21 ++++ kozyrev_sergey_lab_4/tut1/send.py | 18 ++++ kozyrev_sergey_lab_4/tut2/new_task.py | 23 +++++ kozyrev_sergey_lab_4/tut2/worker.py | 29 ++++++ kozyrev_sergey_lab_4/tut3/emit_log.py | 20 ++++ kozyrev_sergey_lab_4/tut3/receive_logs.py | 26 +++++ 13 files changed, 389 insertions(+) create mode 100644 kozyrev_sergey_lab_4/README.md create mode 100644 kozyrev_sergey_lab_4/app/consumer1_slow.py create mode 100644 kozyrev_sergey_lab_4/app/consumer2_fast.py create mode 100644 kozyrev_sergey_lab_4/app/publisher.py create mode 100644 kozyrev_sergey_lab_4/screenshots/Tutorial1.png create mode 100644 kozyrev_sergey_lab_4/screenshots/Tutorial2.png create mode 100644 kozyrev_sergey_lab_4/screenshots/Tutorial3.png create mode 100644 kozyrev_sergey_lab_4/tut1/receive.py create mode 100644 kozyrev_sergey_lab_4/tut1/send.py create mode 100644 kozyrev_sergey_lab_4/tut2/new_task.py create mode 100644 kozyrev_sergey_lab_4/tut2/worker.py create mode 100644 kozyrev_sergey_lab_4/tut3/emit_log.py create mode 100644 kozyrev_sergey_lab_4/tut3/receive_logs.py diff --git a/kozyrev_sergey_lab_4/README.md b/kozyrev_sergey_lab_4/README.md new file mode 100644 index 0000000..0602731 --- /dev/null +++ b/kozyrev_sergey_lab_4/README.md @@ -0,0 +1,90 @@ +# Лабораторная работа №4 — Работа с брокером сообщений +## 1. Цель работы +Изучение проектирования приложений при помощи брокера сообщений RabbitMQ. +## 2. Как запустить лабораторную работу +### Предварительные требования: +* Установленный RabbitMQ Server +* Python 3.9+ +* Библиотека pika +### Запуск Tutorial 1 +```bash +cd tut1 +python receive.py +python send.py +``` +![alt text](./screenshots/Tutorial1.png) + +### Запуск Tutorial 2 +```bash +cd tut2 +python worker.py +python new_task.py +``` +![alt text](./screenshots/Tutorial2.png) + +### Запуск Tutorial 3 +```bash +cd tut3 +python receive_logs.py +python emit_log.py +``` +![alt text](./screenshots/Tutorial3.png) + +### Запуск основного приложения +```bash +cd app +python consumer1_slow.py +python consumer2_fast.py +python publisher.py +python consumer1_slow.py +python consumer1_slow.py +``` + +## 3. Структура проекта +``` +tut1/ # Изучение туториала 1 +tut2/ # Изучение туториала 2 +tut3/ # Изучение туториала 3 +app/ # Создание приложений, обрабатывающих очередь сообщений с разной скоростью +README.md # Документация проекта +``` +### Описание сервисов +**tut1** — Базовая модель "производитель-потребитель". Демонстрирует отправку и получение простых сообщений через очередь. + +**tut2** — Модель распределения задач между несколькими worker'ами. Демонстрирует round-robin балансировку нагрузки и механизм подтверждения обработки сообщений (acknowledgment). + +**tut3** — Паттерн fanout exchange. Демонстрирует широковещательную рассылку сообщений всем подписчикам одновременно. + +**app** - Система обработки заказов интернет-магазина. Publisher генерирует события заказов каждую секунду. Consumer 1 обрабатывает заказы медленно (2-3 секунды), Consumer 2 — мгновенно. + +## 5. Результаты тестирования +### Сценарий 1: Один экземпляр каждого consumer +#### Параметры: +* Publisher: 1 сообщение/секунду +* Consumer 1 (slow): 2.5 секунды/сообщение +* Consumer 2 (fast): мгновенная обработка +#### Результат: +* Очередь order_processing_slow: накапливаются сообщения +* Очередь order_processing_fast: 0 сообщений (успевает обрабатывать) +#### Вывод: +Consumer 1 не справляется с нагрузкой, так как скорость обработки (0.4 сообщения/сек) меньше скорости поступления (1 сообщение/сек). +### Сценарий 2: Три экземпляра Consumer 1 +#### Параметры: +* Publisher: 1 сообщение/секунду +* 3× Consumer 1 (slow): 2.5 секунды/сообщение каждый +* Consumer 2 (fast): мгновенная обработка +#### Результат: +* Очередь order_processing_slow: Спустя некоторое время пустеет и не копит более 1-2х сообщений +* Сообщения равномерно распределяются между тремя consumers +RabbitMQ автоматически балансирует нагрузку (round-robin) +#### Вывод: +Три consumer справляются с нагрузкой. Суммарная скорость обработки (1.2 сообщения/сек) превышает скорость поступления (1 сообщение/сек). Демонстрируется горизонтальное масштабирование. + +## 6. Используемые технологии +1. **Python 3.9** — язык программирования +2. **RabbitMQ** — брокер сообщений +3. **Pika** — Python клиент для RabbitMQ +4. **RabbitMQ Management UI** — веб-интерфейс для мониторинга + +## 7. Видео +Ссылка на видео работы RabbitMQ: [Rutube](https://rutube.ru/video/private/d4dc5613005afbbe601862d54b248d36/?p=De8RTMImQZQtab3avfH2Zg) \ No newline at end of file diff --git a/kozyrev_sergey_lab_4/app/consumer1_slow.py b/kozyrev_sergey_lab_4/app/consumer1_slow.py new file mode 100644 index 0000000..2a76f96 --- /dev/null +++ b/kozyrev_sergey_lab_4/app/consumer1_slow.py @@ -0,0 +1,58 @@ +import pika +import json +import time +import random + +def main(): + connection = pika.BlockingConnection( + pika.ConnectionParameters('localhost') + ) + channel = connection.channel() + + channel.exchange_declare(exchange='orders', exchange_type='fanout') + + queue_name = 'order_processing_slow' + channel.queue_declare(queue=queue_name, durable=True) + + channel.queue_bind(exchange='orders', queue=queue_name) + + print(f' [*] Consumer 1 (SLOW) started') + print(f' [*] Queue: {queue_name}') + print(f' [*] Processing time: 2-3 seconds per order') + print(' [*] Waiting for orders. To exit press CTRL+C') + + def callback(ch, method, properties, body): + try: + order = json.loads(body.decode()) + print(f" [x] Received order #{order['order_id']}: " + f"{order['product']} - ${order['amount']}") + print(f" Processing order #{order['order_id']}...") + + processing_time = random.uniform(2.0, 3.0) + time.sleep(processing_time) + + print(f" [✓] Order #{order['order_id']} processed successfully " + f"(took {processing_time:.1f}s)") + + ch.basic_ack(delivery_tag=method.delivery_tag) + + except Exception as e: + print(f" [!] Error processing message: {e}") + ch.basic_nack(delivery_tag=method.delivery_tag, requeue=True) + + channel.basic_qos(prefetch_count=1) + + channel.basic_consume( + queue=queue_name, + on_message_callback=callback + ) + + try: + channel.start_consuming() + except KeyboardInterrupt: + print('\n [*] Consumer 1 stopped') + finally: + connection.close() + +if __name__ == '__main__': + main() \ No newline at end of file diff --git a/kozyrev_sergey_lab_4/app/consumer2_fast.py b/kozyrev_sergey_lab_4/app/consumer2_fast.py new file mode 100644 index 0000000..8bd5ec5 --- /dev/null +++ b/kozyrev_sergey_lab_4/app/consumer2_fast.py @@ -0,0 +1,51 @@ +import pika +import json + +def main(): + connection = pika.BlockingConnection( + pika.ConnectionParameters('localhost') + ) + channel = connection.channel() + + channel.exchange_declare(exchange='orders', exchange_type='fanout') + + queue_name = 'order_processing_fast' + channel.queue_declare(queue=queue_name, durable=True) + + channel.queue_bind(exchange='orders', queue=queue_name) + + print(f' [*] Consumer 2 (FAST) started') + print(f' [*] Queue: {queue_name}') + print(f' [*] Processing time: instant') + print(' [*] Waiting for orders. To exit press CTRL+C') + + def callback(ch, method, properties, body): + try: + order = json.loads(body.decode()) + print(f" [x] Received order #{order['order_id']}: " + f"{order['product']} - ${order['amount']}") + + print(f" [✓] Order #{order['order_id']} processed instantly") + + ch.basic_ack(delivery_tag=method.delivery_tag) + + except Exception as e: + print(f" [!] Error processing message: {e}") + ch.basic_nack(delivery_tag=method.delivery_tag, requeue=True) + + channel.basic_qos(prefetch_count=1) + + channel.basic_consume( + queue=queue_name, + on_message_callback=callback + ) + + try: + channel.start_consuming() + except KeyboardInterrupt: + print('\n [*] Consumer 2 stopped') + finally: + connection.close() + +if __name__ == '__main__': + main() diff --git a/kozyrev_sergey_lab_4/app/publisher.py b/kozyrev_sergey_lab_4/app/publisher.py new file mode 100644 index 0000000..5ca327c --- /dev/null +++ b/kozyrev_sergey_lab_4/app/publisher.py @@ -0,0 +1,53 @@ +import pika +import json +import time +from datetime import datetime +import random + +def main(): + connection = pika.BlockingConnection( + pika.ConnectionParameters('localhost') + ) + channel = connection.channel() + + channel.exchange_declare(exchange='orders', exchange_type='fanout') + + print(' [*] Publisher started. Publishing orders every second...') + print(' [*] Press CTRL+C to stop') + + order_id = 1 + + try: + while True: + order = { + 'order_id': order_id, + 'customer': f'Customer_{random.randint(1, 100)}', + 'product': random.choice([ + 'Laptop', 'Phone', 'Tablet', + 'Headphones', 'Monitor', 'Keyboard' + ]), + 'amount': round(random.uniform(10.0, 1000.0), 2), + 'timestamp': datetime.now().strftime('%Y-%m-%d %H:%M:%S') + } + + message = json.dumps(order, ensure_ascii=False) + + channel.basic_publish( + exchange='orders', + routing_key='', + body=message + ) + + print(f" [x] Sent order #{order_id}: {order['product']} " + f"for ${order['amount']} from {order['customer']}") + + order_id += 1 + time.sleep(1) + + except KeyboardInterrupt: + print('\n [*] Publisher stopped') + finally: + connection.close() + +if __name__ == '__main__': + main() \ No newline at end of file diff --git a/kozyrev_sergey_lab_4/screenshots/Tutorial1.png b/kozyrev_sergey_lab_4/screenshots/Tutorial1.png new file mode 100644 index 0000000000000000000000000000000000000000..0e8021a2141bb053844e62841178f0fe0ac3c7d2 GIT binary patch literal 24834 zcmc$_cQjmW+c!MAs1Yp)5|Rjlh|U;93nF^&M2k+8(MyOfk}%Ol?`pzz(jpl(G~ER2fHnVTK3n-*A4e=LQ0ieaHM@ zbvhNi0)b3n3NlifUdG$APA~3HqzRqvzCbN~AX6y+ez!*cw$yW{on97_$fK{0Q53PR z4ur@d!e5?u&UnK(m3OiOKN0NTE#0IYr|wlG{F2b7-}hW>IY|;6_uy6ETfB8SyYViE zdz@Lc%0J^W$gs>_)$yl$`Gg>TM@6i+6a?hI)JiLIOlC?x_0LJnEJBVJYK&>E>#UC! zS_J5w|He7lWN0%y=gu=}3=8|^Qf=w9@J*MLyT5KBp^(v#DU#(r&qpPt`Btug?*=8b zuy-7l!{Q-&w$q__pP_o8;!ef2GU4Gi5=`Z%#J-IOyQo(tHE6BLIXIgN#Mz||sa!%( zPU=T~UAd>?wYo*N_ln$@;cR}d_@^$k5$=i!gsBWPtl;cS2=Wc|aLKkN{$%SMQe#uW3nWQwv=02`@hAfM?__U%)s8uOmstD;m20;=baw&ptYAyiml{X7kJJ1j4(E; zhatH;YKP$&m$Vcd0rSE`-LRjqdJn(f=xB_F+@3%@<40GZu9rvBX63g`l~HI zR7wW=mi75Q_*Iq0)nnUcmmkuv#^??ozqJOc9?=m7R;DSE2{{R3AP36FBzds-L((q0sb|Hh+RlbG~3Kq%P5Ef&I zn}1gAJ$=N8|5Q`-oZRXVr{3bLMtT)_)QNL3w(@!j|MGekp@RdF#Oq7e)B;9Nhw$)? z_~X@9v$Z}Jt2!P3^JT}%1OpG%=n>q2>Kl@9Bms{I#R74 z=Wl=KnBNJPX~%8G$0N4FJbTK+XDnhR?a}%z?Ia?VB+L%uZWfg1TaF4jH@r!w1BCck zfXzFngUzB~R^Q^T^n>H~`c^q>uadIq62ik3xi*Y=r@q@K@n)D2j&c#jB8O@b1$tCB z4Xl`C*LJ!0oMIn+&YZ}6N7Z|iV#tgZxR{S_I|&5^BcoKg)Nd;}8O&xGfjI%to5y?-u~BEl6y$8;mt~>zZ|qpiuA9Y%HTU&R;^V61Z->yauw-G|^F+T6((t^6aId_jDR6|Io#`M*8c^8)0~$?tF- zsWX`?$2*ww=mZ{$TUgnql(Is?N&pN zPC+q$?nocU-4BuItWrmEq!Zn)@aU1xqv@~Z+-d1Z;y0;ksw9|kxuIzMJv5Z$S)X+c zx11l&MnR8hAyB(ep2XC4QqqL=#}V4RmGg_uLFm_uWKKX)ZTzO2@pWg^c#xC7XjQxO z=irEVWfSRKkKvm3z-}Y%_!+bGbN4oluOc47&1EAOYRQfruJ~fpV%FsWJn$qZ2Kb+h4WuRvXHWh3i2s+MG&z65bvUnmbBO{L(qkEAbnCI4f+cwVB=ZkPc;WT%1 z@Keo@8205IJGPf&mKFT=GmFhJ5vwFXg)99!$t1(pI-w;+7o^aFD{n%}mhDX2ny9t^9D`JIRM>5VqGiYWQAn-^H={OnV5$)=yIhJC1FwopWFs#^O>~D$^0)&z{lSKzMMOk3h~xrTngP4R5n<-zoYL zIpj?x7Q}HW!kKNUX%8i$8uTjR@i*<9%KobuK=*$g*gR)roP`~!v=Yzy$`#lsP)|5+ zfAL$d5_o#N>dPtgOTd1my3DF{TOd$(|MG+3_QJB{xPf)BhqhQ9z&YFNp;kH^ouo7d^42#`u4+3U1sD+ zjc=k^34{&!p8Ca~c*f55p2SvVNBvnS9M0UHa#}=vuK$D|y>1=3y45s(fa7g?50YUz z#35B<#O?VR7%xM^rJ_?2wKn5h4|5dxPU&`T3`|!)yw#2m8q65tO;4z3>~AhEvnd+S z?_T%6;n}#&Wll{fUwXZi&stV`t26=^KU=Kc+@txK3jv6*V%w?(ZS4cfK)o4ke6l)h zhawT{Xwf37Af;&yYits*f`@xUKdGA`% z7=hQ#`j@<_NGHl>hv$_}RDshvqkN+yEX@)|vdrhtxYlb(`{DI4+xV_?YSfwL`2<9T zo6nA6#qAwaFNrM0(>T_Ui8FZK$446i;h68Xfynz_JY$jR!zb33F$Lg#UAaH#_^IS0 zxBo&1@^YLR640C{pYO3`v3|b;85{RB>hQXesU*bB!l6`bVS!gWs4ilT0V=N4)e$B~ z6^%(06hlK4hx9)ZfyEfuIFvAJ3a}MC=Ea;wUZ={PGH?X~wUH5UNmQ`cBNgf#}G10bJJV)$f5nEMEe zVX9<1ppV6PlSx+Pn6!kzpS6S+6}@-ka9poutdjTeO`N%C4cma|)1{Bg_4X}OFknG+ zX(EH#GJ4UtUF)i~xf7m|axRKec^y^{SCuuT)eC2|J@5U@YNA4LQwa8TV7X@5Su`Bk zsFNJ`Ogy4nLoI|(sOo$6$=;zbehRA%{qT+{)pFUy(YFGR_N|s6^p>s~HobuO9+7j< zeU>cgonP0)>(_DTx=G2fb==GvxKIwdt?(RwoT6hP$mAVS%{%+)6R{|jkArph@IOxs zt37s*9ps&|?Js_c{e9>Djz9*jql~(lZroi_LfLJrwXsnS!OJG0#r2T~N_KgnpI>4Y z?7;LLPsUAPlHMjM|6=VWp8>;djONCpd+a`7I<9DV(lX{-(1uy)$Z2MqG=`M$`-`_!+4>g#hPeb5MH! z)U8*;C|mR3lP!LeKXih1)N;+xWDwa{Z5W7b3`nN$tjwHfw@0(r*~&nPyh%m(5|e-t z@p6`~;|)g$n!Pk(&1`PAaQn5ChhhtHZr*Es2jx`Rk=Y!mb+P=}qCT<-Sh#Q4yH<4*v9KogRV!DB~L z>$a!BY)HC3xRx_Ollco|mj!y;iqqi(Rjjos{etB9W;^@k*_u03VEdr<|CSc8~{3BO_zV_QahK&<_>)z*1#^Pu?P6>g^@7^E9IWW`?-#7>S57qF7Pi z?dCId;L-K`Vzv7!5CAH1&OubRy2z%#-~~M>O;`)o{s9_X|2OVIK8shf(9dXXgohXw z+#>x6rj|7}M5jqwToVW`NeqvPb?p=LG4=DP-UVm5EKsp?~85!Jmu-{e4C z`$?2_!k8}tyv~&nD{b`OsJkpZa|*?}A_r#bQ@`sZtV`@3thJOAi;57YFanSOdyrQm zw&4rC{fo_s_2QICGTD8&p2%2Pl~jWfttKL~g-pOaM?BbYD~~_$W^h8%R`Q1EfLLD$ z+`nOh`c2uXrU7FLMR!k9o~s|!;792w(`yw5DGZ(iIDF|6j50n2hun&!>O1PW)wu@3 z68yPfwr}5V$vt6C)_B0DQJ0ZnWCy%@@cz|r+#*vhJ|T&n4Wjo-<$9i%A10jdNoqJq zL4yv+Qp;6y!5z1XNUHs0WFAl;+uN?i0;BxAEw_I$T`cej?jKQ$+`i$+iqt+WmJ)s? zp0eaYrbFaB_eM#>-6&k;^+cDx_-y+cQ6{$)WP>^5&O~F6dt8?Fy{No<%Z-)cIy6te zxz{o=bH7S0Rg=0Q1w#nh@WIQZ1qj~-`ef7_F8g)Aa92J|UH@oR2wfXd0mPwD2j^{w zwoGx4SQnj?j*0l|y75T;byjtDy(b#>;~o7)@!8KCKsAt{W4s4VgObiZF^3!O)0 zuz;y_RgG7ge1;SWXM@sQn^06yA_IQs0A1w}d3OzI4t4TGFSK?9GN%{g_}8gB7n8sn z4Le?DcKg=1sP3%yJu4^H?}-|#>D_|xhfL}6Om7`k_$#PfZ;=3E3ZX#85J!%V^;_Rw z)8$u_xdI%ScPI1)kncyARx`Qz#sr3Z(tVQ2qdXzaZXNU zwvk~cu-W8}7->4pominef);ImJWHs1cx&9}UU)cJ8|>Pf6gJls$9zb-?38^SaeX?_ z3Tyqq+{}=OCV9px=TDEPzRO{t_-S2Y4C>bUmWJAgSRU`28nPAmG2)o+(2`#E1xqvl%iTLWp?gnL>;IePs|uzK#MGBQ>N zkuGWAPG1*!CX5xYuOP>F0PB48)G<3L!o0a2Of|N%u`;ZyIFTuRyRX*|_ZGDJ=B)Ox zyT~fo_CCdN{8-7U<0*T|u`2B1Va$j1)sC!1q z+!5j7s2|9iYPPo7Ycbi`)ASxG1)n0v`=SBmA~93>;_JJyKYzypI!ab8Ad6tO1R{*k z@SoTw!SV@Z#vSrK{F%!ejj@^YoHV;=0rQo{39#s603B{GuAI8`HZ*_gOQ?0?+2VN( z{NJL`x4F@odAG&iISwlp?t)im<$qtr{}GvnF#wmC5(C?#d8ecHDz$#39)xJZqbZ*J zPfGzTIKjr9v}~v zgsi%j?CW;V|1e<2nzxgy154}J1b#6tV=iwEz}vm>{!we(3J2~@oCq7AFL^su4FEw| z`2gf7w(yo536DokGnmvsr`a}$t6Ya&gN!{A4Zq`OdCfgAeXV@|$prP!vrqAB$_uG? z9#h4$@JQk-{j62a4O%;>4a}=)#((~xGM2tN2@9qI<(QCP$)jMEh*_G`{t0Oq?Npza zWGYpAH=4q3zi@tnP=o%&qGRk7+YO-2DEDI@VE4m33bHSO(tH?gh(z}$#~20`V0-6z zxIhc=8SvoyW7iIS)82MtpedN41VBq`ze8X1W`gXJU64iD*v<KVu5~}`MoBgREXoBMIi;1zX-&) znR+RUmgS-q&L6>30fYsQM3jyHHRCr|6-l}~V~~}&8Sqp*?$UeU`|Gj-D$gmGcDXb6 zB`mg6-HWC#7wm)&P`seF)v@!F_PUbt$OEz;8^Uw8=j8CC-?(dNg;_qn6TKdx93JdR zfARr%eMq56Yj~&j**>aXu))U)U*f!<-uT=i%3NdtZKAWNGw>1wykqJZQd>&tJfOsj z$4H~`^Gi}hxJ@fCy-=@{ToMew%avg(OA{c{dKNJvuz3`IV2k%CO9;6U4qZdXG6soe z`sWKnpiBU(w^HgFPOQoCOCRU3L_S?hq!rpUTDkdinHN+^!~eD#UgrNnwrgXDG6(E8 zk*_sa;~>D1WQ_1X#koK z=V$Arh8#fauvZ#UvRf)~V75i%?HgwFi)DCMl+>lKg6w&0f^w{rxe<3^O84|BtpkAp zXnS5@G8r~qM)L|y)0taJC>mVt`onu@o}|PCMaTq>ec)~k;HZ@ZppWC@meeNhc}b@ zRvzJ}LyJt#;a;+a!&1#N)bQW5IrS@{fRd)BZu;aOtdvasX_E@L;=X-&@M*2pgtY_B zzT$B~m6lwFCnp|%8nNmZoWK@78zRdJ^IB{`^UmdWbw^8<&^ox&J#Hw=r_8rMaI`QN zvA|=N+=Jhj2yrR@3e2v1*(keWReW}pu`~T%$)EQ7>h?{|&!zx?cC*%@9Pd?I~v)v{(P8XfW0xCr_5Q{39!jh+V+74bMlF9pwX z*quU@8mLU&?d5D@{sDDvEflY?+J2`+%j->c49EtJD(`AT;w;#A;eZ6!PuT?RCj$r+ zwVZt0`V{x|9+rp12|f44v*dk~mS;Yfyfa%Id;HoJoF`-Sdn*n8(4W%IpHa_bWHh~@ zW7w~oqBEt79ut!bG7N;_ZZq&m@GZ}Y_s(viVwFM-@6|<-LX$HlZ)n~NCfg6XC=0(R zHHAh1qEukSE7s{OYV8N~f2U)>xTnTP zbmFE<1q?cbVa8QECv4@5&yJ&=lBR~EYcjFKboWc_4FC=PNCZKK=s+q%?8&rM zZvoopa~`n_{>$#%yFaDR&N?@4t#dR-rGk~mg#u%@_{+RJmPhNElulRh0Fe+yr364+ z6u+chhYM-fcFO_R!WLso=o%;A`0N_&iDOLJYjkRIZm-{NHPtps0H{f-Q?IY=| z?-K^ix`}}WIbxN%7dN{`bYaIDLjCLR;k`)eQgD^$+Z~x-cDhr*0QeE<%PRNKr*HjE z36TM-+%&q(6>#QM2!nw|^v&p|$p~kuRJuyVsx0u#fnsdW)4M@E#Gluph|;7NfmzdP zu5Q*qs_?$w4%4aJt{U9^hG>LERPSj0Z67I-dCZ(7CXG83ZoOig&eHpGZUCv)roP*C z2EIK@9C~Srzu96-qsomnb1q{N0C-U8rT5OR4sKwVwy9h{epS8W!OfNF*r{Ft-!OVP z0%%hRFl)v>#=XqvWpv)d2AxdA1va_`{47RAo80LX2TNvOsa~oWx5lj_S9#dsPl64& zrJ2tAN0cwPL!1<)S+5u4OhohOn4&h?e{R$-e+d|Km8xI;Q#({oY^=gsu;gJ(oi-*+ zOCR;4-gePTk&Hjr=sqk_YmbIcjR?pAaBGEw*T_Yz_QU7?T3y!YU#wyxDBGJT>;}UU z-}<2d}Alt2_ z642krIx{_!>5pCa*ItlU)Mg9B-)wZV{7ZTQJYB|4*PYG`@`3oCg%d{VMB4SEDby6e zHAhmgj_YPI_qy0xdnF|Qm{MK@0gnCUW3re}D4aY+%vz5=*j-L(Viu9d(dgs5?BZ2S z;@wuro|rxInf`tu=MAbjrIFP% z%t{3Sm3OIMKWLlh_A4ojPeeo=aCH@hMRCjjr6fd7D&Bl$V?RQ{36t#naIhv-0hJ%c zB9BRh;dCht5=TU1B(QCrLAyb$H+(*XW&OBbkSrO+G}x^Y6^532Lh^cML6n>HH#g-B z{K;`v9qtFhiLt5sYG92Y3uY#NAvDDmo9f=dpeIeHQ^wrhsx!vM?1VFnToV0`R#!aP zhukoAC+Wfof{bxsiQ$l!+Kv1*`4lh<&Zz-$3}cNM;x)hT`eU{EW9;Y{N2@>f+hLa( z#!~>c|FY(Czmix1a@4n!d2+cycicS_ew?JwojB_@8Ey{0Y4W0uvo^Me?oHO} z@^B9{8NF%l8FBN|r1{788BGTxO&jjm`FE;+p>;;Po>guOuPN=0g`RsIyT=B&j;;Xy z+KBjT1}iY6Fil$Ms~+My`CrE10Nn^S$70QzDsMmAFxs|tbe)Wa#S<%pt`8%Z#cyEb zvd>I|`~b2(qIu(xesn{WzZkkWBoQ?CI{hzDx{5muJdrZaXf!)(UrJj8PKhu(DvR`> zc-?}7ls}^`t-t_b7pQp)Ss;}Hr8s0)Sv?D%0Zy2&HiPJ%WP_dQZZWjY_=?eCbjiAOvSTF39u$J{=(B^8X`Htx!- zMN$y0gl`Pq5azEsf)GC@OxS9{>UGBw*Jy&md1tvHg+`iioZFY;^p3kd&VB|B08Y(0 zcAcD~%xY%MR`7~4=eAr?PG(#00`94Y*bU~=m>QAAfy=5|o0lr=x z`d)AD>|O|)U!8YMGkEzg2z9SET3hv^g@-@l0wDLOBFswLNMq@nSZ>LDYnLdS*!nM` z=5gSQKhs+nrvE1G*lJnsmdfX}CbIHUeC_3~d9!F_-XPOBt;gUXwQLvi4)e*(?N26p z;WKqk($Idr#}#0$gN5Fx?MCi(jS}*kYK4HYzdH7Gnd5IOQPJ0W?Z4q?m4X=cs7}%n z)<~&KM`vFYICZVYIel?kx2OIyPhky*%Dla!c(mWw(Q#~i~9;`{@L2QKqexq6`ZrHQxhy5T} zw8O}eT5APqjS*MZmZvnVmSux*_yYw}Hh{0f{}-#Ivq)lenX{6CdQYLRv{aU{BSrb6 z5UOoq!@rR<%086&Vpiv5c|L%VE59YyAccJI;+sy}#zaLZfelrN|D9 zU2)z%G3csz-kRGZ$~c}@HGHw1!IWvV8|wiKkD|Ah{!!&m;Cl%Tsh??GL?q_zp%fTe z1AuPk@>0JDw&`kXJ-InA3Kjn=Cd|PBFdF}AyE5O!ZcTprS@yEmdguJl)=TMDNUI6? ztI?i5a+1$TsOAs0PM58IfFaYBsMwbBpKsCE#MzOm1_7#Bo$nu~_;9{q>rTEVt*jRm zi11L`YylFr=kSG*PkQGY-_6&yR^}=phE#|vf-}Bo{^C)SXSh{lO z1UT=FuxHwKEl=GH1-#J-YiWLO6RQcuQ5MHsz%9n&cmo>r#8>`8qTMUTS;y-Oum6Wj#z{2DNwDYkbgm+C6GnCAE-)vZy}Lc{l-cbA2| zcGlST_m2*4LPTS@L816)y5RUogoeA1Zh+FGe84KUC0|!-u)Dw{1;E57K)waBhmf{U)&H%i4t+oJFgD2KdhMA@uy>*Td_XQBYiKR+KsTS!vxQGyPbLGH@hnM1nd z7e@iOVyh9hS4eqD%P}0&ivfVj#+se3TC5#&!#(aap~-v4X(v{LCoc)hH@WWr!N=WB z7EG7IS}E-atDav@PpUt(3$;#^)WEA{_d2GPNt$hyZm2%?{KRxL(D}P!{Po~XGQ^d{ z&B%k&_A@TAfORSV39<%$$4$gXrDi*PNlJw=Xs^CDL`d-V0d}~`PgTy6d7TynOb5EP z{&R~GascmebT`lS(p zZ%AG5dJZD;iWW3T4b*x;dvEaeHQ$zCTuP8!`_&r~Tc|#T@BaBG^zZHzO0TOzwS`a) za2R2_&o$8;FT@J=l^(2p!#90M-`xIFkNC9JJL*}_DE79~@tAdyGF8YruU9GqP7VI1 z(X8m!Q(g7iMt!2W7T+GeSBK?qD2hllxn(pVC?cy8ED#m>7C^5QUy~O=Tuhb6@-Uo6 zPx(+EZ(#1SQ?6y1s`Tw)K{&ypl>aho27DD>Zv%{PLcQkU$N2B`O&opf;`)oh;^Q!- z*+B#MoH9{=#GFtd*~V;-%pVW^DZoYuu|6})Cf%^Dt(^cZb&LX|A>R1bu{{pQqw)1k zK}a)kCU@TUyL%1P((zX9t4q0*wC}P4Z_aSagQK)rR@{Q({w6e0HCL^rc%#d@-nRjy zb=$uG^{Vkkni}iENr%ftxrD7zpRt2?U@02@(sSof^4H-dfvRRom zu@hgNtFkV?2Khy^>kq;eb}?IbbRKm;?U}2sk%8#Kg?4hHS4LvsS63OUV4y*9qVL_M!^FsW95*fB{C) zTjGx%bqd$X#^=+*3@cqZzce2?<{mD8D<@RHjT zSilMJ+B?U7U9ESW@+vAB+TENEd)z=5_`l`@BG~-Fu@ulmR}qfLXXOG=ihdW-vEBZJ zU1-S@?YmVOiQMZ)4e4Si4wYtNUvK4fvy6NWS}ni8aI)NQ@_c-Uq{1oIt3xf|@a&%3 zzgfc`0VGI79$J}i7ySZnJ^Yb*f&+(sldh;z*nl`|_nI%pV(bqc!Cg156lV~=weT3P(ixf?VnFN{iL09r zts$usf^}}4S#D{ONS(cdI`fvV5J{QbTZi;iPd*xm*?P1yH-)6PF zpIfavcSoWwJwIJ5v2HG^)wC3>QK*R!dXt)C$XFT1Y9Qytn4aN3nZP@I zu?PX9^L z(kuaz7Pa~hNh_IX1<#J>=TE#BMA_RH?_Y73J9s(@MSEUJHj@q>&r_#%n7W15%xHPR zlAIa}x}ena%4?O7MPavre1zEdqY8*XSVWF|vg4_HO5PyGF@Qg0oESdK@uM<+iESij zd^z7^g&9e=XWI{5AKqmpK%x{W_dJ zLVWi6^%`qSuM1?LP?{CsPKgL#_~g6}0W$3N4#^1{0AepyFY`<*a+uI>2lwt}D~PDev5o6(O6Onsz??~9MTnZj={BpUh?LakLs$X|XF9Q6Pq zsCB~JKuU)qCxLZ5>dMOW@`L=|g3IH=19gCHl*0?wY&)liXCL9O6WpB0KO4qLn!mc7 z7y=m4?e^|s;^X}gpU%F`I>FUY^0pJ^J(pF=@McrxWait0$l*3xJEskIl>husJhZFM z-dB_NOCMnB#5BDNME*5L57JMH{V%VX?;VLR%+EDqXENu%=JP^4E}1vAc@W}+|6BTa zUxM6pLwS2QV%{>avuJQz*F@swn15k;91z+17ms=L-+4@wSFX?K6i4djstqdl=>t*~Qquqwj?*C>o25>5b zW4Wrwk~!^L2cy5^761(bvbZI!4?byd$Jkz;|Nm=V5b36IC;w$$h-9ZO8p+X5nEnT&>$Tg8F68cTghitOkKa zB`$B8n|0$oN6)vAzMob1q|Sf#4D{A}lDpM4!k5+W>2z(IOQ)}~d0=aWXG;6tZS8@k zk$!>!_6OGI=Ym;W`es^Lm4DJegN}Gy{($b?qUuIfGx`1J*HL$#w%SfMi?-lq2Cj`X@rNoV4(`)wMr@0wPuR< z0At@BemzhaDK{iC2j`RrM02~80fEt9Bd;)-@R!Sx)^l)M}S-HsZrX#aFyhj|l2hx#$;1$pa#~)U|Ta)kve& z4;hQ;H*sqo-r6V_Y0cBo4*_SG_C%F9fkOJICyhT3ac0@Rh)P%~o-=U+>BGx)N?iS*j4Qn^o7rtceaYF_TvO;!Q)(WN zt*M2|L6$!*17piVbYTGxv{%lI<-UFut+PtkDje(M6)4vnd-ic+clp%&REenQtnzib zcy>KyF=)JHF)k28K!#twDo4E1J;%N)Wf z_AoY##5JU);XMAybkM-lz=oF2J0lU{8<`k@to?PUm&6YzmRmd)U=2UmYG`i63k2UT ziO>7Ash1s02d(;xI&^9MJ9YRd@8P;Ka(4yKwL$mPnYlyRz{6bRqdXLF{4X71tgKe1 zbjv4d#p?PX%(Yl}Kfp~+@7j|bug~tb`>lO|ID)4XIWyu;Q#AJqFJaOw{=d^vG4Pf(E zen9+nKDgv{{e~+QfH{E%h44~bsj#1djFql8-aHm@V!}=Flwn*L?1FN-8e<{`8&=xh ztWMxQ3~JxlYZ9egI1RtW4iJY5h{MSe3wXhQvTK0!#(;nyy{SQ*VZ)~dT~XJc^27lz znBQvDDlm7j1Z)EdNdx=v*4(0-JQPj~qEvB5mh7hqJd)TYkMh zEwwq|m_J#dLzoAR-cT^z2G7H-O{N;sV%m&Rva1;T@uOBNit@h$Ix%${XM3W1+nY2$ zIk(?Q``B$C1@EuTus#j*ZK%Neuq5wWe7xvVA3KY)Kr_jC6z{TFqfE;)?S~Ue5b6m1 za;swg!u7WX>{P1kMlFNO8C#c=Ezs<6x4CpC?`>yQKvv-hm}>vDG{&sS=0)F?O4EH?0-Y<=^CpNn=bPL~6TE60DgOLCgAJX^o7hJF)3<$yP^ zH0PwjG>wKqK%PI81Ttf-rxsM!zaf=FW0MlpIN+Q_Q2e8F;U31@`io9fwBATX$`+e5 z)0L!PDcDbRP|?n_GRGdtkMe_*wff#aGGoDdOzF)AhU5SPKIj(mx)RmMW zdRDPM6yq-%rAcT>MG*9|we*SQ7S&wIYu4T zvsJ7d{v4BN6$KK@8%|ERAL@d1qg0^yh8Yc|Kb>YV{xj)v zY6#$pwfmQCRONkn@0L&jH%Q)c`;e;BA@Xuke#`AO)`WQ7MWb?0%GMbPd%0BqVlv=e z@ZXEs6ic{WLbG1ath8l^Ad}1S{PmZMWhRQq(j}{(Y>C?3v6Ey8dU$D&SG;R}c?Rt@ zlAzf0F2krPUfaSg2c9NUK1PGQGook#xagI2Nm|HJ-M*#Y^a=s_lZ%P7>N6mIC4ITu zw`{ZdbegW^+r>M;ok~3=-$jmKU2FBV<6~S-MqjQ?i_kSraUz5!Fzow#eJgA-j z&c|asl%IijWlI`&d0`7)th*D)b7gaB^nzgSDUcBCEELQB{L-=ll3O#3YkNliZLY?i ze2RY%!x(`4)4fRlOYToPBSpM^wn~lC`5AA4p`)2;TYxvk?&k+IuN|Uooz|3-J%6}@ zYH3G72^l z%QAjD71y=Z^EFcFCLAzo>0xu!oo`-Xs|)V`o)hz~aY$<~aYX<g?#ZGqSRm|Dd3I}P?BhTNg5Mj2R{wLRy_i|qf< zuD}J?$JE{q8a#F3I-jH>J??PN#+W}D;9iwDX)53A{FD6hW2_ToUN{Xc4;(5tBPJhw z1U^T-9>Fm^xb1)Xb>GPJIHdf`>ZhYt>MoEw&{Z99o=;#i(Ugtx+d0gV=9f50czi9n z+16wYU*`I(Jx;&45C?c}>lH8dEes#-~V=UG(FvT{lkHHozHRLqHN~wpB~cBo{|6b6e8teN*2?E-x4vlP*(fr z^#`z@Tz(lqq(7PMTg0nB9gDA;&S90@UZA^W25Y&L{S->guBr_$R*!#^5-rh}?OS+ePg^N3Z(D-%Q#J zP_F^kNO=EG6z*BUDI8gKkG|O_-|oR{Ag?Al(g30sEf`=7M`!gNA#UNF%;NPaq4;i> z^Evzvlu?ix;V8lO=3kUC-MMu4UxaaPo#VeJ+#atqvi(W5wVj`pxES&o_I%^^=O)T= z|1qmslp47Y$p5#U;%*?M=J<9+!AxU}6X(&N^zk9iRW@59>bf;5@r-Z68#` zpT97!0y13JP>{6K>w^!i*SF>`UXt#8BTTR5@~j9>u%YNBD>k@~q7nOoJ}51dzXL?| zzn<{3gH7`SO4fd=k2KbNW}~0CIuCShntY#s!xbQQWzqn#!)-XWU%-ahs@8`WBt+K~aLLrCN(!oaou#BW%>veyVRpCrG zg5WjGwLuR*=+p95{c*u8uhUKv@+Z!o^{I`1TlJtzRw=A?DK`6(`go! ziESaF zVuCn9)ix9p0h{)i@A9Bz=*G75qi2N>+%NRivOy{z_3NspN6@uXR;?!h0o3xOzRxfv zeoP6y7tM|H?MBzZH-=Ah^5bWfLV&r2v{G|MMn(E(k&Loww>GWxiwwA9icTxkh3?i@ z)6gA)R)@iik9u?lKY(nkDOiHC?JCZwxhHlWZ`O&y-tZ_yK|tmGKh7DIfcdMZ1D9TC zBgBC{9=o=20dBQ6!OZ0gKQKWS`Err)nl*+hQ*}mc&3tjc{u-PK05`^;lr7MU9eZdz zn$)xc=&mB>^Ooh0v90_7PLS(Ii`)hvuzto=uvw}bH3C9>dB*{1{BYRu`DiWMptgg1 zlr{?B!^B$u#fJ&kdFRp4$qD!JK-U{>=(FFMyAm08Vbmv^8KKeRv;DbvquaXbMu=X= z^D`GNb*}td8F%F6-RVcpH^!a@>;UOm(J+&(Ym*b0MZx)^U$qWn=S9I~)25H)>M`>I z+tIJN!*%B$>!yDtZH1W@?p6zHlgc25Yd!*^$RU?}ErV zA#EEbi+4p0KR{BvQK~|@|K_pFAe~Hl*>}4zyMm}m&^t`{X(*fDX#RT<#c;^iFvt?V zJ*(;8-KSQu{`cY%v+hJF+!pxmC$dW+;2lPb9xC`9wVLBdkq(xB5HBb0LdW$$^$dtF z_SWp0pXJ)wJb{(Bcbw9^nw3-Mt;34l)HY7-@rrAEu*2H=)GZI0L7V0>^MBeq?|7>J zw~rsAG*F5pNf{+VnP1`<8AbNqqO60;D94_Wk;=|0GQuHyZ&`<|94nNLJ&x?{et!=2 zt?uuA-@iZZ-+#aJc=*S|0X3`;F%WAigCME;8S-j?{mRkx9muw<4o!d7P39j-ff z`eFhY;m=zq$_T8M8t6X@Z$Ru2#?Nh)3iWANxlk4G2VLU!m)vZvw(_orM{Lu~uPMjd z8g664CIy1|ao;2!&K)l_-cP`Ejc;ArmGUVQ<)CJxpR0WM_hN9X^x7|m%G}S`OrN=d zI}ehhcPpp_x>VwPeU{(-xfdMjF*Vg|++JI}@JS%1=gv5;@r6NRSr9@n&vsS0j0KX)`7oeo6c`&zp=*LmI;ia2u*_=aW}+O82jofrl69k?xYPX~&G zNCdeJf0CZ@;-h6^)M3Wg>+Itn1*Rf-jiNTUI59(2i$qnQvJC2s*|r_D=&`T&@&T_3 zW+sZdnXNX3A&q}&ISHHIo2G95Bo{TJf$q!tLVFp)KIG}Km>Qky~ zr=LPo2N~b92cxD2nkLM4#BR2#c3`N^@j7fmE^v<-RR7W zO@+=-1-8o_&mpQ1;g|RYAwv9%;|JH9gJ14?lqQa*JfDu+R|qO<8`AHMK~BYrp&ez} zW`%ZyA{f9K7zDMU{U4NL#(PhDp-2$8HJ|wJ%Rj2wsHj8{n0s7L)j)XsHks9I8{ea{ zCDAyGp*t@X;IX5ZD|g-fwuoo5u6*PEAw5W1MKvW^o85OH)9o{;V;ckuH(+!;f1ikC zNoEoRm3)H72Ob7Tf-h5R!2Ph5$T1^(OH$!MFi6Zc<%TXEp#XEmy$F6(18_7cxs}>q z@Q+o1)|0IFCCN-=%)zvGG^Qk^H#4AEJuX1@SQ#OSMR0*)kyISsW~!=6Lfca3_z*ed z8Ucq3oJ(cCP(*jv3MHtF4*G1-#czn{&R!TR*F`XV6&%c0tK)0EE{BYB30xO{htWut z*QL~{&Rk7U+ws54IE}IC^lL~Dsx0r~(YCMSI)-_5GD8UGQo~^)F**q?>PVCICxE5| z4r2UIurV=AssU9=X59r=xQzn6h8K}!)cBy^hnu(4Cmw%VuOwyVgtX`k8H+u`+_HK! zt!CCKZ7XOu2W5{s(zq?)B5$-m<~l*aRZ!`~@0Bj!J>A=1m!a@#1(~SXpVP?_YT@Ez z4nQfV(*ozb2JsuD#X~P=^w2Bw&1$VI{QOB{(@U0?{tcT3#iBX_#J(1xt}- zC|Ww}GeXRjueYJM2BlDGh)6&S58Pd2USFYoh!{(Mf?CS}V`GxF5rescY<^71iSm65 z7wZTxY7tJ~XJ_q_03nb9lL*)2~~OcΝS`MYi5@1>;knp7nZ4^(Pz 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 O0J|kAFOey3==oncU6?Ka literal 0 HcmV?d00001 diff --git a/kozyrev_sergey_lab_4/screenshots/Tutorial2.png b/kozyrev_sergey_lab_4/screenshots/Tutorial2.png new file mode 100644 index 0000000000000000000000000000000000000000..6ac89cc99967ec500ec18a717ad567fcc0b43048 GIT binary patch literal 46270 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